Commit Graph

1438 Commits

Author SHA1 Message Date
Lesenechal Remi
ba0548d6b8 some list-declarations tests 2020-01-23 22:12:33 +01:00
Lesenechal Remi
fd47f51031 add a new CLI command: list-declarations 2020-01-23 22:12:33 +01:00
Christian Rinderknecht
4f4294bf56 Refactoring of the front-end towards integration of the local builds
and the globol build, using the parser error messages, for instance.
2020-01-23 18:28:04 +01:00
John David Pressman
0636994ffb Fix interval advance test for repeating time lock contract 2020-01-23 08:32:43 -08:00
Lesenechal Remi
69d125b667 fix evaluate-value and added tests 2020-01-23 14:29:04 +01:00
Suzanne Dupéron
1592404e03 Merge commit '4977c18e' into bugfix/new-typer 2020-01-23 11:56:02 +01:00
Suzanne Dupéron
4977c18e05 Fixed semantic conflict (split bytes into several constructor functions) 2020-01-23 11:43:43 +01:00
John David Pressman
f166748757 Merge branch 'gardening/e-bytes-split' into 'dev'
[LIGO-374] Split e_bytes into e_bytes_hex, e_bytes_raw and e_bytes_string

See merge request ligolang/ligo!336
2020-01-23 08:35:30 +00:00
John David Pressman
d260e831d1 Add failing interval advance test for repeating timelock contract 2020-01-22 23:05:41 -08:00
John David Pressman
eba4901a76 Merge branch 'docs/update-front-page-examples-2' into 'dev'
Update CameLIGO and ReasonLIGO examples on front page so they're usable in the IDE

See merge request ligolang/ligo!347
2020-01-23 03:19:46 +00:00
Suzanne Dupéron
ef6f46db5b typer: bugfix: stray leftover attempt to typecheck the old way in the new typer 2020-01-22 15:30:38 +01:00
Suzanne Dupéron
c5190ac91d typer: bugfix: missing case for E_skip 2020-01-22 15:30:29 +01:00
Suzanne Dupéron
d97044b581 typer: bugfix: arrow is now a built-in type constructor 2020-01-22 15:30:18 +01:00
Suzanne Dupéron
0f420eaaf5 typer: bugfix: tuple is now a built-in type constructor 2020-01-22 15:17:10 +01:00
Suzanne Dupéron
30dac09494 typer: bugfix: use "String.equal", not "=" 2020-01-22 13:49:32 +01:00
Suzanne Dupéron
77fdb739b6 typer: typecheck expression and subst (used e.g. to typecheck arguments of contracts) 2020-01-22 13:49:32 +01:00
Christian Rinderknecht
a2a35cc953 Fixed helpers.ml and promoted negative test of reserved name for PascaLIGO. 2020-01-22 12:47:11 +01:00
Christian Rinderknecht
d46d95ee90 Fixed CameLIGO parsing of -> vs *
Fixed reserved_name.ligo ("arguments" instead of "args").
2020-01-22 12:33:29 +01:00
John David Pressman
9781a1c8ff Add rough draft of repeating timelock contract 2020-01-22 03:01:21 -08:00
Christian Rinderknecht
7437d6ae1a Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2020-01-22 11:43:35 +01:00
John David Pressman
b50479b96b Merge branch 'docs/michelson-specific' into 'dev'
[LIGO-358] Add Tezos-specific LIGO features docs

See merge request ligolang/ligo!335
2020-01-22 09:58:46 +00:00
John David Pressman
d878387424 Add salt to hashlock contract 2020-01-22 01:40:23 -08:00
John David Pressman
7756bfda93 Add rough draft of hashlock contract 2020-01-22 01:30:04 -08:00
John David Pressman
69ee6d0521 Update CameLIGO and ReasonLIGO examples on front page so they're usable in the IDE 2020-01-21 14:49:42 -08:00
Sander Spies
da53758d85 Merge 2020-01-21 21:26:52 +01:00
Sander Spies
f104b5e512 Handle parentheses when destructuring. 2020-01-21 21:23:31 +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
Sander Spies
483f591f62 Typo 2020-01-21 14:57:13 +01:00
Pierre-Emmanuel Wulfman
5ba2144f0f Merge branch 'new-typer-bugfix1' into 'dev'
Implemented some missing cases of the subst in the new typer.

See merge request ligolang/ligo!334
2020-01-21 13:53:27 +00:00
Sander Spies
95205609f8 Merge. 2020-01-21 14:14:23 +01:00
Lesenechal Remi
a2c51ddbcf better description for bad_contract error message 2020-01-21 13:26:38 +01:00
Lesenechal Remi
f1977b12aa self in lambda negative test 2020-01-21 13:26:38 +01:00
Lesenechal Remi
57aeb4e931 detect self_address when not at top level 2020-01-21 13:26:38 +01:00
Suzanne Dupéron
93d16b4b6a typer: do multiple substitutions at once (pass a sort of map from free variables to their substitution) 2020-01-21 13:25:04 +01:00
Sander
3223f9cfe1 Add sub commands to print different stages. 2020-01-21 12:24:51 +00:00
John David Pressman
c811f0058e Change 'touples' to 'tuples' in docs 2020-01-21 03:13:57 -08:00
John David Pressman
dd44c0d621 Add self_address docs, fix warning for PACK and UNPACK 2020-01-21 02:45:38 -08:00
John David Pressman
44dd39dcb2 Fix examples on front page of ligolang.org, add reminder to change in future 2020-01-20 19:42:22 -08:00
Suzanne Dupéron
614970d2d7 Implemented some missing cases of the subst. First kinda actual typer test passes! 2020-01-20 21:19:37 +01:00
Suzanne Dupéron
688a636251 typer: cleanup 2020-01-20 21:19:37 +01:00
Sander Spies
e959ef4f6f Forgot to add test file. 2020-01-20 19:04:02 +01:00
Sander Spies
fbb622cc03 Add support for tuple destructuring in ReasonLIGO 2020-01-20 19:03:00 +01:00
Christian Rinderknecht
8384e3d1f7 [WIP] Refactoring of front-end. 2020-01-20 10:57:07 +01:00
Christian Rinderknecht
673b54e6ae Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2020-01-18 11:37:36 +01:00
Lesenechal Remi
a30d59121f review request (more regular output) 2020-01-17 17:02:54 +01:00
Lesenechal Remi
3081ec477b add test & promote 2020-01-17 16:35:53 +01:00
Lesenechal Remi
600ee51940 running contract or function does not fail on failwiths 2020-01-17 16:35:40 +01:00
Lesenechal Remi
0ad8bde6d1 add missing newlines 2020-01-17 16:29:23 +01:00
John David Pressman
d6000be369 Add ReasonLIGO CHECK_SIGNATURE test to suite 2020-01-17 01:57:07 -08:00
John David Pressman
eea8e30e87 Add CameLIGO CHECK_SIGNATURE test to suite 2020-01-17 01:53:22 -08:00
John David Pressman
eb4336b0e7 Add PascaLIGO CHECK_SIGNATURE test to suite 2020-01-17 01:50:06 -08:00
John David Pressman
4835ac4d10 Split e_bytes into e_bytes_hex, e_bytes_raw and e_bytes_string 2020-01-16 22:46:28 -08:00
John David Pressman
411c17eb99 Add ReasonLIGO version of key_hash test 2020-01-16 21:45:40 -08:00
John David Pressman
4fcfa3df8f Add CameLIGO key_hash test 2020-01-16 21:37:29 -08:00
John David Pressman
4ee3a29a34 Enable CameLIGO bytes_unpack test and add one for ReasonLIGO 2020-01-16 20:59:26 -08:00
John David Pressman
ca1caf2e61 Add bytes_unpack test for CameLIGO 2020-01-16 20:27:50 -08:00
Sander
88159e15b2 Add inline attribute 2020-01-16 19:36:04 +00:00
Christian Rinderknecht
5972d1d988 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2020-01-14 18:37:17 +01:00
Christian Rinderknecht
cb8aaa7b9b Additional refactoring to get local and global builds closer.
I removed the last top-level effect (the execution of cpp).

The idea is that ParserUnit.ml and each ParserMain.ml get closer
to pascaligo.ml, cameligo.ml and reasonligo.ml, respectively.
2020-01-14 18:35:30 +01:00
Christian Rinderknecht
c5b5ffe51a Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2020-01-14 12:59:32 +01:00
Christian Rinderknecht
9570caac53 Refactoring to bring local builds of the parsers closer to the global build.
Added --expr to parse expressions.
2020-01-14 01:27:35 +01:00
Suzanne Dupéron
ff9370a422 Improved typer error messages in operators.ml LIGO-371 2020-01-13 23:56:06 +01:00
Lesenechal Remi
7143b82ba8 support for key and signature literals 2020-01-13 11:37:10 +01:00
Pierre-Emmanuel Wulfman
bbfcc9839b Updates for ReasonLIGO 2020-01-10 18:00:23 +01:00
Pierre-Emmanuel Wulfman
98d6aea4e1 mr review 2 2020-01-10 17:28:45 +01:00
Pierre-Emmanuel Wulfman
60edd0cf5b after review 1 2020-01-10 16:41:47 +01:00
Christian Rinderknecht
6bf91538c4 Some refactoring.
I removed AST.mli from CameLIGO (for maintenance's sake).
I removed useless functions.
I renamed unlexer.ml to Unlexer.ml
I added a cleaning rule for my Makefile in Makefile.cfg
2020-01-10 15:32:54 +01:00
Pierre-Emmanuel Wulfman
812834656a Updates for OcamLIGO and PascaLIGO 2020-01-10 13:52:05 +01:00
Christian Rinderknecht
8a683e1a69 Merge branch 'feature/literal-bytes-again' into 'dev'
Fix literal bytes

See merge request ligolang/ligo!325
2020-01-10 10:35:04 +00:00
Suzanne Dupéron
e7589f1a6a Merge branch 'feature/auto-generate-folds' into 'dev'
Automatic generation of the boilerplate for folds

See merge request ligolang/ligo!303
2020-01-10 00:24:55 +00:00
Suzanne Dupéron
4ee75afb0a fix test: add helper blurb 2020-01-09 23:13:14 +00:00
Suzanne Dupéron
1863cf324b Improve error messages in ast_typed/combinators.ml 2020-01-09 23:13:14 +00:00
Tom Jack
5cef850bdd Fix printing of bytes in parsers/lexers 2020-01-09 16:53:07 -06:00
Tom Jack
1b0ed4d4de Fix literal bytes 2020-01-09 16:53:07 -06:00
Lesenechal Remi
20c9de0380 parset negative tests for all syntaxes 2020-01-09 22:19:40 +01:00
Lesenechal Remi
47199ca13c add negative tests rules 2020-01-09 22:19:40 +01:00
Christian Rinderknecht
0791866a63 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2020-01-09 20:59:22 +01:00
Christian Rinderknecht
19e2ffb750 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2020-01-09 19:49:57 +01:00
Suzanne Dupéron
801efeed46 tests for automatic fold generator + fold_config hook to update the state before a node has been transformed, without transforming it. 2020-01-09 18:16:02 +00:00
Suzanne Dupéron
fe5f8d9f64 fold_config hook to update the state after a node has been transformed, without transforming it. 2020-01-09 18:16:02 +00:00
Suzanne Dupéron
8b98898dbf first executable version of the auto-generation of folds 2020-01-09 18:16:02 +00:00
Suzanne Dupéron
3605768bb0 Started auto-generation of folds on ADTs (part of the code is generated, not all) 2020-01-09 18:16:02 +00:00
Suzanne Dupéron
8e18c1f8bd update tests with the helper blurb 2020-01-09 18:59:10 +01:00
Suzanne Dupéron
75e6344972 Move the last two negative tests to a subdirectory, actually check that they fail in the expected way 2020-01-09 17:19:00 +00: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
Tom Jack
10eebf69bd Support always-failing conditionals 2020-01-09 09:47:54 -06:00
Christian Rinderknecht
c347d1b08b Removed temporary Emacs file. 2020-01-09 15:55:58 +01:00
Christian Rinderknecht
9426222d86 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2020-01-09 14:27:17 +01:00
Christian Rinderknecht
d123abd46f Added new error for duplicated record fields.
Removed interface for the AST (for maintenance sake).
2020-01-09 14:26:47 +01:00
Sander Spies
8904ededb7 Improve error handling of negative start positions. 2020-01-09 10:41:24 +00:00
Lesenechal Remi
af5c32cb98 checking .md file arguments 2020-01-09 10:33:44 +01:00
Christian Rinderknecht
330d2ab351 Forgot to commit this. 2020-01-08 23:47:37 +01:00
Christian Rinderknecht
b8017ca8ac Moved stuff to module [SyntaxError] from [AST] and [Parser].
Added support for the rejection of non-linear patterns in PascaLIGO.
2020-01-08 23:35:09 +01:00
John David Pressman
71989876db Fix a bug, test added:
A never accounted message was not adding anything to the map
2020-01-08 20:58:26 +00: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
8bdc103ec8 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2020-01-08 16:46:59 +01:00
Christian Rinderknecht
9e7c97637c Added support for language-specific parse errors for PascaLIGO:
* Duplicate variants in the same type declaration
   * Duplicate parameter in the same function declaration
   * Shadowing of predefined value in a declaration

I fixed the architecture for that support: ParserMain.ml is now where
those specific errors are handled, and they are produced by the
semantic actions of the parsers.
2020-01-08 16:39:52 +01:00
John David Pressman
16ac289381 [LIGO-347] Add changelog 2020-01-08 10:54:21 +00:00
Sander
8dd936ab90 Test lexer error messages. 2020-01-07 20:35:04 +00:00
Lesenechal Remi
05afd6c8c7 improve simplifier self pass errors 2020-01-07 18:32:32 +00:00
Sander Spies
8f57f63be7 Show proper parser error messages in the terminal again. 2020-01-07 12:15:54 +00:00
Tom Jack
6716af9123 Eliminate some spurious synonyms of "location" 2020-01-07 00:34:41 +00:00
Tom Jack
e73c901135 Show 'deepest' location for errors 2020-01-07 00:34:41 +00:00
Lesenechal Remi
d885eb8d4a check key_hash format 2020-01-06 22:52:30 +01:00
Lesenechal Remi
2667ed62b3 fix indent (unrelated) 2020-01-06 22:29:07 +01:00
Lesenechal Remi
55a8734c81 key_hash now comparable 2020-01-06 21:31:54 +01:00
Lesenechal Remi
6841609362 allow key_hash literals 2020-01-06 21:31:45 +01: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
8ce4772ae4 add tests 2020-01-06 18:51:43 +01:00
Lesenechal Remi
7e05b7d276 now removes the entry-point declaration from the program before aggregation 2020-01-06 18:41:53 +01:00
Sander Spies
301defda3f Show lexer error messages in CameLIGO + PascaLIGO. 2020-01-06 13:46:11 +01:00
Christian Rinderknecht
ddd438aaa8 Forgot to add. 2020-01-06 10:03:41 +00:00
Christian Rinderknecht
a6e4837aa0 Sharing standalone lexers and parsers, and parser error API. 2020-01-06 10:03:41 +00:00
Lesenechal Remi
f133729318 fix dune file warnings 2020-01-05 14:32:15 +01:00
Lesenechal Remi
b1dd35b56d fix definition of predecessor_timestamp 2020-01-05 14:29:22 +01:00
Christian Rinderknecht
e23350071f Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2020-01-04 17:47:20 +01:00
John David Pressman
10b26f610f Show lexer error messages in ReasonLIGO 2020-01-04 08:24:16 +00:00
Lesenechal Remi
0a676d72a5 add --predecessor-timestamp to compile-storage/parameter 2020-01-03 18:11:44 +01:00
Lesenechal Remi
1a2a29bc03 negative timestamp literal test 2020-01-03 18:11:37 +01:00
Lesenechal Remi
c805a27b99 adding timestamp literals as string or int 2020-01-03 18:11:27 +01:00
Christian Rinderknecht
1806d6d74c Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2020-01-03 16:58:37 +01:00
Lesenechal Remi
a3a09dc0e5 functionize the name in the error 2020-01-03 16:23:18 +01:00
Lesenechal Remi
4d56a71bd1 propagate location for cameligo variables 2020-01-03 16:23:18 +01:00
Lesenechal Remi
3288696784 add the name of the variable in the unbound variable error message title 2020-01-03 16:23:18 +01:00
Lesenechal Remi
72f4ed35f1 print ill-typed michelson code 2020-01-03 15:25:37 +01:00
John David Pressman
5108b820cf Fix minor typos in wrong michelson contract parameter/storage msgs 2020-01-03 15:25:37 +01:00
Lesenechal Remi
e834e2ac20 More informative errors when calling michelson typecheck function 2020-01-03 15:25:37 +01:00
Sander
ce6ccab728 Add support for empty constructors. 2020-01-03 13:01:13 +00:00
Lesenechal Remi
e25c5bac35 adding loops.md to the list of tested file and fixed "loops.md" 2020-01-02 20:38:45 +01:00
John David Pressman
7c4f59035f Add inclusion directive docs and inclusion tests for CameLIGO and ReasonLIGO 2020-01-02 16:11:03 +00:00
Lesenechal Remi
2d7c3eb216 support bytes_unpack operator in pascaligo + tests 2020-01-02 16:19:21 +01:00
Christian Rinderknecht
c18e6e9748 Handling of EOF in ParserAPI messages. 2020-01-02 15:44:21 +01:00
Lesenechal Remi
46027de719 Proper error with location 2020-01-02 15:21:56 +01:00
Lesenechal Remi
8584bacf83 test & dune promote 2020-01-02 15:21:56 +01:00
Lesenechal Remi
42cbabac69 check ast_simplified address literals to be well formatted 2020-01-02 15:20:48 +01:00
Lesenechal Remi
98ac18ccef propagate failwith strings (also support for others) in the error 2020-01-02 12:50:45 +01:00
Lesenechal Remi
d0ea94b472 'dune runtest' also execute 'md files tests' 2019-12-31 14:23:51 +01:00
Lesenechal Remi
c171ce7ad9 fully tested md_files 2019-12-31 14:23:51 +01:00
Lesenechal Remi
bddad3f234 add missing GE operator (>=) to cameligo 2019-12-31 14:23:51 +01:00
Lesenechal Remi
afa61e5825 Now have an default group "ungrouped" for all the code blocks without any "group=..." 2019-12-31 14:23:51 +01:00
Lesenechal Remi
08471ba246 basic architecture for the doc tests 2019-12-31 14:23:51 +01:00
Lesenechal Remi
c873350b15 no ppx in expect_tests lib 2019-12-31 14:23:51 +01:00
Lesenechal Remi
acee34985b remove ppx in tests 2019-12-31 14:23:51 +01:00
Lesenechal Remi
6c7440ea79 inline magic 2019-12-31 14:23:51 +01:00
Lesenechal Remi
61d095ea28 also preprocess the executable 2019-12-31 14:23:51 +01:00
Lesenechal Remi
6f804a4432 exclude parser debug tooling 2019-12-31 14:23:51 +01:00
Lesenechal Remi
e8d1e359f4 exclude PPs from coverage 2019-12-31 14:23:51 +01:00
Lesenechal Remi
c8339ed2ef first try 2019-12-31 14:23:51 +01:00
John David Pressman
dcfc8d6391 Horrible hack to rewrite CST for tuple param destruct,
Fails because Let In doesn't support multi-bind
2019-12-29 01:24:22 +00:00
Christian Rinderknecht
ea7460f8c9 Miscellaneous. 2019-12-28 17:58:15 +01:00
Christian Rinderknecht
c92e3b28ad Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2019-12-28 17:58:09 +01:00
John David Pressman
3d9489530a Merge branch 'dev' into feature/cameligo-multi-bind-let-in 2019-12-27 09:29:30 -08:00
John David Pressman
e1ecb36e61 Have let ... in evaluate right hand side first during multi-bind 2019-12-26 21:06:24 -08:00
Christian Rinderknecht
6814e7786a Same error formatting for the incremental and monolithic API of Menhir. 2019-12-26 18:57:02 +01:00
Christian Rinderknecht
379311a748 Shortened the parser's API.
Unfortunately, even thought all the front-ends use the same
ParserAPI.ml, that file cannot be moved to the folder `shared` due to
a dependency on AST.ml produced by Menhir.
2019-12-26 18:17:57 +01:00
Christian Rinderknecht
548b1267a4 Added .gitignore for all syntaxes. 2019-12-26 14:13:19 +01:00
Christian Rinderknecht
07a70b4648 Added unlexing to ReasonLIGO. 2019-12-26 13:31:54 +01:00
Christian Rinderknecht
ea4eb76013 I added support for unlexing to CameLIGO. Fixed cover.sh. 2019-12-26 13:23:32 +01:00
John David Pressman
2d9de2aef0 Clean up let ... in multi-bind 2019-12-24 15:35:05 -08:00
John David Pressman
48a3bebadd Working rough draft of let ... in multi-bind 2019-12-24 14:54:22 -08:00
John David Pressman
7454e8b01f Add let-in multi bind test 2019-12-24 13:48:14 -08:00
Christian Rinderknecht
7c1d637226 Fixing the constant constructors in CameLIGO's simplifier. 2019-12-24 18:56:21 +01:00
Christian Rinderknecht
e99c9b32de Fixed the [dune] file for building [pascaligo/Unlexer.exe]. 2019-12-24 17:35:43 +01:00
Christian Rinderknecht
dadf1fbe41 Fixed the stratification of "++". 2019-12-24 17:01:39 +01:00
Christian Rinderknecht
7b9b6866b2 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2019-12-24 14:26:32 +01:00
Christian Rinderknecht
ce857fbe40 Fixed the [dune] files to build ParserMain.exe 2019-12-24 14:25:40 +01:00
Lesenechal Remi
bdd1d09c04 t_operator can not throw exceptions 2019-12-24 12:43:32 +01:00
Christian Rinderknecht
b0e92a58bf Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2019-12-24 11:59:34 +01:00
Sander Spies
29c96fb021 Fix 'dune build ParserMain.exe'. 2019-12-24 08:08:50 +01:00
Christian Rinderknecht
e6a9bf6510 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2019-12-23 21:46:21 +01:00
Christian Rinderknecht
24f067b69e Added nat and bytes to ReasonLIGO and CameLIGO (expressions).
Use the correct ParserAPI for ReasonLIGO now.
2019-12-23 20:37:48 +01:00
John David Pressman
1bf04574c1 Merge branch 'dev' into feature/set-delegate 2019-12-20 08:37:01 -08: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
638b45611d fix message of redundant_match_case error 2019-12-20 12:17:47 +00:00
Lesenechal Remi
70977d1f00 improve badly annotated timestamp error 2019-12-20 12:18:36 +01:00
Lesenechal Remi
e18233434d dune promote 2019-12-20 12:18:36 +01:00
Lesenechal Remi
2086dd9ab5 add predecessor timestamp to the CLI 2019-12-20 12:18:36 +01:00
Lesenechal Remi
e8c8aa4d2b Time lock : contract + tests 2019-12-20 12:18:36 +01:00
Tom Jack
71e2670572 Fix one hex printing bug 2019-12-19 13:05:30 -06:00
Suzanne Dupéron
e5acdc4228 All typer errors in ast_typed/misc.ml are covered it seems. 2019-12-19 17:27:17 +00:00
Suzanne Dupéron
f7616b7b49 Small improvements to negative typer tests 2019-12-19 17:27:17 +00:00
Suzanne Dupéron
f9daa64aa7 Moved negative tests to a negative/ folder 2019-12-19 17:27:17 +00:00
Suzanne Dupéron
a835bc9286 Added "did you mean" feature for unbound type names 2019-12-19 17:27:17 +00:00
Suzanne Dupéron
2a11c6d180 test for typer error message: different keys 2019-12-19 17:27:17 +00:00
Suzanne Dupéron
e919a1eba3 Fixes unsoundness in old typer (expected type for the expression as a whole was not checked for ascriptions) 2019-12-19 17:27:17 +00:00
Sander
600ae2d4f6 Move to Trace.error instead of simple_error. 2019-12-19 13:50:57 +00:00
Christian Rinderknecht
3add77eba5 Adding the build of the unlexer by dune. 2019-12-18 22:17:49 +00:00
Christian Rinderknecht
d47ec7cf7c Fixed a tag file (local build of PascaLIGO with my Makefile). 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
c46bf008c8 Adding the build of the unlexer by dune. 2019-12-18 21:32:12 +01: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
64f04b8c40 Fixed a tag file (local build of PascaLIGO with my Makefile). 2019-12-18 16:53:32 +01:00
Lesenechal Remi
be84244d7a add some CLI tests 2019-12-18 16:47:23 +01:00
Lesenechal Remi
f9fcf1fbc3 Also perform Ast_typed check 2019-12-18 16:47:23 +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
Christian Rinderknecht
97a6d7162f Regression. 2019-12-18 15:50:42 +01:00
Christian Rinderknecht
c7bd986772 Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-12-18 14:22:57 +01:00
Sander Spies
7518005532 Merge branch 'dev' of https://gitlab.com/ligolang/ligo into reasonligo-improvemtns 2019-12-18 09:59:19 +01:00
John David Pressman
310dde6dc9 [LIGO-286] Tuple destructuring doesn't do left hand type inference in CameLIGO 2019-12-17 21:04:53 +00:00
John David Pressman
7067644b1d Merge branch 'dev' into feature/set-delegate 2019-12-17 12:17:02 -08:00
Suzanne Dupéron
1bf3d8f02a First negative tests for the old typer & improvement of error messages 2019-12-17 18:18:49 +00:00
John David Pressman
a4b1c9951d Add ReasonLIGO and CameLIGO tests for SET_DELEGATE 2019-12-17 09:50:47 -08:00
John David Pressman
fdeb95288d Passing SET_DELEGATE test for PascaLIGO 2019-12-17 09:34:05 -08:00
Christian Rinderknecht
078dd06132 Merge branch 'rinderknecht-dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2019-12-17 17:07:10 +01:00
Christian Rinderknecht
7ae8d9340b Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-12-17 17:04:59 +01:00
Christian Rinderknecht
8210a4e186 Added basic support for Menhir's incremental API.
I added the token Bytes to ReasonLIGO's [LexToken.mll] for the build.
2019-12-17 17:03:43 +01:00
Christian Rinderknecht
757b0da78c Removed the open type [Error.t] (less [assert false]).
I also had to remove the keywords [Down], [Fail] and [Step] in
PascaLIGO that made a mysterious and unwanted come back. (I did not
bother with [git blame]).
2019-12-17 15:58:27 +00:00
Christian Rinderknecht
531dd238a7 Added unlexer for PascaLIGO. 2019-12-17 15:58:27 +00:00
Rémi Lesenechal
e6cb4e63c6 Contracts: replaceable ID 2019-12-17 14:18:09 +00:00
Christian Rinderknecht
35d4b64a02 Removed the open type [Error.t] (less [assert false]).
I also had to remove the keywords [Down], [Fail] and [Step] in
PascaLIGO that made a mysterious and unwanted come back. (I did not
bother with [git blame]).
2019-12-17 14:56:16 +01:00
Sander Spies
ebba74e7a7 Merge branch 'dev' of https://gitlab.com/ligolang/ligo into reasonligo-improvemtns 2019-12-17 14:34:58 +01:00
Lesenechal Remi
ffb225e269 fix address arity and update test 2019-12-17 11:10:29 +01:00
John David Pressman
20285f2b9e Add broken set_delegate test to LIGO, get to typer error 2019-12-16 16:26:39 -08:00
Tom Jack
c83813456a Relocate .opam 2019-12-16 22:50:25 +00:00
John David Pressman
fb8fae05d7 Fix IMPLICIT_ACCOUNT, again and this time add regression expect test 2019-12-16 12:10:31 -08:00
Sander Spies
52eff4e764 Incorrect function arguments message for ReasonLIGO. 2019-12-16 18:04:15 +01:00
Christian Rinderknecht
257ef4f5d2 Added unlexer for PascaLIGO. 2019-12-16 17:37:46 +01:00
Sander Spies
09875cf1da Make type_expr_simple less complicated. 2019-12-16 14:54:12 +01:00
Christian Rinderknecht
a94ee53fd3 Finished the refactoring of the parsers. 2019-12-15 20:59:04 +01:00
Christian Rinderknecht
f8d6396fcd Refactoring of the parsers
* [CameLIGO/ReasonLIGO] The AST node [EAnnot] (expressions
    annotated by a type) now records the region in the source
    code for the colon.

  * [CameLIGO/ReasonLIGO/PascaLIGO] I added the syntax
     %token <...> TOKEN "lexeme"

  * [ReasonLIGO] I changed the AST nodes [Mtz] and [Str] to
    [Mutez] and [String], respectively (in accordance with the
    PascaLIGO front-end). I changed token [DOTDOTDOT] to
    [ELLIPSIS].

  * [ReasonLIGO] I added what was missing to make a loca build
    with my Makefile.
2019-12-15 17:46:08 +01:00
Christian Rinderknecht
6692643cc5 Streamlined LexerMain and ParserMain for ReasonLIGO. 2019-12-13 17:28:15 +01:00
Christian Rinderknecht
2904a40373 Merge branch 'dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2019-12-13 14:53:33 +01:00
Christian Rinderknecht
e685e313f0 Fixed the build after I made a small error when fixing the latest
merge conflict.
2019-12-13 12:30:59 +01:00
Christian Rinderknecht
c7ffa6d563 Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-12-13 12:28:33 +01:00
Christian Rinderknecht
0226b9f23c Refactoring of comments (for [dune build @doc]).
Refactoring of parsing command-line arguments

  * The type [options] is now abstract and implemented as an
    object type to avoid struggling with scoping and type
    inference when record types share some common field names.

Refactoring of ParserLog for PascaLIGO and CameLIGO

  * The immediate motivation behind that refactoring was to
    remove the use of a couple of global references. A
    consequence is that we have a nicer and more compact code, by
    threading a state. The files [pascaligo/Tests/pp.ligo] and
    [ligodity/Tests/pp.mligo].

  * Another consequence is that the choice of making strings from
    AST nodes depends on the CLI (offsets? mode?). After this
    refactoring, that choice is hardcoded in the simplifiers in a
    few places (TODO), waiting for a general solution that would
    have all CL options flow through the compiler.

  * I removed the use of vendors [x_option.ml], [x_map.ml] and
    [x_list.ml] when handling optional values. (Less dependencies
    this way.)

Refactoring of the ASTs

  * I removed the node [local_decl], which was set to [[]]
    already in a previous commit (which removed local
    declarations as being redundant, as statements could already
    be instructions or declarations).

  * I changed [StrLit] to [String] in the AST of CameLIGO and
    ReasonLIGO.

  * I also changed the type [fun_expr] so now either a block is
    present, and therefore followed by the [with] keyword, or it
    is not. (Before, the presence of a block was not enforced in
    the type with the presence of the keyword.)

Notes

  * [LexerMain.ml] and [ParserMain.ml] for CameLIGO and PascaLIGO
    are almost identical and differ in the same way (language
    name and file extension), which suggests that they should be
    in the [shared] folder and instanciated as a functor in the
    future (TODO).

  * I removed the blank characters at the end of many lines in
    the parser of ReasonLIGO.
2019-12-13 12:21:52 +01:00
Tom Jack
611bd0382a dune runtest ; dune promote 2019-12-13 03:11:51 -06:00
Tom Jack
e914833600 Add --version via dune rule 2019-12-13 08:12:35 +00:00
Sander Spies
6f9134834f Remove original Cameligo and rename Ligodity to Cameligo. 2019-12-12 14:35:07 +01:00
Lesenechal Remi
1842d50ef1 some Ast_simplified PP improvements 2019-12-12 12:15:18 +01:00
Lesenechal Remi
61fd91a0d4 optional init file 2019-12-12 12:15:18 +01:00
Lesenechal Remi
a80ffae897 add interpret command 2019-12-12 12:15:18 +01:00
Lesenechal Remi
c62f147a01 MR requests 2019-12-12 11:00:04 +01:00
Lesenechal Remi
df0dfb029b better error message when a contract in invalid 2019-12-11 20:02:54 +01:00
Lesenechal Remi
c0472629b9 application at ast_simplified level 2019-12-11 20:02:54 +01:00
Lesenechal Remi
ebd073f5e2 Separate aggregation case for contract and expression 2019-12-11 20:02:54 +01:00
Lesenechal Remi
9d83159e89 merge with dev 2019-12-10 16:01:26 +01:00
Lesenechal Remi
5ac25bfe21 easy to interpret expressions. evaluate-value does the job. CLI refactoring might be necessary 2019-12-10 15:58:53 +01:00
Lesenechal Remi
1c346ead28 remove useless code in test helper 2019-12-10 15:58:53 +01:00
Lesenechal Remi
16fc55482d Remove wrapper. Flatten everything for now.
Now have a run function for contracts and a run function for everything else.
Run function for contract is only used in CLI dry-run
2019-12-10 15:58:53 +01:00
Lesenechal Remi
bbf6b7b860 sséssaoupa? 2019-12-10 15:58:53 +01:00
Lesenechal Remi
974fa6432b Revert "unify a little more" 2019-12-10 15:58:53 +01:00
Lesenechal Remi
85cffdfc52 remove comented function 2019-12-10 15:58:53 +01:00
Lesenechal Remi
255b9a6e00 type compile_main function in contracts tests 2019-12-10 15:58:53 +01:00
Lesenechal Remi
6ed2f2b3ae unify a little more 2019-12-10 15:58:53 +01:00
Lesenechal Remi
26f26171e6 Tests clean 2019-12-10 15:58:53 +01:00
Lesenechal Remi
d1f6c37f62 CLI clean 2019-12-10 15:58:53 +01:00
Lesenechal Remi
46623ceb77 contract are now typecheck (at least in the CLI) 2019-12-10 15:58:53 +01:00
Lesenechal Remi
0cae4302cd WIP: introduce compiled_expression and unify dry-run and compile-contract 2019-12-10 15:58:53 +01:00
Lesenechal Remi
8edeb27321 add a function to fetch (param,storage) in a contract's lambda 2019-12-10 15:58:53 +01:00
Sander
95a7e19be6 Add ReasonLIGO support 2019-12-10 13:47:31 +00:00
Christian Rinderknecht
04a770e22d To enable local builds of the PascaLIGO parser. 2019-12-09 15:52:17 +00:00
John David Pressman
f043135df1 Add Michelson map membership to CameLIGO and PascaLIGO 2019-12-06 09:35:08 -08: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
John David Pressman
6a4d58d467 Overkill the tuple ordering bug 2019-12-03 11:10:53 -08:00
John David Pressman
085a756ed3 Fix bug where tuples are destructured with the members in the wrong order 2019-12-03 10:49:58 -08:00
John David Pressman
8609196bac Fix IMPLICIT_ACCOUNT 2019-12-03 00:00:01 -08:00
Tom Jack
317313ecc6 Rename executable to fix merlin confusion 2019-12-01 23:08:05 +00:00
John David Pressman
0b3e057819 Add self address to CameLIGO and PascaLIGO 2019-12-01 21:56:49 +00:00
John David Pressman
03dd86c9ad Expose address operator in PascaLIGO and CameLIGO 2019-12-01 21:56:49 +00:00
John David Pressman
694c3aea97 Add implicit_account to operators 2019-12-01 21:56:49 +00:00
Rémi Lesenechal
4be2d6fb6a Refactoring eval run functions 2019-11-29 21:22:56 +00:00
Tom Jack
a121766a89 Fix semantic merge conflict w/ expect tests 2019-11-29 10:00:58 -06:00
Gabriel Alfour
c1dac64af3 Merge branch 'feature/inlining2' into 'dev'
Substitution-based inlining

See merge request ligolang/ligo!227
2019-11-29 14:17:25 +00:00
Gabriel Alfour
bfb01d371a Merge branch 'feature/more-subtraction' into 'dev'
Type subtraction also as nat->int->int and int->nat->int

See merge request ligolang/ligo!228
2019-11-29 10:13:29 +00:00
Tom Jack
49586b65be Type subtraction also as nat->int->int and int->nat->int 2019-11-28 06:48:24 -06:00
Tom Jack
0040b1f460 Mention subcommand --help only once 2019-11-27 11:00:21 -06:00
Tom Jack
e3fbc58e7a Show help instead of "Do ligo --help" 2019-11-27 11:00:21 -06:00
Tom Jack
32625bb075 Use doc not docs in cli 2019-11-27 11:00:21 -06:00
Tom Jack
06603b594a Mini_c: Identify more pure constants 2019-11-27 09:06:36 -06:00
Tom Jack
66d2cda107 Mini_c: Inlining optimization 2019-11-27 09:06:31 -06:00
Lesenechal Remi
e7195c4c41 mutisig v2 some renaming and counter reset fix 2019-11-26 19:21:51 +01:00
Lesenechal Remi
39c7766b08 multisig v2 comments 2019-11-26 19:11:30 +01:00
Lesenechal Remi
cf540a1a78 multisigv2 default entry point 2019-11-26 19:11:30 +01:00
Lesenechal Remi
c8eb1a3fa6 multisigv2 with less user uncertainty 2019-11-26 19:11:30 +01:00
Lesenechal Remi
b82383751c multisigv2 more robust to spam
Set limits to the number of approvals and message sizes
2019-11-26 19:11:30 +01:00
Lesenechal Remi
652138b115 new 'expect' test helpers working on expressions 2019-11-26 19:11:30 +01:00
Lesenechal Remi
00def6d20e Fix a bug, test added:
A never accounted message was not adding anything to the map
2019-11-26 19:11:30 +01:00
Rémi Lesenechal
48bef70a6a Merge branch 'record-accesses-fix' into 'dev'
Broken nested access to record

See merge request ligolang/ligo!225
2019-11-26 18:09:06 +00:00
Lesenechal Remi
c1c551e33f fix and more tests 2019-11-26 18:08:53 +01:00
Lesenechal Remi
848b902cd9 generated variable name typo 2019-11-26 17:49:23 +01:00
Tom Jack
f7ef0472be Add command for measuring contracts 2019-11-25 17:36:22 -06:00
Tom Jack
c322ca53de Merge branch 'feature/cli-tests' into 'dev'
Add some cli expect tests

See merge request ligolang/ligo!215
2019-11-25 19:59:47 +00:00
Tom Jack
3323c7f7d2 Fix build: constrain dune version 2019-11-25 08:15:11 -06:00
Tom Jack
e16ddf7ddc Merge branch 'region-invalid' into 'dev'
Fix a Region.Invalid error in Cameligo simplifier

See merge request ligolang/ligo!214
2019-11-22 21:53:59 +00:00
Rémi Lesenechal
c7dfd54f7e Resolve "Error when dry-running a contract (having a storage which contains a lambda)" 2019-11-22 20:28:55 +00:00
Rémi Lesenechal
1219a0188c Merge branch 'contract-multisigv2' into 'dev'
Multisig v2

See merge request ligolang/ligo!218
2019-11-22 17:04:35 +00:00
Lesenechal Remi
6555c39c9d some review request 2019-11-22 17:15:49 +01:00
Lesenechal Remi
cd94fd850b move common funciton test helpers 2019-11-22 15:52:46 +01:00
Lesenechal Remi
30a410413a mulisig contract v2 and test 2019-11-22 15:41:30 +01:00
John David Pressman
0b50d94071 Add higher order function test to CameLIGO 2019-11-22 02:22:29 -08:00
Tom Jack
7f7d5972ac Fix a Region.Invalid error in Cameligo simplifier 2019-11-21 16:53:17 -06:00
Tom Jack
6f9778f578 Add some cli expect tests 2019-11-21 16:46:38 -06:00
Tom Jack
dbb36e6fdc Use runtest to run tests 2019-11-21 12:28:38 -06:00
Lesenechal Remi
17ecf12fa3 multisig : non quadratic signature check 2019-11-21 17:21:39 +01:00
Lesenechal Remi
88a0f33fca add key_hash type and crypto_key_hash operator to pascaligo 2019-11-21 17:21:39 +01:00
Lesenechal Remi
87d0064113 Multisig made robust to replay attack 2019-11-21 17:21:39 +01:00
Lesenechal Remi
1185b8abda add chain_id type and operator 2019-11-21 17:21:39 +01:00
Lesenechal Remi
4edf58726a multisig tests 2019-11-21 17:21:39 +01:00
Lesenechal Remi
beeba317d6 multisig contract 2019-11-21 17:19:11 +01:00
Lesenechal Remi
edb1e3d607 add crypto_check function to pascaligo 2019-11-21 17:19:11 +01:00
Lesenechal Remi
2fa78bd0bd add key and signature types 2019-11-21 17:19:11 +01:00
Tom Jack
5ab3bf85e9 Merge branch 'mystery-bigmap' into 'dev'
Fix/simplify big_maps using Babylon

See merge request ligolang/ligo!173
2019-11-21 15:04:37 +00:00
Tom Jack
81c49f4342 Fix/simplify big_maps using Babylon 2019-11-21 08:18:18 -06:00
John David Pressman
c2c774ba75 Add closure test to CameLIGO 2019-11-21 06:02:47 -08: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
Pierre-Emmanuel Wulfman
cdb36167f9 remove rope 2019-11-20 17:27:32 +01:00
John David Pressman
eb85595818 Add is_nat operator to CameLIGO 2019-11-20 12:48:55 +00:00
John David Pressman
598fbf96ed Add is_nat operator to PascaLIGO 2019-11-20 12:48:55 +00:00
John David Pressman
4270cc0d22 [LIGO-229] Change ordering of collection operation args 2019-11-20 12:16:31 +00:00
Tom Jack
e9319b518c Merge branch 'fix-dev' into 'dev'
Fix semantic merge conflict in test and parser

See merge request ligolang/ligo!205
2019-11-20 00:07:21 +00:00
Tom Jack
1a3909affd Fix semantic merge conflict in test and parser 2019-11-19 17:19:26 -06:00
Rémi Lesenechal
5aada38d5d Merge branch 'feature/tests-catch-failwith-and-pack' into 'dev'
Test framework catch failwith and pack

See merge request ligolang/ligo!203
2019-11-19 23:18:07 +00:00
Lesenechal Remi
725176a59d allow to pack message (aka lambda of type unit -> operation list) 2019-11-19 23:27:43 +01:00
Tom Jack
863dfbb39d Merge branch 'feature/get-entrypoint' into 'dev'
Add `get_entrypoint`...

See merge request ligolang/ligo!184
2019-11-19 22:27:12 +00:00
John David Pressman
9b0eb636fb Properly typed multi-variable binding simplification
Thanks for the help Sanders. :)
2019-11-19 21:13:52 +00:00
Lesenechal Remi
f7d6a5ea58 allow to catch failwith's in our tests 2019-11-19 15:38:23 +01:00
Rémi Lesenechal
f0655eab28 Pascaligo for collection loops: take locally declared variable into account 2019-11-19 13:25:48 +00:00
John David Pressman
bbcacc253b Merge branch 'feature/pascaligo-anon-functions' into 'dev'
Feature/pascaligo anon functions

See merge request ligolang/ligo!201
2019-11-19 08:33:54 +00:00
John David Pressman
e1a05a27c5 Remove vestigial commented-out code 2019-11-18 23:45:26 -08:00
Matej Sima
5ba34b3ac3 Updated docs with blockless & anonymous functions, added variable mutation disclaimer, updated landing page pascaligo example. 2019-11-19 01:44:36 +01:00
galfour
63822e0430 test anon function 2019-11-18 18:44:15 +01:00
Tom Jack
723201ce5e Add get_entrypoint... 2019-11-18 09:28:20 -06:00
galfour
ddc4b7b7a5 add anon functions; remove pre-block declarations; update tests 2019-11-18 16:10:48 +01:00
Lesenechal Remi
91e245ef70 Fix issue with nested collection loop where inner loop iterated elements were shadowing outer loop iterated element 2019-11-18 14:14:54 +01:00
galfour
5422049dba Merge branch 'dev' into feature/more-applications-pascaligo 2019-11-18 09:53:57 +01:00
Lesenechal Remi
e689d3d3b7 more doc 2019-11-15 20:05:35 +01:00
Lesenechal Remi
683bc0a72b fix problems with nested for collection loop 2019-11-15 20:05:35 +01:00
Tom Jack
a73ede31e7 Work around upstream in-place update 2019-11-15 10:02:22 -06:00
galfour
d0efbd9f92 add and test more ways to do function application in pascaligo 2019-11-14 20:13:15 +01:00
Tom Jack
5b60109606 Improve purity test for dead code elimination 2019-11-13 14:05:22 -06:00
John David Pressman
3675aed76d Merge branch 'dev' of ssh://gitlab.com/ligolang/ligo into feature/pascaligo-balance 2019-11-12 17:16:07 -08:00
Pierre-Emmanuel Wulfman
29a86ad411 Fix: deep access 2019-11-12 17:07:09 +00:00
John David Pressman
273ec8c280 Add ability to access balance to PascaLIGO 2019-11-12 08:01:18 -08:00
Pierre-Emmanuel Wulfman
f91de985d0 remove 'Access_Map' 2019-11-12 14:28:58 +00:00
Rémi Lesenechal
73919e3a5c Merge branch 'rinderknecht-dev' into 'dev'
Removing the type annotation for variables iterating over collections.

See merge request ligolang/ligo!178
2019-11-07 11:23:31 +00:00
Christian Rinderknecht
02f58ee212 I removed the annotation for the variable that iterates over collections.
for x in set s block { ... } // now
for x : t in set s block { ... } // before
2019-11-06 20:12:25 +01:00
John David Pressman
7c291158c2 Finish balance operator and add test for CameLIGO 2019-11-06 11:08:18 -08: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
0fdbbe0a4c Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-11-06 17:33:39 +01:00
Christian Rinderknecht
9da6d81a0f Added local test file. 2019-11-06 17:33:00 +01:00
Christian Rinderknecht
fe90246e3a Fixed the printing of some AST nodes. 2019-11-06 17:23:49 +01:00
Tom Jack
a69d084d0a Fix merge conflict 2019-11-06 07:35:15 -06: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
Pierre-Emmanuel Wulfman
e741531041 Merge branch 'clean-sts-solver' into 'dev'
New typer in a separate folder along with old typer

See merge request ligolang/ligo!166
2019-11-06 11:28:03 +00:00
Suzanne Dupéron
0b7a84e949 Fixed qwerty typo + small cleanup 2019-11-05 21:52:59 +00:00
Christian Rinderknecht
bd6ce2f28c Bug fix: Some nodes were not indented. 2019-11-05 15:57:43 +01:00
John David Pressman
2aeebb8726 Add bytes arithmetic tests to CameLIGO 2019-11-04 16:58:34 -08: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
John David Pressman
aec572fc20 [LIGO-168] Add the while loop to CameLIGO 2019-11-04 19:06:18 +00:00
Suzanne Dupéron
4325ba7ee4 Merge branch 'clean-sts-solver' of gitlab.com:ligolang/ligo into clean-sts-solver 2019-11-04 18:44:09 +00:00
Suzanne Dupéron
40b318eff6 Rename 4-typer to 4-typer-old (part 2: make changes) 2019-11-04 18:40:49 +00:00
Suzanne Dupéron
f41625ceb3 Rename 4-typer to 4-typer-old (part 1: move files) 2019-11-04 18:39:56 +00:00
galfour
9fe5d821c3 Merge branch 'dev' into clean-sts-solver 2019-11-04 16:32:32 +01:00
Tom Jack
c969f306af Eliminate dead lambdas 2019-11-02 18:43:46 -05:00
Tom Jack
e30b7faa9d Mini_c: Remove T_deep_closure and D_function 2019-11-02 18:43:46 -05:00
Tom Jack
cccbd424a8 Implement Mini_c.Free_variables 2019-11-02 18:43:46 -05:00
Tom Jack
ba7a83d0f7 Deal with upstream MBytes changes 2019-11-02 17:54:33 -05:00
Suzanne Dupéron
865cf80c77 Tests pass again, using the old typer 2019-11-01 09:48:09 -04:00
Suzanne Dupéron
45347e3e88 Bring back copy of the old typer (part 2: changes) 2019-10-31 18:19:01 -04:00
Suzanne Dupéron
d57a87a3ea Moving new typer to separate folder 2019-10-31 17:43:44 -04:00
Suzanne Dupéron
5c3e1ad642 Hack for E_constant with loops shouldn't be necessary in new typer, thanks to typeclasses? 2019-10-31 17:19:01 -04: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
Suzanne Dupéron
dce15a79c6 WIP on understanding where in the AST we need the subst. 2019-10-31 13:21:05 -04:00
Lesenechal Remi
b9d32ddf4e add bytes_pack 2019-10-31 17:39:07 +01:00
Rémi Lesenechal
0423a704ec Merge branch 'feature/signature_type' into 'dev'
add signature type

See merge request ligolang/ligo!164
2019-10-31 16:36:23 +00:00
Lesenechal Remi
f341527aa6 add signature type 2019-10-31 16:46:07 +01: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
Tom Jack
76ecd56e3d Merge branch 'feature/babylon-optimizer' into 'dev'
Update optimizer for Babylon

See merge request ligolang/ligo!158
2019-10-31 15:17:00 +00:00
Tom Jack
fd03d577e4 Support --michelson-format in all commands producing Michelson 2019-10-31 09:50:51 -05:00
Pierre-Emmanuel Wulfman
770bdda9df commenting a little bit the typesystem 2019-10-30 19:35:35 +01:00
Suzanne Dupéron
c0397f68a0 Wrap type names with a constructor Type_name, so that merlin does not think that all strings are type names 2019-10-30 12:50:19 -04:00
John David Pressman
750605cee4 Merge branch 'dev' of gitlab.com:ligolang/ligo into test/cameligo-test-parity 2019-10-29 22:06:42 -07:00
John David Pressman
27b7527f18 Add test for CameLIGO set fold 2019-10-29 21:33:48 -07:00
John David Pressman
85345387d0 Add tuple tests to CameLIGO 2019-10-29 20:55:36 -07:00
John David Pressman
2ff178543f Add more operations to CameLIGO set tests 2019-10-29 20:33:18 -07:00
Suzanne Dupéron
3f0b9346a5 More but not enough of the fold. Filled in holes with failwith, need to implement enough that it passes a test. 2019-10-29 20:14:42 -04:00
John David Pressman
c09116211f Merge branch 'feature/cameligo-negative-op' into 'dev'
[LIGO-172] Add negative operator to CameLIGO

See merge request ligolang/ligo!161
2019-10-29 18:12:17 +00:00
John David Pressman
f0f4c683f2 Add more complex negative operator test 2019-10-29 10:07:07 -07:00
John David Pressman
dce98c06ec Merge branch 'dev' of gitlab.com:ligolang/ligo into feature/cameligo-negative-op 2019-10-29 09:59:37 -07:00
John David Pressman
102ffda7c3 Make negative operator test pass 2019-10-29 09:28:20 -07:00
Lesenechal Remi
a140e12394 add test for nested for collection loops (not supported yet) 2019-10-29 16:32:28 +01:00
Lesenechal Remi
402d849cec use intermediary tuple access to get key and value for maps. add tests. 2019-10-29 15:43:00 +01:00
Lesenechal Remi
fd901548af add more tests 2019-10-29 11:57:15 +01:00
Lesenechal Remi
c288f3c81e simplify the simplifier and now find the free variables with a expression_fold 2019-10-29 11:56:21 +01:00
Lesenechal Remi
e86c92bc3b improving simplifier 2019-10-29 11:41:59 +01:00
Lesenechal Remi
ba00db2b4c add self_ast_simplified fold_expression 2019-10-29 10:43:38 +01:00
Suzanne Dupéron
735bd8e668 Implementing subst over the AST 2019-10-29 01:55:53 -04:00
John David Pressman
ec3f836605 Add test for several function parameters in CameLIGO 2019-10-28 22:07:00 -07:00
John David Pressman
c004fd24cd Add option and boolean match tests to CameLIGO 2019-10-28 22:01:31 -07:00
John David Pressman
f62481fb0a Add list match test to CameLIGO 2019-10-28 21:38:29 -07:00
Lesenechal Remi
e77f3e4903 empty for collection loop 2019-10-28 20:52:14 +01:00
Lesenechal Remi
37570c6a40 clean test 2019-10-28 20:52:14 +01:00
Lesenechal Remi
2ced2e784e add doc 2019-10-28 20:52:14 +01:00
Lesenechal Remi
e16eac77a6 fixes for loop on map.
Untested because of issue with deep tuple access (LIGO-131 LIGO-134)
An error message is in the simplifier
2019-10-28 20:52:14 +01:00
Lesenechal Remi
1a035f9713 tests for sets 2019-10-28 20:52:14 +01:00
Lesenechal Remi
b71309bfa2 proper error message for deep accesses in loops of collection body 2019-10-28 20:52:14 +01:00
Lesenechal Remi
c7056d200d merging with dev 2019-10-28 20:52:14 +01:00
Lesenechal Remi
5a77b08aa7 cleaning & documenting 2019-10-28 20:52:14 +01:00
Lesenechal Remi
7eed9b1856 test passing ! 2019-10-28 20:52:14 +01:00
Lesenechal Remi
a3deccf352 changing the name of the lambda to 'arguments' make its arguments available 2019-10-28 20:52:14 +01:00
Lesenechal Remi
164e88e818 remove shadowing of lambda name over the constant name 2019-10-28 20:52:14 +01:00
Lesenechal Remi
d651bfb3a3 remove misplaced 'skip' 2019-10-28 20:52:14 +01:00
Lesenechal Remi
0cf7471441 prepend the body of the lambda with let_in's 2019-10-28 20:52:14 +01:00
Lesenechal Remi
7f7f19854a WIP : make test a bit easier 2019-10-28 20:52:14 +01:00
Lesenechal Remi
91d92e048d special case for pascaligo generated LIST/SET/MAP_FOLD 2019-10-28 20:52:14 +01:00
Lesenechal Remi
70502f62cb fix the way lambda arguments are accessed 2019-10-28 20:52:14 +01:00
Lesenechal Remi
db79b6b9da select op_name from collection key word 2019-10-28 20:52:14 +01:00
Lesenechal Remi
79de96136d Collection for translation without type annotation on record 2019-10-28 20:52:14 +01:00
Lesenechal Remi
730c130fb3 merge step and down reemoval
WIP

WIP
2019-10-28 20:52:14 +01:00
Lesenechal Remi
536b5648c8 some cleaning 2019-10-28 20:52:14 +01:00
Lesenechal Remi
1d3d57c7c5 not complete for collect tryout 2019-10-28 20:52:14 +01:00
Lesenechal Remi
3058a57c62 cleaning and better tests 2019-10-28 20:52:14 +01:00
Lesenechal Remi
b7961fc8ec cleaning 2019-10-28 20:52:14 +01:00
Lesenechal Remi
d8e44476ba First version for ForInt loops 2019-10-28 20:52:14 +01:00
Christian Rinderknecht
2c4183f008 Merge branch 'feature/cameligo-bitwise-operators' into 'dev'
[LIGO-177] Add bitwise operators to CameLIGO

See merge request ligolang/ligo!160
2019-10-28 18:13:54 +00:00
John David Pressman
c7e4f3f651 Remove lxor, land, and lor from reserved words 2019-10-28 09:18:16 -07:00
Suzanne Dupéron
dcf5a975d4 More of subst 2019-10-28 01:10:26 -04:00
Suzanne Dupéron
174c028406 Fixing issues in the new typer 2019-10-27 23:24:21 -04:00
John David Pressman
cae0dfb1aa Change names to the standard library names for the functions in OCaml 2019-10-27 12:05:34 -07:00
Tom Jack
0191d8b0ed Replace "mtz" with "mutez" 2019-10-27 11:50:24 -05:00
Tom Jack
6956e8751d Add hex michelson output, use enums for format options 2019-10-26 12:57:22 -05:00
Tom Jack
076c245724 Merge branch 'get-contract-address' into 'dev'
Typecheck address argument to get_contract

See merge request ligolang/ligo!159
2019-10-26 13:33:23 +00:00
Suzanne Dupéron
1dc690bbba Bugfix: only one propagator was called. Now they are all (both of them so far) called in turn. 2019-10-25 22:30:20 -04:00
John David Pressman
b3993d0db9 Add failing negative operator 2019-10-25 17:24:12 -07:00
John David Pressman
8cfa583d55 Add more string tests to CameLIGO 2019-10-25 16:33:31 -07:00
John David Pressman
ea661247b6 Add bitwise operators to CameLIGO
Right now they're defined as '.bor' and '.band' because of a glitch
in CameLIGO's parser where 'X.Y' leads to a parse error if Y is a
keyword or reserved word in CameLIGO.
2019-10-25 16:12:54 -07:00
Rémi Lesenechal
5a5c3a8dd4 Merge branch 'feature/clean-big-map' into 'dev'
Feature/clean big map

See merge request ligolang/ligo!145
2019-10-25 21:30:09 +00:00
Tom Jack
ef05b47dc6 Typecheck address argument to get_contract 2019-10-25 11:27:55 -05:00
Tom Jack
afbf2ba2db Less stupid way to combine adjacent drops 2019-10-25 00:42:31 -05:00
Tom Jack
7c99affd4b Organize prims by their strangeness 2019-10-25 00:00:39 -05:00
Tom Jack
dae4f58297 Combine adjacent DROP 2019-10-24 23:58:21 -05:00
Tom Jack
9ae39bab97 Fix (latent?) Babylon bug in self_michelson pass 2019-10-24 23:58:15 -05:00
John David Pressman
0eb2b73afa Add CameLIGO test function utilizing multiple subroutines 2019-10-24 15:27:26 -07:00
John David Pressman
99dfd18dea Add explanatory comment to annotation.ligo 2019-10-24 14:44:07 -07:00
John David Pressman
790dc6c370 Merge branch 'test/cameligo-boolean-and' into test/cameligo-test-parity 2019-10-24 09:14:12 -07:00
John David Pressman
0bf37a2e21 Fix boolean tests for CameLIGO 2019-10-24 09:13:31 -07:00
Tom Jack
7958508e14 Merge branch 'feature/some-tests' into 'dev'
More tests and a few operations

See merge request ligolang/ligo!26
2019-10-24 13:03:39 +00:00
Christian Rinderknecht
c0f4aaf0c7 Fixed the regression on case clauses (blocks were removed). 2019-10-24 10:33:22 +02:00
Christian Rinderknecht
4a9150f560 WIP: Fixing a regression (blocks in case clauses as intructions). 2019-10-24 10:33:22 +02:00
John David Pressman
2aa201553c Add test for the if conditional in CameLIGO 2019-10-23 20:29:32 -07:00
John David Pressman
ddc5b8e36d Add failing boolean operator test 2019-10-23 18:29:49 -07:00
John David Pressman
2566ebc7d0 Add arithmetic tests for CameLIGO 2019-10-23 17:53:26 -07:00
Suzanne Dupéron
c4e996d5aa Fixed module issue, thanks Christian 2019-10-23 12:17:18 -04:00
Suzanne Dupéron
535c291b3f blabla 2019-10-23 10:45:48 -04:00
Suzanne Dupéron
10362426aa blabla 2019-10-23 10:41:36 -04:00
Tom Jack
e2ea89cf87 Move tests, remove operators 2019-10-23 09:38:45 -05:00
Christian Rinderknecht
4730df6ea1 Merge branch 'rinderknecht-dev' into 'dev'
Forbidding empty patches (records, maps, sets)

See merge request ligolang/ligo!148
2019-10-23 10:06:26 +00:00
John David Pressman
1f50cc8f57 Remove PascaLIGO set_size 2019-10-22 20:24:05 -07:00
John David Pressman
c4cc4fcba9 Add set size op for CameLIGO and PascaLIGO 2019-10-22 19:28:13 -07:00
Christian Rinderknecht
eae3348d51 I forbade empty patches (parser). Fixed AST pretty-printer (PascaLIGO).
Changed accordingly the simplifier: the dead code for the error about
empty record patches is no long.
2019-10-23 00:35:29 +02:00
Suzanne Dupéron
79967e9067 Hit a module problem in OCaml. 2019-10-22 08:50:21 -04:00
Lesenechal Remi
e6ee915f1e updating tests (we don't need the big_map to be in a pair anymore) 2019-10-22 12:23:48 +02:00
Lesenechal Remi
2a2c708b54 adding Big_map.* operators for cameligo 2019-10-22 12:23:48 +02:00
Lesenechal Remi
cefac0d8e7 add big_map injection 2019-10-22 12:23:48 +02:00
Lesenechal Remi
5d040220c0 WIP: add test 2019-10-22 12:23:48 +02:00
Lesenechal Remi
23993a4488 clean big_map tests 2019-10-22 12:23:48 +02:00
Christian Rinderknecht
9ad0859a4c Merge branch 'feature/pascaligo-remove-case-as-expression' into 'dev'
Feature/pascaligo add conditional as an expression

See merge request ligolang/ligo!144
2019-10-22 08:42:59 +00:00
Christian Rinderknecht
fa30b7d87d Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-10-22 10:38:32 +02:00
John David Pressman
48515b9f3b Add explanatory comment to string concatenation test 2019-10-21 16:40:40 -07:00
John David Pressman
8f799321d6 Add string concatenation support to CameLIGO 2019-10-21 15:46:26 -07:00
Christian Rinderknecht
312dc65950 Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-10-21 21:42:52 +02:00
John David Pressman
97f2a44a24 Merge branch 'feature/pascaligo-expr-fun' into 'dev'
[LIGO-150] Add blockless functions to PascaLIGO

See merge request ligolang/ligo!143
2019-10-20 08:46:15 +00:00
John David Pressman
09230df60a Remove kwd_expr 2019-10-19 10:55:39 -07:00
John David Pressman
daad15c57d Write blockless function test and make it pass 2019-10-19 10:46:24 -07:00
John David Pressman
ec67d37f20 Gabriel wants to see the code 2019-10-19 09:11:18 -07:00
John David Pressman
6e0173a9a7 Fix type error when where blockfun types eat regions 2019-10-18 17:46:20 -07:00
Lesenechal Remi
6b55bf3630 cleaning 2019-10-18 17:44:10 +02:00
Lesenechal Remi
85fe8d2018 using the proper entry point in the test.. 2019-10-18 17:44:10 +02:00
Lesenechal Remi
080b25a3bd WIP: add test. still have two ECond implementation, none of them pass the test 2019-10-18 17:44:10 +02:00
Christian Rinderknecht
d95f345dbf First attempt at adding conditionals as expressions.
Warning: The simplifier is not done yet.
2019-10-18 17:44:10 +02:00
Lesenechal Remi
bec3419936 cleaning 2019-10-18 14:47:04 +02:00
Lesenechal Remi
71548f8c7c using the proper entry point in the test.. 2019-10-18 14:42:36 +02:00
Lesenechal Remi
b721a19b00 WIP: add test. still have two ECond implementation, none of them pass the test 2019-10-18 14:32:58 +02:00
Christian Rinderknecht
704c744ace First attempt at adding conditionals as expressions.
Warning: The simplifier is not done yet.
2019-10-18 13:52:26 +02:00
Gabriel Alfour
62e6b1d469 Merge branch 'feature/babylon' into 'dev'
upgrade to babylon

See merge request ligolang/ligo!141
2019-10-18 07:56:36 +00:00
John David Pressman
2bffba379d Remove anonymous records 2019-10-17 22:34:38 -07:00
John David Pressman
35a59a0867 Add parser tokens, guru meditation on why the AST types don't work 2019-10-17 21:33:45 -07:00
John David Pressman
8997155a57 Rough draft of single-expr function syntax 2019-10-17 20:50:41 -07:00
Christian Rinderknecht
e53d4035d0 Removed corner case that could not be triggered in PascaLIGO simplifier. 2019-10-17 18:46:40 +02:00
Christian Rinderknecht
36d9858e97 Removed sub-blocks from PascaLIGO. 2019-10-17 18:33:58 +02:00
Lesenechal Remi
b60ce38b68 commenting back 2019-10-17 17:33:43 +02:00
Lesenechal Remi
c9bcfc3ab0 higher order function test, pass two closure one calling the other as function arg 2019-10-17 17:33:29 +02:00
Lesenechal Remi
9f0b61659e we don't need to check for closures in function arguments 2019-10-17 17:18:10 +02: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
81ab0267f5 cleanup 2019-10-16 22:19:32 -04:00
Christian Rinderknecht
00016d09bb I removed the definition of procedures.
Note: This immediately removes some unsupported cases of the
simplifier, pertaining to the definition of procedures.
2019-10-16 15:39:08 +02:00
Christian Rinderknecht
1299ecac6b Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-10-16 12:00:40 +02:00
Christian Rinderknecht
157e24ff08 Fixed documentation.
There was an error in the syntax of tuple projection (no parentheses
are needed, in fact).

Another issue was a wrong Markdown layout for lists (my fault).
2019-10-16 11:50:31 +02:00
Christian Rinderknecht
15937a2459 Bug fixing in the AST pretty-printer and new syntax for iterators.
I added a type annotation for the variable iterating a
collection, which is also now marked as "map", "set" or "list".

I fixed and refactored the pretty-printer for the AST.
2019-10-16 01:11:54 +02:00
Christian Rinderknecht
27564426da Bug fixes and finished AST pretty-printer.
ParserLog: Finished the AST pretty-printer.
ParserMain: The CLI "ast" is now "ast-tokens" and the new "ast"
calls the AST pretty-printer.
Bug: Added nat literals as patterns.
AST: Removed unary constructor TupleInj.
Parser and simplifier:
  - The rule "cartesian" is now properly stratified.
  - Parenthesised expressions now correctly create EPar nodes.
2019-10-15 21:03:46 +02:00
John David Pressman
b80f16eb34 Merge branch 'feature/pascaligo-set-deep-rm' into 'dev'
[LIGO-139] Add deep set removal to PascaLIGO

See merge request ligolang/ligo!136
2019-10-15 14:47:17 +00:00
John David Pressman
6f5e88c93c Make failing deep set removal test pass 2019-10-14 18:59:16 -05:00
John David Pressman
0b8c0dad3f Add failing deep set removal test to contracts 2019-10-14 18:58:42 -05:00
John David Pressman
8a9a72b673 Merge branch 'dev' of gitlab.com:ligolang/ligo into gardening/code-comments 2019-10-14 16:31:57 -07:00
Tom Jack
ed69c858a8 Use right folds 2019-10-14 14:05:35 -05:00
John David Pressman
c4babe60d8 Merge branch 'dev' of gitlab.com:ligolang/ligo into feature/pascaligo-map-patch 2019-10-14 11:34:26 -07:00
John David Pressman
93b5a068b5 Add deep map patch test 2019-10-14 10:19:18 -07:00
Christian Rinderknecht
89971f31d0 Forgot to commit the change in the simplifier. 2019-10-13 20:15:50 +02:00
Christian Rinderknecht
f634d36b76 Refactorings for PascaLIGO.
- I aligned the names of the tokens in common with Ligodity.
  - I removed the "down" and "step" clauses in loops.
  - Note: the stratification of the rule "pattern" in the
    previous commit has the pleasant effect to remove a call
    to "corner_case" in function "simpl_case" of the
    file "2-simplify/pascaligo.ml".
  - Added more cases to the pretty-printer of the AST.
2019-10-13 19:51:01 +02:00
Christian Rinderknecht
f795f1216a Bug fixing in the lexers and the parser. Started AST pretty-printer.
LexToken, AST: Tiny refactoring.

Bug: Added the making of the AST node PBytes.

Parser: The rule "pattern" was not properly stratified (the
constructor "PCons" was always produced, even when no consing was
done (now a fall-through to "core_pattern").

Bug: When sharing the lexers between Ligodity and Pascaligo, a
regression was introduced with the lexing of symbols. Indeed,
symbols specific to Ligodity (like "<>") and
Pascaligo (like "=/=") were scanned, but the
function "LexToken.mk_sym" for each only accepted their own,
yielding to an assertion to be invalidated. Fix: I created an
error "sym_err" now to gracefully handle that situation and
provide a hint to the programmer (to wit, to check the LIGO
syntax in use).

WIP: Started to write pretty-printing functions for the nodes of
the AST.

CLI: The option "--verbose=ast" now calls that function instead
of printing the tokens from the AST. When the pretty-printer is
finished, the option for printing the tokens will likely
be "--verbose=ast-tokens".
2019-10-12 23:42:26 +02:00
Christian Rinderknecht
d7baebdb2f Merge branch 'feature/pascaligo-set-patch' into 'dev'
[LIGO-127] Add set patch functionality to PascaLIGO

See merge request ligolang/ligo!127
2019-10-12 20:35:14 +00:00
John David Pressman
b304772928 Change set patch to use left fold 2019-10-12 12:38:05 -07:00
John David Pressman
5070ded5b9 Add complex path traversal to map patch 2019-10-11 17:26:28 -07:00
John David Pressman
3d053cd073 Refactor map patch so that it uses fewer assignments 2019-10-11 15:44:16 -07:00
Suzanne Dupéron
38f9b0ba0b tests build (but fail when running, as expected) 2019-10-11 17:22:43 -04:00
Suzanne Dupéron
3bbb8bfd8b Fixed merge issues with new merge of dev 2019-10-11 17:01:28 -04:00
Suzanne Dupéron
5a58559edc Merge remote-tracking branch 'origin/dev' into HEAD 2019-10-11 16:59:45 -04:00
Tom Jack
c2a3fd473c Fix test 2019-10-11 15:27:41 -05:00
Tom Jack
b64f82dff7 Add failing test 2019-10-11 15:24:46 -05:00
John David Pressman
62377135c4 Add empty map patch test 2019-10-11 13:23:29 -07:00
Tom Jack
c5361c57d4 Simplify a bit 2019-10-11 15:10:11 -05:00
Tom Jack
e672d10029 Expose tez mod tez, too 2019-10-11 14:54:22 -05:00
John David Pressman
d947f3b462 Change set patch to chain calls and only use one assignment 2019-10-11 12:38:00 -07:00
Tom Jack
d87d0aab73 Expose tez/tez division 2019-10-11 14:35:23 -05:00
Suzanne Dupéron
9e2c057edb dune build passes, but not dune build @ligo-test. Threaded the typechecker's state in a bunch of places where it's likely not needed, because I don't know which parts are entrypoints and which parts are intermediate functions, and the role of the state between program fragments is not yet 100% clear to me. 2019-10-11 15:21:28 -04:00
John David Pressman
58b8e537e4 Merge branch 'dev' of gitlab.com:ligolang/ligo into feature/pascaligo-set-patch 2019-10-11 09:02:45 -07:00
Tom Jack
f06161ea42 Merge branch 'feature/dry-run-sender-source' into 'dev'
Accept fake values for SENDER/SOURCE in dry-run

See merge request ligolang/ligo!130
2019-10-11 15:09:16 +00:00
Suzanne Dupéron
1356159281 WIP on integrating typer with the bin / CLI, fixed last API change 2019-10-11 04:08:12 -04:00
John David Pressman
49ffe00466 Remove unsupported_map_patch error in PascaLIGO simplifier 2019-10-10 18:35:39 -07:00
John David Pressman
c181ec1cac Upload rough draft of map patch functionality with test
Right now I'm concerned that the way this generates the code is inefficient, in particular this line:

`in ok @@ (access_path, key', value', loc)`

Since the comments [on my code for the set patch](https://gitlab.com/ligolang/ligo/merge_requests/127)
warned that repeated generation of the access path is a bad idea(?). In any case this does work, so
it's something I can improve on.
2019-10-10 18:26:28 -07:00
John David Pressman
0de17f4b57 Add empty set patches, add test for empty set patches 2019-10-10 13:35:38 -07:00
Suzanne Dupéron
2a39aa2949 Revert "Builds (commented out a few issues, just to check that there are no compilation errors left)"
This reverts commit 581babb459.
2019-10-10 03:55:15 -04:00
Suzanne Dupéron
581babb459 Builds (commented out a few issues, just to check that there are no compilation errors left) 2019-10-10 03:55:08 -04:00
Suzanne Dupéron
acfbd7eb15 Nearly builds, only one small API change and integration errors left 2019-10-10 03:52:43 -04:00
John David Pressman
c82076281f Add test for set patch functionality
Resolves LIGO-127
2019-10-09 23:13:25 -07:00
Suzanne Dupéron
4fa54dd2c1 More progress on merging new typer and new dev 2019-10-10 01:23:55 -04:00
John David Pressman
2f60c85aa8 Add rough draft of set patch functionality 2019-10-09 17:08:58 -07:00
Rémi Lesenechal
dfe6f144bb Merge branch 'feature/unsupported-deep-map-ops' into 'dev'
fix unsupported deep_map assignements and remove. add tests

See merge request ligolang/ligo!125
2019-10-09 19:57:17 +00:00
Tom Jack
e8afba9581 Accept fake values for SENDER/SOURCE in dry-run 2019-10-09 12:08:02 -05:00
Christian Rinderknecht
cbaac2d124 Merge branch 'rinderknecht-dev' into 'dev'
Printing of tokens from the AST is now done in a Buffer.t

See merge request ligolang/ligo!128
2019-10-09 16:18:04 +00: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
Lesenechal Remi
8c29dc6df3 cleaning (using name return by simpl_path which is equivalent) 2019-10-09 11:54:48 +02:00
Lesenechal Remi
54662db2f6 use simpl_projection to build accessor 2019-10-09 11:54:48 +02:00
Lesenechal Remi
d59cd771c9 fix unsupported deep_map assignements and remove. add tests 2019-10-09 11:54:48 +02:00
Suzanne Dupéron
5de98259dc Trying to merge new typer and new dev 2019-10-09 00:51:29 -04:00
Suzanne Dupéron
a0461d0622 Renamed 2019-10-08 18:46:55 -04:00
John David Pressman
f990dc8a0f Merge branch 'dev' of gitlab.com:ligolang/ligo into gardening/code-comments 2019-10-08 13:46:25 -07:00
Sander
8dfb2a967f Merge branch 'feature/pascaligo-remove-simplify' into 'dev'
Add test for PascaLIGO remove syntax which appears to work

See merge request ligolang/ligo!126
2019-10-08 19:35:09 +00:00
John David Pressman
88de350264 Add test for PascaLIGO remove syntax which appears to work 2019-10-08 11:54:49 -07:00
Christian Rinderknecht
a4ad62ad16 Merge branch 'rinderknecht-dev' into 'dev'
Made  big_map a keyword, like map.

See merge request ligolang/ligo!124
2019-10-08 11:37:31 +00:00
Christian Rinderknecht
1362fbae9e Made big_map a keyword, like map. 2019-10-08 12:24:56 +02:00
John David Pressman
7cf75c54c8 Untested rough draft of pascaligo set removal 2019-10-07 21:41:36 -07:00
Tom Jack
4a5e41faa4 Resolve mli merge conflict 2019-10-07 13:56:48 -05:00
Christian Rinderknecht
6f414a8ad2 Merge branch 'feature/unsupported_ass_None' into 'dev'
Feature/unsupported_ass_none

See merge request ligolang/ligo!118
2019-10-07 16:31:19 +00:00
Christian Rinderknecht
9c1be8f3a3 Merge branch 'feature/unsupported-string-catenation' into 'dev'
feature/unsupported_string_catenation

See merge request ligolang/ligo!120
2019-10-07 16:30:39 +00:00
Christian Rinderknecht
76b4fa3f47 Merge branch 'rinderknecht-dev' into 'dev'
Gardening for Ligodity and update of the documentation of PascaLIGO.

See merge request ligolang/ligo!119
2019-10-07 15:44:36 +00:00
Lesenechal Remi
44767c4b8e Simplifier now emit CONCAT constant 2019-10-07 17:16:03 +02:00
Tom Jack
36ec771adf Remove singleton inductive type 2019-10-07 16:54:28 +02:00
Tom Jack
e2c831a231 Simplify more 2019-10-07 16:54:28 +02:00
Tom Jack
1c2c6cbc43 Delete unused NoneExpr 2019-10-07 16:54:28 +02:00
Tom Jack
3a14ef26ef Simplify? 2019-10-07 16:54:28 +02:00
Lesenechal Remi
3a3cfa341a cleaning 2019-10-07 16:54:28 +02:00
Lesenechal Remi
08a3e08f57 add a new T_constant in ast_simplified and ast_typed 2019-10-07 16:54:28 +02:00
Lesenechal Remi
1401d03d62 Parser patch from Christian 2019-10-07 16:54:28 +02:00
Christian Rinderknecht
ff9584c7b7 Gardening. 2019-10-07 16:37:33 +02:00
Pierre-Emmanuel Wulfman
59cb210b83 Interface for Ocaml code 2019-10-07 14:18:32 +00:00
John David Pressman
0207d1f88f Add .mli for SAST pretty printer with minimal comments 2019-10-04 15:33:50 -07:00
Georges Dupéron
0e5c9802ec More tests with lambdas 2019-10-04 16:47:01 -04:00
Georges Dupéron
606f7ca907 More tests, integration of some of the operators 2019-10-04 16:47:01 -04:00
Georges Dupéron
8c37fe355d test: contract for mligo version of the example on the website 2019-10-04 16:33:59 -04:00
John David Pressman
fcfbbcb9c1 Delete dead code and add .mli docs to simplify/pascaligo.ml 2019-10-03 15:32:16 -07:00
John David Pressman
c2489fd310 ocamldoc-ify Markup.mli 2019-10-03 14:07:12 -07:00
John David Pressman
30d25ee247 Convert top comment in LexToken.mli to ocamldoc comment 2019-10-03 13:59:53 -07:00
John David Pressman
211d5ea37f Add explanation of AST relationship to Parser.mly to AST.mli 2019-10-03 13:42:33 -07:00
John David Pressman
51e6c441f2 Add documentation for pascaligo parser interface as .mli 2019-10-03 13:32:43 -07:00
John David Pressman
e3c581ff02 Fix typo in transpiler.ml explanation 2019-10-03 11:47:09 -07:00
John David Pressman
b02c241a01 Add short explanation to transpiler.ml 2019-10-03 11:37:07 -07:00
Lesenechal Remi
c1845c2bfe Only look at arg.type_value instead of arg.content 2019-10-03 18:35:11 +02:00
Lesenechal Remi
4e333836cb ignore closure error in subexpression of argument 2019-10-03 15:36:06 +02:00
Lesenechal Remi
962a98da75 emmit a t_function when no variables are captured 2019-10-03 10:21:09 +02:00
Lesenechal Remi
6fbe43d28a Check for closure when applying a function and update tests 2019-10-02 18:31:15 +02:00
Lesenechal Remi
a7565145d5 add map_expression function in self_mini_c pass helpers 2019-10-02 18:31:15 +02:00
Lesenechal Remi
ae882c39ef Variable name gardening 2019-10-02 18:31:15 +02:00
Lesenechal Remi
2840eb7414 Treat env element expression as deep_closure only if they are lambda 2019-10-02 18:31:15 +02:00
Sander Spies
ccfe58efb8 Fix lexer 2019-10-01 07:51:10 +02:00
Georges Dupéron
c1ca3184af WIP: fixing the build errors 2019-09-29 18:28:19 -04:00
Georges Dupéron
2b5b23f266 WIP: fixing the build errors + missing non-merged code 2019-09-29 18:25:02 -04:00
galfour
81569b9c54 add subst 2019-09-29 18:52:38 +02:00
Georges Dupéron
74a09c5ba6 WIP: cleaning up some TODOs 2019-09-29 00:06:28 +01:00
Georges Dupéron
4dbd2d5873 revert indentation change 2019-09-29 00:05:54 +01:00
Georges Dupéron
fc80c627fd WIP : instantiation of foralls in some cases 2019-09-28 20:26:02 +01:00
Pierre-Emmanuel Wulfman
271a524920 WIP; commenting 2019-09-28 20:10:30 +01:00
Pierre-Emmanuel Wulfman
e4e77da97c add change for typer.ml 2019-09-28 01:56:09 +02:00
Rémi Lesenechal
6850d21650 Feature/ligo 100 map tests 2019-09-27 15:52:40 +00:00
Christian Rinderknecht
889a4d643d Forgot to fully resolved conflict due to removal of keyword fail. 2019-09-27 17:08:07 +02:00
Christian Rinderknecht
8257c5e6fe Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-09-27 17:07:36 +02:00
Sander
5bcf3cae6e Refactor Ligodity parser to use shared parser. 2019-09-27 13:33:25 +00:00
Pierre-Emmanuel Wulfman
f657c71753 Merge done and repo build with no error 2019-09-27 14:55:09 +02:00
Christian Rinderknecht
81868ca3b2 Merge branch 'rinderknecht-dev' of gitlab.com:ligolang/ligo into rinderknecht-dev 2019-09-27 14:36:59 +02:00
Christian Rinderknecht
814a37b477 Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-09-27 14:35:47 +02:00
Christian Rinderknecht
e5e9fb8e2f Merge branch 'dev' into 'rinderknecht-dev'
# Conflicts:
#   src/passes/1-parser/pascaligo/AST.ml
#   src/passes/1-parser/pascaligo/AST.mli
#   src/passes/1-parser/pascaligo/ParToken.mly
2019-09-27 11:47:59 +00:00
Christian Rinderknecht
fa4a7cecdf Removed entrypoint. Added back missing error message (string cat). 2019-09-27 13:44:29 +02:00
Gabriel Alfour
0c6f233507 Merge branch 'feature/auto-field-annotations' into 'dev'
Generate field annotations for sum/record

See merge request ligolang/ligo!78
2019-09-27 07:34:51 +00:00
Gabriel Alfour
ebf699cde7 Merge branch 'feature/failwith-typed' into 'dev'
Feature/failwith typed

See merge request ligolang/ligo!98
2019-09-26 20:25:46 +00:00
Tom Jack
6fc1b6430b Add a little bit of tez tests, fix cameligo lexer bug 2019-09-26 13:31:37 -05:00
galfour
7974469159 remove fail 2019-09-26 19:30:17 +02:00
galfour
ef2f6060d5 deprecate fail 2019-09-26 19:13:25 +02:00
galfour
08809f8a5d type failwith 2019-09-26 19:01:07 +02:00
galfour
e0e5228254 failwith test 2019-09-26 18:47:46 +02:00
galfour
c4a4942b09 minor merge 2019-09-26 11:39:35 -05:00
Tom Jack
09496ce4ca Generate field annotations for sum/record 2019-09-26 11:39:35 -05:00
Tom Jack
be201a5109 Lose another opam battle 2019-09-26 10:59:18 -05:00
Christian Rinderknecht
68ff421b7d Merge remote-tracking branch 'origin/dev' into rinderknecht-dev 2019-09-26 17:11:08 +02:00
Christian Rinderknecht
ca1471612f Merge branch 'pascaligo-tests' into 'dev'
Add Pascaligo tests for not kwd, (commented out) procedure and for loop

See merge request ligolang/ligo!95
2019-09-26 15:09:37 +00:00
Christian Rinderknecht
10469818c1 Removed entrypoint and storage as keywords.
Bug fix: `n-1` was scanned as `n` and `-1`, which was rejected by
a style constraint.

I removed useless style constraints in the lexer.

I removed dead code in `pascaligo.ml`.

I added my first draft for the reference manual of PascaLIGO: DO
NOT EDIT. Edit the website instead.

About the bug fix: This was an awkward attempt at rejecting at
lexing time negative integer literals whose sign is separated
from the digits, like `- 1`. The fix was simple: remove the
`integer` regular expression and use `natural`.
2019-09-26 16:35:16 +02:00
Tom Jack
389cbdbded Hotfix: display errors, fix mystery fail 2019-09-26 06:01:09 -05:00
Tom Jack
8a96e38f04 More failure tests, fix mligo assert 2019-09-25 20:15:21 -05:00
Tom Jack
a521c01115 some michelson optimizations 2019-09-25 20:15:19 -05:00
Tom Jack
a2240e0649 Merge branch 'feature/stderr' into 'dev'
Print errors to stderr, exit 1

See merge request ligolang/ligo!66
2019-09-26 00:56:55 +00:00
Tom Jack
8a04ee8097 Fix bug for compile-parameter and compile-storage 2019-09-25 13:40:32 -05:00
galfour
be75fd4830 fixed minor bug 2019-09-25 17:21:44 +02:00
galfour
87bbdad553 fix stuff 2019-09-25 10:49:14 +02:00
John David Pressman
9bb0d3aa9f Disable tests for procedures and for loops, which are unsupported 2019-09-24 16:20:52 -07:00
John David Pressman
ada8a2b703 Add (commented out) for loop test & working procedure test
Also clean up typo in unsupported for loop error message
2019-09-24 15:47:04 -07:00
John David Pressman
a8def8c269 Add test for boolean not 2019-09-24 12:18:07 -07:00
galfour
e6ac10f0ce switch from tz to mtz 2019-09-24 14:29:18 +02:00
galfour
f72593ae85 add set literals 2019-09-24 14:00:43 +02:00
galfour
b6ee28d704 add map literals in cameligo 2019-09-24 13:54:34 +02:00
galfour
ac449d2cb3 test List.iter and List.map in cameligo 2019-09-24 10:54:14 +02:00
galfour
9c3c40c9ef add set fold 2019-09-24 00:26:39 +02:00
galfour
c4752c5935 add map fold 2019-09-23 23:46:47 +02:00
galfour
b41b676eb8 add list fold 2019-09-23 23:33:25 +02:00
Tom Jack
c07f0633cd Print errors to stderr, exit 1 2019-09-23 09:54:53 -07:00
galfour
fed4891840 Merge branch 'dev' into refactor/everything 2019-09-23 16:40:51 +02:00
galfour
96fd0b4660 yay 2019-09-22 23:39:52 +02:00
galfour
37836f9512 adding option 2019-09-22 22:44:50 +02:00
galfour
720ef99c69 solve conflict 2019-09-22 22:17:28 +02:00
John David Pressman
0cfb40f54d Add purpose comments to some test contracts
Add comments explaining what a contract is/does/tests to the top of several PascaLIGO test contracts, as part of evaluating what parts of the syntax are and aren't currently tested.
2019-09-21 14:59:48 -07:00
galfour
9fb65e71e8 more lists 2019-09-21 11:30:41 +02:00
galfour
ad79188c4f add list pattern matching 2019-09-21 09:12:00 +02:00
Lesenechal Remi
8978c5c4d7 Print expresion in error message to ease further debugging 2019-09-20 21:33:14 +02:00
Lesenechal Remi
ea6f51bd55 CLI checked, compile-storage and dry-run
Add a '--bigmap' option to the CLI. This way all the maps in the AST are transformed to bigmaps
2019-09-20 21:33:14 +02:00
Lesenechal Remi
b653996aae Big_map support
Add big_map case in the uncompiler which takes the original big_map and apply the returned diff

Add input_to_value option which compiles input expressions to mini_c.values
2019-09-20 21:33:14 +02:00
Lesenechal Remi
304184bcd3 Bla 2019-09-20 21:33:14 +02:00
Lesenechal Remi
c7cfce2bf7 Remove merge comments 2019-09-20 21:33:14 +02:00
Lesenechal Remi
e5b4d37af8 add E_big_map case in Ast 2019-09-20 21:33:14 +02:00
Lesenechal Remi
a9f7bb39e4 add tests for big_map 2019-09-20 21:33:14 +02:00
Lesenechal Remi
1c281ac079 merge operations syntax for map with big_map 2019-09-20 21:33:14 +02:00
Lesenechal Remi
e930dc00c4 some check on starage for big_map 2019-09-20 21:33:14 +02:00
Lesenechal Remi
25e3ab8e5d big map can be looked up 2019-09-20 21:33:14 +02:00
Lesenechal Remi
4fec6f1624 naively connects big_map to the transpiler 2019-09-20 21:33:14 +02:00
galfour
dc9294bbcc add options in cameligo 2019-09-20 20:38:04 +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