summaryrefslogtreecommitdiff
path: root/compiler (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
| * | Correct implementation of Join-MutBorrows: add markers when creating a new ↵Aymeric Fromherz2024-05-301-3/+4
| | | | | | | | | | | | abstraction
| * | More lisible sign for proj_right pretty-printingAymeric Fromherz2024-05-301-1/+1
| | |
| * | Implement two phases of loops join + collapseAymeric Fromherz2024-05-304-383/+552
| | |
| * | Compute marker information for borrow/loan mapsAymeric Fromherz2024-05-283-50/+73
| | |
| * | Add type and set/map for marker and borrow idAymeric Fromherz2024-05-283-9/+21
| | |
| * | Simplify collapse_ctxAymeric Fromherz2024-05-271-6/+5
| | |
| * | Simplify reduce_ctxAymeric Fromherz2024-05-271-21/+6
| | |
| * | Split collapse into collapse and reduce, rename accordinglyAymeric Fromherz2024-05-274-13/+185
| | |
| * | Add projection markers when joining environmentsAymeric Fromherz2024-05-271-0/+59
| | |
| * | Add markers everywhere, do not use them yetAymeric Fromherz2024-05-2710-139/+302
| | |
| * | Start adding markersSon Ho2024-05-246-50/+94
| | |
* | | Remove the cps.eval_result typeSon Ho2024-05-3010-38/+73
| | |
* | | Remove the options from the functions synthesizing the symbolic ASTSon Ho2024-05-3010-385/+276
| |/ |/|
* | Factor out code in ExtractBuiltin.mlSon Ho2024-05-292-163/+124
| |
* | Fix an issue with some names being ignored when generating unique variable namesSon Ho2024-05-281-21/+19
| |
* | Fix a bug in SymbolicToPure.translate_loopSon Ho2024-05-281-4/+1
| |
* | Factor out the code for Lean and CoqSon Ho2024-05-241-143/+41
| |
* | Merge branch 'main' into afromher/recursive_projectorsSon Ho2024-05-2451-4933/+4787
|\|
| * Expand debug output in loops fixed pointsAymeric Fromherz2024-05-241-1/+16
| |
| * Rename meta into spanAymeric Fromherz2024-05-2451-2939/+2943
| |
| * Rename span into raw_spanAymeric Fromherz2024-05-244-20/+20
| |
| * Update charon pinNadrieril2024-05-242-2/+3
| |
| * Fix a crash which happens when type definitions are ignoredSon Ho2024-05-241-2/+5
| |
| * Print the name patterns of the definitions which fail to extractSon Ho2024-05-242-15/+24
| |
| * Update the interpreter so that it is not written in CPS style (#120)Escherichia2024-05-2319-2294/+2116
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Start turning the compiler in a style which is less CPS * Update a function in InterpreterExpressions.ml * WIP work on cps * WIP * WIP, currently on InterpreterStatements.ml * WIP * Finished CPS-related modification * Fixed some warning related to documentation comments * Finished loop support, fixed a loop * fixed a typed value * Fixed check_disappeared related error * cleaned check_disappeared related error * Start cleaning up * Do more cleanup * Make some cleanup and fix an issue * Do more cleanup * Do more cleanup * Do more cleanup * Do more cleanup * Do more cleanup * Do more cleanup * Do more cleanup * Do more cleanup * Rename a function * Do more cleanup * Cleanup the loops code and fix some bugs * Cleanup assign_to_place * Make a minor cleanup --------- Co-authored-by: Son Ho <hosonmarc@gmail.com>
* | Add simp, reducible attributes to generated Lean projectorsAymeric Fromherz2024-05-231-0/+10
| |
* | Do not expand field projector for recursive structs to a let binding in LeanAymeric Fromherz2024-05-231-5/+0
| |
* | Improve formatting of Lean struct projectorsAymeric Fromherz2024-05-231-2/+6
| |
* | Add printing of projectors for recursive structs in Lean backendAymeric Fromherz2024-05-231-3/+130
|/
* Catch new literal variantsNadrieril2024-05-142-0/+6
|
* Ensure `./charon` points to a valid charon cloneNadrieril2024-05-142-1/+1
|
* Update charonNadrieril2024-05-062-3/+12
|
* Add error when handling mutually recursive traitsAymeric Fromherz2024-05-011-1/+4
|
* Update compiler/ExtractBuiltin.mlSon HO2024-04-261-1/+1
| | | Co-authored-by: Zyad Hassan <88045115+zhassan-aws@users.noreply.github.com>
* Update the backend and ExtractBuiltin.mlSon Ho2024-04-251-1/+4
|
* Merge branch 'main' into core-option-unwrapSon Ho2024-04-251-0/+25
|\
| * Merge branch 'main' into option-takeSon Ho2024-04-2510-100/+212
| |\
| * | compiler: introduce Lean-only translationsRyan Lahfa2024-04-241-10/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On the long run, all backends will not have equivalent or equal support for extraction. This introduces a function to filter out some Lean-only definitions in our various arrays of core functions. Signed-off-by: Ryan Lahfa <ryan.lahfa@inria.fr>
| * | compiler: map `core::option::Option::is_none` to `Option.isNone`Ryan Lahfa2024-04-241-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | Our backend already have support for `isNone`, we just map it and filter out passing the actual type as it can be inferred via implicit types. Other backends than Lean are not done in this commit. Signed-off-by: Ryan Lahfa <ryan.lahfa@inria.fr>
| * | compiler: map `core::mem::swap` to the pure swapRyan Lahfa2024-04-241-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | In the pure functional model, `swap` is mostly about borrow checking and should simplify to the pure swap in our backends. Other backends than Lean are not done in this commit. Signed-off-by: Ryan Lahfa <ryan.lahfa@inria.fr>
| * | compiler: map `core::option::Option::take` to identity functionRyan Lahfa2024-04-171-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | `take` in a pure functional model is the identity function and everything related to borrow checking is handled by the forward/backward mechanism. Signed-off-by: Ryan Lahfa <ryan.lahfa@inria.fr>
* | | Add core::option::unwrap builtinZyad Hassan2024-04-241-0/+2
| |/ |/|
* | Fix an issue when joining a symbolic value with bottomSon Ho2024-04-222-11/+33
| |
* | Reformat some filesSon Ho2024-04-225-24/+47
| |
* | Merge pull request #146 from RaitoBezarius/mainSon HO2024-04-191-3/+69
|\ \ | | | | | | fix(backends/lean): add a significant amount of keywords
| * | fix(backends/lean): extract more keywords from `lstlean.tex`Ryan Lahfa2024-04-181-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Taken from https://github.com/leanprover/lean4/blob/master/doc/latex/lstlean.tex#L33 and https://github.com/leanprover/lean4/blob/master/doc/latex/lstlean.tex#L36-L43. This will not extract the tactics. Signed-off-by: Ryan Lahfa <ryan.lahfa@inria.fr>
| * | fix(backends/lean): extract more keywords from `lstlean.latex`Ryan Lahfa2024-04-181-0/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Taken from https://github.com/leanprover/lean4/blob/master/doc/latex/lstlean.tex#L12 and sorted. Tactics are ignored. Signed-off-by: Ryan Lahfa <ryan.lahfa@inria.fr>
| * | chore(backends/lean): sort the keyword listRyan Lahfa2024-04-171-4/+4
| | | | | | | | | | | | | | | | | | OCD. :D Signed-off-by: Ryan Lahfa <ryan.lahfa@inria.fr>
| * | fix(backends/lean): `from` is a keywordRyan Lahfa2024-04-171-0/+1
| | | | | | | | | | | | Signed-off-by: Ryan Lahfa <ryan.lahfa@inria.fr>
| * | fix(backends/lean): `as` is a keywordRyan Lahfa2024-04-171-0/+1
| |/ | | | | | | | | | | | | | | `as` is a reserved keyword and cannot be used as a variable name. Fixes #139. Signed-off-by: Ryan Lahfa <ryan.lahfa@inria.fr>