Commit graph

5882 commits

Author SHA1 Message Date
Folkert
caaf6370ce fix solve test 2020-03-21 01:06:51 +01:00
Folkert
c57b5c8bc3 make old tests pass again 2020-03-21 01:02:02 +01:00
Folkert
920928399a type inference for pattern guards 2020-03-21 00:39:52 +01:00
Folkert
655dc32098 support nested pattern matches on tag unions 2020-03-20 22:14:38 +01:00
Folkert
0f22cbbf7d fix incorrect layout for Switch 2020-03-20 19:56:50 +01:00
Folkert
d0da300042 fix equality/hash issue
lead to tests not being merged/shared
2020-03-20 16:23:56 +01:00
Folkert
e062404a63 support more complex nested patterns 2020-03-20 14:27:07 +01:00
Folkert
fbadd9d620 add pointer Layout 2020-03-20 11:53:21 +01:00
Folkert
e4566b9757 clean up comment 2020-03-20 11:47:22 +01:00
Richard Feldman
b33af811d0
Merge branch 'trunk' into unit-types 2020-03-19 22:05:22 -04:00
Richard Feldman
b5ab2b2201
Merge branch 'trunk' into render-color-cli 2020-03-19 21:50:58 -04:00
Folkert
14979ceb41 Merge remote-tracking branch 'origin/trunk' into unit-types 2020-03-20 01:02:13 +01:00
Folkert
f44fea42bb Boolean and/or in cranelift 2020-03-20 00:59:26 +01:00
Folkert
e6bee2656d add Bool.and for llvm 2020-03-19 23:18:44 +01:00
Folkert
82655556ab exhaustiveness for record guards 2020-03-19 22:34:08 +01:00
Folkert
0985037754 expand record pattern matches to bind all unused fields with underscore
this will simplify exhaustiveness checking, because a record is not like a one-tag union
2020-03-19 20:42:58 +01:00
Folkert
5fc96c09ee Add record patterns 2020-03-19 17:08:29 +01:00
Folkert
9745d86efb add tests 2020-03-19 14:59:05 +01:00
Folkert
006b1f8696 Switch on floats in llvm 2020-03-19 14:58:28 +01:00
Folkert
9b81a94786 Switch on floats in crane 2020-03-19 14:43:58 +01:00
Folkert
6b7b393d32 Switch on tags in crane 2020-03-19 14:39:04 +01:00
Folkert
0075e3fb04 attempt at float switches
needs something more , will circle back later
2020-03-19 14:25:37 +01:00
Folkert
f30655a103 Switch on tags in llvm 2020-03-19 14:18:54 +01:00
Folkert
0593a39e0f uncomment test 2020-03-19 12:35:11 +01:00
Folkert
20dc928bfe fix test on maybe
used elm syntax instead of roc
2020-03-19 12:32:48 +01:00
Folkert
c31116af87 preparation for recursive tag unions 2020-03-19 12:20:12 +01:00
Folkert
9d1e2a0ef1 support zero-sized values (empty record, unit type)
They now use no stack space
2020-03-19 11:31:06 +01:00
Dan Bruder
2c630fd014 Use sorted fields from struct layout as well as layout.stack_size in crane and llvm access 2020-03-19 05:59:29 -04:00
Dan Bruder
59bcda21f5 tests pass for crane f64 2020-03-19 05:46:11 -04:00
Chad Stearns
3984a8d60e Merging in remote 2020-03-19 01:10:57 -04:00
Chad Stearns
beb94dc6f5 Cargo Fmt 2020-03-19 01:10:04 -04:00
Richard Feldman
04f8b93a9b the clippiest of clips 2020-03-18 21:31:01 -04:00
Richard Feldman
8f51b2d429 Don't hardcode elem_bytes in llvm 2020-03-18 21:31:01 -04:00
Richard Feldman
0a045ccec8 Don't hardcode List slots in Cranelift 2020-03-18 21:31:01 -04:00
Richard Feldman
43c4fadd6e Use usize length, no capacity for llvm List 2020-03-18 21:31:01 -04:00
Richard Feldman
59368caa0c Revert various attempts to use target_data 2020-03-18 21:26:51 -04:00
Richard Feldman
c425490317 Another failed attempt to use target_data 2020-03-18 21:26:51 -04:00
Richard Feldman
6e977d96fc Failed attempt to use target_data 2020-03-18 21:26:51 -04:00
Richard Feldman
eed9fb0e69 Have Env store TargetData instead of pointer_bytes 2020-03-18 21:26:51 -04:00
Folkert
b93fe4e341 make arbitrary AccessAtIndex work
it now uses that actual layout, not a hardcoded one
2020-03-19 00:25:16 +01:00
Folkert
f3f135eca5 make Layout Hash 2020-03-18 23:26:17 +01:00
Folkert
b28a6ffa33 optimize tag union layout calculation 2020-03-18 22:42:10 +01:00
Folkert
0996f264e7 simplify Byte layout 2020-03-18 22:22:32 +01:00
Folkert
c11f374eb0 simplify Bool layout 2020-03-18 22:15:03 +01:00
Folkert
f906c9b4b4 uncomment cranelift tests 2020-03-18 21:39:39 +01:00
Folkert
99db336033 Working pattern match on Result Int Int 2020-03-18 21:35:10 +01:00
Folkert
53bd47221c WIP things seem to work in theory 2020-03-18 16:44:53 +01:00
Folkert
845e30658e WIP 2020-03-18 02:20:21 +01:00
Folkert
165c5d8363 load/store all tags in llvm 2020-03-17 22:04:11 +01:00
Folkert
6253d2d1af pattern match on single-tag tag unions
in LLVM and crane
2020-03-17 19:44:59 +01:00