Łukasz Czajka
bfadbae41e
Move applications inside Lets and Cases ( #1659 )
...
* Move applications inside lets and cases
* make ormolu happy
2022-12-13 08:50:24 +00:00
Łukasz Czajka
d9b020ec27
Remove type arguments and type abstractions from Nodes ( #1655 )
2022-12-12 14:58:25 +01:00
Łukasz Czajka
f5de5faaef
Translation from JuvixAsm to C ( #1619 )
2022-12-06 11:33:20 +01:00
Jonathan Cubides
fb2723cb75
Update Changelog v0.2.7 🎉
2022-12-05 11:48:03 +01:00
janmasrovira
169155690b
Eta expansion at the top of each core function definition ( #1481 ) ( #1571 )
2022-11-14 16:03:28 +01:00
Paul Cadman
b541972d03
Add types to Core functions and constructors when translating from Internal ( #1617 )
...
* Support inductive type and universe expressions
* Support function type expressions
* Add type information to Core function and constructor nodes
* Remove unused do
2022-11-11 12:38:48 +00:00
Paul Cadman
df4036d600
Compute new entrypoint root when loading a file in the REPL ( #1615 )
...
* Add shelltests for `juvix repl`
* repl: Compute entrypoint root when loading a file
Previously the REPL would use app root (which could be the current
directory or the project root of the initially loaded file). Thus files
in a different project could not be loaded.
The entrypoint root must be computed each time a new file is `:load`ed.
Adds shell-tests for REPL commands
* Move preludePath to Juvix.Extra.Paths
2022-11-10 11:26:38 +00:00
janmasrovira
aa00d34c8c
Make lambda lifting correct when free variables occur in the types of binders ( #1609 )
2022-11-09 13:25:00 +01:00
Paul Cadman
a3b2aa6940
Add translation from Internal to Core ( #1567 )
2022-11-07 14:47:56 +01:00
Murray
5cea26ac7f
Improve As-Pattern parsing ( #1603 )
...
* Allow naming nullary constructors without using parentheses
* Negative test cases
2022-11-03 10:02:22 +01:00
Łukasz Czajka
74bfe592f5
Juvix C runtime ( #1580 )
2022-11-03 09:38:09 +01:00
janmasrovira
59e6712452
Binder refactor ( #1598 )
2022-10-28 15:40:09 +02:00
Murray
13a1dad107
As-patterns ( #1576 )
2022-10-27 12:17:03 +02:00
Jonathan Cubides
17e3a37203
Update Changelog v0.2.6 🎉
2022-10-26 00:01:23 +02:00
janmasrovira
2062d3d8e5
Properly newline expressions in the pretty printer ( #1581 )
2022-10-18 17:38:31 +02:00
Paul Cadman
504b5ec799
Rename builtin natural to nat and boolean to bool ( #1588 )
2022-10-14 18:42:03 +02:00
Łukasz Czajka
93d5bdcd25
Improve the test for eta-expansion of constructors and builtins ( #1583 )
2022-10-14 13:25:49 +02:00
Paul Cadman
be9872ea06
Add builtin if ( #1585 )
...
```
builtin boolean-if
if : {A : Type} → Bool → A → A → A;
if true x _ := x;
if false _ x := x;
```
This allows a backend to translate if directly, so that only one branch
is evalutated.
An example compilation of if is given for the legacy backend for testing.
2022-10-14 10:06:05 +01:00
Łukasz Czajka
80783cfa3c
Parse optional type info in JVC files ( #1575 )
2022-10-13 16:54:51 +02:00
Paul Cadman
be5e2b9f2a
Add builtin boolean ( #1582 )
...
builtin boolean
inductive MyBool {
myTrue : Bool;
myFalse : Bool;
};
The first constructor is mapped to primitive true and the second
constructor is mapped to primitive false.
This also adds compilation of builtin boolean in the legacy backend as
this was trivial to implement.
2022-10-13 14:03:49 +01:00
janmasrovira
d7e208aac1
1569 rewrite the test for lambda lifting to use evaluation ( #1572 )
2022-10-12 10:19:02 +02:00
Łukasz Czajka
f4ca940c7a
Fix symbol numbering bug ( #1574 )
2022-10-04 17:06:51 +02:00
janmasrovira
803d2008d9
remove ≔ from the language and replace it by := ( #1563 )
...
* remove ≔ from the language and replace it by :=
* revert accidental changes in juvix input mode
* update stdlib submodule
* rename ℕ by Nat in the tests and examples
* fix shell tests
2022-09-30 10:55:32 +10:00
Łukasz Czajka
f0ade4be7c
JuvixAsm ( #1432 )
2022-09-29 17:44:55 +02:00
janmasrovira
9f80d17fd2
Mutual inference ( #1543 )
2022-09-26 19:14:17 +02:00
janmasrovira
6a35db7475
Properly handle top lambdas in the termination checker ( #1544 )
2022-09-26 16:03:36 +02:00
janmasrovira
13b038b5a1
Fix arity checker bug ( #1546 )
2022-09-26 14:39:37 +02:00
janmasrovira
41ef5f6219
Add lambda expressions to internal and add typechecking support ( #1538 )
2022-09-23 15:43:18 +02:00
Jonathan Cubides
9e6b823352
Bump version to 0.2.5
2022-09-14 17:41:02 +02:00
janmasrovira
60d4f0433a
Refactor CLI ( #1527 )
2022-09-14 16:16:15 +02:00
Łukasz Czajka
4396f34be4
'Match' with complex patterns in Core ( #1530 )
2022-09-14 15:44:13 +02:00
janmasrovira
9e0bbf7351
Replace -> by := in lambda syntax ( #1533 )
2022-09-14 14:31:28 +02:00
janmasrovira
3262906772
Implement lambda lifting without letrec ( #1494 )
...
Co-authored-by: Paul Cadman <git@paulcadman.dev>
Co-authored-by: Łukasz Czajka <62751+lukaszcz@users.noreply.github.com>
2022-09-12 12:45:40 +02:00
Łukasz Czajka
2eb51ce1c3
Make comma a delimiter ( #1525 )
2022-09-12 11:39:11 +02:00
janmasrovira
e3dbb308d3
Detect nested patterns as smaller in the termination checker ( #1524 )
2022-09-12 11:21:39 +02:00
janmasrovira
ccce5a4a31
Disallow tab characters as spaces ( #1523 )
2022-09-07 13:59:41 +02:00
Łukasz Czajka
1fdc3674ba
LetRec in Core ( #1507 )
2022-09-06 12:28:09 +02:00
Łukasz Czajka
d64cf13d30
Eager evaluation of Constr arguments ( #1513 )
2022-09-05 16:52:41 +02:00
Jonathan Cubides
65489ff092
Remove Monomorphization from the Pipeline ( #1497 )
2022-08-31 18:05:16 +02:00
Jonathan Cubides
e9fa4fcbc2
Remove Haskell support ( #1496 )
2022-08-31 17:14:37 +02:00
Łukasz Czajka
3db92fa286
Add the JuvixCore framework and its evaluator ( #1421 )
2022-08-30 11:24:15 +02:00
janmasrovira
57da75b1a5
Properly type check patterns that need normalization ( #1472 )
...
properly type check patterns that need normalization
2022-08-21 12:16:26 +02:00
Jonathan Cubides
ff30fe9d05
Bump to version v0.2.4
2022-08-19 23:00:34 +02:00
janmasrovira
bcaf319b90
Add --stdin flag ( #1459 )
2022-08-19 16:57:07 +02:00
Paul Cadman
ea6191b5a4
Add a native compile target for demos ( #1457 )
2022-08-19 12:16:02 +02:00
Jonathan Cubides
ef4ddaf4dc
Bump version to 0.2.3
2022-08-15 11:08:36 +02:00
janmasrovira
8e1a4dc8b6
Give a proper type to literal natural numbers ( #1453 )
2022-08-12 17:31:15 +02:00
Paul Cadman
7bf337217d
Allow _ in Wasm exported names to support Anoma signature ( #1449 )
...
Allow _ in Wasm exported names
The Anoma validity predicate Wasm signature is:
"_validate_tx": [I64, I64, I64, I64, I64, I64, I64, I64] -> [I64]
So we need to allow exported names containing '_'.
This PR adds a Juvix module that exports a function with this signature
and a test that the resulting Wasm function can be called.
2022-08-12 09:06:14 +01:00
Paul Cadman
1ba72b4d9b
Add Towers of Hanoi and Pascal triangle examples ( #1446 )
...
* Add new examples of Juvix programs
* Build documentation for Hanoi and Pascal examples
2022-08-10 12:02:14 +01:00
Paul Cadman
4b7fad9304
Add doctor subcommand ( #1436 )
2022-08-06 20:13:06 +02:00