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