Skip to content

v1.0.25-alpha

Compare
Choose a tag to compare
@github-actions github-actions released this 22 Mar 15:34
· 543 commits to main since this release
v1.0.25-alpha
4e8042f

Added

  • aiken-lang: Data now has a generic argument that can be used to specify the blueprint type. @KtorZ
  • aiken-lang: New types PRNG and Fuzzer in the prelude. @KtorZ
  • aiken-lang: Test definitions now accept an (optional) argument alongside a new keyword via to specify fuzzers. @KtorZ
  • aiken-project: Property-based testing framework with integrated shrinking and case labelling. @KtorZ
  • aiken-project: Unit tests now show assertion operands as Aiken expression instead of raw UPLC . @KtorZ
  • aiken: The check command now accept an extra arg --seed to provide an initial seed for the pseudo-random generator of properties. @KtorZ
  • uplc: add integerToByteString and byteStringToInteger builtins. @rvcas @MicroProofs
  • aiken-lang: add integer_to_byte_string and byte_string_to_integer aiken/builtins. @rvcas
  • uplc: more conformance tests for integerToByteString and byteStringToInteger along with new ones. @rvcas
  • aikup: error message when version is not found. @rvcas
  • aiken: support outputting mainnet addresses for validators. @rvcas
  • aiken-lang: added serde to CheckedModule to encode modules as cbor. @rvcas
  • aiken-lang: Strings can contain a nul byte using the escape sequence \0. @KtorZ
  • aiken: The check command now accept an extra (optional) option --max-success to control the number of property-test iterations to perform. @KtorZ
  • aiken: The docs command now accept an optional flag --include-dependencies to include all dependencies in the generated documentation. @KtorZ
  • aiken-lang: Implement function backpassing as a syntactic sugar. @KtorZ
  • aiken-lang: Extend backpassing to support multiple patterns/arguments. @rvcas

Fixed

  • aiken-lang: Boolean operators (|| and &&) were (somewhat) left-associative. This is now fixed and changed to right-associativity. @KtorZ
  • uplc: serialise_data builtin wrongly encoding some larger ints as tagged CBOR bigints, instead of plain integers over 9 bytes. @KtorZ
  • aiken-project: Unit tests reports are now inline with the test with less noise. @KtorZ
  • aiken-lang: Data deserialization for primitive types (pairs, bools, void) now do full checks on the Data structure. @MicroProofs
  • aiken-lang: The identity reducer optimization was not removing the identity function before. That is fixed now.@MicroProofs
  • aiken-lang: Inner opaque types can now be properly destructured by expect and when patterns. @MicroProofs
  • aiken-lang: A codegen specific name-unique interner is now used to preserve lambda scoping. @MicroProofs
  • aiken-lang: if there is only one clause we want to present a warning that suggests that a let binding should be used instead but only if it's an exhaustive pattern. @rvcas
  • aiken-lang: support nested void matching @rvcas
  • uplc: fix constr identity (constr-3.uplc) conformance test. @rvcas
  • aiken-lang: disallow MLResult in a type definition. @rvcas
  • aiken-lang: reversed deserialization of bls types out of data types. @rvcas
  • aiken-lang: validator args unexpectedly unbound causing code gen crashes. @rvcas
  • aiken-lang: allow implicitly discarded values when right-hand side unified with Void. @KtorZ
  • aiken-lang: allow zero arg mutually recursive functions. @MicroProofs
  • aiken-lang: function aliases now resolved to the module and function name in codegen. @MicroProofs
  • aiken-lang: fix indentation of pipelines to remain a multiple of the base indent increment. @KtorZ
  • aiken-lang: forbid presence of non-serialisable data-types in compound structures like List and Tuple. @KtorZ
  • aiken-lang: fix 'given' arity reported by 'incorrect arity' error message. @rvcas

Changed

  • aiken-lang: Discards will now also type check the validator arguments instead of completely ignoring them. @MicroProofs
  • aiken-lang: Further improvements to tracing when using expect casting from Data. @MicroProofs
  • aiken-lang: The set of curriable builtins with arguments that occur 3 or more times are now hoisted in scope with the arguments curried. @MicroProofs
  • aiken-lang: Improved the way the lambda inliner works to prevent unnecessary inlining into functions. @MicroProofs
  • aiken-lang: Simplifications to the AirTree type in codegen. @MicroProofs
  • aiken-lang: CONSTR_FIELD_EXPOSER and CONSTR_INDEX_EXPOSER now inline the builtins instead. @MicroProofs
  • aiken-lang: SubtractInteger with a constant as the second arg is now flipped to addInteger with a negated constant. @MicroProofs
  • aiken-lang: Validator arguments are now checked per arg instead of after all args are applied. @MicroProofs
  • aiken-project: remove test definitions from dependency modules. @rvcas
  • aiken-project: ignore warnings from dependency modules. @rvcas
  • aiken-project: parse sources in parallel, this resulted in a nice speedup. @rvcas
  • aiken-lang: You can no longer use expect on opaque types in various situations. @rvcas & @KtorZ

Acknowledgements

A big thanks to those not directly mentioned in the CHANGELOG, but that contributed to this release 🙏.