Commit graph

64 commits

Author SHA1 Message Date
Rakarake
59da6d8864 Fixed printing bug in MorbIr, fixed Monomorphizer forgetting to output constructors on EInj 2023-05-01 16:14:01 +02:00
Martin Fredin
0fb13f59fb Remove bad program 2023-05-01 10:47:07 +02:00
Martin Fredin
a87862a99f Fix sample programs 2023-04-29 16:02:51 +02:00
Martin Fredin
619242ccaf Fix lambda lifter 2023-04-29 15:52:37 +02:00
Rakarake
3729278041 Unreachable branhces are removed, fixed a nasty bug in monomorphizer 😸 2023-04-27 16:44:30 +02:00
Rakarake
579153b679 Merged 2023-04-27 14:02:10 +02:00
Rakarake
60e12b622e Using type annotations in case expressions, monomorphizer now handles case expressions without crashing 2023-04-27 13:55:54 +02:00
Samuel Hammersberg
d026dca42f Attacked the code generator and added bool support. 2023-04-27 13:49:00 +02:00
Rakarake
2611ddc2b2 Fixed wrong handeling of EAdd in monomorphizer, as well as more documentation and cleanup 2023-04-18 15:48:25 +02:00
Rakarake
a23269f907 Fixed small bug in monomorphizer 2023-04-17 15:53:16 +02:00
Rakarake
c2bf6312f6 Monomorphizer now outputs constructors that are matched on but not created 2023-04-12 16:36:22 +02:00
Martin Fredin
a109b3010d Fix bad inference on case expression, and make pretty for report 2023-04-08 21:52:57 +02:00
Martin Fredin
9870802371 Add implicit foralls for bidir, update and unify pipeline 2023-04-05 17:26:52 +02:00
Rakarake
c6e0e40ef1 Monomorphizer now monomorphizes data 2023-04-05 03:03:42 +02:00
Martin Fredin
03bb6a8534 Fix sample-program 2023-04-03 09:42:14 +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
Samuel Hammersberg
e2e469d84e Added some examples that were shown to our handledare. 2023-03-31 18:17:28 +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
bbe0d77a19 Add signature of inferred bind to allow some mutually defined definitions 2023-03-30 12:35: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
Rakarake
b35c19572f Newer changes 2023-03-28 15:26:35 +02:00
Rakarake
4a6c72fce0 Removed codegen to compile, type seem to work for newly added example 2023-03-27 20:11:49 +02:00
Rakarake
0d23a59f0c Merged into commit not compiling on codegen 😤 2023-03-27 19:14:35 +02:00
Martin Fredin
ac3f222753 Add bidirectional type checker, lambda lifter. 2023-03-27 16:07:11 +02:00
Samuel Hammersberg
ccfae19541 Added .crf to every sample-program 2023-03-26 18:38:07 +02:00
Samuel Hammersberg
7e246a94e5 Fixed a segfault. 2023-03-24 19:57:49 +01:00
sebastianselander
56ccd793ac more error messages and better unification 2023-03-24 18:21:07 +01:00
sebastianselander
41fc863658 added PEnum 2023-03-24 17:39:34 +01:00
Samuel Hammersberg
d6d0fb7146 Enabled compiling to llvm again. 2023-03-24 17:29:00 +01:00
Samuel Hammersberg
b1209b3353 Updated the monomorphizer to the new tree. 2023-03-24 17:13:56 +01:00
Samuel Hammersberg
d3d173eb59 Merge remote-tracking branch 'origin/typechecking-merge' into pattern-matching-with-typechecking 2023-03-23 16:33:05 +01:00
sebastianselander
8d1330ad42 typechecker is compatible with one extra addition to the spec 2023-03-23 11:13:48 +01:00
sebastianselander
936cb1301f new grammar and adapted renamer 2023-03-22 12:45:51 +01:00
sebastianselander
88a4a934b8 added more manual tests 2023-03-22 10:32:22 +01:00
Samuel Hammersberg
bbf7a47e74 Started updating the Code Generator to the new monomorphizer tree. 2023-03-21 09:39:05 +01:00
Rakarake
d377ded7e1 Deleted bad sample programs, added polymorphic call in polymorphic function test 2023-03-08 17:38:50 +01:00
Samuel Hammersberg
350cd3b0e9 Started importing Sebastian's new typechecker. 2023-03-08 11:01:07 +01:00
sebastianselander
fce54e7899 documented possible bad functions 2023-03-06 16:41:59 +01:00
sebastianselander
eef6fa7668 added new test and found another bug 2023-03-06 16:25:03 +01:00
sebastianselander
6947614fba Updated bug list & started working on more tests 2023-03-06 13:04:07 +01:00
Samuel Hammersberg
5d004f4286 Added calling conventions to functions. 2023-02-24 09:00:29 +01:00
Samuel Hammersberg
4df3f705ed LLVMIr code now has the fastcc flag to enable speeed 😎 2023-02-20 16:44:27 +01:00
Samuel Hammersberg
cd0f9dd456 The output directory is now cleared when the program is ran. 2023-02-20 15:27:13 +01:00
Samuel Hammersberg
a36de2bde1 Added support for the minus operator. 2023-02-20 14:52:11 +01:00
Samuel Hammersberg
6749650223 Added support for pattern matching on ints. Might need a lookover. 2023-02-20 14:39:43 +01:00
Martin Fredin
a3e57dde7b Change grammar: only one bind in let and no EAnn for typed syntax 2023-02-18 13:02:25 +01:00