Ayaz Hafiz
178850462e
Pass at tag union toEncoder deriver
2022-06-15 17:52:29 -04:00
Ayaz Hafiz
5c1f003242
Call it derive keying
2022-06-15 16:32:43 -04:00
Ayaz Hafiz
834f75099f
Move derive content hashing to its own crate
2022-06-15 14:29:35 -04:00
Ayaz Hafiz
ed45c5c38f
Create generic derivers rather than tied to type
2022-06-15 14:29:34 -04:00
Ayaz Hafiz
f3a4d594fb
Add tests for opaques
2022-06-15 14:29:34 -04:00
Ayaz Hafiz
0560fb41a1
Add content-hashing scheme for Encoding deriver
2022-06-15 14:29:34 -04:00
Ayaz Hafiz
445a5e5c2c
Fix abilities rebase issue
2022-06-15 14:29:17 -04:00
Ayaz Hafiz
8f3dfa990a
Rename derivers to derive
2022-06-15 14:26:57 -04:00
Ayaz Hafiz
e97546238a
Encoding for empty records
2022-06-15 14:26:56 -04:00
Ayaz Hafiz
fe55b5a226
Perf: don't collect or re-insert variable slices
2022-06-15 14:26:56 -04:00
Ayaz Hafiz
beed7e791b
Add printing of derived AST to tests
2022-06-15 14:26:56 -04:00
Ayaz Hafiz
5c64e62d89
Correct encoding deriver for records
2022-06-15 14:26:55 -04:00
Ayaz Hafiz
f1fa29fcfc
First pass at derived record encoder
2022-06-15 14:26:55 -04:00
Ayaz Hafiz
f21d68c9fb
Consolidate WorldAbilities and solve Phase
2022-06-13 10:40:36 -04:00
Ayaz Hafiz
149360a994
Restore procs base when getting function specializations
2022-06-13 08:48:01 -04:00
Ayaz Hafiz
bf7d57b23f
Import ability lambda sets from other modules during late solving
...
We're almost there! Just need a way to re-enter already-monomorphized
modules when abilities demand it now.
2022-06-13 08:37:02 -04:00
Ayaz Hafiz
ee6d733cc4
World abilities: big world vs tiny world
...
Normally a module can see all of its abilities, and any module it
depends on (this is the tiny world, i.e. only the world it is aware of).
But when making specializations, a module may need to see all abilities
in all modules (big world). This patch supports big-world viewing of
abilities.
2022-06-13 08:37:00 -04:00
Richard Feldman
7a5010e68b
Merge remote-tracking branch 'origin/trunk' into recursive-bindgen
2022-06-12 11:07:19 -04:00
Richard Feldman
cb3a2f5c1c
Merge remote-tracking branch 'origin/cstr' into recursive-bindgen
2022-06-10 19:59:55 -04:00
Ayaz Hafiz
aed23d35e3
Make abilities store immutable in mono
...
It has no reasonable to be mutable now that resolving is due to
specialization lambda sets
2022-06-09 11:24:52 -04:00
Ayaz Hafiz
a5da24c7ba
remove stray dbg
2022-06-08 14:06:24 -04:00
Ayaz Hafiz
f4fc9cbe04
Remove ability resolver walker in mono
...
Now that we have unspecialized lambda sets, we only need late ability
name resolving!
2022-06-08 14:06:03 -04:00
Ayaz
7d8919a73f
Merge pull request #3196 from rtfeldman/late-solve
...
Hide unify, solve in mono behind a new late_solve crate
2022-06-08 11:32:43 -04:00
Richard Feldman
f45d1281f7
Merge pull request #3137 from rtfeldman/expect-report
...
Expect report
2022-06-08 10:13:35 -04:00
Ayaz Hafiz
ec9f752463
Clippy
2022-06-08 10:00:01 -04:00
Ayaz Hafiz
3684412f17
Hide unify, solve in mono behind a new late_solve crate
...
This ensures you can't just call into roc_unify from mono, and that
lambda sets will necessarily be resolved as needed.
2022-06-08 10:00:00 -04:00
Ayaz Hafiz
a1c05f653e
Improve comment about ignored pools
2022-06-07 16:38:05 -04:00
Ayaz Hafiz
201853ecca
Lambda set compaction in mono
2022-06-07 11:50:39 -04:00
Ayaz Hafiz
feea727697
Introduce unspecialized lambda sets to Content::LambdaSet
2022-06-07 08:46:13 -04:00
Richard Feldman
e24d6c6517
Use roc_mono::layout more as bindgen source of truth
...
This also moves the `bindgen` module into `types`
2022-06-06 21:38:18 -04:00
Ayaz Hafiz
b0c602eb8d
Clippy
2022-06-02 09:44:38 -05:00
Ayaz Hafiz
bde107da49
Remove TagName
in favor of explicit TagName or Closure
...
Note that we still need a `TagOrClosure` enum for phases past mono, but
at least we get rid of the branches in the front end.
2022-06-02 09:44:34 -05:00
Ayaz Hafiz
5e35609369
Remove mono/src/exhaustive.rs
2022-06-01 17:39:16 -05:00
Ayaz Hafiz
591528d8a3
Handle case where lambda set is unbound
2022-06-01 13:18:55 -05:00
Ayaz Hafiz
c66f989467
Recursive closure layout working again in effect test
2022-06-01 13:18:54 -05:00
Ayaz Hafiz
2e70c9aba4
Getting closer. Checking in for a break.
2022-06-01 13:18:53 -05:00
Ayaz Hafiz
790eb8e20c
Lambda sets don't need extension vars
2022-06-01 13:18:03 -05:00
Ayaz Hafiz
c2a2ce690c
Lift lambda sets as their own type
...
This prepares for unspecialized lambda set in the type system in
general.
2022-06-01 13:17:22 -05:00
Richard Feldman
524ae1e3d8
Use RocType::TagUnionPayload for tag union payloads
2022-05-28 19:17:10 -04:00
Folkert
4091ad84ef
thread region through
2022-05-26 17:03:08 +02:00
Folkert
60aaf23a51
remove ExpectTrue/RocReport
2022-05-26 16:57:33 +02:00
Folkert
b29c7d6fb2
add Expect ir::Stmt node
2022-05-26 16:46:10 +02:00
Folkert
70df1ff9c7
Merge remote-tracking branch 'origin/trunk' into expect-report
2022-05-26 16:06:34 +02:00
Richard Feldman
4eec34becf
Update to use new square brace formatting
2022-05-22 23:15:54 -04:00
Folkert
98ce9f4d09
remove the snapshots
2022-05-21 20:42:19 +02:00
Folkert de Vries
e3b6a38394
Merge pull request #3114 from rtfeldman/less-u128-special-casing
...
Less U128 special-casing
2022-05-21 18:18:42 +02:00
Richard Feldman
3cdaa52a30
Merge pull request #3110 from rtfeldman/handcrafted-unification-table
...
Handcrafted unification table
2022-05-21 11:39:58 -04:00
Richard Feldman
b4e949ca2e
Don't special-case so many U128 literals
2022-05-21 10:36:45 -04:00
Richard Feldman
489fb31cc2
Combine aarch64 and non-aarch64 mono size assertions
2022-05-21 00:53:47 -04:00
Richard Feldman
49aea9d639
Use [u8; 16] to avoid number alignment bumps
2022-05-21 00:53:47 -04:00