Skip to content
This repository has been archived by the owner on Sep 7, 2023. It is now read-only.

Ergo v0.20.0 πŸ¦‹

Compare
Choose a tag to compare
@jeromesimeon jeromesimeon released this 01 Nov 00:57

This release is focused on overhauling the following Accord Project technologies:

  • Dynamic Templates
    • Template Syntax
  • Markdown Support
    • Markdown Syntax
    • Markdown Transformations

It also includes newly supported enums for Ergo, a way to set a specific field in the state of your contract, as well as bug fixes.

Note: This release requires changes to application and template code ...

πŸš€ New Language Features

  • #392: String template syntax `This is text with {{% expression %}} and more text` (@jeromesimeon)
  • #3: Support for enumerated values, with proper typing and pattern matching support (@jeromesimeon)
  • #143: Expression sublanguage for modifying state (@jeromesimeon)

πŸ›° New Command Line

A and improved command line for Ergo which better aligns with the rest of the Accord Project Cicero #425

ergo <command>

Commands:
  ergo draft       create a contract text from data
  ergo trigger     send a request to the contract
  ergo invoke      invoke a clause of the contract
  ergo initialize  initialize the state for a contract
  ergo compile     compile a contract

Options:
  --help         Show help                                             [boolean]
  --version      Show version number                                   [boolean]
  --verbose, -v                                                 [default: false]

πŸ“š Standard Library

  • New encode and decode functions for URI encoding
  • New format function for DateTime
  • New getOptions function which returns global static options for the compiler

βš™οΈ Compiler

πŸ— Build

πŸ› Bug Fixes

  • #642: now is no longer a magic variable (@jeromesimeon)
  • #575: toString now properly format numeric values based on their types (@jeromesimeon)
  • #465: Constants are now properly imported and scoped, and can be accessed using an explicit namespace (@jeromesimeon)
  • #644: Cicero target properly includes type hierarchy (@jeromesimeon)
  • #645: Type soundness of match expression (@jeromesimeon)
  • #665: String with escaped characters are properly printed in REPL without an extra \