1
1
mirror of https://github.com/anoma/juvix.git synced 2024-12-26 09:04:18 +03:00
juvix/app
Paul Cadman 865842046d
Support running nockma code with a running Anoma client (#3180)
This PR:

1. Adds a new interpretation for the Anoma effect, which makes gRPC
calls to an existing Anoma client instead of spawning a new one.
2. Adds a new `nockma run` mode, `with-client`, which can be used to run
an Anoma program against a running Anoma client, using its URL and gRPC
port.
3. separates the `nockma run` command into subcommands.

CLI docs:

## `nockma run`

```
Usage: juvix dev nockma run COMMAND

  Subcommands used to run an Anoma program. Use with artefacts obtained from
  compilation with the anoma target

Available options:
  -h,--help                Show this help text

Available commands:
  builtin-evaluator        Run with the builtin Nockma evaluator
  ephemeral-client         Run with an ephemeral Anoma client
  with-client              Run with a running Anoma client
```

### `with-client`

```
Usage: juvix dev nockma run with-client
         NOCKMA_FILE [--args ARGS_FILE] (-p|--grpc-port PORT) [--url URL]

  Run with a running Anoma client

Available options:
  NOCKMA_FILE              Path to a .nockma file
  --args ARGS_FILE         Path to file containing args. The args file should
                           contain a list (i.e. to pass 2 and [1 4] as args, the
                           contents should be [2 [1 4] 0]).
  -p,--grpc-port PORT      The GRPC port of a running Anoma client
  --url URL                The URL of a running Anoma client. default: localhost
  -h,--help                Show this help text
```

### `ephemeral-client`

```
Usage: juvix dev nockma run ephemeral-client
         NOCKMA_FILE [--args ARGS_FILE] --anoma-dir ANOMA_DIR

  Run with an ephemeral Anoma client

Available options:
  NOCKMA_FILE              Path to a .nockma file
  --args ARGS_FILE         Path to file containing args. The args file should
                           contain a list (i.e. to pass 2 and [1 4] as args, the
                           contents should be [2 [1 4] 0]).
  --anoma-dir ANOMA_DIR    Path to anoma repository
  -h,--help                Show this help text
```

### `builtin-evaluator`

```
Usage: juvix dev nockma run builtin-evaluator
         NOCKMA_FILE [--args ARGS_FILE] [--profile]

  Run with the builtin Nockma evaluator

Available options:
  NOCKMA_FILE              Path to a .nockma file
  --args ARGS_FILE         Path to file containing args. The args file should
                           contain a list (i.e. to pass 2 and [1 4] as args, the
                           contents should be [2 [1 4] 0]).
  --profile                Report evaluator profiling statistics
  -h,--help                Show this help text
```
2024-11-20 08:53:21 +01:00
..
Commands Support running nockma code with a running Anoma client (#3180) 2024-11-20 08:53:21 +01:00
TopCommand Export Juvix source code to latex (#2917) 2024-08-05 11:28:19 +02:00
App.hs Add --vscode option (#3162) 2024-11-11 10:06:57 +01:00
AsmInterpreter.hs Replace polysemy by effectful (#2663) 2024-03-21 12:09:34 +00:00
CommonOptions.hs Support running nockma code with a running Anoma client (#3180) 2024-11-20 08:53:21 +01:00
Evaluator.hs Make compile targets a subcommand instead of a flag (#2700) 2024-04-09 13:29:07 +02:00
GlobalOptions.hs Add --vscode option (#3162) 2024-11-11 10:06:57 +01:00
HaskelineJB.hs upgrade to Ghc 9.8.1 (#2624) 2024-02-07 09:47:48 +00:00
Main.hs Export Juvix source code to latex (#2917) 2024-08-05 11:28:19 +02:00
RegInterpreter.hs Replace polysemy by effectful (#2663) 2024-03-21 12:09:34 +00:00
TopCommand.hs Logger (#2908) 2024-07-22 17:14:37 +02:00
TreeEvaluator.hs Replace polysemy by effectful (#2663) 2024-03-21 12:09:34 +00:00