Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
30 check-ins using file bs/sema/substitute.cpp version 05409971eb
|
2021-02-11
| ||
| 11:59 | Fixed some long standing meson warnings, enabled more c++ warnings, and fixed them check-in: fbe6ea9f31 user: achavasse tags: trunk | |
|
2021-02-08
| ||
| 12:52 | Implemented forwarding, use it for decl assignments. check-in: 102a2b2fc7 user: achavasse tags: trunk | |
|
2021-02-05
| ||
| 22:58 | Sema: typecheck: try rules in descending scoring order until we find one that yields any result. check-in: aad44e1516 user: achavasse tags: trunk | |
|
2021-02-03
| ||
| 12:52 | Fix llvm passbuilder params to stop inadvertently enabling debug mode due to an api change. check-in: 29f1006d63 user: achavasse tags: trunk | |
|
2021-02-02
| ||
| 20:46 | CIR expressions pretty printing check-in: bcca4c51ba user: achavasse tags: trunk | |
|
2021-02-01
| ||
| 19:26 | Added a rule based system to pretty print EIR expressions in a less horrific way. check-in: 6675f81702 user: achavasse tags: trunk | |
| 12:56 | Correctly handle references to references, plus some code cleaning. check-in: ba909d1a94 user: achavasse tags: trunk | |
|
2021-01-21
| ||
| 21:05 | Removed the vector "typechecking rule", whose existence made no sense. Typechecking rules should operate only on values and pattern of values. Typechecking multiple values against multiple params is now done through a specific function instead. check-in: 7b9f645074 user: achavasse tags: trunk | |
|
2021-01-13
| ||
| 11:46 | Sema: simplification: the "half-unification" rules don't need to be generators, they can only output one result. check-in: 3bf30e74ac user: achavasse tags: trunk | |
|
2021-01-12
| ||
| 21:08 | Implemented missing lowering of reference types to pointer types, added a bunch of runtime/compilation time reference tests. check-in: 90c951f66f user: achavasse tags: trunk | |
|
2021-01-11
| ||
| 20:20 | Reorganized symbols visibility a bit to avoid local variables from the enclosing function to be visible inside of function parameter list declarations (which prevented reusing them as parameter names). check-in: 52280a3c5c user: achavasse tags: trunk | |
|
2021-01-07
| ||
| 16:26 | Fixed template references. check-in: 54e783e254 user: achavasse tags: trunk | |
|
2021-01-03
| ||
| 18:34 | Fixed a bug with addresses computed during compilation time execution. Mutating values through references passed as parameters now works, at compilation time at least. check-in: 3eebbcff0c user: achavasse tags: trunk | |
| 15:44 | cir: load, store and select store their base addresses directly as cir instructiions, rather than wrapped into eir values, which is useless there. check-in: 4cc7a833f8 user: achavasse tags: trunk | |
|
2021-01-02
| ||
| 18:24 | Yet one more reference/address refactor: each calculation step (getting temp addr, getting var addr, selecting a member) is now a separate cir instruction. We need this level of generalization to be able to obtain addresses from anywhere, including variables and function parameters. check-in: 26c691ecb9 user: achavasse tags: trunk | |
| 18:00 | Some more renaming. check-in: 0345b9f807 user: achavasse tags: trunk | |
|
2020-12-27
| ||
| 14:40 | Renamed "ir" to "eir" (expression intermediate representation) and "llr" to "cir" (code intermediate representation) for clarity. check-in: 7d2def7b75 user: achavasse tags: trunk | |
|
2020-12-26
| ||
| 14:59 | Build fix check-in: c8058eaaf9 user: achavasse tags: trunk | |
|
2020-12-18
| ||
| 01:29 | References refactor: references are now values all the way to the llr, where a new "CalcAddress" instruction represents a conversion from a logical address (location + path) into an actual runtime or compilation time address. This is in preparation to allow references to be stored in variables or passed as parameters. (It just took 4.5 months to finish this... Refactoring just sucks) check-in: 8ddd71f9b2 user: achavasse tags: trunk | |
|
2020-08-02
| ||
| 19:26 | Execute: use a proper call stack so that we'll be able later on to reference values living on the caller's stack to be able to pass references around at compilation time. check-in: 151e3b4d8c user: achavasse tags: trunk | |
|
2020-07-07
| ||
| 21:08 | When creating a reference to a local variable, if it contains a reference, just unwrap it. check-in: 421381dc15 user: achavasse tags: trunk | |
|
2020-07-06
| ||
| 19:49 | Fixes for the current git version of clang/llvm. check-in: 834d8f14b9 user: achavasse tags: trunk | |
|
2020-07-05
| ||
| 20:15 | Implemented reference parsing. check-in: 086a58a7a3 user: achavasse tags: trunk | |
|
2020-07-04
| ||
| 13:08 |
| |
| 12:24 | Verification: fixed a bug with address havocing. check-in: 879d75711b user: achavasse tags: trunk | |
|
2020-07-03
| ||
| 23:09 | Removed a couple of obsolete comments. check-in: 4dd8529aac user: achavasse tags: trunk | |
| 23:03 |
| |
|
2020-07-02
| ||
| 19:31 | Added tests for tuples of references. check-in: 05ec684dbf user: achavasse tags: trunk | |
| 00:47 |
| |
|
2020-06-27
| ||
| 22:05 | Clearly separate the type checking rules and the unification rules, instead of lumping them all together in a single set of patterns which is increasingly confusing. check-in: b64ea47f6b user: achavasse tags: trunk | |