mirror of
https://github.com/fluencelabs/aqua.git
synced 2024-12-04 22:50:18 +00:00
parent
8e04348ffa
commit
569df52d27
39
README.md
39
README.md
@ -1,31 +1,32 @@
|
||||
## Aquamarine HLL
|
||||
## Aquamarine
|
||||
|
||||
The high level language that compiles to AIR and some wrappers in the host language (e.g. TypeScript).
|
||||
Aquamarine is a new-gen language for distributed systems.
|
||||
|
||||
## Build and use jar file
|
||||
To build a file use this command:
|
||||
Aquamarine programs are executed on many peers, sequentially
|
||||
or in parallel, forming a single-use coordination network.
|
||||
|
||||
```commandline
|
||||
sbt assembly
|
||||
```
|
||||
Aquamarine's runtime is heterogeneous: it includes browsers, servers, devices, all involved in solving a single task.
|
||||
Therefore, Aquamarine scripts are compiled into several targets at once, with AIR and Typescript as a default.
|
||||
|
||||
## Compiler CLI
|
||||
|
||||
jar file will be in `target/scala-2.13/aqua-hll.jar`
|
||||
To build the Aquamarine compiler, clone the repo & run `sbt assembly`,
|
||||
or simply download the latest JAR file from the [releases](https://github.com/fluencelabs/aqua-hll/releases) page.
|
||||
|
||||
Run:
|
||||
It requires `java` to run Aquamarine compiler from the command line:
|
||||
|
||||
```commandline
|
||||
java -jar aqua-hll.jar path/to/input/dir path/to/output/dir
|
||||
```
|
||||
input directory should contain files with `aqua` scripts
|
||||
|
||||
### TODO
|
||||
Input directory should contain files with `aqua` scripts.
|
||||
|
||||
- Lambda
|
||||
- Build data types: extend
|
||||
- Platform-specific Predef with Return ability
|
||||
- Implementation for abilities
|
||||
- Abilities passing
|
||||
- Print syntax errors better way
|
||||
- For the offset, find a token (for LSP)
|
||||
- Generate interface types from JSON
|
||||
## Repository structure
|
||||
|
||||
- **[types](./types)** – data types, arrows, stream types definitions and variance
|
||||
- **[parser](./parser)** - parser, takes source text and produces a source AST
|
||||
- **[model](./model)** - middle-end, internal representation of the code, optimizations and transfromations
|
||||
- **[semantics](./semantics)** - rules to convert source AST into the model
|
||||
- **[backend/air](./backend/air)** – generates AIR code from the middle-end model
|
||||
- **[backend/ts](./backend/ts)** - generates AIR code and Typescript wrappers for use with Fluence JS SDK
|
||||
- **[cli](./cli)** - CLI interface
|
||||
|
Loading…
Reference in New Issue
Block a user