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

Releases: accordproject/ergo

Ergo v0.20.9

18 Feb 18:26
Compare
Choose a tag to compare

🏠 This is a patch release, upgrading to the latest version of markdown transform, and adding some useful information when drafting conditional variables with the wrapVariables option.

Dependencies

Drafting

  • When using ergo draft with the --wrapVariables option conditional variables now include whenTrue and whenFalse attributes containing the alternative text.

Ergo v0.20.7

20 Dec 14:37
Compare
Choose a tag to compare

🏠 This release upgrades to markdown transform 0.9.4 including several bug fixes for CiceroMark.🏠 This release upgrades to markdown transform 0.9.4 including several bug fixes for CiceroMark.

Ergo v0.20.5

10 Dec 17:04
Compare
Choose a tag to compare

This is a minor release for Ergo 0.20 !

🌷 This release provides more complete support for the draft command with the wrapVariables option, to support the latest Cicero UI components.

🏠 Internal

  • Switch CircleCI build to use Node.js version 10

Ergo v0.20.3 πŸ¦‹

15 Nov 20:11
Compare
Choose a tag to compare

This is a minor release for Ergo 0.20 !

This release focuses on internal changes needed for better support in editors.

🏠 Internal

  • Update to Markdown Transform version 0.8.2
  • Updating models or logic does not automatically trigger compilation anymore.

Ergo v0.20.2 πŸ¦‹

13 Nov 20:24
Compare
Choose a tag to compare

This is an improvement and bug-fix release for Ergo 0.20 !

🏠 Internal

  • Update to Concerto version 0.82.6
  • Update to Markdown Transform version 0.8.1

πŸ› Bug fixes

  • Setting state and calling contracts works in the REPL again (#702 report by @4katie)

Ergo v0.20.1 πŸ¦‹

08 Nov 15:21
Compare
Choose a tag to compare

This is an improvement and bug-fix release for Ergo 0.20 !

🏠 Internal

  • Update to Markdown Transform version 0.7.6

πŸ› Bug fixes

  • Match expressions in the REPL now have the correct evaluation order (#706)

Ergo v0.20.0 πŸ¦‹

01 Nov 00:57
Compare
Choose a tag to compare

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 \

Ergo 0.9.4

26 Jul 19:26
Compare
Choose a tag to compare

πŸ› This is a bug fix release, addressing a critical bug in the Ergo compiler (inlining code not handling shadowing inside foreach expressions properly #639).

Ergo 0.9.3

06 Jul 00:11
Compare
Choose a tag to compare

This is a minor release, upgrading to the latest versions of Concerto and Concerto Tools.

Ergo 0.9.0

30 Jun 14:26
Compare
Choose a tag to compare

This release is focused on overhauling error handling and improved error reporting.

But it also includes language and compiler changes: array index access, a new logging expression, support for compiler warnings and new built-in functions.

Note: While this release is backward compatible from a language perspective, it may require changes to application code which relies on the Ergo JavaScript API

Language

New expressions 🎁

  • πŸ”’ Array index. You can now write e1[e2] to access the value of array e1 at (integer) index e2. This return an option for type safety. (#561)
  • πŸ“ Logging. You can now write info(e1); e2 which indicate you want to print the value of e1 then evaluate e2. The semantic is defined as a no-op (so the compiler is free to optimise aggressively in some environments), but this can be useful when authoring template logic. This is an experimental feature, feedback is welcome (#121)

Built-in functions

  • πŸ“ New length function returns the length of a string (#615)

Compiler

Errors πŸ›

  • 🎢 Errors use a new type hierarchy consistent with Composer Concerto!
  • πŸ“ Better location information in type errors over built-in operators (#622)
  • 🌷 Underlining errors does not look strange when tab characters are present (#626)
  • 🌷Better type errors for missing fields (#629)

Warnings ⚠️

  • New support for compiler warnings. You can turn warnings on by using the --warnings flag on ergoc ergorun or ergotop (#300)

Build πŸ—

Dependencies Upgrades

  • Switch to latest Q*cert library (1.3.0)