Commit graph

2008 commits

Author SHA1 Message Date
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