Commit Graph

94 Commits

Author SHA1 Message Date
Danila Fedorin a1d679a59d No longer destroy the list of free variables.
It so happens that this list will tell us which variables
need to be captured.
2020-05-30 23:29:36 -07:00
Danila Fedorin 4586bd0188 Check for free variables in the environment before generalizing. 2020-05-30 16:40:27 -07:00
Danila Fedorin a97b50f497 Add parsing of let/in. 2020-05-28 14:44:12 -07:00
Danila Fedorin c84ff11d0d Add typechecking to let/in expressions. 2020-05-26 00:52:54 -07:00
Danila Fedorin e966e74487 Extract ordering functionality into definition group. 2020-05-25 23:58:56 -07:00
Danila Fedorin 3865abfb4d Add a struct to contain groups of mutually recursive definitions. 2020-05-25 22:11:45 -07:00
Danila Fedorin 1905601aaa Fork off the 12th version of the compiler. 2020-05-25 21:20:41 -07:00
Danila Fedorin 18339d7e4d Build and test version 11 of the compiler instead of 10.
continuous-integration/drone/push Build is failing Details
2020-04-26 21:28:34 -07:00
Danila Fedorin 78563448fb Update to LLVM 10.
continuous-integration/drone/push Build is failing Details
2020-04-26 21:24:24 -07:00
Danila Fedorin c1f0104edb Add missing arity checks to compiler series
continuous-integration/drone/push Build is failing Details
2020-04-14 19:21:33 -07:00
Danila Fedorin 1f00b6a3f8 Make compiler check for arity in part 11 of compiler series.
continuous-integration/drone/push Build is failing Details
2020-04-14 16:20:12 -07:00
Danila Fedorin acb22c4119 Finish draft of part 11 of compiler series 2020-04-14 16:19:54 -07:00
Danila Fedorin be2b855ffe Rename inaccurately named rule 2020-04-14 15:58:25 -07:00
Danila Fedorin 88c9418350 Update example to include polymorphism 2020-04-14 15:58:13 -07:00
Danila Fedorin b4c91d2dd4 Adjust grammar to allow for broader range of type inputs. 2020-04-13 23:17:34 -07:00
Danila Fedorin 98c1b5a3b2 Make substitution replace types at every lookup step 2020-04-13 17:59:57 -07:00
Danila Fedorin 122a1d73d3 Integrate new types into the rest of the project 2020-04-13 17:12:43 -07:00
Danila Fedorin 74e6dba914 Add parsed type data structure, type application and arity. 2020-04-13 17:08:03 -07:00
Danila Fedorin d7846e0b32 Fork off code for part 11 of compiler series.
continuous-integration/drone/push Build is failing Details
2020-04-09 23:48:53 -07:00
Danila Fedorin 8c1168d818 Add seemingly missing string includes. 2020-04-09 16:26:10 -07:00
Danila Fedorin 5cccb97ede Add missing source file
continuous-integration/drone/push Build is passing Details
2020-03-25 03:36:17 -07:00
Danila Fedorin 493419f324 Remove debug output
continuous-integration/drone/push Build is failing Details
2020-03-25 03:35:30 -07:00
Danila Fedorin 577e0ad930 Finalize draft of polymorphism post
continuous-integration/drone/push Build is failing Details
2020-03-25 03:22:21 -07:00
Danila Fedorin 2a12f7f31e Switch to using type schemes and implement polymorphism in compiler series 2020-03-24 23:04:51 -07:00
Danila Fedorin ae3e661d7a Implement new ordered typing in compiler series 2020-03-24 22:00:11 -07:00
Danila Fedorin 0efa05142f Separate definitions in compiler series 2020-03-24 21:08:06 -07:00
Danila Fedorin 6714e18e7c Switch type environment to using pointers 2020-03-24 18:04:01 -07:00
Danila Fedorin 5d53678e83 Only store type in case expression
continuous-integration/drone/push Build is passing Details
2020-03-24 17:53:06 -07:00
Danila Fedorin e3834ed6ea Explain graph code
continuous-integration/drone/push Build is passing Details
2020-03-14 21:04:13 -07:00
Danila Fedorin 1bdb4a650e Start work on algorithms in compiler post 10
continuous-integration/drone/push Build is passing Details
2020-03-14 17:18:06 -07:00
Danila Fedorin 6966973497 Set up script to test latest compiler version
continuous-integration/drone/push Build is passing Details
2020-03-10 22:26:02 -07:00
Danila Fedorin 8ee016e189 Fork into version 10 of the compiler for blog series 2020-03-10 20:58:26 -07:00
Danila Fedorin 33b1457e91 Add first draft of Idris post 2020-02-29 16:12:12 -08:00
Danila Fedorin 9e399ebe3c Add initial draft of typesafe interpreter post
continuous-integration/drone/push Build is passing Details
2020-02-27 23:09:51 -08:00
Danila Fedorin c207d1dfcf Remove unused line at the end of works1.txt 2020-02-23 21:26:37 -08:00
Danila Fedorin 0f744888ef Move testing code into a script 2020-02-11 18:37:21 -08:00
Danila Fedorin e7f0ccfa16 Finish compiler series 2020-02-10 19:18:55 -08:00
Danila Fedorin e5d01a4e19 Add the primes program from compiler series 2020-02-10 18:13:04 -08:00
Danila Fedorin b7d72f2fbf Implement garbage collection in runtime 2020-02-06 11:32:19 -08:00
Danila Fedorin 281dbbd174 Track allocated nodes using a G-machine struct in compiler series. 2020-02-06 10:05:26 -08:00
Danila Fedorin 8d22acfe78 Switch to single stack in runtime for Compiler Series 2020-01-31 15:29:12 -08:00
Danila Fedorin 803f52b2d0 Update the compiler to leave the stack clean 2020-01-27 20:29:01 -08:00
Danila Fedorin 2f96abeef6 Instantiate compiler for garbage collection 2020-01-27 14:52:25 -08:00
Danila Fedorin d9544398b9 Add homework 3 solution for CS325 2020-01-02 21:20:32 -08:00
Danila Fedorin 80410c9200 Extract common parsing code 2019-12-31 21:59:13 -08:00
Danila Fedorin 4e918db5cb Add the post for the second homework assignment. 2019-12-30 23:28:22 -08:00
Danila Fedorin 382102f071 Add solution to CS325 hw2 2019-12-30 20:04:39 -08:00
Danila Fedorin 19aa126025 Add the first post in CS325 series 2019-12-29 22:47:36 -08:00
Danila Fedorin 75664e90bb Add solutions for HW1 for CS325 madness 2019-12-27 23:20:37 -08:00
Danila Fedorin f74209c970 Add common code for CS325 madness 2019-12-27 23:20:18 -08:00