1
1
mirror of https://github.com/anoma/juvix.git synced 2024-12-15 01:52:11 +03:00
Commit Graph

504 Commits

Author SHA1 Message Date
janmasrovira
3acade4072
Monomorphization (#70)
* add TypeCallsBuilder and others

* implement propagation of type calls

* improve type propagation

* polymorphize fungible token

* sort type calls map pretty output

* use HashSet in TypeCallsMap

* renaming

* rename module

* improve indexing in type propagation

* draft monomorphization generation algorithm

* fix draft

* wip mono code generation

* wip code generation

* finish first candidate for code generation

* add monojuvix command

* fix MonoJuvix pretty printer to properly display name ids

* [monojuvix] improve clause pretty printing

* add support for function types in expressions

* properly translate function expressions

* ormolu

* add a basic positive test for monomorphization

* cleanup effect constraints

* collect type applications in axiom types

* apply some style improvements

* fix PolySimpleFungibleToken and add it to the test suite

* ignore polymorphic inductive definitions that are never used
2022-05-04 10:50:03 +02:00
Paul Cadman
c694388c9c
Merge pull request #69 from heliaxdev/rm-statement-compile
Remove StatementCompile in AST after scoping
2022-04-29 15:05:27 +01:00
Paul Cadman
541a9771d2 [chore] Remove StatementCompile in AST after scoping
The scoped -> abstract translation does not emit StatementCompile and so
any code dealing with StatementCompile after scoping was no-op.
2022-04-29 14:14:23 +01:00
janmasrovira
7392e8cc20
check if stderr supports ANSI and print accordingly (#67) 2022-04-29 12:18:09 +02:00
Paul Cadman
dc6fce8820
Add support for compile (by Jonathan) (#66)
* Add support for compile (by Jonathan)

* Remove error related to unsopported backend

Co-authored-by: Jonathan Prieto-Cubides <jonathan.cubides@uib.no>
2022-04-28 17:42:15 +02:00
janmasrovira
fb2999eaf1
add NameIdGen effect to the pipeline (#64)
* add NameIdGen effect to the pipeline

* run ormolu
2022-04-25 12:33:04 +02:00
janmasrovira
956b2ba828
Make the --show-name-ids flag global (#63)
* make flag --show-name-ids global

* make use of --show-name-ids flag in the termination commands
2022-04-25 10:40:24 +02:00
janmasrovira
ba47f11189
Implement type checker with polymorphism (#62) 2022-04-22 10:06:34 +02:00
Paul Cadman
c99c1825d1
[emacs] Add copy of agda-input to minijuvix-mode (#57)
This provides agda-input method (under the name `minijuvix`) to
minijuvix-mode.
2022-04-11 17:11:31 +02:00
janmasrovira
c823efb501
remove undefined (#56) 2022-04-11 16:20:26 +02:00
janmasrovira
66c0403544
Merge pull request #53 from heliaxdev/issue29
closes #29
2022-04-11 13:33:26 +02:00
Jan Mas Rovira
bcc18dd204 run ormolu 4 2022-04-11 13:27:57 +02:00
Jan Mas Rovira
48aadbcf3b make my friends hlint and ormolu happy 2022-04-11 13:23:55 +02:00
Paul Cadman
721ea4612d [test] Add Anoma Haskell backend for VP 2022-04-11 13:17:13 +02:00
Paul Cadman
d023ced9e4 [test] Update VP example 2022-04-11 13:17:13 +02:00
caryoscelus
3d3ba9d282 emacs mode: keep buffer saved after highlighting 2022-04-11 13:17:13 +02:00
Jan Mas Rovira
464749de5a fix #29 2022-04-11 13:08:37 +02:00
Paul Cadman
caf4065644 [test] Add Anoma Haskell backend for VP 2022-04-11 11:09:45 +02:00
Paul Cadman
498c6ab087 [test] Update VP example 2022-04-11 11:09:45 +02:00
Jonathan Prieto-Cubides
18c2d4c037 w.i.p refactoring ansi/text pretty printer 2022-04-08 18:54:19 +02:00
Jan Mas Rovira
f31bc6347a add generic pretty utilities 2022-04-08 17:05:32 +02:00
caryoscelus
3f557271bd emacs mode: keep buffer saved after highlighting 2022-04-08 15:46:19 +01:00
Jonathan Prieto-Cubides
048674f807 w.i.p Add global option --no-color 2022-04-08 16:36:48 +02:00
Jonathan Prieto-Cubides
3f1fda221f Merge branch 'dev' of github.com:heliaxdev/minijuvix into FixREADME 2022-04-08 14:40:09 +02:00
Jonathan Prieto-Cubides
1f98240e49 [ README ] Add badges and grammar 2022-04-08 13:35:04 +02:00
Paul Cadman
90f607e6ce [typecheck] Shortcircuit clause pattern check errors
In the following case:

```
module WrongConstructorArity;
  inductive T {
    A : T;
  };

  f : T → T;
  f (A i) ≔ i;
end;
```

The typechecker fails when checking the clause `f (A i) := i` because of
the extra constructor argument. However if typechecking continues then
the variable `i` on the rhs does not have a type so we must short-circuit.
2022-04-08 13:32:11 +02:00
Paul Cadman
2b283a2b8b [minihaskell] Output ANSI codes only if handle supports it
This adds `ansi-terminal` dependency to the Main target but this is
already a transitive dependency of `prettyprinter-ansi-terminal`.

We want to add this support globally which we will do in https://github.com/heliaxdev/minijuvix/issues/38.
2022-04-08 12:23:20 +01:00
Paul Cadman
a476de53ec [minihaskell] Do not add id suffix to top-level modules and main
For minihaskell the name of the output file needs to match the module
name. So we must not add the usual '_<nameid>' suffix to top level
names.

Additionally the main function in a haskell file is the entry-point to
the haskell program. So the suffix must not be added in this case also.
2022-04-08 13:06:59 +02:00
Jonathan Prieto-Cubides
4779cba90e Merge branch 'parserInfoTable' into dev 2022-04-08 12:54:53 +02:00
Jonathan Prieto-Cubides
e6ea03a6eb Fix test suite 2022-04-08 12:46:37 +02:00
Jonathan Prieto-Cubides
beb2556111 w.i.p Fixing test suite 2022-04-07 18:10:53 +02:00
Jonathan Prieto-Cubides
4c58b82588 Make Ormolu happy and Hlint 2022-04-07 12:53:05 +02:00
Jonathan Prieto-Cubides
7c9fdb656a Fix compilation 2022-04-07 12:49:08 +02:00
Jonathan Prieto-Cubides
86162090ce merging conflicts 2022-04-07 12:13:03 +02:00
Jonathan Prieto-Cubides
0137ef264e w.i.p 2022-04-07 11:59:23 +02:00
Jan Mas Rovira
d9b1a6a0b5 wip 2022-04-07 09:43:41 +02:00
Jonathan Prieto-Cubides
290d700723 Better to use kbd 2022-04-07 08:48:54 +02:00
Paul Cadman
f5af32b23b [emacs] Add message if no goto information is found 2022-04-06 17:30:21 +01:00
Paul Cadman
8d38e29837 [emacs] Use 'evil hook instead of 'evil-maps 2022-04-06 17:18:12 +01:00
Paul Cadman
78055df99d [emacs] Remove extra evil-define-key 2022-04-06 17:09:00 +01:00
Paul Cadman
d42a9da0e5 [emacs] Add load and goto def keybindings 2022-04-06 17:01:45 +01:00
Jonathan Prieto-Cubides
482c8ecc77 Fix typo 2022-04-06 16:52:38 +02:00
Jan Mas Rovira
220218dae4 fix 2022-04-06 16:39:29 +02:00
Jan Mas Rovira
e1c0bdd8be add evil kbds 2022-04-06 16:37:19 +02:00
Jan Mas Rovira
510d00a4ba wip 2022-04-06 15:10:29 +02:00
Paul Cadman
3af9cb95ac
Restore correct handling of TypeAny and add positive typecheck tests (#34)
* [ format ] AbstractToMicroJuvix

* [ CI ] fixes

* [ CI ] fixes

* [ CI ] Using GHC 9.0 for Hlint

* [ CI ] Use static-checks for Dev as well

* [test] Add positive test for typechecker

* [test] Improve positive typechecker error output

* [typecheck] Restore correct handling of TypeAny

I mistakenly removed the matchTypes function in
https://github.com/heliaxdev/minijuvix/pull/22. This caused the handling
of TypeAny to break.

Literals have type TypeAny and so should be valid when matching against
any other type. The tests have been updated to reflect this.

* [test] Add positive MicroJuvix typecheck tests

* [ ormolu ] fixes

Co-authored-by: Jonathan Prieto-Cubides <jonathan.cubides@uib.no>
2022-04-05 22:02:03 +02:00
Paul Cadman
e6307dfdf4
Add action hints for autocompletion (#35)
* [ format ] AbstractToMicroJuvix

* [ CI ] fixes

* [ CI ] fixes

* [ CI ] Using GHC 9.0 for Hlint

* [ CI ] Use static-checks for Dev as well

* [app] Add action hints for autocompletion

Using `action "file"` means that the autocompletion for that part of the
command will prompt the user with a list of files.

Without these action hints the user would have to type out the whole
path to the file without autocompletion assistance.

Co-authored-by: Jonathan Prieto-Cubides <jonathan.cubides@uib.no>
2022-04-05 20:03:02 +02:00
Jonathan Prieto-Cubides
4d918cd1fd [ CI ] New jobs: ormolu and hlint 2022-04-05 19:57:21 +02:00
Jan Mas Rovira
61edba2414 [minijuvix-mode] save buffer and clear annotation before loading 2022-04-05 16:24:38 +02:00
Jan Mas Rovira
5f9887e69c define ParserResult and refactor 2022-04-05 16:12:13 +02:00