Ayaz Hafiz
cc78d4d180
Start all make_specializations from the top, suspending not to FindSpecializations
2022-08-19 22:20:57 -05:00
Ayaz Hafiz
099fbf46eb
Suspend specialization of symbols that collide with an active specialization
...
It's possible to end up in a situation where you attempt to specialize a
symbol while it's being specialized for another type; see the examples
in the diff. In this case, we need to treat the later specialization as
suspended, and recover it later.
2022-08-19 22:20:57 -05:00
Ayaz Hafiz
3b78ebcf3a
Allow large enum variants
2022-08-19 22:20:38 -05:00
Ayaz Hafiz
7c6d811769
Report errors without mono when roc foo.roc
has errors
2022-08-19 22:19:04 -05:00
Ayaz Hafiz
b809d6d452
Dynamically load find/make specializations graph if there are no type errors
2022-08-19 22:19:04 -05:00
Ayaz Hafiz
106f725c45
Ignore test on llvm wasm3
2022-08-19 22:18:45 -05:00
Ayaz Hafiz
79a5766854
Make method private
2022-08-19 22:16:47 -05:00
Ayaz Hafiz
b7c799702f
wasm: store closure data passed to higher-order low-level in struct, not box
2022-08-19 22:16:47 -05:00
Brian Carroll
1078badd58
wasm: comment on why we don't need to modify symbol storage after clone
2022-08-19 22:16:47 -05:00
Ayaz Hafiz
f08fc43210
Remove unneeded clone
2022-08-19 22:16:42 -05:00
Ayaz Hafiz
fb4282757a
gen-wasm: Do not repoint stack memory to locals upon copy
...
It is possible that other code paths will use the stack memory before a
copy to a local is done. For example, if the copy happens behind a branch,
the local variable may not be assigned the stack content.
2022-08-19 22:16:41 -05:00
Ayaz Hafiz
15ef517cf2
gen-wasm: box captured data before passing it to a higher-order lowlevel
...
Previously, when it existed, captured data would always be represented
as a struct, and hence implicitly boxed. That meant that passing
captured data would always pass a pointer. However, now, captured data
can live unwrapped. This poses a challenge for the higher-order
lowlevels, which always expect captures data to be passed as an opaque
pointer. As such, always box captured data.
It's possible to optimize this so that only unwrapped captures data
needs to be boxed; however, that is not attempted in this patch.
2022-08-19 22:16:41 -05:00
Ayaz Hafiz
cefbf3aa51
Unwrap lambda sets in cc type choosing
2022-08-19 22:16:41 -05:00
Ayaz Hafiz
0606086eb6
Compare values with runtime representation
2022-08-19 22:16:41 -05:00
Ayaz Hafiz
b18af7e1f3
Fix return type of closure
2022-08-19 22:16:41 -05:00
Ayaz Hafiz
d8a8dff70d
Treat unwrapped capture sets as unwrapped directly
2022-08-19 22:16:41 -05:00
Ayaz Hafiz
68bb03ec09
Update mono tests
2022-08-19 22:16:41 -05:00
Ayaz Hafiz
64fc60f55f
Make lambda set set
private
2022-08-19 22:16:41 -05:00
Ayaz Hafiz
a93735473a
Describe how a enum lambda set should be switched in the representation
2022-08-19 22:16:40 -05:00
Ayaz Hafiz
f5e3105b37
Use extend_argument_list to add lambda set arguments
2022-08-19 22:16:40 -05:00
Ayaz Hafiz
c003b2d007
Simplify ClosureInfo and enum lambda set switching, which never captures
2022-08-19 22:16:40 -05:00
Ayaz Hafiz
d6572ef3b7
Match over call options in determining whether to extend lambda set arg
2022-08-19 22:16:40 -05:00
Ayaz Hafiz
d4a79780b3
Determine whether to extend lambda set arg to call args by checking call options
2022-08-19 22:16:40 -05:00
Ayaz Hafiz
62dde549e6
Determine whether lambda set is represented as an arg
2022-08-19 22:16:40 -05:00
Ayaz Hafiz
fc4979e2ce
Add ClosureCallOptions enum to describe how to switch calling lambda
2022-08-19 22:16:40 -05:00
Ayaz Hafiz
8d01e81aa7
Use tag union/recursive tag union layout function for lambda sets
2022-08-19 22:16:39 -05:00
Folkert
aacd90baff
split signed and unsigned tests
2022-08-19 21:28:50 +02:00
Folkert
d7f392bbea
another go at umul
2022-08-19 21:26:51 +02:00
Anton-4
9a715a0d4b
improve comments zig tests, set up zig tests in CI
2022-08-19 17:14:49 +02:00
Folkert
2a302cfc46
dev backend unsigned multiply: round 2
2022-08-18 23:11:54 +02:00
Folkert
3f6f070042
add tests for mulsd and mulss
2022-08-18 22:37:31 +02:00
Folkert
0a2d976d50
store just the sections that we actually want
2022-08-18 22:32:38 +02:00
Ayaz Hafiz
f70993c2a3
Add RocList from array
2022-08-17 17:58:03 -05:00
Ayaz Hafiz
b1e41a5995
Remove Clone restriction from RocList FromIterator
...
You don't need clone-able elements to create a Roc list from an owned
iterator.
2022-08-17 17:44:06 -05:00
Folkert
61ae913972
attempt at generating the dylib without an external linker
2022-08-17 23:40:19 +02:00
Folkert
271fbe69e8
attempt at unsigned multiplication
2022-08-17 14:14:46 +02:00
Folkert
d39de07b5a
implement float multiplication
2022-08-17 13:32:58 +02:00
Folkert
038ba47409
make integer multiplication work for quadwords and lower
2022-08-17 13:05:48 +02:00
raleng
4371905738
Fix file links in gen_dev readme
2022-08-17 12:40:28 +02:00
Ayaz Hafiz
abdc0d5689
Add an example for deeply nested record decoding
2022-08-16 08:11:14 -05:00
Ayaz Hafiz
0d763518f1
Make sure to push more symbols coming from Derived_synth to Derived_gen
2022-08-16 08:10:04 -05:00
Richard Feldman
0ba5b3cfc6
Merge pull request #3711 from roc-lang/record-decoding
...
Record decoding and their derivers
2022-08-15 22:06:34 -04:00
Brian Carroll
fa1a870d4b
Merge pull request #3791 from roc-lang/dependabot/cargo/indoc-1.0.7
...
Bump indoc from 1.0.6 to 1.0.7
2022-08-15 21:04:16 +01:00
Brian Carroll
2227b3d11d
Merge pull request #3813 from roc-lang/dependabot/cargo/crossbeam-0.8.2
...
Bump crossbeam from 0.8.1 to 0.8.2
2022-08-15 21:03:09 +01:00
Richard Feldman
c2c9c87cd2
Simplify RocList Debug again
2022-08-15 13:05:32 -04:00
Richard Feldman
8742a81caf
Add len for RocDict and RocSet
2022-08-15 13:05:32 -04:00
Richard Feldman
0b54f08f7f
Generate glue for Set
2022-08-15 13:05:32 -04:00
Richard Feldman
0f179272d9
Add some Set builtin tests
2022-08-15 13:05:32 -04:00
Richard Feldman
ef64966159
Add glue test for Set
2022-08-15 13:05:31 -04:00
Richard Feldman
f9013a881e
Don't print "RocList" in its Debug instance
2022-08-15 13:05:31 -04:00