Commit Graph

178 Commits

Author SHA1 Message Date
85394b185d Add prototype impl of case specialization.
Boolean cases could be translated to ifs, and
integer cases to jumps. That's still in progress.
2020-09-09 22:49:35 -07:00
86b49f9cc3 Add 'internal' types. 2020-09-09 18:08:38 -07:00
9769b3e396 Replace throw 0 with real exceptions or assertions. 2020-09-09 17:19:23 -07:00
e337992410 Add sources for unification type errors. 2020-09-09 15:26:18 -07:00
d5c3a44041 Add extra line after code fence. 2020-09-09 15:25:48 -07:00
eade42be49 Print locations in non-unification type errors. 2020-09-09 15:15:25 -07:00
d0fac50cfd Add locations to patterns. 2020-09-09 15:15:09 -07:00
dd4aa6fb9d Require C++17 for optionals 2020-09-09 15:14:37 -07:00
aa867b2e5f Add locations to error reporting. 2020-09-09 15:08:43 -07:00
2fa2be4b9e Add a method to print location. 2020-09-09 14:41:16 -07:00
d5536467f6 Touch up source index code. 2020-09-09 14:20:10 -07:00
67cb61c93f Keep track of locations in definitions. 2020-09-09 14:19:46 -07:00
578d580683 Make driver keep track of line numbers and locations. 2020-09-09 13:57:01 -07:00
789f277780 Update ASTs to actually take in locations.
Didn't realize I broke the build by leaving this out.
2020-09-09 13:29:28 -07:00
308ec615b9 Start using driver, and switch to file IO. 2020-09-09 13:28:43 -07:00
0e40c9e216 Enable locations. 2020-09-09 12:21:50 -07:00
5dbf75b5e4 Fork off version 13 of the compiler. 2020-09-08 18:38:05 -07:00
841930a8ef Add time traveling code. 2020-07-30 00:57:47 -07:00
d64a0d1fcd Add version of typesafe interpreter with tuples. 2020-07-23 16:38:54 -07:00
b078ef9a22 Remove implicit arguments from TypsafeIntrV2. 2020-07-22 14:30:47 -07:00
1f734a613c Add the second part of the typechecking post. 2020-07-19 22:56:44 -07:00
a3c299b057 Start working on the improved type-safe interpreter. 2020-07-19 17:16:31 -07:00
7c4cfbf3d4 Fix typechecking of mutually recursive functions. 2020-06-21 00:47:26 -07:00
8524e098a8 Make proofreading-based fixes. 2020-06-20 23:50:26 -07:00
971f58da9b Finish draft of part 12 of compiler series. 2020-06-20 22:03:57 -07:00
600d5b91ea Remove unneeded parent class. 2020-06-18 23:06:13 -07:00
ad1946e9fb Add first draft of lambdas. 2020-06-14 02:00:20 -07:00
68910458e8 Properly handle null types in pattern typechecking. 2020-06-14 00:43:39 -07:00
240e87eca4 Use mangled names in variable environments. 2020-06-13 23:43:52 -07:00
6b5f7e25b7 Maybe finish the let/in code? 2020-06-01 00:23:41 -07:00
e7229e644f Start working on translation. 2020-05-31 18:52:52 -07:00
08c8aca144 Start working on a lifted version of a definition. 2020-05-31 14:37:33 -07:00
7f8dae74ac Adjust type output. 2020-05-31 00:50:58 -07:00
08503116ff Mark some definitions as global, so as not to capture them. 2020-05-31 00:34:12 -07:00
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
4586bd0188 Check for free variables in the environment before generalizing. 2020-05-30 16:40:27 -07:00
a97b50f497 Add parsing of let/in. 2020-05-28 14:44:12 -07:00
c84ff11d0d Add typechecking to let/in expressions. 2020-05-26 00:52:54 -07:00
e966e74487 Extract ordering functionality into definition group. 2020-05-25 23:58:56 -07:00
3865abfb4d Add a struct to contain groups of mutually recursive definitions. 2020-05-25 22:11:45 -07:00
1905601aaa Fork off the 12th version of the compiler. 2020-05-25 21:20:41 -07:00
18339d7e4d Build and test version 11 of the compiler instead of 10.
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-26 21:28:34 -07:00
78563448fb Update to LLVM 10.
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-26 21:24:24 -07:00
c1f0104edb Add missing arity checks to compiler series
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-14 19:21:33 -07:00
1f00b6a3f8 Make compiler check for arity in part 11 of compiler series.
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-14 16:20:12 -07:00
acb22c4119 Finish draft of part 11 of compiler series 2020-04-14 16:19:54 -07:00
be2b855ffe Rename inaccurately named rule 2020-04-14 15:58:25 -07:00
88c9418350 Update example to include polymorphism 2020-04-14 15:58:13 -07:00
b4c91d2dd4 Adjust grammar to allow for broader range of type inputs. 2020-04-13 23:17:34 -07:00
98c1b5a3b2 Make substitution replace types at every lookup step 2020-04-13 17:59:57 -07:00
122a1d73d3 Integrate new types into the rest of the project 2020-04-13 17:12:43 -07:00
74e6dba914 Add parsed type data structure, type application and arity. 2020-04-13 17:08:03 -07:00
d7846e0b32 Fork off code for part 11 of compiler series.
Some checks failed
continuous-integration/drone/push Build is failing
2020-04-09 23:48:53 -07:00
8c1168d818 Add seemingly missing string includes. 2020-04-09 16:26:10 -07:00
5cccb97ede Add missing source file
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-25 03:36:17 -07:00
493419f324 Remove debug output
Some checks failed
continuous-integration/drone/push Build is failing
2020-03-25 03:35:30 -07:00
577e0ad930 Finalize draft of polymorphism post
Some checks failed
continuous-integration/drone/push Build is failing
2020-03-25 03:22:21 -07:00
2a12f7f31e Switch to using type schemes and implement polymorphism in compiler series 2020-03-24 23:04:51 -07:00
ae3e661d7a Implement new ordered typing in compiler series 2020-03-24 22:00:11 -07:00
0efa05142f Separate definitions in compiler series 2020-03-24 21:08:06 -07:00
6714e18e7c Switch type environment to using pointers 2020-03-24 18:04:01 -07:00
5d53678e83 Only store type in case expression
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-24 17:53:06 -07:00
e3834ed6ea Explain graph code
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-14 21:04:13 -07:00
1bdb4a650e Start work on algorithms in compiler post 10
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-14 17:18:06 -07:00
6966973497 Set up script to test latest compiler version
All checks were successful
continuous-integration/drone/push Build is passing
2020-03-10 22:26:02 -07:00
8ee016e189 Fork into version 10 of the compiler for blog series 2020-03-10 20:58:26 -07:00
33b1457e91 Add first draft of Idris post 2020-02-29 16:12:12 -08:00
9e399ebe3c Add initial draft of typesafe interpreter post
All checks were successful
continuous-integration/drone/push Build is passing
2020-02-27 23:09:51 -08:00
c207d1dfcf Remove unused line at the end of works1.txt 2020-02-23 21:26:37 -08:00
0f744888ef Move testing code into a script 2020-02-11 18:37:21 -08:00
e7f0ccfa16 Finish compiler series 2020-02-10 19:18:55 -08:00
e5d01a4e19 Add the primes program from compiler series 2020-02-10 18:13:04 -08:00
b7d72f2fbf Implement garbage collection in runtime 2020-02-06 11:32:19 -08:00
281dbbd174 Track allocated nodes using a G-machine struct in compiler series. 2020-02-06 10:05:26 -08:00
8d22acfe78 Switch to single stack in runtime for Compiler Series 2020-01-31 15:29:12 -08:00
803f52b2d0 Update the compiler to leave the stack clean 2020-01-27 20:29:01 -08:00
2f96abeef6 Instantiate compiler for garbage collection 2020-01-27 14:52:25 -08:00
d9544398b9 Add homework 3 solution for CS325 2020-01-02 21:20:32 -08:00
80410c9200 Extract common parsing code 2019-12-31 21:59:13 -08:00
4e918db5cb Add the post for the second homework assignment. 2019-12-30 23:28:22 -08:00
382102f071 Add solution to CS325 hw2 2019-12-30 20:04:39 -08:00
19aa126025 Add the first post in CS325 series 2019-12-29 22:47:36 -08:00
75664e90bb Add solutions for HW1 for CS325 madness 2019-12-27 23:20:37 -08:00
f74209c970 Add common code for CS325 madness 2019-12-27 23:20:18 -08:00
c7ce8a3107 Add homework assignments 2019-12-27 23:18:00 -08:00
3df9c57482 Fix naming issue (this is really a compiler bug) 2019-12-05 19:36:47 -08:00
db16dbda18 Fix incorrect CMakeLists.txt 2019-11-13 13:47:04 -08:00
50fbe3e196 Finish draft of post 8 in compiler series 2019-11-06 21:10:53 -08:00
2994f8983d Add the push operation in code in compiler series 2019-11-06 13:23:59 -08:00
64227f2873 Finish implementation of compiler 2019-11-06 12:52:42 -08:00
9aef499deb Factor out definition into separate file in compiler series 2019-11-05 10:40:51 -08:00
c79b5a4120 Start writing actual compillation code in compiler series 2019-11-05 00:42:33 -08:00
81ee50d0d4 Implement function and type creation, add text to blog in compiler series 2019-11-04 18:25:54 -08:00
43b140285f Fix missing line in runtime header in compiler series 2019-11-04 13:30:18 -08:00
1f6032a30e Start work on chapter 8 code for compilers 2019-11-02 17:53:15 -07:00
9531f4d8e3 Add chapter 8 starting code for compiler series 2019-11-02 16:38:11 -07:00
3aa468c2f6 Remove debug printf 2019-10-31 14:38:06 -07:00
a834fd578e Finish initial draft of runtime posts. 2019-10-30 14:21:13 -07:00
4b5e2f4454 Write some more about runetime 2019-10-30 00:19:56 -07:00
7812b1064b Make progress on compiler posts 2019-10-26 20:30:29 -07:00