aqua-book/changelog.md
2022-04-26 14:27:28 +00:00

16 KiB
Raw Blame History

Changelog

Aqua compiler's versioning scheme is the following: 0.BREAKING.ENHANCING.RELEASE

  • 0 shows that Aqua does not meet its vision yet, so syntax and semantics can change quickly
  • BREAKING part is incremented for each breaking change when old .aqua files need to be updated to compile with the new version
  • ENHANCING part is incremented for every syntax addition
  • RELEASE is the release number, shows internal compiler changes, bugfixes that keep the language untouched

0.7.2 April 26, 2022

  • FluenceJS was updated to 0.23.0 (#503)
  • noXor, noRelay, const and verbose options in aqua run (#473 #475)
  • aqua run functions can now handle arrays as arguments (#497)
  • aqua run will match JSON arguments with given types (#492)
  • aqua fully supports mathematical expressions (#476)
  • A lot of help and error messages were rewritten (#494)
  • A lot of bug fixes: (#499 #463 #85 #166 #435 #460 #473 #478 #385)

0.7.1 March 25, 2022

0.7.0 March 22, 2022

  • Moving all features from deprecated fldist to aqua. All interactions with peers moved to aqua remote subcommand. Descriptions of all commands can be found in Aqua book (#457)
  • Update FluenceJS to 0.21.5 (#456)
  • Switching to v3 FluenceJS API. Improves JS support for optional Aqua types (#453)
  • Add message when function not found (#454)

0.6.4 March 15, 2022

0.6.3 March 4, 2022

0.6.2 February 24, 2022

  • Added top and bottom types to the parser will be used for debugging functions (#442)
  • Schedule scripts using Aqua CLI (#440)
  • Better timeouts handling for CLI (#437)

0.6.1 February 16, 2022

  • aqua dist deploy to deploy a service to the Fluence network (#413, #419, #422, #431)
  • aqua dist remove to remove a deployed service (#428)
  • aqua env to show a list of known Fluence peers (#434)
  • Many, many bugfixes (#414, #415, #420, #426, #427)
  • Dependencies updated (#430)

0.6.0 February 4, 2022

  • Big internal refactoring for better testability & inline syntax additions (#403) breaks backward compatibility due to breaking change in Fluence-JS
  • Join expression was changed to generate noop (#406)
  • Now can use default imports for aqua compile just like in aqua run (#400)
  • Added helper for aqua run development process (#407)
  • Various bugfixes (#412, #405, #397)

0.5.3 January 13, 2022

0.5.2 December 24, 2021

  • Topology transformations were completely rewritten: the same Aqua scripts may produce different AIR, probably more efficient, but new bugs might be introduced as well (#371)
  • CLI: as an effort to move all the Fluence services management routines to Aqua, uploading files to Fluence's companion IPFS is now available via Aqua CLI (#390)
  • CLI: bugfixes (#388)

0.5.1 December 10, 2021

  • CLI: Support for secret key in aqua run (#375)
  • CLI: Add log level, print generated AIR (#368)
  • Improved topology calculation in par blocks (#369)
  • JAR file is not pushed to releases anymore. JS is the sole compilation target now
  • CLI: path to @fluencelabs/aqua-lib is provided as an imports folder by default. import "@fluencelabs/aqua-lib/builtins" should always work now, even outside of an NPM project (#384)
  • CLI: Pass arguments to aqua run as JSON via --data or --data-path flag (#386)

0.5.0 November 24, 2021

  • Breaking semantic change: Stream restrictions. This fixes many obscure bugs which happened when using streams inside for cycles (#321)
  • This version of Aqua is not compatible with fldist so far (cannot run the emitted AIR via fldist). Use aqua run to run Aqua instead (#358)
  • Added timeout parameter support for aqua run (#360)
  • You need to update FluenceJS to 0.15.0+ and Fluence Node to v0.0.23+ for Aqua 0.5 support, previous versions will not work.

0.4.1 November 10, 2021

  • New language feature: closures (#327)
  • New CLI option --scheduled to compile Aqua for the Fluence's Script Storage (#355)
  • Bugfixes for using streams to construct more complex streams (#277)
  • Better errors rendering (#322, #337)
  • Bugfix for comparing Option types (#343)

0.4.0 October 25, 2021

0.3.2 October 13, 2021

  • Experimental feature: now can run Aqua from Aqua CLI (#324):
aqua run -i aqua/caller.aqua -f "callFunc(\"arg1\",\"arg2\")"

0.3.1 September 13, 2021

  • Now .aqua extension in imports is optional: you may import "file.aqua" or just import "file" with the same effect (#292)
  • CLI improvements: --dry run (#290), output directory is created if not present (#287)
  • Many bugfixes: for imports (#289), TypeScript backend (#285, #294, #298), and language semantics (#275).

0.3.0 September 8, 2021

  • TypeScript output of the compiler now targets a completely rewritten TypeScript SDK (#251)
  • Constants are now UPPER_CASED, including always-available HOST_PEER_ID and INIT_PEER_ID (#260)
  • The compiler is now distributed as @fluencelabs/aqua package (was aqua-cli) (#278)
  • aqua is the name of the compiler CLI command now (was aqua-cli) (#278)
  • JVM version of the compiler is now available with aqua-j command; JS build is called by default so no more need to have JVM installed (#278)
  • Now you can have a file that contains only a header with imports, uses, declares, and exports, and no new definitions (#274)

0.2.1 August 31, 2021

  • Javascript build of the compiler is now distributed via NPM: to run without Java, use aqua-js command (#256)
  • Now dots are allowed in the module declarations: module Space.Module & many bugfixes (#258)

0.2.0 August 27, 2021

  • Now the compiler emits AIR with the new (ap instruction, hence it's not backwards compatible (#241)
  • Many performance optimizations and bugfixes (#255, #254, #252, #249)

0.1.14 August 20, 2021

  • Aqua file header changes: module, declares, use, export expressions (#245), see Imports and Exports for the docs.
  • Experimental Scala.js build of the compiler (#247)

0.1.13 August 10, 2021

  • Functions can export (return) several values, see #229
  • Internal changes: migrate to Scala3 (#228), added Product type (#168)

0.1.12 August 4, 2021

  • Can have functions consisting of a return operand only, returning a literal or an argument

0.1.11 August 3, 2021

  • Added host_peer_id , a predefined constant that points on the relay if Aqua compilation is configured so, and on %init_peer_id% otherwise, see #218.

0.1.10 July 26, 2021

  • Added <<- operator to push a value into a stream, see #214, #209.