Goose  Timeline

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

50 most recent check-ins that include changes to files matching 'bs/eir/*'

2024-10-01
22:43
Commiting the current WIP for archival purpose before focusing on the inane rewrite in rust Leaf check-in: ce99bb3280 user: achavasse tags: cir-ssa-refactor
2024-09-15
21:15
  • Fix index Values EIR encoding
  • Fix CFG printer
check-in: 184c1add90 user: achavasse tags: cir-ssa-refactor
20:24
Add clang format settings, reformat everything check-in: 0db147f117 user: achavasse tags: cir-ssa-refactor
2024-09-13
21:05
Drop in the most apocalyptic changes: new CIR instruction structure, new sequence builder, new compile time address representation, do almost just the bare minimum to compile again. A few simple things are still working somehow check-in: 57d4d0c79e user: achavasse tags: cir-ssa-refactor
2024-08-31
14:05
Refactor Instruction to be just a variant instead of a class containing a variant and a clownshoes bunch of constructors check-in: 8ffbc35112 user: achavasse tags: cir-ssa-refactor
13:00
Update to clang 18, pull some of the deps automatically when configuring check-in: 6f52a8bfa3 user: zlodo tags: cir-ssa-refactor
2024-02-09
18:05
Lowering: completely reworked all lowering to happen in the same two unified extension points upstream of all three CIR consumers check-in: 1793989d05 user: zlodo tags: trunk
2023-11-05
13:04
Implemented inline functions check-in: 96c02f37d1 user: zlodo tags: trunk
2023-09-21
18:08
  • Add a compilation state to func CIR to prepare for inline funcs
  • Add a job queue to defer some compilation jobs
  • Refactor LocationId to store an actual location for poison values to help with debugging
check-in: e24e9bfad5 user: zlodo tags: trunk
2023-08-13
18:04
It turns out cmake hadn't, in fact, failed me for the last time: migrating back from meson to cmake check-in: 9722f7aa3f user: zlodo tags: trunk
2023-08-02
22:14
Update mimalloc and Catch check-in: 9ee0c01395 user: zlodo tags: trunk
2023-07-05
22:01
Some builtins to work with references during verification:
  • RefToAddr conversion function
  • dot operator overloads to extract the lifetime, origin and path of an address
check-in: 914b2e2af1 user: zlodo tags: trunk
2023-03-27
18:34
  • reworked value wrapping in intrinsics, unwrapping can now only happen for the returned value (for verification reasons)
  • removed the _ConvertFuncArg extension point, replaced it with _ConvertFuncArgs that operates on all of the args (so that we can do cross argument things in the prelude, will be needed for lifetimes)
check-in: f271454617 user: zlodo tags: trunk
2023-03-05
22:24
  • removed fmtlib, now use std::format
  • vastly improved the overload resolution debugging tools
  • prelude: started adding some extra error detection for small things that don't need to be builtin
  • prelude: started working on implementing #for for tuples, some stuff needs to be addressed still
  • fixed some type checking issue with wrapped args
  • fixed superfluous nested lifetime scope in brace blocks (which caused redundant calls to some extension points)
check-in: 4d4d76607a user: zlodo tags: trunk
2023-02-28
00:55
  • Intrinsic functions: no longer systematically wrap every argument. Instead, arguments that needs to be wrapped can be indicated by decorating their type with the WrappedArg type function.
  • Fixed several bugs related to forwarding template vars ($$whatever)
check-in: 9f242fb2ff user: zlodo tags: trunk
2023-02-07
15:49
Removed the ToType extension point, go through typechecking instead for converting things such as tuple of types into types. This is more generic than the previous approach and will avoid some pitfalls in the future. check-in: 1b18849f5c user: zlodo tags: trunk
2023-01-24
18:02
  • Refactored tuple assignment operator and fixed a case where it would crash
  • Fixed incorrect CIR code generation involving constant tuples containing computed values
check-in: b47efa975d user: zlodo tags: trunk
2023-01-10
22:29
ToString: don't print addresses of void pointers anymore check-in: c8f5e99651 user: zlodo tags: trunk
2023-01-09
19:06
Fixed bad hashing implementation of terms containing a locationId that caused some absurd crash in the verifier check-in: 8fd3b7a078 user: zlodo tags: trunk
2023-01-05
19:44
Fixed passing tuple by value to functions, which involved properly handling type checking of constant tuples containing computed data and some codegen bugs check-in: 9b8306c3af user: zlodo tags: trunk
2022-11-11
20:01
  • Implemented template tuples and vararg tuples
  • Fixed a few issues with the verifier
check-in: 08ffdaf6db user: zlodo tags: trunk
2022-09-02
21:42
  • Implemented a test for variadic functions
  • Fixed a million issues and missing things preventing the above from working
  • Implemented equality operators for types
check-in: 373a6ebd57 user: zlodo tags: trunk
2022-07-30
11:41
varargs: simplify (not going to attempt handling nesting repetitions after all) check-in: 4c0f447d59 user: zlodo tags: trunk
2022-07-22
00:36
Switch back to using fmtlib so we can build with clang 14 for stability and since nowadays we apparently can't expect to be able to use c++ features that were accepted in the standard 2 years ago :/ check-in: 7e6d3483ec user: zlodo tags: trunk
2022-07-16
14:42
Varargs: added a "nested repetition depth" property to holes check-in: 97ff23912a user: zlodo tags: trunk
2022-07-05
22:10
TypeChecking: keep track of nested repetition indices for each sub context check-in: 95bdac72ca user: zlodo tags: trunk
2022-06-29
21:47
The CIR is no longer made out of instructions that are basically expression trees, but is now instead a stack language to make it possible to insert verification instructions before and after the evaluation of individual function arguments check-in: 1f87fbda15 user: zlodo tags: trunk
2022-05-25
17:28
  • Split function invocation code into several specialized versions for each function kind
  • Almost fully completed the migration of CIR to a stack language
  • Compilation-time execution works again
check-in: 7992dbe59f user: zlodo tags: cir-stack-language
2022-05-23
08:44
  • CIR instructions are now stored in lists
  • Execute: handle the stack
  • Converted some instructions to use the stack
check-in: 0d5427d49b user: zlodo tags: cir-stack-language
2022-01-07
20:02
  • Use non-experimental std::coroutine
  • Get rid of fmt lib, use std::format instead
check-in: 3b954688f3 user: zlodo tags: trunk
2021-11-19
22:28
Replaced "TypePredicates" by a more generic "Propositions" class, to be used for function predicates as well check-in: 098b3c34c9 user: zlodo tags: trunk
2021-10-31
18:52
  • Reverted most of the horribly complicated changes done since [b3ff9af3c2fe4925], other than the ability to hash all terms, values, instructions and predicates
  • Solved the problem for which tests were added in [b3ff9af3c2fe4925] in a much simpler way
check-in: 1fe5a1ac2b user: zlodo tags: trunk
2021-10-30
22:51
  • Fixed type predicate hashing
  • Template: create a monomorphization specific identity for verification (as opposed to the instance specific identity in which we ignore predicate hashes)
check-in: a681efadd9 user: zlodo tags: trunk
2021-10-28
21:48
Template rules: implemented a function to extract the type predicate hashes of captured types check-in: 8fe613b1ac user: zlodo tags: trunk
2021-10-26
18:43
Type predicates: implemented helper functions to append / filter out type predicate hashes in identities. check-in: d40e6470bf user: zlodo tags: trunk
2021-10-25
19:34
Type predicates: store the expressions as an array of values, which avoids unecessary conversions and results in the inclusion of the CIR from the expressions in the hash check-in: 996d8d9686 user: zlodo tags: trunk
2021-10-24
20:22
Implemented CIR instruction hashing check-in: f5cd8d2642 user: zlodo tags: trunk
2021-10-23
19:40
Small code cleanup, moved some code to .cpp that didn't need to be in the header check-in: ef3548db6c user: zlodo tags: trunk
16:34
Implemented hashing of EIR terms check-in: ec41139b5a user: zlodo tags: trunk
2021-10-09
21:50
Added the Conjunction CIR instruction to build a conjunction from predicates at verification time check-in: e3485faf08 user: zlodo tags: trunk
2021-09-26
23:25
Fixed template bugs with parametric types check-in: 097569fdd6 user: achavasse tags: trunk
12:00
  • Fixed TypeType's representation. Declaring a type, non-template parameter (for compile time functions) now works
  • Removed the trie comparison algorithm from eir that was never used
  • Misc code cleanup
check-in: 21f907a13f user: achavasse tags: trunk
2021-09-25
15:53
eir: implemented OrPattern term check-in: 6b3eee40c4 user: achavasse tags: trunk
2021-09-24
19:11
Overload resolution: cache which overload was selected for a given argument tuple check-in: 7bb051b826 user: achavasse tags: trunk
2021-09-23
21:42
Got rid of trie versus trie matching, again. The clown show goes on check-in: ad0b20f57d user: achavasse tags: trunk
2021-09-22
20:25
Removed the gross use of std::any from the type checking trie, also fixed some horribly wrong type error that got hidden by the std::any and happened to miraculously work anyway check-in: fabfc6df97 user: achavasse tags: trunk
2021-09-21
22:43
Resurrected and updated trie versus trie matching that was removed [e9ee5d4728e2b2807b761d67820df11dcfbcdbaea2742828ac9ec8f8d3372e3e|a long time ago] to attempt an overload resolution optimization check-in: 626dafb38e user: achavasse tags: trunk
18:48
eir: remove the function to match a single eir against another eir, which was never actually used check-in: dbf5bbf612 user: achavasse tags: trunk
2021-09-20
23:23
Integrated the Tracy profiling client and added some profiling instrumentation check-in: b846dfa2fb user: achavasse tags: trunk
2021-09-18
17:00
  • Refactored LocationId into a separate class and actually use it everywhere instead of uint32_t, this makes it easier to make generic wrappers for APIs
  • g0 api: more work on the CIR api
check-in: bf81e30984 user: achavasse tags: trunk