Skip to content

Releases: dfinity/motoko

0.7.2

25 Oct 15:49
be62293
Compare
Choose a tag to compare

0.7.1

24 Oct 19:28
db96474
Compare
Choose a tag to compare
  • motoko (moc)

    • Halve (default ir-checking) compilation times by optimizing type comparison and hashing (#3463)

    • Add support for type components in object type syntax (#3457, also fixes #3449)

      type Record = { type T = Nat; x : Nat};

    is now legal.
    Note the definition of T is neither recursive, nor bound in x : Nat,
    but can refer to an existing recursive type declared in an outer scope.

  • motoko-base

0.7.0

25 Aug 12:19
0c6948b
Compare
Choose a tag to compare
  • motoko (moc)

    • BREAKING CHANGE (Minor):
      Adds new syntax for merging records (objects) and
      adding/overwriting fields. The expression

      { baseA and baseB with field1 = val1; field2 = val2 }

      creates a new record by joining all (statically known) fields from
      baseA/B and the explicitly specified field1/2.
      This is a breaking change, as a new keyword with has been added.
      Restrictions for ambiguous and var fields from bases apply. (#3084)

    • Add new support for installing actor class instances on the IC,
      enabling specification of canister settings, install, upgrade and
      reinstall. (#3386)

      A new expression

        (system <exp> . <id>)
      

      where <exp> is an imported library and <id> is the name of
      an actor class, accesses a secondary constructor of the class
      that takes an additional argument controlling the installation.

      For example,

        await (system Lib.Node)(#upgrade a)(i);

      upgrades actor a with the code for a new instance of class Lib.Node,
      passing constructor argument (i).

    • Performance improvements for assigment-heavy code (thanks to nomeata) (#3406)

0.6.30

11 Aug 15:07
bf5a876
Compare
Choose a tag to compare
  • motoko (moc)

    • add primitives

      shiftLeft : (Nat, Nat32) -> Nat
      shiftRight : (Nat, Nat32) -> Nat

      for efficiently multiplying/dividing a Nat by a power of 2
      (#3112)

    • add primitives

      rts_mutator_instructions : () -> Nat
      rts_collector_instructions : () -> Nat

      to report approximate IC instruction costs of the last message
      due to mutation (computation) and collection (GC), respectively (#3381)

  • motoko-base

0.6.29

10 Jun 17:17
a0cae95
Compare
Choose a tag to compare
  • motoko (moc)

    • The language server now supports explicit symbol imports (thanks
      to rvanasa) (#3282)
    • The language server now has improved support for navigating to
      definitions in external modules (thanks to rvanasa) (#3263)
    • Added a primitive textCompare allowing more efficient three-way
      Text comparisons (#3298)
    • Fixed a typing bug with annotated, recursive records (#3268)
  • motoko-base

    • Add

      ExperimentalInternetComputer.countInstruction : (comp : () -> ()) -> Nat64

      to count the Wasm instructions performed during execution of comp() (dfinity/motoko-base#381)

    • Add

      ExperimentalStableMemory.stableVarQuery : () -> (shared query () -> async {size : Nat64})

      for estimating stable variable storage requirements during upgrade
      (dfinity/motoko-base#365)

    • Performance improvement to Text.compare (dfinity/motoko-base#382)

0.6.28

20 May 01:53
Compare
Choose a tag to compare
  • motoko (moc)

    • Add to_candid, from_candid language constructs for Candid serialization to/from Blobs (#3155)
    • New system field 'inspect' for accepting/declining canister ingress messages (see doc) (#3210)

0.6.27

04 May 13:33
6e25e40
Compare
Choose a tag to compare
  • motoko (moc)

    • Importing modules by relative path is now more robust (#3215).
    • Performance: persisting stable variables to stable memory is now
      performed in streaming fashion, reducing heap consumption and
      copying during an upgrade (#3149).
    • Performance: local 32- and 64-bit numeric values are now stored in
      using unboxed form when possible (thanks to nomeata) (#3207).
  • motoko-base

    • Fixed a bug in Trie.filter (and Trie.mapFilter) which could
      lead to missing matches in some cases (dfinity/motoko-base#371).

0.6.26

20 Apr 12:17
23865b8
Compare
Choose a tag to compare
  • motoko (moc)

    • Performance: inline prim-wrapping functions (thanks to nomeata) (#3159)
    • Improve type pretty printer to mirror type parser (avoids producing unparseable stable variable signatures) (#3190)
    • Adds new flag --omit-metadata to omit certain metadata sections from actor (and actor class) Wasm (#3164)
    • Performance: avoid redundant heap allocation when deserializing compact Candid int and nat values (#3173)
    • Added a primitive to obtain stable variable memory footprint (#3049)
  • motoko-base

0.6.25

07 Mar 17:12
77193e7
Compare
Choose a tag to compare
  • motoko (moc)

    • bugfix: fix bogus elision of type constructors sharing names with primitive types in --stable-types section and .most file (#3140)

0.6.24

06 Mar 20:43
8cdbd85
Compare
Choose a tag to compare
  • motoko (moc)

    • bugfix: fix bogus identification of distinct type constructors
      in --stable-types section and .most file (#3140)