Goose  History of bs/builtins/types/template/build.cpp of 27fc719d74bbfdc2

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

History of file bs/builtins/types/template/build.cpp at check-in 27fc719d74bbfdc2

2024-09-15
20:24
Add clang format settings, reformat everything file: [8d06bcd06b] check-in: [0db147f117] user: achavasse branch: cir-ssa-refactor, size: 4274
2022-09-02
21:42
  • Implemented a test for variadic functions
  • Fixed a million issues and missing things preventing the above from working
  • Implemented equality operators for types
file: [ad811fed78] check-in: [373a6ebd57] user: zlodo branch: trunk, size: 3993
2022-07-25
17:23
vararg templates: set the signature of pack texprs as the repeating part of the vector, and diagnose packs not appearing last file: [02708c8f49] check-in: [27cf09cdf5] user: zlodo branch: trunk, size: 3755
2022-07-18
23:45
vararg templates: added a "prepare template" step prior to generating the template signature, which does nothing yet file: [8b76f16980] check-in: [fe34bd71de] user: zlodo branch: trunk, size: 3201
2022-02-18
17:36
  • refactored function parsing so that ghost function declarations can actually work (ie they don't expect a function body)
  • some fixes in codegen to properly ignore statements involving ghost functions
file: [ce75d7da19] check-in: [07963466bf] user: zlodo branch: trunk, size: 3193
2021-11-22
20:22
Function pre-conditions and post-conditions now use the same proposition lists as type predicates file: [a8b51c3a15] check-in: [1c335aeb04] user: zlodo branch: trunk, size: 3198
2021-10-27
20:55
Parser: when building a function, if its parent identity depends on type predicates captured by template vars, build it as a template function instead. file: [caa76f94f1] check-in: [45078c42df] user: zlodo branch: trunk, size: 3580
2021-09-28
17:59
Fix functions and template functions not getting compiled with visibility over their original enclosing scope, but over the current scope at the point of invocation instead file: [af3d99ea03] check-in: [39c8a653da] user: achavasse branch: trunk, size: 3282
2021-09-26
23:25
Fixed template bugs with parametric types file: [ddd911474e] check-in: [097569fdd6] user: achavasse branch: trunk, size: 3230
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: [3f3489b3e1] check-in: [00408e8723] user: achavasse branch: trunk, size: 3230
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: [564e961087] check-in: [51f288ba2a] user: achavasse branch: trunk, size: 3489
2021-09-12
16:48
  • Started work on extensibility api
  • some code cleanup
file: [cdd88647cc] check-in: [55beba911a] user: achavasse branch: trunk, size: 3496
2021-01-21
21:05
Removed the vector "typechecking rule", whose existence made no sense. Typechecking rules should operate only on values and pattern of values. Typechecking multiple values against multiple params is now done through a specific function instead. file: [cafbddd3cd] check-in: [7b9f645074] user: achavasse branch: trunk, size: 3504
2021-01-02
18:00
Some more renaming. file: [d97033e98b] check-in: [0345b9f807] user: achavasse branch: trunk, size: 3433
2020-06-26
23:34
Cleanup:
  • Removed the poorly thought out "domain" system that was intended to allow for different implementations of functions for runtime and for compilation time, which was adding an absurd amount of crap everywhere and should be unnecessary with the current planned approach for implementing data structures.
  • The using statement doesn't do lazy parsing anymore. Lazy parsing is better left to specific constructs that require them (such as function bodies and later on class/structs). This removes the only case of significant newline character in the language.
file: [3d33d92979] check-in: [568c366a36] user: achavasse branch: trunk, size: 3451
2019-09-26
23:37
Refactored the parsing of verification statements so that it works properly in all cases (regular functions, template functions, function type expressions, lambdas). file: [d7d3b8705b] check-in: [4fe418f4d0] user: achavasse branch: trunk, size: 3510
2019-09-22
14:37
Project renaming. file: [b248b97f8b] check-in: [af650a9e95] user: achavasse branch: trunk, size: 3435
2019-09-17
20:08
  • parser: add an utility function to retrieve a sub expression in its unparsed form.
  • tfunc type: store a pointer to a vector of unparsed tokens for the verification statements.
file: [154d65c7be] check-in: [0c3c9488af] user: achavasse branch: trunk, size: 3437
2019-08-16
23:52
Simplified ir::Vector, use plain std::vector to store the terms. immer::vector was pointless for that since we pretty much never actually take advantage of them being CoW in this case. file: [68b6e76598] check-in: [f2ca82dfce] user: achavasse branch: trunk, size: 3428
14:48
Added a new type of template expression: TVec, along with a helper function to make it possible for parametric types to be constructed either normally or as a template expression when passed template parameters. Only used by LocalVar for now, parametric runtime types require some refactoring. file: [f13d8c7b5c] check-in: [27fc719d74] user: achavasse branch: trunk, size: 3593
2019-08-13
23:27
cleanup: got rid of more optional< Value >. file: [7decd963bb] check-in: [0288a69883] user: achavasse branch: trunk, size: 3595
2019-08-11
18:59
Converted all the remaining error messages to use the diagnostics manager. file: [44b2b5baf1] check-in: [4a121b956a] user: achavasse branch: trunk, size: 3601
2019-08-10
14:26
Refactored the lexer (and the resolver) to output Terms associated with location Ids. file: [e9cbae6050] check-in: [c4abb2a3ed] user: achavasse branch: trunk, size: 3168
2019-08-09
19:54
Cleanup: got rid of the half-assed location and poisoning systems in ir::Terms. file: [8779f5f9f3] check-in: [aee388d9c0] user: achavasse branch: trunk, size: 3171
2019-07-07
10:33
Parser: refactored function and template function parsing to go through a common code path to build function types. file: [37a08ea0e3] check-in: [5fd301c5f9] user: achavasse branch: trunk, size: 3192
2019-06-29
14:36
Handle execution domains when invoking/unifying functions, template functions, overload sets and constrained funcs. file: [43051cfd03] check-in: [2acce94d2d] user: achavasse branch: trunk, size: 3304
11:40
Added a domain specifier in function and template function types. file: [d5e786e75c] check-in: [ef1e94f44d] user: achavasse branch: trunk, size: 3237
2019-05-25
10:44
Domains: refactored functions to use the new representation. file: [d9c80fc0cc] check-in: [cf3bb178ea] user: achavasse branch: trunk, size: 3181
2019-04-09
20:15
Standardize the way function identities are generated, and give overload sets their own identities. This will be necessary to generate proper identities for template functions instanced with polymorphic parameters. file: [1ef524f33e] check-in: [da8245add8] user: achavasse branch: trunk, size: 3260
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: [dd1ae1afe5] check-in: [fc331f1703] user: achavasse branch: trunk, size: 3333
2019-04-04
20:08
Higher order polymorphism: refactored TDecl to use its own representation as its signature. file: [7b0ac096ee] check-in: [f5fb53ad20] user: achavasse branch: trunk, size: 3448
2019-03-28
21:00
Higher order functions: plain lambdas can be passed to template function type parameters. file: [a050f96efc] check-in: [ee15f9081f] user: achavasse branch: trunk, size: 3067
2019-03-27
23:27
Templates: implemented the rules for tfunctype texprs. file: [ab510f970f] check-in: [10aff6cb27] user: achavasse branch: trunk, size: 3041
22:53
Templates: split out tfunc signature construction into a separate function. file: [3f731bd0d0] check-in: [63fb3517ff] user: achavasse branch: trunk, size: 3091
2019-03-19
20:17
Higher-order functions: implemented BuildArgPatternFromFuncType() and BuildArgPatternFromTFuncType(). file: [3ffc6459f1] check-in: [65cbac9aa3] user: achavasse branch: trunk, size: 2900
2019-03-03
15:00
Added return types to function signatures, so that any TExpr constraint they may contain are taken into account during unification. file: [3e730f7617] check-in: [e87aad0ef1] user: achavasse branch: trunk, size: 1832
2019-03-02
12:33
llr: added predicates to quickly test if an llr element is suitable for compilation time execution, or for eager evaluation. file: [cae9dfca8c] check-in: [d2c4e27b15] user: achavasse branch: trunk, size: 1559
2019-02-27
22:05
Templates:
  • Fixed the incorrect context passed to the template rule setup function, which caused TVars to create their bindings in the wrong place.
  • Added missing setup functions for decl template rules.
file: [d0b858f9ab] check-in: [0cdc45df01] user: achavasse branch: trunk, size: 1503
2019-02-24
23:18
Templates: implemented the template function invocation rule. Some pieces are still missing before it can work. file: [e7ca10b0b4] check-in: [12c9e92618] user: achavasse branch: trunk, size: 1486
2019-02-22
21:43
Added: Templates: implemented BuildTFuncType() and BuildTFunc(). file: [a71ab7da95] check-in: [114cdaf51b] user: achavasse branch: trunk, size: 1416