Commit graph

74 commits

Author SHA1 Message Date
Rakarake
bef7821756 ReaderT rewrite, recursive and cyclic calls should work 2023-03-24 00:55:05 +01:00
Rakarake
8f151b7531 Monomorphization of function applications should work 2023-03-21 17:15:15 +01:00
Rakarake
71d07ebf0f Fixed some internal errors 2023-03-21 15:59:47 +01:00
Rakarake
ec95e0d9ef Monomorphizer cleanup 2023-03-12 17:53:46 +01:00
Rakarake
e2db863c3e Fixed name clashes 2023-03-10 17:24:03 +01:00
Rakarake
96c4a2bddf Added test of multiple instanciations of same polymorphic function 2023-03-10 17:20:23 +01:00
Rakarake
224a165715 Unique names of new binds with different types 2023-03-09 18:52:35 +01:00
Rakarake
f10919ac20 Better tests 2023-03-09 18:32:00 +01:00
Rakarake
0e20670343 Added check for recursive calls 2023-03-08 17:52:41 +01:00
Rakarake
d377ded7e1 Deleted bad sample programs, added polymorphic call in polymorphic function test 2023-03-08 17:38:50 +01:00
Rakarake
63f9689f38 Simple polymorphic and monomorphic functions properly morphed in test demo. 2023-03-07 18:49:21 +01:00
Rakarake
887c3b8391 Working on bugs 2023-03-07 16:42:56 +01:00
Rakarake
8ca876a101 Most code written, no tests yet 2023-03-06 10:47:52 +01:00
Rakarake
dbc77ec5f3 Progress 2023-03-02 18:36:50 +01:00
Rakarake
514d79bd6c Strucute in place, MonomorpherIr module created 2023-03-01 13:50:01 +01:00
sebastianselander
2f45f39435 Incorporated most of main, as well as started on quickcheck 2023-02-27 11:12:05 +01:00
sebastianselander
06e65de235 started on a test suite 2023-02-23 11:54:35 +01:00
sebastianselander
5daa5573f2 Added more comments to the code 2023-02-22 15:24:38 +01:00
sebastianselander
8065576c31 Let has a bug, otherwise probably(?) done 2023-02-20 20:38:36 +01:00
sebastianselander
a98135827c EAdd is bugged. Mostly complete though. 2023-02-20 16:51:44 +01:00
sebastianselander
dfbdb6678e Working on non-ugly version of algorithm W (Hindley-Milner) 2023-02-20 12:09:31 +01:00
sebastianselander
420fb107f0 Commented code and fixed some bugs I think. Still not complete
id : Int -> Int
id x = x
does not type check
2023-02-19 15:25:49 +01:00
sebastianselander
db932048ba Tried fixing bug. Failed. 2023-02-19 02:10:57 +01:00
sebastianselander
8b5cd3cf9a Remade the algorithm myself. Still some bugs. 2023-02-18 23:08:27 +01:00
sebastianselander
f188cffb8d Unification part works (probably). Have a hard time understanding it. 2023-02-17 18:42:50 +01:00
sebastianselander
764faa582b Remove hls pragmas 2023-02-17 12:01:57 +01:00
sebastianselander
f2e8a02255 Removed adhoc tests 2023-02-17 12:01:22 +01:00
sebastianselander
a9f54dbca1 Simplified quite a bit. Made a unify function. Still bugs left 2023-02-17 11:09:48 +01:00
sebastianselander
eafe0fea0b Rewrote using unification-fd. Heavily inspired (aka copied) from:
https://byorgey.wordpress.com/2021/09/08/implementing-hindley-milner-with-the-unification-fd-library/
2023-02-16 16:37:36 +01:00
sebastianselander
f1b77a7efa Refactored. Cleaner version, ala Martin version 2023-02-15 19:52:52 +01:00
sebastianselander
b03df17e34 Minor changes. Added a comment 2023-02-15 18:10:28 +01:00
sebastianselander
7619e36c60 Inference works better now. Still work to do. Should use proper library 2023-02-15 17:40:18 +01:00
sebastianselander
ad3f6b7011 Attempt at fixing EApp, failed. 2023-02-14 22:35:00 +01:00
sebastianselander
5d247057f5 Minor rewrite of tc. Some bugs still left 2023-02-14 22:03:56 +01:00
sebastianselander
6218efac20 Renamer done.
It renames bound variables to numbers, converts let to lambda, and
removes all variables from binds
2023-02-14 16:44:38 +01:00
sebastianselander
53314551f5 A bit cleaner code. A renamer is the focus to make the tc simpler 2023-02-14 12:56:07 +01:00
sebastianselander
200a9e57ed Fixed EId, more work on other expressions needed 2023-02-14 10:12:38 +01:00
sebastianselander
c10d7703ad Progression on type checker ;) 2023-02-13 19:03:06 +01:00
sebastianselander
73dc2e4b6a Inference on most expressions. HM based.
Still have to figure out how to infer type of lambda variables, as well
as how function application on polymorphic should work
2023-02-13 12:17:49 +01:00
sebastianselander
a1e9624d5e TTGing the lambda lifter 2023-02-10 12:09:08 +01:00
sebastianselander
f4f1786be3 Revert "Merge branch 'typechecking' into codegen-martin-3"
This reverts commit e000e5159f, reversing
changes made to 3ac8377fa0.
2023-02-10 10:46:09 +01:00
Sebastian Selander
771c73c0db
Merge pull request #5 from bachelor-group-66-systemf/codegen-martin-3
Codegen martin 3
2023-02-10 10:33:50 +01:00
sebastianselander
e000e5159f Merge branch 'typechecking' into codegen-martin-3 2023-02-10 10:33:15 +01:00
Martin Fredin
3ac8377fa0 Fix auxiliary path 2023-02-09 20:25:00 +01:00
Martin Fredin
59fb773bc1 Some clean up and documenting 2023-02-09 20:24:25 +01:00
Martin Fredin
07bec3e7ef Add auxiliary module 2023-02-09 20:24:06 +01:00
Martin Fredin
7c313b3faa Fix basic tests 2023-02-09 20:23:49 +01:00
Martin Fredin
23261ec380 Add llvm dep 2023-02-09 20:23:20 +01:00
Martin Fredin
ce31e4d490 Fix first unnecessary supercombinator 2023-02-09 17:53:39 +01:00
sebastianselander
b6f03e953b deprecated branch 2023-02-09 09:42:44 +01:00