1
1
mirror of https://github.com/anoma/juvix.git synced 2024-12-29 10:33:15 +03:00
juvix/app/Commands
Łukasz Czajka 7167cb319a
Lift non-immediate expressions out of case values for the Nockma backend (#3010)
Implements a transformation `compute-case-anf` which lifts out
non-immediate values matched on in case expressions by introducing
let-bindings for them. In essence, this is a partial ANF transformation
for case expressions only.

For example, transforms
```
case f x of { c y := y + x; d y := y }
```
to
```
let z := f x in case z of { c y := y + x; d y := y }
```
This transformation is needed to avoid duplication of values matched on
in case-expressions in the Nockma backend.
2024-09-09 14:56:36 +02:00
..
Clean Use Package.juvix in the global project (#2499) 2023-11-06 11:49:43 +00:00
Compile Only output .debug.nockma file with the --debug flag (#3006) 2024-09-09 13:16:32 +02:00
Dependencies Logger (#2908) 2024-07-22 17:14:37 +02:00
Dev Lift non-immediate expressions out of case values for the Nockma backend (#3010) 2024-09-09 14:56:36 +02:00
Doctor Global offline flag (#2335) 2023-09-05 17:11:17 +02:00
Eval Make compile targets a subcommand instead of a flag (#2700) 2024-04-09 13:29:07 +02:00
Extra Logger (#2908) 2024-07-22 17:14:37 +02:00
Format Improve performance of formatting a project (#2863) 2024-07-01 18:05:24 +02:00
Html Improve css themes (#2921) 2024-08-01 18:32:03 +02:00
Init Add PackageDescription.Basic module Package variant (#2509) 2023-11-13 17:36:18 +00:00
Isabelle Translate function bodies to Isabelle/HOL (#2868) 2024-07-19 08:40:07 +01:00
Markdown Make compile targets a subcommand instead of a flag (#2700) 2024-04-09 13:29:07 +02:00
Repl Per-module compilation (#2468) 2023-12-30 20:15:35 +01:00
Typecheck Make compile targets a subcommand instead of a flag (#2700) 2024-04-09 13:29:07 +02:00
Base.hs juvix typecheck with no file argument typechecks the whole project (#2889) 2024-07-12 17:48:29 +02:00
Clean.hs Use Package.juvix in the global project (#2499) 2023-11-06 11:49:43 +00:00
Compile.hs Logger (#2908) 2024-07-22 17:14:37 +02:00
Dependencies.hs Logger (#2908) 2024-07-22 17:14:37 +02:00
Dev.hs Export Juvix source code to latex (#2917) 2024-08-05 11:28:19 +02:00
Doctor.hs Replace polysemy by effectful (#2663) 2024-03-21 12:09:34 +00:00
Eval.hs Logger (#2908) 2024-07-22 17:14:37 +02:00
Format.hs Logger (#2908) 2024-07-22 17:14:37 +02:00
Html.hs Do not show progress log for juvix html (#2920) 2024-07-30 18:57:58 +02:00
Init.hs Logger (#2908) 2024-07-22 17:14:37 +02:00
Isabelle.hs Isabelle/HOL translation: comments (#2974) 2024-09-02 15:56:58 +02:00
Markdown.hs Logger (#2908) 2024-07-22 17:14:37 +02:00
Repl.hs Export Juvix source code to latex (#2917) 2024-08-05 11:28:19 +02:00
Typecheck.hs Improve compilation progress log (#2969) 2024-08-30 00:10:13 +02:00