State of the Languages

Thank you for following the latest in Tezos smart contract language development. We have fresh updates on all your favorite languages.

Let us know if you have:

  • feedback or suggestions
  • a language you would like to add

Recent development

Albert

No recent updates.

Archetype

Archetype 1.2 was released mid-September.

Archetype now straightforwardly generates Michelson, without the need for transcription to another language. The command is:

$ archetype -t michelson mycontract.arl > mycontract.tz

Archetype 1.2.1 was released beginning of October with support of the TZIP16 metadata specification.

The command to add metadata is:

$ archetype --metadata-storage mycontract.json -c mycontract.arl

Please refer to the metadata TZIP16 documentation page for more information.

The Archetype team is working on milestone M2 to verify any deployed contract in Archetype.
The verification of the Archetype implementation of FA1.2 was released beginning of October. The presentation article is available here.

LIGO

The LIGO type environment is now preloaded, which allows for a CLI option to switch between protocols (Carthage and Dalphanet for now). This will make the work for future protocols support much easier.

Michelson

Since the last update in May, the Michelson team has mostly worked on the Delphi protocol proposal and on finalising the new Michelson features that are being tested on the Dalphanet test network and will be proposed for protocol 008. In more detail, Michelson has undergone the following developments:

  • Delphi (Protocol 007)
    • Optimisations
      The Michelson interpreter and type checker have received optimisations reducing the amount of computation done in the concurrency monad. Gas accounting has also been simplified and optimized.
    • Benchmarking and Gas
      A generator of well-typed Michelson scripts of arbitrary size has been developed, it has been used to benchmark the Michelson type checker; this has allowed to refine the type checking gas model and greatly reduce the gas price of type checking. New benchmarks
      on modern SSD disks has also enabled a reworked gas model for I/Os.
  • Protocol 008
    • Comb pairs
      The proposal for comb pairs has been improved to make the representation more readable and size efficient. Comb pairs can now be represented as n-ary pairs or sequences.
    • Tickets
      A second implementation of tickets relying on linear typing has been proposed. Which implementation to include in the next protocol proposal is being discussed.
  • Future
    Many optimizations of the Michelson interpreter and type checker are being studied. To simplify the development of Michelson tooling, efforts are being put to export the interpreter step function at the RPC level. This is needed for implementing support for the TZT unit test format in tezos-client and would also simplify the implementation of off-chain views. Last but not least, work is ongoing to make the documentation of the Michelson language much more interactive; a preview of this new documentation is available at https://michelson.nomadic-labs.com.

SmartPy

The SmartPy team has been busy with several projects.

  • Michelson to Michelson optimizations.
  • Michelson to SmartPy decompiler. They hope to be able to show a nice first version before the end of the year.
  • Improvements and documentation to code organization, design patterns, inheritance or mixins.
  • A great new React-based IDE that will be available in beta very soon. They will switch the full SmartPy.io to this technology eventually.

SCaml

No recent updates.


Thank you for reading! Check back soon for our next update.

Eowyn on behalf of the LIGOlang team

4 Likes