J.Teeuwissen
fbd243e28c
null pointer
2023-03-31 21:09:59 +02:00
Ayaz Hafiz
d891dd829f
Migrate more tests
2023-03-31 14:06:49 -05:00
J.Teeuwissen
48a44222bb
void pointer
2023-03-31 21:02:32 +02:00
Ayaz Hafiz
834f4afe2c
Add more tests
2023-03-31 13:56:46 -05:00
Ayaz Hafiz
5a9109f17b
Make uitests less noisy
2023-03-31 13:54:38 -05: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
Ayaz Hafiz
3fc54ea578
Migrate a few more tests
2023-03-31 13:45:06 -05:00
Ayaz Hafiz
54d6bf7747
Stub out the rest of uitest
2023-03-31 13:39:33 -05:00
Ayaz Hafiz
3aaf771543
Break up query inference into smaller composable pieces
2023-03-31 13:03:50 -05:00
Ayaz Hafiz
cf3fc7f4a8
Scaffold uitest
2023-03-31 12:47:13 -05:00
Ayaz Hafiz
58cef56a23
Move solve test helpers to their own crate, for now
2023-03-31 11:35:23 -05:00
Ayaz Hafiz
1227d10731
Refactor solve test helpers into a new module
2023-03-31 11:18:24 -05: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
Richard Feldman
0bb8c60b93
Merge pull request #5238 from roc-lang/glue-towards-ts
...
Move RustGlue.roc closer to what we have on the ts branch
2023-03-31 10:11:23 -04:00
Ayaz Hafiz
8ca7f91fcd
Clippy
2023-03-30 18:25:31 -05:00
Ayaz Hafiz
4936708b18
Add gen test
2023-03-30 18:20:09 -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
Ayaz Hafiz
a003451c1f
Add a SmallVec data structure that saves a list on the stack
2023-03-30 18:13:52 -05:00
Folkert
4419e961c8
remove unneeded extern definitions
2023-03-30 21:36:30 +02: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
Richard Feldman
dca2d2afd8
Fix Str examples that were using small strings
2023-03-29 21:23:14 -04:00
Richard Feldman
f6f201f1d3
Update mono tests
2023-03-29 21:23:14 -04:00
Richard Feldman
40375a7256
Add some Str.fromUtf8 tests
2023-03-29 21:23:14 -04:00
Richard Feldman
c3c1b8d083
Add Str.walkUtf8
2023-03-29 21:23:13 -04:00
Richard Feldman
f7e96ecf82
Expand some Str docs
2023-03-29 21:23:13 -04:00
Folkert de Vries
7a77702e78
Merge pull request #5190 from roc-lang/pluggable-glue
...
Pluggable glue
2023-03-29 23:15:57 +02:00
Folkert
99a3c08911
bake roc_alloc and friends into the dynamic library for glue
2023-03-29 19:43:59 +02:00
J.Teeuwissen
aa7585e160
More progress on reuse for join points
2023-03-29 16:14:36 +02:00
Folkert
d67617e64b
when roc_panic is setjmp/longjmp, mark its linkage as internal
2023-03-29 15:03:30 +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
Brendan Hansknecht
457725e87f
fix end offset of fromUtf8Range
2023-03-28 18:53:47 -07: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
Folkert de Vries
5374cf21f2
Merge pull request #5205 from roc-lang/i4759
...
Remove inaccurate debug assertion in IR gen
2023-03-29 01:33:51 +02:00
Ayaz
37d4ff9fdc
Merge pull request #5222 from roc-lang/hash-bool
...
Implement Hash for Bool
2023-03-28 16:43:44 -05:00
Brendan Hansknecht
6013adcba2
Merge remote-tracking branch 'origin/main' into pluggable-glue
2023-03-28 14:16:00 -07: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
f458da0cbc
Implement Hash for Bool
2023-03-28 15:04:45 -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
18858b9eb3
Get rid of inaccurate debug assertion
2023-03-28 14:19:43 -05:00
Folkert
c0f49ce62c
correctly add padding between data and tag id
2023-03-28 19:46:26 +02:00
Ayaz
6de36f29f9
Merge pull request #5207 from roc-lang/tag-union-diffs
...
Improve tag union diffs
2023-03-27 13:29:44 -05:00
Ayaz Hafiz
3f532df981
Generate code for recursive nullable wrapped lambda sets
2023-03-27 10:11:49 -05:00