Commit Graph

439 Commits

Author SHA1 Message Date
Danila Fedorin b459e9cbfe Update typesafe imperative language post draft. 2020-11-01 23:56:55 -08:00
Danila Fedorin 52abe73ef7 Make the typesafe imperative language work properly. 2020-10-31 01:34:23 -07:00
Danila Fedorin f0fe481bcf Add post about the typesafe imperative language. 2020-10-30 19:07:30 -07:00
Danila Fedorin 222446a937 Add non-color indication to highlighted lines. 2020-10-10 17:12:40 -07:00
Danila Fedorin e7edd43034 Add draft warning. 2020-09-27 16:22:29 -07:00
Danila Fedorin 2bc2c282e1 Revert "Experimentally enable shortcodes"
This reverts commit 5cc92d3a9d.
2020-09-27 14:47:25 -07:00
Danila Fedorin 5cc92d3a9d Experimentally enable shortcodes 2020-09-27 14:42:35 -07:00
Danila Fedorin 4be8a25699 Add a label to codelines that includes the source file. 2020-09-27 14:41:56 -07:00
Danila Fedorin d3421733e1 Update resume. 2020-09-25 22:52:07 -07:00
Danila Fedorin 4c099a54e8 Publish part 13. 2020-09-19 16:27:41 -07:00
Danila Fedorin 9f77f07ed2 Finish 13th part of the compiler series. 2020-09-19 16:14:07 -07:00
Danila Fedorin 04ab1a137c Mark 13th post as draft 2020-09-19 11:59:54 -07:00
Danila Fedorin 53744ac772 Fix wording 2020-09-18 15:14:34 -07:00
Danila Fedorin 50a1c33adb Adjust code lines. 2020-09-18 14:42:50 -07:00
Danila Fedorin d153af5212 Get rid of more constructors and make mangled names optional. 2020-09-18 14:09:03 -07:00
Danila Fedorin a336b27b6c Remove unneeded explicit calls to std::string 2020-09-18 12:27:57 -07:00
Danila Fedorin 97eb4b6e3e Fix silent error in set_mangled_name 2020-09-18 12:02:37 -07:00
Danila Fedorin 430768eac5 Add a TODO to part 13. 2020-09-17 22:56:08 -07:00
Danila Fedorin 5db864881a Fix use of wrong environment for name mangling. 2020-09-17 22:55:27 -07:00
Danila Fedorin d3b1047d37 Renamed the file since we have no optimization. 2020-09-17 22:36:43 -07:00
Danila Fedorin 98cac103c4 Update blog post, switching away from two sections. 2020-09-17 22:35:40 -07:00
Danila Fedorin 7226d66f67 Remove the parent method from type_env. 2020-09-17 22:35:12 -07:00
Danila Fedorin 8a352ed3ea Roll back optimization changes. 2020-09-17 20:45:24 -07:00
Danila Fedorin 02f8306c7b Use an instruction instead of a special-case boolean instruction. 2020-09-17 18:33:52 -07:00
Danila Fedorin cf6f353f20 Change tagging to assume sign extension.
ARM and x86_64 require "real" pointers to be
sign-extended in their top bits. This means
a working pointer is guaranteed to have either "11"
as leading bits, or "00". So, to tag a "fake" pointer
which is an unboxed 32-bit integer, we simply toggle
the leading bit.
2020-09-17 18:30:55 -07:00
Danila Fedorin 7a631b3557 Make a few more things classes. 2020-09-17 18:30:41 -07:00
Danila Fedorin 5e13047846 Make global scope a class. 2020-09-15 19:45:05 -07:00
Danila Fedorin c17d532802 Make type_mgr a class. 2020-09-15 19:19:58 -07:00
Danila Fedorin 55e4e61906 Make mangler a class and reformat graph. 2020-09-15 19:13:48 -07:00
Danila Fedorin f2f88ab9ca Make env a class. 2020-09-15 19:12:12 -07:00
Danila Fedorin ba418d357f Make type_env a class. 2020-09-15 19:10:36 -07:00
Danila Fedorin 0e3f16139d Make llvm_context a class. 2020-09-15 19:08:00 -07:00
Danila Fedorin 55486d511f Make some refactors for name mangling and encapsulation. 2020-09-15 18:51:28 -07:00
Danila Fedorin 6080094c41 Require mangled names for global variables. 2020-09-15 14:39:31 -07:00
Danila Fedorin 6b8d3b0f8a Refactor errors and update post draft. 2020-09-11 21:29:49 -07:00
Danila Fedorin 725958137a Factor type into case strategy constructor. 2020-09-11 13:03:00 -07:00
Danila Fedorin 1f6b4bef74 Start working on part 13 of compiler series. 2020-09-11 02:16:57 -07:00
Danila Fedorin fe1e0a6de0 Switch to using FILE* and default YY_INPUT. 2020-09-11 02:16:29 -07:00
Danila Fedorin 1f3c42fc44 Change constructor visibility to global.
Constructors are always effectively global.
2020-09-10 20:11:55 -07:00
Danila Fedorin 8bf67c7dc3 Merge branch 'master' of https://dev.danilafe.com/Web-Projects/blog-static into master 2020-09-10 18:47:55 -07:00
Danila Fedorin 13214cee96 Try out unboxing integers. 2020-09-10 17:32:16 -07:00
Danila Fedorin 579c7bad92 Enable more syntax. 2020-09-10 16:04:44 -07:00
Danila Fedorin f00a6a7783 Actually use the environment for binop functions. 2020-09-10 16:03:56 -07:00
Danila Fedorin 2a81fdd9fb Stop using mangled names for local variables. 2020-09-10 15:14:19 -07:00
Danila Fedorin 17c59e595c Add assertion regarding local name mangling. 2020-09-10 15:05:02 -07:00
Danila Fedorin ad2576eae2 Move common code into loops. 2020-09-10 14:50:03 -07:00
Danila Fedorin 72d8179cc5 Add compile-time flag to disable output. 2020-09-10 14:07:28 -07:00
Danila Fedorin dbabec0db6 Tweak parsed type error warning. 2020-09-10 14:04:06 -07:00
Danila Fedorin 76675fbc9b Make make_case_for throw from the second time on.
Also clean up the errors thrown a little bit.
2020-09-10 14:03:04 -07:00
Danila Fedorin ca395b5c09 Add programs to trigger error cases. 2020-09-10 14:02:19 -07:00