Commit graph

845 commits

Author SHA1 Message Date
J.Teeuwissen
f0a1842697
Resolving nitpicky ;) comments 2023-04-16 19:34:07 +02:00
J.Teeuwissen
36e83fca1c
updated tests 2023-04-16 16:34:41 +02:00
J.Teeuwissen
a4ca864fe3
fixed test 2023-04-16 13:35:35 +02:00
J.Teeuwissen
9d4c3bcfb9
undid inlining 2023-04-15 17:41:10 +02:00
J.Teeuwissen
3c5a978bbe
fixed borrow/owned 2023-04-15 14:55:40 +02:00
J.Teeuwissen
6ece065504
implementing feedback 2023-04-13 15:54:30 +02:00
J.Teeuwissen
5f7f9b766b
inline lowlevel in rc 2023-04-13 12:26:05 +02:00
Ayaz Hafiz
65911f88b1
Handle record updates of imported module thunks
Closes #5131
2023-04-12 11:39:14 -05:00
J.Teeuwissen
bcb494ca6a
dec_borrow higher order 2023-04-12 15:55:26 +02:00
J.Teeuwissen
1586628bb0
removed last must_own_arguments 2023-04-12 14:04:43 +02:00
J.Teeuwissen
584024f230
check can_reuse on reuse 2023-04-12 10:05:02 +02:00
J.Teeuwissen
a3cea59bb6
Merge remote-tracking branch 'origin/main' into Frame-Limited 2023-04-12 09:08:40 +02:00
Brendan Hansknecht
e5b88366fe
add proper error messages for ingested files 2023-04-09 14:03:33 -07:00
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