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 52a3eed162
Support extract-module-statements attribute in juvix code blocks (#2734)
This PR adds support for the `extract-module-statements` attribute for
Juvix code blocks:

So if you write something like the following block in a Juvix markdown
file:

````
```juvix extract-module-statements
module Foo;
   type T := t;
end;
```
````

The statement `type T := t;` from the body of the module is rendered in
the output. The `module Foo;` , and `end;` lines are not rendered in the
output.

A block with the `extract-module-statements` must contain a single local
module statement and nothing else. An error is reported if this is not
the case.

The `extract-module-statements` attribute also takes an optional
argument. It sets the number of statements from the module body to drop
from the output.

In the following example, the output will contain the single line `a : T
:= t;`.

````
```juvix extract-module-statements 1
module Foo;
   type T := t;
   a : T  := t;
end;
```
````

---------

Co-authored-by: Jan Mas Rovira <janmasrovira@gmail.com>
2024-04-18 17:01:59 +01:00
.devcontainer upgrade to Ghc 9.8.1 (#2624) 2024-02-07 09:47:48 +00:00
.github Use the justfile for CI builds (#2730) 2024-04-18 12:52:37 +02:00
app Apply common options in dev compile subcommands (#2732) 2024-04-17 16:49:22 +02:00
assets Fix typos (#2573) 2024-01-08 13:27:18 +01:00
bench Fix benchmarks suite juvix compile variants (#2717) 2024-04-10 18:54:03 +02: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@b3768d2654 Cairo Poseidon hash builtin support (#2723) 2024-04-18 14:11:57 +02:00
licenses Remove unused files (#2398) 2023-09-28 14:20:19 +02:00
runtime Cairo Poseidon hash builtin support (#2723) 2024-04-18 14:11:57 +02:00
scripts Support for Cairo builtins (#2718) 2024-04-16 19:01:30 +02:00
src/Juvix Support extract-module-statements attribute in juvix code blocks (#2734) 2024-04-18 17:01:59 +01:00
test Support extract-module-statements attribute in juvix code blocks (#2734) 2024-04-18 17:01:59 +01:00
tests Support extract-module-statements attribute in juvix code blocks (#2734) 2024-04-18 17:01: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 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 0.6.1 (#2699) 2024-03-25 11:45:18 +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 Use the justfile for CI builds (#2730) 2024-04-18 12:52:37 +02: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 Support Cairo VM input hints (#2709) 2024-04-09 11:43:57 +02: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.