Commit graph

3055 commits

Author SHA1 Message Date
Ayaz Hafiz
e36f90feec
Weaken recursive let bindings 2023-01-14 15:33:49 +01:00
Folkert de Vries
e3a213c0dc
Merge pull request #4882 from roc-lang/weakening-3
Begin weakening let-bindings to non-function, non-number expressions
2023-01-14 15:32:27 +01:00
Ayaz Hafiz
7c4cfba4b8
Rephrase solve comments as per Folkert's review 2023-01-13 12:58:11 -06:00
Richard Feldman
76a4414aaf
Merge remote-tracking branch 'origin/main' into improve-type-mismatch 2023-01-12 21:47:39 -05:00
Ayaz Hafiz
d43387d1be
Fix missing parameter in to_relevant_branch_help
main is currently broken because of a non-conflicting diff that landed
before the interner change landed.
2023-01-12 15:43:14 -06:00
Richard Feldman
41a7304e77
Merge pull request #4854 from roc-lang/intern-layouts-6
Intern all the layouts
2023-01-12 15:45:14 -05:00
Ayaz Hafiz
5eda760f1c
Fix bug in loading host-exposed list pointers 2023-01-12 10:20:11 -06:00
Ayaz Hafiz
2e41b59af4
Format 2023-01-12 10:02:21 -06:00
Ayaz Hafiz
04cf7e070d
Weaken let-bindings to if expressions 2023-01-12 10:02:21 -06:00
Ayaz Hafiz
39b6a509eb
Fix gen test with list 2023-01-12 10:02:21 -06:00
Ayaz Hafiz
9462f44bb7
Weaken variables bound to when expressions 2023-01-12 10:02:21 -06:00
Ayaz Hafiz
a2f04d1fa3
Weaken single quotes 2023-01-12 10:02:21 -06:00
Ayaz Hafiz
b2cdddbdfb
Weaken lists 2023-01-12 10:02:20 -06:00
Ayaz Hafiz
caa3a6c6a8
Weaken strings 2023-01-12 10:01:56 -06:00
Ayaz Hafiz
173d070175
Weaken expects 2023-01-12 10:01:56 -06:00
Ayaz
fdb4fe66ee
Merge pull request #4820 from joshuawarner32/remove-parser-generator
Remove accidentally committed parser generator
2023-01-11 23:14:52 -06:00
Richard Feldman
dc8eb81bb2
Omit more unnecessary fields from record diffs 2023-01-11 23:18:53 -05:00
Folkert de Vries
386983a657
Merge pull request #4881 from roc-lang/rename-rank-none
Rename rank none to rank generalized
2023-01-12 00:25:24 +01:00
Ayaz
8bca5840b9
Merge pull request #4880 from roc-lang/weakening-2
Implement weakening of variables introduced in branch patterns
2023-01-11 16:46:54 -06:00
Ayaz
65e3dae68e
Merge pull request #4879 from roc-lang/pattern-as-mono
implement standard as patterns in mono IR
2023-01-11 16:16:16 -06:00
Ayaz Hafiz
d214598a16
Rename rank none to rank generalized 2023-01-11 14:55:18 -06:00
Ayaz Hafiz
4c79f36954
Update wasm layout sizes 2023-01-11 14:39:12 -06:00
Ayaz Hafiz
cde83e9078
Remove an accidentally gen-dev addition 2023-01-11 14:39:12 -06:00
Ayaz Hafiz
1960f429bd
Cleanup of lints 2023-01-11 14:39:12 -06:00
Ayaz Hafiz
6e0e11ea79
Avoid needless re-entry to the interner 2023-01-11 14:39:12 -06:00
Ayaz Hafiz
68d6de79de
Don't make from_reserved_index public 2023-01-11 14:39:11 -06:00
Ayaz Hafiz
856ee91642
Add layout interner tests and fix a bug with lambda set interner 2023-01-11 14:39:11 -06:00
Ayaz Hafiz
ee7e9d4ab5
Update gen wasm 2023-01-11 14:39:11 -06:00
Ayaz Hafiz
55b8aaebda
Update roc glue 2023-01-11 14:39:11 -06:00
Ayaz Hafiz
d4b60052b0
Update gen wasm tests 2023-01-11 14:39:11 -06:00
Ayaz Hafiz
52c16d2f35
Fix layout ref in gen tags 2023-01-11 14:39:11 -06:00
Ayaz Hafiz
f321369f4d
Fixing comparing runtime representations of layouts 2023-01-11 14:39:11 -06:00
Ayaz Hafiz
03ece6e274
Update llvm backend 2023-01-11 14:39:10 -06:00
Ayaz Hafiz
9d70c45781
Update wasm backend 2023-01-11 14:38:43 -06:00
Ayaz Hafiz
6859c2e15c
Update dev backend 2023-01-11 14:38:42 -06:00
Ayaz Hafiz
45aa9768f7
Hide lambda set runtime representation 2023-01-11 14:38:42 -06:00
Ayaz Hafiz
fa8effd3e8
Make all layouts interned in mono 2023-01-11 14:38:41 -06:00
Ayaz Hafiz
dc6b7003a8
Make layout methods easier on interner 2023-01-11 14:32:16 -06:00
Ayaz Hafiz
e14a0abb99
Store target info on layout interners 2023-01-11 14:32:16 -06:00
Ayaz Hafiz
31f3caef74
stand by Kawhi being the best 2023-01-11 14:30:38 -06:00
Ayaz Hafiz
058644aa96
Implement weakening of variables introduced in branch patterns
Variables introduced in branch patterns should never be generalized in
the new weakening model. This implements that. The strategy is:

- when we have a let-binding that should be weakened, do not introduce
  its bound variables in a new (higher) rank
- instead, introduce them at the current rank, and also solve the
  let-binding at the current rank
- if any of those variables should then be generalized relative to the
  current rank, they will be so when the current rank is popped and
  generalized
2023-01-11 14:28:46 -06:00
Ayaz Hafiz
7febddd1ea
Get rid of unneeded unsafe code and explain max_rank adjustment 2023-01-11 14:28:46 -06:00
Ayaz Hafiz
ddda00036e
Add more comments to solve 2023-01-11 14:28:46 -06:00
Ayaz Hafiz
5db82ad965
Explain why we currently cannot mark degeneralization in when headers 2023-01-11 14:28:46 -06:00
Ayaz Hafiz
c2cb94a927
Decide rank to work in for weakening 2023-01-11 14:28:46 -06:00
Ayaz Hafiz
5ccedca093
Implement de-generalization for weakened let bindings 2023-01-11 14:28:45 -06:00
Ayaz Hafiz
cb18291aa8
Loosen weakening restriction for now 2023-01-11 14:28:45 -06:00
Folkert de Vries
d8b2ff07f8
Merge pull request #4802 from roc-lang/valgrind-unit-tests
Valgrind unit tests
2023-01-11 19:45:28 +01:00
Folkert
cf15654ee5
implement standard as patterns in mono IR 2023-01-11 14:18:13 +01:00
Richard Feldman
94ccb0fd8d
Merge pull request #4849 from roc-lang/intern-layouts-5-lambda-set-layout-cache
Reduce layout intern allocations
2023-01-10 20:35:09 -05:00