From e4b34a3ec1536869931fd6f6d76df1928b5d6191 Mon Sep 17 00:00:00 2001 From: Dmitry Boulytchev Date: Sat, 21 Mar 2020 13:05:14 +0300 Subject: [PATCH] Bugfix in runtime and documentation --- lama-spec.pdf | Bin 244824 -> 244820 bytes runtime/runtime.c | 19 +++++++++++-------- spec/03.01.lexical_structure.tex | 6 +++--- src/version.ml | 2 +- stdlib/Matcher.lama | 4 +++- 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/lama-spec.pdf b/lama-spec.pdf index 3460207f74bf380954367f6d5e20f908de629d71..9997b90fdbd2dfc7dc7a1c7d84de370a51d54afa 100644 GIT binary patch delta 12209 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 aLERTVl}Kmkgd~OMtranslate = 0; - b->fastmap = 0; - b->buffer = 0; - b->allocated = 0; + b->fastmap = 0; + // A weird workaround: should be 0/0 in theory, + // but is does not work sometimes. The exact number is + // determined experimentally :(( + b->buffer = malloc (256); + b->allocated = 256; int n = (int) re_compile_pattern (regexp, strlen (regexp), b); @@ -1426,7 +1428,7 @@ extern void __gc_root_scan_stack (); /* ======================================== */ //static size_t SPACE_SIZE = 16; -static size_t SPACE_SIZE = 16 * 1024 * 1024; +static size_t SPACE_SIZE = 32 * 1024 * 1024; // static size_t SPACE_SIZE = 128; // static size_t SPACE_SIZE = 1024 * 1024; @@ -1728,7 +1730,7 @@ static inline void init_extra_roots (void) { extern void init_pool (void) { size_t space_size = SPACE_SIZE * sizeof(size_t); from_space.begin = mmap (NULL, space_size, PROT_READ | PROT_WRITE, - MAP_PRIVATE | MAP_ANONYMOUS | MAP_32BIT, -1, 0); + MAP_PRIVATE | MAP_ANONYMOUS | MAP_32BIT, -1, 0); to_space.begin = NULL; if (to_space.begin == MAP_FAILED) { perror ("EROOR: init_pool: mmap failed\n"); @@ -1922,6 +1924,7 @@ extern void * alloc (size_t size) { #endif return p; } + init_to_space (0); #ifdef DEBUG_PRINT print_indent (); diff --git a/spec/03.01.lexical_structure.tex b/spec/03.01.lexical_structure.tex index f543593b6..19d8276ce 100644 --- a/spec/03.01.lexical_structure.tex +++ b/spec/03.01.lexical_structure.tex @@ -104,10 +104,10 @@ The following symbols are treated as delimiters: \begin{lstlisting} . , ( ) { } - ; # -> + ; # -> | \end{lstlisting} -Despite custom infix operators can coincide with delimiters "\lstinline|#|" and "\lstinline|->|" they can -never clash as neither of these delimiters can be encountered in expressions in infix operator position. +Note, custom infix operators can coincide with delimiters "\lstinline|#|", "\lstinline!|!", and "\lstinline|->|", which can +sometimes be misleading. diff --git a/src/version.ml b/src/version.ml index f4905bf19..893e6e89d 100644 --- a/src/version.ml +++ b/src/version.ml @@ -1 +1 @@ -let version = "Version 1.00, 5db12d76, Fri Mar 13 19:41:14 2020 +0300" +let version = "Version 1.00, c084e57b2, Sun Mar 15 12:41:31 2020 +0300" diff --git a/stdlib/Matcher.lama b/stdlib/Matcher.lama index 65864fb3f..5086e398b 100644 --- a/stdlib/Matcher.lama +++ b/stdlib/Matcher.lama @@ -8,7 +8,9 @@ -- (e.g. "identifier", "string constant", etc.), used for error -- reporting public fun createRegexp (r, name) { - [regexp (r), name] + local l = [regexp (r), name]; + --printf ("Created regexp %s: %x, %x\n", name, l, l[0]); + l } -- Create an immutable matcher.