Goose  Timeline

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

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

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-04-09
22:55
Here we go again. Life is pain. Life is suffering check-in: 99c630bf0a user: zlodo tags: cir-ssa-refactor
2024-03-30
08:58
structs:
  • diagnose member name collisions
  • add tests for the dot operator
  • fix dot operator
Leaf check-in: f7de54375b user: zlodo tags: trunk
2024-03-23
12:47
structs:
  • add test for nested initialization
  • fix nested initialization
check-in: ea17da4e19 user: zlodo tags: trunk
2024-03-14
23:23
  • add type wrapper for unresolved compile time identifier, move undefined identifier handling to dropValue() of those
  • implemented dot operator for structs
  • fixed struct lazy parsing
  • implemented some tests for structs default construction
  • fixed struct default ctor generation
check-in: 75a719c020 user: zlodo tags: trunk
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
2024-01-03
22:20
Added _LowerType extension point, called to decide what type to use when allocating locvars check-in: 11b6bc7f84 user: zlodo tags: trunk
2024-01-02
22:41
Structs: build the default ctor and add it as an overload of _Initialize. check-in: ad919df201 user: zlodo tags: trunk
2024-01-01
23:23
Structs: build the underlying tuple type in finalize() check-in: 7bf7fc54a6 user: zlodo tags: trunk
2023-12-30
21:58
Structs: invoke initialize upon creating a member variable (for the default ctor) check-in: f47d37b2d5 user: zlodo tags: trunk
2023-12-28
13:57
Structs: inside of the struct's scope, materialize member variables as refs (so they can be used in the initialization expressions for following member variables declarations) check-in: 8647b9c619 user: zlodo tags: trunk
2023-12-26
15:41
Structs: add the Finalize extension point that finalizes the creation of a struct after gathering its content. check-in: f1458583b5 user: zlodo tags: trunk
2023-12-16
00:02
Struct builder: gather var members check-in: bce164db61 user: zlodo tags: trunk
2023-12-14
23:30
Structs: perform lazy parsing when a struct type is used. check-in: 4ea0bba9a7 user: zlodo tags: trunk
2023-12-11
00:08
Move the local type inference code out of locvar and into its own function so it can be reused for struct members check-in: 1f1faa7fe2 user: zlodo tags: trunk
2023-12-09
19:56
Remove some dead code. check-in: f99a469d36 user: zlodo tags: trunk
19:44
Assigning something to a Decl or a TNamedDecl no longer directly declares a variable but creates an intermediate DeclWithInit or TNamedDeclWithInit, which declare variables when dropped. check-in: 308bd3ed4d user: zlodo tags: trunk
2023-12-08
21:16
Some work on struct builder check-in: ae07ee4400 user: zlodo tags: trunk
2023-12-06
20:49
Begin implementing structs. check-in: 973848d259 user: zlodo tags: trunk
2023-12-05
18:43
  • Comptime functions are now explicitely marked with "comptime"
  • Fixed some bugs (or added placeholders) for things that the above change revealed to be broken or missing
check-in: d6abaa6734 user: zlodo tags: trunk
2023-11-30
18:29
Handful of fixes and improvements from an abandoned refactor of inline funcs, will go for a different solution check-in: 5b069c9677 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-27
22:30
  • Added "CallCheck" CIR instruction to request the verifier to check a bunch of func params like it was a real call
  • Used the above to verify the arguments passed to ghost funcs
check-in: 83971c96a4 user: zlodo tags: trunk
21:13
Interpreter: simplify handling of temporaries check-in: 3fbe5ad303 user: zlodo tags: trunk
2023-08-25
18:44
Some cleanup in preparation for getting rid of proposition lists check-in: f605c7c4a3 user: zlodo tags: trunk
2023-08-21
17:33
Refactor CompileFunc to untangle things a bit check-in: ecc62fe531 user: zlodo tags: trunk
2023-08-18
18:40
Added helper functions to bind parameters to a proposition list and append its content to a basic block check-in: fc3d788320 user: zlodo tags: trunk
2023-08-13
18:23
forall statement: factorise out the bracket block parsing check-in: 890f3f7581 user: zlodo tags: trunk
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
21:46
Implemented forall statement check-in: 32f94cd2e1 user: zlodo tags: trunk
2023-07-15
19:25
Fixed values not being destroyed when a lifetime scope ends check-in: 9a57f2204f 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-06-30
22:41
Verifier:
  • Remove hardcoded handling of ref type from verifier, lower ref type to address for verification instead
  • Complete the handling of address type and handle selecting+loading an address' lifetime, origin and path
check-in: 1adbcaa805 user: zlodo tags: trunk
2023-06-22
23:33
Implemented lowering of Addresses into a tuple representation for verification check-in: 25b51220ed user: zlodo tags: trunk
2023-06-17
10:15
  • Remove MemLoc, it's redundant with cir::Address
  • Added compîlation time sequence type
  • Partially handle sequence type in the verifier (to be completed later)
  • Added "SelectPath" builtin type for adress paths
check-in: 08898dae70 user: zlodo tags: trunk
2023-05-31
21:34
Lifetimes: implemented verifier's z3 representation check-in: b1d4853b7f user: zlodo tags: trunk
2023-05-05
18:03
Lifetime specifications parsing check-in: bb7e75cb1b user: zlodo tags: trunk
2023-04-03
22:37
Moved the code that emits type predicate checks for values returned by intrinsics into an extension point check-in: 72cb3ae97a user: zlodo tags: trunk
2023-03-28
19:44
Get rid of the TCRINFOS macro, use std::source_location instead to remove some noise check-in: d9414ddc6f 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-20
17:54
Migrated to clang16/llvm16. Created a shitty layer on top of llvm to cope with losing the pointee types from llvm pointer types (which are now opaques). It was a huge pain in the ass. check-in: 0c646816e4 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-30
19:33
Implemented the _IsTrivialInitialization extension point to optimize tuple initialization in the same way as assignments check-in: d70fa1ef12 user: zlodo tags: trunk
2023-01-29
20:48
  • Added the _IsTrivialAssignment extension point to indicate whether an assignment between two given types is trivial or absolutely needs to be resolved to an operator_assign invocation
  • Use the above to simplify tuple assignments when all the contained members have trivial assignments
check-in: 7751ce994d user: zlodo tags: trunk