packages feed

morley-0.7.0: CHANGES.md

Unreleased
==========
<!-- Append new entries here -->

0.7.0
=====

* [!237](https://gitlab.com/morley-framework/morley/merge_requests/237)
  The `option (nat %foo)` is now accepted syntax. The `%foo` is ignored.
* [!241](https://gitlab.com/morley-framework/morley/merge_requests/241)
  Derive `Show` instance for `Void_`.
* [!238](https://gitlab.com/morley-framework/morley/merge_requests/238)
  + `NoExplicitDefaultEntryPoint` is now GHC-understandable constraint,
    for previous behaviour with nice error message use
    `ForbidExplicitDefaultEntryPoint`.
  + `CanHaveEntryPoints` is made stricter, now it returns true only for
     Michelson sum types. If that's a problem for you, consider using
     `ShouldHaveEntryPoints` wrapper.
  + Added pseudo `Empty` type.
* [!219](https://gitlab.com/morley-framework/morley/merge_requests/219)
  Various entrypoints-related updates.
  + Integrational tests now carry `TAddress` as a reference to contract.
    Make sure that parameters of the originated contracts are clear;
    e.g. origination of `consumer` contract may require explicit type
    annotation to specify parameter type.
    If you passed a reference to the originated contract to `View` constructor,
    consider using `mkView` instead or applying `callingDefTAddress` to the
    reference.
  + Generally it is encouraged to use `TAddress` instead of `Address`
    where it is used to refer to a contract.
  + `fromContractAddr` renamed to `fromContractRef`.
  + `Default` instances for `{Some,}EntryPointCall` are removed, use
     one of explicit versions: `epcPrimitive`, `epcCallRootUnsafe`.
  + Reworked `FutureContract` type.

0.6.0
=====

* [!127](https://gitlab.com/morley-framework/morley/merge_requests/127)
  Limit annotations' allowed characters
* [!184](https://gitlab.com/morley-framework/morley/merge_requests/184)
  Fix `LAMBDA` instruction type converter bug
* [!173](https://gitlab.com/morley-framework/morley/merge_requests/173)
  [!197](https://gitlab.com/morley-framework/morley/merge_requests/197)
  Add support for lightweight entrypoints in Lorentz, as well as in
  the interpreter runner and morley executable.
  Support entrypoint references in `SELF` instruction.
  Minor refactorings related to entrypoints.
* [!201](https://gitlab.com/morley-framework/morley/merge_requests/201)
  + Add entrypoint argument to methods in testing eDSL. Preserve the existing type of `lCall` and deprecate it.
  + Deprecate `Lorentz.TestScenario`.
* [!208](https://gitlab.com/morley-framework/morley/merge_requests/208)
  Resolve an ambiguity within integrational and unit interpreters
  by renaming interpreter in `Michelson.Runtime` to `executor`.
* [!180](https://gitlab.com/morley-framework/morley/merge_requests/180)
  Remove `coerce_` in favor of more safe variants.
  Migration guide: pick one of the functions from 'Lorentz.Coercions' module.
  In most cases you need one of the following ones:
    * `checkedCoerce_`
    * `coerceWrap` / `coerceUnwrap`
    * `forcedCoerce_` (aka old `coerce_` - this variant provides the least safety).
* [!180](https://gitlab.com/morley-framework/morley/merge_requests/180)
  Type arguments of `coerceWrap` and `coerceUnwrap` are flipped.
  This change concerns you if you used type application on these functions.

0.5.0
=====

* Require `morley-prelude` to be ≥ 0.3.0 to make Hackage happy.
* [!156](https://gitlab.com/morley-framework/morley/merge_requests/156)
  Consider annotations in PACK and UNPACK.

0.4.0
=====

* Implemented most of Babylon changes: new instructions, elimination of `big_map` restructions, new restrictions for the `contract` type, partial support for entrypoints. Some instructions have been removed/deprecated.
* Many updates of helper data types for upgradeable contracts: `UParam` and `UStore`.
* Michelson printer can produce pretty output, not just one line.
* Added utilities for contract processing and analysis: optimizer, string transformer, errors transformer, analyzer.
* Added `tasty` helpers to the testing engine.
* Added annotations to typed representation and Lorentz.
* Added automatic documentation generator.
* Modified standard errors in Lorentz: now they are based on `CustomError`.
* Added unpacking from readable representation.
* Removed `parameter` and `storage` aliases, they were not very useful and complicated the code.
* Extended cryptographic types and `Address` to work with other curves (tz2 and tz3 addresses).
* Made it nearly impossible to generate dead code (which is illegal in Michelson) using Lorentz.
* Various bug fixes.

0.3.0.1
=======

* Update maintainer.

0.3.0
=====

* [TM-68](https://issues.serokell.io/issue/TM-68) Lorentz DSL which allows one to write contracts directly in Haskell.
May be moved to a separate package later.
* [TM-132](https://issues.serokell.io/issue/TM-132) Names for contracts in integrational tests.
* [TM-35](https://issues.serokell.io/issue/TM-35) `PACK` and `UNPACK` instructions.
* [TM-27](https://issues.serokell.io/issue/TM-27) Proper handling of `FAILWITH`.
* [TM-44](https://issues.serokell.io/issue/TM-44) [TM-124](https://issues.serokell.io/issue/TM-124) Reorganization of modules.
* Bug fixes.

0.2.0.1
=======

* Update documentation and metadata.

0.2.0
=====

Initial release.

* Typechecker and interpreter for Michelson.
* Morley extensions:
  - syntax sugar
  - let-blocks
  - inline assertions
* EDSL for unit testing and integrational testing