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

450 Commits

Author SHA1 Message Date
Jonathan Prieto-Cubides
a038999170 [ CI ] Add hlint check 2022-04-04 18:18:42 +02:00
Jonathan Prieto-Cubides
a2f65f7c48 [ hlint ] fix some hints 2022-04-04 18:03:56 +02:00
Jonathan Prieto-Cubides
a224d94709 [ pre-commit ] Add support and hooks 2022-04-04 17:44:08 +02:00
Paul Cadman
743b5b153a
Merge pull request #30 from heliaxdev/typecheck-errors
Output multiple typechecker errors and add source location to error messages
2022-04-04 15:05:55 +01:00
Paul Cadman
edcddcd3ce [concrete] Add HasLoc for LiteralLoc 2022-04-04 14:59:56 +01:00
Paul Cadman
b7ce2939f2 [prelude] Remove Control.Monad from export
Control.Monad is already exported by Control.Monad.Extra
2022-04-04 14:59:56 +01:00
Paul Cadman
5bbe6cbfb2 [test] Add test for multiple type errors
Add test for literals
2022-04-04 14:59:56 +01:00
Paul Cadman
916af49007 [typecheck] Add concrete name location to type error messages for expression 2022-04-04 14:59:56 +01:00
Paul Cadman
3cfb47e38c [typecheck] Add function name to pattern type errors 2022-04-04 14:59:56 +01:00
Paul Cadman
638b20b967 [concrete] Adds location info to Literal 2022-04-04 14:59:56 +01:00
Paul Cadman
c9b0193fb4 [typecheck] Add the definition loc to microjuvix names
This is used in type errors
2022-04-04 14:59:56 +01:00
Jan Mas Rovira
49a91c404f [typechecker] throw in expressions, collect in clauses 2022-04-04 14:59:56 +01: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 Prieto-Cubides
eaad611bbf [ CI ] Add Haskell Github Action with Stack test and ormolu check 2022-04-04 15:55:15 +02: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
janmasrovira
22cf1cce99
Merge pull request #27 from heliaxdev/detect-root
automatically detect the root of the project and add --show-root flag
2022-04-01 12:56:04 +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
janmasrovira
351e058bcd
Merge pull request #26 from heliaxdev/highlight
add basic emacs-mode and highlighting for well-scoped modules
2022-04-01 12:00:26 +02:00
Jan Mas Rovira
b404df9edb [readme] improve formatting 2022-04-01 11:17:11 +02:00
Jan Mas Rovira
6f2588c165 [minijuvix-mode] add minijuvix-mode and basic description in the readme 2022-04-01 11:15:53 +02:00
Jan Mas Rovira
9708dd3fe3 [highlight] add basic support for highlighting symbols 2022-04-01 01:11:55 +02:00
Paul Cadman
5eb4299de7
Merge pull request #22 from heliaxdev/typecheck-errors
Improve typechecker error messages
2022-03-31 10:02:31 +01:00
Paul Cadman
07333ecbe9 [typecheck] fix merge conflicts: 2022-03-31 09:36:21 +01:00
Paul Cadman
d297322b7d [typecheck] Updates to error message copy 2022-03-31 09:30:56 +01:00
Paul Cadman
a030b97e8f [typecheck] Add descriptive messages for remainng errors 2022-03-31 09:30:54 +01:00
Paul Cadman
b41b4c4e84 [typecheck] Add error message for ctor match args mistmatch 2022-03-31 09:29:27 +01:00
Paul Cadman
e37fa7a8dc [app] Adds microjuvix subcommands for printing / typechecking 2022-03-31 09:28:20 +01:00
Paul Cadman
615f7d11c0 [test] Adds negative typecheck test for constructor 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
Jonathan Prieto-Cubides
6ba1a4f4ff Add a validity predicate example written in MiniJuvix 2022-03-30 19:09:43 +02:00
Jan Mas Rovira
91482119c1 [microjuvix] improve wrong type message 2022-03-30 18:37:40 +02:00
Jan Mas Rovira
f121fe0d39 [minihaskell] add compilation to MiniHaskell 2022-03-30 16:03:56 +02:00
Paul Cadman
d60bc30179
Merge pull request #20 from heliaxdev/wip4-rebase
Use refs in Abstract AST and add refs InfoTable to translateModule return
2022-03-29 14:18:55 +01:00
Jan Mas Rovira
1c59cd1502 rename some functions 2022-03-29 15:18:17 +02:00
Paul Cadman
53f66b09f2 [scoper] Update emptyInfoTable with missing field 2022-03-29 13:50:32 +01:00
Paul Cadman
c2f6d1529c [doc] Remove empty docs 2022-03-29 13:49:49 +01:00
Paul Cadman
0e3fb402d5 [main] Fix callsites of translateModule 2022-03-29 11:58:48 +01:00
Paul Cadman
9fea7b1ba0 [abstract] Add InfoTableBuilder for scoped to abstract 2022-03-29 11:58:48 +01:00
Paul Cadman
9e8a64fd7c [scoper] Add function clauses to scoped InfoTable 2022-03-29 11:58:48 +01:00
Paul Cadman
3354847eb5 [abstract] Add InfoTable for abstract syntax 2022-03-29 11:58:48 +01:00
Paul Cadman
36e53ec6c9 [abstract] Make Iden use references instead of Name 2022-03-29 11:58:48 +01:00
Paul Cadman
1d39124fac [scope] Move InfoTable to a new module 2022-03-29 11:58:48 +01:00
Jan Mas Rovira
b685af034d fix checking for constructors apps in patterns 2022-03-29 10:04:10 +02:00
Jan Mas Rovira
153ebe36a2 add simple test for MicroJuvix type checker 2022-03-29 09:46:26 +02:00
Jan Mas Rovira
b7dd050663 [microjuvix] implement basic typechecker 2022-03-29 02:02:37 +02:00
Jan Mas Rovira
51761a10cb fix readme 2022-03-28 17:32:09 +02:00
Jan Mas Rovira
db8f8a98c9 fix package.yaml 2022-03-28 09:40:51 +02:00
Jonathan Prieto-Cubides
1e52e663ca Fixed merge conflicts 2022-03-25 18:30:37 +01:00
Jonathan Prieto-Cubides
4497c8bfe1 [ package.yaml ] update version 2022-03-25 18:26:22 +01:00