summaryrefslogtreecommitdiff
path: root/compiler (follow)
Commit message (Collapse)AuthorAgeFilesLines
* destructure_abs can be called during collapse: markers should be allowedAymeric Fromherz2024-05-301-4/+0
|
* 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
|
* 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>
* 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>
* / item_metaNadrieril2024-04-189-80/+81
|/
* Add more definitions to the Lean librarySon Ho2024-04-121-0/+73
|
* Start adding integer functions to the Lean librarySon Ho2024-04-124-55/+181
|
* Update the bindings for the extractionSon Ho2024-04-121-14/+11
|
* Merge branch 'son/clean' into checked-opsSon Ho2024-04-1126-259/+517
|\
| * Update a commentSon Ho2024-04-111-2/+2
| |
| * Merge remote-tracking branch 'origin/main' into son/cleanSon Ho2024-04-1125-88/+250
| |\
| | * Reformat the codeSon Ho2024-04-111-9/+6
| | |
| | * Update a commentSon HO2024-04-111-1/+1
| | |
| | * Trust rustc regarding `Copy` boundsNadrieril2024-04-103-7/+7
| | |