• v7.4.0 Stable

    zxq9 released this 2023-09-05 17:04:46 +09:00 | 28 commits to master since this release

    What's Changed

    Full Changelog: https://github.com/aeternity/aesophia/compare/v7.3.0...v7.4.0

    Downloads
  • v7.3.0 Stable

    zxq9 released this 2023-08-24 17:59:42 +09:00 | 31 commits to master since this release

    What's Changed

    Full Changelog: https://github.com/aeternity/aesophia/compare/v7.2.1...v7.3.0

    Downloads
  • v7.2.1 Stable

    ghallak released this 2023-06-29 20:46:23 +09:00 | 35 commits to master since this release

    Fixed

    • Fixed bugs with the newly added debugging symbols
    Downloads
  • v7.2.0 Stable

    ghallak released this 2023-06-19 19:21:44 +09:00 | 37 commits to master since this release

    [7.2.0]

    Added

    • Toplevel compile-time constants
      namespace N =
        let nc = 1
      contract C =
        let cc = 2
      
    • API functions for encoding/decoding Sophia values to/from FATE.

    Removed

    • Remove the mapping from variables to FATE registers from the compilation output.

    Fixed

    • Warning about unused include when there is no include.
    Downloads
  • v7.1.0 Stable

    zxq9 released this 2023-02-24 17:40:06 +09:00 | 44 commits to master since this release

    [7.1.0]

    Added

    • Options to enable/disable certain optimizations.
    • The ability to call a different instance of the current contract
      contract Main =
        entrypoint spend(x : int) : int = x
        entrypoint f(c : Main) : int = c.spend(10)
      
    • Return a mapping from variables to FATE registers in the compilation output.
    • Hole expression.

    Changed

    • Type definitions serialised to ACI as typedefs field instead of type_defs to increase compatibility.
    • Check contracts and entrypoints modifiers when implementing interfaces.
    • Contracts can no longer be used as namespaces.
    • Do not show unused stateful warning for functions that call other contracts with a non-zero value argument.

    Fixed

    • Typechecker crashes if Chain.create or Chain.clone are used without arguments.
    Downloads
  • v7.0.1 Stable

    zxq9 released this 2022-08-05 02:38:24 +09:00 | 61 commits to master since this release

    [7.0.1]

    Added

    • Add CONTRIBUTING.md file.

    Changed

    • Update Sophia syntax docs to include missing information about existing syntax.

    Fixed

    • 404 Contract polymorphism crashes on non-obvious child contract typing.
    Downloads
  • v7.0.0 Stable

    zxq9 released this 2022-07-29 04:38:18 +09:00 | 65 commits to master since this release

    Added

    • Added support for EXIT opcode via exit : (string) => 'a function (behaves same as ABORT, but consumes all gas).
    • Compiler warnings for the following: shadowing, negative spends, division by zero, unused functions, unused includes, unused stateful annotations, unused variables, unused parameters, unused user-defined type, dead return value.
    • The pipe operator |>
      [1, 2, 3] |> List.first |> Option.is_some  // Option.is_some(List.first([1, 2, 3]))
      
    • Allow binary operators to be used as lambdas
      function sum(l : list(int)) : int = foldl((+), 0, l)
      function logical_and(x, y) = (&&)(x, y)
      
    • Contract interfaces polymorphism

    Changed

    • Error messages have been restructured (less newlines) to provide more unified errors. Also pp_oneline/1 has been added.
    • Ban empty record definitions (e.g. record r = {} would give an error).

    Removed

    • Support for AEVM has been entirely wiped
    Downloads
  • v6.1.0 Stable

    ghallak released this 2021-10-20 18:42:48 +09:00 | 107 commits to master since this release

    Added

    • Bitwise stdlib
    • Set stdlib
    • Option.force_msg
    • Loading namespaces into the current scope (e.g. using Pair)
    • Assign patterns to variables (e.g. let x::(t = y::_) = [1, 2, 3, 4] where t == [2, 3, 4])
    • Add builtin types (AENS.name, AENS.pointee, Chain.ttl, Chain.base_tx, Chain.ga_meta_tx, Chain.paying_for_tx) to
      the calldata and result decoder
    • Patterns guards
      switch(x)
        a::[] | a > 10 => 1
        _              => 2
      
      function
        f(a::[]) | a > 10 = 1
        f(_)              = 2
      

    Changed

    • Fixed the ACI renderer, it shouldn't drop the stateful modifier
    Downloads
  • v6.0.2 Stable

    zxq9 released this 2021-07-07 00:31:35 +09:00 | 126 commits to master since this release

    Changed

    • List.from_to_step now forbids non-positive step (this change does
      not alter the behavior of the previously deployed contracts)
    • Fixed leaking state between contracts (typechecker feature, does not break consensus)
    Downloads
  • v6.0.1 Stable

    zxq9 released this 2021-06-24 16:38:05 +09:00 | 133 commits to master since this release

    Changed

    • Fixed a bug in calldata encoding for contracts containing multiple contracts
    • Fixed a missing include in the Frac standard library
    Downloads