Goose  History of bs/builtins/statements/if.cpp of 1ad61a27179e8878

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

History of file bs/builtins/statements/if.cpp at check-in 1ad61a27179e8878

2024-09-15
20:24
Add clang format settings, reformat everything file: [de6ad512b2] check-in: [0db147f117] user: achavasse branch: cir-ssa-refactor, size: 5529
2023-08-25
18:44
Some cleanup in preparation for getting rid of proposition lists file: [3b1efdb412] check-in: [f605c7c4a3] user: zlodo branch: trunk, size: 5373
2022-11-17
00:46
expose more compiler functionality to g0api:
  • local variable declarations
  • lifetime scopes
file: [6a79e14da1] check-in: [605ff0a654] user: zlodo branch: trunk, size: 5335
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
file: [4658749c08] check-in: [7992dbe59f] user: zlodo branch: cir-stack-language, size: 5325
2021-11-11
20:05
Refactored the code builder: it is now carried around as a Value, and accessed through a bunch of extension points, so we can have different builders (and even user defined ones) later to make classes etc. file: [909a0f88f4] check-in: [1ad61a2717] user: zlodo branch: trunk, size: 5310
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
file: [43cdcd86b0] check-in: [bf81e30984] user: achavasse branch: trunk, size: 5364
2021-09-12
16:48
  • Started work on extensibility api
  • some code cleanup
file: [47db9dc2f3] check-in: [55beba911a] user: achavasse branch: trunk, size: 5362
2021-01-02
18:00
Some more renaming. file: [954fa99713] check-in: [0345b9f807] user: achavasse branch: trunk, size: 5525
2020-12-27
14:40
Renamed "ir" to "eir" (expression intermediate representation) and "llr" to "cir" (code intermediate representation) for clarity. file: [88f5ed7b96] check-in: [7d2def7b75] user: achavasse branch: trunk, size: 5528
2020-01-11
18:28
  • Moved the cfg and lifetime management stuff into a CodeBuilder object owned by sema::Context. This is in preparation to allow alternative implementations of the builder, for instance to build classes.
  • Pass the context to intrinsic functions, which removes their dependency to the parser the need for the ugly "GetCurrentParser" static function.
file: [aa34439d40] check-in: [b3aeaae2df] user: achavasse branch: trunk, size: 5527
2019-11-18
22:09
Refactor the logic and/or operator to directly append new basic blocks into the current CFG, rather than using a special llr instruction that embeds a nested CFG, whose implementation creates a lot of complexity everywhere. file: [5fc9630443] check-in: [70717f6b76] user: achavasse branch: trunk, size: 5481
2019-09-22
14:37
Project renaming. file: [ee82b1943e] check-in: [af650a9e95] user: achavasse branch: trunk, size: 5333
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. file: [4bae0aeded] check-in: [c2b2425c0c] user: achavasse branch: trunk, size: 5341
2019-08-18
18:52
  • Implemented the break and the continue statements.
  • Fixed cfg generation issues with nested control statements.
  • Fixed unreachable code error messages not emitted in some cases.
file: [99c01a0bd5] check-in: [a504aedf6c] user: achavasse branch: trunk, size: 5161
14:51
  • Fixed speculative compile-time execution causing compilation failures.
  • Fixed compile time execution budget underflowing, leading to the compiler going into an infinte loop while compiling an infinite loop (erm...)
  • Fixed more cases of missing propagation of poison states leading to spurious error messages.
file: [f557ff1d9a] check-in: [9d81e31cfe] user: achavasse branch: trunk, size: 4828
2019-08-15
22:37
  • Fixed some bugs related to dropping values.
  • Implemented local variable declarations with default initialization.
  • codegen: Fixed allocas not properly grouped up at the start of the first basic block of functions.
file: [5d1180010b] check-in: [3d8b581261] user: achavasse branch: trunk, size: 4725
2019-08-13
00:42
Diagnostics: use value poisoning to (hopefully) fix most cases of superfluous cascading error messages. file: [09923bd0a3] check-in: [59ecc02baa] user: achavasse branch: trunk, size: 4529
2019-08-12
20:15
  • Implemented a system to temporarily silence error outputs.
  • Syntax errors now silence further errors encountered while parsing the same block and nested children blocks.
  • All errors are also silenced while speculatively attempting to evaluate invocations at compilation time.
file: [6231d8106c] check-in: [972c1d8b47] user: achavasse branch: trunk, size: 4348
2019-08-11
13:36
Ported more error messages to the DiagnosticsManager. file: [3760ba10fe] check-in: [157221e014] user: achavasse branch: trunk, size: 4324
01:26
  • ir: created a new type for LocationId which is handled in a specific way so that two LocationIds are always considered equal by pattern matching. This prevent the values' locationIds stored in ir expressions from fucking up everything.
  • propagate value locations in a few places: in the parser, when resolving invocations and when doing eager evaluation. There are probably a lot of other places still missing.
  • converted all the builtin statements to use the DiagnosticsManager.
file: [8bde363f70] check-in: [2efa23555d] user: achavasse branch: trunk, size: 4312
2019-08-10
14:26
Refactored the lexer (and the resolver) to output Terms associated with location Ids. file: [26c4080b8c] check-in: [c4abb2a3ed] user: achavasse branch: trunk, size: 4014
2019-08-09
19:54
Cleanup: got rid of the half-assed location and poisoning systems in ir::Terms. file: [16ae38890f] check-in: [aee388d9c0] user: achavasse branch: trunk, size: 4015
2019-07-31
14:05
Fixed some cyclic reference issues with cyclic CFGs:
  • Moved and renamed sema::CFGBuilder to llr::CFG.
  • llr::Func now owns a CFG pointer, rather than a pointer to its entry BB.
  • Branch and CondBranch now store weak pointers to their target BB.
file: [e0b8a22ca0] check-in: [d19a6bf065] user: achavasse branch: trunk, size: 4018
07:50
Minor fixes. file: [3dfbb6412c] check-in: [b288174776] user: achavasse branch: trunk, size: 4025
2019-07-30
20:20
Added: Implemented the if statement. file: [222a077590] check-in: [866b8caaca] user: achavasse branch: trunk, size: 4021