Goose  Timeline

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

12 check-ins using file bs/parse/parser.cpp version 9ec63f3881

2021-11-11
01:00
  • refactored the ref syntax again: "ref" is now an infix operator that takes an "AccessLevel" compile time value (mut/const/temp) on the lhs, or a TVar to capture/constrain it
  • used the above feature to fix the constref verification _ConvertArg overload which was silently dereferencing the arg, causing it to get converted to a temp ref in all cases
check-in: d679acf746 user: zlodo tags: trunk
2021-11-05
12:56
Fixed non mutable reference passing verification. It was a completely stupid error entirely in the prelude. I'm already fucking up using my own language, this bode well check-in: 0c58009de2 user: zlodo tags: trunk
2021-11-03
22:55
  • References: ref now creates a template type accepting any kind of reference, and mut/const/temp are prefix operators turning that into a ref (or template ref) type of the corresponding kind (this also changes the syntax from ref mut XXX to mut ref XXX which is more natural)
  • Fixed the bizarely broken implicit referencing typechecking rule that performed a superfluous intermediate TypeCheck that crashed on non mutable template reference types
  • Fixed builtin function wrapper that omitted a cast of the return value to the specified type, which allowed builtin functions to silently return values of a different type than advertised, resulting in fun type checking errors
  • Fixed a bunch of fucked up return types that worked by chance (because of the above) in several g0 api functions
  • Implemented non mutable reference passing verification + related tests (it doesn't work yet but too many fixes need to be committed first)
check-in: 55994a469a user: zlodo tags: trunk
2021-11-01
11:16
Verifier: fixed verification taking a billion years in some cases check-in: ec2b1e3b74 user: zlodo tags: trunk
2021-10-31
18:52
  • Reverted most of the horribly complicated changes done since [b3ff9af3c2fe4925], other than the ability to hash all terms, values, instructions and predicates
  • Solved the problem for which tests were added in [b3ff9af3c2fe4925] in a much simpler way
check-in: 1fe5a1ac2b user: zlodo tags: trunk
2021-10-30
22:51
  • Fixed type predicate hashing
  • Template: create a monomorphization specific identity for verification (as opposed to the instance specific identity in which we ignore predicate hashes)
check-in: a681efadd9 user: zlodo tags: trunk
2021-10-29
20:03
Template rules: implemented a function to setup bindings for captured predicates check-in: eccb9be7b9 user: zlodo tags: trunk
2021-10-28
21:48
Template rules: implemented a function to extract the type predicate hashes of captured types check-in: 8fe613b1ac user: zlodo tags: trunk
20:25
Template: split template function verification from instantiation check-in: 84723188cd user: zlodo tags: trunk
2021-10-27
22:23
Func: CompileFunc() doesn't perform function verification anymore, there's now a separate CompileAndVerifyFunc() for that check-in: 562bf11329 user: zlodo tags: trunk
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. check-in: 45078c42df user: zlodo tags: trunk
2021-10-26
18:43
Type predicates: implemented helper functions to append / filter out type predicate hashes in identities. check-in: d40e6470bf user: zlodo tags: trunk