Releases: accordproject/ergo
Ergo v0.4.1
This is a bug fix and improvement release.
Stdlib
- New operation
inArray
checks if an element is in the given array - New operation
containsAll
checks if all the element of the first array are in the second array
Bug fixes
- 🐞 bug in arraySubtract (#450)
Ergo v0.4.0
This is a release for strongly typed Ergo! The type checker is now enabled on the compiler.
Additional changes include:
Type checker
- 👩⚕️More better error messages (#374)
- 🔬You cannot instantiate an abstract class anymore, and rightly so (#370)
Build
- Cleaner and faster CircleCI build from source
Bug fixes
- 🐞 bug in optional chaining implementation (#321)
- 🐞 bug in importing type hierarchy from CTO files
Ergo v0.3.4
Ergo v0.3.3
This is a bug-fix release
- 🐞 main method creation fails on non-concept types ( #419 )
- 🐞 package.json are consistent again
- 🐞 automatic release script should work again
Ergo v0.3.1
🍸 The Ergo REPL (Read-Eval-Print-Loop) is out!
Try it by installing the latest release of Ergo with:
npm i -g @accordproject/ergo-cli
Then start the REPL in a terminal with:
ergotop
You can type in Ergo expressions (or even load contracts) and try them interactively. The REPL showcases the upcoming type system for Ergo. When you write an expression or load a contract, it will check types for you and tell you if it finds mistakes in your code.
Sample Ergo contracts that work in the REPL can be found in ./examples/typechecked
Other changes in this release:
Language:
- Output types on functions and clauses are now optional
- Built in functions on DateTime renamed from
moment*
todateTime*
- Optional values use
none
andsome(...)
consistently - Empty value (resp. type) now called
unit
(resp.Unit
) - match expressions now understand the composer models type hierarchy
Compiler:
- Switched to Coq 8.8.1
- Switched to Q*cert 1.2.0
Tooling
- New VIM mode (contribution @kach) can be found in
ergo.vim
Bug fixes:
Ergo v0.2.0
A new release, modules and typing are the highlight.
Install the latest release of the Ergo command-line tool with
npm i -g @accordproject/ergo-cli
Compiler
- Multiple Ergo files/modules can be passed to the command line
- Automatically reorders input CTOs and Ergo modules based on dependency
- Initial compiler support for type checking
Tooling
- new
ergodep
command line tool calculates dependencies
REPL (contribution @kach)
- REPL now checks/infers types (alpha)
Ergo v0.1.3
The language is slowly but surely getting more mature. Many thanks to our contributors @kach, @jbesq777 @mttrbrts!
Install the latest release of the Ergo command-line tool with
npm i -g @accordproject/ergo-cli
Language
- Instead of
new Concept{ ... }
we now write:Concept{ ... }
(#326) - Fully qualified names prefixed with
~
to avoid parsing ambiguity (#310) - New syntax to set contract instance and call clauses (#277)
Compiler
- Brand new inlining phase (contribution @kach)
- Revisions/bug fixes to namespace resolution and context management
- Compiler and REPL share common compilation pipeline
REPL (contribution @kach @jeromesimeon)
- Interface improvements (multiline input, better error reporting, handles empty input gracefully)
- Support for state changes
- Support for
match
,set contract
andcall
Ergo v0.1.2
- Bug Fix
npm install
bug (#270) - AST: Better location information
- AST: function body is expression rather than statement
- Compiler: Revision to ergo -> ergo calculus compilation phase (#223)
- Tooling: Initial design for REPL (#25) (contribution by @kach)
- Syntax:
throws
andemit
declarations can be in any order
Ergo v0.1.1
- Bump version 0.1.1
Ergo v0.1.0
- Revised namespace resolution
- Cleaner compilation calls