Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
54 check-ins using file bs/builtins/types/template/tvar.cpp version 4b53aa48f8
|
2021-09-12
| ||
| 13:43 | Small cleanup check-in: 9345aa6eae user: achavasse tags: trunk | |
| 13:42 | Adopted a new convention for source extensions: .g0 for prelude code (where most language features won't be available), .g1 for user code check-in: 45f663093d user: achavasse tags: trunk | |
| 12:34 | Split out the compile time api function out of builtins and into their own library check-in: b397dc5a7c user: achavasse tags: trunk | |
|
2021-09-11
| ||
| 23:40 | Builtins: api: added an object to wrap a term reference check-in: 5a2d5b8a8b user: achavasse tags: trunk | |
| 23:02 | Builtin funcs: added a wrapper for constant valued parameter (to be able to overloaded api functions depending on enum values) check-in: f4ea7d08af user: achavasse tags: trunk | |
| 19:44 |
| |
| 15:05 |
| |
|
2021-09-10
| ||
| 00:02 | Parser: when parsing a function overload, instead of directly adding it to the overload set, push an "Overload" value that performs the addition in DropValue(). This will allow operators to modify overloads before they are added to an overload set. check-in: 5f4eeaef12 user: achavasse tags: trunk | |
|
2021-09-09
| ||
| 18:21 | Implemented the $$ operator to create a forwarding template variable check-in: 9b9f4b0fa9 user: achavasse tags: trunk | |
| 18:12 | Implemented non-builtin intrinsic function invocation check-in: 121560d1c1 user: achavasse tags: trunk | |
|
2021-09-01
| ||
| 23:26 | Some cleanup and small reorganization in preparation for implementing non builtin intrinsic functions check-in: bbd2c17c42 user: achavasse tags: trunk | |
|
2021-08-31
| ||
| 23:10 |
| |
|
2021-08-29
| ||
| 21:49 |
| |
| 19:13 | Removed stray debugging code. check-in: 7e15ecf852 user: achavasse tags: trunk | |
|
2021-08-28
| ||
| 17:55 |
| |
|
2021-06-15
| ||
| 21:14 | Small fixes check-in: 05a35f70f0 user: achavasse tags: trunk | |
|
2021-06-11
| ||
| 11:42 |
| |
|
2021-04-11
| ||
| 13:10 | Implemented a way to track down (in debug builds) which typechecking rules were used to select a given function overload that doesn't involve peppering half the code base with debug prints and then painstakingly poring over a gigantic log check-in: 4ece399a6f user: achavasse tags: trunk | |
|
2021-03-19
| ||
| 21:49 | Verification: when loading a value from memory, emit assumptions for its type's refinement conditions. check-in: 5d2f26492e user: achavasse tags: trunk | |
|
2021-03-18
| ||
| 12:42 | Verifier: get rid of a helper that's no longer needed check-in: 3e169a34af user: achavasse tags: trunk | |
|
2021-03-17
| ||
| 12:17 | Verifier: force z3 to use its old arithmetic solver for now to prevent one of the verifier test to hang with recent z3 versions. check-in: 71c91d9322 user: achavasse tags: trunk | |
| 00:41 |
| |
|
2021-03-05
| ||
| 17:56 | Implemented refinement type predicate unification. Predicate violations by variable initialization are now properly detected. check-in: b2945b5bb1 user: achavasse tags: trunk | |
|
2021-03-04
| ||
| 23:22 | Improved diagnostics rendering a little check-in: 3ca76452a1 user: achavasse tags: trunk | |
| 21:47 |
| |
|
2021-03-02
| ||
| 22:51 | Removed magic "tuple of types to tuple type" conversions and moved them into extension points so that any type can implement similar semantics check-in: 2370e98869 user: achavasse tags: trunk | |
|
2021-03-01
| ||
| 20:21 | Split the verification tests into more subdirectories. check-in: 48b0306e20 user: achavasse tags: trunk | |
| 12:32 | Reorganized tests, they are now grouped by language feature. check-in: 5e757567a6 user: achavasse tags: trunk | |
|
2021-02-25
| ||
| 20:38 | Small cleanup check-in: 9d548bcd22 user: achavasse tags: trunk | |
| 20:35 | Fixed the creation of references to tuple types, and a reference typechecking rule priority issue. Re-enabled the last previously disabled reference test, which now works again. check-in: 2f6b5946cf user: achavasse tags: trunk | |
| 18:37 | CodeBuilder: minor optimization check-in: 7f3be49341 user: achavasse tags: trunk | |
| 12:10 | Implemented a new method to order function overloads. Enabled several new reference tests which are now working properly. check-in: 52ea24b083 user: achavasse tags: trunk | |
|
2021-02-21
| ||
| 17:15 | Improved the #DumpValue debugging intrinsic check-in: cb0fd19317 user: achavasse tags: trunk | |
|
2021-02-19
| ||
| 20:48 | Fix anonymous functions not getting compiled anymore due to an old bug. Added a test for that, since it turns out there weren't any check-in: 22b3b50b4f user: achavasse tags: trunk | |
|
2021-02-18
| ||
| 20:32 | Removed stray debugging profanity. check-in: 8cdafa4fa4 user: achavasse tags: trunk | |
| 19:35 |
Implemented reference initialization, so reference local variables can now be declared, and added a typechecking rule preventing template variables to bind to reference types.
Then fixed a MILLION horrible problems caused by all that. Now almost everything works again. *sobs* check-in: 9b058524b4 user: achavasse tags: trunk | |
|
2021-02-13
| ||
| 21:21 | Hole unification: preserve the flavor term check-in: 9d94af0817 user: achavasse tags: trunk | |
|
2021-02-12
| ||
| 23:57 | Added a "flavor" term to holes to be able to have specific rules for TVar holes and for forwarding holes. Refactored forwarding holes to use this, instead of being represented as compound expressions (which would probably have broken down horribly in some complex type checking scenarios) check-in: 176ee856a6 user: achavasse tags: trunk | |
|
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 | |