Richard Feldman
|
ee31eac0c5
|
Code gen toplevel module functions
|
2020-05-01 19:30:55 -04:00 |
|
Richard Feldman
|
5c31369072
|
Code gen thunks for top-level module decls
|
2020-05-01 19:30:55 -04:00 |
|
Chad Stearns
|
d1b00633be
|
INT NEQ for i1 and i8 integer types
|
2020-05-01 17:29:43 -04:00 |
|
Chad Stearns
|
71258e0e59
|
Implemented INT_NE_i64
|
2020-05-01 16:31:19 -04:00 |
|
Folkert
|
c11ac52a4b
|
fix num/int bug
we called the function with the wrong type variable. now there are two functions, handling both cases
|
2020-04-29 12:28:13 +02:00 |
|
Richard Feldman
|
c39b43a265
|
Code gen numeric comparisons
|
2020-04-28 18:33:51 -04:00 |
|
Folkert
|
81769b4e65
|
fix clippy's newly-learned warnings
|
2020-04-23 22:12:24 +02:00 |
|
Folkert
|
b433988fde
|
Merge remote-tracking branch 'origin/trunk' into pattern-exhaustiveness-records
|
2020-04-23 21:57:09 +02:00 |
|
Folkert
|
848764cb25
|
improve formatting of records in pattern exhaustiveness errors
|
2020-04-23 21:49:24 +02:00 |
|
Folkert
|
f0aa598ff9
|
use tag id instead of name in exhaustiveness checking
|
2020-04-21 16:24:43 +02:00 |
|
Richard Feldman
|
f0d76825d2
|
Extract specializations from PartialProc
|
2020-04-18 11:24:25 -04:00 |
|
Folkert
|
63bc923b37
|
remove panic
|
2020-04-13 22:54:24 +02:00 |
|
Folkert
|
c69b0d69e5
|
fix enum and bool pattern match suggestions
|
2020-04-12 21:47:15 +02:00 |
|
Folkert
|
7632a4b484
|
highlight code snippets better
|
2020-04-12 20:59:16 +02:00 |
|
Folkert
|
c326b09964
|
errors for patterns
|
2020-04-12 16:39:54 +02:00 |
|
Folkert
|
97c10e1211
|
setup for mono reports
|
2020-04-12 01:56:57 +02:00 |
|
Folkert
|
14ad793bd7
|
hook up TypeError
|
2020-04-01 16:28:10 +02:00 |
|
Folkert
|
db3ffc6dab
|
make runtime errors for invalid patterns
|
2020-03-31 01:47:14 +02:00 |
|
Folkert
|
c202cf3e6b
|
don't generate Store with no stores
|
2020-03-26 15:11:40 +01:00 |
|
Folkert
|
fc905b505c
|
codegen for letrec
|
2020-03-26 14:53:38 +01:00 |
|
Folkert
|
39fb78b2d5
|
remove Jump/Label from mono::Expr
|
2020-03-24 00:11:02 +01:00 |
|
Folkert
|
958f3f9ad4
|
change pattern destructuring stores
they are now tracked in the Cond/Switch variants, rather than merged into the branch constructors. Required for 'beans'
|
2020-03-23 23:35:45 +01:00 |
|
Folkert
|
2bb69f333f
|
always Cond on a symbol
this will make 'beans' easier
|
2020-03-23 20:00:15 +01:00 |
|
Folkert
|
baeb8ad96a
|
test unit type patterns
|
2020-03-23 17:55:02 +01:00 |
|
Folkert
|
b9613fcdc5
|
clean up tag pattern match conversion
|
2020-03-23 17:55:02 +01:00 |
|
Folkert
|
a7b5768c47
|
use a custom type to store Union variants
|
2020-03-23 17:55:02 +01:00 |
|
Folkert
|
46062439b5
|
remove label from Struct layout
|
2020-03-23 17:55:02 +01:00 |
|
Folkert
|
e2a7c970bc
|
refactor Access into AccessAtIndex
|
2020-03-23 17:55:02 +01:00 |
|
Folkert
|
9a0234e5dd
|
make bound variables available in guards
|
2020-03-22 01:11:19 +01:00 |
|
Folkert
|
1f3b8f7d68
|
guard exhaustiveness
|
2020-03-21 23:33:37 +01:00 |
|
Folkert
|
a16d48a6a9
|
code gen for simple guards
Guards cannot use variables bound in the pattern yet
|
2020-03-21 22:27:36 +01:00 |
|
Folkert
|
97acf1363d
|
cleanup after review
|
2020-03-21 12:52:10 +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
|
0f22cbbf7d
|
fix incorrect layout for Switch
|
2020-03-20 19:56:50 +01:00 |
|
Folkert
|
e062404a63
|
support more complex nested patterns
|
2020-03-20 14:27:07 +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
|
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 |
|
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
|
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
|
6253d2d1af
|
pattern match on single-tag tag unions
in LLVM and crane
|
2020-03-17 19:44:59 +01:00 |
|