Version: Next

changelog

LIGO Changelog#

Unreleased#

Run this release with Docker: docker run ligolang/ligo:Unreleased

Added :#

Fixed :#

Changed :#

  • Testing framework: make Test.to_entrypoint remove the starting '%' (!1750 by er433)

Internal :#

Details :

[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:
let destruct_tuple = (x : [ int , [int , nat] ]) : nat => {
let [a,[b,c]] = x ;
c
};
let destruct_record = (x : { a : int , b : string }) : int => {
let { a , b } = x ; (* Note: nested pattern in record are not yet available *)
a
};

[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] 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 :#

Details :

[added] Moving to jarkarta#

upgrade to jakarta:#

  • jakarta changes are available (please use option --protocol jakarta)

0.42.0#

Run this release with Docker: docker run ligolang/ligo:0.42.0

Breaking :#

Fixed :#

Changed :#

Internal :#

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

const id : <P>(x : P) => P = (x : P) => {
const id_1 : <Q>(y : Q) => Q = (y : Q) => {
let id_2 : <R>(z : R) => R = (z : R) => {
let z = z;
return z;
};
let y = y;
return id_2(y);
}
return id_1(x);
};

[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 and Big_map functions (e.g. Map.update will only work on maps and not on big_maps 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 :#

Changed :#

Internal :#

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#

  1. Fix bug in test interpreter related handling of option values
  2. 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 :#

Changed :#

Internal :#

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:

type t1 =
| Foo of int
| Bar of string
type t2 =
| Foo of int
| Baz of nat

[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 :#

Internal :#

Other :#

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 type tez. (!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 :#

Internal :#

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 :#

Fixed :#

Changed :#

Internal :#

Other :#

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 :#

Fixed :#

Internal :#

Other :#

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 :#

Fixed :#

Changed :#

  • Improve optimisation of some rare examples involving tuple/record destructuring (!1520 by tomjack)
  • Transpiler: change decompilation of (some) operators (!1508 by er433)

Performance :#

Internal :#

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 :#

Fixed :#

Internal :#

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 :#

Fixed :#

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 :#

Changed :#

Performance :#

Internal :#

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 :#

Performance :#

  • Self mini_c optimizations: apply a single inline per round (!1446 by er433)

Internal :#

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 :#

Fixed :#

Performance :#

Internal :#

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 :#

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 :#

Performance :#

  • Profiling and fixes: initialize dummy_environment only when needed (!1402 by er433)

Internal :#

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 :#

Fixed :#

Changed :#

Internal :#

Other :#

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 :#

Fixed :#

Changed :#

Internal :#

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 :#

Changed :#

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 :#

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 :#

Fixed :#

Changed :#

Performance :#

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 :#

Changed :#

Deprecated :#

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 :#

Fixed :#

Removed :#

Internal :#

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 :#

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 :#

Internal :#

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 :#

Changed :#

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 :#

Fixed :#

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 :#

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 :#

Changed :#

Internal :#

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 :#

Fixed :#

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 :#

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 :#

Removed :#

Performance :#

  • Added compile-time optimization of comb record destructuring and uncurrying (!1102 by tomjack)

Internal :#

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 :#

Fixed :#

Internal :#

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 :#

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 :#

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 :#

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 :#

Fixed :#

Changed :#

Internal :#

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 :#

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 :#

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 :#

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 :#

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 :#

Changed :#

  • Use virtual ES6FUN token for ReasonLIGO to allow for more accurate error messages. (!876 by Sander Spies)

Internal :#

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 :#

Internal :#

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 :#

Fixed :#

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 :#

Uncategorized :#

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

[]

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 :#

Fixed :#

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 :#

Fixed :#

Changed :#

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 :#

Fixed :#

Changed :#

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 :#

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

Details :