LIGO Changelog
Release 0.63.0 and 0.63.1 don't exist. Use 0.63.2 directly
next
Run this release with Docker:
docker run ligolang/ligo:next
Breaking :
- Entrypoints
parameter_of
: new keyword for obtaining contract's (from module) parameter (!2476 by er433)
Added :
- Enable attributes after keyword "export" for declarations (!2489 by rinderkn)
- Disable declaration-shadowing warning on transpiled JsLIGO contracts (!2460 by nicolas.van.phan)
Fixed :
- Add support for attributes before
namespace
in jsligo parser (!2487 by melwyn95) - Resolve "Ligo 0.59.0+ breaks MR 2048 (Make [@annot:] mean no annotation)." (!2475 by lesenechal.remi)
Details :
[breaking] Entrypoints parameter_of
: new keyword for obtaining contract's (from module) parameter
A new keyword is introduced: parameter_of
. It can be used to obtain the type of a contract (from a module/namespace):
As in the case of contract_of
, now parameter_of
becomes reserved. To still use parameter_of
as an identifier, @
can be prepended.
[added] Enable attributes after keyword "export" for declarations
Attributes are now allowed after the keyword "export" on declarations.
[added] Disable declaration-shadowing warning on transpiled JsLIGO contracts
For a JsLIGO contracts with re-declared variables, like the following, with x
re-declared :
Compilation will throw the following error :
Compilation using the --transpiled
flag will disable the warning.
Before
After
[fixed] Add support for attributes before namespace
in jsligo parser
For a jsligo file
Before
After
[fixed] Resolve "Ligo 0.59.0+ breaks MR 2048 (Make [@annot:] mean no annotation)."
No details provided for this change. Please visit the MR to learn more
0.63.2
Run this release with Docker:
docker run ligolang/ligo:0.63.2
Breaking :
- deprecation of mutate_ast (!2455 by lesenechal.remi)
Added :
- Stdlib: filter_map function for Set (!2463 by er433)
- Add CLi option for PascaLIGO to JsLIGO syntax-level transpilation (!2453 by nicolas.van.phan)
- Stdlib: list updating functions (!2451 by er433)
- Transpilation: add ad-hoc typers for map/big_map operations (!2431 by er433)
Fixed :
- [#1718][JsLIGO]: Fix automatic semicolon insertion for if-else statements (!2472 by melwyn95)
- Errors: improve comparable error by showing the context type (!2454 by er433)
- Fix: better error managing when entrypoint is not annotated (!2452 by er433)
- Fixed a transpilation error (!2440 by rinderkn)
Details :
[breaking] deprecation of mutate_ast
No details provided for this change. Please visit the MR to learn more
[added] Stdlib: filter_map function for Set
New function in module Set
: val filter_map : ('a -> b option) -> 'a set -> 'b set
.
[added] Add CLi option for PascaLIGO to JsLIGO syntax-level transpilation
No details provided for this change. Please visit the MR to learn more
[added] Stdlib: list updating functions
New functions in stdlib's List
module:
val filter_map : ('a -> 'b option) -> 'a list -> 'b list``val update : ('a -> 'a option) -> 'a list -> 'a list``val update_with : ('a -> 'a option) -> 'a -> 'a list -> 'a list
[added] Transpilation: add ad-hoc typers for map/big_map operations
No details provided for this change. Please visit the MR to learn more
[fixed][#1718][JsLIGO]: Fix automatic semicolon insertion for if-else statements
For a JsLIGO file like
Before
After
[fixed] Errors: improve comparable error by showing the context type
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: better error managing when entrypoint is not annotated
No details provided for this change. Please visit the MR to learn more
[fixed] Fixed a transpilation error
No details provided for this change. Please visit the MR to learn more
0.62.0
Run this release with Docker:
docker run ligolang/ligo:0.62.0
Breaking :
- Attribute for entries (!2379 by er433)
Added :
- Ligo is distributed through AUR for Arch linux (!2410 by Laucans)
- [#1658] Support getting configuration from VSCode (!2406 by heitor.toledo)
- [#1655] Fix and enable LSP formatting (!2404 by Sorokin-Anton)
- CLI: new
-m
parameter for module selection (!2386 by er433)
Fixed :
- Fix bugs in
ligo publish
(!2423 by melwyn95) - Use js_of_ocaml's --enable=effects flag to fix stackoverflows (!2417 by prometheansacrifice)
- Adds a js_of_ocaml setup with Dune and a PoC IDE to demo the bundle (!2381 by prometheansacrifice)
- Make linearity checking apply inside modules (!2314 by er433)
Internal :
- Prepare transpilation of PascaLIGO to JsLIGO (!2333 by rinderkn)
Details :
[breaking] Attribute for entries
New attribute @entry
allows to define entries for a module/namespace, or from the top-level of a file.
For example, the file contract.jsligo
can be compiled directly:
Moreover, when using the testing framework, a contract_of
keyword can be used to originate a module as a contract with the help of the new function Test.originate_module
:
Breaking changes
Notice that this feature is breaking as contract_of
becomes a keyword, rending invalid contracts that use this name as a variable. In this case, the fix is simple, and just amounts to change the name of the variable, or use @contract_of
:
After modifying contract.jsligo
with @contract_of
:
This MR also modifies the parameters for the sub-command evaluate-call
(-e
is not used anymore to signal the function to compile).
[added] Ligo is distributed through AUR for Arch linux
You can now install ligo through AUR
or
[added][#1658] Support getting configuration from VSCode
Add support for decoding "maximum number of problems" and "verbosity" from the VS Code configuration.
[added][#1655] Fix and enable LSP formatting
Added support for document formatting request to ligo lsp
.
[added] CLI: new -m
parameter for module selection
A new argument is available when compiling a contract: -m
, which allows to select a module path where the entrypoint (and views) is located.
Example file increment.jsligo
Compilation using -m
[fixed] Fix bugs in ligo publish
For a LIGO package with name @ligo/fa
Before
After
[fixed] Use js_of_ocaml's --enable=effects flag to fix stackoverflows
Fixes stackoverflows during Lexing in the browser
[fixed] Adds a js_of_ocaml setup with Dune and a PoC IDE to demo the bundle
No details provided for this change. Please visit the MR to learn more
[fixed] Make linearity checking apply inside modules
No details provided for this change. Please visit the MR to learn more
[internal] Prepare transpilation of PascaLIGO to JsLIGO
No details provided for this change. Please visit the MR to learn more
0.61.0
Run this release with Docker:
docker run ligolang/ligo:0.61.0
Breaking :
- [JsLIGO] Update syntax for generic functions (!2315 by melwyn95)
- Deprecation of PascaLIGO (!2271 by rinderkn)
- JsLIGO: abstractor generate curried definitions (!2241 by er433)
Added :
- [Chore] Add a changelog documenting the initial write of the LSP (!2393 by heitor.toledo)
- [#1648] Implement folding range for the LSP (!2371 by heitor.toledo)
- [#1653] Implement document link request, add
get_cst
function (!2358 by Sorokin-Anton) - Extend JsLIGO nested update syntax (!2331 by nicolas.van.phan)
- [#1645]Hover upgrade (!2326 by XJIE6)
- [#1652] Implement prepare rename request (!2317 by heitor.toledo)
- Draft: Enable shorter JsLIGO syntax for nested record updates (!2309 by nicolas.van.phan)
- Stdlib: add
is_none
,is_some
,value
andvalue_exn
in moduleOption
(!2300 by er433) - Small syntactic fixes to JsLIGO grammar to get closer to TS (!2272 by rinderkn)
- Support for compiling non-tail recursive functions (!2232 by er433)
Fixed :
- [#1683] Handle
Is a directory
error (!2377 by XJIE6) - Fix condition for disabling colors in CLI output (!2361 by nicolas.van.phan)
- Fix: unused variables pass not taking into account
E_mod_in
(!2342 by melwyn95) - Refactor
Layout
andRow
to use rose trees (!2341 by lesenechal.remi) - [CameLIGO] Fix type variable binding in expressions (!2330 by melwyn95)
- [#1666] Extract warnings from scopes (!2329 by heitor.toledo)
- Fix: JsLigo attributes not propagated in the pipeline (!2304 by melwyn95)
- JsLIGO: add support for module access in type application (!2299 by er433)
- fixing
ligo info list-declarations
(!2297 by lesenechal.remi) - CameLIGO: use
params
field when abstracting local types (!2289 by er433) - Testing framework: make
run test --display-format json
output the same JSON asTest.to_json
(!2287 by er433) - Fix: Missing definitions from imported modules in
get-scope
(!2253 by melwyn95)
Details :
[breaking][JsLIGO] Update syntax for generic functions
In JsLIGO, the syntax for defining generic functions was misleading.
This MR fixes this issue by adding the syntatic contruct to bind type variables in function expressions.
Before
Before the type variables were bound in the LHS type annotation in the type expression.
After
After this change type variables can be bound in function expression like above.
[breaking] Deprecation of PascaLIGO
Deprecation of PascaLIGO.
[breaking] JsLIGO: abstractor generate curried definitions
Previously, multiparameter functions in JsLIGO were compiled to a function taking a tuple of parameters.
After this MR, multiparameter functions in JsLIGO are compiled to curried functions.
Contracts do still require taking a tuple (parameter, storage)
(as in Michelson). However, LIGO will transform curried contracts to its uncurried form when using compile contract
. The same is true for views, taking still tuples (argument, storage)
, but curried views will be uncurried automatically as well.
New functions are introduced at top-level:
val curry : ('a -> 'b -> 'c) -> ('a * 'b -> 'c)``val uncurry : ('a * 'b -> 'c) -> 'a -> 'b -> 'c
For testing, Test.originate
will take an curried contract of the form parameter -> storage -> operation list * storage
. The old (uncurried) alternative is still available as Test.originate_uncurried
.
[added][Chore] Add a changelog documenting the initial write of the LSP
Add a new subcommand (ligo lsp
) whose purpose is to allow LSP clients (Visual Studio Code, Emacs, Vim, etc) to communicate with the new LIGO Language Server, which is being rewritten in OCaml. This command is not meant to be launched manually by users, but rather by editors. The rewrite was officially made in !2303.
The initial release supports diagnostics (errors only), go to definition, hover, rename (only in open files), references (only in open files), and type definition.
As the rewrite is new, it does not yet support feature parity with the old language server, and bugs are to be expected.
Other LSP features (hover, folding range, document link, warnings for diagnostics, prepare rename) have since been implemented in other merge requests.
Official support for the Vim, Emacs, and Visual Studio Code plugins will come soon, as well as the VS Code plugin release on the Marketplace and OpenVSX.
[added][#1648] Implement folding range for the LSP
Folding ranges allow the language server client to collapse or expand regions of code. Although some clients like Visual Studio Code can try to automatically deduce ranges based on regions, others like Emacs or Vim might not, so we implement the folding range requests from LSP in ligo lsp
.
[added][#1653] Implement document link request, add get_cst
function
Added support for document link
request to ligo lsp
[added] Extend JsLIGO nested update syntax
For a contract with nested record update using the new syntaxes, like below.
Before
After
[added][#1645]Hover upgrade
Improves behavior of LSP requests in case of modules. Adds syntax highlighting to hover
request. Adds support for hover
over modules
[added][#1652] Implement prepare rename request
Implements the prepare rename request from the LSP specification. It checks the validity of a rename so that users won't get a prompt for renaming lexemes such as a keyword (like let
) or a built-in identifier (like int
).
[added] Draft: Enable shorter JsLIGO syntax for nested record updates
For a contract with the new syntax for record update
Before
After
[added] Stdlib: add is_none
, is_some
, value
and value_exn
in module Option
New functions available in module Option
:
val is_none : 'a option -> bool
: returns a boolean signaling if the value is None
.val is_some : 'a option -> bool
: returns a boolean signaling if the value is a Some
.val value : 'a -> 'a option -> 'a
: returns the value if the second argument is wrapped in the Some
constructor, or returns the first argument if it is None
.val value_exn : 'e -> 'a option -> 'a
: returns the value if the second argument is wrapped in the Some
constructor, or fails with the first value if it is None
.
Example
j
evaluates to 42
, while k
evaluates to 1
.
[added] Small syntactic fixes to JsLIGO grammar to get closer to TS
Semicolons can now be used in describing objects (records), as well as commas. Discriminated unions can now have a leading vertical bar.
For a contract like
Before
After
[added] Support for compiling non-tail recursive functions
Now non-tail-recursive functions can be compiled. E.g.
[fixed][#1683] Handle Is a directory
error
No details provided for this change. Please visit the MR to learn more
[fixed] Fix condition for disabling colors in CLI output
Using flag --no-color in CI can be ignored if variable TERM is not set. Here a fix to make --no-color flag valid even if TERM is not defined.
[fixed] Fix: unused variables pass not taking into account E_mod_in
For a contract like
Before
After
[fixed] Refactor Layout
and Row
to use rose trees
Fix problem regarding unification of layout in record/sum types.
[fixed][CameLIGO] Fix type variable binding in expressions
For a cameligo file like
Before
After
[fixed][#1666] Extract warnings from scopes
For the LIGO LSP, only errors were being displayed and warnings were skipped. Users will now be able to see warnings as well as errors.
[fixed] Fix: JsLigo attributes not propagated in the pipeline
For a contract like
Before
After
[fixed] JsLIGO: add support for module access in type application
No details provided for this change. Please visit the MR to learn more
[fixed] fixing ligo info list-declarations
Fixing ligo info list-declarations
for JsLIGO entrypoints
[fixed] CameLIGO: use params
field when abstracting local types
No details provided for this change. Please visit the MR to learn more
[fixed] Testing framework: make run test --display-format json
output the same JSON as Test.to_json
The output given by run test --display-format json
is an array containing the name of the test entrypoint, followed by its value as a JSON (same format as Test.to_json
, see API reference for further documentation on it). E.g.
[fixed] Fix: Missing definitions from imported modules in get-scope
For ligo files with #import
ed modues
Before
After
0.60.0
Run this release with Docker:
docker run ligolang/ligo:0.60.0
Breaking :
- Remove remainder of ReasonLIGO (except debugger) (!2244 by SanderSpies)
- improve Jsligo proper return handling (!2229 by SanderSpies)
Added :
- Relax view restrictions under arrow types (!2252 by tomjack)
- add publication to AUR into release process (!2251 by Laucans)
ligo init
templates & libraries from LIGO registry (!2249 by melwyn95)- Error checking for closure capturing big maps/operation/contract (!2231 by er433)
- Implement
String.concats
andBytes.concats
in stdlib (!2228 by er433)
Fixed :
- Resolve "Wrong references in
ligo info get-scope
" (!2261 by melwyn95) - 🐛 Fix: Layout Unification (!2259 by alistair.obrien)
- Add missing cases/fix wrong cases in tail recursiveness check (!2256 by er433)
- Improve error message when compiling functions which capture meta-LIGO types (!2220 by er433)
Details :
[breaking] Remove remainder of ReasonLIGO (except debugger)
Remove remainder of ReasonLIGO from compiler, editor tooling, website, fuzzer, LSP, etc. But not the debugger.
[breaking] improve Jsligo proper return handling
Improve the return handling in JsLIGO
[added] Relax view restrictions under arrow types
Allow forbidden types in views when they occur under lambda/arrow types.
[added] add publication to AUR into release process
Ligo can be installed on archlinux through the Arch linux User repository. The artifact name is ligo-bin (https://aur.archlinux.org/packages/ligo-bin)
[added] ligo init
templates & libraries from LIGO registry
New Feature
Before
After
[added] Error checking for closure capturing big maps/operation/contract
Before fix
After fix
[added] Implement String.concats
and Bytes.concats
in stdlib
New functions have been implemented for concatenating lists of strings and bytes:
String.concats : string list -> string``Bytes.concats : bytes list -> bytes
[fixed] Resolve "Wrong references in ligo info get-scope
"
For a ligo program like
Before
After
[fixed] 🐛 Fix: Layout Unification
🐛 fix: layout unification.
[fixed] Add missing cases/fix wrong cases in tail recursiveness check
Example file
Before fix
After fix
[fixed] Improve error message when compiling functions which capture meta-LIGO types
Example file
Before fix
After fix
0.59.0
Run this release with Docker:
docker run ligolang/ligo:0.59.0
Breaking :
- Remove ReasonLIGO tests and remove ReasonLIGO from CLI. (!2234 by SanderSpies)
- Remove ReasonLIGO documentation. (!2225 by SanderSpies)
Added :
- Extended the syntax of attributes (!2222 by rinderkn)
Details :
[breaking] Remove ReasonLIGO tests and remove ReasonLIGO from CLI.
Remove ReasonLIGO tests and remove ReasonLIGO from CLI.
[breaking] Remove ReasonLIGO documentation.
No details provided for this change. Please visit the MR to learn more
[added] Extended the syntax of attributes
No details provided for this change. Please visit the MR to learn more
0.58.0
Run this release with Docker:
docker run ligolang/ligo:0.58.0
Breaking :
- Set
current
protocol to Lima (!2223 by er433)
Added :
- [Package Management] Resolve
main
file when only the package name is provided in#import
/#include
(!2224 by melwyn95) - [PyLIGO] Standalone preprocessor, lexer and parser (!2210 by rinderkn)
- Build ligo on Macos(intel), Linux and Windows and bundle into NPM tarball (!2200 by prometheansacrifice)
- CLI: add a
run test-expr
to run expressions in test framework without need of a file (!2195 by er433) - Miscellaneous improvements for ligo-debugger-vscode (!2114 by tomjack)
Fixed :
- Testing framework: issue with long tuples in matching (!2227 by er433)
- 🐛 Fix: Type Variable Shadowing Error (!2221 by alistair.obrien)
- Fix
unresolved
types inget-scope
(!2219 by melwyn95) - Add
--project-root
for missing commands (!2212 by melwyn95) - JsLIGO: improve semicolon handling for #1511 (!2209 by SanderSpies)
- Resolve "Internal error:
ligo compile storage
" (!2205 by er433) - Improve monomorphisation error message (!2204 by er433)
- Fix missing semicolon before comments in jsligo (!2158 by melwyn95)
Details :
[breaking] Set current
protocol to Lima
By default, Lima protocol is used as current. This affects compilation of certain primitives (such as Tezos.create_ticket
and contracts using chest
, see changelog for Lima protocol introduction for more information).
Kathmandu can still be used passing the flag --protocol kathmandu
.
[added][Package Management] Resolve main
file when only the package name is provided in #import
/#include
For a file like
Before change
After change
[added][PyLIGO] Standalone preprocessor, lexer and parser
No details provided for this change. Please visit the MR to learn more
[added] Build ligo on Macos(intel), Linux and Windows and bundle into NPM tarball
Users can now install LIGO via NPM. npm i -g ligolang
will install the Ligo compiler on Windows, Linux and MacOS (intel).
https://www.npmjs.com/package/ligolang
Also adds a GUI installer for Windows. Can be downloaded from here
[added] CLI: add a run test-expr
to run expressions in test framework without need of a file
New sub-command can evaluate expressions directly in the testing framework:
[added] Miscellaneous improvements for ligo-debugger-vscode
Miscellaneous improvements for ligo-debugger-vscode
[fixed] Testing framework: issue with long tuples in matching
Example file
Before fix
After fix
[fixed] 🐛 Fix: Type Variable Shadowing Error
Fixed type variable shadowing issues.
[fixed] Fix unresolved
types in get-scope
For a file like
Before fix
After fix
[fixed] Add --project-root
for missing commands
Before:
After
[fixed] JsLIGO: improve semicolon handling for #1511
Improve semicolon insertion after rbrace '}'.
[fixed] Resolve "Internal error: ligo compile storage
"
Example file
Before fix
After fix
[fixed] Improve monomorphisation error message
Example file
After fix
[fixed] Fix missing semicolon before comments in jsligo
Improves the semi-colon insertion for jsligo
Example file
Before Fix
After Fix
0.57.0
Run this release with Docker:
docker run ligolang/ligo:0.57.0
Added :
- Deliver beta for native Windows installation (!2198 by prometheansacrifice)
- [Package Management] Improvements to
ligo publish
(!2080 by melwyn95)
Fixed :
- Fix
scopes
for local types (!2197 by melwyn95) - Update the templates list for
ligo init
& Imporve the error message (!2194 by melwyn95) - Fix
ligo login
when user is logged in and tries to login again with a different user (!2193 by melwyn95) - Fix compilation for negative integers (!2192 by melwyn95)
- Internal: remove cons_types from ppx (!2191 by er433)
- Location Improvements (!2190 by alistair.obrien)
- Testing framework: fix sorting on decompilation/compilation of maps/sets (!2188 by er433)
- Fix: Top-level recursive functions for cameligo (!2186 by melwyn95)
- Fix: check allowed chars in entrypoints (!2182 by er433)
- Resolve "Internal error: tried to substitute for mutated var" (!2180 by er433)
- testing framework: fixing decompile_value (!2173 by lesenechal.remi)
- Testing framework: make
Run
usedecompile_value
(typed) (!2166 by er433) - Add support for patterns in top-level declarations (!2038 by lesenechal.remi & melwyn95)
Details :
[added] Deliver beta for native Windows installation
The documentation to install ligo on windows is available here : https://ligolang.org/docs/next/intro/installation?lang=jsligo.
You can install it through NPM or through windows installer.
[added][Package Management] Improvements to ligo publish
Adds Support --dry-run
flag to ligo publish
Better CLI report for ligo publish
Add validation before publishing packagesAdd support for .ligoignore
file & Improve support for .ligorc
file
change in CLI report:
[fixed] Fix scopes
for local types
In the above example the local type toto
was missing in the scopes for body of foo
and titi
[fixed] Update the templates list for ligo init
& Imporve the error message
New templates via ligo init & Improved error messages for invalid template
Before:
After:
[fixed] Fix ligo login
when user is logged in and tries to login again with a different user
Before:
After:
[fixed] Fix compilation for negative integers
Improves the Michelson compilation for negative integers, removes the unnecessary NEG
instruction in the case of negative integers
Before:
After
[fixed] Internal: remove cons_types from ppx
No details provided for this change. Please visit the MR to learn more
[fixed] Location Improvements
Location tracking improvements within the compiler
[fixed] Testing framework: fix sorting on decompilation/compilation of maps/sets
Example file
Before
After
[fixed] Fix: Top-level recursive functions for cameligo
Fixes top-level recursive functions of the form let rec x = fun y -> ...
[fixed] Fix: check allowed chars in entrypoints
Example file
Before
After
[fixed] Resolve "Internal error: tried to substitute for mutated var"
Example file
Before
After
[fixed] testing framework: fixing decompile_value
Fix a bug where functional value couldn't be decompiled in the testing framework
[fixed] Testing framework: make Run
use decompile_value
(typed)
Example file
Before
After
[fixed] Add support for patterns in top-level declarations
Fix a bug where top-level let destructuring were causing code to be executed multiple time, as in:
Fix a bug where type parameters were not found (https://gitlab.com/ligolang/ligo/-/issues/1482)proxy_tickets
code has been changed (see https://ligolang.org/docs/advanced/testing/#transfers-and-originations-with-tickets)
0.56.0
Run this release with Docker:
docker run ligolang/ligo:0.56.0
Added :
- Goodbye
gen
👋 (!2153 by alistair.obrien) - Testing framework: add
Test.get_time
to discover current time (!2138 by er433) - Testing framework: extend comparison (!2123 by er433)
- Diff of types in typer error messages (!2116 by nicolas.van.phan)
Fixed :
- Add support for
chain_id
literal in Testing Framework (!2157 by melwyn95) - Fix: replace
build_info
with protocol version forligo version
(!2151 by er433) - fix byte extract (!2150 by lesenechal.remi)
- Testing framework: fix mutation in Michelson inlines (!2147 by er433)
- Fix: Send
dependencies
&devDependencies
while publishing a package (!2145 by melwyn95) - Fix location for error message for PascaLIGO (!2144 by melwyn95)
- Monomorphisation: add a better error message (!2142 by er433)
- Fix: Package resolution from Docker containers (!2137 by melwyn95)
- Add check for non-comparable types under
set
andticket
(!2136 by er433) - Bugfix : Resolving module aliasing for nested modules (!2129 by pewulfman)
Performance :
- Internal: in
tezos-ligo
, lazifysapling_storage.ml
'sdefault_root
(!2162 by er433) - Optimizations on mutable variables (!2099 by lesenechal.remi)
Details :
[added] Goodbye gen
👋
Improve pretty-printing of types in errors by removing occurrences of gen#...
variables.
[added] Testing framework: add Test.get_time
to discover current time
New function in Test
module:
It returns the current timestamp in the context of tests (similar to Tezos.get_now
in contracts).
[added] Testing framework: extend comparison
The comparison functions (<
, <=
, etc.) now can work with variant types.
Example
Given the file test_compare.mligo
:
Before this change
After this change
[added] Diff of types in typer error messages
Feature description
The typer error message Cannot unify X with Y
is now augmented with a diff between X
and Y
when those are tuples.
For example, here is a before/after of the error message for the following code :
Before
After
[fixed] Add support for chain_id
literal in Testing Framework
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: replace build_info
with protocol version for ligo version
Before
After
[fixed] fix byte extract
fix a bug where bytes literals extraction was not working happening in JsLIGO
[fixed] Testing framework: fix mutation in Michelson inlines
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: Send dependencies
& devDependencies
while publishing a package
Fixes bug in publising packages which have dependencies
& devDependencies
.
[fixed] Fix location for error message for PascaLIGO
Before change
After change
[fixed] Monomorphisation: add a better error message
Before change
After change
[fixed] Fix: Package resolution from Docker containers
Fixes package resolution for LIGO when used via Docker container.
[fixed] Add check for non-comparable types under set
and ticket
Before change
After change
[fixed] Bugfix : Resolving module aliasing for nested modules
[performance] Internal: in tezos-ligo
, lazify sapling_storage.ml
's default_root
No details provided for this change. Please visit the MR to learn more
[performance] Optimizations on mutable variables
Apply michelson optimizations on mutable variables
0.55.0
Run this release with Docker:
docker run ligolang/ligo:0.55.0
Breaking :
- Protocol update: Lima (!2094 by er433)
Fixed :
- Fix: Detect cycles in
#include
paths and give proper error message (!2128 by melwyn95) - Fix
#include
for jsligo due to missing case in ASI (!2122 by melwyn95) - fixing E_for_each ctxt threading (!2121 by lesenechal.remi)
- Testing framework: subtraction of timestamps (!2120 by er433)
SLICE
instruction in testing framework's interpreter (!2107 by er433)NOT
instruction in testing framework's interpreter (!2106 by er433)- Layout Unification (!2070 by alistair.obrien)
Details :
[breaking] Protocol update: Lima
Updated to Lima protocol for Michelson type-checking and testing framework. Main breaking changes are:
- Deprecation of
chest
andTezos.open_chest
. - Change in
Tezos.create_ticket
to prevent the creation of zero valued tickets. Support for Jakarta has been removed. By default, we compile to Kathmandu. Type-checking for contracts use Kathmandu/Lima depending on--protocol
passed, but for the rest of commands, protocol Lima is used (particularly, testing framework).
Example of Tezos.create_ticket
change
Usage for protocol Kathmandu:
Usage for protocol Lima:
[fixed] Fix: Detect cycles in #include
paths and give proper error message
Before:
After
[fixed] Fix #include
for jsligo due to missing case in ASI
Fixes bug in #includ
ing jsligo files when semicolon is missing the last declaration of included file
Before:
After:
[fixed] fixing E_for_each ctxt threading
Fix a bug where the typing of one for-loop could invalidate the typing of the next one
[fixed] Testing framework: subtraction of timestamps
No details provided for this change. Please visit the MR to learn more
[fixed] SLICE
instruction in testing framework's interpreter
No details provided for this change. Please visit the MR to learn more
[fixed] NOT
instruction in testing framework's interpreter
No details provided for this change. Please visit the MR to learn more
[fixed] Layout Unification
Add layout unification to LIGO's type checker, which fixes existing flaws in the propagation of layout annotations.
0.54.1
Run this release with Docker:
docker run ligolang/ligo:0.54.1
Fixed :
- [JsLIGO] Attributes can now occur before keyword "export". (!2102 by rinderkn)
- fixing timestamp decompilation (!2100 by lesenechal.remi)
- Do check removal of emit/entrypoint for expressions (!2098 by er433)
- Use projections instead of matching in uncurried stdlib (!2097 by er433)
Details :
[fixed][JsLIGO] Attributes can now occur before keyword "export".
No details provided for this change. Please visit the MR to learn more
[fixed] fixing timestamp decompilation
fixed decompilation of timestamp in LIGO test
[fixed] Do check removal of emit/entrypoint for expressions
No details provided for this change. Please visit the MR to learn more
[fixed] Use projections instead of matching in uncurried stdlib
No details provided for this change. Please visit the MR to learn more
0.54.0
Run this release with Docker:
docker run ligolang/ligo:0.54.0
Breaking :
- Make [@annot:] mean no annot (!2048 by tomjack)
Added :
- Testing framework: add option to remove default printing (!2075 by er433)
Fixed :
- Fixed the tokenisation of linemarkers (!2092 by rinderkn)
- [Package Management]: Fix bug in dependency resolution in ModRes (!2088 by melwyn95)
- Load stdlib modules in list-declarations (!2071 by er433)
Internal :
- Clean up: Record pattern Containers (!2074 by melwyn95)
- Update tezos-ligo to v15.0-rc1 (!2072 by er433)
- Frontend Pruning (!2067 by alistair.obrien)
- Michelson embedding with support of types and annotations (!2066 by er433)
- Testing framework: compile values directly (!2053 by er433)
- Ligo daemon: output
x00
null char on stdout & stderr (!2049 by melwyn95) - Fix bug in JSON printer for errors (!1916 by melwyn95)
Details :
[breaking] Make [@annot:] mean no annot
An empty annot attribute ([@annot:]
) on record fields and variant cases now means that there will be no annot at all. Previously, it was ignored, and the field/case name would be used as usual.
[added] Testing framework: add option to remove default printing
Testing framework: allow disabling of default printing.
By default, LIGO's testing framework will print the values prefixed with test
. Now it is possible to disable this output by using Test.unset_print_values : unit -> unit
. It can be turned on again using Test.set_print_values : unit -> unit
. The values prefixed with test
will be printed or not at the end of execution, depending on which of these commands was executed last.
[fixed] Fixed the tokenisation of linemarkers
Fixed the tokenisation of linemarkers
[fixed][Package Management]: Fix bug in dependency resolution in ModRes
Fixes bug in resolution of external packages
[fixed] Load stdlib modules in list-declarations
No details provided for this change. Please visit the MR to learn more
[internal] Clean up: Record pattern Containers
No details provided for this change. Please visit the MR to learn more
[internal] Update tezos-ligo to v15.0-rc1
No details provided for this change. Please visit the MR to learn more
[internal] Frontend Pruning
Remove dead passes and code from the frontend
[internal] Michelson embedding with support of types and annotations
No details provided for this change. Please visit the MR to learn more
[internal] Testing framework: compile values directly
No details provided for this change. Please visit the MR to learn more
[internal] Ligo daemon: output x00
null char on stdout & stderr
No details provided for this change. Please visit the MR to learn more
[internal] Fix bug in JSON printer for errors
No details provided for this change. Please visit the MR to learn more
0.53.0
Run this release with Docker:
docker run ligolang/ligo:0.53.0
Added :
- Cameligo punning (!2057 by SanderSpies)
- Testing framework: add
assert
alternatives in theTest
module (!2054 by er433) - Testing framework: add support for
chain_id
values (!2033 by er433) - Escaped identifiers example (!2028 by SanderSpies)
Fixed :
- Remove calling preprocessor with
ligo print pretty
. (!2059 by rinderkn) - Fix linearity check for patterns (!2056 by melwyn95)
- Assignment chaining (!2046 by SanderSpies)
- Revert InfraBot change for
tezos-ligo
version (!2032 by alistair.obrien) - Mutable Let (!2001 by alistair.obrien)
Changed :
- Pattern Inference (!2040 by alistair.obrien)
- CLI: upload more meta data points to registry: main and repository (!2024 by prometheansacrifice)
- Jsligo improve semicolon insertion (!2016 by SanderSpies)
Internal :
- Refactor: fix type of Pattern.t (!2063 by melwyn95)
- Upgrade Core to v0.15.0 (!2061 by ulrikstrid)
- Punning left over (!2060 by SanderSpies)
- Refactor: move pattern matching compilation to ast-aggregated (!2052 by melwyn95)
- JsLIGO: Pass ES6FUN token also when a syntax error occurs in the PreParser (!2051 by SanderSpies)
- Reintroduce operators for testing framework (!2047 by er433)
- add make install (!2042 by pewulfman)
- Refactor: record patterns now hold labels & patterns in a map (!2041 by melwyn95)
- Refactoring of the front-end (last iteration) (!2031 by rinderkn)
Details :
[added] Cameligo punning
CameLIGO: add punning support for records.
[added] Testing framework: add assert
alternatives in the Test
module
New asserting primitives in the Test
module
[added] Testing framework: add support for chain_id
values
Added support for chain_id
in the testing framework, now it can run Tezos.get_chain_id ()
successfully.
[added] Escaped identifiers example
Add an example of escaped identifiers.
[fixed] Remove calling preprocessor with ligo print pretty
.
No details provided for this change. Please visit the MR to learn more
[fixed] Fix linearity check for patterns
Fix the check to detect duplicate bindinds in a pattern
[fixed] Assignment chaining
Fix for JsLIGO assignment chaining when tuples are used (see also: #1462)
[fixed] Revert InfraBot change for tezos-ligo
version
No details provided for this change. Please visit the MR to learn more
[fixed] Mutable Let
Fix/improve LIGO's implementation of mutable features
[changed] Pattern Inference
Add pattern inference
[changed] CLI: upload more meta data points to registry: main and repository
No details provided for this change. Please visit the MR to learn more
[changed] Jsligo improve semicolon insertion
No details provided for this change. Please visit the MR to learn more
[internal] Refactor: fix type of Pattern.t
No details provided for this change. Please visit the MR to learn more
[internal] Upgrade Core to v0.15.0
Updated Core to the latest release
[internal] Punning left over
No details provided for this change. Please visit the MR to learn more
[internal] Refactor: move pattern matching compilation to ast-aggregated
No details provided for this change. Please visit the MR to learn more
[internal] JsLIGO: Pass ES6FUN token also when a syntax error occurs in the PreParser
JsLIGO: Pass ES6FUN token also when a syntax error occurs in the PreParser
[internal] Reintroduce operators for testing framework
No details provided for this change. Please visit the MR to learn more
[internal] add make install
No details provided for this change. Please visit the MR to learn more
[internal] Refactor: record patterns now hold labels & patterns in a map
No details provided for this change. Please visit the MR to learn more
[internal] Refactoring of the front-end (last iteration)
Fixed some bugs with the preprocessor and lexer.
0.52.0
Run this release with Docker:
docker run ligolang/ligo:0.52.0
Added :
- Jsligo unreachable code (!2017 by SanderSpies)
- JsLIGO: add ternary support . (!1993 by SanderSpies)
- Adds a package wrapped in esy (!1974 by ulrikstrid)
- Jsligo discriminatory union (!1973 by SanderSpies)
- Add raw bytes literal from string (!1852 by tomjack & er433)
Fixed :
- fix: contract not compiling in presence of meta-ligo terms (!2010 by lesenechal.remi)
- Testing framework: fixing decompilation of event payloads (!2005 by lesenechal.remi)
- Testing framework: untranspilable ticket in bigmap update (!1996 by lesenechal.remi & er433)
- Allow return in switch case. (!1995 by SanderSpies)
- bugfix/module attribute deletion in aggregation (!1978 by pewulfman)
Changed :
- Improve JsLIGO docs (!2026 by SanderSpies)
- Match list no annotation (!2014 by SanderSpies)
- Jsligo destructure function params (!2011 by SanderSpies)
- JsLIGO Object destructuring in parameters (!2002 by SanderSpies)
- JsLIGO: improve
if .. else
handling + allow "_" as arrow function argument. (!1991 by SanderSpies)
Internal :
- Expect tests: cleanup (!2021 by lesenechal.remi)
- Jsligo support
Foo.bar<int>
syntax (!2018 by SanderSpies) - Keep
(context, expression)
inAst_aggregated
for test purging (!2015 by er433) - Import module syntax (!2009 by SanderSpies)
- Remove unused
C_ASSERT_INFERRED
(!2007 by er433) - Add
.ocamlformat
Configurations (!2003 by alistair.obrien) - JsLIGO: allow more in ternary expression (!1997 by SanderSpies)
- Jsligo single arg (!1992 by SanderSpies)
- Testing framework: add int64 support (!1829 by er433)
- Remove reserved names pass (!1712 by er433)
Details :
[added] Jsligo unreachable code
Give a warning when there's unreachable code in JsLIGO.
[added] JsLIGO: add ternary support .
- JsLIGO: add ternary support
[added] Adds a package wrapped in esy
nix improvements
Add package that provides ligo
with with esy
.
Usage: nix run gitlab:ligolang/ligo#withEsy -- install
[added] Jsligo discriminatory union
JsLIGO: Add support for discriminatory unions.
[added] Add raw bytes literal from string
Raw bytes representation from string
Raw bytes can be expressed directly from a string using [%bytes "..."]
. E.g., [%bytes "foo"]
represents bytes 0x666f6f
.
[fixed] fix: contract not compiling in presence of meta-ligo terms
- fix a regression where contract could not compile in presence of meta-ligo expressions (automatically remove such expressions)
[fixed] Testing framework: fixing decompilation of event payloads
Testing framework: fixing decompilation of event payloads
[fixed] Testing framework: untranspilable ticket in bigmap update
- Testing framework: fix a bug where a ticket in a big_map was not transpilable
[fixed] Allow return in switch case.
Return in switch case now works properly.
[fixed] bugfix/module attribute deletion in aggregation
No details provided for this change. Please visit the MR to learn more
[changed] Improve JsLIGO docs
Reduce number of type annotations in JsLIGO examples in the documentation.
[changed] Match list no annotation
Remove the need for type annotations when using the match function over lists.
[changed] Jsligo destructure function params
JsLIGO: Tuple destructuring in parameters.
[changed] JsLIGO Object destructuring in parameters
Add support to destructure objects in function parameters.
[changed] JsLIGO: improve if .. else
handling + allow "_" as arrow function argument.
Semicolon before else now allowed. Underscore is now allowed as arrow function argument.
[internal] Expect tests: cleanup
No details provided for this change. Please visit the MR to learn more
[internal] Jsligo support Foo.bar<int>
syntax
No details provided for this change. Please visit the MR to learn more
[internal] Keep (context, expression)
in Ast_aggregated
for test purging
No details provided for this change. Please visit the MR to learn more
[internal] Import module syntax
No details provided for this change. Please visit the MR to learn more
[internal] Remove unused C_ASSERT_INFERRED
No details provided for this change. Please visit the MR to learn more
[internal] Add .ocamlformat
Configurations
Add .ocamlformat
configs to the compiler
[internal] JsLIGO: allow more in ternary expression
- JsLIGO: allow more in ternary expression
[internal] Jsligo single arg
No details provided for this change. Please visit the MR to learn more
[internal] Testing framework: add int64 support
No details provided for this change. Please visit the MR to learn more
[internal] Remove reserved names pass
No details provided for this change. Please visit the MR to learn more
0.51.0
Run this release with Docker:
docker run ligolang/ligo:0.51.0
Added :
- Stdlib: add ignore (!1967 by er433)
- Add
List.find_opt
to LIGO's Standard Library (!1953 by alistair.obrien) - add brew formula into ligo monorepo (!1950 by Laucans)
- Jsligo for-loops on maps (!1949 by lesenechal.remi)
- Execute ligo through NIX (!1937 by Laucans)
- Draft: New implementation of get-scope with support for modules (!1935 by melwyn95)
- Testing framework: add support for mutation in
Test.originate_from_file
functions (!1904 by er433) - Add a subcommand
ligo daemon
to be used only by tools like LSP server (!1882 by lesenechal.remi)
Fixed :
- Fix: remove forced annotation in CameLIGO's abstractor (!1981 by er433)
- Fix path issue in testing framwork for jsligo tests (!1980 by melwyn95)
- [Testing Framwork] Fix relative path resolution for contracts (!1979 by melwyn95)
- regression layout (!1976 by lesenechal.remi)
- Fix tuple parameters passed to constant functions e.g.
Tezos.call_view
(!1972 by er433 & melwyn95) - Jsligo preparser comma (!1971 by SanderSpies)
- Fix JsLIGO preparser issue with colons. (!1966 by SanderSpies)
- Monomorphisation: forall eta expand in monomorphisation (!1964 by er433)
- Bugfix : nested for loop doesn't catch assignation effect correctly (!1963 by pewulfman)
- Fix the emission of recursive functions in JsLIGO tree abstractor (!1960 by alistair.obrien)
- Testing framework: perf. fix; compute error_type only when needed (!1954 by er433)
- Fix view compilation for the case when a view uses another view (!1951 by melwyn95)
- [Fix] Website responsive issue (!1948 by JulesGuesnon)
- Bug Fix: Function Application in Bidirectional Type Checking (!1945 by alistair.obrien)
Changed :
- Update Documentation Removing Unnecessary Annotations (!1969 by alistair.obrien)
- JsLIGO Remove Parser Requirement for Mandatory Parameter Annotations (!1961 by alistair.obrien)
- Bidirectional type checking for LIGO (!1905 by alistair.obrien)
Performance :
- Remi/bidir lib optim (!1970 by lesenechal.remi)
Internal :
- Add interface for Ligo_prim/Binder.ml (!1956 by pewulfman)
- JsLIGO ES6FUN token (!1955 by SanderSpies)
- Testing framework: reuse layout from spilling pass (!1952 by er433)
- Move special constants to stdlib (!1947 by er433)
- Split Declaration module in ligo prim + Add ppx for fold and map (!1944 by pewulfman)
- Stdlib: move
C_..._LITERAL
in (!1942 by er433) - Testing framework: small internal clean-up (!1939 by er433)
- Remove C_OPTION_MAP from pseudomodules treatement (!1933 by er433)
- Refactor change common. (!1925 by pewulfman)
Details :
[added] Stdlib: add ignore
New ignore
in stdlib
A new function ignore : type a . a -> unit
allows to ignore values.
[added] Add List.find_opt
to LIGO's Standard Library
Added List.find_opt
to LIGO's standard library
[added] add brew formula into ligo monorepo
Add ligo installation through brew package manager. By using
You can also install one of the three last version by targeting the version after "@" :
[added] Jsligo for-loops on maps
No details provided for this change. Please visit the MR to learn more
[added] Execute ligo through NIX
Run nix run gitlab:ligolang/ligo
to execute the last release of ligo binary through nix (arch x86_64-linux)
[added] Draft: New implementation of get-scope with support for modules
No details provided for this change. Please visit the MR to learn more
[added] Testing framework: add support for mutation in Test.originate_from_file
functions
New functions for testing framework
There are new functions for doing mutation testing directly from files, that originate a mutated version of the contract and then gives control to the passed function that can do the test:
Test.originate_from_file_and_mutate : string -> string -> string list -> michelson_program -> tez -> (address * michelson_contract * int -> b) -> (b * mutation) option
Test.originate_from_file_and_mutate_all : string -> string -> string list -> michelson_program -> tez -> (address * michelson_contract * int -> b) -> (b * mutation) list
[added] Add a subcommand ligo daemon
to be used only by tools like LSP server
- add a daemon for ligo
[fixed] Fix: remove forced annotation in CameLIGO's abstractor
No details provided for this change. Please visit the MR to learn more
[fixed] Fix path issue in testing framwork for jsligo tests
No details provided for this change. Please visit the MR to learn more
[fixed][Testing Framwork] Fix relative path resolution for contracts
Fixes path resolution if a relative path is provided to Test.originate_from_file
& Test.compile_contract_from_file
& Test.read_contract_from_file
[fixed] regression layout
Fix regression in layout unification
[fixed] Fix tuple parameters passed to constant functions e.g. Tezos.call_view
No details provided for this change. Please visit the MR to learn more
[fixed] Jsligo preparser comma
No details provided for this change. Please visit the MR to learn more
[fixed] Fix JsLIGO preparser issue with colons.
No details provided for this change. Please visit the MR to learn more
[fixed] Monomorphisation: forall eta expand in monomorphisation
No details provided for this change. Please visit the MR to learn more
[fixed] Bugfix : nested for loop doesn't catch assignation effect correctly
Fixing bug with nested for loops in Pascaligo
[fixed] Fix the emission of recursive functions in JsLIGO tree abstractor
Fix the emission of recursive functions in JsLIGO tree abstractor
[fixed] Testing framework: perf. fix; compute error_type only when needed
No details provided for this change. Please visit the MR to learn more
[fixed] Fix view compilation for the case when a view uses another view
No details provided for this change. Please visit the MR to learn more
[fixed][Fix] Website responsive issue
Some blocks were cropped on small devices, so I fixed the responsive
[fixed] Bug Fix: Function Application in Bidirectional Type Checking
Bug fix for function application in bidirectional type checking
[changed] Update Documentation Removing Unnecessary Annotations
Update documentation removing unnecessary annotations
[changed] JsLIGO Remove Parser Requirement for Mandatory Parameter Annotations
Remove requirement that JsLIGO function parameters must be annotated
[changed] Bidirectional type checking for LIGO
Re-implement LIGO's type checker using bidirectional type checking.
[performance] Remi/bidir lib optim
Improve performance of compilation and typechecking
[internal] Add interface for Ligo_prim/Binder.ml
No details provided for this change. Please visit the MR to learn more
[internal] JsLIGO ES6FUN token
No details provided for this change. Please visit the MR to learn more
[internal] Testing framework: reuse layout from spilling pass
No details provided for this change. Please visit the MR to learn more
[internal] Move special constants to stdlib
No details provided for this change. Please visit the MR to learn more
[internal] Split Declaration module in ligo prim + Add ppx for fold and map
No details provided for this change. Please visit the MR to learn more
[internal] Stdlib: move C_..._LITERAL
in
No details provided for this change. Please visit the MR to learn more
[internal] Testing framework: small internal clean-up
No details provided for this change. Please visit the MR to learn more
[internal] Remove C_OPTION_MAP from pseudomodules treatement
No details provided for this change. Please visit the MR to learn more
[internal] Refactor change common.
No details provided for this change. Please visit the MR to learn more
0.50.0
Run this release with Docker:
docker run ligolang/ligo:0.50.0
Added :
- Draft: Adding support for the reverse application operator |> (!1875 by rinderkn)
Fixed :
- Update type for
SAPLING_VERIFY_UPDATE
after Jakarta (!1930 by er433) - Better error mesage for incorrect contract type (!1929 by melwyn95)
- Fix
ligo publish
for big files (!1921 by melwyn95)
Internal :
- Add
@thunk
for forcing AST-level substitution (!1928 by er433) - REPL: move from linenoise to lambda-term (!1922 by er433)
- Implement Subst for ast-aggregated (!1900 by er433)
- CLI: add
no-stdlib
flag (!1790 by er433)
Details :
[added] Draft: Adding support for the reverse application operator |>
Added support for the reverse application operator |>
[fixed] Update type for SAPLING_VERIFY_UPDATE
after Jakarta
No details provided for this change. Please visit the MR to learn more
[fixed] Better error mesage for incorrect contract type
No details provided for this change. Please visit the MR to learn more
[fixed] Fix ligo publish
for big files
No details provided for this change. Please visit the MR to learn more
[internal] Add @thunk
for forcing AST-level substitution
No details provided for this change. Please visit the MR to learn more
[internal] REPL: move from linenoise to lambda-term
No details provided for this change. Please visit the MR to learn more
[internal] Implement Subst for ast-aggregated
No details provided for this change. Please visit the MR to learn more
[internal] CLI: add no-stdlib
flag
No details provided for this change. Please visit the MR to learn more
0.49.0
Run this release with Docker:
docker run ligolang/ligo:0.49.0
Added :
- List decl improv (!1915 by lesenechal.remi)
Fixed :
- Mutation testing: reduplication for mutation saving (!1914 by er433)
- Perf: view fix (!1896 by lesenechal.remi)
- [Package Management] Fix: package tar-ball having absolute paths (!1893 by melwyn95)
Performance :
- [FIX] Improve the speed of compilation of views (!1903 by melwyn95)
Internal :
- Testing framework: implement mutation testing on top of try-catch (!1913 by er433)
- Testing framework: add internal function for try-with (!1912 by er433)
- Ligo Login: lookup env when not tty (!1908 by prometheansacrifice)
- Testing framework: simplify re-construction of environment (!1907 by er433)
- Monomorphisation: generate always different instances (!1888 by er433)
Details :
[added] List decl improv
ligo info list-declarations
now fail in case of a type errorligo info list-declarations
now accepts a flag--only-ep
to only display declarations typed as an entrypoint (parameter * storage -> operation list * storage
)
[fixed] Mutation testing: reduplication for mutation saving
No details provided for this change. Please visit the MR to learn more
[fixed] Perf: view fix
- Performance: optimized compilation time for contracts
[fixed][Package Management] Fix: package tar-ball having absolute paths
Fix ligo publish
in the case where --project-root
is inferred
[performance][FIX] Improve the speed of compilation of views
No details provided for this change. Please visit the MR to learn more
[internal] Testing framework: implement mutation testing on top of try-catch
No details provided for this change. Please visit the MR to learn more
[internal] Testing framework: add internal function for try-with
No details provided for this change. Please visit the MR to learn more
[internal] Ligo Login: lookup env when not tty
No details provided for this change. Please visit the MR to learn more
[internal] Testing framework: simplify re-construction of environment
No details provided for this change. Please visit the MR to learn more
[internal] Monomorphisation: generate always different instances
No details provided for this change. Please visit the MR to learn more
0.48.1
Run this release with Docker:
docker run ligolang/ligo:0.48.1
Added :
- Add manpages for login, add-user & publish (!1899 by melwyn95)
Fixed :
- Fix
#import
module not found (!1906 by melwyn95)
Details :
[added] Add manpages for login, add-user & publish
No details provided for this change. Please visit the MR to learn more
[fixed] Fix #import
module not found
No details provided for this change. Please visit the MR to learn more
0.48.0
Run this release with Docker:
docker run ligolang/ligo:0.48.0
Added :
- update to kathmandu (2/2 : EMIT) (!1889 by lesenechal.remi)
- [Testing Framwork] Add relative path resolution to Test.originate_from_file (!1879 by melwyn95)
- Testing framework: add support for C_CONTRACT and similar (!1876 by er433)
- [Package Management] Integrate ligo registry in CLI & Impl
ligo publish
,ligo login
&ligo add-users
in CLI (!1863 by melwyn95) - Testing framework : Documentation on ticket testing + support for decompilation of tickets to unforged tickets (!1725 by lesenechal.remi)
Fixed :
- Testing framework: Add support for decompiling key as bytes (!1891 by er433)
- Draft: Mac Installation Instructions and Fixes (!1883 by alistair.obrien)
- Re-introduce self_typing (!1880 by er433)
- Fix: scope of #import (!1873 by pewulfman)
- Aggregation: remove from the scope the variables locally bound (!1871 by er433)
- Handle Big_map.get_and_update in test interpreter (!1870 by melwyn95)
- Change handling of capitalization in
Tezos.get_entrypoint_opt
(!1864 by er433)
Changed :
- Tezos upd v14 (!1884 by lesenechal.remi)
- Try to infer
--project-root
when using ligo commands (!1859 by melwyn95)
Deprecated :
- Remove thunked constants (!1877 by er433)
- Prepare Deprecate of Reasonligo (!1849 by pewulfman)
Internal :
- Package management: Adds package author to metadata during publish (!1878 by prometheansacrifice)
- Typer: keep type abstraction after checking (!1872 by er433)
- Draft: Decompile & pretty print patterns in error message (!1814 by melwyn95)
Details :
[added] update to kathmandu (2/2 : EMIT)
- Support for Kathmandu EMIT primitives (see https://tezos.gitlab.io/alpha/event.html)
[added][Testing Framwork] Add relative path resolution to Test.originate_from_file
Test.originate_from_file
can now resolve paths relative to test file
[added] Testing framework: add support for C_CONTRACT and similar
Testing framework: support for Tezos.get_entrypoint_opt
, Tezos.get_contract_opt
and variants.
[added][Package Management] Integrate ligo registry in CLI & Impl ligo publish
, ligo login
& ligo add-users
in CLI
Adds support for the new LIGO registry with the following commands
publish [--registry URL] [--ligorc-path PATH] [--project-root PATH]
publish the LIGO package declared in package.jsonadd-user [--registry URL] [--ligorc-path PATH]
create a new user for the LIGO package registrylogin [--registry URL] [--ligorc-path PATH]
login to the LIGO package registry
[added] Testing framework : Documentation on ticket testing + support for decompilation of tickets to unforged tickets
- [Testing framework] support for decompilation for
ticket
s intounforged_ticket
s - [Testing framework] documentation about ticket testing
[fixed] Testing framework: Add support for decompiling key as bytes
No details provided for this change. Please visit the MR to learn more
[fixed] Draft: Mac Installation Instructions and Fixes
- Added additional instructions for installing and building LIGO on MacOS.
- Additionaly fixed reliance on
$PATH
forjsonschema
inget_scope_tests
by prefixing command withpython3 -m
.
[fixed] Re-introduce self_typing
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: scope of #import
The scope of #import
directive has been fixed so that the imported module is created in-place instead of at the beginning of the file. (i.e won't be shadowed anymore by a module declared before the import)
[fixed] Aggregation: remove from the scope the variables locally bound
No details provided for this change. Please visit the MR to learn more
[fixed] Handle Big_map.get_and_update in test interpreter
Handle Big_map.get_and_update in testing framework
[fixed] Change handling of capitalization in Tezos.get_entrypoint_opt
Tezos.get_entrypoint_opt
does not error anymore on the usage of a capitalized entrypoint.
[changed] Tezos upd v14
- LIGO now depends on tezos v14
[changed] Try to infer --project-root
when using ligo commands
Infer --project-root
when using ligo commands
Now LIGO will try to infer --project-root
by looking at parent directories,
This will make LIGO CLI commands less verbose (when using external packages from npm).
If you need/want to specify the root directory of your project you can as always use the --project-root
flag.
[deprecated] Remove thunked constants
Deprecated: Tezos.amount
, Tezos.balance
, Tezos.now
, Tezos.sender
, Tezos.source
, Tezos.level
, Tezos.self_address
, Tezos.chain_id
, Tezos.total_voting_power
[deprecated] Prepare Deprecate of Reasonligo
As ReasonLigo doesn't seem to have any advantages over Cameligo and JSligo and it seems that it is not used much. We decided to remove the support of the syntax, in order to focus our effort on other parts of the compiler. We have added a warning that we will leave for a few versions and remove ReasonLigo then.
[internal] Package management: Adds package author to metadata during publish
Here replace this sentence and put what you want to share with ligo users through changelog. Markdown formatted (#### for title). If you don't want to describe the feature remove keyword "Description details:"
[internal] Typer: keep type abstraction after checking
No details provided for this change. Please visit the MR to learn more
[internal] Draft: Decompile & pretty print patterns in error message
Better error messages for pattern matching anomalies
0.47.0
Run this release with Docker:
docker run ligolang/ligo:0.47.0
Added :
- CLI Scaffolding feature (!1858 by Laucans)
- Add option --experimental-disable-optimizations-for-debugging (!1800 by tomjack)
Fixed :
- Fix aggregation bug in loop (!1850 by pewulfman)
- Cleanup Agregation : replace dirty ref map with proper functional handling (!1845 by pewulfman)
- Draft: view compilation clean-up (!1833 by lesenechal.remi)
- Fix handling of @scoped/packages in ModRes (!1818 by melwyn95)
Performance :
- Optimize {PAIR n; UNPAIR n} and {UNPAIR n; PAIR n} (!1846 by tomjack)
Internal :
- Remove access_path in E_assign (!1851 by pewulfman)
- Remove Bool from type list (!1808 by er433 & melwyn95)
Details :
[added] CLI Scaffolding feature
Initialize a new Ligo project from chosen template
This feature allow user to easily setup a new ligo project (Library or Contract) from template by adding new command-set into CLI.
Requirements
Feature use git
so git cli have to be available.
Commands
ligo init -help
ligo init contract --template-list
= print available template list to generate contract
ligo init contract <PROJECT> --template XXX
= initialize folder with contract template XXX
ligo init library --template-list
= print available template list to generate library
ligo init library <PROJECT> --template XXX
= initialize folder with library template XXX
Additional details
- Every template are cloned from github ligolang org.
[added] Add option --experimental-disable-optimizations-for-debugging
No details provided for this change. Please visit the MR to learn more
[fixed] Fix aggregation bug in loop
No details provided for this change. Please visit the MR to learn more
[fixed] Cleanup Agregation : replace dirty ref map with proper functional handling
fix a potential bug in the backend
[fixed] Draft: view compilation clean-up
- Fixing potential bug related to view declaration shadowing
[fixed] Fix handling of @scoped/packages in ModRes
Fix handling for scoped npm packages
[performance] Optimize {PAIR n; UNPAIR n} and {UNPAIR n; PAIR n}
Optimize {PAIR n; UNPAIR n} and {UNPAIR n; PAIR n} to {}
[internal] Remove access_path in E_assign
No details provided for this change. Please visit the MR to learn more
[internal] Remove Bool from type list
No details provided for this change. Please visit the MR to learn more
0.46.1
Run this release with Docker:
docker run ligolang/ligo:0.46.1
Fixed :
- fixing wild failwith (!1843 by lesenechal.remi)
Details :
[fixed] fixing wild failwith
Fix a potential crash during the generation of type errors
0.46.0
Run this release with Docker:
docker run ligolang/ligo:0.46.0
Added :
- Testing framework: separate
Test.log
into printing and string conversion (!1809 by er433) - Testing framework: improvement on random generation and module PBT (!1799 by er433)
Fixed :
- Testing framework: fix generator for nat/tez (!1830 by er433)
- Fix abstractors for nested builtin submodules (!1820 by er433)
- Fixing the scanning of escaped characters in strings (!1817 by rinderkn)
- Error if polymorphism is present after monomorphisation (!1804 by melwyn95)
Changed :
- Pattern Matching: anomaly detection (!1794 by melwyn95)
Deprecated :
- Ithaca deprecation (!1825 by lesenechal.remi)
Internal :
- Improvement on Trace module (!1834 by pewulfman)
- Clean checking : add abstraction to avoid futur conflict and remove etection of polymorphic var (!1831 by pewulfman)
- Clean up var module (!1826 by pewulfman)
- mono file stdlib (!1815 by lesenechal.remi)
- Change
%external
replacement (!1792 by er433)
Details :
[added] Testing framework: separate Test.log
into printing and string conversion
New functions: Test.print
, Test.println
, Test.eprint
, Test.to_string
, Test.nl
and Test.chr
These new functions provide more fine-grained printing.
val Test.print : string -> unit
: prints an string to stdout.
val Test.println : string -> unit
: prints an string to stdout, adding a newline at the end.
val Test.eprint : string -> unit
: prints an string to stderr.
val Test.to_string : 'a -> string
: turns a value of a given type into a string
(internally using the same conversion as Test.log
)
val Test.nl : string
: a string containing only a newline.
Test.chr : nat -> string option
: turns a nat in the range [0, 255] to an string consisting of only the corresponding char.
[added] Testing framework: improvement on random generation and module PBT
A new module Test.PBT
This new module is introduced to do simple property-based testing. It's composed of:
val gen : 'a gen
: gives a generator for type'a
(must be annotated).val gen_small : 'a gen
: : gives a small generator for type'a
(must be annotated).val make_test : 'a gen -> ('a -> bool) -> 'a pbt_test
: creates a test from a generator and a property.val run : 'a pbt_test -> nat -> 'a pbt_result
: runs a test for a given number of tries. The introduced types are:type 'a gen
: represents a generator for a type.type 'a pbt_test
: represents a test for a type.type 'a pbt_result = Success | Fail of 'a
: represents the result of running a test.
[fixed] Testing framework: fix generator for nat/tez
No details provided for this change. Please visit the MR to learn more
[fixed] Fix abstractors for nested builtin submodules
No details provided for this change. Please visit the MR to learn more
[fixed] Fixing the scanning of escaped characters in strings
Until now escaped characters in strings were not properly scanned.
For instance, now the following constants
are accepted and evaluate in 1.
[fixed] Error if polymorphism is present after monomorphisation
Improve error message if polymorphism cannot be resolved
[changed] Pattern Matching: anomaly detection
Improve pattern matching anomaly (missing case / redundant case) error messages.
For missing cases:
Error:
For redundant case:
Error:
[deprecated] Ithaca deprecation
Deprecation of --protocol ithaca
[internal] Improvement on Trace module
The compiler is now able to report all errors corresponding to the same step of compilation at the same time
[internal] Clean checking : add abstraction to avoid futur conflict and remove etection of polymorphic var
No details provided for this change. Please visit the MR to learn more
[internal] Clean up var module
No details provided for this change. Please visit the MR to learn more
[internal] mono file stdlib
rework of the standard library (might slightly improve compiler/tooling performances)
[internal] Change %external
replacement
No details provided for this change. Please visit the MR to learn more
0.45.0
Run this release with Docker:
docker run ligolang/ligo:0.45.0
Added :
- Testing framework: add missing
Test.drop_context
(!1787 by er433) - Testing framework: add signing operation (!1783 by er433)
- Testing framework: support getting secret key from bootstrap accounts (!1782 by er433)
- Testing framework: Better control of time (!1776 by lesenechal.remi)
Fixed :
- Testing framework: keep order on bigmap receipts (!1811 by er433)
- Docker image: make ligo executable for non-root users (!1810 by tomjack)
- Custom JSON output for types
bool
andoption
(!1805 by er433) - Compile parameter and storage types individually in views (!1798 by er433 & melwyn95 & nicolas.van.phan)
- Testing framework: make
Test.cast_address
record type information (!1797 by er433) - Replace
operations
foroperation
in error message (!1796 by er433) - Fix:
Test.transfer_to_contract
use entrypoint (!1795 by er433)
Removed :
- Remove temp hack for PascaLIGO (!1788 by SanderSpies)
Internal :
- Rewrite Coq pass: de Bruijn compiler with Michelson "strengthening" (!1666 by tomjack)
Details :
[added] Testing framework: add missing Test.drop_context
New Test
function: drop_context
A new val Test.drop_context : unit -> unit
in the testing framework is introduced. It allows to drop contexts from the context stack.
[added] Testing framework: add signing operation
New function Test.sign
A new function val sign : string -> bytes -> signature
was added to sign data (represented as bytes
) using a key (represented as a string
).
[added] Testing framework: support getting secret key from bootstrap accounts
New Test
function: get_bootstrap_account
The new function val get_bootstrap_account : nat -> address * key * string
in Test
retrieves the nth bootstrap account. Differently to nth_bootstrap_account
, it also recovers the key
and the secret key (represented as a string
, similar to Test.new_account
).
[added] Testing framework: Better control of time
testing framework: new function Test.reset_at
(similar to Test.reset
) which takes a timestamp and initialize the genesis block with a given timestamp
[fixed] Testing framework: keep order on bigmap receipts
No details provided for this change. Please visit the MR to learn more
[fixed] Docker image: make ligo executable for non-root users
Docker image: ligo now executable by non-root users inside container (e.g. when running docker with -u $(id -u):$(id -g)
.)
[fixed] Custom JSON output for types bool
and option
No details provided for this change. Please visit the MR to learn more
[fixed] Compile parameter and storage types individually in views
No details provided for this change. Please visit the MR to learn more
[fixed] Testing framework: make Test.cast_address
record type information
No details provided for this change. Please visit the MR to learn more
[fixed] Replace operations
for operation
in error message
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: Test.transfer_to_contract
use entrypoint
No details provided for this change. Please visit the MR to learn more
[removed] Remove temp hack for PascaLIGO
No details provided for this change. Please visit the MR to learn more
[internal] Rewrite Coq pass: de Bruijn compiler with Michelson "strengthening"
No details provided for this change. Please visit the MR to learn more
0.44.0
Run this release with Docker:
docker run ligolang/ligo:0.44.0
Breaking :
- Testing framework: expose functions for contract compilation and origination (!1772 by er433)
- failwith now accepts arbitrary type as input (!1748 by lesenechal.remi)
Added :
- injectable cli expression (!1769 by lesenechal.remi)
- Ligo native multi-platform (!1768 by prometheansacrifice)
- Multiplat builds with esy (!1764 by Laucans)
Fixed :
- Fix record pattern matching when fields are not in the same order in all patterns (!1778 by melwyn95)
- jsligo: let bindings nested in a module would not be silently morphed into constants (!1765 by lesenechal.remi)
- Testing framework: add inline attribute (!1761 by er433)
- Bugfix, export let is not cast silently (!1744 by pewulfman)
- Typer context - Replace lists by maps (!1722 by nicolas.van.phan)
Changed :
- Authorising () in function declarations and function calls. (!1760 by rinderkn)
Deprecated :
- Deprecate message for thunked constants in stdlib (!1758 by er433)
Internal :
- Remove
E_type_in
in typed and aggregated (!1779 by er433) - Testing framework: add contract passes to contract in ast-aggregated (!1773 by er433)
- Testing framework: separate compilation from origination (!1766 by er433)
- Hashing for types (ast-typed) (!1726 by er433)
- Michelson optimization: factor out common last actions in conditionals (!1532 by er433)
Details :
[breaking] Testing framework: expose functions for contract compilation and origination
New Test
type and functions
type michelson_contract
: representing Michelson contracts.Test.compile_contract_from_file : string -> string -> string list -> michelson_contract
Test.compile_contract : ('param * 'storage -> operation list * 'storage) -> michelson_contract
Test.read_contract_from_file : string -> michelson_contract
Test.originate_contract : michelson_contract -> michelson_program -> tez -> address
Test.size : michelson_contract -> int
Breaking changes in Test
types, now they return michelson_contract
instead of michelson_program
:
Test.originate_from_file : string -> string -> string list -> michelson_program -> tez -> address * michelson_contract int
Test.originate : ('param * 'storage -> operation list * 'storage) -> 'storage -> tez -> (('param, 'storage) typed_address * michelson_contract * int)
Most usages ignore this result, but might break some tests in case they are too annotated.
[breaking] failwith now accepts arbitrary type as input
The failwith
primitive now accepts arbitrary type as input.
breaking changes
failwith
is now typed as forall a b . a -> b
, instead of applying an ad-hoc rule giving unit
as a default return type.
In general, this will require more type annotations, as in:
Closes #193
[added] injectable cli expression
you can now pass an expression to ligo run test
using command line option --arg
, this value will be accessible through variable cli_arg
[added] Ligo native multi-platform
Use esy to build binary for :
- Windows
- Mac intel
- Mac m1
[added] Multiplat builds with esy
No details provided for this change. Please visit the MR to learn more
[fixed] Fix record pattern matching when fields are not in the same order in all patterns
Fix record pattern matching when fields are not in the same order in all patterns
[fixed] jsligo: let bindings nested in a module would not be silently morphed into constants
fix a bug where top-level let declaration within a Jsligo Namespace wouldn't compile
[fixed] Testing framework: add inline attribute
No details provided for this change. Please visit the MR to learn more
[fixed] Bugfix, export let is not cast silently
No details provided for this change. Please visit the MR to learn more
[fixed] Typer context - Replace lists by maps
Closes(https://gitlab.com/ligolang/ligo/-/issues/1390)
[changed] Authorising () in function declarations and function calls.
Declarations function f () : t is b
and calls f ()
are now valid.
[deprecated] Deprecate message for thunked constants in stdlib
Soon to be deprecated: Tezos.amount
, Tezos.balance
, Tezos.now
, Tezos.sender
, Tezos.source
, Tezos.level
, Tezos.self_address
, Tezos.chain_id
, Tezos.total_voting_power
.
These should be replaced by their "thunked" counterpart, which are prefixed with get_
. E.g. Tezos.balance : unit -> tez
.
[internal] Remove E_type_in
in typed and aggregated
No details provided for this change. Please visit the MR to learn more
[internal] Testing framework: add contract passes to contract in ast-aggregated
No details provided for this change. Please visit the MR to learn more
[internal] Testing framework: separate compilation from origination
No details provided for this change. Please visit the MR to learn more
[internal] Hashing for types (ast-typed)
No details provided for this change. Please visit the MR to learn more
[internal] Michelson optimization: factor out common last actions in conditionals
A new optimization has been added in contract compilation. By default, it will not use type information (for better compilation performance), but it can be enabled using --enable-michelson-typed-opt
.
0.43.0
Run this release with Docker:
docker run ligolang/ligo:0.43.0
Added :
- Testing framework: implement other baking policies (!1746 by er433)
- [jsligo] function parameter destructuring, and let destructuring improvement (!1720 by lesenechal.remi)
Fixed :
- fix: --protocol jakarta emits
SUB
for mutez subtraction (!1755 by melwyn95) - pattern matching: some "inference" (!1753 by lesenechal.remi)
- Stdlib: Add
thunk
attribute to Big_map.empty (!1747 by er433) - Improve running time after perfing (!1743 by lesenechal.remi)
- Update Hashlock and ID examples for the webide (!1739 by er433)
- fixing lib cache (!1735 by lesenechal.remi)
- Restricted strings to 7-bit ASCII, as in Michelson. (!1731 by rinderkn)
- Self_tokens: add semi-colon before export and namespace (!1580 by er433)
Changed :
- Testing framework: make
Test.to_entrypoint
remove the starting '%' (!1750 by er433)
Internal :
- Make Tezos.constant be a custom operator again (!1757 by er433)
- Remove C_LIST_HEAD_OPT / C_LIST_TAIL_OPT (!1756 by er433)
- Monomorphisation: add
E_assign
andE_lambda
cases (!1752 by er433) - Remove operations in testlib that can be implemented in terms of others (!1745 by er433)
- Using crunch to load library at compile-time (!1741 by lesenechal.remi)
- Remove operations that can be replaced in stdlib (!1715 by er433)
Details :
[added] Testing framework: implement other baking policies
New Test.set_baker_policy
There is a new Test.set_baker_policy : test_baker_policy -> unit
that allows to set different baker policies as available in the testing helpers provided by the protocol. The type test_baker_policy
is defined as the sum type:
In particular, Test.set_baker addr
is equivalent to Test.set_baker_policy (By_account addr)
.
[added][jsligo] function parameter destructuring, and let destructuring improvement
- JSLIGO patterns in function parameters are now compiled to pattern matching, which improves the generated code in general
- JSLIGO "let-destructuring" will now work on objects (record type) and arrays (tuple type) as in:
[fixed] fix: --protocol jakarta emits SUB
for mutez subtraction
--protocol jakarta
now emitsSUB_MUTEZ
for subtractionmutez
values
[fixed] pattern matching: some "inference"
- improvement of pattern matching type-checking
[fixed] Stdlib: Add thunk
attribute to Big_map.empty
No details provided for this change. Please visit the MR to learn more
[fixed] Improve running time after perfing
- Testing framework: fix a potential bug where the current context wasn't used to evaluate Michelson code
[fixed] Update Hashlock and ID examples for the webide
No details provided for this change. Please visit the MR to learn more
[fixed] fixing lib cache
- Fix a potential bug in standards libraries caching
[fixed] Restricted strings to 7-bit ASCII, as in Michelson.
Description details: Restricted strings to 7-bit ASCII, as in Michelson.
[fixed] Self_tokens: add semi-colon before export and namespace
No details provided for this change. Please visit the MR to learn more
[changed] Testing framework: make Test.to_entrypoint
remove the starting '%'
By default, Test.to_entrypoint
expected string argument not to begin with %
. From now on, the starting '%' (if present) is removed.
[internal] Make Tezos.constant be a custom operator again
No details provided for this change. Please visit the MR to learn more
[internal] Remove C_LIST_HEAD_OPT / C_LIST_TAIL_OPT
No details provided for this change. Please visit the MR to learn more
[internal] Monomorphisation: add E_assign
and E_lambda
cases
No details provided for this change. Please visit the MR to learn more
[internal] Remove operations in testlib that can be implemented in terms of others
No details provided for this change. Please visit the MR to learn more
[internal] Using crunch to load library at compile-time
Using crunch to load standard libraries at compile-time
[internal] Remove operations that can be replaced in stdlib
No details provided for this change. Please visit the MR to learn more
0.42.1
Run this release with Docker:
docker run ligolang/ligo:0.42.1
Added :
- Moving to jarkarta (!1709 by lesenechal.remi)
Details :
0.42.0
Run this release with Docker:
docker run ligolang/ligo:0.42.0
Breaking :
- Remove deprecated constants (!1711 by er433)
Fixed :
- [jsligo] Fix nested polymorphic functions (!1727 by melwyn95)
- do not raise corner_case in pattern matching compression (!1716 by lesenechal.remi)
- Fix recursive functions when fun_name shadowed (!1714 by melwyn95)
- Fix: REPL support for stdlib (!1713 by er433)
- Fix Tezos.call_view with impure (!1708 by er433)
Changed :
- Better michelson typing error (!1700 by lesenechal.remi)
Internal :
- Remove auxiliar internal type
map_or_big_map
(!1728 by er433) - Separate typing & pattern matching compilation (!1723 by melwyn95)
- Push C_POLYMORPHIC_ADD/SUB selection towards the end of the pipeline (!1721 by er433)
- Add test parameter for print ast-typed/ast-aggregated (!1719 by er433)
- Remove test_exec_error/result (!1717 by er433)
- Prepare contracts for deprecation of constants (!1705 by er433)
- Refactor loop and assignation (!1674 by pewulfman)
- Value environment: standard library using
%external
(!1673 by er433) - Change fail case when abstracting constants/built-in modules (!1648 by er433)
Details :
[breaking] Remove deprecated constants
Deprecated constants
In previous versions of LIGO, warnings were emitted for deprecated constants (e.g. balance
, sender
, etc.). We finally remove those constants. Please consult API documentation in ligolang.org to find a new constant that can replace the old one in your contract.
[fixed][jsligo] Fix nested polymorphic functions
Fixed handling for nested generic functions in JsLIGO
[fixed] do not raise corner_case in pattern matching compression
fix detection of missing constructors in pattern matching
[fixed] Fix recursive functions when fun_name shadowed
Fixes bug in tail-call recursion check
[fixed] Fix: REPL support for stdlib
No details provided for this change. Please visit the MR to learn more
[fixed] Fix Tezos.call_view with impure
No details provided for this change. Please visit the MR to learn more
[changed] Better michelson typing error
contract failing to typecheck against protocol N while user did not use --protocol N
will now only generate a warning
[internal] Remove auxiliar internal type map_or_big_map
No details provided for this change. Please visit the MR to learn more
[internal] Separate typing & pattern matching compilation
No details provided for this change. Please visit the MR to learn more
[internal] Push C_POLYMORPHIC_ADD/SUB selection towards the end of the pipeline
No details provided for this change. Please visit the MR to learn more
[internal] Add test parameter for print ast-typed/ast-aggregated
No details provided for this change. Please visit the MR to learn more
[internal] Remove test_exec_error/result
New type test_exec_error_balance_too_low
A new type test_exec_error_balance_too_low
has been added to testing framework. It represents the data returned by Balance_too_low
case in test_exec_error
.
[internal] Prepare contracts for deprecation of constants
No details provided for this change. Please visit the MR to learn more
[internal] Refactor loop and assignation
Here put what you want to share with ligo users through changelog. Markdown formatted (#### for title).
Redesign the handling of imperative construct such as loop and assignation to fix bugs and improve performances
[internal] Value environment: standard library using %external
Breaking changes
- Less lenient on the usage of
Map
andBig_map
functions (e.g.Map.update
will only work onmap
s and not onbig_map
s as before)
[internal] Change fail case when abstracting constants/built-in modules
No details provided for this change. Please visit the MR to learn more
0.41.0
Run this release with Docker:
docker run ligolang/ligo:0.41.0
Added :
- Testing framework: add support for context saving/restoring (!1695 by er433)
- Global constants support in compile expression and additional support in parameter/storage (!1693 by er433)
Fixed :
- Fix
option
handling in michelson_to_value (!1699 by melwyn95) - fixing a bug in pattern_matching.ml substitution (!1698 by lesenechal.remi)
- Testing framework: fix subtraction of timestamps (!1697 by er433)
- Fix: move Tezos.create_contract check of free variables to aggregated (!1691 by er433)
Changed :
- Polymorphic types in jsligo and reasonligo (!1675 by pewulfman)
Internal :
- Represent
option
asT_sum
(!1696 by melwyn95) - Tree sitter grammar for jsligo (!1581 by melwyn95)
Details :
[added] Testing framework: add support for context saving/restoring
New operations Test.save_context
and Test.restore_context
Test.save_context : unit -> unit
: takes current testing framework context and saves it, pushing it into a stack of contexts.Test.restore_context : unit -> unit
: pops a testing framework context from the stack of contexts, and sets it up as the new current context. In case the stack was empty, the current context is kept.
[added] Global constants support in compile expression and additional support in parameter/storage
The sub-command compile expression
now supports --constant
and --file-constants
for using global constants.
[fixed] Fix option
handling in michelson_to_value
- Fix bug in test interpreter related handling of option values
- Improve typing of records when type annotation is not provided
[fixed] fixing a bug in pattern_matching.ml substitution
Fix a bug related to recursive function definitions in pattern matching
[fixed] Testing framework: fix subtraction of timestamps
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: move Tezos.create_contract check of free variables to aggregated
No details provided for this change. Please visit the MR to learn more
[changed] Polymorphic types in jsligo and reasonligo
Here put what you want to share with ligo users through changelog.
Replace polymorphism syntax to have explicit polymorphic type "declaration"
[internal] Represent option
as T_sum
No details provided for this change. Please visit the MR to learn more
[internal] Tree sitter grammar for jsligo
Tree sitter grammar for jsligo
0.40.0
Run this release with Docker:
docker run ligolang/ligo:0.40.0
Added :
- Testing framework: add support for loading files with global constants (!1681 by er433)
- Add support for constants and file-constants in compile-parameter and compile-storage (!1677 by er433)
- testing framework: change 'test_exec_error' type. It now has a special case for unsuficient balances, and case Other will return the tezos_client error (as a string) (!1576 by Rémi Lesénéchal)
Fixed :
- Testing framework: fix recursive functions with multiple parameters (!1688 by er433)
- Fix and docs about Test.random (!1687 by er433)
- Fix for naming issue when compiling more than 10 views (#1388) (!1685 by er433)
- Add pretty-printing of type parameters in CameLIGO. (!1653 by Christian Rinderknecht)
- Added pretty-printing of type parameters to CameLIGO. (!1653 by Christian Rinderknecht)
- Better error when accessing a parametric type through a module (!1589 by Rémi Lesénéchal)
- Fix: typo in message when compiling constant (!1609 by er433)
Changed :
- Lifting redundant constructor restrictions (!1662 by lesenechal.remi)
- Testing framework: More reasons for better negative tests ? (!1576 by lesenechal.remi)
Internal :
- Upgrade
tezos-ligo
submodule to v12.2 (!1679 by melwyn95) - Fix zarith package conflict and add macstadium partnership (!1678 by Laucans)
- use substitution for evaluation of type applications (!1671 by lesenechal.remi)
- Generate textmate file to allow integrationwith linuist (!1610 by Pierre-Emmanuel Wulfman)
- Factored out a new syntactic category in the CST and beyond: module expressions. This will ease future developments on modules (!1589 by Christian Rinderknecht)
- Created the CST and AST nodes for module expressions. (!1589 by Christian Rinderknecht & Remi Lesenechal)
Details :
[added] Testing framework: add support for loading files with global constants
Testing framework: add support for loading files with global constants
A new function Test.register_file_constants
is introduced. It takes a string (file path) and returns a list of strings corresponding to the hashes of the registered constants.
The file format is the same as the used in --file-constants
for sub-command compile contract
.
[added] Add support for constants and file-constants in compile-parameter and compile-storage
Add support for global constants in compile storage
and compile parameter
[added] testing framework: change 'test_exec_error' type. It now has a special case for unsuficient balances, and case Other will return the tezos_client error (as a string)
No details provided for this change. Please visit the MR to learn more
[fixed] Testing framework: fix recursive functions with multiple parameters
Recursive functions with multiple parameters were handled incorrectly in the testing framework. This change fixes the situation.
[fixed] Fix and docs about Test.random
Inference for Test.random fixed.
[fixed] Fix for naming issue when compiling more than 10 views (#1388)
Fixed naming issue when compiling more than 10 views (#1388).
[fixed] Add pretty-printing of type parameters in CameLIGO.
No details provided for this change. Please visit the MR to learn more
[fixed] Added pretty-printing of type parameters to CameLIGO.
No details provided for this change. Please visit the MR to learn more
[fixed] Better error when accessing a parametric type through a module
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: typo in message when compiling constant
No details provided for this change. Please visit the MR to learn more
[changed] Lifting redundant constructor restrictions
Lifting restrictions on redundant constructors
It is now possible to declare variant types sharing the same constructors as in:
[changed] Testing framework: More reasons for better negative tests ?
The type of Test.test_exec_failure
has changed: a new constructor Balance_too_low
is added to assert that a contract pushed an operation but did not have enough fund.
[internal] Upgrade tezos-ligo
submodule to v12.2
No details provided for this change. Please visit the MR to learn more
[internal] Fix zarith package conflict and add macstadium partnership
No details provided for this change. Please visit the MR to learn more
[internal] use substitution for evaluation of type applications
No details provided for this change. Please visit the MR to learn more
[internal] Generate textmate file to allow integrationwith linuist
No details provided for this change. Please visit the MR to learn more
[internal] Factored out a new syntactic category in the CST and beyond: module expressions. This will ease future developments on modules
No details provided for this change. Please visit the MR to learn more
[internal] Created the CST and AST nodes for module expressions.
No details provided for this change. Please visit the MR to learn more
0.39.0
Run this release with Docker:
docker run ligolang/ligo:0.39.0
Fixed :
- Fix: protocol_version check in predefined.ml (!1664 by melwyn95)
- Typer : Better locations (!1660 by lesenechal.remi)
- Fixed the pretty-printing of punned record fields in ReasonLIGO (issue 1344). (!1656 by Christian Rinderknecht)
- Fix typing rule of Test.mutation_test_all (!1655 by er433)
- Fix a bug where views would be declared as module accesses (!1652 by Rémi Lesénéchal & Melwyn Saldanha)
- Fix in typing for Tezos.get_contract_with_error (!1645 by er433)
- Enable the check for reserved names again. It was removed unintentionally in the previous version (!1632 by Rémi Lesénéchal)
- Fix package path finding in ModRes + support package paths in REPL & Test interpreter (!1605 by melwyn95)
Internal :
- Update internal state of the typer (!1659 by er433)
- Fix: replace V.to_name_exn for V.pp in muchused (!1654 by er433)
- Remove T_abstraction from ast_aggregated (!1641 by er433)
- Docs: generate markdown manpages (!1640 by melwyn95)
- Testing framework: clean-up interpreter's values internal comparator (!1628 by er433)
- Automated process for changelog generation and refactoring of the changelog structure (!1644 by Laucans)
Other :
- merge language server changes in tooling into dev (!1630 by Heitor Toledo Lassarote de Paula)
Details :
[fixed] Fix: protocol_version check in predefined.ml
No details provided for this change. Please visit the MR to learn more
[fixed] Typer : Better locations
No details provided for this change. Please visit the MR to learn more
[fixed] Fixed the pretty-printing of punned record fields in ReasonLIGO (issue 1344).
No details provided for this change. Please visit the MR to learn more
[fixed] Fix typing rule of Test.mutation_test_all
No details provided for this change. Please visit the MR to learn more
[fixed] Fix a bug where views would be declared as module accesses
No details provided for this change. Please visit the MR to learn more
[fixed] Fix in typing for Tezos.get_contract_with_error
No details provided for this change. Please visit the MR to learn more
[fixed] Enable the check for reserved names again. It was removed unintentionally in the previous version
No details provided for this change. Please visit the MR to learn more
[fixed] Fix package path finding in ModRes + support package paths in REPL & Test interpreter
No details provided for this change. Please visit the MR to learn more
[internal] Update internal state of the typer
No details provided for this change. Please visit the MR to learn more
[internal] Fix: replace V.to_name_exn for V.pp in muchused
No details provided for this change. Please visit the MR to learn more
[internal] Remove T_abstraction from ast_aggregated
No details provided for this change. Please visit the MR to learn more
[internal] Docs: generate markdown manpages
No details provided for this change. Please visit the MR to learn more
[internal] Testing framework: clean-up interpreter's values internal comparator
No details provided for this change. Please visit the MR to learn more
[internal] Automated process for changelog generation and refactoring of the changelog structure
No details provided for this change. Please visit the MR to learn more
[other] merge language server changes in tooling into dev
No details provided for this change. Please visit the MR to learn more
0.38.1
Run this release with Docker:
docker run ligolang/ligo:0.38.1
Details :
0.38.0
Run this release with Docker:
docker run ligolang/ligo:0.38.0
Added :
- Add deprecation warning for constants marked as deprecated (!1623 by er433)
- Testing framework: new Test.register_constant and Test.constant_to_michelson_program to work with global constants (!1617 by er433)
- [Ithaca] Command line option
--protocol ithaca
now allow users to use Ithaca specifics (!1582 by er433 & melwyn95) - Testing framework: Dropping support for
Test.set_now
LIGO 0.38.0 onwards. (!1582 by er433 & melwyn95) - [Ithaca] Support for Option.map - MAP instruction on
option
type. (!1582 by er433 & melwyn95) - [Ithaca] Subtraction operator emmits
SUB_MUTEZ
instruction when subtracting value of typetez
. (!1582 by er433 & melwyn95) - Global constants: add compile constant sub-command (!1608 by er433)
- Global constants: register global constants for compile-contract (!1603 by er433)
- Website: Add Changelog link in header website & webide (!1602 by melwyn95)
- Experimental support for source environment (bound variable) info with --michelson-comments env (!1521 by tomjack)
Fixed :
- Fix: Raise error if typed_address is passes to Bytes.pack (!1612 by melwyn95)
- Website: Fix og image aspect ratio (!1614 by prometheansacrifice)
- Disallow raw code which is not a function in testing framework (!1613 by er433)
- Website: Use png for page metadata (!1611 by prometheansacrifice)
- Fix: Using REPL without the syntax argument (!1607 by melwyn95)
- Support old case syntax + mention as deprecated (!1606 by @SanderSpies)
- Compile only top-level views (!1598 by melwyn95)
- Rename recursive function calls when doing monomorphisation (!1577 by er433)
- Aggregation: fix type when accessing a record inside a module accessing (!1524 by Rémi Lesenechal & Exequiel Rivas)
Internal :
- Change constant typers to use LIGO types representation (!1544 by er433)
- Comments and examples for some of the Coq files (!1406 by Suzanne Soy)
Details :
[added] Add deprecation warning for constants marked as deprecated
No details provided for this change. Please visit the MR to learn more
[added] Testing framework: new Test.register_constant and Test.constant_to_michelson_program to work with global constants
No details provided for this change. Please visit the MR to learn more
[added][Ithaca] Command line option --protocol ithaca
now allow users to use Ithaca specifics
No details provided for this change. Please visit the MR to learn more
[added] Testing framework: Dropping support for Test.set_now
LIGO 0.38.0 onwards.
No details provided for this change. Please visit the MR to learn more
[added][Ithaca] Support for Option.map - MAP instruction on option
type.
No details provided for this change. Please visit the MR to learn more
[added][Ithaca] Subtraction operator emmits SUB_MUTEZ
instruction when subtracting value of type tez
.
No details provided for this change. Please visit the MR to learn more
[added] Global constants: add compile constant sub-command
No details provided for this change. Please visit the MR to learn more
[added] Global constants: register global constants for compile-contract
No details provided for this change. Please visit the MR to learn more
[added] Website: Add Changelog link in header website & webide
No details provided for this change. Please visit the MR to learn more
[added] Experimental support for source environment (bound variable) info with --michelson-comments env
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: Raise error if typed_address is passes to Bytes.pack
No details provided for this change. Please visit the MR to learn more
[fixed] Website: Fix og image aspect ratio
No details provided for this change. Please visit the MR to learn more
[fixed] Disallow raw code which is not a function in testing framework
No details provided for this change. Please visit the MR to learn more
[fixed] Website: Use png for page metadata
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: Using REPL without the syntax argument
No details provided for this change. Please visit the MR to learn more
[fixed] Support old case syntax + mention as deprecated
No details provided for this change. Please visit the MR to learn more
[fixed] Compile only top-level views
No details provided for this change. Please visit the MR to learn more
[fixed] Rename recursive function calls when doing monomorphisation
No details provided for this change. Please visit the MR to learn more
[fixed] Aggregation: fix type when accessing a record inside a module accessing
No details provided for this change. Please visit the MR to learn more
[internal] Change constant typers to use LIGO types representation
No details provided for this change. Please visit the MR to learn more
[internal] Comments and examples for some of the Coq files
No details provided for this change. Please visit the MR to learn more
0.37.0
Run this release with Docker:
docker run ligolang/ligo:0.37.0
Added :
- Docs: Update docs about Set.literal (!1572 by melwyn95)
- Testing framework: add instructions to register delegate and add baker accounts (!1547 by er433)
Fixed :
- Website: Fix logo in docusaurus config (!1595 by prometheansacrifice)
- Fix broken Tutorials link in web-ide page (!1596 by melwyn95)
- Fix: type instantiation bug when reusing same var. (!1587 by er433)
- Fix unnecessary warning emitted from muchused check (!1579 by melwyn95)
- Fixed conversion of byte tokens to lexemes. (!1570 by Christian Rinderknecht)
- Fixed pretty printing of constant constructors in type expressions. (!1569 by Christian Rinderknecht)
- Testing framework: fix decompilation of chest and chest_key values: Test.get_storage will not perform correctly on those types (!1568 by Rémi Lesénéchal)
- Enabled attributes on type declarations. (!1562 by Christian Rinderknecht)
Changed :
- Emit n-ary pair types
pair a b c...
for comb records (!1372 by tomjack)
Internal :
- Refactor: compiler options (!1557 by melwyn95)
- Refactor: Move type syntax to a common place (!1567 by melwyn95)
- Update LIGO logo on website & webide. (!1552 by melwyn95)
Other :
- merge language server changes in tooling into dev (!1588 by Heitor Toledo Lassarote de Paula)
Details :
[added] Docs: Update docs about Set.literal
No details provided for this change. Please visit the MR to learn more
[added] Testing framework: add instructions to register delegate and add baker accounts
No details provided for this change. Please visit the MR to learn more
[fixed] Website: Fix logo in docusaurus config
No details provided for this change. Please visit the MR to learn more
[fixed] Fix broken Tutorials link in web-ide page
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: type instantiation bug when reusing same var.
No details provided for this change. Please visit the MR to learn more
[fixed] Fix unnecessary warning emitted from muchused check
No details provided for this change. Please visit the MR to learn more
[fixed] Fixed conversion of byte tokens to lexemes.
No details provided for this change. Please visit the MR to learn more
[fixed] Fixed pretty printing of constant constructors in type expressions.
No details provided for this change. Please visit the MR to learn more
[fixed] Testing framework: fix decompilation of chest and chest_key values: Test.get_storage will not perform correctly on those types
No details provided for this change. Please visit the MR to learn more
[fixed] Enabled attributes on type declarations.
No details provided for this change. Please visit the MR to learn more
[changed] Emit n-ary pair types pair a b c...
for comb records
No details provided for this change. Please visit the MR to learn more
[internal] Refactor: compiler options
No details provided for this change. Please visit the MR to learn more
[internal] Refactor: Move type syntax to a common place
No details provided for this change. Please visit the MR to learn more
[internal] Update LIGO logo on website & webide.
No details provided for this change. Please visit the MR to learn more
[other] merge language server changes in tooling into dev
No details provided for this change. Please visit the MR to learn more
0.36.0
Run this release with Docker:
docker run ligolang/ligo:0.36.0
Added :
- Add voting_power & total_voting_power to test interpreter (!1542 by melwyn95)
- Update docs about adding alias for ligo on Linux/MacOS & Windows. (!1541 by melwyn95)
- Testing framework: add functions to register/generate (sk, pk) pairs for implicit addresses (!1539 by er433)
- Testing framework: add support for Tezos.implicit_account (!1533 by er433)
- Adding
Tezos.voting_power
andTezos.total_voting_power
(!1531 by Rémi Lesénéchal)
Fixed :
- Ligo test: fixing a bug where chest and chest_key values were not compiled correctly to michelson (their type were bytes instead of chest/chest_key) (!1564 by Rémi Lesénéchal)
- Fix locations for pattern matching - jsligo (!1560 by melwyn95)
- Testing framework: make type-checking run over aggregated program (!1559 by er433)
- Testing framework: fix loop on embedded Michelson (#1356) (!1549 by er433)
- Missing check for recursion function type (!1548 by Pierre-Emmanuel Wulfman)
- [PascaLIGO] Fixed how qualified names are parsed. (!1356 by Christian Rinderknecht)
- fixed typo in PausableToken.ligo (!1540 by Preetham Gujjula)
Internal :
- Fix for-of & while loops - jsligo. (!1534 by Pierre-Emmanuel Wulfman & Melwyn)
- Improve representation of polymorphic function using big lambda (!1511 by Pierre-Emmanuel Wulfman)
- Update docs about LIGO gitpod environment (!1526 by melwyn95)
- Tests for ModuleResolutions (!1523 by melwyn95)
- rework Var Modules (!1494 by Pierre-Emmanuel Wulfman)
Other :
- merge language server changes in tooling into dev (!1555 by Heitor Toledo Lassarote de Paula)
- merge language server changes in tooling into dev (!1497 by Preetham Gujjula)
Details :
[added] Add voting_power & total_voting_power to test interpreter
No details provided for this change. Please visit the MR to learn more
[added] Update docs about adding alias for ligo on Linux/MacOS & Windows.
No details provided for this change. Please visit the MR to learn more
[added] Testing framework: add functions to register/generate (sk, pk) pairs for implicit addresses
No details provided for this change. Please visit the MR to learn more
[added] Testing framework: add support for Tezos.implicit_account
No details provided for this change. Please visit the MR to learn more
[added] Adding Tezos.voting_power
and Tezos.total_voting_power
No details provided for this change. Please visit the MR to learn more
[fixed] Ligo test: fixing a bug where chest and chest_key values were not compiled correctly to michelson (their type were bytes instead of chest/chest_key)
No details provided for this change. Please visit the MR to learn more
[fixed] Fix locations for pattern matching - jsligo
No details provided for this change. Please visit the MR to learn more
[fixed] Testing framework: make type-checking run over aggregated program
No details provided for this change. Please visit the MR to learn more
[fixed] Testing framework: fix loop on embedded Michelson (#1356)
No details provided for this change. Please visit the MR to learn more
[fixed] Missing check for recursion function type
No details provided for this change. Please visit the MR to learn more
[fixed][PascaLIGO] Fixed how qualified names are parsed.
No details provided for this change. Please visit the MR to learn more
[fixed] fixed typo in PausableToken.ligo
No details provided for this change. Please visit the MR to learn more
[internal] Fix for-of & while loops - jsligo.
No details provided for this change. Please visit the MR to learn more
[internal] Improve representation of polymorphic function using big lambda
No details provided for this change. Please visit the MR to learn more
[internal] Update docs about LIGO gitpod environment
No details provided for this change. Please visit the MR to learn more
[internal] Tests for ModuleResolutions
No details provided for this change. Please visit the MR to learn more
[internal] rework Var Modules
No details provided for this change. Please visit the MR to learn more
[other] merge language server changes in tooling into dev
No details provided for this change. Please visit the MR to learn more
[other] merge language server changes in tooling into dev
No details provided for this change. Please visit the MR to learn more
0.35.0
Run this release with Docker:
docker run ligolang/ligo:0.35.0
Added :
- Support curried recursive functions (!1516 by er433)
- Testing framework: Test.transfer_* returns gas consumption (!1509 by Rémi Lesénéchal)
- Remove unused decls. (including potential
Test.
usages) when compiling parameter/storage (!1500 by er433) - Added Tezos.constant for protocol Hangzhou (!1438 by Rémi Lesénéchal)
- Docs for ligo package management (!1436 by melwyn95)
- Add support for package management to ligo using esy package manager (!1394 by melwyn95)
Fixed :
- Fix packages not getting installed via docker (!1510 by melwyn95)
- Testing framework: keep no_mutation in environment reconstruction (!1503 by er433)
Changed :
- Improve optimisation of some rare examples involving tuple/record destructuring (!1520 by tomjack)
- Transpiler: change decompilation of (some) operators (!1508 by er433)
Performance :
- Compilation: dramatically reduce compilation time when using views (!1501 by Rémi Lesénéchal ; Exequiel Rivas)
- Revert 1446 (!1499 by tomjack)
Internal :
- Remove generation of intermediary variable (!1513 by melwyn95)
- Change opam lock file usage and add dependencies (!1519 by er433)
- PPX: add ppx-woo to stages 2, 3, 4, 5 and 6 (!1489 by er433)
Details :
[added] Support curried recursive functions
No details provided for this change. Please visit the MR to learn more
[added] Testing framework: Test.transfer_* returns gas consumption
No details provided for this change. Please visit the MR to learn more
[added] Remove unused decls. (including potential Test.
usages) when compiling parameter/storage
No details provided for this change. Please visit the MR to learn more
[added] Added Tezos.constant for protocol Hangzhou
No details provided for this change. Please visit the MR to learn more
[added] Docs for ligo package management
No details provided for this change. Please visit the MR to learn more
[added] Add support for package management to ligo using esy package manager
No details provided for this change. Please visit the MR to learn more
[fixed] Fix packages not getting installed via docker
No details provided for this change. Please visit the MR to learn more
[fixed] Testing framework: keep no_mutation in environment reconstruction
No details provided for this change. Please visit the MR to learn more
[changed] Improve optimisation of some rare examples involving tuple/record destructuring
No details provided for this change. Please visit the MR to learn more
[changed] Transpiler: change decompilation of (some) operators
No details provided for this change. Please visit the MR to learn more
[performance] Compilation: dramatically reduce compilation time when using views
No details provided for this change. Please visit the MR to learn more
[performance] Revert 1446
No details provided for this change. Please visit the MR to learn more
[internal] Remove generation of intermediary variable
No details provided for this change. Please visit the MR to learn more
[internal] Change opam lock file usage and add dependencies
No details provided for this change. Please visit the MR to learn more
[internal] PPX: add ppx-woo to stages 2, 3, 4, 5 and 6
No details provided for this change. Please visit the MR to learn more
0.34.0
Run this release with Docker:
docker run ligolang/ligo:0.34.0
Added :
- Testing framework: add Test.decompile primitive (!1493 by er433)
Fixed :
- Fixing a bug where a contract compilation would fail because of views compilation with an obscure error message (!1496 by Rémi Lesénéchal ; Exequiel Rivas)
- Test.run: add missing type-checking conditions (!1493 by er433)
- testing framework: fix sets comparison (!1488 by Rémi Lesénéchal)
- Fixed regression in standalone preprocessor, lexers and parsers introduced when porting the code base from Stdlib to Core. (!1484 by Christian Rinderknecht)
- Fix REASONLIGO LEFTOVER (!1445 by melwyn95)
Internal :
- Move ES6FUN token insertion to a pre-parser (!1465 by @SanderSpies)
- Files cleaning (!1486 by er433)
- REPL: re-write internal state (!1431 by Rémi Lesenechal & Exequiel Rivas)
- Testing framework: interpreter re-written at ast_aggregated (!1431 by Rémi Lesenechal & Exequiel Rivas)
- New stage: ast_aggregated (!1431 by Rémi Lesenechal & Exequiel Rivas)
Details :
[added] Testing framework: add Test.decompile primitive
No details provided for this change. Please visit the MR to learn more
[fixed] Fixing a bug where a contract compilation would fail because of views compilation with an obscure error message
No details provided for this change. Please visit the MR to learn more
[fixed] Test.run: add missing type-checking conditions
No details provided for this change. Please visit the MR to learn more
[fixed] testing framework: fix sets comparison
No details provided for this change. Please visit the MR to learn more
[fixed] Fixed regression in standalone preprocessor, lexers and parsers introduced when porting the code base from Stdlib to Core.
No details provided for this change. Please visit the MR to learn more
[fixed] Fix REASONLIGO LEFTOVER
No details provided for this change. Please visit the MR to learn more
[internal] Move ES6FUN token insertion to a pre-parser
No details provided for this change. Please visit the MR to learn more
[internal] Files cleaning
No details provided for this change. Please visit the MR to learn more
[internal] REPL: re-write internal state
No details provided for this change. Please visit the MR to learn more
[internal] Testing framework: interpreter re-written at ast_aggregated
No details provided for this change. Please visit the MR to learn more
[internal] New stage: ast_aggregated
No details provided for this change. Please visit the MR to learn more
0.33.0
Run this release with Docker:
docker run ligolang/ligo:0.33.0
Added :
- Add literals/negation for bls12_381_g1/g2/fr (!1479 by er433)
Fixed :
- Add cases for decompilation of bls12_381_g1/g2/fr (!1481 by er433)
- Fix CLI flag --library not splitting by comma (!1472 by melwyn95)
- Fix --lib and adding it for 'print preprocess' (!1460 by melwyn95 & Rémi Lesénéchal)
Internal :
- Testing framework: add and fix primitives (Crypto.*, Set.remove, Option.unopt/Option.unopt_with_error, Tezos.pairing_check) (!1468 by er433)
Details :
[added] Add literals/negation for bls12_381_g1/g2/fr
No details provided for this change. Please visit the MR to learn more
[fixed] Add cases for decompilation of bls12_381_g1/g2/fr
No details provided for this change. Please visit the MR to learn more
[fixed] Fix CLI flag --library not splitting by comma
No details provided for this change. Please visit the MR to learn more
[fixed] Fix --lib and adding it for 'print preprocess'
No details provided for this change. Please visit the MR to learn more
[internal] Testing framework: add and fix primitives (Crypto.*, Set.remove, Option.unopt/Option.unopt_with_error, Tezos.pairing_check)
No details provided for this change. Please visit the MR to learn more
0.32.0
Run this release with Docker:
docker run ligolang/ligo:0.32.0
Added :
- Testing framework: add asserts in interpreter (!1463 by er433)
- Testing framework: add support for Bytes.sub (!1462 by er433)
- Webide: add examples for JsLIGO and re-enable increment examples for other languages (!1457 by er433)
- Testing framework: add Test.random for generating values using QCheck (!1244 by er433)
Fixed :
- fixing the "ad-hoc polymorphism" for pseudo-modules Map (working on maps and big maps) (!1452 by Rémi Lesénéchal)
- Fix compile storage & compile parameter (apply module morphing) (!1448 by melwyn95)
Changed :
- Fix typo in record access and record update error (!1467 by Pierre-Emmanuel Wulfman)
- Deprecated CLI is now removed. --infer flag has been dropped (!1461 by Pierre-Emmanuel Wulfman)
Performance :
- Emit
PAIR k
for comb record construction (!1371 by tomjack)
Internal :
- Build: remove -O3 from dune file (!1456 by er433)
- Print the order in which dependencies are built (!1347 by melwyn95)
- Work around dune/coq bug (delete generated .ml) (!1451 by tomjack)
- Binaries: default build without ADX instructions (!1450 by er433)
- Ppx: apply ppx_map in combinators (!1398 by er433)
Details :
[added] Testing framework: add asserts in interpreter
No details provided for this change. Please visit the MR to learn more
[added] Testing framework: add support for Bytes.sub
No details provided for this change. Please visit the MR to learn more
[added] Webide: add examples for JsLIGO and re-enable increment examples for other languages
No details provided for this change. Please visit the MR to learn more
[added] Testing framework: add Test.random for generating values using QCheck
No details provided for this change. Please visit the MR to learn more
[fixed] fixing the "ad-hoc polymorphism" for pseudo-modules Map (working on maps and big maps)
No details provided for this change. Please visit the MR to learn more
[fixed] Fix compile storage & compile parameter (apply module morphing)
No details provided for this change. Please visit the MR to learn more
[changed] Fix typo in record access and record update error
No details provided for this change. Please visit the MR to learn more
[changed] Deprecated CLI is now removed. --infer flag has been dropped
No details provided for this change. Please visit the MR to learn more
[performance] Emit PAIR k
for comb record construction
No details provided for this change. Please visit the MR to learn more
[internal] Build: remove -O3 from dune file
No details provided for this change. Please visit the MR to learn more
[internal] Print the order in which dependencies are built
No details provided for this change. Please visit the MR to learn more
[internal] Work around dune/coq bug (delete generated .ml)
No details provided for this change. Please visit the MR to learn more
[internal] Binaries: default build without ADX instructions
No details provided for this change. Please visit the MR to learn more
[internal] Ppx: apply ppx_map in combinators
No details provided for this change. Please visit the MR to learn more
0.31.0
Run this release with Docker:
docker run ligolang/ligo:0.31.0
Added :
- Test framework: add pack/unpack using Michelson interpreter (!1429 by er433)
- Experimental: propagate source locations to Michelson with
--michelson-comments location
(!1251 by tomjack)
Fixed :
- Fix type error for sapling_state inside a record (!1443 by melwyn95)
- ReasonLIGO: Improve handling of recursive arrows functions. (!1442 by @SanderSpies)
- Fix webide by adding correct file extension to temp files (!1440 by melwyn95)
- Fix: simple polymorphism wrong interaction with module accessing (!1427 by er433)
- Fix: simple polymorphism; remember instances in lambda case (!1423 by er433)
Performance :
- Self mini_c optimizations: apply a single inline per round (!1446 by er433)
Internal :
- Re-do some reverted module inlining changes (!1444 by tomjack)
- Update tezos-ligo submodule to latest Hangzhou release (!1439 by melwyn95)
- Transpilation: expected cases update (!1435 by er433)
- PPX: use ppx_construct in main_errors (!1432 by er433)
- Test case: add a test case for module env. (!1412 by er433)
- Add a script that checks for duplicate filenames (!1345 by melwyn95)
Details :
[added] Test framework: add pack/unpack using Michelson interpreter
No details provided for this change. Please visit the MR to learn more
[added] Experimental: propagate source locations to Michelson with --michelson-comments location
No details provided for this change. Please visit the MR to learn more
[fixed] Fix type error for sapling_state inside a record
No details provided for this change. Please visit the MR to learn more
[fixed] ReasonLIGO: Improve handling of recursive arrows functions.
No details provided for this change. Please visit the MR to learn more
[fixed] Fix webide by adding correct file extension to temp files
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: simple polymorphism wrong interaction with module accessing
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: simple polymorphism; remember instances in lambda case
No details provided for this change. Please visit the MR to learn more
[performance] Self mini_c optimizations: apply a single inline per round
No details provided for this change. Please visit the MR to learn more
[internal] Re-do some reverted module inlining changes
No details provided for this change. Please visit the MR to learn more
[internal] Update tezos-ligo submodule to latest Hangzhou release
No details provided for this change. Please visit the MR to learn more
[internal] Transpilation: expected cases update
No details provided for this change. Please visit the MR to learn more
[internal] PPX: use ppx_construct in main_errors
No details provided for this change. Please visit the MR to learn more
[internal] Test case: add a test case for module env.
No details provided for this change. Please visit the MR to learn more
[internal] Add a script that checks for duplicate filenames
No details provided for this change. Please visit the MR to learn more
0.30.0
Run this release with Docker:
docker run ligolang/ligo:0.30.0
Added :
- Fix typo in entrypoints-contracts.md (!1298 by @mweichert)
- Generate syntax highlighting for PascaLIGO (!1418 by @SanderSpies)
- Generate ReasonLIGO syntax highlighting for VIM, Emacs, VS Code (!1415 by @SanderSpies)
- Generate VSCode syntax highlighting for CameLIGO (!1414 by @SanderSpies)
- Generate CameLIGO Syntax Highlighting from definition in OCaml - Emacs + VIM (!1210 by @SanderSpies)
- Testing framework: update run so it runs in current tezos_context and port tzip12 tests to testing framework (!1409 by er433)
Fixed :
- Fix 'ligo interpret' when working with polymorphic types (!1421 by Exequiel Rivas & Rémi Lesénéchal)
Performance :
- Performance: separate environments for "dummy" and "test" (!1410 by er433)
- Optimized compilation of modules (!1297 by tomjack)
Internal :
- Bump menhir version (!1419 by Andre Popovitch)
- PPX: add ppx_poly_constructor for errors (!1417 by er433)
- PPX: generate constant''s tag, print and yojson (!1196 by er433)
- Tezos dep.: vendored version now points to a custom repo (!1410 by er433)
Details :
[added] Fix typo in entrypoints-contracts.md
No details provided for this change. Please visit the MR to learn more
[added] Generate syntax highlighting for PascaLIGO
No details provided for this change. Please visit the MR to learn more
[added] Generate ReasonLIGO syntax highlighting for VIM, Emacs, VS Code
No details provided for this change. Please visit the MR to learn more
[added] Generate VSCode syntax highlighting for CameLIGO
No details provided for this change. Please visit the MR to learn more
[added] Generate CameLIGO Syntax Highlighting from definition in OCaml - Emacs + VIM
No details provided for this change. Please visit the MR to learn more
[added] Testing framework: update run so it runs in current tezos_context and port tzip12 tests to testing framework
No details provided for this change. Please visit the MR to learn more
[fixed] Fix 'ligo interpret' when working with polymorphic types
No details provided for this change. Please visit the MR to learn more
[performance] Performance: separate environments for "dummy" and "test"
No details provided for this change. Please visit the MR to learn more
[performance] Optimized compilation of modules
No details provided for this change. Please visit the MR to learn more
[internal] Bump menhir version
No details provided for this change. Please visit the MR to learn more
[internal] PPX: add ppx_poly_constructor for errors
No details provided for this change. Please visit the MR to learn more
[internal] PPX: generate constant''s tag, print and yojson
No details provided for this change. Please visit the MR to learn more
[internal] Tezos dep.: vendored version now points to a custom repo
No details provided for this change. Please visit the MR to learn more
0.29.0
Run this release with Docker:
docker run ligolang/ligo:0.29.0
Added :
- Docs for Bytes (!1389 by melwyn95)
Fixed :
- Fix: add case of GET_AND_UPDATE for Hangzhou (!1390 by er433)
- Testing framework: fix order of receipt processing for big_maps (!1375 by er433)
Changed :
- BuidSystem is now independent from the compiler (!1368 by Pierre-Emmanuel Wulfman)
Performance :
- Profiling and fixes: initialize dummy_environment only when needed (!1402 by er433)
Internal :
- Implement token wrapper to pass attributes (!1395 by @SanderSpies)
- Update sed to fix Fmt not found (tezos-stdlib) (!1397 by melwyn95)
- Testing framework: re-enable test for bigmap_set (!1375 by er433)
Details :
[added] Docs for Bytes
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: add case of GET_AND_UPDATE for Hangzhou
No details provided for this change. Please visit the MR to learn more
[fixed] Testing framework: fix order of receipt processing for big_maps
No details provided for this change. Please visit the MR to learn more
[changed] BuidSystem is now independent from the compiler
No details provided for this change. Please visit the MR to learn more
[performance] Profiling and fixes: initialize dummy_environment only when needed
No details provided for this change. Please visit the MR to learn more
[internal] Implement token wrapper to pass attributes
No details provided for this change. Please visit the MR to learn more
[internal] Update sed to fix Fmt not found (tezos-stdlib)
No details provided for this change. Please visit the MR to learn more
[internal] Testing framework: re-enable test for bigmap_set
No details provided for this change. Please visit the MR to learn more
0.28.0
Run this release with Docker:
docker run ligolang/ligo:0.28.0
Added :
- Docs for switch statement - jsligo (!1358 by melwyn95)
- Tree abstraction for switch statements - jsligo (!1358 by melwyn95)
- [Hangzhou] Testing framework: expose functions 'create_chest_and_chest_key' and 'create_chest_key' from Tezos crypto library (timelock) as 'Test.create_chest' and 'Test.create_chest_key' respectively (!1346 by Rémi Lesénéchal)
- [Hangzhou] Testing framework: Test.originate_from_file now takes an additional list of top-level declaration for views (!1346 by Rémi Lesénéchal)
- [Hangzhou] Command line option '--protocol hangzhou' now allow users to use hangzhou specifics (!1346 by Rémi Lesénéchal)
- Testing framework: new primitive 'Test.cast_address' to cast an address to a typed_adress (!1346 by Rémi Lesénéchal)
- [Hangzhou] support for on-chain views. Command line option '--views' and top-level declaration '[@view]' annotation (!1346 by Rémi Lesénéchal)
- [Hangzhou] support for timelock. Types: chest; chest_key; chest_opening_result. Primitives: Tezos.open_chest (!1346 by Rémi Lesénéchal)
- Docs: simple polymorphism (!1361 by er433)
- Simple polymorphism: add support for simple polymorphism in the type-checking pass (!1294 by er433)
Fixed :
- Testing framework: fix wrong env. reconstruction on mod. deps. (!1374 by er433)
- Testing framework: support E_raw_code for functions (!1370 by er433)
- Fix issue where writing multiple ifs could lead to disappearing code (!1369 by @SanderSpies)
- Fix ReasonLIGO inline tuple function argument (!1367 by @SanderSpies)
- Make JsLIGO export handling similar to JavaScript (!1354 by @SanderSpies)
- Fix record destructuring error reporting (!1362 by Rémi Lesénéchal)
Changed :
- update to ocaml 4.12.1 (!1346 by Rémi Lesénéchal)
Internal :
- Use opam 2.1 in CI (!1278 by tomjack)
Other :
- website: improve the download ligo page (!1382 by Rémi Lesénéchal)
Details :
[added] Docs for switch statement - jsligo
No details provided for this change. Please visit the MR to learn more
[added] Tree abstraction for switch statements - jsligo
No details provided for this change. Please visit the MR to learn more
[added][Hangzhou] Testing framework: expose functions 'create_chest_and_chest_key' and 'create_chest_key' from Tezos crypto library (timelock) as 'Test.create_chest' and 'Test.create_chest_key' respectively
No details provided for this change. Please visit the MR to learn more
[added][Hangzhou] Testing framework: Test.originate_from_file now takes an additional list of top-level declaration for views
No details provided for this change. Please visit the MR to learn more
[added][Hangzhou] Command line option '--protocol hangzhou' now allow users to use hangzhou specifics
No details provided for this change. Please visit the MR to learn more
[added] Testing framework: new primitive 'Test.cast_address' to cast an address to a typed_adress
No details provided for this change. Please visit the MR to learn more
[added][Hangzhou] support for on-chain views. Command line option '--views' and top-level declaration '[@view]' annotation
No details provided for this change. Please visit the MR to learn more
[added][Hangzhou] support for timelock. Types: chest; chest_key; chest_opening_result. Primitives: Tezos.open_chest
No details provided for this change. Please visit the MR to learn more
[added] Docs: simple polymorphism
No details provided for this change. Please visit the MR to learn more
[added] Simple polymorphism: add support for simple polymorphism in the type-checking pass
No details provided for this change. Please visit the MR to learn more
[fixed] Testing framework: fix wrong env. reconstruction on mod. deps.
No details provided for this change. Please visit the MR to learn more
[fixed] Testing framework: support E_raw_code for functions
No details provided for this change. Please visit the MR to learn more
[fixed] Fix issue where writing multiple ifs could lead to disappearing code
No details provided for this change. Please visit the MR to learn more
[fixed] Fix ReasonLIGO inline tuple function argument
No details provided for this change. Please visit the MR to learn more
[fixed] Make JsLIGO export handling similar to JavaScript
No details provided for this change. Please visit the MR to learn more
[fixed] Fix record destructuring error reporting
No details provided for this change. Please visit the MR to learn more
[changed] update to ocaml 4.12.1
No details provided for this change. Please visit the MR to learn more
[internal] Use opam 2.1 in CI
No details provided for this change. Please visit the MR to learn more
[other] website: improve the download ligo page
No details provided for this change. Please visit the MR to learn more
0.27.0
Run this release with Docker:
docker run ligolang/ligo:0.27.0
Added :
- JsLIGO: Add support for assignment operators: += /= *= -= %= (!1348 by @SanderSpies)
- Testing framework: add comparator for bigmaps (!1340 by er433)
- Docs: new features on mutation (!1323 by er433)
- testing framework: adding timestamp arithmetic in LIGO interpreter (!1322 by Rémi Lesénéchal)
- JsLIGO error messages (!1272 by @SanderSpies)
Fixed :
- fix a bug where _ patterns where not compiled to fresh variables (!1359 by Rémi Lesénéchal)
- fix a bug where a wrongly typed pattern was getting through the typechecker (!1285 by Rémi Lesénéchal)
- Fix List.fold_left in test interpreter (!1338 by melwyn95)
- Fix external modules bug in test interpreter (!1338 by melwyn95)
- Fix preprocessor not returning the #import path from #include (!1335 by melwyn95)
- Testing framework: internal replace of compare function (!1334 by er433)
- Fix: testing framework checks if current source is an implicit contract (!1267 by er433)
- Fixes #1232 by make self_ast_imperative's map work with Declaration_module (!1195 by @er433)
Changed :
- CLI: add a wrapper message for failures (!1350 by er433)
Internal :
- JsLIGO: keep attributes in let initializer (!1342 by er433)
- Use Topological Sort to solve the build dependency graph (!1341 by melwyn95)
- Fix test file names e.g. a.mligo & A.mligo causes issues (!1339 by melwyn95)
- Removed uses of vendor .opam in CI (!1327 by tomjack)
- Testing framework: add support for missing ops. on tez (!1330 by er433)
- Testing framework: add missing cases for iteration in JsLIGO (C_FOLD) (!1328 by er433)
- JsLIGO decompilation: quick fix for decompilation of expressions (!1326 by er433)
Details :
[added] JsLIGO: Add support for assignment operators: += /= *= -= %=
No details provided for this change. Please visit the MR to learn more
[added] Testing framework: add comparator for bigmaps
No details provided for this change. Please visit the MR to learn more
[added] Docs: new features on mutation
No details provided for this change. Please visit the MR to learn more
[added] testing framework: adding timestamp arithmetic in LIGO interpreter
No details provided for this change. Please visit the MR to learn more
[added] JsLIGO error messages
No details provided for this change. Please visit the MR to learn more
[fixed] fix a bug where _ patterns where not compiled to fresh variables
No details provided for this change. Please visit the MR to learn more
[fixed] fix a bug where a wrongly typed pattern was getting through the typechecker
No details provided for this change. Please visit the MR to learn more
[fixed] Fix List.fold_left in test interpreter
No details provided for this change. Please visit the MR to learn more
[fixed] Fix external modules bug in test interpreter
No details provided for this change. Please visit the MR to learn more
[fixed] Fix preprocessor not returning the #import path from #include
No details provided for this change. Please visit the MR to learn more
[fixed] Testing framework: internal replace of compare function
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: testing framework checks if current source is an implicit contract
No details provided for this change. Please visit the MR to learn more
[fixed] Fixes #1232 by make self_ast_imperative's map work with Declaration_module
No details provided for this change. Please visit the MR to learn more
[changed] CLI: add a wrapper message for failures
No details provided for this change. Please visit the MR to learn more
[internal] JsLIGO: keep attributes in let initializer
No details provided for this change. Please visit the MR to learn more
[internal] Use Topological Sort to solve the build dependency graph
No details provided for this change. Please visit the MR to learn more
[internal] Fix test file names e.g. a.mligo & A.mligo causes issues
No details provided for this change. Please visit the MR to learn more
[internal] Removed uses of vendor .opam in CI
No details provided for this change. Please visit the MR to learn more
[internal] Testing framework: add support for missing ops. on tez
No details provided for this change. Please visit the MR to learn more
[internal] Testing framework: add missing cases for iteration in JsLIGO (C_FOLD)
No details provided for this change. Please visit the MR to learn more
[internal] JsLIGO decompilation: quick fix for decompilation of expressions
No details provided for this change. Please visit the MR to learn more
0.26.0
Run this release with Docker:
docker run ligolang/ligo:0.26.0
Added :
- Add missing API functions to interpreter [List.fold_right, List.fold_left, List.head_opt, List.tail_opt, Set.fold_desc, Set.update, Map.get_and_update] (!1319 by melwyn95)
- Testing framework: add steps bound (for timeout) (!1308 by er433)
- Documentation of Preprocessor and LexerLib libraries. (!1306 by Christian Rinderknecht)
- Testing framework: add attribute to mark non-mutable declarations (!1303 by er433)
Fixed :
- fix typing error related to Test.to_contract primitive (!1318 by Rémi Lesénéchal)
- improves error locations on arguments in JsLigo (!1315 by Rémi Lesénéchal)
- JsLIGO: disallow variables with the same name in the same block to align with JS/TS (!1296 by @SanderSpies)
- JsLIGO: improve floating block scope handling (!1296 by @SanderSpies)
- ReasonLIGO: support functions without arguments (!1292 by @SanderSpies)
Changed :
- updating tezos dependencies to Granada (010-PtGRANAD) (!1301 by Ulrik Strid)
- Add assert_with_error funciton family (!1300 by Pierre-Emmanuel Wulfman)
Removed :
- testing framework: deprecates bootstrapped accounts support due to a problem in one of our tezos dependency, this feature will be enabled again in further updates (!1301 by Rémi Lesénéchal)
Internal :
- Add all dependencies to opam.ligo (including dependencies required by vendored dependencies) (!1317 by Andre Popovitch)
- Use Dune for vendoring instead of Opam (!1312 by Andre Popovitch)
- Generate manpages for new-cli & rename
ligo print preprocess
toligo print preprocessed
(!1304 by melwyn95) - Tests: remove unused warnings (!1290 by er433)
Details :
[added] Add missing API functions to interpreter [List.fold_right, List.fold_left, List.head_opt, List.tail_opt, Set.fold_desc, Set.update, Map.get_and_update]
No details provided for this change. Please visit the MR to learn more
[added] Testing framework: add steps bound (for timeout)
No details provided for this change. Please visit the MR to learn more
[added] Documentation of Preprocessor and LexerLib libraries.
No details provided for this change. Please visit the MR to learn more
[added] Testing framework: add attribute to mark non-mutable declarations
No details provided for this change. Please visit the MR to learn more
[fixed] fix typing error related to Test.to_contract primitive
No details provided for this change. Please visit the MR to learn more
[fixed] improves error locations on arguments in JsLigo
No details provided for this change. Please visit the MR to learn more
[fixed] JsLIGO: disallow variables with the same name in the same block to align with JS/TS
No details provided for this change. Please visit the MR to learn more
[fixed] JsLIGO: improve floating block scope handling
No details provided for this change. Please visit the MR to learn more
[fixed] ReasonLIGO: support functions without arguments
No details provided for this change. Please visit the MR to learn more
[changed] updating tezos dependencies to Granada (010-PtGRANAD)
No details provided for this change. Please visit the MR to learn more
[changed] Add assert_with_error funciton family
No details provided for this change. Please visit the MR to learn more
[removed] testing framework: deprecates bootstrapped accounts support due to a problem in one of our tezos dependency, this feature will be enabled again in further updates
No details provided for this change. Please visit the MR to learn more
[internal] Add all dependencies to opam.ligo (including dependencies required by vendored dependencies)
No details provided for this change. Please visit the MR to learn more
[internal] Use Dune for vendoring instead of Opam
No details provided for this change. Please visit the MR to learn more
[internal] Generate manpages for new-cli & rename ligo print preprocess
to ligo print preprocessed
No details provided for this change. Please visit the MR to learn more
[internal] Tests: remove unused warnings
No details provided for this change. Please visit the MR to learn more
0.25.0
Run this release with Docker:
docker run ligolang/ligo:0.25.0
Added :
- Testing framework: add support for modules (!1280 by er433)
Fixed :
- Removed syntax of tupls without parentheses as parameters. (!1299 by Christian Rinderknecht)
- Extended syntax to support 'let x (type a) : 'a = x' etc. (!1299 by Christian Rinderknecht)
- Add support for chained assignment (!1281 by @SanderSpies)
Changed :
- Remove JsLIGO new keyword (!1293 by @SanderSpies)
- Modify Cli (!1271 by Pierre-Emmanuel Wulfman)
Performance :
- improve performance of get-scope --with-types option by re-using the type environment instead of building a partial program (!1286 by Rémi Lesénéchal)
Internal :
- Change remove_unused of self_ast_typed to search for free variables in module experssions & free module variables in expressions (!1295 by melwyn95)
- Refactor: use Combinators.equal_value to compare record, list, set & map in interpreter (!1291 by melwyn95)
- Nested value comparison in interpreter for list, set & map (!1274 by melwyn95)
- Testing framework: improve environment reconstruction (module support) (!1289 by er433)
- Testing framework: keep a local store for bigmaps (!1285 by er433)
- Improve error message when type of contract can't be inferred (!1268 by melwyn95)
Details :
[added] Testing framework: add support for modules
No details provided for this change. Please visit the MR to learn more
[fixed] Removed syntax of tupls without parentheses as parameters.
No details provided for this change. Please visit the MR to learn more
[fixed] Extended syntax to support 'let x (type a) : 'a = x' etc.
No details provided for this change. Please visit the MR to learn more
[fixed] Add support for chained assignment
No details provided for this change. Please visit the MR to learn more
[changed] Remove JsLIGO new keyword
No details provided for this change. Please visit the MR to learn more
[changed] Modify Cli
No details provided for this change. Please visit the MR to learn more
[performance] improve performance of get-scope --with-types option by re-using the type environment instead of building a partial program
No details provided for this change. Please visit the MR to learn more
[internal] Change remove_unused of self_ast_typed to search for free variables in module experssions & free module variables in expressions
No details provided for this change. Please visit the MR to learn more
[internal] Refactor: use Combinators.equal_value to compare record, list, set & map in interpreter
No details provided for this change. Please visit the MR to learn more
[internal] Nested value comparison in interpreter for list, set & map
No details provided for this change. Please visit the MR to learn more
[internal] Testing framework: improve environment reconstruction (module support)
No details provided for this change. Please visit the MR to learn more
[internal] Testing framework: keep a local store for bigmaps
No details provided for this change. Please visit the MR to learn more
[internal] Improve error message when type of contract can't be inferred
No details provided for this change. Please visit the MR to learn more
0.24.0
Run this release with Docker:
docker run ligolang/ligo:0.24.0
Added :
- Testing framework: add support for re-generating files from mutation (!1214 by er433)
Fixed :
- Fixed bug in preprocessing #import (!1282 by Christian Rinderknecht)
- Fix bitwise operators in interpreter (!1276 by melwyn95)
- Fix: Test.originate now supports recursive functions (!1273 by er433)
- JsLIGO: add support for tuple assignment (!1262 by @SanderSpies)
- Fix: C_POLYMORPHIC_ADD resolution to C_CONCAT/C_ADD in JsLIGO (!1256 by er433)
- Fix: annotations are no long uncapitalized (!1241 by er433)
Changed :
- Update to Florence 9.7 (!1275 by Pierre-Emmanuel Wulfman)
Deprecated :
- Deprecates Test.compile_expression Test.compile_expression_subst Test.mutate_expression Test.mutate_count (!1253 by Rémi Lesénéchal)
Internal :
- Ast-typed pass: transform unused rec. to lambda (!1254 by er433)
- Testing framework: fix for constant declaration, it does not need to evaluate anymore (!1269 by er433)
- Docs: fix type signatures & examples for list, set & map (!1257 by melwyn95)
- Testing framework: use ppx to check which operations correspond to it (!1258 by er433)
Details :
[added] Testing framework: add support for re-generating files from mutation
No details provided for this change. Please visit the MR to learn more
[fixed] Fixed bug in preprocessing #import
No details provided for this change. Please visit the MR to learn more
[fixed] Fix bitwise operators in interpreter
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: Test.originate now supports recursive functions
No details provided for this change. Please visit the MR to learn more
[fixed] JsLIGO: add support for tuple assignment
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: C_POLYMORPHIC_ADD resolution to C_CONCAT/C_ADD in JsLIGO
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: annotations are no long uncapitalized
No details provided for this change. Please visit the MR to learn more
[changed] Update to Florence 9.7
No details provided for this change. Please visit the MR to learn more
[deprecated] Deprecates Test.compile_expression Test.compile_expression_subst Test.mutate_expression Test.mutate_count
No details provided for this change. Please visit the MR to learn more
[internal] Ast-typed pass: transform unused rec. to lambda
No details provided for this change. Please visit the MR to learn more
[internal] Testing framework: fix for constant declaration, it does not need to evaluate anymore
No details provided for this change. Please visit the MR to learn more
[internal] Docs: fix type signatures & examples for list, set & map
No details provided for this change. Please visit the MR to learn more
[internal] Testing framework: use ppx to check which operations correspond to it
No details provided for this change. Please visit the MR to learn more
0.23.0
Run this release with Docker:
docker run ligolang/ligo:0.23.0
Added :
- Sub-command compile-expression: add option for disabling running of compiled code (!1252 by er433)
- Added attributes on lambdas. (!1179 by Christian Rinderknecht)
- Front-end: Parameteric type expressions, polymorphic type and value definitions. (!1179 by Christian Rinderknecht)
- The typechecking now understand parametric types (!1179 by Rémi Lesénéchal)
- Testing framework: a call trace is kept for giving context on failure (!1209 by er4333)
- Add bitwise operators for CameLIGO & ReasonLIGO (!1205 by Melwyn Saldanha)
Fixed :
- Fix: failure in REPL's exception handling (!1246 by er433)
- Fix: check that Bytes.unpack's annotated type is an option (!1245 by er433)
- true/false in pattern matching are now forbidden (use True and False instead) (!1179 by Rémi Lesénéchal)
- Fix: remove unused declarations before compiling (!1239 by er433)
- [PascaLIGO/CameLIGO] Rewrite of the parse error messages. (!1179 by Christian Rinderknecht)
- [PascaLIGO] Fixed pretty-printing. (!1179 by Christian Rinderknecht)
- Suspend tail recursion analysis in E_module_accessor (!1192 by @er433)
Removed :
- Removed preprocessing directives #region and #endregion. (!1179 by Christian Rinderknecht)
Internal :
- Fix: get_fv in self-ast-tyed/sef-ast-imperative (!1248 by er433)
- [CameLIGO/ReasonLIGO/JsLIGO] Removed predefined constructors true and false. (!1179 by Christian Rinderknecht)
- [PascaLIGO] Removed predefined constructors Unit, True and False. (!1179 by Christian Rinderknecht)
- [PascaLIGO/CameLIGO/ReasonLIGO] Removed CST node TWild (standing for _). (!1179 by Christian Rinderknecht)
- Refactoring of the parsers, CSTs and printers. (!1179 by Christian Rinderknecht)
- JsLIGO: Fixed dangling else in the parser. Fixeds attributes on pattern variables and declarations. (!1179 by Christian Rinderknecht)
- Changed all Token.mll into Token.ml (!1179 by Christian Rinderknecht)
- All syntaxes: Removed predefined constructors Some and None. (!1179 by Christian Rinderknecht)
Details :
[added] Sub-command compile-expression: add option for disabling running of compiled code
No details provided for this change. Please visit the MR to learn more
[added] Added attributes on lambdas.
No details provided for this change. Please visit the MR to learn more
[added] Front-end: Parameteric type expressions, polymorphic type and value definitions.
No details provided for this change. Please visit the MR to learn more
[added] The typechecking now understand parametric types
No details provided for this change. Please visit the MR to learn more
[added] Testing framework: a call trace is kept for giving context on failure
No details provided for this change. Please visit the MR to learn more
[added] Add bitwise operators for CameLIGO & ReasonLIGO
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: failure in REPL's exception handling
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: check that Bytes.unpack's annotated type is an option
No details provided for this change. Please visit the MR to learn more
[fixed] true/false in pattern matching are now forbidden (use True and False instead)
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: remove unused declarations before compiling
No details provided for this change. Please visit the MR to learn more
[fixed][PascaLIGO/CameLIGO] Rewrite of the parse error messages.
No details provided for this change. Please visit the MR to learn more
[fixed][PascaLIGO] Fixed pretty-printing.
No details provided for this change. Please visit the MR to learn more
[fixed] Suspend tail recursion analysis in E_module_accessor
No details provided for this change. Please visit the MR to learn more
[removed] Removed preprocessing directives #region and #endregion.
No details provided for this change. Please visit the MR to learn more
[internal] Fix: get_fv in self-ast-tyed/sef-ast-imperative
No details provided for this change. Please visit the MR to learn more
[internal][CameLIGO/ReasonLIGO/JsLIGO] Removed predefined constructors true and false.
No details provided for this change. Please visit the MR to learn more
[internal][PascaLIGO] Removed predefined constructors Unit, True and False.
No details provided for this change. Please visit the MR to learn more
[internal][PascaLIGO/CameLIGO/ReasonLIGO] Removed CST node TWild (standing for _).
No details provided for this change. Please visit the MR to learn more
[internal] Refactoring of the parsers, CSTs and printers.
No details provided for this change. Please visit the MR to learn more
[internal] JsLIGO: Fixed dangling else in the parser. Fixeds attributes on pattern variables and declarations.
No details provided for this change. Please visit the MR to learn more
[internal] Changed all Token.mll into Token.ml
No details provided for this change. Please visit the MR to learn more
[internal] All syntaxes: Removed predefined constructors Some and None.
No details provided for this change. Please visit the MR to learn more
0.22.0
Run this release with Docker:
docker run ligolang/ligo:0.22.0
Added :
- Contract pass: check entrypoint syntax in C_CONTRACT_ENTRYPOINT(_OPT) (!1223 by er433)
Fixed :
- Fix: top-level underscore "definition" breaks testing framework (!1238 by er433)
- Testing framework: fix overriding of variables on environment reconstruction (!1226 by er433)
- Fix #1240: use annotations when checking Tezos.self (!1217 by er433)
Internal :
- Handling errors with exception (!1234 by pierre-emmanuel)
- Clean up error handling in testing framework (!1218 by er433)
Details :
[added] Contract pass: check entrypoint syntax in C_CONTRACT_ENTRYPOINT(_OPT)
No details provided for this change. Please visit the MR to learn more
[fixed] Fix: top-level underscore "definition" breaks testing framework
No details provided for this change. Please visit the MR to learn more
[fixed] Testing framework: fix overriding of variables on environment reconstruction
No details provided for this change. Please visit the MR to learn more
[fixed] Fix #1240: use annotations when checking Tezos.self
No details provided for this change. Please visit the MR to learn more
[internal] Handling errors with exception
No details provided for this change. Please visit the MR to learn more
[internal] Clean up error handling in testing framework
No details provided for this change. Please visit the MR to learn more
0.21.0
Run this release with Docker:
docker run ligolang/ligo:0.21.0
Fixed :
- Trim warnings to not cause accidental error output. (!1222 by @SanderSpies)
- Fix editor extension page (!1219 by @SanderSpies)
Internal :
- Handling warnings as effect (!1224 by pierre-emmanuel)
Details :
[fixed] Trim warnings to not cause accidental error output.
No details provided for this change. Please visit the MR to learn more
[fixed] Fix editor extension page
No details provided for this change. Please visit the MR to learn more
[internal] Handling warnings as effect
No details provided for this change. Please visit the MR to learn more
0.20.0
Run this release with Docker:
docker run ligolang/ligo:0.20.0
Added :
- Add commands for mutating CST/AST, and primitives formutation in testing framework (!1156 by er433)
Fixed :
- Transpiler: add parenthesis around typed pattern when decompiling CameLIGO (!1204 by er433)
- Improve JsLIGO handling of attributes (!1199 by @SanderSpies)
- Properly support tuple accessors when using '+' operator. (!1197 by @SanderSpies)
Changed :
- Improved ReasonLIGO syntax highlighting (!1208 by @SanderSpies)
- JsLIGO: Don't require 'return' before 'failwith' (!1198 by @SanderSpies)
Details :
[added] Add commands for mutating CST/AST, and primitives formutation in testing framework
No details provided for this change. Please visit the MR to learn more
[fixed] Transpiler: add parenthesis around typed pattern when decompiling CameLIGO
No details provided for this change. Please visit the MR to learn more
[fixed] Improve JsLIGO handling of attributes
No details provided for this change. Please visit the MR to learn more
[fixed] Properly support tuple accessors when using '+' operator.
No details provided for this change. Please visit the MR to learn more
[changed] Improved ReasonLIGO syntax highlighting
No details provided for this change. Please visit the MR to learn more
[changed] JsLIGO: Don't require 'return' before 'failwith'
No details provided for this change. Please visit the MR to learn more
0.19.0
Run this release with Docker:
docker run ligolang/ligo:0.19.0
Added :
- Add support for NEVER instruction as Tezos.never (!1194 by @er433)
Fixed :
- Fix type-checker bug when using let-destructuring with a unit pattern (!1193 by Rémi Lesénéchal)
- REPL: fix evaluation of JsLIGO expressions and add test cases (!1142 by @er433)
Changed :
- Changes in the testing framework: Test.originate, Test.transfer(_exn), Test.to_contract, Test.to_entrypoint, Test.get_storage, Test.get_balance, Test.eval, initial support for big_maps (!1169 by @er433)
Details :
[added] Add support for NEVER instruction as Tezos.never
No details provided for this change. Please visit the MR to learn more
[fixed] Fix type-checker bug when using let-destructuring with a unit pattern
No details provided for this change. Please visit the MR to learn more
[fixed] REPL: fix evaluation of JsLIGO expressions and add test cases
No details provided for this change. Please visit the MR to learn more
[changed] Changes in the testing framework: Test.originate, Test.transfer(_exn), Test.to_contract, Test.to_entrypoint, Test.get_storage, Test.get_balance, Test.eval, initial support for big_maps
No details provided for this change. Please visit the MR to learn more
0.18.0
Run this release with Docker:
docker run ligolang/ligo:0.18.0
Fixed :
- fix a bug where Test.get_storage was not usable within a Test.compile_expression_subst (!1182 by Rémi Lesénéchal)
Deprecated :
- Deprecated evaluate-value (now evaluate-expr) and run-function (now evaluate-call) (!1131 by Suzanne Soy)
Internal :
- X_options maintenance (!1155 by @SanderSpies)
- Improved review/refactor script (look for code quality marker, ignore tools/webide, show some info about why a file is at this position in the queue) (!1136 by Suzanne Soy)
Details :
[fixed] fix a bug where Test.get_storage was not usable within a Test.compile_expression_subst
No details provided for this change. Please visit the MR to learn more
[deprecated] Deprecated evaluate-value (now evaluate-expr) and run-function (now evaluate-call)
No details provided for this change. Please visit the MR to learn more
[internal] X_options maintenance
No details provided for this change. Please visit the MR to learn more
[internal] Improved review/refactor script (look for code quality marker, ignore tools/webide, show some info about why a file is at this position in the queue)
No details provided for this change. Please visit the MR to learn more
0.17.0
Run this release with Docker:
docker run ligolang/ligo:0.17.0
Added :
- New pass enforcing: consts cannot be assigned to, vars cannot be captured. (!1132 by @er433)
- Added syntactic support for tuples without parentheses at the top-level of patterns in pattern matchings. (!1168 by Christian Rinderknecht)
- Add warning message when layout attribute is present on a constructor for a sum (issue #1104) (!1163 by @er433)
Fixed :
- Fixed typo's in tutorial and cheat sheet (!1177 by @nicolas.van.phan)
- Improve messages for var/const pass. (!1174 by @er433)
- Move decompilation of assign to self pass. Prepare pipeline for language specific decompilation (!1172 by Pierre-Emmanuel Wulfman)
- fix a bug in ligo test framework where Test.transfer was returning unit in case of success (!1164 by Rémi Lesénéchal)
- Restore earlier fix for lowercase switch cases (!1161 by @SanderSpies)
- Fix inversion in missmatch errors (!1160 by Pierre-Emmanuel Wulfman)
- Bugfix 2n/2 (!1158 by Pierre-Emmanuel Wulfman)
Changed :
- Updating Taco-shop tutorial (all syntaxes, ligo test framework usage) (!1152 by Rémi Lesénéchal)
- Improve JsLIGO lexer error messages (!1159 by @SanderSpies)
- Adds a hint remembering users that warnings can be prevented using underscores (!1154 by @er433)
- vendors/ligo-utils/simple-utils/x_list.ml: added code quality marker, some syntax nits (!1151 by @er433)
Internal :
- Rename Comments module to AttachComments (!1178 by @SanderSpies)
Details :
[added] New pass enforcing: consts cannot be assigned to, vars cannot be captured.
No details provided for this change. Please visit the MR to learn more
[added] Added syntactic support for tuples without parentheses at the top-level of patterns in pattern matchings.
No details provided for this change. Please visit the MR to learn more
[added] Add warning message when layout attribute is present on a constructor for a sum (issue #1104)
No details provided for this change. Please visit the MR to learn more
[fixed] Fixed typo's in tutorial and cheat sheet
No details provided for this change. Please visit the MR to learn more
[fixed] Improve messages for var/const pass.
No details provided for this change. Please visit the MR to learn more
[fixed] Move decompilation of assign to self pass. Prepare pipeline for language specific decompilation
No details provided for this change. Please visit the MR to learn more
[fixed] fix a bug in ligo test framework where Test.transfer was returning unit in case of success
No details provided for this change. Please visit the MR to learn more
[fixed] Restore earlier fix for lowercase switch cases
No details provided for this change. Please visit the MR to learn more
[fixed] Fix inversion in missmatch errors
No details provided for this change. Please visit the MR to learn more
[fixed] Bugfix 2n/2
No details provided for this change. Please visit the MR to learn more
[changed] Updating Taco-shop tutorial (all syntaxes, ligo test framework usage)
No details provided for this change. Please visit the MR to learn more
[changed] Improve JsLIGO lexer error messages
No details provided for this change. Please visit the MR to learn more
[changed] Adds a hint remembering users that warnings can be prevented using underscores
No details provided for this change. Please visit the MR to learn more
[changed] vendors/ligo-utils/simple-utils/x_list.ml: added code quality marker, some syntax nits
No details provided for this change. Please visit the MR to learn more
[internal] Rename Comments module to AttachComments
No details provided for this change. Please visit the MR to learn more
0.16.1
Run this release with Docker:
docker run ligolang/ligo:0.16.1
Details :
0.16.0
Run this release with Docker:
docker run ligolang/ligo:0.16.0
Added :
- Add more documentation on LIGO testing framework (!1128 by Rémi Lesénéchal)
- Pass for repeated usage of ticket values (!1065 by @er433)
- added variable references support (get-scope) (!1101 by Rémi Lesénéchal)
Fixed :
- Fix issue with JsLIGO sequences (!1150 by @SanderSpies)
- Constructors without arguments are abstracted to constructor taking unit pattern (!1148 by Rémi Lesénéchal)
- fix dry-run rejecting Tezos.self (!1133 by Rémi Lesénéchal)
Changed :
- src/test/test_helpers.ml: added code quality marker, added helper for get_program, use it in other test files (!1138 by @er433)
Internal :
- Removed ppx_let dependency, replaced by OCaml built-in let-operators (!1147 by Rémi Lesénéchal and galfour)
Details :
[added] Add more documentation on LIGO testing framework
No details provided for this change. Please visit the MR to learn more
[added] Pass for repeated usage of ticket values
No details provided for this change. Please visit the MR to learn more
[added] added variable references support (get-scope)
No details provided for this change. Please visit the MR to learn more
[fixed] Fix issue with JsLIGO sequences
No details provided for this change. Please visit the MR to learn more
[fixed] Constructors without arguments are abstracted to constructor taking unit pattern
No details provided for this change. Please visit the MR to learn more
[fixed] fix dry-run rejecting Tezos.self
No details provided for this change. Please visit the MR to learn more
[changed] src/test/test_helpers.ml: added code quality marker, added helper for get_program, use it in other test files
No details provided for this change. Please visit the MR to learn more
[internal] Removed ppx_let dependency, replaced by OCaml built-in let-operators
No details provided for this change. Please visit the MR to learn more
0.15.0
Run this release with Docker:
docker run ligolang/ligo:0.15.0
Added :
- Compiler now emits Edo GET k and UPDATE k when [@layout:comb] is used with records (!1102 by tomjack)
Fixed :
- Fix JsLIGO identifiers to include _ (!1104 by @er433)
- Fix failure for TWild (_ for types) (!1103 by @er433)
- Fix order in which things are evaluated in evaluate-value (!1087 by @er433)
- Fix failure when applying a type var. not expecting arguments (!1110 by @er433)
- Fix support for lowcase verbatim strings in JsLIGO (important for test framework support) (!1120 by @SanderSpies)
- Add JsLIGO to Edo features documentation (!1116 by @SanderSpies)
- Fix JsLIGO sapling types (!1116 by @SanderSpies)
Removed :
- Remove unused warning message for rec. definitions (!1111 by @er433)
Performance :
- Added compile-time optimization of comb record destructuring and uncurrying (!1102 by tomjack)
Internal :
- Script which shows a queue of files that need refactoring (!1105 by Suzanne Soy)
- Preparation work for merging type_value and type_expression (!1109 by Suzanne Soy)
- rename inferance → inference (!1108 by Suzanne Soy)
- Clean up comments in the tests from debugging the typer (!1106 by Suzanne Soy)
- More testing ability in the documentation (!1093 by Rémi Lesénéchal)
Details :
[added] Compiler now emits Edo GET k and UPDATE k when [@layout:comb] is used with records
No details provided for this change. Please visit the MR to learn more
[fixed] Fix JsLIGO identifiers to include _
No details provided for this change. Please visit the MR to learn more
[fixed] Fix failure for TWild (_ for types)
No details provided for this change. Please visit the MR to learn more
[fixed] Fix order in which things are evaluated in evaluate-value
No details provided for this change. Please visit the MR to learn more
[fixed] Fix failure when applying a type var. not expecting arguments
No details provided for this change. Please visit the MR to learn more
[fixed] Fix support for lowcase verbatim strings in JsLIGO (important for test framework support)
No details provided for this change. Please visit the MR to learn more
[fixed] Add JsLIGO to Edo features documentation
No details provided for this change. Please visit the MR to learn more
[fixed] Fix JsLIGO sapling types
No details provided for this change. Please visit the MR to learn more
[removed] Remove unused warning message for rec. definitions
No details provided for this change. Please visit the MR to learn more
[performance] Added compile-time optimization of comb record destructuring and uncurrying
No details provided for this change. Please visit the MR to learn more
[internal] Script which shows a queue of files that need refactoring
No details provided for this change. Please visit the MR to learn more
[internal] Preparation work for merging type_value and type_expression
No details provided for this change. Please visit the MR to learn more
[internal] rename inferance → inference
No details provided for this change. Please visit the MR to learn more
[internal] Clean up comments in the tests from debugging the typer
No details provided for this change. Please visit the MR to learn more
[internal] More testing ability in the documentation
No details provided for this change. Please visit the MR to learn more
0.14.0
Run this release with Docker:
docker run ligolang/ligo:0.14.0
Added :
- Add type inference to the compiler (!1026 by @ligo.suzanne.soy, @pewulfman, @lesenechal.remi)
- LIGO Test Framework documentation (!1092 by @SanderSpies)
- Support for deep pattern, record pattern, wildcard ("_") pattern and unit pattern in matching expressions (!934 by Rémi Lesénéchal)
- Allow identifiers with underscore and wildcard name (!1078 by @er433)
- Add description and documentation for each sub command (!1028 by @er433)
- Add support for JsLIGO (!896 by @SanderSpies, @rinderkn)
- Explain sequences in ReasonLIGO and CameLIGO (!1062 by @er433)
- Add werror flag to mark warnings as errors (!1060 by @er433)
- Add repl (!1001 by @er433)
Fixed :
- fix bug occuring when overriding option type (!1082 by Rémi lesénéchal)
Internal :
- Add lexical units (!919 by @rinderkn)
- Support for tuples without parentheses as last expressions in sequences. (!1064 by @rinderkn)
- Fix typing of For_each with any type (!1033 by @pewulfman)
- Uncurry before inlining (!1056 by @tomjack)
Details :
[added] Add type inference to the compiler
No details provided for this change. Please visit the MR to learn more
[added] LIGO Test Framework documentation
No details provided for this change. Please visit the MR to learn more
[added] Support for deep pattern, record pattern, wildcard ("_") pattern and unit pattern in matching expressions
No details provided for this change. Please visit the MR to learn more
[added] Allow identifiers with underscore and wildcard name
No details provided for this change. Please visit the MR to learn more
[added] Add description and documentation for each sub command
No details provided for this change. Please visit the MR to learn more
[added] Add support for JsLIGO
No details provided for this change. Please visit the MR to learn more
[added] Explain sequences in ReasonLIGO and CameLIGO
No details provided for this change. Please visit the MR to learn more
[added] Add werror flag to mark warnings as errors
No details provided for this change. Please visit the MR to learn more
[added] Add repl
No details provided for this change. Please visit the MR to learn more
[fixed] fix bug occuring when overriding option type
No details provided for this change. Please visit the MR to learn more
[internal] Add lexical units
No details provided for this change. Please visit the MR to learn more
[internal] Support for tuples without parentheses as last expressions in sequences.
No details provided for this change. Please visit the MR to learn more
[internal] Fix typing of For_each with any type
No details provided for this change. Please visit the MR to learn more
[internal] Uncurry before inlining
No details provided for this change. Please visit the MR to learn more
0.13.0
Run this release with Docker:
docker run ligolang/ligo:0.13.0
Added :
- Add a REPL based on linenoise (!1001 by Exequiel Rivas)
Fixed :
- Changed colour of background and foreground for hovered items in contact page, fixes #215 (!1059 by Suzanne Soy)
- fixing nested record update bug by normalizing Edo combs decompilation (!1047 by tomjack)
Details :
[added] Add a REPL based on linenoise
No details provided for this change. Please visit the MR to learn more
[fixed] Changed colour of background and foreground for hovered items in contact page, fixes #215
No details provided for this change. Please visit the MR to learn more
[fixed] fixing nested record update bug by normalizing Edo combs decompilation
No details provided for this change. Please visit the MR to learn more
0.12.0
Run this release with Docker:
docker run ligolang/ligo:0.12.0
Added :
- The Emacs ligo-mode is now released on MELPA (!1008 by sanityinc)
- Some optimizations for Edo, including DUP n (!1017 by tomjack)
- [@layout:comb] record destructuring is now compiled to UNPAIR n (!1030 by tomjack)
Fixed :
- Tezos.self_address is now allowed in lambdas (!1035 by tomjack)
- Curried functions again work correctly with commands like interpret and compile-storage (!1038 by tomjack)
Removed :
- Dropped support for pre-Edo protocols (!1025 by tomjack)
- Dropped support for pre-Edo protocols (carthage, dalphanet) (!1025 by tomjack)
Details :
[added] The Emacs ligo-mode is now released on MELPA
No details provided for this change. Please visit the MR to learn more
[added] Some optimizations for Edo, including DUP n
No details provided for this change. Please visit the MR to learn more
[added][@layout:comb] record destructuring is now compiled to UNPAIR n
No details provided for this change. Please visit the MR to learn more
[fixed] Tezos.self_address is now allowed in lambdas
No details provided for this change. Please visit the MR to learn more
[fixed] Curried functions again work correctly with commands like interpret and compile-storage
No details provided for this change. Please visit the MR to learn more
[removed] Dropped support for pre-Edo protocols
No details provided for this change. Please visit the MR to learn more
[removed] Dropped support for pre-Edo protocols (carthage, dalphanet)
No details provided for this change. Please visit the MR to learn more
0.11.0
Run this release with Docker:
docker run ligolang/ligo:0.11.0
Added :
- add set update primitive (!1021 by Rémi Lesénéchal)
- prototype typer: separated typeclass deduce_and_clean to its own heuristic; trimmed down the Compat modules (!981 by Suzanne Soy)
- prototype typer: heuristic to inline the definition of type variables used in type classes (!981 by Suzanne Soy)
- Fixed potential bug: use multiset in typeclasses_constraining; added indexer for typeclasses using a variable as an unbound var; sketched out heuristic which inlines variabes in typeclasses (!981 by Suzanne Soy)
Details :
[added] add set update primitive
No details provided for this change. Please visit the MR to learn more
[added] prototype typer: separated typeclass deduce_and_clean to its own heuristic; trimmed down the Compat modules
No details provided for this change. Please visit the MR to learn more
[added] prototype typer: heuristic to inline the definition of type variables used in type classes
No details provided for this change. Please visit the MR to learn more
[added] Fixed potential bug: use multiset in typeclasses_constraining; added indexer for typeclasses using a variable as an unbound var; sketched out heuristic which inlines variabes in typeclasses
No details provided for this change. Please visit the MR to learn more
0.10.0
Run this release with Docker:
docker run ligolang/ligo:0.10.0
Added :
- Uncurry functions only used in full applications (!922 by tomjack)
- Few fixes in tickets untranspilation (!929 by Rémi Lesénéchal)
- Added doc for Edo things (tickets/sapling) (!929 by Rémi Lesénéchal)
Fixed :
- Fix handling of true/false constructors in switch expressions. (!987 by Sander Spies)
- Added parsing of constant constructors as function arguments. (!951 by Christian Rinderknecht)
Changed :
- Prevent inappropriate optimisation of %Michelson lambdas (!965 by tomjack)
- ligo michelson backend now uses the "protocol--008-PtEdoTez-" (!926 by Rémi Lesénéchal, Tom Jack)
- Upgrade tezos backend (for dry-run, compile-expression..) to Edo (!926 by Rémi Lesénéchal)
Internal :
- Refactor & generalize Michelson peephole framework (!966 by tomjack)
- Use
opam lock
to lock dependencies (!957 by tomjack) - Progress on modular interface for heuristics and abstraction over type_variable, renamed modules, moved files (!972 by Suzanne Soy)
- Refactoring of the front-end. (!751 by Christian Rinderknecht)
- Fixed the CST printers. (!916 by Christian Rinderknecht)
Details :
[added] Uncurry functions only used in full applications
No details provided for this change. Please visit the MR to learn more
[added] Few fixes in tickets untranspilation
No details provided for this change. Please visit the MR to learn more
[added] Added doc for Edo things (tickets/sapling)
No details provided for this change. Please visit the MR to learn more
[fixed] Fix handling of true/false constructors in switch expressions.
No details provided for this change. Please visit the MR to learn more
[fixed] Added parsing of constant constructors as function arguments.
No details provided for this change. Please visit the MR to learn more
[changed] Prevent inappropriate optimisation of %Michelson lambdas
No details provided for this change. Please visit the MR to learn more
[changed] ligo michelson backend now uses the "protocol--008-PtEdoTez-"
No details provided for this change. Please visit the MR to learn more
[changed] Upgrade tezos backend (for dry-run, compile-expression..) to Edo
No details provided for this change. Please visit the MR to learn more
[internal] Refactor & generalize Michelson peephole framework
No details provided for this change. Please visit the MR to learn more
[internal] Use opam lock
to lock dependencies
No details provided for this change. Please visit the MR to learn more
[internal] Progress on modular interface for heuristics and abstraction over type_variable, renamed modules, moved files
No details provided for this change. Please visit the MR to learn more
[internal] Refactoring of the front-end.
No details provided for this change. Please visit the MR to learn more
[internal] Fixed the CST printers.
No details provided for this change. Please visit the MR to learn more
0.9.0
Run this release with Docker:
docker run ligolang/ligo:0.9.0
Added :
- Add chain_id literals (!953 by Rémi Lesénéchal)
Fixed :
- use letters instead of numbers for type variables in debug trace (!918 by Suzanne Soy)
- Fixed small bug in grouped_by_variable (use a multiset instead of a set, so that double-add and removal don't remove both copies (!915 by Suzanne Soy)
- Fix assert in type_and_subst (!915 by Suzanne Soy)
Internal :
- Addded pretty-printers to the API of indexer plug-ins; added test for addition of constraints and merging of type variables for the by_constraint_identifier indexer and other indexers. (!914 by Suzanne Soy)
Details :
[added] Add chain_id literals
No details provided for this change. Please visit the MR to learn more
[fixed] use letters instead of numbers for type variables in debug trace
No details provided for this change. Please visit the MR to learn more
[fixed] Fixed small bug in grouped_by_variable (use a multiset instead of a set, so that double-add and removal don't remove both copies
No details provided for this change. Please visit the MR to learn more
[fixed] Fix assert in type_and_subst
No details provided for this change. Please visit the MR to learn more
[internal] Addded pretty-printers to the API of indexer plug-ins; added test for addition of constraints and merging of type variables for the by_constraint_identifier indexer and other indexers.
No details provided for this change. Please visit the MR to learn more
0.8.0
Run this release with Docker:
docker run ligolang/ligo:0.8.0
Fixed :
- ReasonLIGO: Allow if without else in more places. (!935 by Sander Spies)
Details :
[fixed] ReasonLIGO: Allow if without else in more places.
No details provided for this change. Please visit the MR to learn more
0.7.1
Run this release with Docker:
docker run ligolang/ligo:0.7.1
Internal :
- Improve transpilation and speed up transpilation tests (!927 by Sander Spies)
Details :
[internal] Improve transpilation and speed up transpilation tests
No details provided for this change. Please visit the MR to learn more
0.7.0
Run this release with Docker:
docker run ligolang/ligo:0.7.0
Added :
- tuple destructuring are now transformed into nested pattern matches (!909 by Rémi Lesénéchal)
- linear pattern matching (tuple/record) (!909 by Rémi Lesénéchal)
- EDO primitives (use --protocol edo and --disable-michelson-typechecking) (!909 by Rémi Lesénéchal)
Internal :
- Remove vendored protocols -- fake origination & bake for proto env setup (!921 by tomjack)
Details :
[added] tuple destructuring are now transformed into nested pattern matches
No details provided for this change. Please visit the MR to learn more
[added] linear pattern matching (tuple/record)
No details provided for this change. Please visit the MR to learn more
[added] EDO primitives (use --protocol edo and --disable-michelson-typechecking)
No details provided for this change. Please visit the MR to learn more
[internal] Remove vendored protocols -- fake origination & bake for proto env setup
No details provided for this change. Please visit the MR to learn more
0.6.0
Run this release with Docker:
docker run ligolang/ligo:0.6.0
Added :
- prototype typer: added a separate constraint checking routine which will be executed after type inference (!910 by Suzanne Soy)
Fixed :
- Fix bug with let_in annotations in recursive functions (!905 by tomjack)
- the CLI print-* commands now print proper JSON when --format=json, also removed the sugar field from the core representation (!892 by Rémi Lesénéchal)
Changed :
- Use virtual ES6FUN token for ReasonLIGO to allow for more accurate error messages. (!876 by Sander Spies)
Internal :
- prototype typer: split DB index tests into separate files, added test skeleton for cycle_detection_topological_sort (!910 by Suzanne Soy)
- Add module_access expression and type_expression (!871 by Pierre-Emmanuel Wulfman)
- Compile a multiple file contract (!867 by Pierre-Emmanuel Wulfman)
Details :
[added] prototype typer: added a separate constraint checking routine which will be executed after type inference
No details provided for this change. Please visit the MR to learn more
[fixed] Fix bug with let_in annotations in recursive functions
No details provided for this change. Please visit the MR to learn more
[fixed] the CLI print-* commands now print proper JSON when --format=json, also removed the sugar field from the core representation
No details provided for this change. Please visit the MR to learn more
[changed] Use virtual ES6FUN token for ReasonLIGO to allow for more accurate error messages.
No details provided for this change. Please visit the MR to learn more
[internal] prototype typer: split DB index tests into separate files, added test skeleton for cycle_detection_topological_sort
No details provided for this change. Please visit the MR to learn more
[internal] Add module_access expression and type_expression
No details provided for this change. Please visit the MR to learn more
[internal] Compile a multiple file contract
No details provided for this change. Please visit the MR to learn more
0.5.0
Run this release with Docker:
docker run ligolang/ligo:0.5.0
Added :
- Add two new function:
- List.head_opt
- List.tail_opt
which returns none if the list is empty and respectively hd and tl if the list is CONS (hd,tl) (!887 by Pierre-Emmanuel Wulfman)
Changed :
- Add missing location to parser error messages in JSON (!840 by Christian Rinderknecht)
- Change in compilation of record updates (!848 by tomjack)
- Port stacking pass to Coq (!848 by tomjack)
Internal :
- Add a build system that type file in order to resolve dependency (!854 by Pierre-Emmanuel Wulfman)
Details :
[added] Add two new function:
- List.head_opt
- List.tail_opt
which returns none if the list is empty and respectively hd and tl if the list is CONS (hd,tl)
No details provided for this change. Please visit the MR to learn more
[changed] Add missing location to parser error messages in JSON
No details provided for this change. Please visit the MR to learn more
[changed] Change in compilation of record updates
No details provided for this change. Please visit the MR to learn more
[changed] Port stacking pass to Coq
No details provided for this change. Please visit the MR to learn more
[internal] Add a build system that type file in order to resolve dependency
No details provided for this change. Please visit the MR to learn more
0.4.0
Run this release with Docker:
docker run ligolang/ligo:0.4.0
Added :
- alias_selector for heuristics to take into account aliases (!839 by Suzanne Soy)
- internal documentation for the typer (!866 by Suzanne Soy)
- add --typer option to choose between 'old' and 'new' typer (!864 by Rémi Lesénéchal)
Fixed :
- Unprotected Sys.getenv (!839 by Suzanne Soy)
Internal :
- Disable failing tests for typer not currently in use when it is in use (except the one being worked on) (!839 by Suzanne Soy)
- Fixed build issue with dune b inside a nix-shell (thanks Sander for providing the fix) (!839 by Suzanne Soy)
- scripts/add-changelog-entry.sh now runs a nested nix-shell if jq or json2yaml aren't installed in the outer nix shell (!839 by Suzanne Soy)
- boolean constant to force use of the typer which is not currently in use in the tests (!839 by Suzanne Soy)
- Solve warnings during compilation (!871 by Pierre-Emmanuel Wulfman)
Details :
[added] alias_selector for heuristics to take into account aliases
No details provided for this change. Please visit the MR to learn more
[added] internal documentation for the typer
No details provided for this change. Please visit the MR to learn more
[added] add --typer option to choose between 'old' and 'new' typer
No details provided for this change. Please visit the MR to learn more
[fixed] Unprotected Sys.getenv
No details provided for this change. Please visit the MR to learn more
[internal] Disable failing tests for typer not currently in use when it is in use (except the one being worked on)
No details provided for this change. Please visit the MR to learn more
[internal] Fixed build issue with dune b inside a nix-shell (thanks Sander for providing the fix)
No details provided for this change. Please visit the MR to learn more
[internal] scripts/add-changelog-entry.sh now runs a nested nix-shell if jq or json2yaml aren't installed in the outer nix shell
No details provided for this change. Please visit the MR to learn more
[internal] boolean constant to force use of the typer which is not currently in use in the tests
No details provided for this change. Please visit the MR to learn more
[internal] Solve warnings during compilation
No details provided for this change. Please visit the MR to learn more
0.3.0
Run this release with Docker:
docker run ligolang/ligo:0.3.0
Added :
- --protocol preloads types corresponding to a given protocol. use "ligo compile-contract path entrypoint --protocol=X --disable-michelson-typecheking" in combination with michelson_insertion (!837 by Rémi Lesénéchal)
Fixed :
- Fix broken Nix build on MacOS (!852 by Alexander Bantyev)
- Documentation of Pascaligo: change deprecated bytes_unpack to Bytes.unpack. (!820 by Sander Spies)
- Fixed 2 bugs in changelog generator (a shell variable wasn't exported but was used in a subprocess; the evaluation time of some nix expressions seem to have changed so we're invoking a shell command instead of having the nix expression evaluated before its inputs are ready) (!853 by Suzanne Soy)
- Fix broken build after removal of generated code (!807 by Suzanne Soy)
Changed :
- Type constant are now loaded into the type environment, they become variables until the typed AST (!849 by Rémi Lesénéchal)
- In the typer which is not currently in use, added a boolean flag on constraints indicating whether they might be necessary for correctness (!814 by Suzanne Soy)
- In the typer which is not currently in use, constraint removal is now handled by normalizers (!801 by Suzanne Soy)
- In the typer which is not currently in use, heuristics can now request the justified removal of some of the constraints (!801 by Suzanne Soy)
Performance :
- Optimization: push DROP into failing conditionals (!820 by Tom)
Internal :
- Create polymorphic function and use them in asts and passes to factorize code and simplify maintenance (!770 by Pierre-Emmanuel Wulfman)
- Refactoring of front-end (making libraries, removing exceptions from interfaces, factoring and removing code etc.) (!751 by Christian Rinderknecht)
- Move the preprocessor away from the parser (!851 by Pierre-Emmanuel Wulfman)
Details :
[added] --protocol preloads types corresponding to a given protocol. use "ligo compile-contract path entrypoint --protocol=X --disable-michelson-typecheking" in combination with michelson_insertion
No details provided for this change. Please visit the MR to learn more
[fixed] Fix broken Nix build on MacOS
No details provided for this change. Please visit the MR to learn more
[fixed] Documentation of Pascaligo: change deprecated bytes_unpack to Bytes.unpack.
No details provided for this change. Please visit the MR to learn more
[fixed] Fixed 2 bugs in changelog generator (a shell variable wasn't exported but was used in a subprocess; the evaluation time of some nix expressions seem to have changed so we're invoking a shell command instead of having the nix expression evaluated before its inputs are ready)
No details provided for this change. Please visit the MR to learn more
[fixed] Fix broken build after removal of generated code
No details provided for this change. Please visit the MR to learn more
[changed] Type constant are now loaded into the type environment, they become variables until the typed AST
No details provided for this change. Please visit the MR to learn more
[changed] In the typer which is not currently in use, added a boolean flag on constraints indicating whether they might be necessary for correctness
No details provided for this change. Please visit the MR to learn more
[changed] In the typer which is not currently in use, constraint removal is now handled by normalizers
No details provided for this change. Please visit the MR to learn more
[changed] In the typer which is not currently in use, heuristics can now request the justified removal of some of the constraints
No details provided for this change. Please visit the MR to learn more
[performance] Optimization: push DROP into failing conditionals
No details provided for this change. Please visit the MR to learn more
[internal] Create polymorphic function and use them in asts and passes to factorize code and simplify maintenance
No details provided for this change. Please visit the MR to learn more
[internal] Refactoring of front-end (making libraries, removing exceptions from interfaces, factoring and removing code etc.)
No details provided for this change. Please visit the MR to learn more
[internal] Move the preprocessor away from the parser
No details provided for this change. Please visit the MR to learn more
0.2.1
Run this release with Docker:
docker run ligolang/ligo:0.2.1
Added :
- --lib option for the get-scope command. this allows to specify paths to included files (!827 by Rémi Lesénéchal)
Fixed :
- fixed a but in new michelson layout annotation (!833 by Rémi Lesénéchal)
- add the --init-file option to compile-expresssion command (!828 by Rémi Lesénéchal)
Details :
[added] --lib option for the get-scope command. this allows to specify paths to included files
No details provided for this change. Please visit the MR to learn more
[fixed] fixed a but in new michelson layout annotation
No details provided for this change. Please visit the MR to learn more
[fixed] add the --init-file option to compile-expresssion command
No details provided for this change. Please visit the MR to learn more
0.2.0
Run this release with Docker:
docker run ligolang/ligo:0.2.0
Added :
- two new attributes on record and variant types: annot for michelson field annotation and layout (comb or tree) for compilation layout (!809 by Rémi lesénéchal & Gabriel Alfour & Christian Rinderknecht)
Fixed :
- Fix error messages snippet printing (!824 by SanderSpies)
- Fix wrong error message due to wrong merge (!803 by SanderSpies)
- Redeploy website on release to update the changelog (!804 by balsoft)
Changed :
- Error messages improved. Now shows a code snippet and error message footer removed. (!813 by SanderSpies)
- Added dependency on json2yaml and jq in nix-shell (!800 by Suzanne Soy)
Details :
[added] two new attributes on record and variant types: annot for michelson field annotation and layout (comb or tree) for compilation layout
No details provided for this change. Please visit the MR to learn more
[fixed] Fix error messages snippet printing
No details provided for this change. Please visit the MR to learn more
[fixed] Fix wrong error message due to wrong merge
No details provided for this change. Please visit the MR to learn more
[fixed] Redeploy website on release to update the changelog
No details provided for this change. Please visit the MR to learn more
[changed] Error messages improved. Now shows a code snippet and error message footer removed.
No details provided for this change. Please visit the MR to learn more
[changed] Added dependency on json2yaml and jq in nix-shell
No details provided for this change. Please visit the MR to learn more
0.1.0
Run this release with Docker:
docker run ligolang/ligo:0.1.0
Added :
- Add a dialect option when decompiling to pascaligo (!791 by Alexandre Moine)
- Add a predifine function 'assert_some' (!775 by Pierre-Emmanuel)
- Add error message for function argument tuple components mismatch (!772 by SanderSpies)
- Add missing function argument type annotation error (!769 by SanderSpies)
Fixed :
- Fixed error message when lexing an odd-lengthed byte sequence. (!786 by Christian Rinderknecht)
- Add locations to the constant typers for all the primitives (!773 by Rémi Lesénéchal)
- dune runtest in nix-shell (!741 by balsoft)
Changed :
- Removed dependencies on the Tezos protocol from compiler stages and passes. (!783 by Tom Jack)
- Improve non-parser error messages (!738 by SanderSpies)
Details :
[added] Add a dialect option when decompiling to pascaligo
No details provided for this change. Please visit the MR to learn more
[added] Add a predifine function 'assert_some'
No details provided for this change. Please visit the MR to learn more
[added] Add error message for function argument tuple components mismatch
No details provided for this change. Please visit the MR to learn more
[added] Add missing function argument type annotation error
No details provided for this change. Please visit the MR to learn more
[fixed] Fixed error message when lexing an odd-lengthed byte sequence.
No details provided for this change. Please visit the MR to learn more
[fixed] Add locations to the constant typers for all the primitives
No details provided for this change. Please visit the MR to learn more
[fixed] dune runtest in nix-shell
No details provided for this change. Please visit the MR to learn more
[changed] Removed dependencies on the Tezos protocol from compiler stages and passes.
No details provided for this change. Please visit the MR to learn more
[changed] Improve non-parser error messages
No details provided for this change. Please visit the MR to learn more
0.0.1
Run this release with Docker:
docker run ligolang/ligo:0.0.1
Added :
- Add changelog and versioning (!725 by balsoft)
Details :
[added] Add changelog and versioning
No details provided for this change. Please visit the MR to learn more
0.0.0
Run this release with Docker:
docker run ligolang/ligo:0.0.0