Releases: aiken-lang/aiken
Releases · aiken-lang/aiken
v1.0.13-alpha
Added
- aiken-lang:
expect foo == bar
desugars intoexpect True = foo == bar
Fixed
- aiken-lang: fail, todo, and trace had issues with sequences and expressions
v1.0.12-alpha
Added
- aiken: added a
blueprint policy
command to compute the policy ID of a minting script - uplc: parsing and pretty printing for PlutusData
Fixed
- aiken-lang: Prevent mutual recursion caused by conflicting function names for generic expect type
- aiken-lang: UPLC evaluation of large integers literals (> max u64)
- aiken-lang: Parsing of error / todo keywords in when cases
- aiken-lang: Parsing of negative integer patterns and constants
- aiken-lang: automatically infer unused validator args as
Data
- aiken-lang: test crashing when referencing validators
- aiken: mem and cpu values were not showing in white terminals, switched to cyan
Changed
- uplc: make list type and pair type parsing match the plutus core spec
- aiken-lang: rename
error
tofail
- aiken-lang: new failing test syntax
test name() fail {
v1.0.11-alpha
Added
-
aiken: enhance
aiken new
-
aiken-lang: Binary operator are now treated like first-class citizen in
expressions. In particular, they can be used as function arguments directly:compare_with(a, >=, b) == compare_with(a, fn(l, r) { l >= r }, b)
-
aiken-lang: Make traces produced by expect dependent on the value of the
tracing flag.
Fixed
- aiken-lang: Explain discards and expect a bit better in the unused var warning
- aiken-lang: Fix expect _ = ... not including the cast from data logic if the type is data and right hand has a type annotation
- aiken-lang: Fix for the final clause of a when expecting another clause
afterwards in nested list cases. - aiken-lang: Fix for all elements were being destructured in tuple clauses
even if not used. - aiken-lang: Fix for tuple clause not consuming the next case causing
incomplete contracts. Now tuple clause will always consume the next case
unless it is the final clause - aiken-lang: Fix for builtins using the incorrect data to type conversion when used as a function param.
v1.0.10-alpha
Added
- aiken: added panic hook to present a link to make a bug report
Fixed
- aiken-lang: fmt for
module.Constr { field: value }
- aiken-lang: Issue where using var pattern in a when was passing the constr
index instead of the constr - aiken-lang: Issue where expecting on a list had unexpected behaviors based
on list length. - aiken-lang: Issue where expecting on a list from data was using the wrong
expect cast for the list tail.
v1.0.8-alpha
Added
- aiken-lang: numbers can now be written as hexadecimal digits (e.g.
0x42
) - aiken-lang: numbers can now be written using numeric underscores as
separator (e.g.1_000_000
)
Fixed
- aiken-lang: fixed operator precedences, in particular the pipe operator
(|>
) which is now of the lowest precedence. - aiken-project: need to convert to Program before dumping to uplc
- aiken-lang: fmt crashing when comment at end of file with no newline
- aiken-lang: Fixed error when using nested boolean checks in when
conditions - aiken-lang: Had the wrong conversion for constant maps to plutus data.
Fixed to check for right conversion - aiken-lang: Zero arg functions were grabbing extra dependencies they
didn't need to - aiken-lang: Rearrange list clauses and fill in gaps now handles nested
patterns in a uniform way - aiken-lang: Fixed discards in records that were being sorted incorrectly
leading to type issues
v1.0.7-alpha
chore: Release flat-rs version 1.0.7-alpha
v1.0.6-alpha
Fixed
- aiken-lang: Fix for cases where identity function is used as a param to a
function or assigned to a var. - aiken-lang: Fix for free unique caused by code gen function having a
missing dependency.
v1.0.5-alpha
Added
- aiken-lang: Add Record Module support for records with 0 fields
- aiken-lang: Added some optimization tests
- aiken-lang: Added an Aiken to uplc conversion tests on validators
- aiken-lang: Added some uplc builder functions for builtin creation
- aiken-lang: Added optimization where identity functions called on an arg
are reduced to just the arg.
Fixed
- aiken-lang: Fix for nested constructors where the type had a single
constructor. The fields exposed were not being added to the Air.
v1.0.4-alpha
Added
- aiken-lang: ChooseUnit builtin uses a more efficient way of handling the
first arg (unit) by just assigning to lambda
Fixed
- aiken-lang: Negative numbers now show up as a constant instead of 0 - that
number - aiken-lang: Expect on constructors without field maps no longer panics
- aiken-lang: Expect on constructors with discard as assigned field names
now no longer throws free unique
Changed
- aiken-lang: Refactor how builtins are processed to uplc in code gen
v1.0.3-alpha
Added
- aiken-lang: added optimization to help prevent unnecessary data wraps or unwraps
- aiken-lang: optimization to strip unnecessary lambdas
- aiken-lang: implement Clone for ParseError and tipo::Error for the playground
- aiken-project: added end to end tests on conversion from aiken lang to uplc
Fixed
- aiken: fixed 'new' instructions to properly show project name and folder
- aiken-lang: Add name of var to the unused var warning
- aiken-lang: fix expect on an empty list
- aiken-lang: pattern match on boolean with simple clause bodies
- aiken-lang: fix for inline_direct_reduce to be applied to pattern match function instead of argument
- aiken-lang: code gen function dependencies won't be hoisted to the top, instead hoisted at the location depended on.