Goose  Timeline

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

50 check-ins occurring around 2019-07-15 21:58:00.

2019-07-26
22:30
  • Implemented an unification rule of ct_integer versus rt_integer.
  • Fixed multiple bugs related to compile time eager evaluation.
  • Fixed incorrect usage of CompileFunc which resulted in not actually calling the domain specific version of the function.
check-in: f31afce8ce user: achavasse tags: trunk
18:33
llr, codegen: implemented "load constant" instructions for integers and strings. check-in: 443351dafe user: achavasse tags: trunk
16:57
codegen: generate basic blocks. check-in: 8574428775 user: achavasse tags: trunk
13:41
llr:
  • removed GetVar/SetVar for now, to be reintroduced later when implementing local vars.
  • added GetArg, a specific instruction to access function arguments (because codegen will need to treat this differently than accessing a local var).
check-in: efcc646794 user: achavasse tags: trunk
09:28
Added license file. check-in: 7ae7a08ed3 user: achavasse tags: trunk
02:14
codegen: generate correct function types. check-in: 5c095a9872 user: achavasse tags: trunk
01:50
Fix the Env never being deleted due to captured shared_ptr in some builtin functions which created reference cycles. check-in: 1eb3c4a890 user: achavasse tags: trunk
2019-07-25
22:30
Enable ThinLTO. check-in: cd65a705fd user: achavasse tags: trunk
22:17
codegen: handle function types in LowerType(). check-in: 8816e0b6e9 user: achavasse tags: trunk
15:50
builtins: extend GetLLVMType() to handle function types. check-in: eb91eeb361 user: achavasse tags: trunk
15:37
builtins: llvm types are now built and stored at a standard location in the ir expressions of runtime types. check-in: 3f9a7b5082 user: achavasse tags: trunk
14:09
Have the llvm context be a static instance instead of being owned by the Env object, so that we can access it anywhere. check-in: c5a38bbeae user: achavasse tags: trunk
2019-07-24
20:15
func type: change the term encoding to include a void pointer that will be used to link to the function's llvm type, if any. check-in: 403761ee88 user: achavasse tags: trunk
11:41
codegen: revised mangling, allow opaque pointers to be mangled since they are going to appear in native type identities, even though we don't care about what they point to for that purpose. check-in: 86893043c5 user: achavasse tags: trunk
11:03
ir:
  • get rid of the ability for a term to contain a pointer to another term (not used anymore)
  • terms can contain void pointers (to be used to link the term representation of runtime types to their corresponding llvm types)
check-in: 8e5fcb6557 user: achavasse tags: trunk
2019-07-23
19:44
codegen: implemented LowerType. check-in: e42ae3d514 user: achavasse tags: trunk
19:02
Moved overloadset's implementation into sema, as we'll need to keep pointers to some of them (used as extension points) in env. check-in: f8f1fcd169 user: achavasse tags: trunk
13:44
execute: added an execution limit on calls and branch instructions to be able to time out of non-terminating compile time code. check-in: f0b3b44bbb user: achavasse tags: trunk
2019-07-22
15:36
builtins: added a function to test whether a type is a runtime type. check-in: 138905cf4e user: achavasse tags: trunk
14:50
builtins: runtime types: added a common prefix to easily be able to check if a type is a runtime type. check-in: 64244c6d0c user: achavasse tags: trunk
13:15
Added a helper to perform a compile time OverloadSet invocation. check-in: c768853a4f user: achavasse tags: trunk
12:50
builtins: added a helper to create and register an empty OverloadSet, to serve as extension points for the library. check-in: f10b5377f7 user: achavasse tags: trunk
2019-07-21
23:48
Bumped llvm version. check-in: 8648053c0d user: achavasse tags: trunk
2019-07-16
20:06
builtins:
  • fixed runtime type definitions.
  • added definitions for runtime struct types.
check-in: 1f7039ee83 user: achavasse tags: trunk
2019-07-15
21:58
builtins: added definitions for runtime array type. check-in: eade11527c user: achavasse tags: trunk
21:43
builtins: added definitions for runtime pointer type. check-in: 84b541f45b user: achavasse tags: trunk
21:13
sema: removed a couple of superfluous rule lookups when resolving an invocation. check-in: c7da710bb0 user: achavasse tags: trunk
20:21
builtins: added definitions for basic runtime types. check-in: 54b8960363 user: achavasse tags: trunk
19:10
builtins: renamed int and string to ct_int and ct_string to distinguish them from the future runtime and user facing types. In the end there should be little to no reason to ever use these types directly outside of the library anyway. check-in: f40cfaed57 user: achavasse tags: trunk
2019-07-14
19:29
codegen:
  • implemented api to generate functions.
  • implemented tests for function generation.
check-in: ab106469dd user: achavasse tags: trunk
2019-07-13
23:30
  • Added missing quoting around function type's domain.
  • Detect and error out when an using expression is invoked recursively.
  • Fixed passing of generic values to builtin funcs (the pattern used was incorrect and didn't work when passing some types).
  • Added an unification rule to prevent single element tuples from being peeled off when unified against generic values.
  • Implemented an api function to compile a file into a function of a specified type and signature.
check-in: 50da1401ee user: achavasse tags: trunk
19:33
codegen: very first draft of function generation. check-in: 98a6fcaf3f user: achavasse tags: trunk
2019-07-12
20:58
codegen: implemented mangling. check-in: f97c0b2cab user: achavasse tags: trunk
2019-07-11
19:32
Allow overloading of builtin functions. check-in: bff15eb03d user: achavasse tags: trunk
2019-07-09
22:46
codegen: added builtin functions to create a module and to dump it as llvm assembly text. check-in: 429f55ae3c user: achavasse tags: trunk
21:14
Began the implementation of the code generator. check-in: c3a5885c4f user: achavasse tags: trunk
2019-07-08
19:40
Implemented parsing rules for function domain specifiers, and fixed a couple of related bugs. check-in: b39d1cbe9a user: achavasse tags: trunk
2019-07-07
16:22
Parser: parse function type modifiers. check-in: 105ba83ebf user: achavasse tags: trunk
10:33
Parser: refactored function and template function parsing to go through a common code path to build function types. check-in: 5fd301c5f9 user: achavasse tags: trunk
2019-07-06
13:27
Cleanup: remove a superfluous argument from BuildFunc(). check-in: f0724b61e5 user: achavasse tags: trunk
2019-06-29
14:36
Handle execution domains when invoking/unifying functions, template functions, overload sets and constrained funcs. check-in: 2acce94d2d user: achavasse tags: trunk
13:43
Build fixes to work with the latest git version of libc++. check-in: 326d403e6c user: achavasse tags: trunk
11:40
Added a domain specifier in function and template function types. check-in: ef1e94f44d user: achavasse tags: trunk
2019-06-27
19:37
sema: fixed a context creation mistake when resolving an invocation. check-in: 48ee263157 user: achavasse tags: trunk
19:30
sema: when resolving an invocation, attempt first to resolve it as a compile time invocation when applicable. check-in: c046a7f803 user: achavasse tags: trunk
2019-06-23
14:01
Functions are now recompiled for different execution domains as needed. check-in: 25e7ce2c8c user: achavasse tags: trunk
2019-06-22
15:00
Func: functions can be stored in an invalid state which means they couldn't be compiled for a given domain, but still contain enough information to compile/retrieve that function for a different domain. check-in: 87068d0fe8 user: achavasse tags: trunk
2019-06-21
18:22
Domains: setup correct identity domains in a few places. check-in: aaa9d75b0c user: achavasse tags: trunk
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.
check-in: cde0c6d0e3 user: achavasse tags: trunk
2019-06-18
21:44
Added some helper functions for domains and identities. check-in: a15bdabfec user: achavasse tags: trunk