146 Commits (137455b0f4365ba3fd11c45ce49781cdbe829ec3)
 

Author SHA1 Message Date
Danila Fedorin 137455b0f4 Get rid of more constructors and make mangled names optional. 3 years ago
Danila Fedorin 56bdbdc6ee Remove unneeded explicit calls to std::string 3 years ago
Danila Fedorin 58c6421681 Fix silent error in set_mangled_name 3 years ago
Danila Fedorin 77c9b27b26 Fix use of wrong environment for name mangling. 3 years ago
Danila Fedorin 418126ac1f Remove the parent method from type_env. 3 years ago
Danila Fedorin 39bc6bb99e Roll back optimization changes. 3 years ago
Danila Fedorin 8a44109f93 Use an instruction instead of a special-case boolean instruction. 3 years ago
Danila Fedorin fb5a8a5a73 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.
3 years ago
Danila Fedorin dfe47548cf Make a few more things classes. 3 years ago
Danila Fedorin a5597aeae0 Make global scope a class. 3 years ago
Danila Fedorin 127f51041b Make type_mgr a class. 3 years ago
Danila Fedorin f4b5069125 Make mangler a class and reformat graph. 3 years ago
Danila Fedorin 3fbca52845 Make env a class. 3 years ago
Danila Fedorin 8b897c9636 Make type_env a class. 3 years ago
Danila Fedorin 6a655827d3 Make llvm_context a class. 3 years ago
Danila Fedorin ed1f9a1460 Make some refactors for name mangling and encapsulation. 3 years ago
Danila Fedorin 18aac4c8fd Require mangled names for global variables. 3 years ago
Danila Fedorin 03465c07ce Refactor errors and update post draft. 3 years ago
Danila Fedorin 4cdb9360fb Factor type into case strategy constructor. 3 years ago
Danila Fedorin 9a591d6da6 Switch to using FILE* and default YY_INPUT. 3 years ago
Danila Fedorin 820a8bc5e9 Change constructor visibility to global.
Constructors are always effectively global.
3 years ago
Danila Fedorin 30b7b4143b Try out unboxing integers. 3 years ago
Danila Fedorin 362d9b05dc Enable more syntax. 3 years ago
Danila Fedorin 99f7f45d51 Actually use the environment for binop functions. 3 years ago
Danila Fedorin e7afa126c8 Stop using mangled names for local variables. 3 years ago
Danila Fedorin 688463570c Add assertion regarding local name mangling. 3 years ago
Danila Fedorin d3c719436a Move common code into loops. 3 years ago
Danila Fedorin a940503cea Add compile-time flag to disable output. 3 years ago
Danila Fedorin b23ffe1b21 Tweak parsed type error warning. 3 years ago
Danila Fedorin 828be79ab5 Make make_case_for throw from the second time on.
Also clean up the errors thrown a little bit.
3 years ago
Danila Fedorin 0e816e523a Add programs to trigger error cases. 3 years ago
Danila Fedorin 2ede230704 Add type errors to identifier nodes. 3 years ago
Danila Fedorin 87b51819e8 Prevent case compilation from crashing and burning. 3 years ago
Danila Fedorin b03e68bb28 Add more built-in boolean-specific instructions. 3 years ago
Danila Fedorin 9393e35a84 Register booleans as internal types. 3 years ago
Danila Fedorin b6df158280 Make sure to delete LLVM target machine. 3 years ago
Danila Fedorin adc95c8d04 Initialize graph indegree. 3 years ago
Danila Fedorin c7b2a4959f Add prototype impl of case specialization.
Boolean cases could be translated to ifs, and
integer cases to jumps. That's still in progress.
3 years ago
Danila Fedorin c1a8dc4557 Add 'internal' types. 3 years ago
Danila Fedorin 92a9ec2021 Replace throw 0 with real exceptions or assertions. 3 years ago
Danila Fedorin 1f7a53ccf6 Add sources for unification type errors. 3 years ago
Danila Fedorin 80f181cbb6 Add extra line after code fence. 3 years ago
Danila Fedorin 34357163cd Print locations in non-unification type errors. 3 years ago
Danila Fedorin 945d0f31c3 Add locations to patterns. 3 years ago
Danila Fedorin bdaa046a8c Require C++17 for optionals 3 years ago
Danila Fedorin 588ce99601 Add locations to error reporting. 3 years ago
Danila Fedorin 07ac3d72e4 Add a method to print location. 3 years ago
Danila Fedorin 2752703038 Touch up source index code. 3 years ago
Danila Fedorin c648e20a02 Keep track of locations in definitions. 3 years ago
Danila Fedorin 350a630213 Make driver keep track of line numbers and locations. 3 years ago