diff --git a/doc/asciidoc/language.adoc b/doc/asciidoc/language.adoc index 1d960c22d..ed7a9ca6c 100644 --- a/doc/asciidoc/language.adoc +++ b/doc/asciidoc/language.adoc @@ -1070,11 +1070,9 @@ Perhaps surprisingly for a specification language, Sail has exception support. This is because exceptions as a language feature do sometimes appear in vendor ISA pseudocode (they are a feature in Arm's ASL language), and such code would be very difficult to translate into -Sail if Sail did not itself support exceptions. We already translate -Sail to monadic theorem prover code, so working with a monad that -supports exceptions is fairly natural. In practice Sail language-level -exceptions end up being quite a nice tool for implementing processor -exceptions in ISA specifications. +Sail if Sail did not itself support exceptions. In practice Sail +language-level exceptions end up being quite a nice tool for +implementing processor exceptions in ISA specifications. For exceptions we have two language features: `throw` statements and `try`--`catch` blocks. The throw keyword takes a value of diff --git a/doc/asciidoc/parser.sed b/doc/asciidoc/parser.sed index 88b328790..84009847e 100644 --- a/doc/asciidoc/parser.sed +++ b/doc/asciidoc/parser.sed @@ -11,6 +11,7 @@ /Mutual/d /Impl/d /LcurlyBar/d +/Monadic/d s/Pragma/$LINE_DIRECTIVE/g s/Fixity/FIXITY_DEF/g @@ -22,6 +23,7 @@ s/End/end/g s/Default/default/g s/Scattered/scattered/g s/Monadic/monadic/g +s/Impure/impure/g s/Typedef/type/g s/Enum/enum/g s/With/with/g diff --git a/doc/examples/riscv_duopod.sail b/doc/examples/riscv_duopod.sail index 6c2f24d0e..efaf72522 100644 --- a/doc/examples/riscv_duopod.sail +++ b/doc/examples/riscv_duopod.sail @@ -116,7 +116,7 @@ overload X = {rX, wX} $span end /* Accessors for memory */ -val MEMr = monadic { lem: "MEMr", coq: "MEMr", _ : "read_ram" } : forall 'n 'm, 'n >= 0. +val MEMr = impure { lem: "MEMr", coq: "MEMr", _ : "read_ram" } : forall 'n 'm, 'n >= 0. (int('m), int('n), bits('m), bits('m)) -> bits(8 * 'n) val read_mem : forall 'n, 'n >= 0. (xlenbits, int('n)) -> bits(8 * 'n) diff --git a/doc/manual.html b/doc/manual.html index fe97cf4a1..a674fb9ed 100644 --- a/doc/manual.html +++ b/doc/manual.html @@ -4,7 +4,7 @@ - + The Sail instruction-set semantics specification language