1
1
mirror of https://github.com/anoma/juvix.git synced 2024-12-04 06:23:13 +03:00
juvix/tests/positive
Łukasz Czajka c9b8cdd5e9
Pattern matching compilation (#1874)
This implements a basic version of the algorithm from: Luc Maranget,
[Compiling pattern matching to good decision
trees](http://moscova.inria.fr/~maranget/papers/ml05e-maranget.pdf). No
heuristics are used - the first column is always chosen.

* Closes #1798 
* Closes #1225 
* Closes #1926 
* Adds a global `--no-coverage` option which turns off coverage checking
in favour of generating runtime failures
* Changes the representation of Match patterns in JuvixCore to achieve a
more streamlined implementation
* Adds options to the Core pipeline
2023-03-27 10:42:27 +02:00
..
265 Change syntax for ind. data types and forbid the empty data type (#1684) 2023-01-03 13:49:04 +01:00
272 Change syntax for ind. data types and forbid the empty data type (#1684) 2023-01-03 13:49:04 +01:00
BuiltinsMultiImport Change syntax for ind. data types and forbid the empty data type (#1684) 2023-01-03 13:49:04 +01:00
BuiltinsMultiOpenImport Change syntax for ind. data types and forbid the empty data type (#1684) 2023-01-03 13:49:04 +01:00
Dependencies Support basic dependencies (#1622) 2022-12-20 13:05:40 +01:00
Imports Keep regular comments in html output (#1766) 2023-01-27 13:24:28 +01:00
ImportShadow Allow shadowing local variables with let function definitions (#1847) 2023-02-22 10:26:54 +01:00
Internal Add internal core-eval option to evaluate named function identifier (#1819) 2023-02-08 17:23:11 +01:00
issue1333 Change syntax for ind. data types and forbid the empty data type (#1684) 2023-01-03 13:49:04 +01:00
issue1466 Change syntax for ind. data types and forbid the empty data type (#1684) 2023-01-03 13:49:04 +01:00
issue1693 Typecheck let expressions (#1712) 2023-01-17 09:41:07 +01:00
issue1731 Pattern matching compilation (#1874) 2023-03-27 10:42:27 +02:00
issue1879 Fix type synonym in let (#1880) 2023-03-10 09:53:05 +01:00
QualifiedConstructor Change syntax for ind. data types and forbid the empty data type (#1684) 2023-01-03 13:49:04 +01:00
QualifiedSymbol Rename MiniJuvix to Juvix (#259) 2022-07-08 13:59:45 +02:00
QualifiedSymbol2 Rename MiniJuvix to Juvix (#259) 2022-07-08 13:59:45 +02:00
Reachability Change syntax for ind. data types and forbid the empty data type (#1684) 2023-01-03 13:49:04 +01:00
StdlibImport Nat builtins (#1686) 2023-01-05 16:39:40 +01:00
StdlibList Allow shadowing local variables with let function definitions (#1847) 2023-02-22 10:26:54 +01:00
Termination Fix termination with as-patterns (#1787) 2023-01-31 17:54:18 +01:00
Ape.juvix Improve formatter (#1840) 2023-02-14 14:39:12 +00:00
Axiom.juvix Remove the old C backend (#1862) 2023-03-14 17:22:32 +01:00
Builtins.juvix String builtins (#1784) 2023-01-31 18:31:04 +01:00
BuiltinsBool.juvix Change syntax for ind. data types and forbid the empty data type (#1684) 2023-01-03 13:49:04 +01:00
Format.juvix Make keyword end optional for top modules (#1883) 2023-03-16 16:41:34 +01:00
Inductive.juvix Change syntax for ind. data types and forbid the empty data type (#1684) 2023-01-03 13:49:04 +01:00
InductivePipes.juvix Allow optional pipe before the first constructor for inductive type declarations (#1699) 2023-01-05 11:28:54 +01:00
Judoc.juvix Change syntax for ind. data types and forbid the empty data type (#1684) 2023-01-03 13:49:04 +01:00
juvix.yaml Rename MiniJuvix to Juvix (#259) 2022-07-08 13:59:45 +02:00
LetShadow.juvix Allow shadowing local variables with let function definitions (#1847) 2023-02-22 10:26:54 +01:00
Literals.juvix Rename MiniJuvix to Juvix (#259) 2022-07-08 13:59:45 +02:00
MultiParams.juvix Short syntax for sequences of function and datatype parameters (#1809) 2023-02-06 19:01:54 +01:00
MutualLet.juvix Automatically detect and split mutually recursive blocks in let expressions (#1894) 2023-03-17 11:05:55 +00:00
Operators.juvix remove ≔ from the language and replace it by := (#1563) 2022-09-30 10:55:32 +10:00
Parsing.juvix remove ≔ from the language and replace it by := (#1563) 2022-09-30 10:55:32 +10:00
Polymorphism.juvix Change syntax for ind. data types and forbid the empty data type (#1684) 2023-01-03 13:49:04 +01:00
PolymorphismHoles.juvix Change syntax for ind. data types and forbid the empty data type (#1684) 2023-01-03 13:49:04 +01:00
ShadowPublicOpen.juvix Rename MiniJuvix to Juvix (#259) 2022-07-08 13:59:45 +02:00
SignatureWithBody.juvix Remove braces from let expressions (#1790) 2023-02-01 19:22:43 +01:00
Symbols.juvix Adapt Juvix programs to the new pipeline (#1746) 2023-01-23 14:57:01 +01:00
TypeAlias.juvix Change syntax for ind. data types and forbid the empty data type (#1684) 2023-01-03 13:49:04 +01:00