Goose  Timeline

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
  • Verifier: fixed havocing of individual members of aggregate types not working.
  • Added verification loop tests (both passing and failing) that modify a tuple inside of the loop.
check-in: e3b9bd4c1b user: achavasse tags: trunk
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
  • Fixed reference typechecking issues.
  • Fixed tuple initialization.
  • Added verification tests involving values stored in tuples.
check-in: 4be05b9f94 user: achavasse tags: trunk
2020-07-02
19:31
Added tests for tuples of references. check-in: 05ec684dbf user: achavasse tags: trunk
00:47
  • Added overloads to the comma operator to be able to construct tuples of references.
  • Fixed reference typechecking rules so that overloads taking values directly have priority over overloads taking references.
  • Fixed a template function expression parsing bug.
check-in: 04aea08600 user: achavasse tags: trunk
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