Goose  Timeline

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

37 check-ins using file bs/builtins/types/overloadset/invoke.cpp version eca010aca9

2019-08-11
13:36
Ported more error messages to the DiagnosticsManager. check-in: 157221e014 user: achavasse tags: trunk
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.
check-in: 2efa23555d user: achavasse tags: trunk
2019-08-10
20:15
parser: custom parsing rules are now passed the location id of the value that resolved to them. check-in: e7fce87609 user: achavasse tags: trunk
19:33
Implemented a DiagnosticsContext class which can be used to push contextual informations that are printed when an error is emitted. check-in: ffa2c830dd user: achavasse tags: trunk
17:50
lexer: generate token locations. check-in: bd2fd03a33 user: achavasse tags: trunk
17:01
Implemented the very first draft of the DiagnosticsManager and converted the using statement to use it. check-in: 2eb6c1fa43 user: achavasse tags: trunk
14:26
Refactored the lexer (and the resolver) to output Terms associated with location Ids. check-in: c4abb2a3ed user: achavasse tags: trunk
12:56
diagnostics: implemented the new location class, and the location manager. check-in: 179de91f52 user: achavasse tags: trunk
2019-08-09
20:45
Added a location id and poison state to ir::Value. check-in: 1a6405a1c7 user: achavasse tags: trunk
19:54
Cleanup: got rid of the half-assed location and poisoning systems in ir::Terms. check-in: aee388d9c0 user: achavasse tags: trunk
2019-08-08
23:24
Implemented the assignation operator. check-in: 3a2f2c23ab user: achavasse tags: trunk
16:53
  • Implemented the local variable unification rule, which allows to read them.
  • Fixed comparison operators not returning bools.
check-in: c9a44e2fb9 user: achavasse tags: trunk
14:29
Implemented the assignment operator of an expression to a decl of the same type, which declares and initialize a local variable. check-in: 90ab7b489f user: achavasse tags: trunk
09:59
Implemented the localvar builtin type. check-in: 3e177bc8cf user: achavasse tags: trunk
2019-08-07
19:31
Cleanup: removed an unused file. check-in: 45f56c570b user: achavasse tags: trunk
19:10
llr, execute, codegen: implemented the SetVar instruction. check-in: a7d4b38ca5 user: achavasse tags: trunk
17:29
llr, execute, codegen: implemented the AllocVar and GetVar instructions. check-in: b0b8db5e09 user: achavasse tags: trunk
16:07
execute: removed the old local var functions in frame, and reimplemented them using the new temporary system. Function args are now also handled through this. check-in: 391fc3dedd user: achavasse tags: trunk
14:50
codegen: function arguments are now stored in allocas. check-in: e15e6a6e20 user: achavasse tags: trunk
01:56
  • Implemented some missing compile time instruction execution for unsigned ints.
  • C++ integer types are now mapped to fixed size integer types, rather than BigInt, now that the former are available at compile time.
  • The binary shift operators for ct_int now take an uint32 as their right hand side operand, rather than a ct_int.
check-in: a67a742689 user: achavasse tags: trunk
2019-08-06
23:07
Fixed size integers are now supported by compile time execution. check-in: 8714554a92 user: achavasse tags: trunk
22:51
Fixed size integers can now be represented as compile time values. check-in: f469cad435 user: achavasse tags: trunk
22:22
Renamed runtime types, because most of them (except pointers) will have to be available during compile time as well, so their names may as well be generic. check-in: fbc9052f6a user: achavasse tags: trunk
21:31
Updated .ll codegen test files that have changed after updating llvm. check-in: 97f68b01c9 user: achavasse tags: trunk
16:17
Cleanup: use the equality operator in tests now that it is available. check-in: 036f80c021 user: achavasse tags: trunk
16:04
Implemented comparison operators. check-in: 56107a5d5e user: achavasse tags: trunk
15:28
llr, execute, codegen: implemented comparison instructions. check-in: 08d543eea8 user: achavasse tags: trunk
12:15
Implemented arithmetic operators. check-in: d2db15fbbc user: achavasse tags: trunk
11:40
llr, execute, codegen: implemented arithmetic instructions. check-in: 270fa5b77b user: achavasse tags: trunk
00:33
  • Improved the operator parsing rules construction helpers to support both an unary and an infix operators sharing the same identifier.
  • Updated the comma operator implementation to use the same helpers as other operators, which makes it possible to overload it.
check-in: 035cf4826c user: achavasse tags: trunk
2019-08-05
21:14
Fixed shift operators precedence. check-in: 4fe0527143 user: achavasse tags: trunk
21:04
Implemented the shift operators. check-in: 2fdf1d1929 user: achavasse tags: trunk
20:07
Implemented the bitwise not, bitwise and and bitwise or operators. check-in: c7acd1eba0 user: achavasse tags: trunk
19:02
llr, execute, codegen: Implemented the And, Or, Shl, LShr and AShr instructions. check-in: c44aed7937 user: achavasse tags: trunk
17:47
Fixed a typo. check-in: b65e87c8ce user: achavasse tags: trunk
17:46
Implemented a wrapper around llvm::APSInt for compile time integers to manage mixing operations on integers of different bitsizes, and to automatically extend them as needed. check-in: 2bee844d3c user: achavasse tags: trunk
02:45
  • Unification now works in two passes. The second pass gives unification rules a chance to match again after all the holes have been resolved and substituted.
  • Fixed many horrible bugs in various unification rules that managed to go by unnoticed until the above change, after which they made everything catch on fire.
  • Simplified the ct_int and ct_string unification rules to take advantage of the new unification behavior. Everything finally works as intended wrt to ct_int versus RT integers.
  • Removed unification callbacks. It was a system to provide a way to perform unification work post hole substitution, so it is now obsolete.
check-in: 43e22af793 user: achavasse tags: trunk