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