Richard Feldman
e800c26cfe
Merge remote-tracking branch 'origin/trunk' into package-config
2022-06-22 15:20:21 -04:00
Folkert
630f8d9c2d
fix doc comment rendering
2022-06-19 19:27:20 +02:00
Richard Feldman
962e08b10d
Merge pull request #3234 from rtfeldman/toplevel-expect
...
toplevel expect
2022-06-17 10:06:22 -04:00
Folkert de Vries
3f5edaff4c
Merge pull request #3233 from rtfeldman/fix-timings
...
Print timings across make specialization passes
2022-06-17 13:39:20 +02:00
Folkert de Vries
375f29691a
add missing case in test
2022-06-17 13:33:56 +02:00
Richard Feldman
20ac69b588
Fix filename for package-qualified imports
2022-06-16 15:21:57 -04:00
Richard Feldman
203a9aba02
Introduce PackageName::to_str and From instance
2022-06-16 15:21:57 -04:00
Richard Feldman
a5ba3581df
Lazily convert a Path to PathBuf
2022-06-16 15:21:56 -04:00
Richard Feldman
02ffd848e2
Remove Package-Config.roc from compiler tests
2022-06-16 15:21:56 -04:00
Richard Feldman
448801c0c6
Process platform package path properly
2022-06-16 15:21:56 -04:00
Richard Feldman
33230c506f
Remove references to Package-Config.roc
...
Instead, refer to these as `platform` modules
2022-06-16 11:13:34 -04:00
Richard Feldman
9d3087ce23
Replace implicit Package-Config.roc with explicit paths
2022-06-16 11:13:34 -04:00
Folkert
f7246d2774
typecheck toplevel expects
2022-06-15 23:15:43 +02:00
Ayaz Hafiz
420458b100
Print timings across make specialization passes
...
Now that we may run make specialization passes multiple times, we should
record and print all timings, not just one.
2022-06-15 15:19:49 -04:00
Ayaz Hafiz
3d12367568
Clippy
2022-06-15 14:26:56 -04:00
Ayaz Hafiz
ccd78a560f
Add test module for derivers
2022-06-15 14:26:55 -04:00
Ayaz Hafiz
e1f7702982
Clippy
2022-06-13 13:19:09 -04:00
Ayaz Hafiz
f21d68c9fb
Consolidate WorldAbilities and solve Phase
2022-06-13 10:40:36 -04:00
Ayaz Hafiz
f5c4528919
Add some more documentation on phase relaunching
2022-06-13 09:34:36 -04:00
Ayaz Hafiz
8cc257f742
Relaunch specialization passes when there are leftover external specializations
2022-06-13 09:11:49 -04:00
Ayaz Hafiz
149360a994
Restore procs base when getting function specializations
2022-06-13 08:48:01 -04:00
Ayaz Hafiz
b90daaaffc
Lay groundwork for re-introducing of the make specializations pass
2022-06-13 08:44:56 -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
Folkert de Vries
e7c2ea32b1
Merge pull request #3213 from rtfeldman/found-specializations-assert
...
Add a few assertions to MadeSpecializations
2022-06-11 15:45:15 +02:00
Folkert de Vries
413025013f
Merge pull request #3209 from rtfeldman/pending-abilities-store
...
Distinguish between pending and resolved ability stores, and resolve external lambda set vars
2022-06-11 15:44:18 +02:00
Folkert de Vries
c2aa476c11
Merge pull request #3208 from rtfeldman/abilities-store-immutable
...
Make abilities store immutable in mono
2022-06-11 15:39:22 +02:00
Ayaz Hafiz
3338ede223
Assert on external_specializations in state
2022-06-10 09:46:05 -04:00
Ayaz Hafiz
590e8af81b
Add a few assertions to MadeSpecializations
...
1. MadeSpecializations can only be hit when our target phase is to make
specializations
2. Once all work is done, there can be no more requested external
specializations
2022-06-10 09:36:26 -04:00
Ayaz Hafiz
0deca3ffb5
Resolve specialization lambda sets in abilities store
2022-06-09 14:20:07 -04:00
Ayaz Hafiz
4267dfc397
Stray dbg
2022-06-09 13:58:34 -04:00
Ayaz Hafiz
aa9b70a7c8
Distinguish between pending and resolved ability stores
...
Now that we have unspecialized lambda sets, we need to properly copy
their specialization variables when a module imports another modules'
ability store. I think it will be easier to ensure the correctness if
we distinguish between a "pending" ability store (which may contain
imports whose variables have not been added to subs yet) and "resolved"
abilities stores, which are what we care about for solve and later on.
There is a cost to this since `PendingAbilitiesStore#resolve` destroys
and collects all of the ability member data, rather than in-place
mutating as we did before. However, the resulting `AbilitiesStore` is
now much smaller, so the memory footprint will be better, and also
every field besides `ability_members` will be moved rather than copied.
2022-06-09 12:52:40 -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
Folkert
97f32898a3
Merge remote-tracking branch 'origin/trunk' into module-id-improvements
2022-06-08 16:23:07 +02:00
Ayaz Hafiz
4b42205b03
Instantiate unspecialized lambda sets under aliases and opaques
2022-06-07 14:41:42 -04:00
Ayaz Hafiz
4339bfaed6
Print lambda sets on-demand
2022-06-07 08:46:15 -04:00
Ayaz Hafiz
d71fadd8b0
Resolve and compact specialized lambda sets
2022-06-07 08:46:15 -04:00
Folkert
0a98542e8c
clippy
2022-06-03 22:03:36 +02:00
Folkert
e7d73f2162
remove more Ident
2022-06-03 21:21:25 +02:00
Folkert
930e1b7bae
use Ident less
2022-06-03 21:14:42 +02:00
Folkert
360a9cd0c3
remove clone
2022-06-03 21:04:40 +02:00
Folkert
72518bca9c
fix clippy things
2022-05-25 15:28:14 +02:00
Folkert
2ae804790a
parse toplevel defs into an SOA structure
2022-05-23 22:07:37 +02:00
Richard Feldman
4eec34becf
Update to use new square brace formatting
2022-05-22 23:15:54 -04:00
Ayaz Hafiz
a4c122d5db
Validate derives clauses after solving
2022-05-20 15:56:55 -04:00
Richard Feldman
3212ca3949
Revise error message for Not Found
2022-05-20 11:30:57 -04:00
ayazhafiz
6f51eb09dd
Don't expose specializations to host
2022-05-19 18:21:44 -04:00
Ayaz Hafiz
6d19f31574
Remove mono-related changes for now
2022-05-19 18:21:43 -04:00
Ayaz Hafiz
3f4336d15a
Save ability specializations
...
Unfortunately not enough...
2022-05-19 18:21:42 -04:00
Ayaz Hafiz
f8cf18b10e
Remove ExposedModuleTypes::Invalid
2022-05-19 18:21:42 -04:00