Goose  Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

14 check-ins using file bs/codegen/module.h version 3b4f3ede86

2019-09-07
17:10
ir: got rid of the code to merge and to match two tries, which isn't used and is unlikely to be needed at this point. check-in: e9ee5d4728 user: achavasse tags: trunk
16:53
ir: rewrote the super inefficient "term versus trie" matching function. This speeds up everything significantly: compiling the mandelbrot sample is no longer embarrassingly slower than compiling an equivalent c++ version with clang. check-in: 0db33d7cb4 user: achavasse tags: trunk
2019-08-31
14:57
  • Unification: anonymous holes are substituted with their content right away, since otherwise they don't get substituted before the second pass.
  • When a tuple of types is used as a param type, it is converted to a tuple type.
  • Fix comma operator not correctly handling prepending a value to an open tuple.
  • Added tests for various tuple based features.
check-in: 1099848ccd user: achavasse tags: trunk
2019-08-30
01:07
The tuple assignment and compound assignment operators now first collect the results into temporary variables, and then perform the assignments. This allows things such as a,b = b,a to work. check-in: 982d26433b user: achavasse tags: trunk
2019-08-29
20:50
Implemented an unification rule for tuples. It is now possible to put multiple variable declarations in a tuple and initialize them using another tuple. check-in: aee9a8fb25 user: achavasse tags: trunk
20:12
Params are now encoded distinctly from normal values, to allow for more generic unification rules for things suchs as BigInt versus Integer. check-in: 6e598fe891 user: achavasse tags: trunk
2019-08-28
00:01
  • Made it possible to store non-resolved local variables in tuples.
  • Implemented DestroyValue and DropValue for tuples.
  • Implemented most operators for tuples.
check-in: adf946f1f5 user: achavasse tags: trunk
2019-08-27
21:40
Extended the comma operator to be able to handle the concatenation of, and prepending values to open tuples. check-in: 537ae5ab51 user: achavasse tags: trunk
21:10
When parsing a decl that immediately precedes a paren block (ie a function decl), use a lower precedence than the comma operator, to allow a non-parenthesized tuple to be used as the return type. check-in: 0052ff08b3 user: achavasse tags: trunk
20:27
Tuples containing only types or other tuples of types are now considered types. check-in: 533d2ce579 user: achavasse tags: trunk
19:46
Live values are now identified by an unique id to avoid using a fragile, non future proof way to extend the lifetime of local variables beyond their containing statements. check-in: 39cabb3447 user: achavasse tags: trunk
2019-08-26
00:18
Implemented local variable destruction (through the DestroyValue() extension point), and setup proper visibility and lifetime rules for variables declared inside of statements. check-in: c2b2425c0c user: achavasse tags: trunk
2019-08-25
02:15
Small cleanups and re-enable llvm optimizations when compiling. check-in: dc199732f8 user: achavasse tags: trunk
01:54
  • Got rid of the LoadConstInt instruction and directly handle integer constants in codegen. The old system didn't work for compile-time evaluated runtime integers.
  • Added missing implementations for unsigned comparison, that were somehow forgotten.
  • Implemented the nullptr constant.
  • Made a test version of the mandelbrot sample that gets both compiled and interpreted and whose results are compared with the same reference file, as a sanity test that interpreted and compiled code behave identically.
check-in: 9a68159d52 user: achavasse tags: trunk