Skip to content

Releases: Zilliqa/scilla

scilla_v0.8.0

04 Aug 04:47
b27166f
Compare
Choose a tag to compare

Release notes for scilla_v0.8.0

Language updates

  • builtin eq for Bystr type (#866)
  • Builtin size on maps takes constant time. Adjust gas (#868)

Usability

  • Print typeinfo when asked for for .scillib files also (#870)

Code refactoring and build system

  • to_nat takes only Uint32 as argument. Make it non-polymorphic (#864) …
  • Modify docker file to upgrade os to ubuntu18 (#872) …
  • Add MonadUtil partition_mapM (#871)
  • Fix Makefile and update testsuite doc (#874)

scilla_v0.7.1

03 Jul 03:28
3b032eb
Compare
Choose a tag to compare

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

  • Mention example usage of scilla-server in README (#829)
  • Constructor name of ADTValue should be a name rather than a string (#844)
  • Fix copyright notice for code files (#854)

scilla_v0.7.0

23 Apr 03:13
7de037f
Compare
Choose a tag to compare

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

15 Mar 11:06
18e764a
Compare
Choose a tag to compare

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:

  • Add Scilla execution server (#738) …
  • Drop dependency on Batteries and Extlib (#781) …
  • Forbid polymorphic compare (#771) …
  • Refactor the project to not rely on hard-coded paths (#768) …
  • Create bin/ symlink for release builds also (#792)
  • Upgrade ocamlfmt to version 0.13 and reformat code base (#769) …

scilla_v0.5.2

30 Jan 10:26
c133082
Compare
Choose a tag to compare

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

16 Jan 13:16
d6d2ad6
Compare
Choose a tag to compare

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 and scilla-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

04 Dec 07:01
49505e3
Compare
Choose a tag to compare

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

11 Sep 10:36
36ba6e1
Compare
Choose a tag to compare

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

29 Apr 16:08
f9ebd44
Compare
Choose a tag to compare

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 PrimTypes (#469)
  • Added name, symbol, and decimals to fungible-token (#403)

scilla_v0.2.0

15 Feb 10:44
0269610
Compare
Choose a tag to compare

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:

  • Allow multiple libdirs in tests (#443)
  • Synchronise runner and checker test contracts (#452)

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