1
1
mirror of https://github.com/anoma/juvix.git synced 2024-09-11 08:15:41 +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
Paul Cadman 2e006421a5
Support nockma scry (#2678)
This PR adds support for Anoma/Nockma scry OP. It is used for obtaining
values from the Anoma storage (key value store). See the [linked
issue](https://github.com/anoma/juvix/issues/2672) for details on scry.

This PR adds support for scry to the Nockma language and compilation
from the frontend via a builtin: `anoma-get`:

```
builtin anoma-get
axiom anomaGet : {Value Key : Type} -> Key -> Value
```

In the backend, the `Value` and `Key` types could be anything, they will
depend on choices of Anoma applications. The type of the returned
`Value` is unchecked. It's currently the responsibility of the user to
match the annotated type with the type of data in storage.

We will not put this builtin in the standard library. It will be exposed
in the anoma-juvix library. It's likely that the frontend `anomaGet`
function will evolve as we use it to write Anoma applications and learn
how they work.

* Closes https://github.com/anoma/juvix/issues/2672

---------

Co-authored-by: Jan Mas Rovira <janmasrovira@gmail.com>
2024-03-21 16:44:14 +01:00
.devcontainer upgrade to Ghc 9.8.1 (#2624) 2024-02-07 09:47:48 +00:00
.github Fix linux static binary build workflow (#2634) 2024-02-12 10:25:44 +00:00
app Replace polysemy by effectful (#2663) 2024-03-21 12:09:34 +00:00
assets Fix typos (#2573) 2024-01-08 13:27:18 +01:00
bench Release v0.6.0 (#2676) 2024-03-01 09:14:32 +00:00
bench2 Replace polysemy by effectful (#2663) 2024-03-21 12:09:34 +00:00
examples Add field element type (#2659) 2024-02-27 14:54:43 +01:00
gnuplot Automatized benchmarks (#1673) 2023-01-05 17:48:26 +01:00
include Add field element type (#2659) 2024-02-27 14:54:43 +01:00
juvix-stdlib@e2efe4e6fe Update juvix-stdlib submodule reference to main (#2675) 2024-02-29 17:32:55 +00:00
licenses Remove unused files (#2398) 2023-09-28 14:20:19 +02:00
runtime JuvixReg to CASM translation (#2671) 2024-03-20 12:14:12 +01:00
scripts Nockma compile (#2570) 2024-01-17 11:15:38 +01:00
src/Juvix Support nockma scry (#2678) 2024-03-21 16:44:14 +01:00
test Support nockma scry (#2678) 2024-03-21 16:44:14 +01:00
tests Support nockma scry (#2678) 2024-03-21 16:44:14 +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 Add support for Literate Juvix Markdown (#2448) 2023-11-10 13:55:36 +01: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 Update clang formatting (#2465) 2023-10-23 19:12:56 +02:00
cabal.hie.yaml Automatized benchmarks (#1673) 2023-01-05 17:48:26 +01:00
cabal.project upgrade to Ghc 9.8.1 (#2624) 2024-02-07 09:47:48 +00:00
cabal.project.freeze upgrade to Ghc 9.8.1 (#2624) 2024-02-07 09:47:48 +00:00
CHANGELOG.md Release v0.6.0 (#2676) 2024-03-01 09:14:32 +00:00
cntlines.sh JuvixReg to CASM translation (#2671) 2024-03-20 12:14:12 +01:00
CONTRIBUTING.md Fix baseUrl for juvix docs in Doctor command (#2122) 2023-05-24 12:14:30 +02:00
justfile Add -XBangPatterns to the justfile (#2627) 2024-02-08 08:31:11 +00:00
LICENSE.md Add new README and md files (#1904) 2023-03-21 20:01:48 +01:00
Makefile Remove BangPattern pragmas (#2626) 2024-02-07 11:46:13 +00:00
package.yaml Replace polysemy by effectful (#2663) 2024-03-21 12:09:34 +00:00
README.md Fix tara url svg (#2406) 2023-09-28 19:05:05 +02:00
stack.hie.yaml Refactor hie.yaml and add entry in the readme (#1672) 2022-12-20 16:45:48 +01:00
stack.yaml Replace polysemy by effectful (#2663) 2024-03-21 12:09:34 +00: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.