aqua/npm
Dmitry Kurinskiy 012cba493c
Op model (#403)
* Separating raw FuncOp from OpModel WIP

* Model compiles, fighting with transform

* Refactoring WIP

* transform compiles

* Fixing AquaCompiler WIP

* Compiler compiles WIP

* AquaContext's allFuncs, allValues

* WIP trying to compile the CLI

* It compiles

* It runs and fails to compile

* Compiles wrong way

* fix TopologySpec

* Sugar bugfix

* fix TransformSpec compilation

* fix test compilation

* fix SemanticSpec

* Topology debugging

* TransformSpec fixed

* Do not import aqua.model

* Take parts in Semantics

* Fix for re-exports

* Maybe a fix for streams

* Maybe a fix for declarations

* streamArgs.aqua in test examples

* more aqua code with bugs

* FuncOp removed

* removed wrapNonEmpty

* fix TransformSpec

* fix SemanticSpec compilation, delete FuncOps

* Separated model/res, model/inline

* tiny fix

* Tests fixed

* TreeNode to wrap labels into cofree standard way

* TreeNodeCompanion with defauls show, equalsOrShowDiff for all Cofree trees we have

* Simple TagInlinerSpec

* Failing test in TagInlinerSpec

* test wip

* test fixed

* delete Node

* delete test-kit, move tests

* fix constants

* Failing TagInliner test

* More complex case for TagInlinerSpec

* TagInlinerSpec fix

* Split RawValueInliner, TagInliner

* Dumb case for ArrowInlinerSpec

* spec for stream renaming

* renaming stream test

* Exports fixed

* SeqModel.wrapWithEmpty for tests

* Deleted EmptyModel

* Bring back EmptyModel

* ArrowInlinerSpec wip

* ArrowInlinerSpec fixed

* Test fixed

* fix

* stream in callback test WIP

* Slightly better logging for TagInliner

* add example in aqua

* test update

* Removed occasional abilities override

* test

* AquaCompilerSpec WIP

* AquaCompilerSpec failing

* AquaCompilerSpec fixed

* fix test

* compiler test, add RestrictionTag

* break test

* fix stream passing to box arguments

* fix exports in context

* Do not reexport builtins

* init for topology bug

* test for topology

* Reproduced the import-reexport bug

* Hops are working...

* Issue #397 does not reproduce!

* foldJoin reproduces the bug

* Reexports inefficiently fixed

* Topology test fixed

* topology bug

* Cache compiled parts

* Cache compiled parts

* ignore the wip topology test

* delete test

* hanging

* add builtin

* Use linked-data-structure `equals` instead of recursive `hashCode`

* A bit more logs

* eq is faster than ==

* Try to join one by one

* op.identity for join

* reverting op.noop for join

* Fix for renaming when value has the same name as argument

* Bump the version to .6

* broken test for names

* second test for renaming

* this test works but i must break it

* add index in call

* JoinModel breaks test

* the test works fine with a fix, but we should check it closely. and `foldJoin.aqua` integration test become broken

* broken test with xor

* Fixed naming issue for lambda's variables substitution

* Topology bug wip

* Fixes #397

* Maybe fix

Co-authored-by: DieMyst <dmitry.shakhtarin@fluence.ai>
2022-01-31 14:48:13 +03:00
..
aqua Network info services for aqua CLI (#393) 2021-12-30 13:44:31 +03:00
src Upload file to Fluence IPFS sidecar (#390) 2021-12-24 15:50:12 +07:00
.gitignore CLI: Implement create_keypair (#375) 2021-11-26 14:05:24 +03:00
error.js Use .js file in aqua command by default (#278) 2021-09-08 13:37:59 +03:00
index.js Run aqua code from CLI (#324) 2021-10-13 11:10:10 +03:00
LICENSE Create aquamarine npm package (#56) 2021-04-14 18:00:51 +03:00
package-lock.json Op model (#403) 2022-01-31 14:48:13 +03:00
package.json Op model (#403) 2022-01-31 14:48:13 +03:00
readme.md Readme updates (#295) 2021-09-10 17:36:21 +03:00
tsconfig.json Upload file to Fluence IPFS sidecar (#390) 2021-12-24 15:50:12 +07:00
utils.js #370 #377 #378 Builtin as default import and minor changes (#384) 2021-12-03 20:30:00 +03:00

Aqua

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.

aqua

The package contains a convenience aqua wrapper for usage in npm-based projects.

usage

Get the latest package

npm i --save-dev @fluencelabs/aqua

Create a directory for the source files: .aqua and for compiled files: .ts

mkdir src/aqua src/compiled

To compile files run:

aqua -i ./src/aqua/ -o ./src/compiled

Alternatively the compilation script can be put into scripts section of package.json

...
"scripts": {
    ...
    "compile": "aqua -i ./src/aqua/ -o ./src/compiled"
},
...

and can be started with

npm run compile

references