Skip to content

NEW FEATURES

  • Revamped module system for function exports
    (This allows to write reusable libraries.)
  • Private functions/values with [@private]
  • Disable inlining per function with [@noinline]
  • Modules and contract aliases
  • ReasonML syntax
  • Parameterized type definitions
  • Type inference
  • Polymorphic values and polymorphic inference
  • External custom instructions
  • Multiple entry points
  • Encoding of types with Michelson annotations
  • Decompilation of records, enumerations and operations
  • New syntaxes for contract calls
  • Labelled arguments for some built-in functions
  • Contract signatures
  • Instruction Loop.left
  • Compilation of tail-recursive functions
  • Compile multiple contracts in separate files
  • Option --main to compile a specific contract

IMPROVEMENTS

  • Lambdas in constants
  • Better type inference when overloading
  • Parse ReasonML expressions
  • Option --call-arg to print arguments for tezos clients
  • More peephole optimizations
  • Tezos as submodule
  • Allow unit patterns ()
  • Client command --pack
  • Examples of documentation are in the test suite
    (This way, the documentation is always up to date.)
  • Namespacing for externals
  • Support type annotations in expressions
  • Support for digestif 0.7
  • Warning for failing code
  • Better compilation of wildcard pattern matching
  • Syntax C.at addr for (Contact.at addr : C.instance option)
  • Better locations reporting
  • Syntactic sugar val%entry : param -> _ in signatures
  • Allow empty (non-toplevel) contracts
  • Patterns in entry point arguments
  • Better decompilation

BUG FIXES

  • Fix bad computation of free variables in Contract.create
  • Bring back support for string amounts, keys, etc.
  • Fix printing Michelson list and set constants
  • Fix Travis ubuntu reop
  • Fix parsing of Tezos node json errors
  • Remove unsupported Set.map, Set.map_fold
  • Bring --no-annot option back
  • Forbid Contract.self in non-inlined functions
  • Prevent redefinition of Map, Set constructors
  • Workaround Micheline pretty-printing bug
  • Documentation
  • Fix deployment issue with big maps
  • Fix json output of constants
  • Forbid source, sender in initializer
Assets 4
Mar 8, 2019

v1.0

Liquidity version 1.0
Show commit and date in --version (with -v)

@mebsout mebsout released this Oct 5, 2018 · 185 commits to next since this release

NEW FEATURES

  • Compatibility with Tezos's Mainnet/Zeronet/Alphanet
  • Support bytes constants for key, key_hash, address, contract and signature
  • Attribute [@@inlining] to force inlining when not dangerous
  • Command --init-storage (Pierre Michard)
  • Command --inject to inject signed operation

IMPROVEMENTS

  • Client: Show failing calls and deployments
  • Inline bodies of lambdas
  • Sphinx documentation
  • Easier build with make build-deps
  • More optimizations on Michelson code

BUG FIXES

  • Fix issue with printing of signatures
  • Missing decompilation for LSL, LSR
  • Fix inlining bug in decompilation
  • Code elimination after FAILWITH in code generation
  • Fix erroneous pretty-printing of tez values
  • Forbid source, sender in initializer
Assets 3

@mebsout mebsout released this Jul 11, 2018 · 252 commits to next since this release

NEW FEATURES

  • Compatibility with Tezos's Betanet
  • New calling convention, Contract.transfer returns an operations
    which has to be returned
  • Current.failwith : 'a -> 'b, instead of fail
  • Type bytes, and 0xab... bytes constants
  • Bytes.pack, Bytes.unpack
  • Type address
  • Contract and address constants (KT1..., tz...)
  • Type big_map, and constants BigMap [...], and BigMap.find,
    BigMap.add, BigMap.remove, BigMap.update
  • New compilation of Map/Set/List.map
  • New instruction Map/Set/List.map_fold
  • Current.self renamed to Contract.self
  • New functions Crypto.blake2b/sha256/sha512 instead of Crypto.hash
  • Current.sender
  • Remove Contract.manager
  • (Contract.at : p contract option)

IMPROVEMENTS

  • Better locations reporting
  • Show runtime failures source locations
  • Light type inferrence in specific places
  • Unary negation on int and tez
  • Somewhat better error messages
  • Compile with OCaml 4.06.1
  • Better decompilation naming heuristic

BUG FIXES

  • Fix issue with decompiling multiple nested failing branches
  • Fix issue with decompilation of ITER
  • Fix some incorrect peephole optimizations
  • Reject maps and sets with non comparable keys
Assets 4

@mebsout mebsout released this Jan 23, 2018 · 211 commits to master since this release

NEW FEATURES

  • Support for decompilation of ITER
  • New instructions Map.iter, Set.iter, List.iter
  • Storage initializer
  • Run Liquidity contracts on Tezos node directly (--run)
  • Deploy Liquidity contracts on Tezos node directly (--deploy)
  • Call Liquidity contracts on Tezos node directly (--call)
  • Retrieve Tezos contract storage in Liquidity syntax (--get-storage)

IMPROVEMENTS

  • Define type abbreviations when decompiling
  • Support timestamp date with Z timezone
  • Encode reduce with closures using ITER
  • Constant of type signature start with backquote and are hex encoded
  • Ready for javascript compilation

BUG FIXES

  • int and nat are not comparable
  • bool is comparable
  • Division on type tez
Assets 2

@mebsout mebsout released this Nov 30, 2017 · 245 commits to master since this release

NEW FEATURES

  • match%nat construct for int -> nat coercion
  • abs is now int -> int
  • Command line options --parse-only, --type-only
  • Command line options --single-line, --compact to output
    Michelson on a single line
  • Support &&, || Boolean connectors
  • Support Map.add, Map.remove, Set.add, Set.remove
  • Lambda types are now written as t1 -> t2 instead of
    (t1, t2) lambda
  • Constant amounts written as litterals: 1.00tz
  • Constant keys and key_hashes as litterals: edpk... tz1...
  • Timestamps as litterals in ISO-8601 format

IMPROVEMENTS

  • Split typechecking and encoding phases
  • Allow transfers in conditions (for if-then-else and match)
  • Encode to constants when possible
  • Better error messages
  • Accept any name for result of Contract.call
  • Recover variable names when decompiling

BUG FIXES

  • Fix bug in encoding of closures
  • Fix bug in compilation of branches with transfers
Assets 2

@mebsout mebsout released this Oct 16, 2017 · 304 commits to master since this release

NEW FEATURES

  • Compilation of Liquidity contracts to OCaml bytecode
  • Deconstruct tuples in let, fun and pattern matching
  • Support _ for pattern
  • OCaml syntax for return type of contract's entry point
  • Support for type key_hash

IMPROVEMENTS

  • Allow compilation without Tezos
  • Better error messages
  • Error location in Michelson source when decompiling
  • Declare type storage when decompiling
  • More efficient encoding of closures
Assets 2
Oct 5, 2017

v0.1

Fix examples with [%%version 0.1]
You can’t perform that action at this time.