Releases: accordproject/ergo
Ergo v0.20.9
π 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
- Uses latest Markdown Transform v0.10.0, including improvements and numerous bug fixes. See release notes for that version and previous ones at https://github.com/accordproject/markdown-transform/releases
Drafting
- When using
ergo draft
with the--wrapVariables
option conditional variables now includewhenTrue
andwhenFalse
attributes containing the alternative text.
Ergo v0.20.7
π 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
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 π¦
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 π¦
Ergo v0.20.1 π¦
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 π¦
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
anddecode
functions for URI encoding - New
format
function forDateTime
- New
getOptions
function which returns global static options for the compiler
βοΈ Compiler
- #303: Redefining a constant is now a compiler warning (@jeromesimeon)
π Build
- #688: Ergo and CI now run on Node.js v10 (@jeromesimeon)
- #623: Upgrade to Q*cert 1.4.1 (@jeromesimeon)
- #690: Improved Windows support (@jeromesimeon)
π 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
π 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
This is a minor release, upgrading to the latest versions of Concerto and Concerto Tools.
Ergo 0.9.0
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 arraye1
at (integer) indexe2
. This return an option for type safety. (#561) - π Logging. You can now write
info(e1); e2
which indicate you want to print the value ofe1
then evaluatee2
. 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 onergoc
ergorun
orergotop
(#300)
Build π
Dependencies Upgrades
- Switch to latest Q*cert library (1.3.0)