Releases: Zilliqa/scilla
scilla_v0.8.0
Release notes for scilla_v0.8.0
Language updates
Usability
- Print typeinfo when asked for for .scillib files also (#870)
Code refactoring and build system
scilla_v0.7.1
Scilla v0.7.1
Performance improvements
- Fix quadratic behaviour in type checker. Save and restore values from type environment. Don't copy it all (#857)
Preparation for supporting external state reads
- Parameterising identifier names (#826)
- Decouple eval_runner from TypeChecker (#833)
- Provide a public name for scilla_test to make it installable (#837)
- Parameterize parser names (#838)
- Name disambiguation (#847)
Bug fixes
- Run the PM checker for rlibs and elibs in expression checker (#861)
- Remove inadvertant debug message in emacs mode (#831)
- Catch JSON parse exceptions properly in the fast parser. (#843)
Code refactoring and build system
- Move PrimTypes to Type and Literal (#822)
- Prefix all the top level modules with Scilla* (#824)
- Build and CI tweaks (#832)
- Run shellcheck static analyzer on shell scripts (#827)
- Remove redundant cmodule field "cname" (#835)
- Remove with-test from scilla.opam (#839)
- Moved prim_typ to separate module (#842)
- Small tweaks in Accept.ml (#845)
- macOS: Add Homebrew's Brewfile.lock.json to .gitignore (#846)
- Switch true to () in forallM (#848)
- More monad utils and a verbose logger (#851)
- Remove iterM and use forallM instead (#852)
- Refactor Recursion.ml (#849)
- let%bind refactoring (#853)
- opam: dune package does not support {build} flag (#855)
- Fix Menhir grammar file (#860) …
Misc
scilla_v0.7.0
Release Notes for v0.7.0
Language updates:
- Provide integer square root builtin (#819)
- Warn: statements create new variables, not redefine earlier value (#807)
- Fix issue in parsing the value part of a map type (#808)
- tests: add Ackermann function (#817)
Build system and code refactors:
- Make json_errors optional in testsuite (#811)
- Update opam deps (#803)
- Refactor Syntax.ml (#813)
- Make Scilla libs installable via opam (#815)
- Provide a
make debug
target for debugging with ocamldebug (#816) - Make Rep independent of Ident (#820)
Note on assets
Please use scilla-v0.7.0.tar.gz and scilla-v0.7.0.zip as source code archives,
not the automatically generated by GitHub ones, as those don't contain
dependencies which we keep as git submodules.
scilla_v0.6.0
Scilla release v0.6.0
Language and programmer experience:
- Add support to iterate over lists (#800) …
- Allow reordering of fields in events (#799) …
- Track source location for ADT names and their constructors (#770) …
- Fix missing gas_remaining in output without jsonerrors (#766)
- Separate procedures and transitions in -contractinfo (#784)
- Forbid shadowing of type variables (#793) …
Infrastructure and code restructuring:
scilla_v0.5.2
Release Notes v0.5.2
- Fix display of warnings in Emacs flycheck mode (#757)
- Fix map key ordering by sorting, to ensure consensus (#764)
Note on assets
Please use scilla-v0.5.2.tar.gz
and scilla-v0.5.2.zip
to as source code archives, not the automatically generated by GitHub ones, as those don't contain dependencies which we keep as git submodules.
scilla_v0.5.1
Release notes v0.5.1
Build system
- Switch to Dune 2.0 (#723)
- Port Scilla to Core v0.12 and OCaml 4.07 - 4.09 (#724)
- add missing cmake for docker build (#726)
- Dune warnings are fixed; a note on local switches (#732)
- Switch from Core to Core_kernel in most places (#733)
- Use domt4 homebrew tap (#742)
- Fix opam build by making libff a git submodule (#753)
- Tweaks to build system (#755)
Language
- Mandate specifying scilla_version in libraries (#731)
Testsuite
- Added trivial constraint to crowdfunding (#728)
- Uniformize test modules' interfaces (#734)
- Remove unused tests (#741)
- Rearranging lib test files (#747)
Refactoring and other code improvements
- Add mli files (#729)
- Use ContractUtil for mandatory message field names (#735)
- Move files around (#736)
- Scilla runner refactoring + a small bug fix (#749)
Bugfixes
- Fix init JSON validation checks for libraries (#748)
- Fix Schnorr (#746)
- Fix bug/typo to check patterns in transitions (#752)
Misc
- INSTALL.md formatting: add foldable sections (#744)
Note on assets
- Please use
scilla-v0.5.1.tar.gz
andscilla-v0.5.1.zip
to as source code archives, not the automatically generated by GitHub ones, as those don't contain dependencies which we keep as git submodules.
scilla_v0.5.0
Release Notes
Core language:
- deprecate pattern bind shadowing (#701)
- Enable sending multiple messages (#712)
- Contract constraints (#716)
Checker:
- PatternChecker: Run it for imported library and library modules. (#684)
- Typechecker gas errors no longer reported as type errors (#697)
- Fix scoping issue in cashflow (#705) …
Builtins and library functions:
- Support for alt_bn_128 (zkSNARKs) (#676)
- Add orb_(3/4) and andb_(3/4) utilities (#688) …
- Schnorr: catch exceptions and gracefully exit instead of aborting (#695)
Build / Setup:
- Fix Makefile coverage target (#652)
- Make local opam switch installation more robust (#655)
- Fix instructions on setting up Scilla emacs mode (#663)
- Update .gitignore to ignore only root /bin directory (#669)
- Make Scilla available for Nix users (#668)
- Use the TMPDIR env variable instead of hardcoding /tmp (#670)
- Fix mismatched OCaml version in Docker building (#674)
- Make -gaslimit mandatory argument and update emacs mode (#677)
- Fix parallel build (#681) …
- Add a reference to Scilla docs in README (#683)
- Remove bisect excludes. Fixes errors seen in IDEs (#685)
- added Installation instructions to get for Windows 10 (#694)
- Extend version ranges of Scilla's dependencies (#699)
- Fix secp256k1 native package for macOS 10.15 Catalina (#703)
- Remove unused ppx_deriving_protobuf dependency (#720) …
Testing:
- Add map_corners_test for empty string key (#653)
- Fix multisig wallet (#664)
- Testsuite: Use relative paths for stdlib path in TestUtil.ml (#682)
- More verbosity for events in wallet_2 contract (#706) …
IDE support:
- Report type info for variables under a flag. Update the Emacs mode (#692)
Misc:
- Rename lexer token from BIND to FETCH (#693)
scilla_v0.4.0
Infrastructure:
Allow compilation with OCaml 4.07 (#548)
Print CLI flags used on test failure (#551)
eval-runner: accept -gaslimit cli option (#612)
Bump admissible opam packages' versions (#634)
Efficient state accesses via IPC (#644)
Gas accounting for types (#647)
Bugfixes:
Fix(doc): let
example path (#570)
Fix stackoverflow for to_nat builtin (#613)
Fix nat_fold quadratic complexity (#614)
Fix bug in map_access_type function (#626)
Fix minor bug in EvalUtil.ml : map_get (#629)
Language:
Procedure support (#550, #554, #555, #560, #561, #565)
Bech32 conversion builtins for Scilla (#563)
Provide builtin schnorr_get_address (#579)
Add support for throwing exceptions (#582)
Support optional type annotations for libraries (#584)
Implement nested multi-line comments (#590, #591)
Introduce foldk, rewrite ListUtils (#608)
Do not incentivize stores that reduce storage. (#632)
Disallow non-printable characters in String literals (#637)
Implement incremental API with state error messages (#621)
Static Analysis:
Cashflow analysis bugfixes and hint option (#517, #549)
Type-check against the optional type of a let-in LHS (#568)
Teach one-msg checker about procedures. (#596)
Print map depth of contract fields in contract info (#625)
Refactoring and others:
Separate file extension for Scilla expression files (#552)
Factor out a function for finding free vars in expr (#557)
Shift get_pattern_bounds to outer scope for re-use (#558)
docs(INSTALL.md): fix PKG_CONFIG_PATH (#559)
TypeUtilities is independent of Rep. Defunctorize it (#572)
Decouple state accesses from Eval (#571)
Minor simplification in parsing throw (#583)
Type annotations of stdlib values in their own lines (#588)
Upgrade travis os to 16.04 (#594)
Add a few utility functions (#600)
[GUA] Use containers to track growth of lists (#606)
Remove vim-plugin in misc, update README, fix typos (#607)
Refactor StateService into a functor (#618)
Use Yojson.Basic.t instead of Yojson.t (#627)
Testsuite: input state json must contain all fields (#630)
refactor useful literals for better reuse (#633)
Add a reference for pattern-match checking (#640)
Tests:
Reworked crowdfunding (#581)
Move computations into library functions (#585)
Add more tests for map put and remove builtins (#599)
Updated Bookstore example (#601)
Add earmarked-coin contract (#602)
Simplify andb and orb to increase readability and save gas (#603)
Add UD contracts to scilla-checker tests (#641)
Add a test that blows up a list exponentially and runs out of gas (#642)
scilla_v0.3.0
Infrastructure, testsuite and documentation:
- Fix opam dependencies (#545)
- fix contract tests: read output stream in case of expected failure (#502)
- docs: improve macOS docs (#467, #509)
- Print coloured diff on testsuite failures (#479)
- Add a function for fatal errors instead of handling them every where (#497)
- All errors must be on perr, not pout (#495)
- Change libdir separator from semicolon to colon (#464)
- build: use pkg-config from dune (#462)
- build: add -cclib flags to cpp/dune (#461)
- Add CODEOWNERS file (#463)
Bug-fixes:
- Catch exceptions from Yojson.Basic.Util (#544)
- Fix builtin arithmetic operations (#524)
- Convert hex message to raw data before signature verification (#523)
- Add checks for arguments to builtin substr (#525)
- Fix bug in is_ground_type and add tests. (#481)
- Fix parsing of standalone expressions and types (#476)
- Fix free type variables extraction function (#471)
- Fix parsing of type of Map value (#455)
Language:
- Add keywords for TRY and CATCH (#543)
- Disallow special names to be created in a contract (#540)
- More stable hashing scheme for complex literals (#532)
- namespaces for Scilla (#526)
- location reporting in syntax errors (#505)
- support for scanning init.json for libraries. (#501)
- External library support for Scilla (#478)
- Rename library sources to have .scillib extension (#472)
- Restrict substr arguments to uint32 (#470)
- ADT is either empty or must have a constructor (#466)
Static Analysis:
- Gas usage analysis for Scilla (#519)
- ADT support in cashflow analysis (#480)
- Warn when important names are shadowed by re-definitions (#530)
- Unhandled cases in warning against non-inplace map accesses (#520)
- tags for constructors (#488)
- Technical updates of Cashflow.ml (#460)
Refactoring and others:
- Adjust ByStrX and ByStr literals' representations (#535)
- Print state json on contract creation (#529)
- Add exists and delete keywords to emacs mode (#518)
- Handle library dependences in a tree structure (#507)
- Change builtin rep from string to internal ADT (#486)
- Improve internal representation of
PrimType
s (#469) - Added name, symbol, and decimals to fungible-token (#403)
scilla_v0.2.0
Release notes for v0.2.0
Build:
- Update to use yojson 1.6.0, fixing build failures (#425).
- Remove dependence on ppx_deriving_yojson (#445).
- Update opam dependency build instructions (#428).
- Release branches will now be tracked by Travis-CI (#431).
Language:
- Restrict map keys to being primitive types (#420)
- Relaxation of constraints on
let-in
expressions (#441) - Remove
MTag
from message payloads (#439) - Remove list_to_map function from stdlib (#444)
- Disallow lambda map values (#451)
- add String.strlen builtin (#423)
Testsuite:
scilla-checker:
- Check contracts for payment acceptances (#409)
- Print ADT info as part of checker's contract info (#447)
Misc updates / bug fixes:
- Add contract check to scilla_checker (#429)
- Updates to the emacs scilla-mode (#440)
- Update command line usage message to depend on the speclist (#436)
- Fix schnorr failure (#442)
List of opam packages and their prescribed versions for release-v0.2.0
angstrom 0.11.0
batteries 2.9.0
bisect_ppx 1.4.0
core v0.11.3
cryptokit 1.13
ctypes 0.14.0
ctypes-foreign 0.4.0
dune 1.6.3
fileutils 0.5.3
hex 1.3.0
menhir 20181113
ocaml-migrate-parsetree 1.2.0
ppx_deriving 4.2.1
ppx_sexp_conv v0.11.2
secp256k1 0.4.0
stdint 0.5.1
yojson 1.6.0