Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
272 check-ins using file tests/g0/verification/c-fail-test-1.g0 or tests/noprelude/verification/c-fail-test-1.g or tests/noprelude/diagnostics/compile-verif-test-1.g version 3a10c9b691
|
2021-11-22
| ||
| 20:33 | Parser: split block parsing code check-in: a4eaf901ef user: zlodo tags: trunk | |
| 20:22 | Function pre-conditions and post-conditions now use the same proposition lists as type predicates check-in: 1c335aeb04 user: zlodo tags: trunk | |
|
2021-11-19
| ||
| 22:28 | Replaced "TypePredicates" by a more generic "Propositions" class, to be used for function predicates as well check-in: 098b3c34c9 user: zlodo tags: trunk | |
|
2021-11-16
| ||
| 21:18 | The details of creating a new visibility scope are now handled by the builder instead of being hardcoded in the parser check-in: 16dd587889 user: zlodo tags: trunk | |
|
2021-11-13
| ||
| 14:09 | The builder is now passed as the first param of the _DropValue extension point check-in: c33b227735 user: zlodo tags: trunk | |
|
2021-11-11
| ||
| 20:31 | Removed two other obsolete files check-in: ade3099696 user: zlodo tags: trunk | |
| 20:19 | Removed a file that was not properly deleted in the previous commit check-in: b808c4a5f5 user: zlodo tags: trunk | |
| 20:05 | Refactored the code builder: it is now carried around as a Value, and accessed through a bunch of extension points, so we can have different builders (and even user defined ones) later to make classes etc. check-in: 1ad61a2717 user: zlodo tags: trunk | |
| 01:00 |
| |
|
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 |
| |
|
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 |
| |
|
2021-10-30
| ||
| 22:51 |
| |
|
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 | |
|
2021-10-25
| ||
| 19:34 | Type predicates: store the expressions as an array of values, which avoids unecessary conversions and results in the inclusion of the CIR from the expressions in the hash check-in: 996d8d9686 user: zlodo tags: trunk | |
|
2021-10-24
| ||
| 20:22 | Implemented CIR instruction hashing check-in: f5cd8d2642 user: zlodo tags: trunk | |
|
2021-10-23
| ||
| 19:40 | Small code cleanup, moved some code to .cpp that didn't need to be in the header check-in: ef3548db6c user: zlodo tags: trunk | |
| 16:34 | Implemented hashing of EIR terms check-in: ec41139b5a user: zlodo tags: trunk | |
|
2021-10-09
| ||
| 22:07 | Prelude: use the Conjunction instruction to build the reference predicate equivalence check check-in: 233221b915 user: zlodo tags: trunk | |
| 21:50 | Added the Conjunction CIR instruction to build a conjunction from predicates at verification time check-in: e3485faf08 user: zlodo tags: trunk | |
| 20:12 | Predicates: add the possibility to store named sets of predicates in types, to be retrieved from a dictionary at verification time check-in: 459f60ca3a user: zlodo tags: trunk | |
| 15:52 |
| |
|
2021-10-08
| ||
| 17:06 | Linux build fix check-in: e386f21089 user: zlodo tags: trunk | |
|
2021-10-07
| ||
| 22:37 | Added tests for mutref predicates equivalence checking check-in: 50c3984309 user: zlodo tags: trunk | |
|
2021-10-06
| ||
| 21:50 | Mut ref predicates verification: display a useful error message check-in: 05ada78145 user: zlodo tags: trunk | |
| 14:13 | Diagnostics: when registering a custom diagnostic message, save the context stack along with it check-in: 18734ccbef user: zlodo tags: trunk | |
|
2021-10-04
| ||
| 16:13 | Fixed build issues with Tracy on mac and updated it to the last version check-in: f408a2e123 user: zlodo tags: trunk | |
| 12:06 | Cleanup check-in: b974d30199 user: zlodo tags: trunk | |
| 11:57 |
| |
|
2021-10-01
| ||
| 19:20 |
| |
|
2021-09-30
| ||
| 23:37 | Fixed a couple of bugs, but the linux version is broken for now (due to language bugs that can't be worked around and need to be fixed) check-in: 24415e41e4 user: zlodo tags: trunk | |
| 22:07 | Correctly generate and link executables on darwin check-in: 5f6197d1a0 user: zlodo tags: trunk | |
| 19:14 | Added a builtin g0 variable that exposes the name of the target OS, just to be able to quickly hack around some rudimentary mac support check-in: ec5428614c user: zlodo tags: trunk | |
|
2021-09-29
| ||
| 22:59 | Fixes for wsl build check-in: 886e9f72c4 user: zlodo tags: trunk | |
| 22:07 |
| |
|
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 check-in: 39c8a653da user: achavasse tags: trunk | |
|
2021-09-26
| ||
| 23:25 | Fixed template bugs with parametric types check-in: 097569fdd6 user: achavasse tags: trunk | |
| 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 check-in: 00408e8723 user: achavasse tags: trunk | |
| 19:47 |
| |
| 17:00 | g0 api: added a function to retrieve the CFG from a code builder check-in: e1194caa9e user: achavasse tags: trunk | |
| 16:16 | g0 api: removed the old codegen module wrapper, use TypeWrapper instead check-in: ded246dccd user: achavasse tags: trunk | |
| 14:17 | Intrinsics: expose the current code builder as an implicit parameter check-in: 60a2f901d5 user: achavasse tags: trunk | |
| 13:03 | Integrated mimalloc check-in: 8398bd36c2 user: achavasse tags: trunk | |
| 12:00 |
| |
|
2021-09-25
| ||
| 15:53 | eir: implemented OrPattern term check-in: 6b3eee40c4 user: achavasse tags: trunk | |
|
2021-09-24
| ||
| 19:11 | Overload resolution: cache which overload was selected for a given argument tuple check-in: 7bb051b826 user: achavasse tags: trunk | |
|
2021-09-23
| ||
| 21:42 | Got rid of trie versus trie matching, again. The clown show goes on check-in: ad0b20f57d user: achavasse tags: trunk | |
|
2021-09-22
| ||
| 20:25 | Removed the gross use of std::any from the type checking trie, also fixed some horribly wrong type error that got hidden by the std::any and happened to miraculously work anyway check-in: fabfc6df97 user: achavasse tags: trunk | |
|
2021-09-21
| ||
| 22:43 | Resurrected and updated trie versus trie matching that was removed [e9ee5d4728e2b2807b761d67820df11dcfbcdbaea2742828ac9ec8f8d3372e3e|a long time ago] to attempt an overload resolution optimization check-in: 626dafb38e user: achavasse tags: trunk | |
| 18:48 | eir: remove the function to match a single eir against another eir, which was never actually used check-in: dbf5bbf612 user: achavasse tags: trunk | |
|
2021-09-20
| ||
| 23:23 | Integrated the Tracy profiling client and added some profiling instrumentation check-in: b846dfa2fb user: achavasse tags: trunk | |
|
2021-09-19
| ||
| 23:35 | Fixed various bugs encountered while trying to override an extension point in the prelude check-in: 89c0616e71 user: achavasse tags: trunk | |
| 20:18 | Implemented "Implies" and "PHOverride" verification-specific CIR instructions check-in: 56ae4179a9 user: achavasse tags: trunk | |
| 19:30 | g0 api: ReferenceType and retrieving type predicates check-in: 78e91a4545 user: achavasse tags: trunk | |
| 16:06 | Began implementing the prelude, which now sets up the g1 namespace, hiding all the internal builtins and APIs from user code. check-in: 15fd7eba11 user: achavasse tags: trunk | |
| 14:42 | g0 api: #CompileFileToFunction takes the identity to use as root as parameter check-in: dd5e98c20d user: achavasse tags: trunk | |
| 14:23 | g0 api: Env check-in: 0da72aac62 user: achavasse tags: trunk | |
| 13:59 | g0 api: diagnostics check-in: 5ccfe91819 user: achavasse tags: trunk | |
| 11:20 | g0 api: CIR: CFG check-in: bdfee6615a user: achavasse tags: trunk | |
| 10:30 | g0 api: CIR: BasicBlock check-in: b96622b654 user: achavasse tags: trunk | |
|
2021-09-18
| ||
| 18:43 | g0 api: more work on the CIR api check-in: 447824df93 user: achavasse tags: trunk | |
| 17:00 |
| |
|
2021-09-17
| ||
| 23:04 | g0api, builtins: got rid of TermWrapper and ValueWrapper, use specializations of TypeWrapper instead to allow for more generic code check-in: 4a571387ed user: achavasse tags: trunk | |
| 20:43 | g0 api: more work on the CIR api check-in: a7c05af907 user: achavasse tags: trunk | |
| 19:15 |
g0 api:
| |
|
2021-09-16
| ||
| 21:31 | g0 api: started implementing the CIR api check-in: 8dd49b0d89 user: achavasse tags: trunk | |
| 21:01 | g0 api: implemented Value api check-in: 5c68efeb07 user: achavasse tags: trunk | |
| 20:05 | g0 api: the EIR Terms are now completely covered check-in: 78da84d2af user: achavasse tags: trunk | |
| 19:00 | More work on the g0 EIR api check-in: 967d3ba3d7 user: achavasse tags: trunk | |
|
2021-09-15
| ||
| 22:15 | Fixed the generic CTType and RTType patterns, and removed the super generic assignment operator overload that would accept literally any type check-in: ea7c04df2f user: achavasse tags: trunk | |
| 21:24 |
| |
| 01:02 | More work on the extensibility api check-in: 29872be1f2 user: achavasse tags: trunk | |
| 00:11 | Added a test for, and fixed tctrie variable length vector type checking check-in: c1b565fdda user: achavasse tags: trunk | |
|
2021-09-13
| ||
| 21:52 |
| |
|
2021-09-12
| ||
| 23:52 | Repo: syntax color theme change check-in: b4fe430e44 user: achavasse tags: trunk | |
| 23:20 | Repo: more syntax highlighting workarounds check-in: 6c481d18a4 user: achavasse tags: trunk | |
| 23:18 | Repo: syntax highlighting issue workaround check-in: 4b28030b9a user: achavasse tags: trunk | |
| 23:09 | Updated repo's syntax highlighting check-in: 951c8fed08 user: achavasse tags: trunk | |
| 21:38 |
| |
| 16:48 |
| |
| 13:43 | Small cleanup check-in: 9345aa6eae user: achavasse tags: trunk | |
| 13:42 | Adopted a new convention for source extensions: .g0 for prelude code (where most language features won't be available), .g1 for user code check-in: 45f663093d user: achavasse tags: trunk | |
| 12:34 | Split out the compile time api function out of builtins and into their own library check-in: b397dc5a7c user: achavasse tags: trunk | |
|
2021-09-11
| ||
| 23:40 | Builtins: api: added an object to wrap a term reference check-in: 5a2d5b8a8b user: achavasse tags: trunk | |
| 23:02 | Builtin funcs: added a wrapper for constant valued parameter (to be able to overloaded api functions depending on enum values) check-in: f4ea7d08af user: achavasse tags: trunk | |
| 19:44 |
| |
| 15:05 |
| |
|
2021-09-10
| ||
| 00:02 | Parser: when parsing a function overload, instead of directly adding it to the overload set, push an "Overload" value that performs the addition in DropValue(). This will allow operators to modify overloads before they are added to an overload set. check-in: 5f4eeaef12 user: achavasse tags: trunk | |
|
2021-09-09
| ||
| 18:21 | Implemented the $$ operator to create a forwarding template variable check-in: 9b9f4b0fa9 user: achavasse tags: trunk | |
| 18:12 | Implemented non-builtin intrinsic function invocation check-in: 121560d1c1 user: achavasse tags: trunk | |
|
2021-09-01
| ||
| 23:26 | Some cleanup and small reorganization in preparation for implementing non builtin intrinsic functions check-in: bbd2c17c42 user: achavasse tags: trunk | |
|
2021-08-31
| ||
| 23:10 |
| |
|
2021-08-29
| ||
| 21:49 |
| |
| 19:13 | Removed stray debugging code. check-in: 7e15ecf852 user: achavasse tags: trunk | |
|
2021-08-28
| ||
| 17:55 |
| |
|
2021-06-15
| ||
| 21:14 | Small fixes check-in: 05a35f70f0 user: achavasse tags: trunk | |
|
2021-06-11
| ||
| 11:42 |
| |
|
2021-04-11
| ||
| 13:10 | Implemented a way to track down (in debug builds) which typechecking rules were used to select a given function overload that doesn't involve peppering half the code base with debug prints and then painstakingly poring over a gigantic log check-in: 4ece399a6f user: achavasse tags: trunk | |
|
2021-03-19
| ||
| 21:49 | Verification: when loading a value from memory, emit assumptions for its type's refinement conditions. check-in: 5d2f26492e user: achavasse tags: trunk | |
|
2021-03-18
| ||
| 12:42 | Verifier: get rid of a helper that's no longer needed check-in: 3e169a34af user: achavasse tags: trunk | |
|
2021-03-17
| ||
| 12:17 | Verifier: force z3 to use its old arithmetic solver for now to prevent one of the verifier test to hang with recent z3 versions. check-in: 71c91d9322 user: achavasse tags: trunk | |
| 00:41 |
| |
|
2021-03-05
| ||
| 17:56 | Implemented refinement type predicate unification. Predicate violations by variable initialization are now properly detected. check-in: b2945b5bb1 user: achavasse tags: trunk | |
|
2021-03-04
| ||
| 23:22 | Improved diagnostics rendering a little check-in: 3ca76452a1 user: achavasse tags: trunk | |
| 21:47 |
| |
|
2021-03-02
| ||
| 22:51 | Removed magic "tuple of types to tuple type" conversions and moved them into extension points so that any type can implement similar semantics check-in: 2370e98869 user: achavasse tags: trunk | |
|
2021-03-01
| ||
| 20:21 | Split the verification tests into more subdirectories. check-in: 48b0306e20 user: achavasse tags: trunk | |
| 12:32 | Reorganized tests, they are now grouped by language feature. check-in: 5e757567a6 user: achavasse tags: trunk | |
|
2021-02-25
| ||
| 20:38 | Small cleanup check-in: 9d548bcd22 user: achavasse tags: trunk | |
| 20:35 | Fixed the creation of references to tuple types, and a reference typechecking rule priority issue. Re-enabled the last previously disabled reference test, which now works again. check-in: 2f6b5946cf user: achavasse tags: trunk | |
| 18:37 | CodeBuilder: minor optimization check-in: 7f3be49341 user: achavasse tags: trunk | |
| 12:10 | Implemented a new method to order function overloads. Enabled several new reference tests which are now working properly. check-in: 52ea24b083 user: achavasse tags: trunk | |
|
2021-02-21
| ||
| 17:15 | Improved the #DumpValue debugging intrinsic check-in: cb0fd19317 user: achavasse tags: trunk | |
|
2021-02-19
| ||
| 20:48 | Fix anonymous functions not getting compiled anymore due to an old bug. Added a test for that, since it turns out there weren't any check-in: 22b3b50b4f user: achavasse tags: trunk | |
|
2021-02-18
| ||
| 20:32 | Removed stray debugging profanity. check-in: 8cdafa4fa4 user: achavasse tags: trunk | |
| 19:35 |
Implemented reference initialization, so reference local variables can now be declared, and added a typechecking rule preventing template variables to bind to reference types.
Then fixed a MILLION horrible problems caused by all that. Now almost everything works again. *sobs* check-in: 9b058524b4 user: achavasse tags: trunk | |
|
2021-02-13
| ||
| 21:21 | Hole unification: preserve the flavor term check-in: 9d94af0817 user: achavasse tags: trunk | |
|
2021-02-12
| ||
| 23:57 | Added a "flavor" term to holes to be able to have specific rules for TVar holes and for forwarding holes. Refactored forwarding holes to use this, instead of being represented as compound expressions (which would probably have broken down horribly in some complex type checking scenarios) check-in: 176ee856a6 user: achavasse tags: trunk | |
|
2021-02-11
| ||
| 11:59 | Fixed some long standing meson warnings, enabled more c++ warnings, and fixed them check-in: fbe6ea9f31 user: achavasse tags: trunk | |
|
2021-02-08
| ||
| 12:52 | Implemented forwarding, use it for decl assignments. check-in: 102a2b2fc7 user: achavasse tags: trunk | |
|
2021-02-05
| ||
| 22:58 | Sema: typecheck: try rules in descending scoring order until we find one that yields any result. check-in: aad44e1516 user: achavasse tags: trunk | |
|
2021-02-03
| ||
| 12:52 | Fix llvm passbuilder params to stop inadvertently enabling debug mode due to an api change. check-in: 29f1006d63 user: achavasse tags: trunk | |
|
2021-02-02
| ||
| 20:46 | CIR expressions pretty printing check-in: bcca4c51ba user: achavasse tags: trunk | |
|
2021-02-01
| ||
| 19:26 | Added a rule based system to pretty print EIR expressions in a less horrific way. check-in: 6675f81702 user: achavasse tags: trunk | |
| 12:56 | Correctly handle references to references, plus some code cleaning. check-in: ba909d1a94 user: achavasse tags: trunk | |
|
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. check-in: 7b9f645074 user: achavasse tags: trunk | |
|
2021-01-13
| ||
| 11:46 | Sema: simplification: the "half-unification" rules don't need to be generators, they can only output one result. check-in: 3bf30e74ac user: achavasse tags: trunk | |
|
2021-01-12
| ||
| 21:08 | Implemented missing lowering of reference types to pointer types, added a bunch of runtime/compilation time reference tests. check-in: 90c951f66f user: achavasse tags: trunk | |
|
2021-01-11
| ||
| 20:20 | Reorganized symbols visibility a bit to avoid local variables from the enclosing function to be visible inside of function parameter list declarations (which prevented reusing them as parameter names). check-in: 52280a3c5c user: achavasse tags: trunk | |
|
2021-01-07
| ||
| 16:26 | Fixed template references. check-in: 54e783e254 user: achavasse tags: trunk | |
|
2021-01-03
| ||
| 18:34 | Fixed a bug with addresses computed during compilation time execution. Mutating values through references passed as parameters now works, at compilation time at least. check-in: 3eebbcff0c user: achavasse tags: trunk | |
| 15:44 | cir: load, store and select store their base addresses directly as cir instructiions, rather than wrapped into eir values, which is useless there. check-in: 4cc7a833f8 user: achavasse tags: trunk | |
|
2021-01-02
| ||
| 18:24 | Yet one more reference/address refactor: each calculation step (getting temp addr, getting var addr, selecting a member) is now a separate cir instruction. We need this level of generalization to be able to obtain addresses from anywhere, including variables and function parameters. check-in: 26c691ecb9 user: achavasse tags: trunk | |
| 18:00 | Some more renaming. check-in: 0345b9f807 user: achavasse tags: trunk | |
|
2020-12-27
| ||
| 14:40 | Renamed "ir" to "eir" (expression intermediate representation) and "llr" to "cir" (code intermediate representation) for clarity. check-in: 7d2def7b75 user: achavasse tags: trunk | |
|
2020-12-26
| ||
| 14:59 | Build fix check-in: c8058eaaf9 user: achavasse tags: trunk | |
|
2020-12-18
| ||
| 01:29 | References refactor: references are now values all the way to the llr, where a new "CalcAddress" instruction represents a conversion from a logical address (location + path) into an actual runtime or compilation time address. This is in preparation to allow references to be stored in variables or passed as parameters. (It just took 4.5 months to finish this... Refactoring just sucks) check-in: 8ddd71f9b2 user: achavasse tags: trunk | |
|
2020-08-02
| ||
| 19:26 | Execute: use a proper call stack so that we'll be able later on to reference values living on the caller's stack to be able to pass references around at compilation time. check-in: 151e3b4d8c user: achavasse tags: trunk | |
|
2020-07-07
| ||
| 21:08 | When creating a reference to a local variable, if it contains a reference, just unwrap it. check-in: 421381dc15 user: achavasse tags: trunk | |
|
2020-07-06
| ||
| 19:49 | Fixes for the current git version of clang/llvm. check-in: 834d8f14b9 user: achavasse tags: trunk | |
|
2020-07-05
| ||
| 20:15 | Implemented reference parsing. check-in: 086a58a7a3 user: achavasse tags: trunk | |
|
2020-07-04
| ||
| 13:08 |
| |
| 12:24 | Verification: fixed a bug with address havocing. check-in: 879d75711b user: achavasse tags: trunk | |
|
2020-07-03
| ||
| 23:09 | Removed a couple of obsolete comments. check-in: 4dd8529aac user: achavasse tags: trunk | |
| 23:03 |
| |
|
2020-07-02
| ||
| 19:31 | Added tests for tuples of references. check-in: 05ec684dbf user: achavasse tags: trunk | |
| 00:47 |
| |
|
2020-06-27
| ||
| 22:05 | Clearly separate the type checking rules and the unification rules, instead of lumping them all together in a single set of patterns which is increasingly confusing. check-in: b64ea47f6b user: achavasse tags: trunk | |
|
2020-06-26
| ||
| 23:34 |
Cleanup:
| |
|
2020-06-20
| ||
| 19:59 | Verifier: some fixes to correctly handle tuples. Still not quite working yet. check-in: 060e84f233 user: achavasse tags: trunk | |
| 16:07 | Fixed one of the tuple unification rule. check-in: 48bb81ebdd user: achavasse tags: trunk | |
| 14:32 |
| |
|
2020-06-15
| ||
| 22:09 | Refactored the integer/ct_int unification to defer the size/sign check to a postprocessing callback. check-in: ac4e681af3 user: achavasse tags: trunk | |
| 19:45 | Call "Postprocess" on unification solutions during the best solution lookup, so that custom postprocessing callbacks can trigger the rejection of a solution. check-in: daee557086 user: achavasse tags: trunk | |
| 19:16 | Moved some common code into a helper function to facilitate some future refactoring. check-in: df0ad9a7f1 user: achavasse tags: trunk | |
|
2020-06-13
| ||
| 22:59 |
| |
| 13:34 | Implemented new rules for implicit dereferencing and implicit referencing. check-in: 4d5cc07d86 user: achavasse tags: trunk | |
| 13:15 | Rewrote the reference unification rules. check-in: ba97c17dee user: achavasse tags: trunk | |
| 13:05 | Fixed eager evaluation not failing gracefully in some cases. check-in: c70d722331 user: achavasse tags: trunk | |
| 12:51 | Modify the reference IR representation so that we can have holes for the behavior. check-in: 385846b609 user: achavasse tags: trunk | |
|
2020-06-05
| ||
| 18:57 | Verifier: loops: instead of tracking and havocing modified variables during loops, track modified addresses, so that modifying only some fields of a tuple will not result in forgetting everything about the other fields. check-in: 54ef60956e user: achavasse tags: trunk | |
| 00:42 | Cleanup. check-in: ea28d09f80 user: achavasse tags: trunk | |
| 00:35 | Verifier: handle "StoreToAddress" for addresses that point to tuple members. check-in: 077c944c02 user: achavasse tags: trunk | |
|
2020-06-03
| ||
| 23:08 |
| |
|
2020-06-01
| ||
| 18:39 | Verifier: go through the LowerConstantForVerification extension point when building a constant expression. check-in: 98739f02b6 user: achavasse tags: trunk | |
| 01:21 | Cleanup. check-in: c793734a0a user: achavasse tags: trunk | |
| 01:06 | Verifier: refactored type handling and extended it to handle tuple types. check-in: 6f98718d3b user: achavasse tags: trunk | |
|
2020-05-30
| ||
| 14:25 | Enable's z3 new arith solver as the old one takes a very long time in one of the tests with the latest version of z3. check-in: 4b56796791 user: achavasse tags: trunk | |
|
2020-05-25
| ||
| 22:08 |
| |
|
2020-05-23
| ||
| 12:58 |
| |
|
2020-05-21
| ||
| 17:26 | Created a new term type to represent holes in IR expressions. The old system of representing holes using a vector of two values led to ambiguousness when creating some rule patterns: a tuple whose both type vector and payload vector were holes would be indistinguishable from a tuple containing two elements. check-in: 51c6751b6d user: achavasse tags: trunk | |
|
2020-05-19
| ||
| 17:07 | Added an unification rule for computed tuples which creates constant references for each members and unifies them. check-in: 2ecfa85c23 user: achavasse tags: trunk | |
| 15:03 | The TemporaryAddress address calculation mode now carries around the initializer value, in case the temporary doesn't already exist. This allows a reference to a temporary to be completely self contained in its value, rather than requiring a separate setup instruction to be emited in the cfg. check-in: 934090c5a8 user: achavasse tags: trunk | |
|
2020-05-18
| ||
| 12:39 |
| |
|
2020-05-17
| ||
| 17:30 |
| |
|
2020-05-16
| ||
| 19:32 | Repo: fix syntax highlighting with the latest trunk verison of fossil. check-in: 807a4f208b user: achavasse tags: trunk | |
| 19:21 | Minor cleanups. check-in: 6099081bdd user: achavasse tags: trunk | |
| 18:39 | Now that we can assign mutable references, it is possible to assign to a tuple member. Added a test for that. check-in: 27a74436f3 user: achavasse tags: trunk | |
| 18:32 | The builtin assignment operator overloads now return the reference to support chained assignments. check-in: ba2a02025d user: achavasse tags: trunk | |
|
2020-05-14
| ||
| 22:24 | The compound assignment operators now take a mutable reference as the lhs. check-in: e4cd7e104e user: achavasse tags: trunk | |
|
2020-05-13
| ||
| 18:15 |
References:
| |
|
2020-05-04
| ||
| 18:43 | Refactored the Initialize() extension point to take a mutable reference instead of directly taking a locvar. check-in: 10df99e08a user: achavasse tags: trunk | |
|
2020-05-03
| ||
| 15:32 | Simplified the llr address representation. check-in: 0b4eb97a44 user: achavasse tags: trunk | |
|
2020-04-22
| ||
| 23:27 | Removed llr::SetVar, now using the more generic llr::Store instead. check-in: 036092faf1 user: achavasse tags: trunk | |
|
2020-04-15
| ||
| 06:36 | Removed llr::GetVar, now using the more generic llr::Load instead. check-in: 20c242dc4f user: achavasse tags: trunk | |
|
2020-04-11
| ||
| 23:33 | Updated to the latest git version of llvm. check-in: d38aab5fc2 user: achavasse tags: trunk | |
| 21:01 |
| |
|
2020-03-11
| ||
| 22:11 | Reference: implemented a pattern provider for mutable references. check-in: 58491e544e user: achavasse tags: trunk | |
|
2020-03-07
| ||
| 16:36 | More work and fixes on references. Reading a tuple member using the . operator (which returns a constant reference) is now working. check-in: 1c33db7499 user: achavasse tags: trunk | |
|
2020-02-29
| ||
| 15:07 | Implemented unification for references. check-in: 4940c5c904 user: achavasse tags: trunk | |
|
2020-02-27
| ||
| 22:15 | Implemented the dot operator for tuples. check-in: 2f953408d9 user: achavasse tags: trunk | |
|
2020-02-26
| ||
| 22:48 | builtins: added the reference type. check-in: b4dfb8c928 user: achavasse tags: trunk | |
|
2020-02-23
| ||
| 23:57 | llr: added the load and store instructions. check-in: f34a90f312 user: achavasse tags: trunk | |
|
2020-02-22
| ||
| 21:22 | llr: added the GEP instruction. check-in: 1f1bc22ffc user: achavasse tags: trunk | |
|
2020-02-20
| ||
| 22:44 | Minor code formatting cleanup. check-in: 0af3d1c728 user: achavasse tags: trunk | |
| 22:42 |
| |
|
2020-02-17
| ||
| 23:15 | Register temporary values returned from function calls for destruction, so that DestroyValue() is invoked on them. check-in: a0ee0dfc2e user: achavasse tags: trunk | |
|
2020-02-15
| ||
| 15:13 | Started to implement a virtual memory sub system for compilation time execution. check-in: f18062b8da user: achavasse tags: trunk | |
|
2020-02-09
| ||
| 19:23 | Small cosmetic error messages fixes. check-in: edf6a9d2ed user: achavasse tags: trunk | |
| 19:02 |
Builtin operators:
| |
| 16:55 |
| |
|
2020-02-04
| ||
| 21:42 | Builtins: implemented helpers to construct complex computed values using expression templates. check-in: 6ed2bd7a75 user: achavasse tags: trunk | |
| 20:20 | Unfuck some documentation. check-in: 87f7150020 user: achavasse tags: trunk | |
|
2020-02-02
| ||
| 23:13 | Docs: small layout improvement. check-in: 0521bfdcdf user: achavasse tags: trunk | |
| 23:10 | Some documentation cleanup and update. check-in: c9186b7b9f user: achavasse tags: trunk | |
| 21:47 | Refinement types: implemented tests and fixed some issues. check-in: 972099a359 user: achavasse tags: trunk | |
|
2020-02-01
| ||
| 23:28 |
Refinement types:
| |
| 22:54 | Refinement types: when calling a function, assert the param's predicates and assume the return type's predicates. check-in: d828564e66 user: achavasse tags: trunk | |
| 22:32 | Refinement types: assert the return type predicates when returning from a function. check-in: 7259273cf9 user: achavasse tags: trunk | |
|
2020-01-28
| ||
| 21:52 | Refinement types: assume parameter types predicates at the beginning of functions. check-in: 7f16edb82a user: achavasse tags: trunk | |
|
2020-01-27
| ||
| 00:24 | Refinement types: parse predicates lazily to play well with templates. check-in: e57c63fea5 user: achavasse tags: trunk | |
|
2020-01-23
| ||
| 22:24 | Refinement types: implemented the where operator to add predicates to a type. check-in: 9586391cdb user: achavasse tags: trunk | |
|
2020-01-22
| ||
| 22:14 | Standardized the way type values are encoded to make room for an optional pointer to a list of predicates for refinement types. check-in: cc380f4f8f user: achavasse tags: trunk | |
|
2020-01-16
| ||
| 21:41 | ir: also make void* always compare to true to make it easier to work with llvm type pointers embedded inside type IR expressions. check-in: 6680e30102 user: achavasse tags: trunk | |
| 20:46 | ir: comparing ptr< void > is considered always true, to allow to more easily attach opaque data onto ir expressions without changing their semantics. check-in: 1a704c5a51 user: achavasse tags: trunk | |
|
2020-01-13
| ||
| 23:13 | Renamed the runtime struct type to "record" to avoid future confusion since it's a much lower level type (essentially just a tuple restricted to runtime types) than the future "struct" type. check-in: b573d100cf user: achavasse tags: trunk | |
|
2020-01-12
| ||
| 21:10 | builtins: added wrapper types to allow terms and values to be manipulated at low level within the language itself. check-in: ceb0b190d6 user: achavasse tags: trunk | |
| 20:03 | builtins: added a wrapper for a CodeBuilder pointer. check-in: d4e5c46e57 user: achavasse tags: trunk | |
|
2020-01-11
| ||
| 18:28 |
| |
|
2020-01-05
| ||
| 21:46 | Fix (inconsequential) missing else. check-in: 9ad87f2dcf user: achavasse tags: trunk | |
| 20:22 |
| |
| 17:41 | Simplified the implementation of the comma operator. check-in: a25bb3bc5f user: achavasse tags: trunk | |
|
2020-01-04
| ||
| 23:44 |
| |
| 18:27 | Verification: changed the syntax for the current function's return value to the more explicit "@result". check-in: cbbd282cfa user: achavasse tags: trunk | |
| 17:28 | Loop verifier: when still finding counter-examples at max K unrolls, emit error messages for the failed conditions instead of a generic "couldn't verify loop" message. check-in: 23d2aa4c8a user: achavasse tags: trunk | |
| 15:48 | Verifier: tweak the wording of the unsatisfiability error for consistency, also sort those by location ids to have a deterministic output. check-in: 264e55dac8 user: achavasse tags: trunk | |
| 15:17 |
| |
|
2019-12-14
| ||
| 21:24 | Verifier: fixed multiple issues with nested loop verification. check-in: 693415ce16 user: achavasse tags: trunk | |
|
2019-12-11
| ||
| 15:38 |
| |
|
2019-12-05
| ||
| 17:40 | Implemented a helper to check whether a type is compile-time only. check-in: 12f37d77cb user: achavasse tags: trunk | |
|
2019-12-03
| ||
| 20:34 |
| |
|
2019-12-01
| ||
| 20:17 |
Verifier:
| |
|
2019-11-29
| ||
| 12:15 | Verifier: handle phi instructions. check-in: b7dd8a4d25 user: achavasse tags: trunk | |
|
2019-11-28
| ||
| 17:53 | Verifier: implemented most of the missing instructions (unsigned arithmetic and bitwise operations). check-in: 60e143d189 user: achavasse tags: trunk | |
|
2019-11-27
| ||
| 20:24 |
Verifier:
| |
|
2019-11-19
| ||
| 20:49 | Store a location in loop headers, and use it to provide more context when diagnosing loop verification failures. check-in: 5f20eec65e user: achavasse tags: trunk | |
| 20:20 | cfg: fix the way the variable ids modified by each loop are stored to avoid duplicate entries. check-in: 1c3ff200aa user: achavasse tags: trunk | |
| 00:04 | cfg: now that we got rid of this crazy system where CFGs could "call" other CFGs that weren't really functions, removed that clumsy cfg index that was needed to identify temporaries everywhere. check-in: 238df77134 user: achavasse tags: trunk | |
|
2019-11-18
| ||
| 22:42 | Removed the "inline CFG" llr instruction and related support code. check-in: 5329f83e33 user: achavasse tags: trunk | |
| 22:09 | Refactor the logic and/or operator to directly append new basic blocks into the current CFG, rather than using a special llr instruction that embeds a nested CFG, whose implementation creates a lot of complexity everywhere. check-in: 70717f6b76 user: achavasse tags: trunk | |
| 01:40 | Verifier: first seemingly working version of the k-induction loop checker. check-in: 477ef5b3d4 user: achavasse tags: trunk | |
|
2019-11-17
| ||
| 18:20 |
| |
|
2019-11-16
| ||
| 16:27 |
| |
|
2019-11-08
| ||
| 11:48 | Verifier: check assertions with z3 immediately instead of postponing it until we have built the entire formula for the function. check-in: e33c4ea6c1 user: achavasse tags: trunk | |
|
2019-11-04
| ||
| 19:53 | Verifier: more work on loop verification. check-in: b4385d9930 user: achavasse tags: trunk | |
|
2019-10-30
| ||
| 22:09 | Removed an obsolete comment. check-in: 626057ff22 user: achavasse tags: trunk | |
| 22:08 | Verifier: more work on loop verification. check-in: c91249ffc7 user: achavasse tags: trunk | |
|
2019-10-27
| ||
| 21:31 | Verifier: split func.cpp into multiple files to make navigation easier. check-in: f606dd6e5d user: achavasse tags: trunk | |
|
2019-10-22
| ||
| 22:11 | Verifier: traverse basic blocks in breadth first order and make sure that the current block's predecessors are processed first, so that we don't rely anymore on the order in which they are created by the statements. check-in: d7e2fcc24f user: achavasse tags: trunk | |
|
2019-10-20
| ||
| 14:13 | Verifier: more work on loop unrolling. check-in: 8082ea7f42 user: achavasse tags: trunk | |
|
2019-10-18
| ||
| 11:33 |
Verifier:
| |
|
2019-10-16
| ||
| 23:08 | llr: detect and store relevant informations about loops in the CFG to be able to unroll them in the verifier. check-in: b1f107d1e7 user: achavasse tags: trunk | |
|
2019-10-15
| ||
| 00:04 | llr: implemented a helper function to compute dominators. check-in: cfc94e192c user: achavasse tags: trunk | |
|
2019-10-12
| ||
| 17:25 | Verifier: use z3 push/pop to check assertions one at a time, so that we can find and report multiple errors in the same function. check-in: b414bc18df user: achavasse tags: trunk | |
|
2019-10-11
| ||
| 22:24 | Docs: add anchors on sub section titles. check-in: 4f4a1dc4aa user: achavasse tags: trunk | |
|
2019-10-10
| ||
| 01:00 | Docs: typo fix. check-in: d167a0b946 user: achavasse tags: trunk | |
| 00:38 | Some docs fixes. check-in: e36fbebe18 user: achavasse tags: trunk | |
| 00:26 | Wrote some docs. check-in: 8f046020b6 user: achavasse tags: trunk | |
|
2019-10-09
| ||
| 19:42 | Added .editorconfig file. check-in: ed08ba02f2 user: achavasse tags: trunk | |
| 19:34 | Some more renaming. check-in: f65c08a1c5 user: achavasse tags: trunk | |
| 19:21 | Some renaming for consistency and to match commonly used names for those things. check-in: 5e72e8e08c user: achavasse tags: trunk | |
|
2019-10-08
| ||
| 21:55 |
| |
| 18:17 | Expose "@" as a placeholder for the function's return value inside of ensures statements. check-in: 8541259c1c user: achavasse tags: trunk | |
| 18:02 | Added the "placeholder" llr pseudo instruction. check-in: cc9ce06e64 user: achavasse tags: trunk | |
|
2019-10-07
| ||
| 22:04 | Made the "assertion failure" error message lowercase to be consistent with other error messages. check-in: acbb4b30b8 user: achavasse tags: trunk | |
| 21:58 |
| |