Commit graph

26 commits

Author SHA1 Message Date
Ayaz Hafiz
a0461679dd Restrict usages of type variables in non-generalized contexts
Type variables can only be used on functions (and in number literals as
a carve-out for now). In all other cases, a type variable takes on a
single, concrete type based on later usages. This check emits errors
when this is violated.

The implementation is to check the rank of a variable after it could be
generalized. If the variable is not generalized but annotated as a type
variable, emit an error.
2025-01-02 14:26:37 -06:00
Anton-4
9e05d21b3f
less verbose build debugging 2024-02-28 13:50:48 +01:00
Brian Carroll
26fdbaf4cd
Create a debug flag for build commands 2024-02-06 07:54:55 +00:00
Folkert
0247237fe8
WIP 2023-06-24 14:49:46 +02:00
Ayaz Hafiz
49a92e5ef1
Support fixpoint-fixing under recursion variables
Sometimes, we might need to fixpoint-fix a unification like

[ Bar [ Bar <a>, Foo ], Foo ] as <a>  🛠️  [ Bar <b>, Foo ] as <b>

where we hit a comparison between <a> and <b>. In this case, follow each
recursion point independently and see if we can find the chain to the needle
we were searching for.

Closes #5476
2023-06-13 17:15:11 -05:00
Ayaz Hafiz
8dc86a81b8
Rename ROC_VERIFY_OCCURS_RECURSION flag 2023-05-02 17:00:58 -05:00
J.Teeuwissen
00fcdd1a41
start drop_specialization 2023-04-20 13:06:51 +02:00
Brendan Hansknecht
f42f61e271
run a toml formatter and then clean it up a bit 2023-03-06 19:47:57 -08:00
Brendan Hansknecht
4a89bee0a5
centralize package versions except for vendor and excluded 2023-03-06 19:29:09 -08:00
Brendan Hansknecht
5485c8a5b0
update to using workspace package spec 2023-03-06 16:36:18 -08:00
Brian Carroll
b80278fe48
test_gen: create a debug flag to print wasm interpreter log 2022-12-14 08:42:01 +00:00
Ayaz Hafiz
a2b506ab1b
Add debug flag to check IR after specialization 2022-12-05 18:05:35 -06:00
Ayaz Hafiz
2e56405c1e
Fix obligation checking for rigid able vars 2022-12-03 13:17:34 -08:00
Ayaz Hafiz
48c0921cd2
Fix off by one conditional 2022-11-16 19:15:22 -06:00
Ayaz Hafiz
b8ff9f7b19
Simplify debug flag check 2022-11-16 14:15:16 -06:00
Ayaz Hafiz
76a3e92088
Fix debug flags for release mode 2022-11-16 14:05:53 -06:00
Ayaz Hafiz
a8b55dc794
Admit occurs check under recursive tag unions when programs have type errors 2022-11-16 14:05:53 -06:00
Luke Boswell
f3bdb5f321
updating rust package documentation 2022-11-03 20:00:06 +11:00
Folkert
15665d612d
add an env var that skips building the subs cache 2022-08-09 12:59:36 +02:00
Anton-4
6a15a7b41b
changed Cargo versions from 0.1.0 to 0.0.1 2022-08-03 11:41:19 +02:00
Folkert
f1d238cccf
add env var to make the final wasm file be written 2022-07-22 12:19:29 +02:00
Ayaz Hafiz
1440915395
Start generating void layouts for unbound type variables 2022-07-18 10:08:07 -04:00
Ayaz
7b308d9efe
Merge pull request #3404 from rtfeldman/ambient-lset-specialization
The ambient lambda set specialization algorithm
2022-07-09 17:23:27 -05:00
Ayaz Hafiz
0b427646e4
Continued progress on new lambda set compaction algorithm 2022-07-06 13:08:57 -04:00
ayazhafiz
937b73b797
Compile lambdas that have an empty lambda set
Closes #3224

This should also fix a number of other issues often observed when a
lambda is never actually called, but we fail to codegen because it has
an empty lambda set.
2022-07-06 12:49:01 -04:00
Anton-4
eee85fa45d
moved all crates into seperate folder + related path fixes 2022-07-01 17:37:43 +02:00