Goose  Timeline

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

28 check-ins using file bs/builtins/types/decl.cpp version de358cc8a2

2019-08-15
22:58
Implemented InitializeLocalVar() for the bool, ct_int and ct_string types. check-in: 6d69e387ac user: achavasse tags: trunk
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.
check-in: 3d8b581261 user: achavasse tags: trunk
01:54
Fixed a couple of typos. check-in: 1e6e7c928d user: achavasse tags: trunk
01:27
  • Implemented the DropValue() extension point, called when a previously pushed value is dropped without being used.
  • ir, sema: the complexity of an ir expression is now directly counted by ir::Vector, so that we don't have to deal with it in every unification rule (and it was missing from most of them, which caused incorrect overload resolutions in some cases).
check-in: 75bcd81044 user: achavasse tags: trunk
2019-08-14
15:21
Implemented the "InitializeLocalVar" extension point, with a builtin overload for integers. check-in: ffbb9276bb user: achavasse tags: trunk
02:35
Fixed a misnamed test. check-in: 5a4946c300 user: achavasse tags: trunk
02:30
  • Added an unification rule to deal with LocationIds. It honors poisoning and preserve the most recent location from the input values.
  • Added a diagnostic context indicating the point at which a template function passed as a value has been instantiated.
  • Added a trace mode that logs the diagnostics contexts, which can be activated by calling a compile time function.
  • Added a few diagnostic messages tests.
check-in: 980effe072 user: achavasse tags: trunk
00:04
Reorganized tests. The current set of tests have been moved to a "noprelude" subdirectory. check-in: 7e4e9d28d2 user: achavasse tags: trunk
2019-08-13
23:27
cleanup: got rid of more optional< Value >. check-in: 0288a69883 user: achavasse tags: trunk
22:43
Cleanup: got rid of optional< Value > in a lot of places that ought to always return a poison value if an error happens. check-in: 1feb20f522 user: achavasse tags: trunk
21:21
  • Completed the diagnostics renderer.
  • Fixed a few places where value poisoning wasn't correctly propagated.
check-in: ec58d0ff48 user: achavasse tags: trunk
14:12
First, incomplete draft of the diagnostics renderer. check-in: 904cb2d062 user: achavasse tags: trunk
12:14
diagnostics: simplify the code a bit by merging the LocationManager as static methods in Location. check-in: 17905bf47a user: achavasse tags: trunk
00:42
Diagnostics: use value poisoning to (hopefully) fix most cases of superfluous cascading error messages. check-in: 59ecc02baa user: achavasse tags: trunk
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.
check-in: 972c1d8b47 user: achavasse tags: trunk
16:07
Added local vscode workspace settings to link cmake-tools and cpp tools. check-in: b48fe61a11 user: achavasse tags: trunk
2019-08-11
18:59
Converted all the remaining error messages to use the diagnostics manager. check-in: 4a121b956a user: achavasse tags: trunk
17:18
  • Converted more error messages to the new system.
  • Propagated value locations in some missing places.
  • Added the location of template function calls as diagnostics context.
check-in: b8548d8b24 user: achavasse tags: trunk
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