1
1
mirror of https://github.com/anoma/juvix.git synced 2025-01-04 05:33:27 +03:00
Juvix empowers developers to write code in a high-level, functional language, compile it to gas-efficient output VM instructions, and formally verify the safety of their contracts prior to deployment and execution.
Go to file
Jan Mas Rovira 021f183d33
Run Nockma in an Anoma node (#3128)
# Changes
1. Adds a new command `juvix dev anoma node`. This command runs the
anoma node.
2. Adds a flag `--anoma-dir` to `juvix dev nockma run`. When given, it
must point to the anoma clone. Then, it will run the nockma code in the
anoma node and report the result (with no traces).

# Prerequisites
1. An anoma clone at some specific commit. 
   ```
   git clone git@github.com:anoma/anoma.git
   cd anoma
   git checkout 98e3660b91cd55f1d9424dcff9420425ae98f5f8
   
   # build anoma
   mix deps.get
   mix escript.install hex protobuf
   mix compile

   # build the client
   mix do --app anoma_client escript.build
   ```
2. The `mix` command (elixir).
3. The [`grpcurl`](https://github.com/fullstorydev/grpcurl) command. To
install a single binary in `~/.local/bin` you can run:
   ```
curl -sSL
"https://github.com/fullstorydev/grpcurl/releases/download/v1.9.1/grpcurl_1.9.1_linux_x86_64.tar.gz"
| tar -xz -C ~/.local/bin --no-wildcards grpcurl
   ```

# Testing
I've not included any test. It can be tested locally like this:
```
cd juvix/tests/Anoma/Compilation/positive
juvix compile anoma test001.juvix
echo 20 > args.debug.nockma
juvix dev nockma run --anoma-dir ~/projects/anoma test001.nockma --args args.debug.nockma
2024-10-29 17:32:59 +01:00
.devcontainer Upgrade to ghc-9.8.2 (#2794) 2024-06-08 14:43:33 +02:00
.github Remove VampIR from the CI (#3126) 2024-10-24 20:18:50 +02:00
app Run Nockma in an Anoma node (#3128) 2024-10-29 17:32:59 +01:00
assets Improve css of html documentation and allow different themes (#2931) 2024-08-02 16:16:33 +02:00
bench Fix benchmark runtime variant (#2740) 2024-04-22 11:09:27 +01:00
bench2 Rename Nockma stdlib to anomalib and add RM references (#3111) 2024-10-21 13:28:37 +02:00
config Compile-time configuration (#3102) 2024-10-16 11:47:23 +02:00
examples Set line width to 80 (#3124) 2024-10-25 15:11:19 +02:00
gnuplot Automatized benchmarks (#1673) 2023-01-05 17:48:26 +01:00
include Run Nockma in an Anoma node (#3128) 2024-10-29 17:32:59 +01:00
juvix-stdlib@5eec27dfc9 Improve function argument names in the standard library (#3127) 2024-10-28 13:29:50 +01:00
licenses Remove unused files (#2398) 2023-09-28 14:20:19 +02:00
runtime Update Anoma nock library (#3119) 2024-10-24 14:30:43 +01:00
scripts Support for Cairo builtins (#2718) 2024-04-16 19:01:30 +02:00
src Run Nockma in an Anoma node (#3128) 2024-10-29 17:32:59 +01:00
test Run Nockma in an Anoma node (#3128) 2024-10-29 17:32:59 +01:00
tests Run Nockma in an Anoma node (#3128) 2024-10-29 17:32:59 +01:00
.clang-format Juvix C runtime (#1580) 2022-11-03 09:38:09 +01:00
.github_changelog_generator Update Changelog v0.2.3 🎉 2022-08-15 12:24:42 +02:00
.gitignore Rust runtime (#2782) 2024-05-22 12:26:51 +02:00
.gitmodules Rename MiniJuvix to Juvix (#259) 2022-07-08 13:59:45 +02:00
.hlint.yaml Add default arguments (#2408) 2023-10-10 23:28:06 +02:00
.pre-commit-config.yaml Add an if instruction to JuvixReg (#2855) 2024-06-26 19:08:33 +02:00
cabal.hie.yaml Automatized benchmarks (#1673) 2023-01-05 17:48:26 +01:00
cabal.project Revert GHC 9.10.1 update (#3052) 2024-09-19 21:02:43 +01:00
cabal.project.freeze Revert GHC 9.10.1 update (#3052) 2024-09-19 21:02:43 +01:00
CHANGELOG.md Release 0.6.6 (#2993) 2024-09-03 18:10:01 +01:00
cntlines.sh Remove VampIR from the CI (#3126) 2024-10-24 20:18:50 +02:00
CODING.md Improve function argument names in the standard library (#3127) 2024-10-28 13:29:50 +01:00
CONTRIBUTING.md Fix baseUrl for juvix docs in Doctor command (#2122) 2023-05-24 12:14:30 +02:00
justfile Compile-time configuration (#3102) 2024-10-16 11:47:23 +02:00
LICENSE.md Add new README and md files (#1904) 2023-03-21 20:01:48 +01:00
Makefile Compile-time configuration (#3102) 2024-10-16 11:47:23 +02:00
package.yaml Run Nockma in an Anoma node (#3128) 2024-10-29 17:32:59 +01:00
README.md Update license reference (#3108) 2024-10-17 14:00:17 +01:00
stack.hie.yaml Refactor hie.yaml and add entry in the readme (#1672) 2022-12-20 16:45:48 +01:00
stack.yaml Revert GHC 9.10.1 update (#3052) 2024-09-19 21:02:43 +01:00

Juvix

Tara the Juvix mascot

CI Status

The Juvix compiler CI

Nightly build, release and benchmark

Codebase
Open the Juvix Standard Lib in Github Codespace

This repository is specifically dedicated to the compiler of the Juvix programming language.

For any Juvix-related inquiries, we strongly advise visiting the following resources.

Our documentation offers an in-depth understanding of the Juvix programming language. It encompasses a language reference, examples, blog posts, and numerous other resources to facilitate effective use of Juvix.