Commit Graph

201 Commits

Author SHA1 Message Date
Danila Fedorin 68910458e8 Properly handle null types in pattern typechecking. 2020-06-14 00:43:39 -07:00
Danila Fedorin 240e87eca4 Use mangled names in variable environments. 2020-06-13 23:43:52 -07:00
Danila Fedorin 6b5f7e25b7 Maybe finish the let/in code? 2020-06-01 00:23:41 -07:00
Danila Fedorin e7229e644f Start working on translation. 2020-05-31 18:52:52 -07:00
Danila Fedorin 08c8aca144 Start working on a lifted version of a definition. 2020-05-31 14:37:33 -07:00
Danila Fedorin 7f8dae74ac Adjust type output. 2020-05-31 00:50:58 -07:00
Danila Fedorin 08503116ff Mark some definitions as global, so as not to capture them. 2020-05-31 00:34:12 -07:00
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
Danila Fedorin c7ce8a3107 Add homework assignments 2019-12-27 23:18:00 -08:00
Danila Fedorin 3df9c57482 Fix naming issue (this is really a compiler bug) 2019-12-05 19:36:47 -08:00
Danila Fedorin db16dbda18 Fix incorrect CMakeLists.txt 2019-11-13 13:47:04 -08:00
Danila Fedorin 50fbe3e196 Finish draft of post 8 in compiler series 2019-11-06 21:10:53 -08:00
Danila Fedorin 2994f8983d Add the push operation in code in compiler series 2019-11-06 13:23:59 -08:00
Danila Fedorin 64227f2873 Finish implementation of compiler 2019-11-06 12:52:42 -08:00
Danila Fedorin 9aef499deb Factor out definition into separate file in compiler series 2019-11-05 10:40:51 -08:00
Danila Fedorin c79b5a4120 Start writing actual compillation code in compiler series 2019-11-05 00:42:33 -08:00
Danila Fedorin 81ee50d0d4 Implement function and type creation, add text to blog in compiler series 2019-11-04 18:25:54 -08:00
Danila Fedorin 43b140285f Fix missing line in runtime header in compiler series 2019-11-04 13:30:18 -08:00
Danila Fedorin 1f6032a30e Start work on chapter 8 code for compilers 2019-11-02 17:53:15 -07:00
Danila Fedorin 9531f4d8e3 Add chapter 8 starting code for compiler series 2019-11-02 16:38:11 -07:00
Danila Fedorin 3aa468c2f6 Remove debug printf 2019-10-31 14:38:06 -07:00
Danila Fedorin a834fd578e Finish initial draft of runtime posts. 2019-10-30 14:21:13 -07:00
Danila Fedorin 4b5e2f4454 Write some more about runetime 2019-10-30 00:19:56 -07:00
Danila Fedorin 7812b1064b Make progress on compiler posts 2019-10-26 20:30:29 -07:00
Danila Fedorin df0b819b0e Fix bug from small improvements 2019-10-10 17:59:44 -07:00
Danila Fedorin 21f90d85c5 Add finishing touches to code for part 6 of compiler series 2019-10-10 13:14:00 -07:00
Danila Fedorin 18e3f2af55 Fix definition to resolve its own types 2019-10-09 22:51:19 -07:00
Danila Fedorin 3901c9b115 Add print methods to instructions 2019-10-09 22:46:17 -07:00
Danila Fedorin d90993a93c Implement ast_case::compile for compiler series and reference code 2019-10-08 23:46:35 -07:00
Danila Fedorin 7e9bd95846 Write explanations of AST refactor in compiler series 2019-10-08 21:42:25 -07:00
Danila Fedorin d3d73e0e9c Fix up compile in compiler blog part 6, and add more text. 2019-10-08 14:10:05 -07:00
Danila Fedorin d9c151d774 Continue implementation of compilation 2019-10-01 23:23:52 -07:00
Danila Fedorin bcaa67cc7a Begin implementation of new environment 2019-10-01 14:34:38 -07:00
Danila Fedorin 8c0a6c834e Create new 'branch' for part 6 of compiler series 2019-10-01 11:05:21 -07:00
Danila Fedorin 05af1350c8 Add errors ection to Part 4 of compiler posts 2019-08-28 15:34:13 -07:00
Danila Fedorin 8ba501bd84 Add output and fix two bugs. 2019-08-26 21:05:44 -07:00
Danila Fedorin 6344ce11ce Add CMake file and code for post 4 2019-08-26 18:52:25 -07:00
Danila Fedorin 619c346897 Do the first round of revisions on part 3 2019-08-26 17:08:05 -07:00
Danila Fedorin 469cabda14 Backport fix for parser to post 2. 2019-08-26 00:14:45 -07:00
Danila Fedorin c2df5fdc78 Add the examples to the repo. 2019-08-26 00:13:34 -07:00
Danila Fedorin 918dfbe980 Drafts of code and markdown. 2019-08-26 00:13:10 -07:00
Danila Fedorin d60d4e61bd Add environment code 2019-08-26 00:11:38 -07:00
Danila Fedorin 1820a05fcc Write up type code 2019-08-25 16:42:23 -07:00
Danila Fedorin 0d275844d4 Start working on type code 2019-08-25 01:36:34 -07:00
Danila Fedorin 5acd08dcce Add copy of part 2 project for part 3 2019-08-25 01:10:55 -07:00
Danila Fedorin d1a84b6f30 Add a way to clean the generated files. 2019-08-06 14:24:39 -07:00
Danila Fedorin 8450e2c35d Address listed flaws in implementation 2019-08-06 14:24:26 -07:00
Danila Fedorin 34e967f364 Move code into folders for convenience 2019-08-06 13:56:32 -07:00
Danila Fedorin f6c6a2be28 Add main code to tie it all together 2019-08-05 00:10:10 -07:00
Danila Fedorin 85908ae0c4 Write first draft of Bison-based parser and lexer 2019-08-05 00:09:59 -07:00
Danila Fedorin 43d23963e2 I don't know C++. Improve constructors? 2019-08-05 00:08:13 -07:00
Danila Fedorin f42cb900cf Add the drafts of the two posts 2019-08-03 15:45:14 -07:00