Changelog for morley-1.3.0
Unreleased
1.3.0
- !417 Change the license to MIT.
- !386
- Add a way to describe constructors and fields of ADTs in Markdown documentation.
- Require that all contracts include documentation for the storage type.
- !396 Fixed
typed
Notes
to permit pair annotations for container keys. - !359 Renamed
'FullContract' to 'Contract', removed the prefix
f
from its record fields and removed "Full" from the names of the functions:convertFullContract
,printTypedFullContract
andmapFullContractCode
. - !354
- Fix bug: add
ChainId
toIsPrimitiveValue
type family. - Add
GInstrDeconstruct
type class and related functions which serve to deconstruct datatype into its fields on the stack. - Add
gInstrConstructStack
toGInstrConstruct
type class that serves to construct a datatype from its fields on the stack. - Add
GFieldNames
type family returning list ofSymbol
s: the names of direct fields of datatype.
- Fix bug: add
1.2.0
- !343
- Make pairs comparable and available to use as map keys and in sets.
- CT type has been integrated into T.
- A
WellTyped
type class has been added to ensure that a type represented by T is valid as per Michelson's rules.
- !358
Remove deprecated
STEPS_TO_QUOTA
instruction. - !368
- Update JSON encoding of types.
- Rename fields of the untyped
Contract'
.
- !286 Morley supports field annotations for parameter root now.
- !344
Fixed a bug in
Michelson.Analyzer
and addedlinearizeLeftDeep
.
1.1.0
- !337 Added an extension for Michelson comment to typed and untyped contract representation.
- !306 Added PAIR/UNPAIR rule to optimizer.
- !314
Fixed a bug in the implementation of
MAP
operation: it did not preserve modifications to stack. - !261 Slightly modified interpreter API.
- !313
Made
typeCheckValue
polymorphic in desired type, instead of using existential wrappers. - !310
- Add
DGeneralInfoSection
documentation section with git revision and potentially other info. - Add
buildLorentzDocWithGitRev
andbuildInstrDocWithGitRev
to API to add a git revision to contract docs from the executable.
- Add
- !121
BALANCE
instruction now returns the balance with funds from incoming transaction. - !294
- Added
Paths_*
modules toautogen-modules
in cabal files. Removed-O0
- from default GHC options. Please set
ghc-options
in yourstack.yaml
orcabal.project.local
.
- Added
- !271 Renamed 'Contract' to 'ContractCode', and appended "Code" to the names of two functions: 'convertContract' and 'printTypedContract'
- !278
Added some utilities for command line option parsing, see
Util.CLI
andMorley.CLI
modules. - !268
Test functions which import typed contract now return
FullContract
instead ofContract
, thus preserving parameter and storage annotations. In case you don't need this behaviour, usefcCode
for conversion. Test functions which import Lorentz contracts have been removed because they cannot be implemented sanely, and Lorentz is assumed to be used to generate code, do not use it for work with textual Michelson contracts. - !212
- Fix
AND
instruction return type. - Add
DUP n
macro support. - Fix
LAMBDA
instruction printer.
- Fix
- !265 The semicolons between instructions are now optional.
1.0.0
- !215
Major change: all Lorentz functionality was moved into
lorentz
package. A small portion of testing library code was moved around (fromLorentz.*
toMichelson.*
or vice versa).
0.7.0
- !237
The
option (nat %foo)
is now accepted syntax. The%foo
is ignored. - !241
Derive
Show
instance forVoid_
. - !238
NoExplicitDefaultEntryPoint
is now GHC-understandable constraint, for previous behaviour with nice error message useForbidExplicitDefaultEntryPoint
.CanHaveEntryPoints
is made stricter, now it returns true only for Michelson sum types. If that's a problem for you, consider usingShouldHaveEntryPoints
wrapper.- Added pseudo
Empty
type.
- !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 ofconsumer
contract may require explicit type annotation to specify parameter type. If you passed a reference to the originated contract toView
constructor, consider usingmkView
instead or applyingcallingDefTAddress
to the reference. - Generally it is encouraged to use
TAddress
instead ofAddress
where it is used to refer to a contract. fromContractAddr
renamed tofromContractRef
.Default
instances for{Some,}EntryPointCall
are removed, use one of explicit versions:epcPrimitive
,epcCallRootUnsafe
.- Reworked
FutureContract
type.
- Integrational tests now carry
0.6.0
- !127 Limit annotations' allowed characters
- !184
Fix
LAMBDA
instruction type converter bug - !173
!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
- Add entrypoint argument to methods in testing eDSL. Preserve the existing type of
lCall
and deprecate it. - Deprecate
Lorentz.TestScenario
.
- Add entrypoint argument to methods in testing eDSL. Preserve the existing type of
- !208
Resolve an ambiguity within integrational and unit interpreters
by renaming interpreter in
Michelson.Runtime
toexecutor
. - !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 oldcoerce_
- this variant provides the least safety).
- !180
Type arguments of
coerceWrap
andcoerceUnwrap
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 Consider annotations in PACK and UNPACK.
0.4.0
- Implemented most of Babylon changes: new instructions, elimination of
big_map
restructions, new restrictions for thecontract
type, partial support for entrypoints. Some instructions have been removed/deprecated. - Many updates of helper data types for upgradeable contracts:
UParam
andUStore
. - 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
andstorage
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 Lorentz DSL which allows one to write contracts directly in Haskell. May be moved to a separate package later.
- TM-132 Names for contracts in integrational tests.
- TM-35
PACK
andUNPACK
instructions. - TM-27 Proper handling of
FAILWITH
. - TM-44 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