Skip to content

Releases: aeternity/aesophia

v8.0.1

24 May 12:49
83dcc6d
Compare
Choose a tag to compare

Changed

  • Upgrade aebytecode to v3.4.1 to fix C warnings

v8.0.0

18 Apr 07:18
ffdd4ec
Compare
Choose a tag to compare

Added

  • Bitwise operations for integers: band, bor, bxor, bnot, << and >>.
  • Int.mulmod - combined builtin operation for multiplication and modulus.
  • Crypto.poseidon - a ZK/SNARK-friendly hash function (over the BLS12-381 scalar field).
  • Address.to_bytes - convert an address to its binary representation (for hashing, etc.).
  • Raw data pointers added to AENS. In short we have introduced a new namespace
    AENSv2; they contain types similar to the old AENS; AENS.name and
    AENS.pointee, where the latter now has a constructor DataPt(bytes()). All
    AENS actions have been moved to AENSv2, and AENSv2.lookup and
    AENSv2.update consume and produce the new types. The old AENS namespace
    only contains the old datatypes, that can be used to interface existing
    contracts. Standard library AENSCompat is added to convert between old and
    new pointers.
  • Introduce arbitrary sized binary arrays (type bytes()); adding Bytes.split_any,
    Bytes.to_fixed_size, Bytes.to_any_size, Bytes.size, String.to_bytes,
    and Int.to_bytes; and adjust Bytes.concat to allow both fixed and arbitrary
    sized byte arrays.
  • Chain.network_id - a function to get hold of the Chain's network id.
  • Allowing Bytes.to_any_size in calldata creation, to enable creation of arguments
    with arbitray size.
  • Signature literals sg_... - they have type signature (which is an alias for bytes(64)).

Changed

  • Crypto.verify_sig is changed to have msg : bytes(). I.e. the
    signed data can be of any length (used to be limited to bytes(32)/hash).
  • System aliases are handled explicitly when converting to a Sophia value, this is only
    observable for signature where a value of type signature is now represented as a
    (new) signature literal.
  • Allow self-qualification, i.e. referencing X.foo when in namespace X.
  • Support for OTP-27 - no changes in behavior.

Removed

  • Bitwise.aes standard library is removed - the builtin operations are superior.

Full Changelog: v7.4.1...v8.0.0

v8.0.0-rc1

31 Jan 08:18
Compare
Choose a tag to compare
v8.0.0-rc1 Pre-release
Pre-release

Added

  • Bitwise operations for integers: band, bor, bxor, bnot, << and >>.
  • Int.mulmod - combined builtin operation for multiplication and modulus.
  • Crypto.poseidon - a ZK/SNARK-friendly hash function (over the BLS12-381 scalar field).
  • Address.to_bytes - convert an address to its binary representation (for hashing, etc.).
  • Raw data pointers added to AENS. In short we have introduced a new namespace
    AENSv2; they contain types similar to the old AENS; AENS.name and
    AENS.pointee, where the latter now has a constructor DataPt(bytes()). All
    AENS actions have been moved to AENSv2, and AENSv2.lookup and
    AENSv2.update consume and produce the new types. The old AENS namespace
    only contains the old datatypes, that can be used to interface existing
    contracts. Standard library AENSCompat is added to convert between old and
    new pointers.
  • Introduce arbitrary sized binary arrays (type bytes()); adding Bytes.split_any,
    Bytes.to_fixed_size, Bytes.to_any_size, Bytes.size, String.to_bytes,
    and Int.to_bytes; and adjust Bytes.concat to allow both fixed and arbitrary
    sized byte arrays.
  • Chain.network_id - a function to get hold of the Chain's network id.
  • Allowing Bytes.to_any_size in calldata creation, to enable creation of arguments
    with arbitray size.

Changed

  • Crypto.verify_sig is changed to have msg : bytes(). I.e. the
    signed data can be of any length (used to be limited to bytes(32)/hash).

Removed

  • Bitwise.aes standard library is removed - the builtin operations are superior.

Full Changelog: v7.4.1...v8.0.0-rc1

v7.4.1

23 Jan 15:17
dbeb792
Compare
Choose a tag to compare

Changed

  • Improve how includes with relative paths are resolved during parsing/compilation. Relative include paths are now always relative to the file containing the include statement.

Fixed

  • Disable unused type warnings for types used inside of records.

Full Changelog: v7.4.0...v7.4.1

v7.4.0

05 Sep 08:08
33229c3
Compare
Choose a tag to compare

What's Changed

Full Changelog: v7.3.0...v7.4.0

v7.3.0

24 Aug 09:20
6794851
Compare
Choose a tag to compare

What's Changed

  • Unify typesigs when implementing interface funs by @ghallak in #469
  • Improve constraint solving by @hanssv in #480
  • Improve independence analysis in code optimizer by @hanssv in #483

Full Changelog: v7.2.1...v7.3.0

v7.2.1

29 Jun 11:51
43c8328
Compare
Choose a tag to compare

Fixed

  • Fixed bugs with the newly added debugging symbols

v7.2.0

19 Jun 10:23
b902226
Compare
Choose a tag to compare

[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.

v7.1.0

24 Feb 08:42
311bf49
Compare
Choose a tag to compare

[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.

v7.0.1

04 Aug 17:39
ad4c341
Compare
Choose a tag to compare

[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.