Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New compilation pipeline #1832

Merged
merged 141 commits into from
Mar 14, 2023
Merged

New compilation pipeline #1832

merged 141 commits into from
Mar 14, 2023

Conversation

lukaszcz
Copy link
Collaborator

@lukaszcz lukaszcz commented Feb 9, 2023

@lukaszcz lukaszcz added this to the 0.3 - Valencia milestone Feb 9, 2023
@lukaszcz lukaszcz self-assigned this Feb 9, 2023
@lukaszcz lukaszcz added the enhancement New feature or request label Feb 10, 2023
@lukaszcz lukaszcz force-pushed the compilation-pipeline branch 2 times, most recently from e903bb0 to dacd288 Compare February 16, 2023 12:30
@lukaszcz lukaszcz force-pushed the compilation-pipeline branch 6 times, most recently from 4fb7035 to affe32e Compare February 23, 2023 13:51
@lukaszcz lukaszcz force-pushed the compilation-pipeline branch from aac7a77 to 45f7e13 Compare February 23, 2023 16:17
@lukaszcz lukaszcz force-pushed the compilation-pipeline branch from 765d318 to 2fa08e8 Compare March 1, 2023 16:40
@lukaszcz lukaszcz force-pushed the compilation-pipeline branch from d6c84d5 to f167fba Compare March 13, 2023 17:36
Inference (strongNormalise) now requires State FunctionsTable
@lukaszcz lukaszcz marked this pull request as ready for review March 13, 2023 17:50
@lukaszcz lukaszcz marked this pull request as draft March 14, 2023 08:43
@lukaszcz lukaszcz marked this pull request as ready for review March 14, 2023 08:43
app/Commands/Dev/Asm/Compile.hs Outdated Show resolved Hide resolved
src/Juvix/Compiler/Asm/Extra/Base.hs Show resolved Hide resolved
src/Juvix/Compiler/Asm/Extra/Type.hs Outdated Show resolved Hide resolved
src/Juvix/Compiler/Core/Transformation/Eta.hs Outdated Show resolved Hide resolved
src/Juvix/Compiler/Core/Transformation/MatchToCase/Data.hs Outdated Show resolved Hide resolved
@lukaszcz lukaszcz requested a review from janmasrovira March 14, 2023 12:40
@jonaprieto jonaprieto merged commit 2d798ec into main Mar 14, 2023
@jonaprieto jonaprieto deleted the compilation-pipeline branch March 14, 2023 15:24
janmasrovira pushed a commit that referenced this pull request Mar 14, 2023
* Depends on PR #1832 
* Closes #1799 
* Removes Backend.C.Translation.FromInternal
* Removes `foreign` and `compile` blocks
* Removes unused test files
* Removes the old C runtime
* Removes other dead code
lukaszcz added a commit that referenced this pull request Mar 15, 2023
Print JuvixCore InfoTable in such a way that it can be parsed back by
the JuvixCore parser.

* Depends on PR #1832 
* Depends on PR #1862 
* Closes #1841 
* Adds "JuvixCore print" tests which read the files from
Core/positive/*.jvc, print them, read them back and check if the
evaluation results are preserved.

---------

Co-authored-by: Jan Mas Rovira <[email protected]>
lukaszcz added a commit that referenced this pull request Mar 20, 2023
* Depends on #1832 
* Closes #1844
* Adds errors to the Core pipeline
* Checks for no recursion in the GEB pipeline
* Checks for no polymorphism in the GEB pipeline
* Checks for no dynamic type in the GEB pipeline
* Checks for no IO in the GEB pipeline
* Checks for no unsupported builtins in the GEB pipeline
jonaprieto added a commit that referenced this pull request Mar 27, 2023
This PR adds testing for the core-to-geb translation.
It works as follows:

  1. Parse the Juvix Core file.
  2. Prepare the Juvix Core node for translation to Geb.
  3. Translate the Juvix Core node to Geb.
5. Perform type checking on the translated Geb node to ensure that the
types
from the core node make sense in the Geb context and avoid any Geb
runtime
     errors.
6. Evaluate the Juvix Core node to see if it produces the expected
result.
7. Translate the result of the evaluated Juvix Core node to Geb for
comparison
     with the expected output later.
8. Compare the result of the evaluation of the Geb term produced in step
3
with the result of the evaluation of the Geb term produced in step 6 to
     ensure consistency.
9. If step 8 succeeds, then compare the output of step 6 (the evaluation
of the core
     node) with the expected output (given in Geb format) to ensure that
     the program is functioning as intended.

This PR goes after:

- #1863
and
#1832
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment