Commit Graph

309 Commits

Author SHA1 Message Date
Suzanne Dupéron
1592404e03 Merge commit '4977c18e' into bugfix/new-typer 2020-01-23 11:56:02 +01:00
Christian Rinderknecht
7437d6ae1a Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2020-01-22 11:43:35 +01:00
Lesenechal Remi
8237947c4d monad fix 2020-01-21 19:04:51 +01:00
Christian Rinderknecht
786b183d40 [WIP]
* Reverted [pos.mli] to the previous signature, except [Pos.min]
  that now takes a labelled parameter [file].
* Reverted [ParserAPI.ml] to the previous signature.
* Reexported [shor_error] in [ParserUnit].
* Changed the modules [LexToken] so that they export one function
  to make attributes, the first, additional paramater being "[@"
  or "[@@" (and invalid in PascaLIGO).
* Added support in all [ParserLog] for attributes (pretty-printings).
* Added AST nodes [Attr] and [AttrDecl] to PascaLIGO. The simplifier
  takes care of hooking them with their respective declarations
  or discarding them. (In the future, we should issue a warning for detached
  attributes.)
2020-01-21 18:35:36 +01:00
Lesenechal Remi
57aeb4e931 detect self_address when not at top level 2020-01-21 13:26:38 +01:00
Suzanne Dupéron
688a636251 typer: cleanup 2020-01-20 21:19:37 +01:00
Christian Rinderknecht
8384e3d1f7 [WIP] Refactoring of front-end. 2020-01-20 10:57:07 +01:00
Christian Rinderknecht
f91955b299 Merge branch 'ignore-union-find' into 'dev'
Suppress some UnionFind noise

See merge request ligolang/ligo!323
2020-01-12 15:44:52 +00:00
Lesenechal Remi
fcb1c4ab77 add --contatenate option to cover.sh script 2020-01-09 22:19:40 +01:00
Tom Jack
2232e7f34f Suppress noisy and useless test in UnionFind 2020-01-09 11:21:28 -06:00
Tom Jack
a4e971b9e0 Ignore UnionFind.install 2020-01-09 11:21:23 -06:00
Christian Rinderknecht
dad9b0f816 Refactoring of the AST and simplfier of PascaLIGO.
Some weeks ago, anonymous functions as expressions were added to
PascaLIGO, unfortunately in a manner that allowed in theory for
contexts in which a named function was found when an anonymous was
expected, and vice-versa. That explains that the simplifier had two new possible errors:

   * unexpected_anonymous_function
     ("you provided a function declaration without name")
   * unexpected_named_function

I changed the AST and the parser so that function expressions
correspond to anonymous functions (without block) and function
declarations correspond to named functions.

I also removed a error in the simplifier, which was unused:

   * bad_bytes
     ("you provided a function expression with a name (remove it)")
2020-01-09 17:26:07 +01:00
Suzanne Dupéron
13ff600509 union-find: rename partition to UnionFind for more consistency across the various names that opam and dune assign to this library 2020-01-08 18:12:00 +00:00
Suzanne Dupéron
dd9a4dfb47 update union-find library (part 2: adjust module names) 2020-01-08 18:12:00 +00:00
Suzanne Dupéron
5e444dd278 update union-find library (part 1: remove old copy, download https://github.com/rinderknecht/UnionFind.git 3fc434d0d75e40d40d17f5abb70d86a51f434771 in new folder) 2020-01-08 18:12:00 +00:00
Christian Rinderknecht
6a1939553e Added --messages. 2020-01-07 22:26:47 +00:00
Lesenechal Remi
a0a8f114c0 replaces remove_from by take which does not raise any exceptions 2020-01-06 19:24:41 +01:00
Lesenechal Remi
7e05b7d276 now removes the entry-point declaration from the program before aggregation 2020-01-06 18:41:53 +01:00
Christian Rinderknecht
1806d6d74c Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2020-01-03 16:58:37 +01:00
Lesenechal Remi
e834e2ac20 More informative errors when calling michelson typecheck function 2020-01-03 15:25:37 +01:00
Christian Rinderknecht
345ffe22e4 Improved formatting of error messages (EOF is handled now). 2020-01-02 15:08:14 +01:00
Christian Rinderknecht
ea4eb76013 I added support for unlexing to CameLIGO. Fixed cover.sh. 2019-12-26 13:23:32 +01:00
Christian Rinderknecht
705b425589 Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-12-20 16:46:33 +01:00
Christian Rinderknecht
072dea757c [WIP] Adding the infrastructure for supporting the incremental API of Menhir.
* I added CLI option "--mono" to select the monolithic API of Menhir.
  * I added a field "win" to the state of the lexer (a two-token
    window for error reporting).
  * I escaped LIGO strings before making them OCaml strings (for
    example for printing).
2019-12-20 16:44:03 +01:00
Lesenechal Remi
2086dd9ab5 add predecessor timestamp to the CLI 2019-12-20 12:18:36 +01:00
Lesenechal Remi
92523bc4a5 exposing context type to be able to modify the timestamps in the tests 2019-12-20 12:18:36 +01:00
Tom Jack
d7bea52d44 Unignore dune-project 2019-12-19 19:53:10 +00:00
Christian Rinderknecht
9512992d2b Generating .msg files and extracting from them LIGO source files. 2019-12-18 22:17:49 +00:00
Tom Jack
172038cef0 Kill warning 45 by reusing Pervasives.result for Trace 2019-12-18 21:20:35 +00:00
Christian Rinderknecht
dfcdc54965 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2019-12-18 21:22:38 +01:00
Christian Rinderknecht
00f2e253f3 Generating .msg files and extracting from them LIGO source files. 2019-12-18 21:21:39 +01:00
Lesenechal Remi
ea343760b2 compile_parameter and compile_storage CLI commands now gets their input checked 2019-12-18 16:47:23 +01:00
Lesenechal Remi
46623ceb77 contract are now typecheck (at least in the CLI) 2019-12-10 15:58:53 +01:00
Lesenechal Remi
385961503f add unparse_ty to ligo-utils (thanks alpha monad) 2019-12-10 15:58:53 +01:00
Sander
95a7e19be6 Add ReasonLIGO support 2019-12-10 13:47:31 +00:00
Christian Rinderknecht
6cc17f9a3f I rewrote some comments so [dune build @doc] can extract HTML from
module interfaces.

This is meant as an exercise and an example to all team members.

I fixed a minor shadowing issue in [x_list.ml].
2019-12-07 15:09:49 +00:00
Pierre-Emmanuel Wulfman
034c92a64c Use ADT for types and move type to ast_common
and Making name, type_variable, built-in, constructor, label and string uncompatible types in ligo (weird bug with types in ligodity)
2019-12-04 11:40:58 +00:00
Tom Jack
66d2cda107 Mini_c: Inlining optimization 2019-11-27 09:06:31 -06:00
Tom Jack
f7ef0472be Add command for measuring contracts 2019-11-25 17:36:22 -06:00
Tom Jack
dbb36e6fdc Use runtest to run tests 2019-11-21 12:28:38 -06:00
Tom Jack
81c49f4342 Fix/simplify big_maps using Babylon 2019-11-21 08:18:18 -06:00
Lesenechal Remi
f27f8c10d1 For collection loop: also capture variable in logical blocks
Also, the iterated element/s are appended tot he list of local declaration
2019-11-21 11:28:32 +01:00
Lesenechal Remi
725176a59d allow to pack message (aka lambda of type unit -> operation list) 2019-11-19 23:27:43 +01:00
Lesenechal Remi
f7d6a5ea58 allow to catch failwith's in our tests 2019-11-19 15:38:23 +01:00
galfour
ddc4b7b7a5 add anon functions; remove pre-block declarations; update tests 2019-11-18 16:10:48 +01:00
Christian Rinderknecht
759978393a Merge branch 'rinderknecht-dev' into 'dev'
Refactoring of PascaLIGO's front-end

See merge request ligolang/ligo!176
2019-11-06 17:17:02 +00:00
Christian Rinderknecht
fe90246e3a Fixed the printing of some AST nodes. 2019-11-06 17:23:49 +01:00
Christian Rinderknecht
70a9afcce2 Merge branch 'rinderknecht-dev' into 'dev'
Refactoring of Ligodity (CameLIGO) and making an AST pretty-printer

See merge request ligolang/ligo!172
2019-11-06 12:18:54 +00:00
Christian Rinderknecht
351025b52d Refactoring of Ligodity (CameLIGO) and making an AST pretty-printer
- AST.ml/AST.mli:
  - The AST now distinguishes the constructors `None` and `Some` as being
    predefined, as in PascaLIGO. See type `AST.constr_pattern`.
  - I removed the nodes specific to Liquidity,
    e.g. `let%entry`, and, in particular, the natural literals
    ending with `p`. Now it should be `n`, as in `10n`.
  - I renamed the node `TAlias` to `TVar`.
  - I have applied the rule of expanding type expressions after `of` when
    those were not records.
  - The type of the argument to a data constructor is now
    `type_expr`, instead of `cartesian`.
  - I added the patterns for bytes (`PBytes`) and natural literals (`PNat`).
  - I renamed the node `Sugar` into
    `PListComp` (meaning "pattern of list comprehension").
  - Record types in CameLIGO now must have at least one field declaration.
  - Replaced the type `closing` and `opening` with one type `compound`,
    which captures only the right combinations of opening and closing.
  - Components of tuples in a selection must not be written
    between parentheses. For example, `a.b.(1).(0)` is now
    `a.b.1.0`, as in PascaLIGO.
- LexToken.mli/LexToken.mll
  - I renamed the string literal `Str` into `String`.
  - I added the tokens `C_None` and `C_Some` (to distinguish the
    constructors `None` and `Some`. See AST.ml)
  - Fixed the function `mk_sym` so it does not fail with `failwith`, but
    with `Error Invalid_symbol`.
- Lexer.mll (shared)
  - I removed the character `%` from the identifiers (used to
    support Liquidity, like `entry%point` and `match%nat`).
  - I adde to the hint on broken strings: "or insert a backslash"
    (from a Gitlab issue).
- ParToken.mly
  - I added the tokens `C_None` and `C_Some` (to distinguish the
    constructors `None` and `Some`. See AST.ml and LexToken.mll)
- Parser.mly
  - Fixed the order of declarations in the AST (it was reversed).
  - I removed syntax support for Liquidity.
  - I added user-defined constructor applications to irrefutable
    patterns (the ones afer a `let`), even though only the type
    checker can decide that they are truly irrefutable because they
    are the only constructors of their types.
  - I added natural numbers and bytes to patterns.
  - Access of tuple components do not require parentheses now, like
    `a.b.1.0`.
  - I refactored the semantic actions.
  - I added the empty sequence `begin end`.
- ParserLog.ml/ParserLog.mli
  - I added a pretty-printer for the AST (with source locations).
- ParserMain.ml
  - The CLI for the pretty-printer is now `--verbose=ast`.
  - The old CLI `--verbose=ast` is now `--verbose=ast-tokens`.
- ligodity.ml (simplifier)
  - I removed the constructions of sets, lists and maps with
    `Set [...]`, `List [...]` and `Map [...]`, as there are already
    better ways (that is, more like the OCaml's way), like
    `Set.literal [...]` and `Map.literal [...]`. (The case for lists
    was entirely redundant with the rest of the language as it is.)
  - Everywhere there is now a non-empty list of elements, I made a
    change. In particular, I removed a corner case ("let without
    binding"), thanks to more precise OCaml types for non-empty
    lists.
  - I ported all the changes to the AST above.
- region.ml (vendors)
  - I changed the method `compact` so the end-line is not repeated
    if it is the same as the start line: this is even more compact. I
    use this in the new pretty-printer for the AST (see above)
- I updated all the CameLIGO contracts.
2019-11-04 23:51:47 +01:00
galfour
9fe5d821c3 Merge branch 'dev' into clean-sts-solver 2019-11-04 16:32:32 +01:00
Tom Jack
ba7a83d0f7 Deal with upstream MBytes changes 2019-11-02 17:54:33 -05:00
Tom Jack
b06f4d3f62 Delete protocol tests 2019-11-02 17:54:21 -05:00
Tom Jack
f739624185 Prepare for tezos upgrade 2019-11-02 17:38:39 -05:00
Suzanne Dupéron
1e06c24325 Merge branch 'dev' of gitlab.com:ligolang/ligo into clean-sts-solver 2019-10-31 17:18:09 -04:00
Tom Jack
58638c6a05 Merge branch 'feature/hex' into 'dev'
Add hex michelson output, use enums for format options

See merge request ligolang/ligo!162
2019-10-31 15:39:03 +00:00
Suzanne Dupéron
735bd8e668 Implementing subst over the AST 2019-10-29 01:55:53 -04:00
Suzanne Dupéron
dcf5a975d4 More of subst 2019-10-28 01:10:26 -04:00
Tom Jack
6956e8751d Add hex michelson output, use enums for format options 2019-10-26 12:57:22 -05:00
Tom Jack
dae4f58297 Combine adjacent DROP 2019-10-24 23:58:21 -05:00
galfour
27be6cfcba use apply for closures 2019-10-17 16:34:02 +02:00
galfour
8a4b9695e7 use dig/dug for get/set 2019-10-17 15:48:24 +02:00
galfour
56269231b3 upgrade to babylon 2019-10-17 11:45:27 +02:00
Suzanne Dupéron
5a58559edc Merge remote-tracking branch 'origin/dev' into HEAD 2019-10-11 16:59:45 -04:00
Tom Jack
047065f8ee Delete vestigial local repo stuff 2019-10-11 15:12:07 +00:00
Suzanne Dupéron
4fa54dd2c1 More progress on merging new typer and new dev 2019-10-10 01:23:55 -04:00
Christian Rinderknecht
bcf73d01bf Printing of tokens from the AST is now done in a Buffer.t 2019-10-09 16:07:13 +02:00
Pierre-Emmanuel Wulfman
59cb210b83 Interface for Ocaml code 2019-10-07 14:18:32 +00:00
Lesenechal Remi
4e333836cb ignore closure error in subexpression of argument 2019-10-03 15:36:06 +02:00
Lesenechal Remi
a7565145d5 add map_expression function in self_mini_c pass helpers 2019-10-02 18:31:15 +02:00
Georges Dupéron
2b5b23f266 WIP: fixing the build errors + missing non-merged code 2019-09-29 18:25:02 -04:00
Pierre-Emmanuel Wulfman
f657c71753 Merge done and repo build with no error 2019-09-27 14:55:09 +02:00
Tom Jack
09496ce4ca Generate field annotations for sum/record 2019-09-26 11:39:35 -05:00
Tom Jack
a521c01115 some michelson optimizations 2019-09-25 20:15:19 -05:00
galfour
720ef99c69 solve conflict 2019-09-22 22:17:28 +02:00
galfour
ad79188c4f add list pattern matching 2019-09-21 09:12:00 +02:00
Lesenechal Remi
25e3ab8e5d big map can be looked up 2019-09-20 21:33:14 +02:00
galfour
66efff631d add micheline 2019-09-20 18:56:55 +02:00
galfour
9a7c3ee54d Merge branch 'dev' into refactor/everything 2019-09-20 17:51:43 +02:00
galfour
015e197183 back on track 2019-09-19 01:34:37 +02:00
galfour
b619fa1f17 further down the road 2019-09-18 18:49:33 +02:00
Tom Jack
c867a4c4d4 Remove dune-project files 2019-09-09 13:59:08 -07:00
Tom Jack
e0b5910627 Try to fix CI again 2019-09-08 12:37:11 -07:00
galfour
cb1aa44ff4 moving stuff around 2019-09-08 12:17:24 +02:00
galfour
25b07af6ae merge dev conflict 2019-09-07 16:54:08 +02:00
galfour
f831793fbd y e s s s 2019-09-05 15:21:01 +02:00
galfour
32599ae90b removing tezos-modded 2019-09-04 20:19:09 +02:00
galfour
af588933f4 add closures 2019-08-21 10:28:27 +02:00
galfour
88261fd5e2 Merge branch 'dev' into feature/better-error-messages 2019-07-21 11:58:09 +02:00
galfour
9dd8e63cbf add iter for set and lists 2019-07-20 13:46:42 +02:00
galfour
33101820ec add set tests 2019-07-19 14:35:47 +02:00
Galfour
6e3209fa4f add manual tests; change display of errors; minor refactorings 2019-06-28 12:05:04 +00:00
Georges Dupéron
148daa32a2 Merge remote-tracking branch 'origin/dev' into HEAD 2019-06-13 12:03:46 +02:00
Matej Šima
072d753e91 Merge branch 'feature/more-operators' into 'dev'
Feature/more operators

See merge request ligolang/ligo!32
2019-06-12 20:34:16 +00:00
Georges Dupéron
0af274a3a4 Tutorial for the trace monad, bind operator (>>?) and ppx_let 2019-06-12 01:50:26 +02:00
Galfour
985eff44a9 more keywords ; add support for sets ; remove assert from keywords 2019-06-10 09:58:16 +00:00
Georges Dupéron
e6994cd2d9 typo 2019-06-10 10:23:18 +02:00
Georges Dupéron
c47daad439 Use sh, not bash 2019-06-10 10:23:18 +02:00
Georges Dupéron
e0228f352c fix build (my bad) 2019-06-05 14:26:01 +02:00
Georges Dupéron
24db060dae Use internal_assertion_fail instead of the simple_error that are just assertions 2019-06-05 11:38:59 +02:00
Galfour
0e17e8b274 minor fixes 2019-06-03 12:23:46 +00:00