Releases: accordproject/ergo
Ergo 0.8.5
This is a patch release which updates the dependency on Composer Concerto to v0.70.5
Ergo 0.8.4
This is a patch release which updates the dependency on Composer Concerto to v0.70.4
Ergo 0.8.3
This is a patch release which updates the dependency on Composer Concerto to v0.70.3
Ergo 0.8.2
⚙️ This is minor release, with Composer Concerto exported as a component of the ergo-compiler
package. This provides a reliable way to ensure the same version of Concerto is used when importing multiple Cicero/Ergo packages in your application.
Ergo v0.8.1
This is mostly bug-fix release, along with improvements to the handling of special characters in Strings (new lines, carriage returns, tabs, etc).
Libraries
- 🧮 A new small library
interest.ergo
to calculate monthly payments for fixed rate mortgages
Lexer
- ⚙️ Fixes to the lexer to better handle escaped characters in strings (
\n
,\t
,\r
,\b
) (#606) - ⚙️ Strings can now use escaped ascii codes
\001
to\255
Bug fixes
Ergo v0.8.0
This is mostly a technical and bug-fix release.
System:
- ⚙️ A completely redesigned execution engine, with two distinct instantiations: one using https://github.com/patriksimek/vm2 for sandboxed evaluation, and the other using JavaScript
eval
for browser support - ⚙️ A new
ergo-test
better isolates testing support from the rest of the system
Bug fixes
- 🐞 Ergo command-line issues have been fixed (#591)
Ergo v0.7.3
This is a bug fix release:
- 🐞Addresses issue with "Not a Number" floating point literals in the emitted JavaScript code
- 🐞VM execution should be passed the JSON after validation
Ergo v0.7.0
This is a pretty major release! Some of the highlights include: support for handling and maintaining timezones in Date/Time operations and contract execution performs model validation.
Also this release include a completely redesigned API and execution engine with a better semantics for dispatch and the ability to call a specific clause by name.
Language
- 📲New dispatch semantics: dispatch picks the clause with the most specific request type first, and the compiler rejects programs with two clauses with the same request type (#550)
- ⌛DateTime operations maintain and take into account timezone information (#515)
- 🧮New operator
%
for remainder,integerModulo
returns the modulo.integerMod
is removed.
Execution engine and API
- ⚙️Completely redesigned compiler and execution API
- New
invoke
API call to invoke a specific Clause - ⚙️Contract execution validates request/states/responses against CTO models (#490)
- ⌛Execution API now takes a current time (ISO 8691 UTC format) as a parameter
- ⌛Using
moment-mini
for a smaller footprint of the execution engine
Compiler
- 🔎 More readable error messages when using command-line (#554)
- ⚙️ Dispatch and Init creation phase is moved after type-checking phase
- 🚅 More efficient representation for large string constants
- 🚅 integer to string conversion is using OCaml instead of Coq extraction for performance
Bug fixes
- 🐞
getMonth
now returns month ranging from 1 to 12, instead of 0 to 11 (#574) - 🐞arraySubtract has parameters in the right order again in JavaScript backend (#576)
- 🐞Record construction properly handles duplicate fields (#516)
- 🐞
startOf
is not the same asendOf
anymore... (#513)
Build
- Switching to OCaml 4.07.1
- Switching to Coq 8.8.2
- Work with opam2
- Library upgrades, notably: latest versions of js_of_ocaml, menhir and yojson
- Code coverage is reported as part of the continuous integration
Ergo v0.6.3
As we wait for the next major release (thank you everyone for your patience!), we have a minor release adding new built-in functions.
Language
- 🛍 A new built-in function
singleton
returns the one element in a singleton array (ornone
) - 🛍 Support for parsing Double and Integer/Long from String
Ergo v0.6.2
This release focuses on performance improvements and bug fixes
Compiler
- 🐎 There is now a way to get performance information from the ergo compiler, using the new command-line option
ergoc --monitor