Skip to content

Releases: aiken-lang/aiken

v1.0.13-alpha

16 Jul 01:49
97acd6d
Compare
Choose a tag to compare

Added

  • aiken-lang: expect foo == bar desugars into expect True = foo == bar

Fixed

  • aiken-lang: fail, todo, and trace had issues with sequences and expressions

v1.0.12-alpha

14 Jul 15:14
621017b
Compare
Choose a tag to compare

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 to fail
  • aiken-lang: new failing test syntax test name() fail {

v1.0.11-alpha

23 Jun 23:52
90ff211
Compare
Choose a tag to compare

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

14 Jun 01:35
85d82e5
Compare
Choose a tag to compare

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

08 Jun 23:43
Compare
Choose a tag to compare

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

02 Jun 04:45
cb9a140
Compare
Choose a tag to compare
chore: Release flat-rs version 1.0.7-alpha

v1.0.6-alpha

17 May 22:20
Compare
Choose a tag to compare

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

15 May 01:37
f2d8c89
Compare
Choose a tag to compare

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

10 May 03:28
e1a7539
Compare
Choose a tag to compare

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

28 Apr 21:21
Compare
Choose a tag to compare

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.