Go to file
2020-11-03 17:43:58 +03:00
.circleci New data format (#12) 2020-10-30 20:29:05 +03:00
crates LALRPOP parser for AIR (#13) 2020-11-03 17:43:58 +03:00
stepper New data format (#12) 2020-10-30 20:29:05 +03:00
stepper-lib LALRPOP parser for AIR (#13) 2020-11-03 17:43:58 +03:00
.gitignore add bencher 2020-11-01 17:23:27 +03:00
Cargo.lock LALRPOP parser for AIR (#13) 2020-11-03 17:43:58 +03:00
Cargo.toml LALRPOP parser for AIR (#13) 2020-11-03 17:43:58 +03:00
CHANGELOG.md New data format (#12) 2020-10-30 20:29:05 +03:00
Config.toml Introduce Seq, Par, Fold instructions (#5) 2020-10-08 12:43:23 +03:00
LICENSE Initial commit 2020-09-18 14:05:43 +03:00
README.md Introduce Seq, Par, Fold instructions (#5) 2020-10-08 12:43:23 +03:00

Aquamarine

Aquamarine is a distributed choreography language & platform

AIR

The current version supports the following instructions:

  • call
  • par
  • seq
  • fold
  • next
  • null

Examples

(seq (
    (call (%current_peer_id1% (local_service_id local_fn_name) () result_name_1))
    (call (remote_peer_id (service_id fn_name) () result_name_2))
)),

This instruction sequence contains two call instructions in the sequential order:

  1. call a function with local_fn_name name of a local service with local_service_id id and bind result to result_name
  2. call a remote peer with remote_peer_id id
(fold (Iterable i
    (seq (
        (call (%current_peer_id% (local_service_id local_fn_name) (i) acc[]))
        (next i)
    )
)))

This example is an analog of left fold. It iterates over Iterable and on each iteration calls local_service_id and puts result to acc.