Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
98 check-ins using file bs/ir/tostring.h version 88f8acbe1e
|
2019-03-22
| ||
| 21:42 | Func: finally abandon the Term type which adds too much overhead and can be lived without, but instead store the signature directly as the param types, inside of the function type. check-in: 0618ab859e user: achavasse tags: trunk | |
| 21:03 | Func: param unification. check-in: d62116e3e8 user: achavasse tags: trunk | |
| 20:28 | Func: added Param type. check-in: dc1e1c4c16 user: achavasse tags: trunk | |
| 20:13 | Use the entire callee value to look up invocation rules rather than just their type, and restricted template invocation to constant tfunc values. check-in: 0ecc71a91f user: achavasse tags: trunk | |
|
2019-03-19
| ||
| 20:17 | Higher-order functions: implemented BuildArgPatternFromFuncType() and BuildArgPatternFromTFuncType(). check-in: 65cbac9aa3 user: achavasse tags: trunk | |
|
2019-03-18
| ||
| 21:00 | Invocation rule: added "prepareFunc" method. check-in: 48e869cb9a user: achavasse tags: trunk | |
| 20:41 | Split out the retrieval/construction of a template instance into a separate function. check-in: 2847fd86e7 user: achavasse tags: trunk | |
|
2019-03-17
| ||
| 20:56 | Sema: terms can now be wrapped along with a post processing function. This is similar to the substitute call back, but it is invoked after the best unification solution has been chosen. check-in: 396ab349c6 user: achavasse tags: trunk | |
| 15:54 | Sema: terms can now be wrapped along with a callback to be invoked by Substitute(). check-in: dd70f4c696 user: achavasse tags: trunk | |
| 11:49 | Added a way to quote an expression so that its content is ignored during unification, and used it for function signatures. check-in: 68eda7b3fe user: achavasse tags: trunk | |
| 00:13 | Functions: store the signature alongside the body rather than in the type, to be consistent with template functions. check-in: cce96c5a25 user: achavasse tags: trunk | |
|
2019-03-16
| ||
| 23:19 | Overloading: parse function overloading, and multiple fixes. Overloading now works. check-in: 9089b014a2 user: achavasse tags: trunk | |
| 21:27 | Overloading: the first time a function or function template declaration is encountered, it is stored in a new overloadset. check-in: 224370818a user: achavasse tags: trunk | |
| 20:46 | Overloading: some preliminary function parsing refactoring. check-in: eba916730b user: achavasse tags: trunk | |
| 17:39 | Overloading: implemented OverloadSet's invocation rule. check-in: 44403d3ab8 user: achavasse tags: trunk | |
| 15:19 | Overloading: implemented OverloadSet::add() check-in: 5f82b82cc8 user: achavasse tags: trunk | |
|
2019-03-15
| ||
| 20:34 | Overloading: added OverloadSet type. check-in: aebe047a28 user: achavasse tags: trunk | |
| 19:18 | Overloading: added tests for, and fixed utrie unification. check-in: 88099a9cee user: achavasse tags: trunk | |
|
2019-03-13
| ||
| 22:55 | Overloading: added tests for, and fixed utrie merging and half-unification. check-in: 8e1924aea5 user: achavasse tags: trunk | |
|
2019-03-10
| ||
| 19:20 | Overloading: first untested draft of utrie unification. check-in: 403ca496c8 user: achavasse tags: trunk | |
|
2019-03-07
| ||
| 21:08 | Overloading: implemented merging of a vector into an UTrie. check-in: 3519ef74a6 user: achavasse tags: trunk | |
|
2019-03-03
| ||
| 16:05 | Overloading: added UniTrie class. check-in: 16cb791757 user: achavasse tags: trunk | |
| 15:39 | Overloading: split out the unification from resolveInvocation(). check-in: 6d6a036678 user: achavasse tags: trunk | |
| 15:00 | Added return types to function signatures, so that any TExpr constraint they may contain are taken into account during unification. check-in: e87aad0ef1 user: achavasse tags: trunk | |
|
2019-03-02
| ||
| 21:01 | Function calls are now eagerly evaluated during parsing. check-in: 8a8e76084e user: achavasse tags: trunk | |
| 12:33 | llr: added predicates to quickly test if an llr element is suitable for compilation time execution, or for eager evaluation. check-in: d2c4e27b15 user: achavasse tags: trunk | |
|
2019-02-27
| ||
| 23:04 |
| |
| 22:05 |
Templates:
| |
|
2019-02-26
| ||
| 22:59 | Templates: Some fixes. Template functions can be successfully called. check-in: ffc50d08f4 user: achavasse tags: trunk | |
|
2019-02-25
| ||
| 23:14 | Template: completed the implementation of the various decl template rules. check-in: e969a61da0 user: achavasse tags: trunk | |
| 21:25 | Func: signatures can now include constant values, which need to match for the call to succeed. This is needed for template instantiation and will be needed for specializations once overloading is implemented. check-in: af7df64748 user: achavasse tags: trunk | |
|
2019-02-24
| ||
| 23:23 | Templates: add missing storage of newly built instances in the invocation rule. check-in: 37f430afe6 user: achavasse tags: trunk | |
| 23:18 | Templates: implemented the template function invocation rule. Some pieces are still missing before it can work. check-in: 12c9e92618 user: achavasse tags: trunk | |
| 15:37 | Templates: implemented the template rules for Decl, TDecl, TNamedDecl and TVar. check-in: 1c4c7dde4c user: achavasse tags: trunk | |
|
2019-02-23
| ||
| 17:04 | Templates: parse template function types, expressions and declarations. check-in: bc7b56fb86 user: achavasse tags: trunk | |
|
2019-02-22
| ||
| 21:43 | Templates: implemented BuildTFuncType() and BuildTFunc(). check-in: 114cdaf51b user: achavasse tags: trunk | |
|
2019-02-21
| ||
| 21:38 | Handle template decls in CheckParamListKind(), plus some minor cleanup. check-in: c4ea2e2754 user: achavasse tags: trunk | |
|
2019-02-20
| ||
| 22:34 | Implemented the colon infix operator to explicitely build a Decl, TDecl or TNamedDecl. It will be useful in the future to build TDecls with a more complex TExpr than just a TVar on the rhs, it can be omitted otherwise. check-in: c22f37bc75 user: achavasse tags: trunk | |
| 21:22 | Templates: implemented the infix variant of the dollar operator as a shortcut to construct TDecls where the rhs is a TVar. check-in: 1b651c004f user: achavasse tags: trunk | |
| 20:42 | Templates: parse template named decls (like regular decls, but with a TExpr instead of a type). check-in: 6a9c80643f user: achavasse tags: trunk | |
|
2019-02-18
| ||
| 21:54 |
Parser:
| |
|
2019-02-16
| ||
| 18:58 | Templates: implemented the $ operator. check-in: 2d3dd4c2b2 user: achavasse tags: trunk | |
| 16:48 | Some reorganization of template types. check-in: 054862b9f5 user: achavasse tags: trunk | |
| 13:19 | Templates: added TNamedDecl type. check-in: 06665441a7 user: achavasse tags: trunk | |
|
2019-02-15
| ||
| 17:52 | Moved function and function type construction into builtin/types/func, it doesn't really belong in sema. check-in: 8fb71ebfa3 user: achavasse tags: trunk | |
|
2019-02-14
| ||
| 23:11 | Templates: added TFunc type. check-in: aec44da323 user: achavasse tags: trunk | |
| 22:46 | Templates: added TFuncType type. check-in: 3de7b67281 user: achavasse tags: trunk | |
| 22:36 | Templates: added TVar type. check-in: 2d763f32b8 user: achavasse tags: trunk | |
| 22:12 | Templates: added TDecl type. check-in: 46417155c1 user: achavasse tags: trunk | |
| 20:35 | Fix using statement not skipping newline markers before the expression. check-in: 0b6a7a10ee user: achavasse tags: trunk | |
|
2019-02-13
| ||
| 21:51 | Templates: added template rules base classes. check-in: 12db48f235 user: achavasse tags: trunk | |
| 21:03 | Split the builtin types directory into sub directories. check-in: eab1b7ec57 user: achavasse tags: trunk | |
|
2019-02-12
| ||
| 21:53 | Implemented function declarations. check-in: 1cdacffc17 user: achavasse tags: trunk | |
| 21:18 | Func: implement lazy body parsing. check-in: ca43fee365 user: achavasse tags: trunk | |
|
2019-02-11
| ||
| 22:44 |
| |
|
2019-02-10
| ||
| 16:32 | Implemented function parameters. check-in: 64a8240bdc user: achavasse tags: trunk | |
| 15:29 | llr, execute: implemented SetVar and GetVar. check-in: 5d287cd878 user: achavasse tags: trunk | |
|
2019-02-07
| ||
| 21:38 | Change the llr representation of functions. check-in: 90002fe240 user: achavasse tags: trunk | |
|
2019-02-06
| ||
| 22:16 | Add a relevant comment for future reference regarding the visibility of the oustide context from within functions. check-in: 0c510ab2bc user: achavasse tags: trunk | |
| 22:08 | Parser: properly handle empty brace blocks. check-in: f85d5d289e user: achavasse tags: trunk | |
| 22:02 | First working version of non-builtin functions. Parameters aren't handled yet. check-in: e46bf5d7e5 user: achavasse tags: trunk | |
| 20:39 | Parser: parse function expressions. check-in: f35a2c529c user: achavasse tags: trunk | |
|
2019-02-05
| ||
| 23:45 |
| |
|
2019-02-04
| ||
| 21:41 | Parser: parse function type expressions. check-in: 63faac8273 user: achavasse tags: trunk | |
| 20:54 | Builtins: implemented some helpers to construct function types from parameter lists. check-in: c4c2aa50c1 user: achavasse tags: trunk | |
|
2019-02-03
| ||
| 21:44 | Builtins: split builtin function related code into separate files. check-in: 0b110c6235 user: achavasse tags: trunk | |
| 21:35 |
| |
| 12:01 | Parser: parse decls. check-in: bbef786dbb user: achavasse tags: trunk | |
| 11:43 | Sema: implemented Decl and its conversion from/to ir. check-in: 883bfdaa35 user: achavasse tags: trunk | |
| 10:53 | Fix a future potential issue when parsing using statements. check-in: 85624bef14 user: achavasse tags: trunk | |
|
2019-02-02
| ||
| 18:01 | Implemented the builtin using statement. check-in: 79b3438adc user: achavasse tags: trunk | |
| 17:11 | Sema: Env: implemented functions to import all of the content of a namespace into another. check-in: bd0cdbeca7 user: achavasse tags: trunk | |
| 16:13 | ir: added helpers to make a new vector by dropping elements at the beginning or at the end of a source vector. check-in: 26221286db user: achavasse tags: trunk | |
| 14:50 | Sema: Env: make it possible to register multiple value providers with the same pattern. check-in: 274597f794 user: achavasse tags: trunk | |
|
2019-02-01
| ||
| 18:34 |
Lexer:
| |
|
2019-01-31
| ||
| 22:22 |
| |
| 20:43 | Lexer: added newline separator token. check-in: cf06bf7b6a user: achavasse tags: trunk | |
| 20:29 | Builtins: implemented the semicolon operator. check-in: 0ebd777925 user: achavasse tags: trunk | |
| 20:08 | Parser: handle implicit statement separation. check-in: 53c43bd74d user: achavasse tags: trunk | |
|
2019-01-30
| ||
| 23:32 | Removed an obsolete comment. check-in: b1f5302f0e user: achavasse tags: trunk | |
| 23:31 |
| |
| 22:39 | First draft of the compile-time interpreter. A simple builtin function call works. check-in: b844506db4 user: achavasse tags: trunk | |
| 19:53 | llr: remove the variable system from the old prototype, it's going to be done differently. check-in: 109bc76611 user: achavasse tags: trunk | |
|
2019-01-29
| ||
| 20:20 | Rename "canBeInterpreted" into "canBeExecuted". check-in: fa21ccaf91 user: achavasse tags: trunk | |
| 20:16 | Function invocation: unify the arguments and create the llr call. check-in: 0be0ac2e29 user: achavasse tags: trunk | |
|
2019-01-28
| ||
| 23:31 | Sema: implement getsignature for function types. check-in: 8c0bcfa896 user: achavasse tags: trunk | |
| 23:22 |
| |
| 23:05 | Sema: refactor function invocation rules so that they can provide a signature of the callee, in addition of resolving a call. check-in: 714e009000 user: achavasse tags: trunk | |
|
2019-01-27
| ||
| 16:50 | Sema: holes named _ are now considered anonymous and will always result in the creation of a new hole index. check-in: d3a22bfdc8 user: achavasse tags: trunk | |
| 16:05 | Sema: added a placeholder implementation for the function invocation rule. check-in: 61cece933d user: achavasse tags: trunk | |
|
2019-01-26
| ||
| 23:13 | Parser: implemented the parsing of calls. check-in: 92aae9c3f6 user: achavasse tags: trunk | |
| 13:55 | Sema: removed the wip fun rule system, replaced it with a rule system allowing to provide different ways to resolve call depending on patterns matched against the callee. check-in: 73e2565bf5 user: achavasse tags: trunk | |
| 13:13 | Sema: moved the unification rules container into Env. check-in: 0dbf71e8eb user: achavasse tags: trunk | |
|
2019-01-25
| ||
| 14:04 | Implemented builtin compile-time function registration. check-in: c44ddff153 user: achavasse tags: trunk | |
| 11:22 | Implemented c++ <-> ir tuple conversions. check-in: 465a7fe161 user: achavasse tags: trunk | |
|
2019-01-24
| ||
| 14:32 | Refactored c++ <-> value conversions into a centralized api that can be invoked through generic code. This will be needed to wrap native compile-time functions. check-in: 58cc4d39e9 user: achavasse tags: trunk | |
|
2019-01-23
| ||
| 15:51 | Parser: parenthese blocks. check-in: 13f2fade56 user: achavasse tags: trunk | |
| 13:48 | ir, lexer: defined a new term type for block delimiters. check-in: 3acca150d3 user: achavasse tags: trunk | |