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.5 – August 22, 2022

  • added AIR validation on Aqua compilation

  • Aqua parser will throw an error on negative array indexes

  • plugins feature added. Read here for more details

  • improvements in go-to definition feature in VSCode

  • a lot of bugs fixed

0.7.4 – June 24, 2022

  • JSON services for aqua run. Read here for more details. (#520).

  • Use JSON for arguments in aqua run without extra brackets for optional fields (#517)

0.7.3 – June 10, 2022

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/builtin.aqua" 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.

Last updated

Was this helpful?