Goose  History of bs/builtins/operators/dollar.cpp of 51f288ba2a8f7d88

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

History of file bs/builtins/operators/dollar.cpp at check-in 51f288ba2a8f7d88

2024-09-15
20:24
Add clang format settings, reformat everything file: [1a0b6ffda2] check-in: [0db147f117] user: achavasse branch: cir-ssa-refactor, size: 5918
2022-08-28
17:12
vararg templates: completed the pack TExpr and pack TVars implementations (need tests) file: [ca4dae06b7] check-in: [0146622968] user: zlodo branch: trunk, size: 5869
2022-01-07
20:02
  • Use non-experimental std::coroutine
  • Get rid of fmt lib, use std::format instead
file: [94ee6ff8fc] check-in: [3b954688f3] user: zlodo branch: trunk, size: 5851
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: [62a7d75632] check-in: [1ad61a2717] user: zlodo branch: trunk, size: 5845
2021-10-06
21:50
Mut ref predicates verification: display a useful error message file: [82222a6d35] check-in: [05ada78145] user: zlodo branch: trunk, size: 5875
2021-09-26
21:11
TDecl: instead of directly storing the type signature (and forgetting all about the nested TExprs), we store the TExpr and generate the signature during typechecking file: [5dd97281c8] check-in: [00408e8723] user: achavasse branch: trunk, size: 5994
19:47
  • Fixed a handful of parsing issues related to templates
  • Added missing export of "ref" to g1
file: [08b0311199] check-in: [93eaca4c2b] user: achavasse branch: trunk, size: 6038
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: [bea9324373] check-in: [bf81e30984] user: achavasse branch: trunk, size: 6256
2021-09-13
21:52
  • Implemented a generic wrapper for the simple native types that can be embedded in Terms
  • Added more specific overloads for the assignment operator that should work only on builtin types, so that library and user defined types will be able to choose whether they're copyable
  • The EIR representation for all builtin runtime types are now prefixed with "rt_type" to more easily write generic matching rules against them
  • EIR: Fixed long standing bugs in Enumerate and Decompose that surfaced because of the above
  • Miscellaneous code cleaning
file: [bef904949b] check-in: [51f288ba2a] user: achavasse branch: trunk, size: 6248
2021-09-12
16:48
  • Started work on extensibility api
  • some code cleanup
file: [17a5a39048] check-in: [55beba911a] user: achavasse branch: trunk, size: 6255
2021-09-09
18:21
Implemented the $$ operator to create a forwarding template variable file: [15f5c24421] check-in: [9b9f4b0fa9] user: achavasse branch: trunk, size: 6257
2021-03-02
22:51
Removed magic "tuple of types to tuple type" conversions and moved them into extension points so that any type can implement similar semantics file: [c70e22a95a] check-in: [2370e98869] user: achavasse branch: trunk, size: 5063
2021-01-02
18:00
Some more renaming. file: [6ba5f83efb] check-in: [0345b9f807] user: achavasse branch: trunk, size: 5037
2020-12-27
14:40
Renamed "ir" to "eir" (expression intermediate representation) and "llr" to "cir" (code intermediate representation) for clarity. file: [4427189a7d] check-in: [7d2def7b75] user: achavasse branch: trunk, size: 5043
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: [07b0d6624d] check-in: [b3aeaae2df] user: achavasse branch: trunk, size: 5041
2019-09-22
14:37
Project renaming. file: [8f27a9a88a] check-in: [af650a9e95] user: achavasse branch: trunk, size: 5065
2019-08-27
20:27
Tuples containing only types or other tuples of types are now considered types. file: [426ede5e32] check-in: [533d2ce579] user: achavasse branch: trunk, size: 5075
2019-08-22
13:23
You have failed me for the last time, CMake. file: [6be308d18e] check-in: [e38aee1ca0] user: achavasse branch: trunk, size: 5053
2019-08-16
20:33
Implemented variable declarations with local type inference. file: [16d664ec44] check-in: [5a361c8b86] user: achavasse branch: trunk, size: 5008
2019-08-13
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. file: [46dec55a55] check-in: [1feb20f522] user: achavasse branch: trunk, size: 4933
12:14
diagnostics: simplify the code a bit by merging the LocationManager as static methods in Location. file: [3db7acd911] check-in: [17905bf47a] user: achavasse branch: trunk, size: 5055
00:42
Diagnostics: use value poisoning to (hopefully) fix most cases of superfluous cascading error messages. file: [a5ccb87c8a] check-in: [59ecc02baa] user: achavasse branch: trunk, size: 5091
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: [74881ce8f3] check-in: [972c1d8b47] user: achavasse branch: trunk, size: 5079
2019-08-11
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.
file: [087d4af67f] check-in: [b8548d8b24] user: achavasse branch: trunk, size: 5067
2019-08-10
20:15
parser: custom parsing rules are now passed the location id of the value that resolved to them. file: [a6279778a9] check-in: [e7fce87609] user: achavasse branch: trunk, size: 4419
14:26
Refactored the lexer (and the resolver) to output Terms associated with location Ids. file: [e8f45a8c50] check-in: [c4abb2a3ed] user: achavasse branch: trunk, size: 4422
2019-08-09
19:54
Cleanup: got rid of the half-assed location and poisoning systems in ir::Terms. file: [95b744dbb8] check-in: [aee388d9c0] user: achavasse branch: trunk, size: 4418
2019-08-01
21:11
parser: implemented ComplexValue, which is a value bundled with a CFG whose execution or insertion is a prerequisite to use the value. file: [45515b4f52] check-in: [79a134aa8e] user: achavasse branch: trunk, size: 4516
2019-07-11
19:32
Allow overloading of builtin functions. file: [4de213cfa9] check-in: [bff15eb03d] user: achavasse branch: trunk, size: 4504
2019-06-19
19:49
  • parser: don't hardcode the builtins identity prefix in the rule helpers anymore.
  • builtins: move the common identity prefix used by all builtins into a separate function, to be able to easily change it.
  • builtins: prepend the CompileTime domain specifier to the root builtin identity.
  • sema: don't store the domain separately, extract it from the identity when needed instead.
file: [b9af1311e3] check-in: [cde0c6d0e3] user: achavasse branch: trunk, size: 4493
2019-04-12
19:37
  • cleaned up and refactored llr into a proper cfg representation.
  • added a CFG builder class in sema, currently very rudimentary.
  • split the parser's value building workflow from the llr construction workflow, which now goes through a CFG builder.
  • implemented the return statement.
file: [b569b7f78f] check-in: [5ea39472a2] user: achavasse branch: trunk, size: 4488
2019-04-06
14:16
  • Simplified TDecl: the right hand side can now only be a TVar. Removed the colon operator.
  • Added the possibility in unification to make hole resolution non mandatory for a sub expression.
  • Higher order polymorphism: implemented the unification of a polymorphic tfunc type param with a template lambda.
file: [031340578a] check-in: [fc331f1703] user: achavasse branch: trunk, size: 4461
2019-04-04
20:08
Higher order polymorphism: refactored TDecl to use its own representation as its signature. file: [61d597b133] check-in: [f5fb53ad20] user: achavasse branch: trunk, size: 4499
2019-03-30
15:30
  • Changed type's type representation to be able to pass types around as value anywhere.
  • Fixed a bunch of bugs.
file: [7b49f6de3b] check-in: [0e66d22527] user: achavasse branch: trunk, size: 4397
2019-02-20
21:22
Templates: implemented the infix variant of the dollar operator as a shortcut to construct TDecls where the rhs is a TVar. file: [944f75d56c] check-in: [1b651c004f] user: achavasse branch: trunk, size: 4423
2019-02-18
21:54
Parser:
  • Make the resolver skip newlines by default, and provide an additional "raw" api to retrieve unresolved tokens without skipping newlines.
  • Parsing rules now only return a bool to indicate whether they were successful, and can push any number of values themselves as needed.
  • Stop trying to shoehorn implicit separators in the pratt parser. Instead, use the pratt parser only for expressions, and use a different parsing loop for sequences of expressions (ie for brace blocks and top level).
file: [6ca4ddaa93] check-in: [23e0cd5dc7] user: achavasse branch: trunk, size: 2211
2019-02-16
18:58
Added: Templates: implemented the $ operator. file: [5d48693ec5] check-in: [2d3dd4c2b2] user: achavasse branch: trunk, size: 2220