v1.0.25-alpha
github-actions
released this
22 Mar 15:34
·
597 commits
to main
since this release
Added
- aiken-lang: Data now has a generic argument that can be used to specify the blueprint type. @KtorZ
- aiken-lang: New types
PRNG
andFuzzer
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
andbyteStringToInteger
builtins. @rvcas @MicroProofs - aiken-lang: add
integer_to_byte_string
andbyte_string_to_integer
aiken/builtins
. @rvcas - uplc: more conformance tests for
integerToByteString
andbyteStringToInteger
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 🙏.