Commit graph

208 commits

Author SHA1 Message Date
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
Samuel Hammersberg
7c1e1d57a0 Merge remote-tracking branch 'origin/main' into llvm_testing 2023-02-12 13:17:45 +01:00
Martin Fredin
3fe990ceaa Don't run interpreter by default 2023-02-12 13:01:12 +01:00
Samuel Hammersberg
818e57ff14 Updated main to use the updated Code Generator. 2023-02-11 14:14:21 +01:00
Samuel Hammersberg
5d5a610cca Made compiler state more generic, and compile no longer outputs IO and instead returns the result. 2023-02-11 14:12:27 +01:00
Martin Fredin
d67eddcf0f Fix interpreter 2023-02-11 11:04:39 +01:00
Martin Fredin
e212c79a44 Revert back to one lambda par, and fix issues with lambda lifter 2023-02-11 09:59:26 +01:00
Martin Fredin
f3600ffdf8 Fix documentation and small things 2023-02-10 16:45:33 +01:00
Martin Fredin
5956cdf121 Fix typo 2023-02-10 16:45:33 +01:00
Martin Fredin
8688b303ac Fix unnecessary supercombinator issue 2023-02-10 16:45:33 +01:00
Martin Fredin
ece621b0aa Fix auxiliary path 2023-02-10 16:45:33 +01:00
Martin Fredin
8663f2ea50 Some clean up and documenting 2023-02-10 16:45:33 +01:00
Martin Fredin
08917be1c6 Fix first unnecessary supercombinator 2023-02-10 16:45:33 +01:00
Martin Fredin
69254f8032 Finish Lambda Lifter 2023-02-10 16:45:33 +01:00
Martin Fredin
2a48b7477e Implement lambda lifting passes: freeVars, abstract, and rename 2023-02-10 16:45:33 +01:00
Martin Fredin
b64b49b1eb Remove files from git 2023-02-10 16:45:33 +01:00
Martin Fredin
61efcebc64 Fix conflict 2023-02-10 16:45:33 +01:00
Samuel Hammersberg
e7ef268c12 Splat LLVM Ir into its own file. 2023-02-10 16:08:45 +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
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
ce31e4d490 Fix first unnecessary supercombinator 2023-02-09 17:53:39 +01:00
Samuel Hammersberg
7a0ff5d708 Formatted and documented code. 2023-02-09 09:45:05 +01:00
sebastianselander
b6f03e953b deprecated branch 2023-02-09 09:42:44 +01:00
Martin Fredin
7a2404cf74 Finish Lambda Lifter 2023-02-09 06:19:58 +01:00
Martin Fredin
1f47288fcf Implement lambda lifting passes: freeVars, abstract, and rename 2023-02-09 05:19:51 +01:00
Martin Fredin
b669381572 Remove files from git 2023-02-09 05:18:49 +01:00
Samuel Hammersberg
dbbbc725ea Stuck at a conundrum 2023-02-06 16:49:29 +01:00
Samuel Hammersberg
721192c242 Started implemented multiple functions. 2023-02-06 15:44:54 +01:00
Samuel Hammersberg
d41db9bbb8 Added some more to the comment of binExprToValues 2023-02-04 15:25:28 +01:00
Samuel Hammersberg
cd47f7dde3 renamed evalToValues to binExprToValues 2023-02-04 15:21:04 +01:00
Samuel Hammersberg
d779605814 Added the src/Grammar folder to the gitingore. 2023-02-04 15:12:32 +01:00
Samuel Hammersberg
66fb77c84e Added some missing math operators 2023-02-04 15:11:56 +01:00
Samuel Hammersberg
026949ae7e Added support for subtraction 2023-02-04 13:20:46 +01:00
Samuel Hammersberg
f8d320bb6d Heavily shorted down the emitAdd function, and added a emitInt function. 2023-02-04 12:43:47 +01:00
Samuel Hammersberg
57f8b6ba5b Optimized add even further. 2023-02-04 11:35:57 +01:00
Samuel Hammersberg
f9c5a520e3 Implemented addition. 2023-02-04 11:29:59 +01:00
Samuel Hammersberg
819f4c9406 Made a simple code generator that outputs to LLVM IR 2023-02-03 16:59:36 +01:00
sebastianselander
be3fcfc9e3 Typeinference/checking on expressions done.
Simplified the typechecker a bit, removed GADT solution for now.
Still not fully working
2023-01-24 16:39:22 +01:00
Samuel Hammersberg
defe409d78 Added a comment about the includeStr "macro" 2023-01-24 11:43:54 +01:00
Samuel Hammersberg
fd64a7e669 Added a function to load the Standard LLVM library at runtime. 2023-01-24 11:38:33 +01:00
sebastianselander
b6b2dfa25f Some work on a typechecker 2023-01-23 17:17:06 +01:00