diff --git a/compiler/jasmin.opam b/compiler/jasmin.opam index 28767d384..dcdb5109c 100644 --- a/compiler/jasmin.opam +++ b/compiler/jasmin.opam @@ -19,7 +19,7 @@ install: [ [make "install" "PREFIX=%{prefix}%"] ] depends: [ - "ocaml" { >= "4.12" & build } + "ocaml" { >= "4.14" & build } "batteries" {>= "3.5"} "cmdliner" {>= "1.1" & build } "dune" {>= "3.7"} diff --git a/docs/source/index.md b/docs/source/index.md index 84d726872..87c96dff8 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -9,6 +9,7 @@ language/syntax/index language/semantics/index +language/annotations/index ::: :::{toctree} diff --git a/docs/source/language/annotations/index.md b/docs/source/language/annotations/index.md new file mode 100644 index 000000000..c65126eac --- /dev/null +++ b/docs/source/language/annotations/index.md @@ -0,0 +1,292 @@ +# Annotations + +Annotations attach metadata to functions, parameters, return types, variables, +and statements. They are used to control compiler behavior, declare security +properties, and specify verification contracts. + +## Syntax + +``` +#[returnaddress = stack] +fn f(reg u64 x) -> reg u64 { ... } + +#[inline] x = g(y); +``` + +``` + ::= * + + ::= "#[" ("," )* "]" + + ::=