Goose  Timeline

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

37 check-ins using file bs/parse/rule-helpers.cpp version 1af039e945

2019-06-18
21:44
Added some helper functions for domains and identities. check-in: a15bdabfec user: achavasse tags: trunk
2019-06-17
22:00
Pass the sema context to ParseFuncBody(), rather than just the env. check-in: 9320a3b76f user: achavasse tags: trunk
2019-06-16
14:41
Added the current domain to sema context, and include it in function identities. check-in: 7e053c8063 user: achavasse tags: trunk
2019-05-25
10:44
Domains: refactored functions to use the new representation. check-in: cf3bb178ea user: achavasse tags: trunk
2019-05-22
21:35
Execution domains: created a new representation for function values that contains enough informations to retrieve or build the same function for a different execution domain. check-in: cd9b67cf09 user: achavasse tags: trunk
2019-05-04
21:04
Cleanup: make use of c++20 explicit lambda template parameter lists to get rid of some clunky decltype(). check-in: 980e2740bc user: achavasse tags: trunk
2019-04-14
20:10
Small cleanup. check-in: 26ee86b2dd user: achavasse tags: trunk
18:43
Allow any texpr to be used as a function parameter, so we can write a generic parameter as just $a instead of $t $a if we don't care about capturing its type. check-in: da786f812f user: achavasse tags: trunk
17:30
Fixed a test name. check-in: 0ca4414e9d user: achavasse tags: trunk
17:22
Added tests for higher order template functions, and higher order polymorphism. check-in: 185f783a15 user: achavasse tags: trunk
17:07
Added tests for higher order functions, and fixed some previously missed bugs. check-in: 31e4e0e834 user: achavasse tags: trunk
15:18
Added tests for overloading and template functions. check-in: fa01f562ca user: achavasse tags: trunk
14:57
Removed the ct_ prefix from the compile time int and string types for now. It's ugly and we don't need to decide on their names until starting library work anyway. check-in: 2b1598932c user: achavasse tags: trunk
14:53
Fixed a few bugs and started to turn the haphazard test code into proper, automated tests of the core language features. check-in: f78ccdd8a8 user: achavasse tags: trunk
2019-04-13
22:03
api: added a builtin Execute command, which executes the specified file. Also added the possibility to optionally return an error code. check-in: 47708770e6 user: achavasse tags: trunk
10:55
Started a first version of a minimal compile time api to be able to implement proper automated testing of the language features. check-in: b2a8a8ad0b user: achavasse tags: trunk
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.
check-in: 5ea39472a2 user: achavasse tags: trunk
2019-04-11
19:11
llr: add Ret element. check-in: 82591a0918 user: achavasse tags: trunk
2019-04-09
21:38
Higher order polymorphism: changed the representation of constrained func to be explicit instead of just an opaque pointer, so that it can be used as is within function identities. check-in: b7fd77d885 user: achavasse tags: trunk
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. check-in: da8245add8 user: achavasse tags: trunk
2019-04-08
22:15
Compare the addresses of pvoid once again in compare to match the behavior of pvoid stored in tries. That change wasn't actually needed anyway. check-in: 0a9cac94de user: achavasse tags: trunk
21:39
func: move the identity back into the llr func, as we will need it some day to generate a label for the code generation. check-in: a307741bd9 user: achavasse tags: trunk
20:29
Higher order polymorphism: fix non-callable template lambdas passed as a generic compile-time parameter. check-in: 007891dc2f user: achavasse tags: trunk
2019-04-06
15:19
Higher order polymorphism: implemented the unification of a polymorphic tfunc type param with an overload set. check-in: 2f27622539 user: achavasse tags: trunk
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.
check-in: fc331f1703 user: achavasse tags: trunk
2019-04-04
20:08
Higher order polymorphism: refactored TDecl to use its own representation as its signature. check-in: f5fb53ad20 user: achavasse tags: trunk
2019-04-03
20:56
Higher order polymorphism: overloadset and tfunc invocation no longer consider multiple unification solutions with the same score to be ambiguous if they are actually the same solution. check-in: be53d55f67 user: achavasse tags: trunk
2019-04-02
20:38
Higher order polymorphism: implemented ConstrainedFunc unification. check-in: f6c1df5107 user: achavasse tags: trunk
2019-04-01
20:37
sema: implemented SubstituteNamed. check-in: 121c78d7e5 user: achavasse tags: trunk
20:25
Higher order polymorphism: implemented ConstrainedFunc invocation rule. check-in: 01c479df9a user: achavasse tags: trunk
19:57
Higher order polymorphism: added ConstrainedFunc type. check-in: 0d3294dcf0 user: achavasse tags: trunk
2019-03-31
20:42
Higher order functions: template lambdas can be passed to template function parameters. check-in: 25d0ee65d4 user: achavasse tags: trunk
19:05
Use conan to install immer, and updated conan.cmake to the latest version. check-in: b9a16492e0 user: achavasse tags: trunk
10:26
When unifying an overloadset with a tfunc typed parameter, create a new namespace index to isolate hole names in the overloaadset from those in the called's function signature. check-in: 7da1393cf1 user: achavasse tags: trunk
10:18
Higher order functions: overload sets can be passed to template function type parameters. check-in: e184bef77b user: achavasse tags: trunk
2019-03-30
16:28
  • Fixed the conversion of a type type value to an ir expression.
  • Fixed anonymous holes not being counted in unification scores.
check-in: ecf8c6820f user: achavasse tags: trunk
15:30
  • Changed type's type representation to be able to pass types around as value anywhere.
  • Fixed a bunch of bugs.
check-in: 0e66d22527 user: achavasse tags: trunk