Commit graph

920 commits

Author SHA1 Message Date
Brendan Hansknecht
90f4885f4b
use Arc to avoid ever needing to actually copy the underlying bytes 2023-04-09 14:03:33 -07:00
Brendan Hansknecht
a354860d07
clippy 2023-04-09 14:03:33 -07:00
Brendan Hansknecht
6302a8d4b5
switch from type annotation to type variable 2023-04-09 14:03:33 -07:00
Brendan Hansknecht
08179d2a65
make errors more correct and check for utf8 bytes 2023-04-09 14:03:32 -07:00
Brendan Hansknecht
07eb3614ea
get ingesting working both for Str and List U8 2023-04-09 14:03:32 -07:00
Brendan Hansknecht
d42aa43b41
add ingest file to can ir and start pipelining it through the compiler 2023-04-09 14:03:32 -07:00
J.Teeuwissen
705ad1c796
symbol_to_doc 2023-04-09 09:43:52 +02:00
J.Teeuwissen
499f689226
Merge branch 'main' into Frame-Limited 2023-04-08 09:33:12 +02:00
J.Teeuwissen
b39699b1e8
fmt 2023-04-08 09:32:19 +02:00
J.Teeuwissen
643dc6614d
clippy 2023-04-06 18:46:32 +02:00
J.Teeuwissen
4f3f3caff3
Cleanup 2023-04-06 10:41:05 +02:00
J.Teeuwissen
d806ddd190
use borrow borrow signature 2023-04-06 10:38:51 +02:00
J.Teeuwissen
c44da622e5
non mut layout interner 2023-04-06 10:32:50 +02:00
Folkert
92c2931678
make all glue tests run! 2023-04-05 23:19:17 +02:00
J.Teeuwissen
977e19971f
Foreing borrowed 2023-04-05 21:00:29 +02:00
J.Teeuwissen
613f28d28b
allow no jumps 2023-04-05 20:10:41 +02:00
J.Teeuwissen
ed947b773d
Cleanup 2023-04-05 19:44:17 +02:00
J.Teeuwissen
fc9f04b716
unroll let 2023-04-05 18:58:24 +02:00
J.Teeuwissen
ccb2e85607
decref lists 2023-04-05 14:45:02 +02:00
J.Teeuwissen
bd8f3ae929
refactored to insert_refcount_operations_binding 2023-04-05 13:27:26 +02:00
Folkert
9a6f9ad26e
functions in structs, in general 2023-04-04 15:01:17 +02:00
Folkert
b7119e9b3a
return record containing function 2023-04-03 23:45:30 +02:00
J.Teeuwissen
9aed9d3a31
Typos 2023-04-03 10:26:35 +02:00
J.Teeuwissen
39d90a240d
Merge branch 'joinpoint-reuse' into Frame-Limited 2023-04-03 10:04:43 +02:00
J.Teeuwissen
87abe8df7d
Merge branch 'resetref' into Frame-Limited 2023-04-03 10:02:31 +02:00
J.Teeuwissen
fd3f58b4a1
Propagate body jump tokens 2023-04-02 20:22:56 +02:00
J.Teeuwissen
12352ceb6a
updated match 2023-03-31 21:12:40 +02:00
J.Teeuwissen
018e142997
merge remainders 2023-03-31 21:11:13 +02:00
J.Teeuwissen
fbd243e28c
null pointer 2023-03-31 21:09:59 +02:00
J.Teeuwissen
48a44222bb
void pointer 2023-03-31 21:02:32 +02:00
J.Teeuwissen
c2ddb971f4
Merge branch 'Frame-Limited' into joinpoint-reuse 2023-03-31 20:47:22 +02:00
J.Teeuwissen
7759ce6fc4
Merge branch 'main' into Frame-Limited 2023-03-31 20:46:39 +02:00
Folkert de Vries
305753b4a7
Merge pull request #5239 from roc-lang/layout-cache-structure-with-multiple-recursive-structures
Record all nested recursive structures an entry in the layout cache contains
2023-03-31 17:54:48 +02:00
Ayaz Hafiz
8ca7f91fcd
Clippy 2023-03-30 18:25:31 -05:00
Ayaz Hafiz
247913dc20
Record all nested recursive structures an entry in the layout cache contains
If an entry in the layout cache contains recursive structures, the entry
is not reusable if the recursive structure is currently in the "seen"
set. The example elucidated in the source code is as follows:

Suppose we are constructing the layout of

```
[A, B (List r)] as r
```

and we have already constructed and cached the layout of `List r`, which would
be

```
List (Recursive [Unit, List RecursivePointer])
```

If we use the cached entry of `List r`, we would end up with the layout

```
Recursive [Unit, (List (Recursive [Unit, List RecursivePointer]))]
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cached layout for `List r`
```

but this is not correct; the canonical layout of `[A, B (List r)] as r` is

```
Recursive [Unit, (List RecursivePointer)]
```

However, the current implementation only preserves this behavior for
structures that contain one recursive structure under them. In practice,
there can be structures that contain multiple recursive structures under
them, and we must be sure to record all those structures in the
layout-cache.
2023-03-30 18:15:35 -05:00
J.Teeuwissen
7136750ee1
Merge errors 2023-03-30 20:44:33 +02:00
J.Teeuwissen
36f4969a5c
Merge branch 'Frame-Limited' into joinpoint-reuse 2023-03-30 20:38:30 +02:00
J.Teeuwissen
9b410694fe
Merge branch 'main' into Frame-Limited 2023-03-30 20:38:05 +02:00
Folkert
09779f65ad
add NullPointer to mono::ir::Expr 2023-03-30 20:18:04 +02:00
J.Teeuwissen
9b0daebf3c
unique symbols 2023-03-30 13:10:44 +02:00
J.Teeuwissen
ac255f8d8f
progress joinpoint reuse 2023-03-30 11:18:07 +02:00
J.Teeuwissen
9e8b1c0dee
reset ref implementation 2023-03-30 09:30:09 +02:00
J.Teeuwissen
aa7585e160
More progress on reuse for join points 2023-03-29 16:14:36 +02:00
J.Teeuwissen
d4ed6f7778
start resetref 2023-03-29 11:57:13 +02:00
J.Teeuwissen
3b083aebf6
start reuse 2023-03-29 11:07:49 +02:00
Folkert de Vries
294d32f62b
Merge pull request #5221 from roc-lang/fixes-for-nick
Fix a couple bugs Nick Hallstrom ran into
2023-03-29 01:34:17 +02:00
Ayaz Hafiz
2a9e0583bc
Remove inaccurate debug assertion in IR gen
There might be more symbols than field layouts when restructuring a
record if the record is a newtype.

Closes #4759
2023-03-28 15:06:44 -05:00
Ayaz Hafiz
92657b6f4c
Don't intern recursive unions with pointer-fixing if they've been resolved 2023-03-28 14:49:39 -05:00
Ayaz Hafiz
3f532df981
Generate code for recursive nullable wrapped lambda sets 2023-03-27 10:11:49 -05:00
J.Teeuwissen
61efec6fe2
params for joinpoint body 2023-03-26 11:36:08 +02:00