Commit graph

614 commits

Author SHA1 Message Date
sebastian
aaaff776e0 Add some boiler plate for warnings 2023-04-02 00:42:42 +02:00
sebastian
6c180554ec Reworked order of inference, added prettifier for tvars etc etc. 2023-04-02 00:04:33 +02:00
sebastian
ec8d554af1 Disabled shadowing in pattern match with nice error message, added aux functions 2023-04-01 18:45:08 +02:00
sebastian
4b14cbdebf reverted Hindley-Milner type checker to before mutual recursion merge 2023-04-01 17:10:26 +02:00
Rakarake
ec57712eec Fixed bad names after monomorphizer 2023-03-31 19:43:05 +02:00
Rakarake
c6173c0077 Plus now working in monomorphizer 2023-03-31 19:25:48 +02:00
Rakarake
b8f717f39f Merge branch 'monomorphizer-data' into pattern-matching-with-typechecking 2023-03-31 18:59:05 +02:00
Rakarake
00e23a16dd Monomorphization of datatypes done! 2023-03-31 18:58:33 +02:00
sebastianselander
0749ca062d Merge in mutual recursion handling 2023-03-31 18:28:04 +02:00
sebastianselander
b7420b5adb Merge in mutual recursion handling 2023-03-31 18:27:30 +02:00
sebastianselander
c4f78ca37d Merge in mutual recursion handling 2023-03-31 18:26:58 +02:00
Samuel Hammersberg
e2e469d84e Added some examples that were shown to our handledare. 2023-03-31 18:17:28 +02:00
Samuel Hammersberg
b0ec5a2333 Started working on a Case Desugar phase. 2023-03-31 18:16:26 +02:00
Rakarake
15c18271ba Monomorphizer, fixed problem with type of bind 2023-03-31 17:53:56 +02:00
Rakarake
d097cd28e8 New morb tree for internal use in monomorphizer, data types implemented 2023-03-31 17:02:54 +02:00
Martin Fredin
7d2a0e60d8 Fixes 2023-03-30 19:07:12 +02:00
Martin Fredin
72352d9619 Use use tevars for bind without type signatures, fix recursive functions 2023-03-30 18:46:55 +02:00
Martin Fredin
4831205e67 Remove incorrect test 2023-03-30 18:46:55 +02:00
Samuel Hammersberg
5d2c0e787e The compiler is now compiled with O3. 2023-03-30 15:08:40 +02:00
Samuel Hammersberg
9b38c6d804 Main now prints the exit code of the program, as Haskell likes to hide segfaults. 2023-03-30 12:37:24 +02:00
Samuel Hammersberg
b3525db7fd Integrated the garbage collector. 2023-03-30 12:31:44 +02:00
Martin Fredin
bbe0d77a19 Add signature of inferred bind to allow some mutually defined definitions 2023-03-30 12:35:47 +02:00
Martin Fredin
a37a52d9f8 Apply env to return type. fixes #14 2023-03-30 11:50:33 +02:00
Samuel Hammersberg
2851c408d1 Added the updated GC. 2023-03-30 11:41:10 +02:00
sebastianselander
c4477d3df4 moved some funcs to aux, added a universal definition of int and char, updated usages in both tcs 2023-03-30 11:38:06 +02:00
sebastianselander
59676605cd moved injections back to state 2023-03-30 10:55:01 +02:00
sebastianselander
c34041860d duplicate signatures / declarations correct 2023-03-30 10:21:04 +02:00
sebastian
c4931c3996 Fixed bug in EApp, cleaned a bit, added todo for disallowing mutual recursion 2023-03-29 23:00:06 +02:00
Martin Fredin
aa1ff630a5 Fix double vars 2023-03-29 22:48:26 +02:00
sebastianselander
343be08a4a Tried solving bug, failed, added todo message, fixed printing 2023-03-29 18:47:54 +02:00
Samuel Hammersberg
61f364cd75 Splat up the codegenerator a bit. 2023-03-29 17:35:19 +02:00
sebastianselander
36b6a8f781 removed trace 2023-03-29 17:32:21 +02:00
sebastianselander
4efe7cf9a2 inference does not depend on order. mutual recursion still not working correctly 2023-03-29 17:30:52 +02:00
Rakarake
29fcddf44c Data defs in monomorphizer output environment 2023-03-29 17:05:56 +02:00
Samuel Hammersberg
53589e8d50 Made the output from running the compiler a bit clearer. 2023-03-29 16:54:30 +02:00
Samuel Hammersberg
d26bde6a7f Added a fun Maybe example! 2023-03-29 16:48:30 +02:00
Rakarake
d4115fd2f5 Monomoprhizer handles new types 2023-03-29 16:45:30 +02:00
Martin Fredin
c59cd02361 Lift lambdas in the scrutinized expression 2023-03-29 16:37:52 +02:00
Samuel Hammersberg
2f12fdd7e2 Removed a trace. 2023-03-29 15:29:53 +02:00
Samuel Hammersberg
f69151a7ce Fixed a bug with pattern matching on literals. 2023-03-29 15:12:33 +02:00
Samuel Hammersberg
82f1b38f1b Removed the Tjabatjena comment that the compiler generated. 2023-03-29 14:41:52 +02:00
Samuel Hammersberg
100b7b113a We got pattern matching on data types! 2023-03-29 14:31:24 +02:00
Rakarake
2860d47f11 Case expressions implemented in monomorphizer 2023-03-29 13:48:00 +02:00
Martin Fredin
4755f434fd Add test for pattern matching on recursive data types, and remove traces 2023-03-29 11:26:47 +02:00
Martin Fredin
52db1943bb Finished new check pattern 2023-03-29 11:26:47 +02:00
Martin Fredin
76b1c55065 Progress 2023-03-29 11:26:47 +02:00
Martin Fredin
133cc31e77 Fix lambda lifter 2023-03-29 11:26:47 +02:00
Martin Fredin
528369c95c Progress on new checkPattern 2023-03-29 11:26:47 +02:00
sebastian
f20b80cab3 added skomeliation on given type signatures 2023-03-28 23:19:04 +02:00
sebastian
7c5041d270 added this stupid complex bug to Bugs.md 2023-03-28 21:52:09 +02:00