mirror of
https://github.com/fluencelabs/aqua-book
synced 2024-12-04 15:20:19 +00:00
17 KiB
17 KiB
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 quicklyBREAKING
part is incremented for each breaking change when old.aqua
files need to be updated to compile with the new versionENHANCING
part is incremented for every syntax additionRELEASE
is the release number, shows internal compiler changes, bugfixes that keep the language untouched\
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
- Language server for VSCode (#512)
- Go-to definitions for VSCode (#514 #516)
PARTICLE_TTL
andPARTICLE_TIMESTAMP
constants (#505)- Bug fix: #519 #518 #509 #507 #508 #510 #513 #504
0.7.2 – April 26, 2022
- FluenceJS was updated to 0.23.0 (#503)
noXor
,noRelay
,const
andverbose
options inaqua 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
- Now Aqua supports arithmetic operators (e.g.
1 + x
), arrow calls in any place (e.g.for x <- foo(3 + bar()) par
...) and simple comparison (e.g.if a > 3
) (#461 -> #410) - Aqua CLI fixes (#466, #465, #464, #462)
0.7.0 – March 22, 2022
- Moving all features from deprecated
fldist
toaqua
. All interactions with peers moved toaqua 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
- Closures capture their topologic context now (#356)
- Small changes (#452, #449, #450)
0.6.3 – March 4, 2022
- Added collections creation syntax (#445)
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 inaqua run
(#400) - Added helper for
aqua run
development process (#407) - Various bugfixes (#412, #405, #397)
0.5.3 – January 13, 2022
- New expression: explicit
join
to wait for results computed in parallel branches (#402) - New syntax to access a collection element by index:
array[5]
. With this syntax, non-literal indices are allowed, likearray[conf.length]
(#401) - Refactoring of the compiler's internals: introducing
raw
model for values (#398) - New network monitoring functions are added to CLI (#393)
- Small improvements and bug fixes (#395, #396, #394, #392)
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 emittedAIR
viafldist
). Useaqua 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
- Now Aqua compiler emits JS/TS code for Fluence JS 0.14. The new JS/TS SDK is heavily rewritten to support async service functions declaration. It also embeds a deeply refactored AquaVM. (#334)
- Various bugfixes for AIR generation and the compiler behavior (#328, #335, #336, #338)
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\")"
- Many performance-related updates, compiler now runs faster (#308, #324)
- UX improvements for CLI and JS/TS backend (#307, #313, #303, #305, #301, #302)
0.3.1 – September 13, 2021
- Now
.aqua
extension in imports is optional: you mayimport "file.aqua"
or justimport "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-availableHOST_PEER_ID
andINIT_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 (wasaqua-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.