From 2b9adec0877130c7aeb807145e86ec9635181c8f Mon Sep 17 00:00:00 2001 From: Dmitry Boulytchev Date: Mon, 25 Jan 2021 01:22:56 +0300 Subject: [PATCH] Added assert --- lama-spec.pdf | Bin 260180 -> 260384 bytes runtime/Std.i | 1 + runtime/runtime.c | 9 +++++++++ spec/07.standard_library.tex | 3 +++ src/stdpath.ml | 2 +- src/version.ml | 2 +- 6 files changed, 15 insertions(+), 2 deletions(-) diff --git a/lama-spec.pdf b/lama-spec.pdf index 02dc803f7836fad2cdff4cca22f9ba3b91e8a53a..c9be9504f6c7310489a78e9bf53f3efde15d6adf 100644 GIT binary patch delta 31318 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 diff --git a/runtime/Std.i b/runtime/Std.i index 65e32159e..b3ff0f94a 100644 --- a/runtime/Std.i +++ b/runtime/Std.i @@ -1,3 +1,4 @@ +F,assert; F,getEnv; F,system; V,sysargs; diff --git a/runtime/runtime.c b/runtime/runtime.c index 54f6ebbcd..117844e89 100644 --- a/runtime/runtime.c +++ b/runtime/runtime.c @@ -151,6 +151,15 @@ static void failure (char *s, ...) { vfailure (s, args); } +void Lassert (void *f, char *s, ...) { + if (!UNBOX(f)) { + va_list args; + + va_start (args, s); + vfailure (s, args); + } +} + # define ASSERT_BOXED(memo, x) \ do if (UNBOXED(x)) failure ("boxed value expected in %s\n", memo); while (0) # define ASSERT_UNBOXED(memo, x) \ diff --git a/spec/07.standard_library.tex b/spec/07.standard_library.tex index c514ad417..525d01063 100644 --- a/spec/07.standard_library.tex +++ b/spec/07.standard_library.tex @@ -12,6 +12,9 @@ is added implicitly by the compiler and can not be specified by an end user. The following declarations are accessible: +\descr{\lstinline|fun assert (n, s, ...)|}{Asserts that \lstinline|n| is non-zero; otherwise raises \lstinline|failure| with + a corresponding error message.} + \descr{\lstinline|fun stringInt (s)|}{Converts a string representation of a signed decimal number into integer.} \descr{\lstinline|fun read ()|}{Reads an integer value from the standard input, printing a prompt "\lstinline|>|".} diff --git a/src/stdpath.ml b/src/stdpath.ml index c85a32af0..3ea09b8ff 100644 --- a/src/stdpath.ml +++ b/src/stdpath.ml @@ -1 +1 @@ -let path = "/home/db/.opam/4.07.1+fp/share/Lama" +let path = "/home/db/.opam/4.07.1+fp+flambda/share/Lama" diff --git a/src/version.ml b/src/version.ml index 7c82e5147..cfc8d681e 100644 --- a/src/version.ml +++ b/src/version.ml @@ -1 +1 @@ -let version = "Version 1.00, 19252991a, Thu Dec 24 02:54:54 2020 +0300" +let version = "Version 1.00, eeddb0b25, Tue Jan 12 01:14:18 2021 +0300"