Programming language for distributed systems & p2p
Go to file
Dmitry Kurinskiy 985309d4eb
Fixes missing par (#177)
* Fixes missing par

* test for par

* Par topology bug fixed

* test `on` on every par branch

* Topology refactoring

* Tests compilation wip

* Tests compilation wip

* Tests compile

* Test fix

* Non-par tests fixed

* The last test remains

* Topology tests fixed

* SemanticsSpec compiles

* transformspec wip

* fix diff

* TransformSpec with diff

* test for error handling

* topology resolver spec wip

* delete test, rename test

* fixed

* par with export variable test

* test for try without catch

* Handle try without catch

* XorParTag fix

* Wake up target peer after par

* Increment version

* Fix xor par during func model resolution

* test with import and fold

* Linker bug fixed

Co-authored-by: DieMyst <dmitry.shakhtarin@fluence.ai>
2021-06-22 11:03:45 +03:00
.github/workflows 170 pass constants as arguments (#171) 2021-06-15 20:44:55 +03:00
aqua Fixes missing par (#177) 2021-06-22 11:03:45 +03:00
aqua-src Fixes missing par (#177) 2021-06-22 11:03:45 +03:00
backend Fixes missing par (#177) 2021-06-22 11:03:45 +03:00
cli/src 170 pass constants as arguments (#171) 2021-06-15 20:44:55 +03:00
linker/src Bug fixes (#127) 2021-05-24 11:00:45 +03:00
model/src/main/scala/aqua/model Fixes missing par (#177) 2021-06-22 11:03:45 +03:00
npm CLI hotfix: check node_modules in current directory (#130) 2021-05-24 19:54:53 +03:00
parser/src Fixes missing par (#177) 2021-06-22 11:03:45 +03:00
project Topology refactoring (#100) 2021-04-29 14:16:25 +03:00
semantics/src Fixes missing par (#177) 2021-06-22 11:03:45 +03:00
test-kit/src Fixes missing par (#177) 2021-06-22 11:03:45 +03:00
types/src Fixes missing par (#177) 2021-06-22 11:03:45 +03:00
.gitignore First experiments with Aqua HLL 2021-02-01 16:17:46 +03:00
.scalafmt.conf Fix via path, complex tests (#27) 2021-04-05 10:40:51 +03:00
build.sbt Fixes missing par (#177) 2021-06-22 11:03:45 +03:00
README.md Fixes #99: use impossible name for relay (#103) 2021-04-30 11:51:55 +03:00

Aqua

release

Aqua is a new-gen language for distributed systems.

Aqua programs are executed on many peers, sequentially or in parallel, forming a single-use coordination network.

Aqua's runtime is heterogeneous: it includes browsers, servers, devices, all involved in solving a single task. Therefore, Aqua scripts are compiled into several targets at once, with AIR and Typescript as a default.

Using Aqua

Please refer to aqua-playground to learn how to use Aqua.

Compiler CLI

To build the Aqua compiler, clone the repo & run sbt assembly, or simply download the latest JAR file from the releases page.

It requires java to run Aqua compiler from the command line:

java -jar aqua-hll.jar path/to/input/dir path/to/output/dir

Input directory should contain files with aqua scripts.

Repository structure

  • types data types, arrows, stream types definitions and variance
  • parser - parser, takes source text and produces a source AST
  • model - middle-end, internal representation of the code, optimizations and transfromations
  • semantics - rules to convert source AST into the model
  • linker - checks dependencies between modules, builds and combines an abstract dependencies tree
  • backend/air generates AIR code from the middle-end model
  • backend/ts - generates AIR code and Typescript wrappers for use with Fluence JS SDK
  • cli - CLI interface