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

122 Commits

Author SHA1 Message Date
Jan Mas Rovira
48aadbcf3b make my friends hlint and ormolu happy 2022-04-11 13:23:55 +02:00
Jan Mas Rovira
464749de5a fix #29 2022-04-11 13:08:37 +02:00
Jonathan Prieto-Cubides
18c2d4c037 w.i.p refactoring ansi/text pretty printer 2022-04-08 18:54:19 +02:00
Jonathan Prieto-Cubides
048674f807 w.i.p Add global option --no-color 2022-04-08 16:36:48 +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
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
Jan Mas Rovira
d9b1a6a0b5 wip 2022-04-07 09:43:41 +02:00
Jan Mas Rovira
510d00a4ba wip 2022-04-06 15:10:29 +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
5f9887e69c define ParserResult and refactor 2022-04-05 16:12:13 +02:00
Jan Mas Rovira
22b5de42f3 setup InfoTable for parser 2022-04-05 00:46:04 +02:00
Jonathan Cubides
3fe3cc4305
Merge branch 'main' into dev 2022-04-04 19:11:26 +02:00
Jonathan Prieto-Cubides
a2f65f7c48 [ hlint ] fix some hints 2022-04-04 18:03:56 +02:00
Paul Cadman
68b1af07e4 [typecheck] Wrap type errors in NonEmpty 2022-04-04 14:59:56 +01:00
Paul Cadman
658bdf076c [typecheck] Return all errors encountered during typechecking
Any expression that fails typechecking is assigned TypeAny so
typechecking can proceed.
2022-04-04 14:59:56 +01:00
Jonathan Cubides
fd3622a274
Adds many new features (w.i.p v0.1.2) (#28)
* add references to the syntax and cleanup code

* [make] add .PHONY to Makefile targets

* [parser] add parser / pretty for axiom backends

* Pairing progress

* [scoper] Add support for Axiom backends

* [parser] Fix foreign block parsing

* [ app ] adds --no-colors flag for the scope command

* [ghc] upgrade to ghc 9.2.2

* use GHC2021

* [doc] Remove out-of-date comment

* [test] Add ambiguity tests

* [scoper] Improve resolution of local symbols

* [error] WIP improving ambiguity error messages

* [ clean-up ] new lab folder for experimentation

* [ app ] ixes the lint warning

* [ Termination ] removes Alga dependency

* [error] Add message for ambiguous symbol error

* [error] Add ambiguous module message

* [scoper] Remove ErrGeneric

* [test] Add test to suite

* [test] show diff when ast's are different

* [ lab ] folder organization

* [ Makefile ] add targets with --watch option (stack cmds) and remove unused things

* [ app ] add --version flag and fixed warnings and formatting

* [test] remove fromRightIO to fix ambiguity error

* [test] Add test of shadowing public open

* [scoper] Add visibility annotation for Name

* prepare buildIntoTable

* [ Concrete ] add instance of hashable for refs.

* add InfoTableBuilder effect

* [ scoper ] add InfoTableBuilder effect

* [ CHANGELOG ] updated v0.1.1

* [ README ] org version now

* fix package.yaml

* fix readme

* [microjuvix] implement basic typechecker

* add simple test for MicroJuvix type checker

* fix checking for constructors apps in patterns

* [scope] Move InfoTable to a new module

* [abstract] Make Iden use references instead of Name

* [abstract] Add InfoTable for abstract syntax

* [scoper] Add function clauses to scoped InfoTable

* [abstract] Add InfoTableBuilder for scoped to abstract

* [main] Fix callsites of translateModule

* [doc] Remove empty docs

* [scoper] Update emptyInfoTable with missing field

* rename some functions

* [minihaskell] add compilation to MiniHaskell

* [microjuvix] improve wrong type message

* Add a validity predicate example written in MiniJuvix

* [typecheck] Add error infrastructure for type errors

Add a pretty error for mismatched constructor type in a pattern match

* [test] Adds negative typecheck test for constructor

* [app] Adds microjuvix subcommands for printing / typechecking

* [typecheck] Add error message for ctor match args mistmatch

* [typecheck] Add descriptive messages for remainng errors

* [typecheck] Updates to error message copy

* [typecheck] fix merge conflicts:

* [highlight] add basic support for highlighting symbols

* [minijuvix-mode] add minijuvix-mode and basic description in the readme

* [readme] improve formatting

* automatically detect the root of the project and add --show-root flag

Co-authored-by: Jan Mas Rovira <janmasrovira@gmail.com>
Co-authored-by: Paul Cadman <git@paulcadman.dev>
Co-authored-by: Paul Cadman <pcadman@gmail.com>
2022-04-01 13:00:15 +02:00
Jan Mas Rovira
6bcd62a4d6 automatically detect the root of the project and add --show-root flag 2022-04-01 12:32:15 +02:00
Jan Mas Rovira
9708dd3fe3 [highlight] add basic support for highlighting symbols 2022-04-01 01:11:55 +02:00
Paul Cadman
07333ecbe9 [typecheck] fix merge conflicts: 2022-03-31 09:36:21 +01:00
Paul Cadman
e37fa7a8dc [app] Adds microjuvix subcommands for printing / typechecking 2022-03-31 09:28:20 +01:00
Paul Cadman
fc2cd3f03f [typecheck] Add error infrastructure for type errors
Add a pretty error for mismatched constructor type in a pattern match
2022-03-31 09:28:16 +01:00
Jan Mas Rovira
f121fe0d39 [minihaskell] add compilation to MiniHaskell 2022-03-30 16:03:56 +02:00
Paul Cadman
0e3fb402d5 [main] Fix callsites of translateModule 2022-03-29 11:58:48 +01:00
Jan Mas Rovira
b7dd050663 [microjuvix] implement basic typechecker 2022-03-29 02:02:37 +02:00
Jonathan Cubides
de6fabf625
v0.1.1 (#15)
* add references to the syntax and cleanup code

* [make] add .PHONY to Makefile targets

* [parser] add parser / pretty for axiom backends

* Pairing progress

* [scoper] Add support for Axiom backends

* [parser] Fix foreign block parsing

* [ app ] adds --no-colors flag for the scope command

* [ghc] upgrade to ghc 9.2.2

* use GHC2021

* [doc] Remove out-of-date comment

* [test] Add ambiguity tests

* [scoper] Improve resolution of local symbols

* [error] WIP improving ambiguity error messages

* [ clean-up ] new lab folder for experimentation

* [ app ] ixes the lint warning

* [ Termination ] removes Alga dependency

* [error] Add message for ambiguous symbol error

* [error] Add ambiguous module message

* [scoper] Remove ErrGeneric

* [test] Add test to suite

* [test] show diff when ast's are different

* [ lab ] folder organization

* [ Makefile ] add targets with --watch option (stack cmds) and remove unused things

* [ app ] add --version flag and fixed warnings and formatting

* [test] remove fromRightIO to fix ambiguity error

* [test] Add test of shadowing public open

* [scoper] Add visibility annotation for Name

* prepare buildIntoTable

* [ Concrete ] add instance of hashable for refs.

* add InfoTableBuilder effect

* [ scoper ] add InfoTableBuilder effect

* [ CHANGELOG ] updated v0.1.1

* [ README ] org version now

Co-authored-by: Jan Mas Rovira <janmasrovira@gmail.com>
Co-authored-by: Paul Cadman <git@paulcadman.dev>
2022-03-25 18:16:34 +01:00
Jonathan Prieto-Cubides
ce30de2dc3 [ scoper ] add InfoTableBuilder effect 2022-03-25 17:44:32 +01:00
Jonathan Prieto-Cubides
17a0577ee7 [ app ] add --version flag and fixed warnings and formatting 2022-03-25 00:52:30 +01:00
Jonathan Prieto-Cubides
b4ce3b8fbf [ app ] ixes the lint warning 2022-03-24 13:25:50 +01:00
Jonathan Prieto-Cubides
7769d74006 [ app ] adds --no-colors flag for the scope command 2022-03-23 17:21:44 +01:00
Jan Mas Rovira
1a23adc762 add references to the syntax and cleanup code 2022-03-23 11:40:03 +01:00
Jan Mas Rovira
fa95f8be82 separate MiniHaskell into MicroJuvix and 'new' MiniHaskell 2022-03-17 18:18:10 +01:00
Jan Mas Rovira
5848e8693a [app] add minihaskell command 2022-03-15 18:01:28 +01:00
Jan Mas Rovira
798c4da699 [termination] add termination subcommands 2022-03-08 18:09:40 +01:00
Jan Mas Rovira
0021e7cf70 [app] properly filter callGraph 2022-03-07 17:14:16 +01:00
Jan Mas Rovira
18fd8841ed [app] add default value for -show-decreasing-args 2022-03-07 16:43:30 +01:00
Jan Mas Rovira
fd5a70296f [app] add option to filter function by name in calls and graph commands 2022-03-07 16:32:24 +01:00
Jan Mas Rovira
f7b3d6042f [termination] implement callgraph using sets 2022-03-05 13:32:47 +01:00
Jan Mas Rovira
9dfe3981d7 [termination] fix termination for recursive functions with no arguments 2022-03-04 12:35:48 +01:00
Jan Mas Rovira
4ee79a4baf [termination] improve efficiency of lexicographical order search 2022-03-04 10:13:32 +01:00
Jan Mas Rovira
d6dda61e12 [termination] implement lexical order search 2022-03-04 02:13:43 +01:00
Jan Mas Rovira
5d264d61de [termination] reorganize code 2022-03-03 23:39:52 +01:00
Jan Mas Rovira
61f12e3ed8 [app] add specific command for computing the complete call graph 2022-03-02 11:10:11 +01:00
Jan Mas Rovira
dc62c642a8 [termination] small refactor to remove a redundant type 2022-03-02 10:45:40 +01:00
Jan Mas Rovira
6e38e3c045 [termination] pretty print completed call graph 2022-03-02 09:20:00 +01:00
Jan Mas Rovira
73b2278288 [termination] implement size relation, call matrix and complete call graph 2022-03-02 00:18:42 +01:00
Jan Mas Rovira
206d263e70 [app] rename 'graph' command to 'calls' 2022-02-24 19:36:21 +01:00
Jan Mas Rovira
d1af2c8862 [termination] allow different printing options (arg|rel|both) for call graph 2022-02-24 11:03:02 +01:00
Jan Mas Rovira
37eea5bc46 [app] add option to show or hide decreasing arguments 2022-02-24 01:32:58 +01:00
Jan Mas Rovira
b4d58bf566 improve pretty printing of call graph 2022-02-24 00:31:02 +01:00
Jan Mas Rovira
b29050afb4 [termination] implement call detection and add new cli command 'graph' 2022-02-23 21:22:28 +01:00
Jan Mas Rovira
45e3e2ca35 move some auxiliar definitions to the Prelude 2022-02-18 17:47:41 +01:00
Jan Mas Rovira
cf166596f4 [app] allow scoping multiple files at once 2022-02-17 19:28:19 +01:00
Jan Mas Rovira
e8c46040b0 [pretty] refactor to use PrettyCode type class extensively 2022-02-13 12:02:57 +01:00
Jan Mas Rovira
edd47ad00b [pretty] implement pretty printer for parsed AST 2022-02-12 17:35:23 +01:00
Jan Mas Rovira
6da7dd8b30 add unified minijuvix errors 2022-02-12 12:29:25 +01:00
Jan Mas Rovira
a2f16ef371 [errors] setup some ground for prettier errors 2022-02-11 19:12:48 +01:00
Jan Mas Rovira
fdd5a0391d [html] add light theme; add cli option to pick theme 2022-02-05 23:15:42 +01:00
Jan Mas Rovira
bfb800052a [parser] parse infix operators between parens as non infix operators 2022-02-05 19:09:36 +01:00
Jan Mas Rovira
b48f00556a [pretty] add simple html output with links 2022-02-04 23:14:06 +01:00
Jan Mas Rovira
12d4fbf8fd [scoper] fix modules cache 2022-02-03 10:24:43 +01:00
Jan Mas Rovira
db3850075d [scoper] wip 3 2022-02-03 01:15:43 +01:00
Jan Mas Rovira
61df66d186 replace relude by our own Prelude 2022-01-21 09:50:37 +01:00
Jan Mas Rovira
b808a03760 [app] pretty print parsed Haskell AST 2022-01-20 12:50:16 +01:00
Jan Mas Rovira
8b864ec31c [pretty] improve pretty printing 2022-01-19 14:05:49 +01:00
Jan Mas Rovira
ceb4e890df [app] include flag to print name ids for the scope command 2022-01-19 12:49:07 +01:00
Jan Mas Rovira
444f0f2456 [pretty] output to ANSI terminal with pretty colors 2022-01-19 12:41:16 +01:00
Jan Mas Rovira
4e3c5dd947 move Scoped syntax directory 2022-01-18 17:29:04 +01:00
Jan Mas Rovira
1d6ca6b989 [app] prepare app 2022-01-18 13:30:49 +01:00