From 36f3ed44659c9f2dff3f5766efa663cf019e153e Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 23 Jun 2009 00:17:45 +0000 Subject: [PATCH] expose and support unreadable symbols, which are generated during expansion svn: r15239 --- collects/scheme/private/serialize.ss | 26 +- collects/scribblings/reference/data.scrbl | 60 +- collects/scribblings/reference/eval.scrbl | 18 +- .../scribblings/reference/serialization.scrbl | 25 +- collects/scribblings/reference/write.scrbl | 4 +- doc/release-notes/mzscheme/HISTORY.txt | 9 + src/mzscheme/src/cstartup.inc | 674 +++++++++--------- src/mzscheme/src/schminc.h | 2 +- src/mzscheme/src/schvers.h | 4 +- src/mzscheme/src/symbol.c | 32 + 10 files changed, 478 insertions(+), 376 deletions(-) diff --git a/collects/scheme/private/serialize.ss b/collects/scheme/private/serialize.ss index 938575d95a..5b2ceac9c6 100644 --- a/collects/scheme/private/serialize.ss +++ b/collects/scheme/private/serialize.ss @@ -34,7 +34,9 @@ (null? v) (number? v) (char? v) - (symbol? v) + (and (symbol? v) + (or (symbol-interned? v) + (eq? v (string->unreadable-symbol (symbol->string v))))) (string? v) (path-for-some-system? v) (bytes? v) @@ -60,6 +62,11 @@ (bytes->path p) p)) + (define (revive-symbol s) + (if (string? s) + (string->unreadable-symbol s) + s)) + (define deserialize-module-guard (make-parameter (lambda (mod-path sym) (void)))) (define varref (#%variable-reference varref)) @@ -226,9 +233,12 @@ [(or (boolean? v) (number? v) (char? v) - (symbol? v) (null? v)) v] + [(symbol? v) + (if (symbol-interned? v) + v + (cons 'su (symbol->string v)))] [(void? v) '(void)] [(and check-share? @@ -342,9 +352,12 @@ [main-serialized (serialize-one v share #t mod-map mod-map-cache)] [mod-map-l (map car (sort (hash-map mod-map cons) (lambda (a b) (< (cdr a) (cdr b)))))]) - (list '(1) ;; serialization-format version + (list '(2) ;; serialization-format version (hash-count mod-map) - mod-map-l + (map (lambda (v) (if (symbol-interned? (cdr v)) + v + (cons (car v) (symbol->string (cdr v))))) + mod-map-l) (length serializeds) serializeds fixups @@ -404,6 +417,7 @@ [(?) (lookup-shared! share (cdr v) mod-map module-path-index-join)] [(f) (apply make-prefab-struct (cadr v) (map loop (cddr v)))] [(void) (void)] + [(su) (string->unreadable-symbol (cdr v))] [(u) (let ([x (cdr v)]) (cond [(string? x) (string-copy x)] @@ -530,7 +544,7 @@ (let* ([path+name (car l)] [des (if (car path+name) (let ([p (unprotect-path (car path+name))] - [sym (cdr path+name)]) + [sym (revive-symbol (cdr path+name))]) ((deserialize-module-guard) p sym) (dynamic-require p sym)) (namespace-variable-value (cdr path+name)))]) @@ -551,7 +565,7 @@ [make-key (lambda (path+name) (if (car path+name) (let ([p (unprotect-path (car path+name))] - [sym (cdr path+name)]) + [sym (revive-symbol (cdr path+name))]) (list p sym)) (list #f (cdr path+name))))] [mpi-key (gensym)]) diff --git a/collects/scribblings/reference/data.scrbl b/collects/scribblings/reference/data.scrbl index 3f0bbadbe1..8a65a01a79 100644 --- a/collects/scribblings/reference/data.scrbl +++ b/collects/scribblings/reference/data.scrbl @@ -41,39 +41,71 @@ The two procedures @scheme[string->uninterned-symbol] and that are not @scheme[eq?], @scheme[eqv?], or @scheme[equal?] to any other symbol, although they may print the same as other symbols. -Regular (interned) symbols are only weakly held by the internal symbol -table. This weakness can never affect the result of an @scheme[eq?], -@scheme[eqv?], or @scheme[equal?] test, but a symbol may disappear -when placed into a weak box (see @secref["weakbox"]) used as the key -in a weak @tech{hash table} (see @secref["hashtables"]), or used as an -ephemeron key (see @secref["ephemerons"]). +The procedure @scheme[string->unreadable-symbol] returns an +@deftech{unreadable symbol} that is partially interned. The default +reader (see @secref["parse-symbol"]) never produces a unreadable +symbol, but two calls to @scheme[string->unreadable-symbol] with +@scheme[equal?] strings produce @scheme[eq?] results. An unreadable +symbol can print the same as an interned or uninterned +symbol. Unreadable symbols are useful in expansion and +compilation to avoid collisions with symbols that appear in the +source; they are usually not generated directly, but they can appear +in the result of functions like @scheme[identifier-binding]. + +Interned and unreadable symbols are only weakly held by the internal +symbol table. This weakness can never affect the result of an +@scheme[eq?], @scheme[eqv?], or @scheme[equal?] test, but a symbol may +disappear when placed into a weak box (see @secref["weakbox"]) used as +the key in a weak @tech{hash table} (see @secref["hashtables"]), or +used as an ephemeron key (see @secref["ephemerons"]). @defproc[(symbol? [v any/c]) boolean?]{Returns @scheme[#t] if @scheme[v] is - a symbol, @scheme[#f] otherwise.} + a symbol, @scheme[#f] otherwise. -@examples[(symbol? 'Apple) (symbol? 10)] +@examples[(symbol? 'Apple) (symbol? 10)]} + + +@defproc[(symbol-interned? [sym symbol?]) boolean?]{Returns @scheme[#t] if @scheme[sym] is + @tech{interned}, @scheme[#f] otherwise. + +@examples[(symbol-interned? 'Apple) + (symbol-interned? (gensym)) + (symbol-interned? (string->unreadable-symbol "Apple"))]} @defproc[(symbol->string [sym symbol?]) symbol?]{Returns a freshly allocated mutable string whose characters are the same as in - @scheme[sym].} + @scheme[sym]. -@examples[(symbol->string 'Apple)] +@examples[(symbol->string 'Apple)]} @defproc[(string->symbol [str string?]) symbol?]{Returns an @tech{interned} symbol whose characters are the same as in - @scheme[str].} + @scheme[str]. -@examples[(string->symbol "Apple") (string->symbol "1")] +@examples[(string->symbol "Apple") (string->symbol "1")]} @defproc[(string->uninterned-symbol [str string?]) symbol?]{Like @scheme[(string->symbol str)], but the resulting symbol is a new @tech{uninterned} symbol. Calling @scheme[string->uninterned-symbol] - twice with the same @scheme[str] returns two distinct symbols.} + twice with the same @scheme[str] returns two distinct symbols. -@examples[(string->uninterned-symbol "Apple") (eq? 'a (string->uninterned-symbol "a"))] +@examples[(string->uninterned-symbol "Apple") + (eq? 'a (string->uninterned-symbol "a")) + (eq? (string->uninterned-symbol "a") (string->uninterned-symbol "a"))]} + + +@defproc[(string->unreadable-symbol [str string?]) symbol?]{Like + @scheme[(string->symbol str)], but the resulting symbol is a new + @tech{unreadable symbol}. Calling @scheme[string->unreadable-symbol] + twice with equivalent @scheme[str]s returns the same symbol, but + @scheme[read] never produces the symbol.} + +@examples[(string->unreadble-symbol "Apple") + (eq? 'a (string->unreadable-symbol "a")) + (eq? (string->unreadable-symbol "a") (string->unreadable-symbol "a"))]} @defproc[(gensym [base (or/c string? symbol?) "g"]) symbol?]{Returns a diff --git a/collects/scribblings/reference/eval.scrbl b/collects/scribblings/reference/eval.scrbl index c7167557e6..ced81d68e4 100644 --- a/collects/scribblings/reference/eval.scrbl +++ b/collects/scribblings/reference/eval.scrbl @@ -352,13 +352,19 @@ A compiled-form object may contain @tech{uninterned} symbols (see via @litchar{#~}, each uninterned symbol in the original form is mapped to a new uninterned symbol, where multiple instances of a single symbol are consistently mapped to the same new symbol. The -original and new symbols have the same printed representation. +original and new symbols have the same printed +representation. @tech{Unreadable symbols}, which are typically +generated indirectly during expansion and compilation, are saved and +restored consistently through @litchar{#~}. -Due to the above restrictions, do not use @scheme[gensym] or -@scheme[string->uninterned-symbol] to construct an identifier for a -top-level or module binding. Instead, generate distinct identifiers -either with @scheme[generate-temporaries] or by applying the result of -@scheme[make-syntax-introducer] to an existing identifier.} +Due to the restrictions on @tech{uninterned} symbols in @litchar{#~}, +do not use @scheme[gensym] or @scheme[string->uninterned-symbol] to +construct an identifier for a top-level or module binding. Instead, +generate distinct identifiers either with +@scheme[generate-temporaries] or by applying the result of +@scheme[make-syntax-introducer] to an existing identifier; those +functions will lead to top-level and module bindings with +@tech{unreadable symbol}ic names.} @defproc[(compile [top-level-form any/c]) compiled-expression?]{ diff --git a/collects/scribblings/reference/serialization.scrbl b/collects/scribblings/reference/serialization.scrbl index 917b74a74d..7d71d274e1 100644 --- a/collects/scribblings/reference/serialization.scrbl +++ b/collects/scribblings/reference/serialization.scrbl @@ -43,8 +43,9 @@ The following kinds of values are serializable: @item{instances of classes defined with @scheme[define-serializable-class] or @scheme[define-serializable-class];} - @item{booleans, numbers, characters, symbols, strings, byte strings, - paths (for a specific convention), @|void-const|, and the empty list;} + @item{booleans, numbers, characters, @tech{interned} symbols, + @tech{unreadable symbols}, strings, byte strings, paths (for a + specific convention), @|void-const|, and the empty list;} @item{pairs, mutable pairs, vectors, boxes, and hash tables;} @@ -75,10 +76,11 @@ elements: @itemize[ - @item{An optional list @scheme['(1)] that represents the version of - the serialization format. If the first element of a - representation is not a list, then the version is - @scheme[0]. Version 1 adds support for mutable pairs.} + @item{An optional list @scheme['(1)] or @scheme['(2)] that represents + the version of the serialization format. If the first element + of a representation is not a list, then the version is + @scheme[0]. Version 1 adds support for mutable pairs, and + version 2 adds support for @tech{unreadable symbols}.} @item{A non-negative exact integer @scheme[_s-count] that represents the number of distinct structure types represented in the @@ -94,7 +96,8 @@ elements: that exports the structure's deserialization information. The @scheme[cdr] of the pair is the name of a binding (at the top level or exported from a module) for deserialization - information. These two are used with either + information, either a symbol or a string representing an + @tech{unreadable symbol}. These two are used with either @scheme[namespace-variable-binding] or @scheme[dynamic-require] to obtain deserialization information. See @scheme[make-deserialization-info] for more information on the @@ -171,7 +174,7 @@ elements: @itemize[ - @item{a boolean, number, character, symbol, or empty list, + @item{a boolean, number, character, interned symbol, or empty list, representing itself.} @item{a string, representing an immutable string.} @@ -202,6 +205,10 @@ elements: @item{a pair whose @scheme[car] is @scheme['void], representing @|void-const|.} + @item{a pair whose @scheme[car] is @scheme['su] and whose + @scheme[cdr] is a character string; it represents a + @tech{unreadable symbol}.} + @item{a pair whose @scheme[car] is @scheme['u] and whose @scheme[cdr] is either a byte string or character string; it represents a mutable byte or character @@ -215,7 +222,7 @@ elements: @item{a pair whose @scheme[car] is @scheme['p+], whose @scheme[cadr] is a byte string, and whose @scheme[cddr] is one of the possible symbol results of - @scheme[system-path-convetion-type]; it represents a + @scheme[system-path-convention-type]; it represents a path using the specified convention.} @item{a pair whose @scheme[car] is @scheme['c] and whose diff --git a/collects/scribblings/reference/write.scrbl b/collects/scribblings/reference/write.scrbl index 9b74498db6..737f246390 100644 --- a/collects/scribblings/reference/write.scrbl +++ b/collects/scribblings/reference/write.scrbl @@ -159,7 +159,9 @@ mutable pairs print using @litchar["{"] and @litchar["}"] instead of A parameter that controls printing values that have no @scheme[read]able form (using the default reader), including structures that have a custom-write procedure (see -@scheme[prop:custom-write]); defaults to @scheme[#t]. See +@scheme[prop:custom-write]), but not including @tech{uninterned} +symbols and @tech{unreadable symbols} (which print the same as +@tech{interned} symbols); defaults to @scheme[#t]. See @secref["printing"] for more information.} @defboolparam[print-graph on?]{ diff --git a/doc/release-notes/mzscheme/HISTORY.txt b/doc/release-notes/mzscheme/HISTORY.txt index e7fbc38fce..ad9ac77fb0 100644 --- a/doc/release-notes/mzscheme/HISTORY.txt +++ b/doc/release-notes/mzscheme/HISTORY.txt @@ -1,3 +1,12 @@ +Version 4.2.0.5 +Added string->unreadable-symbol and symbol-interned? + +Version 4.2.0.4 +Added syntax-local-lift-provide + +Version 4.2.0.3 +Added syntax-local-lift-values-expression + Version 4.2.0.2 Added identifier-prune-lexical-context and quote-syntax/prune diff --git a/src/mzscheme/src/cstartup.inc b/src/mzscheme/src/cstartup.inc index dcc449f04e..8b96b0edff 100644 --- a/src/mzscheme/src/cstartup.inc +++ b/src/mzscheme/src/cstartup.inc @@ -1,5 +1,5 @@ { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,48,46,52,50,0,0,0,1,0,0,3,0,12,0, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,48,46,53,50,0,0,0,1,0,0,3,0,12,0, 17,0,20,0,27,0,40,0,47,0,51,0,58,0,63,0,68,0,72,0,78, 0,92,0,106,0,109,0,115,0,119,0,121,0,132,0,134,0,148,0,155,0, 177,0,179,0,193,0,1,1,27,1,35,1,43,1,53,1,89,1,128,1,167, @@ -14,67 +14,67 @@ 115,61,120,73,108,101,116,114,101,99,45,118,97,108,117,101,115,66,108,97,109, 98,100,97,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110, 45,107,101,121,61,118,73,100,101,102,105,110,101,45,118,97,108,117,101,115,97, -35,11,8,129,232,95,159,2,15,35,35,159,2,14,35,35,159,2,14,35,35, +35,11,8,159,239,95,159,2,15,35,35,159,2,14,35,35,159,2,14,35,35, 16,20,2,3,2,1,2,5,2,1,2,6,2,1,2,7,2,1,2,8,2, 1,2,9,2,1,2,10,2,1,2,4,2,1,2,11,2,1,2,12,2,1, -97,36,11,8,129,232,93,159,2,14,35,36,16,2,2,2,161,2,1,36,2, -2,2,1,2,2,96,11,11,8,129,232,16,0,96,37,11,8,129,232,16,0, +97,36,11,8,159,239,93,159,2,14,35,36,16,2,2,2,161,2,1,36,2, +2,2,1,2,2,96,11,11,8,159,239,16,0,96,37,11,8,159,239,16,0, 13,16,4,35,29,11,11,2,1,11,18,16,2,99,64,104,101,114,101,8,31, -8,30,8,29,8,28,8,27,93,8,224,8,58,0,0,95,9,8,224,8,58, -0,0,2,1,27,248,22,135,4,23,196,1,249,22,128,4,80,158,38,35,251, -22,75,2,16,248,22,90,23,200,2,12,249,22,65,2,17,248,22,92,23,202, -1,27,248,22,135,4,23,196,1,249,22,128,4,80,158,38,35,251,22,75,2, -16,248,22,90,23,200,2,249,22,65,2,17,248,22,92,23,202,1,12,27,248, -22,67,248,22,135,4,23,197,1,28,248,22,73,23,194,2,20,15,159,36,35, -36,28,248,22,73,248,22,67,23,195,2,248,22,66,193,249,22,128,4,80,158, -38,35,251,22,75,2,16,248,22,66,23,200,2,249,22,65,2,12,248,22,67, +8,30,8,29,8,28,8,27,93,8,224,230,59,0,0,95,9,8,224,230,59, +0,0,2,1,27,248,22,137,4,23,196,1,249,22,130,4,80,158,38,35,251, +22,77,2,16,248,22,92,23,200,2,12,249,22,67,2,17,248,22,94,23,202, +1,27,248,22,137,4,23,196,1,249,22,130,4,80,158,38,35,251,22,77,2, +16,248,22,92,23,200,2,249,22,67,2,17,248,22,94,23,202,1,12,27,248, +22,69,248,22,137,4,23,197,1,28,248,22,75,23,194,2,20,15,159,36,35, +36,28,248,22,75,248,22,69,23,195,2,248,22,68,193,249,22,130,4,80,158, +38,35,251,22,77,2,16,248,22,68,23,200,2,249,22,67,2,12,248,22,69, 23,202,1,11,18,16,2,101,10,8,31,8,30,8,29,8,28,8,27,16,4, -11,11,2,18,3,1,7,101,110,118,57,56,50,51,16,4,11,11,2,19,3, -1,7,101,110,118,57,56,50,52,93,8,224,9,58,0,0,95,9,8,224,9, -58,0,0,2,1,27,248,22,67,248,22,135,4,23,197,1,28,248,22,73,23, -194,2,20,15,159,36,35,36,28,248,22,73,248,22,67,23,195,2,248,22,66, -193,249,22,128,4,80,158,38,35,250,22,75,2,20,248,22,75,249,22,75,248, -22,75,2,21,248,22,66,23,202,2,251,22,75,2,16,2,21,2,21,249,22, -65,2,4,248,22,67,23,205,1,18,16,2,101,11,8,31,8,30,8,29,8, -28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,57,56,50,54,16,4, -11,11,2,19,3,1,7,101,110,118,57,56,50,55,93,8,224,10,58,0,0, -95,9,8,224,10,58,0,0,2,1,248,22,135,4,193,27,248,22,135,4,194, -249,22,65,248,22,75,248,22,66,196,248,22,67,195,27,248,22,67,248,22,135, -4,23,197,1,249,22,128,4,80,158,38,35,28,248,22,53,248,22,129,4,248, -22,66,23,198,2,27,249,22,2,32,0,89,162,8,44,36,42,9,222,33,39, -248,22,135,4,248,22,90,23,200,2,250,22,75,2,22,248,22,75,249,22,75, -248,22,75,248,22,66,23,204,2,250,22,76,2,23,249,22,2,22,66,23,204, -2,248,22,92,23,206,2,249,22,65,248,22,66,23,202,1,249,22,2,22,90, -23,200,1,250,22,76,2,20,249,22,2,32,0,89,162,8,44,36,46,9,222, -33,40,248,22,135,4,248,22,66,201,248,22,67,198,27,248,22,135,4,194,249, -22,65,248,22,75,248,22,66,196,248,22,67,195,27,248,22,67,248,22,135,4, -23,197,1,249,22,128,4,80,158,38,35,250,22,76,2,22,249,22,2,32,0, -89,162,8,44,36,46,9,222,33,42,248,22,135,4,248,22,66,201,248,22,67, -198,27,248,22,67,248,22,135,4,196,27,248,22,135,4,248,22,66,195,249,22, -128,4,80,158,39,35,28,248,22,73,195,250,22,76,2,20,9,248,22,67,199, -250,22,75,2,8,248,22,75,248,22,66,199,250,22,76,2,11,248,22,67,201, -248,22,67,202,27,248,22,67,248,22,135,4,23,197,1,27,249,22,1,22,79, -249,22,2,22,135,4,248,22,135,4,248,22,66,199,249,22,128,4,80,158,39, -35,251,22,75,1,22,119,105,116,104,45,99,111,110,116,105,110,117,97,116,105, -111,110,45,109,97,114,107,2,24,250,22,76,1,23,101,120,116,101,110,100,45, +11,11,2,18,3,1,7,101,110,118,57,57,53,54,16,4,11,11,2,19,3, +1,7,101,110,118,57,57,53,55,93,8,224,231,59,0,0,95,9,8,224,231, +59,0,0,2,1,27,248,22,69,248,22,137,4,23,197,1,28,248,22,75,23, +194,2,20,15,159,36,35,36,28,248,22,75,248,22,69,23,195,2,248,22,68, +193,249,22,130,4,80,158,38,35,250,22,77,2,20,248,22,77,249,22,77,248, +22,77,2,21,248,22,68,23,202,2,251,22,77,2,16,2,21,2,21,249,22, +67,2,4,248,22,69,23,205,1,18,16,2,101,11,8,31,8,30,8,29,8, +28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,57,57,53,57,16,4, +11,11,2,19,3,1,7,101,110,118,57,57,54,48,93,8,224,232,59,0,0, +95,9,8,224,232,59,0,0,2,1,248,22,137,4,193,27,248,22,137,4,194, +249,22,67,248,22,77,248,22,68,196,248,22,69,195,27,248,22,69,248,22,137, +4,23,197,1,249,22,130,4,80,158,38,35,28,248,22,53,248,22,131,4,248, +22,68,23,198,2,27,249,22,2,32,0,89,162,8,44,36,42,9,222,33,39, +248,22,137,4,248,22,92,23,200,2,250,22,77,2,22,248,22,77,249,22,77, +248,22,77,248,22,68,23,204,2,250,22,78,2,23,249,22,2,22,68,23,204, +2,248,22,94,23,206,2,249,22,67,248,22,68,23,202,1,249,22,2,22,92, +23,200,1,250,22,78,2,20,249,22,2,32,0,89,162,8,44,36,46,9,222, +33,40,248,22,137,4,248,22,68,201,248,22,69,198,27,248,22,137,4,194,249, +22,67,248,22,77,248,22,68,196,248,22,69,195,27,248,22,69,248,22,137,4, +23,197,1,249,22,130,4,80,158,38,35,250,22,78,2,22,249,22,2,32,0, +89,162,8,44,36,46,9,222,33,42,248,22,137,4,248,22,68,201,248,22,69, +198,27,248,22,69,248,22,137,4,196,27,248,22,137,4,248,22,68,195,249,22, +130,4,80,158,39,35,28,248,22,75,195,250,22,78,2,20,9,248,22,69,199, +250,22,77,2,8,248,22,77,248,22,68,199,250,22,78,2,11,248,22,69,201, +248,22,69,202,27,248,22,69,248,22,137,4,23,197,1,27,249,22,1,22,81, +249,22,2,22,137,4,248,22,137,4,248,22,68,199,249,22,130,4,80,158,39, +35,251,22,77,1,22,119,105,116,104,45,99,111,110,116,105,110,117,97,116,105, +111,110,45,109,97,114,107,2,24,250,22,78,1,23,101,120,116,101,110,100,45, 112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,21,95,1,27,99, 111,110,116,105,110,117,97,116,105,111,110,45,109,97,114,107,45,115,101,116,45, -102,105,114,115,116,11,2,24,201,250,22,76,2,20,9,248,22,67,203,27,248, -22,67,248,22,135,4,23,197,1,28,248,22,73,23,194,2,20,15,159,36,35, -36,249,22,128,4,80,158,38,35,27,248,22,135,4,248,22,66,23,198,2,28, -249,22,165,8,62,61,62,248,22,129,4,248,22,90,23,197,2,250,22,75,2, -20,248,22,75,249,22,75,21,93,2,25,248,22,66,199,250,22,76,2,3,249, -22,75,2,25,249,22,75,248,22,99,203,2,25,248,22,67,202,251,22,75,2, -16,28,249,22,165,8,248,22,129,4,248,22,66,23,201,2,64,101,108,115,101, -10,248,22,66,23,198,2,250,22,76,2,20,9,248,22,67,23,201,1,249,22, -65,2,3,248,22,67,23,203,1,100,8,31,8,30,8,29,8,28,8,27,16, -4,11,11,2,18,3,1,7,101,110,118,57,56,52,57,16,4,11,11,2,19, -3,1,7,101,110,118,57,56,53,48,93,8,224,11,58,0,0,18,16,2,158, -94,10,64,118,111,105,100,8,47,95,9,8,224,11,58,0,0,2,1,27,248, -22,67,248,22,135,4,196,249,22,128,4,80,158,38,35,28,248,22,53,248,22, -129,4,248,22,66,197,250,22,75,2,26,248,22,75,248,22,66,199,248,22,90, -198,27,248,22,129,4,248,22,66,197,250,22,75,2,26,248,22,75,248,22,66, -197,250,22,76,2,23,248,22,67,199,248,22,67,202,159,35,20,103,159,35,16, +102,105,114,115,116,11,2,24,201,250,22,78,2,20,9,248,22,69,203,27,248, +22,69,248,22,137,4,23,197,1,28,248,22,75,23,194,2,20,15,159,36,35, +36,249,22,130,4,80,158,38,35,27,248,22,137,4,248,22,68,23,198,2,28, +249,22,167,8,62,61,62,248,22,131,4,248,22,92,23,197,2,250,22,77,2, +20,248,22,77,249,22,77,21,93,2,25,248,22,68,199,250,22,78,2,3,249, +22,77,2,25,249,22,77,248,22,101,203,2,25,248,22,69,202,251,22,77,2, +16,28,249,22,167,8,248,22,131,4,248,22,68,23,201,2,64,101,108,115,101, +10,248,22,68,23,198,2,250,22,78,2,20,9,248,22,69,23,201,1,249,22, +67,2,3,248,22,69,23,203,1,100,8,31,8,30,8,29,8,28,8,27,16, +4,11,11,2,18,3,1,7,101,110,118,57,57,56,50,16,4,11,11,2,19, +3,1,7,101,110,118,57,57,56,51,93,8,224,233,59,0,0,18,16,2,158, +94,10,64,118,111,105,100,8,47,95,9,8,224,233,59,0,0,2,1,27,248, +22,69,248,22,137,4,196,249,22,130,4,80,158,38,35,28,248,22,53,248,22, +131,4,248,22,68,197,250,22,77,2,26,248,22,77,248,22,68,199,248,22,92, +198,27,248,22,131,4,248,22,68,197,250,22,77,2,26,248,22,77,248,22,68, +197,250,22,78,2,23,248,22,69,199,248,22,69,202,159,35,20,103,159,35,16, 1,11,16,0,83,158,41,20,100,144,69,35,37,109,105,110,45,115,116,120,2, 1,11,11,11,10,35,80,158,35,35,20,103,159,35,16,0,16,0,16,1,2, 2,36,16,0,35,16,0,35,11,11,38,35,11,11,11,16,10,2,3,2,4, @@ -100,7 +100,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 2048); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,48,46,52,59,0,0,0,1,0,0,13,0,18,0, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,48,46,53,59,0,0,0,1,0,0,13,0,18,0, 35,0,50,0,68,0,84,0,94,0,112,0,132,0,148,0,166,0,197,0,226, 0,248,0,6,1,12,1,26,1,31,1,41,1,49,1,77,1,109,1,154,1, 199,1,223,1,6,2,8,2,65,2,155,3,196,3,31,5,135,5,239,5,100, @@ -132,177 +132,177 @@ 116,101,32,115,116,114,105,110,103,6,36,36,99,97,110,110,111,116,32,97,100, 100,32,97,32,115,117,102,102,105,120,32,116,111,32,97,32,114,111,111,116,32, 112,97,116,104,58,32,5,0,27,20,14,159,80,158,36,50,250,80,158,39,51, -249,22,27,11,80,158,41,50,22,185,12,10,248,22,158,5,23,196,2,28,248, -22,155,6,23,194,2,12,87,94,248,22,169,8,23,194,1,248,80,159,37,53, -36,195,28,248,22,73,23,195,2,9,27,248,22,66,23,196,2,27,28,248,22, -166,13,23,195,2,23,194,1,28,248,22,165,13,23,195,2,249,22,167,13,23, -196,1,250,80,158,42,48,248,22,181,13,2,19,11,10,250,80,158,40,48,248, -22,181,13,2,19,23,197,1,10,28,23,193,2,249,22,65,248,22,169,13,249, -22,167,13,23,198,1,247,22,182,13,27,248,22,67,23,200,1,28,248,22,73, -23,194,2,9,27,248,22,66,23,195,2,27,28,248,22,166,13,23,195,2,23, -194,1,28,248,22,165,13,23,195,2,249,22,167,13,23,196,1,250,80,158,47, -48,248,22,181,13,2,19,11,10,250,80,158,45,48,248,22,181,13,2,19,23, -197,1,10,28,23,193,2,249,22,65,248,22,169,13,249,22,167,13,23,198,1, -247,22,182,13,248,80,159,45,52,36,248,22,67,23,199,1,87,94,23,193,1, -248,80,159,43,52,36,248,22,67,23,197,1,87,94,23,193,1,27,248,22,67, -23,198,1,28,248,22,73,23,194,2,9,27,248,22,66,23,195,2,27,28,248, -22,166,13,23,195,2,23,194,1,28,248,22,165,13,23,195,2,249,22,167,13, -23,196,1,250,80,158,45,48,248,22,181,13,2,19,11,10,250,80,158,43,48, -248,22,181,13,2,19,23,197,1,10,28,23,193,2,249,22,65,248,22,169,13, -249,22,167,13,23,198,1,247,22,182,13,248,80,159,43,52,36,248,22,67,23, -199,1,248,80,159,41,52,36,248,22,67,196,27,248,22,142,13,23,195,2,28, -23,193,2,192,87,94,23,193,1,28,248,22,160,6,23,195,2,27,248,22,164, -13,195,28,192,192,248,22,165,13,195,11,87,94,28,28,248,22,143,13,23,195, -2,10,27,248,22,142,13,23,196,2,28,23,193,2,192,87,94,23,193,1,28, -248,22,160,6,23,196,2,27,248,22,164,13,23,197,2,28,23,193,2,192,87, -94,23,193,1,248,22,165,13,23,197,2,11,12,250,22,133,9,76,110,111,114, +249,22,27,11,80,158,41,50,22,187,12,10,248,22,160,5,23,196,2,28,248, +22,157,6,23,194,2,12,87,94,248,22,171,8,23,194,1,248,80,159,37,53, +36,195,28,248,22,75,23,195,2,9,27,248,22,68,23,196,2,27,28,248,22, +168,13,23,195,2,23,194,1,28,248,22,167,13,23,195,2,249,22,169,13,23, +196,1,250,80,158,42,48,248,22,183,13,2,19,11,10,250,80,158,40,48,248, +22,183,13,2,19,23,197,1,10,28,23,193,2,249,22,67,248,22,171,13,249, +22,169,13,23,198,1,247,22,184,13,27,248,22,69,23,200,1,28,248,22,75, +23,194,2,9,27,248,22,68,23,195,2,27,28,248,22,168,13,23,195,2,23, +194,1,28,248,22,167,13,23,195,2,249,22,169,13,23,196,1,250,80,158,47, +48,248,22,183,13,2,19,11,10,250,80,158,45,48,248,22,183,13,2,19,23, +197,1,10,28,23,193,2,249,22,67,248,22,171,13,249,22,169,13,23,198,1, +247,22,184,13,248,80,159,45,52,36,248,22,69,23,199,1,87,94,23,193,1, +248,80,159,43,52,36,248,22,69,23,197,1,87,94,23,193,1,27,248,22,69, +23,198,1,28,248,22,75,23,194,2,9,27,248,22,68,23,195,2,27,28,248, +22,168,13,23,195,2,23,194,1,28,248,22,167,13,23,195,2,249,22,169,13, +23,196,1,250,80,158,45,48,248,22,183,13,2,19,11,10,250,80,158,43,48, +248,22,183,13,2,19,23,197,1,10,28,23,193,2,249,22,67,248,22,171,13, +249,22,169,13,23,198,1,247,22,184,13,248,80,159,43,52,36,248,22,69,23, +199,1,248,80,159,41,52,36,248,22,69,196,27,248,22,144,13,23,195,2,28, +23,193,2,192,87,94,23,193,1,28,248,22,162,6,23,195,2,27,248,22,166, +13,195,28,192,192,248,22,167,13,195,11,87,94,28,28,248,22,145,13,23,195, +2,10,27,248,22,144,13,23,196,2,28,23,193,2,192,87,94,23,193,1,28, +248,22,162,6,23,196,2,27,248,22,166,13,23,197,2,28,23,193,2,192,87, +94,23,193,1,248,22,167,13,23,197,2,11,12,250,22,135,9,76,110,111,114, 109,97,108,45,112,97,116,104,45,99,97,115,101,6,42,42,112,97,116,104,32, 40,102,111,114,32,97,110,121,32,115,121,115,116,101,109,41,32,111,114,32,118, 97,108,105,100,45,112,97,116,104,32,115,116,114,105,110,103,23,197,2,28,28, -248,22,143,13,23,195,2,249,22,165,8,248,22,144,13,23,197,2,2,20,249, -22,165,8,247,22,179,7,2,20,27,28,248,22,160,6,23,196,2,23,195,2, -248,22,169,7,248,22,147,13,23,197,2,28,249,22,130,14,0,21,35,114,120, +248,22,145,13,23,195,2,249,22,167,8,248,22,146,13,23,197,2,2,20,249, +22,167,8,247,22,181,7,2,20,27,28,248,22,162,6,23,196,2,23,195,2, +248,22,171,7,248,22,149,13,23,197,2,28,249,22,132,14,0,21,35,114,120, 34,94,91,92,92,93,91,92,92,93,91,63,93,91,92,92,93,34,23,195,2, -28,248,22,160,6,195,248,22,150,13,195,194,27,248,22,135,7,23,195,1,249, -22,151,13,248,22,172,7,250,22,136,14,0,6,35,114,120,34,47,34,28,249, -22,130,14,0,22,35,114,120,34,91,47,92,92,93,91,46,32,93,43,91,47, -92,92,93,42,36,34,23,201,2,23,199,1,250,22,136,14,0,19,35,114,120, +28,248,22,162,6,195,248,22,152,13,195,194,27,248,22,137,7,23,195,1,249, +22,153,13,248,22,174,7,250,22,138,14,0,6,35,114,120,34,47,34,28,249, +22,132,14,0,22,35,114,120,34,91,47,92,92,93,91,46,32,93,43,91,47, +92,92,93,42,36,34,23,201,2,23,199,1,250,22,138,14,0,19,35,114,120, 34,91,32,46,93,43,40,91,47,92,92,93,42,41,36,34,23,202,1,6,2, -2,92,49,80,159,43,36,37,2,20,28,248,22,160,6,194,248,22,150,13,194, -193,87,94,28,27,248,22,142,13,23,196,2,28,23,193,2,192,87,94,23,193, -1,28,248,22,160,6,23,196,2,27,248,22,164,13,23,197,2,28,23,193,2, -192,87,94,23,193,1,248,22,165,13,23,197,2,11,12,250,22,133,9,23,196, -2,2,21,23,197,2,28,248,22,164,13,23,195,2,12,248,22,161,11,249,22, -170,10,248,22,189,6,250,22,144,7,2,22,23,200,1,23,201,1,247,22,23, -87,94,28,27,248,22,142,13,23,196,2,28,23,193,2,192,87,94,23,193,1, -28,248,22,160,6,23,196,2,27,248,22,164,13,23,197,2,28,23,193,2,192, -87,94,23,193,1,248,22,165,13,23,197,2,11,12,250,22,133,9,23,196,2, -2,21,23,197,2,28,248,22,164,13,23,195,2,12,248,22,161,11,249,22,170, -10,248,22,189,6,250,22,144,7,2,22,23,200,1,23,201,1,247,22,23,87, -94,87,94,28,27,248,22,142,13,23,196,2,28,23,193,2,192,87,94,23,193, -1,28,248,22,160,6,23,196,2,27,248,22,164,13,23,197,2,28,23,193,2, -192,87,94,23,193,1,248,22,165,13,23,197,2,11,12,250,22,133,9,195,2, -21,23,197,2,28,248,22,164,13,23,195,2,12,248,22,161,11,249,22,170,10, -248,22,189,6,250,22,144,7,2,22,199,23,201,1,247,22,23,249,22,3,89, -162,8,44,36,49,9,223,2,33,33,196,248,22,161,11,249,22,136,11,23,196, +2,92,49,80,159,43,36,37,2,20,28,248,22,162,6,194,248,22,152,13,194, +193,87,94,28,27,248,22,144,13,23,196,2,28,23,193,2,192,87,94,23,193, +1,28,248,22,162,6,23,196,2,27,248,22,166,13,23,197,2,28,23,193,2, +192,87,94,23,193,1,248,22,167,13,23,197,2,11,12,250,22,135,9,23,196, +2,2,21,23,197,2,28,248,22,166,13,23,195,2,12,248,22,163,11,249,22, +172,10,248,22,191,6,250,22,146,7,2,22,23,200,1,23,201,1,247,22,23, +87,94,28,27,248,22,144,13,23,196,2,28,23,193,2,192,87,94,23,193,1, +28,248,22,162,6,23,196,2,27,248,22,166,13,23,197,2,28,23,193,2,192, +87,94,23,193,1,248,22,167,13,23,197,2,11,12,250,22,135,9,23,196,2, +2,21,23,197,2,28,248,22,166,13,23,195,2,12,248,22,163,11,249,22,172, +10,248,22,191,6,250,22,146,7,2,22,23,200,1,23,201,1,247,22,23,87, +94,87,94,28,27,248,22,144,13,23,196,2,28,23,193,2,192,87,94,23,193, +1,28,248,22,162,6,23,196,2,27,248,22,166,13,23,197,2,28,23,193,2, +192,87,94,23,193,1,248,22,167,13,23,197,2,11,12,250,22,135,9,195,2, +21,23,197,2,28,248,22,166,13,23,195,2,12,248,22,163,11,249,22,172,10, +248,22,191,6,250,22,146,7,2,22,199,23,201,1,247,22,23,249,22,3,89, +162,8,44,36,49,9,223,2,33,33,196,248,22,163,11,249,22,138,11,23,196, 1,247,22,23,87,94,250,80,159,38,39,36,2,6,196,197,251,80,159,39,41, 36,2,6,32,0,89,162,8,44,36,44,9,222,33,35,197,198,32,37,89,162, -43,41,58,65,99,108,111,111,112,222,33,38,28,248,22,73,23,199,2,87,94, -23,198,1,248,23,196,1,251,22,144,7,2,23,23,199,1,28,248,22,73,23, -203,2,87,94,23,202,1,23,201,1,250,22,1,22,160,13,23,204,1,23,205, -1,23,198,1,27,249,22,160,13,248,22,66,23,202,2,23,199,2,28,248,22, -155,13,23,194,2,27,250,22,1,22,160,13,23,197,1,23,202,2,28,248,22, -155,13,23,194,2,192,87,94,23,193,1,27,248,22,67,23,202,1,28,248,22, -73,23,194,2,87,94,23,193,1,248,23,199,1,251,22,144,7,2,23,23,202, -1,28,248,22,73,23,206,2,87,94,23,205,1,23,204,1,250,22,1,22,160, -13,23,207,1,23,208,1,23,201,1,27,249,22,160,13,248,22,66,23,197,2, -23,202,2,28,248,22,155,13,23,194,2,27,250,22,1,22,160,13,23,197,1, -204,28,248,22,155,13,193,192,253,2,37,203,204,205,206,23,15,248,22,67,201, -253,2,37,202,203,204,205,206,248,22,67,200,87,94,23,193,1,27,248,22,67, -23,201,1,28,248,22,73,23,194,2,87,94,23,193,1,248,23,198,1,251,22, -144,7,2,23,23,201,1,28,248,22,73,23,205,2,87,94,23,204,1,23,203, -1,250,22,1,22,160,13,23,206,1,23,207,1,23,200,1,27,249,22,160,13, -248,22,66,23,197,2,23,201,2,28,248,22,155,13,23,194,2,27,250,22,1, -22,160,13,23,197,1,203,28,248,22,155,13,193,192,253,2,37,202,203,204,205, -206,248,22,67,201,253,2,37,201,202,203,204,205,248,22,67,200,27,247,22,183, -13,253,2,37,198,199,200,201,202,198,87,95,28,28,248,22,143,13,23,194,2, -10,27,248,22,142,13,23,195,2,28,23,193,2,192,87,94,23,193,1,28,248, -22,160,6,23,195,2,27,248,22,164,13,23,196,2,28,23,193,2,192,87,94, -23,193,1,248,22,165,13,23,196,2,11,12,252,22,133,9,23,200,2,2,24, -35,23,198,2,23,199,2,28,28,248,22,160,6,23,195,2,10,248,22,148,7, -23,195,2,87,94,23,194,1,12,252,22,133,9,23,200,2,2,25,36,23,198, -2,23,199,1,91,159,38,11,90,161,38,35,11,248,22,163,13,23,197,2,87, -94,23,195,1,87,94,28,192,12,250,22,134,9,23,201,1,2,26,23,199,1, -249,22,7,194,195,91,159,37,11,90,161,37,35,11,87,95,28,28,248,22,143, -13,23,196,2,10,27,248,22,142,13,23,197,2,28,23,193,2,192,87,94,23, -193,1,28,248,22,160,6,23,197,2,27,248,22,164,13,23,198,2,28,23,193, -2,192,87,94,23,193,1,248,22,165,13,23,198,2,11,12,252,22,133,9,2, -9,2,24,35,23,200,2,23,201,2,28,28,248,22,160,6,23,197,2,10,248, -22,148,7,23,197,2,12,252,22,133,9,2,9,2,25,36,23,200,2,23,201, -2,91,159,38,11,90,161,38,35,11,248,22,163,13,23,199,2,87,94,23,195, -1,87,94,28,192,12,250,22,134,9,2,9,2,26,23,201,2,249,22,7,194, -195,27,249,22,152,13,250,22,135,14,0,20,35,114,120,35,34,40,63,58,91, -46,93,91,94,46,93,42,124,41,36,34,248,22,148,13,23,201,1,28,248,22, -160,6,23,203,2,249,22,172,7,23,204,1,8,63,23,202,1,28,248,22,143, -13,23,199,2,248,22,144,13,23,199,1,87,94,23,198,1,247,22,145,13,28, -248,22,142,13,194,249,22,160,13,195,194,192,91,159,37,11,90,161,37,35,11, -87,95,28,28,248,22,143,13,23,196,2,10,27,248,22,142,13,23,197,2,28, -23,193,2,192,87,94,23,193,1,28,248,22,160,6,23,197,2,27,248,22,164, -13,23,198,2,28,23,193,2,192,87,94,23,193,1,248,22,165,13,23,198,2, -11,12,252,22,133,9,2,10,2,24,35,23,200,2,23,201,2,28,28,248,22, -160,6,23,197,2,10,248,22,148,7,23,197,2,12,252,22,133,9,2,10,2, -25,36,23,200,2,23,201,2,91,159,38,11,90,161,38,35,11,248,22,163,13, -23,199,2,87,94,23,195,1,87,94,28,192,12,250,22,134,9,2,10,2,26, -23,201,2,249,22,7,194,195,27,249,22,152,13,249,22,158,7,250,22,136,14, -0,9,35,114,120,35,34,91,46,93,34,248,22,148,13,23,203,1,6,1,1, -95,28,248,22,160,6,23,202,2,249,22,172,7,23,203,1,8,63,23,201,1, -28,248,22,143,13,23,199,2,248,22,144,13,23,199,1,87,94,23,198,1,247, -22,145,13,28,248,22,142,13,194,249,22,160,13,195,194,192,249,247,22,191,4, +43,41,58,65,99,108,111,111,112,222,33,38,28,248,22,75,23,199,2,87,94, +23,198,1,248,23,196,1,251,22,146,7,2,23,23,199,1,28,248,22,75,23, +203,2,87,94,23,202,1,23,201,1,250,22,1,22,162,13,23,204,1,23,205, +1,23,198,1,27,249,22,162,13,248,22,68,23,202,2,23,199,2,28,248,22, +157,13,23,194,2,27,250,22,1,22,162,13,23,197,1,23,202,2,28,248,22, +157,13,23,194,2,192,87,94,23,193,1,27,248,22,69,23,202,1,28,248,22, +75,23,194,2,87,94,23,193,1,248,23,199,1,251,22,146,7,2,23,23,202, +1,28,248,22,75,23,206,2,87,94,23,205,1,23,204,1,250,22,1,22,162, +13,23,207,1,23,208,1,23,201,1,27,249,22,162,13,248,22,68,23,197,2, +23,202,2,28,248,22,157,13,23,194,2,27,250,22,1,22,162,13,23,197,1, +204,28,248,22,157,13,193,192,253,2,37,203,204,205,206,23,15,248,22,69,201, +253,2,37,202,203,204,205,206,248,22,69,200,87,94,23,193,1,27,248,22,69, +23,201,1,28,248,22,75,23,194,2,87,94,23,193,1,248,23,198,1,251,22, +146,7,2,23,23,201,1,28,248,22,75,23,205,2,87,94,23,204,1,23,203, +1,250,22,1,22,162,13,23,206,1,23,207,1,23,200,1,27,249,22,162,13, +248,22,68,23,197,2,23,201,2,28,248,22,157,13,23,194,2,27,250,22,1, +22,162,13,23,197,1,203,28,248,22,157,13,193,192,253,2,37,202,203,204,205, +206,248,22,69,201,253,2,37,201,202,203,204,205,248,22,69,200,27,247,22,185, +13,253,2,37,198,199,200,201,202,198,87,95,28,28,248,22,145,13,23,194,2, +10,27,248,22,144,13,23,195,2,28,23,193,2,192,87,94,23,193,1,28,248, +22,162,6,23,195,2,27,248,22,166,13,23,196,2,28,23,193,2,192,87,94, +23,193,1,248,22,167,13,23,196,2,11,12,252,22,135,9,23,200,2,2,24, +35,23,198,2,23,199,2,28,28,248,22,162,6,23,195,2,10,248,22,150,7, +23,195,2,87,94,23,194,1,12,252,22,135,9,23,200,2,2,25,36,23,198, +2,23,199,1,91,159,38,11,90,161,38,35,11,248,22,165,13,23,197,2,87, +94,23,195,1,87,94,28,192,12,250,22,136,9,23,201,1,2,26,23,199,1, +249,22,7,194,195,91,159,37,11,90,161,37,35,11,87,95,28,28,248,22,145, +13,23,196,2,10,27,248,22,144,13,23,197,2,28,23,193,2,192,87,94,23, +193,1,28,248,22,162,6,23,197,2,27,248,22,166,13,23,198,2,28,23,193, +2,192,87,94,23,193,1,248,22,167,13,23,198,2,11,12,252,22,135,9,2, +9,2,24,35,23,200,2,23,201,2,28,28,248,22,162,6,23,197,2,10,248, +22,150,7,23,197,2,12,252,22,135,9,2,9,2,25,36,23,200,2,23,201, +2,91,159,38,11,90,161,38,35,11,248,22,165,13,23,199,2,87,94,23,195, +1,87,94,28,192,12,250,22,136,9,2,9,2,26,23,201,2,249,22,7,194, +195,27,249,22,154,13,250,22,137,14,0,20,35,114,120,35,34,40,63,58,91, +46,93,91,94,46,93,42,124,41,36,34,248,22,150,13,23,201,1,28,248,22, +162,6,23,203,2,249,22,174,7,23,204,1,8,63,23,202,1,28,248,22,145, +13,23,199,2,248,22,146,13,23,199,1,87,94,23,198,1,247,22,147,13,28, +248,22,144,13,194,249,22,162,13,195,194,192,91,159,37,11,90,161,37,35,11, +87,95,28,28,248,22,145,13,23,196,2,10,27,248,22,144,13,23,197,2,28, +23,193,2,192,87,94,23,193,1,28,248,22,162,6,23,197,2,27,248,22,166, +13,23,198,2,28,23,193,2,192,87,94,23,193,1,248,22,167,13,23,198,2, +11,12,252,22,135,9,2,10,2,24,35,23,200,2,23,201,2,28,28,248,22, +162,6,23,197,2,10,248,22,150,7,23,197,2,12,252,22,135,9,2,10,2, +25,36,23,200,2,23,201,2,91,159,38,11,90,161,38,35,11,248,22,165,13, +23,199,2,87,94,23,195,1,87,94,28,192,12,250,22,136,9,2,10,2,26, +23,201,2,249,22,7,194,195,27,249,22,154,13,249,22,160,7,250,22,138,14, +0,9,35,114,120,35,34,91,46,93,34,248,22,150,13,23,203,1,6,1,1, +95,28,248,22,162,6,23,202,2,249,22,174,7,23,203,1,8,63,23,201,1, +28,248,22,145,13,23,199,2,248,22,146,13,23,199,1,87,94,23,198,1,247, +22,147,13,28,248,22,144,13,194,249,22,162,13,195,194,192,249,247,22,129,5, 194,11,249,80,159,37,46,36,9,9,249,80,159,37,46,36,195,9,27,247,22, -185,13,249,80,158,38,47,28,23,195,2,27,248,22,177,7,6,11,11,80,76, +187,13,249,80,158,38,47,28,23,195,2,27,248,22,179,7,6,11,11,80,76, 84,67,79,76,76,69,67,84,83,28,192,192,6,0,0,6,0,0,27,28,23, -196,1,250,22,160,13,248,22,181,13,69,97,100,100,111,110,45,100,105,114,247, -22,175,7,6,8,8,99,111,108,108,101,99,116,115,11,27,248,80,159,41,52, -36,250,22,79,23,203,1,248,22,75,248,22,181,13,72,99,111,108,108,101,99, -116,115,45,100,105,114,23,204,1,28,23,194,2,249,22,65,23,196,1,23,195, -1,192,32,47,89,162,8,44,38,54,2,18,222,33,48,27,249,22,128,14,23, -197,2,23,198,2,28,23,193,2,87,94,23,196,1,27,248,22,90,23,195,2, -27,27,248,22,99,23,197,1,27,249,22,128,14,23,201,2,23,196,2,28,23, -193,2,87,94,23,194,1,27,248,22,90,23,195,2,27,250,2,47,23,203,2, -23,204,1,248,22,99,23,199,1,28,249,22,154,7,23,196,2,2,27,249,22, -79,23,202,2,194,249,22,65,248,22,151,13,23,197,1,23,195,1,87,95,23, -199,1,23,193,1,28,249,22,154,7,23,196,2,2,27,249,22,79,23,200,2, -9,249,22,65,248,22,151,13,23,197,1,9,28,249,22,154,7,23,196,2,2, -27,249,22,79,197,194,87,94,23,196,1,249,22,65,248,22,151,13,23,197,1, -194,87,94,23,193,1,28,249,22,154,7,23,198,2,2,27,249,22,79,195,9, -87,94,23,194,1,249,22,65,248,22,151,13,23,199,1,9,87,95,28,28,248, -22,148,7,194,10,248,22,160,6,194,12,250,22,133,9,2,13,6,21,21,98, +196,1,250,22,162,13,248,22,183,13,69,97,100,100,111,110,45,100,105,114,247, +22,177,7,6,8,8,99,111,108,108,101,99,116,115,11,27,248,80,159,41,52, +36,250,22,81,23,203,1,248,22,77,248,22,183,13,72,99,111,108,108,101,99, +116,115,45,100,105,114,23,204,1,28,23,194,2,249,22,67,23,196,1,23,195, +1,192,32,47,89,162,8,44,38,54,2,18,222,33,48,27,249,22,130,14,23, +197,2,23,198,2,28,23,193,2,87,94,23,196,1,27,248,22,92,23,195,2, +27,27,248,22,101,23,197,1,27,249,22,130,14,23,201,2,23,196,2,28,23, +193,2,87,94,23,194,1,27,248,22,92,23,195,2,27,250,2,47,23,203,2, +23,204,1,248,22,101,23,199,1,28,249,22,156,7,23,196,2,2,27,249,22, +81,23,202,2,194,249,22,67,248,22,153,13,23,197,1,23,195,1,87,95,23, +199,1,23,193,1,28,249,22,156,7,23,196,2,2,27,249,22,81,23,200,2, +9,249,22,67,248,22,153,13,23,197,1,9,28,249,22,156,7,23,196,2,2, +27,249,22,81,197,194,87,94,23,196,1,249,22,67,248,22,153,13,23,197,1, +194,87,94,23,193,1,28,249,22,156,7,23,198,2,2,27,249,22,81,195,9, +87,94,23,194,1,249,22,67,248,22,153,13,23,199,1,9,87,95,28,28,248, +22,150,7,194,10,248,22,162,6,194,12,250,22,135,9,2,13,6,21,21,98, 121,116,101,32,115,116,114,105,110,103,32,111,114,32,115,116,114,105,110,103,196, -28,28,248,22,74,195,249,22,4,22,142,13,196,11,12,250,22,133,9,2,13, +28,28,248,22,76,195,249,22,4,22,144,13,196,11,12,250,22,135,9,2,13, 6,13,13,108,105,115,116,32,111,102,32,112,97,116,104,115,197,250,2,47,197, -195,28,248,22,160,6,197,248,22,171,7,197,196,32,50,89,162,8,44,39,57, +195,28,248,22,162,6,197,248,22,173,7,197,196,32,50,89,162,8,44,39,57, 2,18,222,33,53,32,51,89,162,8,44,38,54,70,102,111,117,110,100,45,101, 120,101,99,222,33,52,28,23,193,2,91,159,38,11,90,161,38,35,11,248,22, -163,13,23,199,2,87,95,23,195,1,23,194,1,27,28,23,198,2,27,248,22, -168,13,23,201,2,28,249,22,167,8,23,195,2,23,202,2,11,28,248,22,164, -13,23,194,2,250,2,51,23,201,2,23,202,2,249,22,160,13,23,200,2,23, +165,13,23,199,2,87,95,23,195,1,23,194,1,27,28,23,198,2,27,248,22, +170,13,23,201,2,28,249,22,169,8,23,195,2,23,202,2,11,28,248,22,166, +13,23,194,2,250,2,51,23,201,2,23,202,2,249,22,162,13,23,200,2,23, 198,1,250,2,51,23,201,2,23,202,2,23,196,1,11,28,23,193,2,192,87, -94,23,193,1,27,28,248,22,142,13,23,196,2,27,249,22,160,13,23,198,2, -23,201,2,28,28,248,22,155,13,193,10,248,22,154,13,193,192,11,11,28,23, -193,2,192,87,94,23,193,1,28,23,199,2,11,27,248,22,168,13,23,202,2, -28,249,22,167,8,23,195,2,23,203,1,11,28,248,22,164,13,23,194,2,250, -2,51,23,202,1,23,203,1,249,22,160,13,23,201,1,23,198,1,250,2,51, -201,202,195,194,28,248,22,73,23,197,2,11,27,248,22,167,13,248,22,66,23, -199,2,27,249,22,160,13,23,196,1,23,197,2,28,248,22,154,13,23,194,2, -250,2,51,198,199,195,87,94,23,193,1,27,248,22,67,23,200,1,28,248,22, -73,23,194,2,11,27,248,22,167,13,248,22,66,23,196,2,27,249,22,160,13, -23,196,1,23,200,2,28,248,22,154,13,23,194,2,250,2,51,201,202,195,87, -94,23,193,1,27,248,22,67,23,197,1,28,248,22,73,23,194,2,11,27,248, -22,167,13,248,22,66,195,27,249,22,160,13,23,196,1,202,28,248,22,154,13, -193,250,2,51,204,205,195,251,2,50,204,205,206,248,22,67,199,87,95,28,27, -248,22,142,13,23,196,2,28,23,193,2,192,87,94,23,193,1,28,248,22,160, -6,23,196,2,27,248,22,164,13,23,197,2,28,23,193,2,192,87,94,23,193, -1,248,22,165,13,23,197,2,11,12,250,22,133,9,2,14,6,25,25,112,97, +94,23,193,1,27,28,248,22,144,13,23,196,2,27,249,22,162,13,23,198,2, +23,201,2,28,28,248,22,157,13,193,10,248,22,156,13,193,192,11,11,28,23, +193,2,192,87,94,23,193,1,28,23,199,2,11,27,248,22,170,13,23,202,2, +28,249,22,169,8,23,195,2,23,203,1,11,28,248,22,166,13,23,194,2,250, +2,51,23,202,1,23,203,1,249,22,162,13,23,201,1,23,198,1,250,2,51, +201,202,195,194,28,248,22,75,23,197,2,11,27,248,22,169,13,248,22,68,23, +199,2,27,249,22,162,13,23,196,1,23,197,2,28,248,22,156,13,23,194,2, +250,2,51,198,199,195,87,94,23,193,1,27,248,22,69,23,200,1,28,248,22, +75,23,194,2,11,27,248,22,169,13,248,22,68,23,196,2,27,249,22,162,13, +23,196,1,23,200,2,28,248,22,156,13,23,194,2,250,2,51,201,202,195,87, +94,23,193,1,27,248,22,69,23,197,1,28,248,22,75,23,194,2,11,27,248, +22,169,13,248,22,68,195,27,249,22,162,13,23,196,1,202,28,248,22,156,13, +193,250,2,51,204,205,195,251,2,50,204,205,206,248,22,69,199,87,95,28,27, +248,22,144,13,23,196,2,28,23,193,2,192,87,94,23,193,1,28,248,22,162, +6,23,196,2,27,248,22,166,13,23,197,2,28,23,193,2,192,87,94,23,193, +1,248,22,167,13,23,197,2,11,12,250,22,135,9,2,14,6,25,25,112,97, 116,104,32,111,114,32,115,116,114,105,110,103,32,40,115,97,110,115,32,110,117, -108,41,23,197,2,28,28,23,195,2,28,27,248,22,142,13,23,197,2,28,23, -193,2,192,87,94,23,193,1,28,248,22,160,6,23,197,2,27,248,22,164,13, -23,198,2,28,23,193,2,192,87,94,23,193,1,248,22,165,13,23,198,2,11, -248,22,164,13,23,196,2,11,10,12,250,22,133,9,2,14,6,29,29,35,102, +108,41,23,197,2,28,28,23,195,2,28,27,248,22,144,13,23,197,2,28,23, +193,2,192,87,94,23,193,1,28,248,22,162,6,23,197,2,27,248,22,166,13, +23,198,2,28,23,193,2,192,87,94,23,193,1,248,22,167,13,23,198,2,11, +248,22,166,13,23,196,2,11,10,12,250,22,135,9,2,14,6,29,29,35,102, 32,111,114,32,114,101,108,97,116,105,118,101,32,112,97,116,104,32,111,114,32, -115,116,114,105,110,103,23,198,2,28,28,248,22,164,13,23,195,2,91,159,38, -11,90,161,38,35,11,248,22,163,13,23,198,2,249,22,165,8,194,68,114,101, -108,97,116,105,118,101,11,27,248,22,177,7,6,4,4,80,65,84,72,251,2, +115,116,114,105,110,103,23,198,2,28,28,248,22,166,13,23,195,2,91,159,38, +11,90,161,38,35,11,248,22,165,13,23,198,2,249,22,167,8,194,68,114,101, +108,97,116,105,118,101,11,27,248,22,179,7,6,4,4,80,65,84,72,251,2, 50,23,199,1,23,200,1,23,201,1,28,23,197,2,27,249,80,159,43,47,37, -23,200,1,9,28,249,22,165,8,247,22,179,7,2,20,249,22,65,248,22,151, -13,5,1,46,23,195,1,192,9,27,248,22,167,13,23,196,1,28,248,22,154, +23,200,1,9,28,249,22,167,8,247,22,181,7,2,20,249,22,67,248,22,153, +13,5,1,46,23,195,1,192,9,27,248,22,169,13,23,196,1,28,248,22,156, 13,193,250,2,51,198,199,195,11,250,80,159,38,48,36,196,197,11,250,80,159, -38,48,36,196,11,11,87,94,249,22,151,6,247,22,187,4,195,248,22,177,5, -249,22,172,3,35,249,22,156,3,197,198,27,28,23,197,2,87,95,23,196,1, -23,195,1,23,197,1,87,94,23,197,1,27,248,22,181,13,2,19,27,249,80, -159,40,48,36,23,196,1,11,27,27,248,22,175,3,23,200,1,28,192,192,35, -27,27,248,22,175,3,23,202,1,28,192,192,35,249,22,154,5,23,197,1,83, +38,48,36,196,11,11,87,94,249,22,153,6,247,22,189,4,195,248,22,179,5, +249,22,174,3,35,249,22,158,3,197,198,27,28,23,197,2,87,95,23,196,1, +23,195,1,23,197,1,87,94,23,197,1,27,248,22,183,13,2,19,27,249,80, +159,40,48,36,23,196,1,11,27,27,248,22,177,3,23,200,1,28,192,192,35, +27,27,248,22,177,3,23,202,1,28,192,192,35,249,22,156,5,23,197,1,83, 158,39,20,97,95,89,162,8,44,35,47,9,224,3,2,33,57,23,195,1,23, -196,1,27,248,22,139,5,23,195,1,248,80,159,38,53,36,193,159,35,20,103, +196,1,27,248,22,141,5,23,195,1,248,80,159,38,53,36,193,159,35,20,103, 159,35,16,1,11,16,0,83,158,41,20,100,144,67,35,37,117,116,105,108,115, 29,11,11,11,11,11,10,42,80,158,35,35,20,103,159,37,16,17,2,1,2, 2,2,3,2,4,2,5,2,6,2,7,2,8,2,9,2,10,2,11,2,12, @@ -317,7 +317,7 @@ 16,0,16,0,35,35,16,0,16,17,83,158,35,16,2,89,162,43,36,48,2, 18,223,0,33,28,80,159,35,53,36,83,158,35,16,2,89,162,8,44,36,55, 2,18,223,0,33,29,80,159,35,52,36,83,158,35,16,2,32,0,89,162,43, -36,44,2,1,222,33,30,80,159,35,35,36,83,158,35,16,2,249,22,162,6, +36,44,2,1,222,33,30,80,159,35,35,36,83,158,35,16,2,249,22,164,6, 7,92,7,92,80,159,35,36,36,83,158,35,16,2,89,162,43,36,53,2,3, 223,0,33,31,80,159,35,37,36,83,158,35,16,2,32,0,89,162,8,44,37, 49,2,4,222,33,32,80,159,35,38,36,83,158,35,16,2,32,0,89,162,8, @@ -330,8 +330,8 @@ 16,2,32,0,89,162,43,36,43,2,11,222,33,43,80,159,35,45,36,83,158, 35,16,2,83,158,38,20,96,96,2,12,89,162,43,35,43,9,223,0,33,44, 89,162,43,36,44,9,223,0,33,45,89,162,43,37,54,9,223,0,33,46,80, -159,35,46,36,83,158,35,16,2,27,248,22,188,13,248,22,171,7,27,28,249, -22,165,8,247,22,179,7,2,20,6,1,1,59,6,1,1,58,250,22,144,7, +159,35,46,36,83,158,35,16,2,27,248,22,190,13,248,22,173,7,27,28,249, +22,167,8,247,22,181,7,2,20,6,1,1,59,6,1,1,58,250,22,146,7, 6,14,14,40,91,94,126,97,93,42,41,126,97,40,46,42,41,23,196,2,23, 196,1,89,162,8,44,37,47,2,13,223,0,33,49,80,159,35,47,36,83,158, 35,16,2,83,158,38,20,96,96,2,14,89,162,8,44,38,53,9,223,0,33, @@ -342,12 +342,12 @@ EVAL_ONE_SIZED_STR((char *)expr, 5016); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,48,46,52,8,0,0,0,1,0,0,6,0,19,0, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,48,46,53,8,0,0,0,1,0,0,6,0,19,0, 34,0,48,0,62,0,76,0,115,0,0,0,6,1,0,0,65,113,117,111,116, 101,29,94,2,1,67,35,37,117,116,105,108,115,11,29,94,2,1,69,35,37, 110,101,116,119,111,114,107,11,29,94,2,1,68,35,37,112,97,114,97,109,122, 11,29,94,2,1,68,35,37,101,120,112,111,98,115,11,29,94,2,1,68,35, -37,107,101,114,110,101,108,11,97,35,11,8,135,234,98,159,2,2,35,35,159, +37,107,101,114,110,101,108,11,97,35,11,8,165,241,98,159,2,2,35,35,159, 2,3,35,35,159,2,4,35,35,159,2,5,35,35,159,2,6,35,35,159,2, 6,35,35,16,0,159,35,20,103,159,35,16,1,11,16,0,83,158,41,20,100, 144,69,35,37,98,117,105,108,116,105,110,29,11,11,11,11,11,18,96,11,42, @@ -360,12 +360,12 @@ EVAL_ONE_SIZED_STR((char *)expr, 299); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,48,46,52,52,0,0,0,1,0,0,11,0,38,0, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,48,46,53,52,0,0,0,1,0,0,11,0,38,0, 44,0,57,0,71,0,93,0,119,0,131,0,149,0,169,0,181,0,197,0,220, 0,0,1,5,1,10,1,15,1,24,1,29,1,60,1,64,1,72,1,81,1, 89,1,192,1,237,1,1,2,30,2,61,2,117,2,127,2,174,2,184,2,191, 2,78,4,91,4,110,4,229,4,241,4,137,5,151,5,17,6,23,6,37,6, -64,6,149,6,151,6,217,6,172,12,231,12,9,13,0,0,145,15,0,0,70, +64,6,149,6,151,6,217,6,172,12,231,12,9,13,0,0,146,15,0,0,70, 100,108,108,45,115,117,102,102,105,120,1,25,100,101,102,97,117,108,116,45,108, 111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,65,113,117,111,116, 101,29,94,2,3,67,35,37,117,116,105,108,115,11,29,94,2,3,68,35,37, @@ -382,149 +382,149 @@ 110,97,116,105,118,101,64,108,111,111,112,1,29,115,116,97,110,100,97,114,100, 45,109,111,100,117,108,101,45,110,97,109,101,45,114,101,115,111,108,118,101,114, 63,108,105,98,67,105,103,110,111,114,101,100,249,22,14,195,80,159,37,45,37, -249,80,159,37,48,36,195,10,27,28,23,195,2,28,249,22,165,8,23,197,2, -80,158,38,46,87,94,23,195,1,80,158,36,47,27,248,22,174,4,23,197,2, -28,248,22,142,13,23,194,2,91,159,38,11,90,161,38,35,11,248,22,163,13, +249,80,159,37,48,36,195,10,27,28,23,195,2,28,249,22,167,8,23,197,2, +80,158,38,46,87,94,23,195,1,80,158,36,47,27,248,22,176,4,23,197,2, +28,248,22,144,13,23,194,2,91,159,38,11,90,161,38,35,11,248,22,165,13, 23,197,1,87,95,83,160,37,11,80,158,40,46,198,83,160,37,11,80,158,40, -47,192,192,11,11,28,23,193,2,192,87,94,23,193,1,27,247,22,128,5,28, -192,192,247,22,182,13,20,14,159,80,158,35,39,250,80,158,38,40,249,22,27, -11,80,158,40,39,22,128,5,28,248,22,142,13,23,198,2,23,197,1,87,94, -23,197,1,247,22,182,13,247,194,250,22,160,13,23,197,1,23,199,1,249,80, -158,42,38,23,198,1,2,17,252,22,160,13,23,199,1,23,201,1,2,18,247, -22,180,7,249,80,158,44,38,23,200,1,80,159,44,35,37,87,94,23,194,1, -27,250,22,177,13,196,11,32,0,89,162,8,44,35,40,9,222,11,28,192,249, -22,65,195,194,11,27,252,22,160,13,23,200,1,23,202,1,2,18,247,22,180, -7,249,80,158,45,38,23,201,1,80,159,45,35,37,27,250,22,177,13,196,11, -32,0,89,162,8,44,35,40,9,222,11,28,192,249,22,65,195,194,11,249,247, -22,187,13,248,22,66,195,195,27,250,22,160,13,23,198,1,23,200,1,249,80, -158,43,38,23,199,1,2,17,27,250,22,177,13,196,11,32,0,89,162,8,44, -35,40,9,222,11,28,192,249,22,65,195,194,11,249,247,22,190,4,248,22,66, -195,195,249,247,22,190,4,194,195,87,94,28,248,80,158,36,37,23,195,2,12, -250,22,133,9,77,108,111,97,100,47,117,115,101,45,99,111,109,112,105,108,101, +47,192,192,11,11,28,23,193,2,192,87,94,23,193,1,27,247,22,130,5,28, +192,192,247,22,184,13,20,14,159,80,158,35,39,250,80,158,38,40,249,22,27, +11,80,158,40,39,22,130,5,28,248,22,144,13,23,198,2,23,197,1,87,94, +23,197,1,247,22,184,13,247,194,250,22,162,13,23,197,1,23,199,1,249,80, +158,42,38,23,198,1,2,17,252,22,162,13,23,199,1,23,201,1,2,18,247, +22,182,7,249,80,158,44,38,23,200,1,80,159,44,35,37,87,94,23,194,1, +27,250,22,179,13,196,11,32,0,89,162,8,44,35,40,9,222,11,28,192,249, +22,67,195,194,11,27,252,22,162,13,23,200,1,23,202,1,2,18,247,22,182, +7,249,80,158,45,38,23,201,1,80,159,45,35,37,27,250,22,179,13,196,11, +32,0,89,162,8,44,35,40,9,222,11,28,192,249,22,67,195,194,11,249,247, +22,189,13,248,22,68,195,195,27,250,22,162,13,23,198,1,23,200,1,249,80, +158,43,38,23,199,1,2,17,27,250,22,179,13,196,11,32,0,89,162,8,44, +35,40,9,222,11,28,192,249,22,67,195,194,11,249,247,22,128,5,248,22,68, +195,195,249,247,22,128,5,194,195,87,94,28,248,80,158,36,37,23,195,2,12, +250,22,135,9,77,108,111,97,100,47,117,115,101,45,99,111,109,112,105,108,101, 100,6,25,25,112,97,116,104,32,111,114,32,118,97,108,105,100,45,112,97,116, 104,32,115,116,114,105,110,103,23,197,2,91,159,41,11,90,161,36,35,11,28, -248,22,166,13,23,201,2,23,200,1,27,247,22,128,5,28,23,193,2,249,22, -167,13,23,203,1,23,195,1,200,90,161,38,36,11,248,22,163,13,23,194,2, -87,94,23,196,1,90,161,36,39,11,28,249,22,165,8,23,196,2,68,114,101, +248,22,168,13,23,201,2,23,200,1,27,247,22,130,5,28,23,193,2,249,22, +169,13,23,203,1,23,195,1,200,90,161,38,36,11,248,22,165,13,23,194,2, +87,94,23,196,1,90,161,36,39,11,28,249,22,167,8,23,196,2,68,114,101, 108,97,116,105,118,101,87,94,23,194,1,2,16,23,194,1,90,161,36,40,11, -247,22,184,13,27,89,162,43,36,49,62,122,111,225,7,5,3,33,27,27,89, +247,22,186,13,27,89,162,43,36,49,62,122,111,225,7,5,3,33,27,27,89, 162,43,36,51,9,225,8,6,4,33,28,27,249,22,5,89,162,8,44,36,46, 9,223,5,33,29,23,203,2,27,28,23,195,1,27,249,22,5,89,162,8,44, 36,52,9,225,13,11,9,33,30,23,205,2,27,28,23,196,2,11,193,28,192, -192,28,193,28,23,196,2,28,249,22,168,3,248,22,67,196,248,22,67,23,199, +192,28,193,28,23,196,2,28,249,22,170,3,248,22,69,196,248,22,69,23,199, 2,193,11,11,11,11,28,23,193,2,249,80,159,47,54,36,202,89,162,43,35, 45,9,224,14,2,33,31,87,94,23,193,1,27,28,23,197,1,27,249,22,5, 83,158,39,20,97,94,89,162,8,44,36,50,9,225,14,12,10,33,32,23,203, -1,23,206,1,27,28,196,11,193,28,192,192,28,193,28,196,28,249,22,168,3, -248,22,67,196,248,22,67,199,193,11,11,11,11,28,192,249,80,159,48,54,36, +1,23,206,1,27,28,196,11,193,28,192,192,28,193,28,196,28,249,22,170,3, +248,22,69,196,248,22,69,199,193,11,11,11,11,28,192,249,80,159,48,54,36, 203,89,162,43,35,45,9,224,15,2,33,33,249,80,159,48,54,36,203,89,162, 43,35,44,9,224,15,7,33,34,32,36,89,162,8,44,36,54,2,19,222,33, 38,0,17,35,114,120,34,94,40,46,42,63,41,47,40,46,42,41,36,34,27, -249,22,128,14,2,37,23,196,2,28,23,193,2,87,94,23,194,1,249,22,65, -248,22,90,23,196,2,27,248,22,99,23,197,1,27,249,22,128,14,2,37,23, -196,2,28,23,193,2,87,94,23,194,1,249,22,65,248,22,90,23,196,2,27, -248,22,99,23,197,1,27,249,22,128,14,2,37,23,196,2,28,23,193,2,87, -94,23,194,1,249,22,65,248,22,90,23,196,2,248,2,36,248,22,99,23,197, -1,248,22,75,194,248,22,75,194,248,22,75,194,32,39,89,162,43,36,54,2, -19,222,33,40,28,248,22,73,248,22,67,23,195,2,249,22,7,9,248,22,66, -195,91,159,37,11,90,161,37,35,11,27,248,22,67,23,197,2,28,248,22,73, -248,22,67,23,195,2,249,22,7,9,248,22,66,195,91,159,37,11,90,161,37, -35,11,27,248,22,67,23,197,2,28,248,22,73,248,22,67,23,195,2,249,22, -7,9,248,22,66,195,91,159,37,11,90,161,37,35,11,248,2,39,248,22,67, -23,197,2,249,22,7,249,22,65,248,22,66,23,200,1,23,197,1,195,249,22, -7,249,22,65,248,22,66,23,200,1,23,197,1,195,249,22,7,249,22,65,248, -22,66,23,200,1,23,197,1,195,27,248,2,36,23,195,1,28,194,192,248,2, -39,193,87,95,28,248,22,172,4,195,12,250,22,133,9,2,20,6,20,20,114, +249,22,130,14,2,37,23,196,2,28,23,193,2,87,94,23,194,1,249,22,67, +248,22,92,23,196,2,27,248,22,101,23,197,1,27,249,22,130,14,2,37,23, +196,2,28,23,193,2,87,94,23,194,1,249,22,67,248,22,92,23,196,2,27, +248,22,101,23,197,1,27,249,22,130,14,2,37,23,196,2,28,23,193,2,87, +94,23,194,1,249,22,67,248,22,92,23,196,2,248,2,36,248,22,101,23,197, +1,248,22,77,194,248,22,77,194,248,22,77,194,32,39,89,162,43,36,54,2, +19,222,33,40,28,248,22,75,248,22,69,23,195,2,249,22,7,9,248,22,68, +195,91,159,37,11,90,161,37,35,11,27,248,22,69,23,197,2,28,248,22,75, +248,22,69,23,195,2,249,22,7,9,248,22,68,195,91,159,37,11,90,161,37, +35,11,27,248,22,69,23,197,2,28,248,22,75,248,22,69,23,195,2,249,22, +7,9,248,22,68,195,91,159,37,11,90,161,37,35,11,248,2,39,248,22,69, +23,197,2,249,22,7,249,22,67,248,22,68,23,200,1,23,197,1,195,249,22, +7,249,22,67,248,22,68,23,200,1,23,197,1,195,249,22,7,249,22,67,248, +22,68,23,200,1,23,197,1,195,27,248,2,36,23,195,1,28,194,192,248,2, +39,193,87,95,28,248,22,174,4,195,12,250,22,135,9,2,20,6,20,20,114, 101,115,111,108,118,101,100,45,109,111,100,117,108,101,45,112,97,116,104,197,28, -24,193,2,248,24,194,1,195,87,94,23,193,1,12,27,27,250,22,139,2,80, -159,41,42,37,248,22,148,14,247,22,189,11,11,28,23,193,2,192,87,94,23, -193,1,27,247,22,123,87,94,250,22,137,2,80,159,42,42,37,248,22,148,14, -247,22,189,11,195,192,250,22,137,2,195,198,66,97,116,116,97,99,104,251,211, -197,198,199,10,28,192,250,22,132,9,11,196,195,248,22,130,9,194,28,249,22, -166,6,194,6,1,1,46,2,16,28,249,22,166,6,194,6,2,2,46,46,62, -117,112,192,28,249,22,167,8,248,22,67,23,200,2,23,197,1,28,249,22,165, -8,248,22,66,23,200,2,23,196,1,251,22,130,9,2,20,6,26,26,99,121, +24,193,2,248,24,194,1,195,87,94,23,193,1,12,27,27,250,22,141,2,80, +159,41,42,37,248,22,150,14,247,22,191,11,11,28,23,193,2,192,87,94,23, +193,1,27,247,22,125,87,94,250,22,139,2,80,159,42,42,37,248,22,150,14, +247,22,191,11,195,192,250,22,139,2,195,198,66,97,116,116,97,99,104,251,211, +197,198,199,10,28,192,250,22,134,9,11,196,195,248,22,132,9,194,28,249,22, +168,6,194,6,1,1,46,2,16,28,249,22,168,6,194,6,2,2,46,46,62, +117,112,192,28,249,22,169,8,248,22,69,23,200,2,23,197,1,28,249,22,167, +8,248,22,68,23,200,2,23,196,1,251,22,132,9,2,20,6,26,26,99,121, 99,108,101,32,105,110,32,108,111,97,100,105,110,103,32,97,116,32,126,101,58, -32,126,101,23,200,1,249,22,2,22,67,248,22,80,249,22,65,23,206,1,23, -202,1,12,12,247,192,20,14,159,80,159,39,44,37,249,22,65,248,22,148,14, -247,22,189,11,23,197,1,20,14,159,80,158,39,39,250,80,158,42,40,249,22, -27,11,80,158,44,39,22,154,4,23,196,1,249,247,22,191,4,23,198,1,248, -22,54,248,22,146,13,23,198,1,87,94,28,28,248,22,142,13,23,197,2,10, -248,22,178,4,23,197,2,12,28,23,198,2,250,22,132,9,11,6,15,15,98, -97,100,32,109,111,100,117,108,101,32,112,97,116,104,23,201,2,250,22,133,9, +32,126,101,23,200,1,249,22,2,22,69,248,22,82,249,22,67,23,206,1,23, +202,1,12,12,247,192,20,14,159,80,159,39,44,37,249,22,67,248,22,150,14, +247,22,191,11,23,197,1,20,14,159,80,158,39,39,250,80,158,42,40,249,22, +27,11,80,158,44,39,22,156,4,23,196,1,249,247,22,129,5,23,198,1,248, +22,55,248,22,148,13,23,198,1,87,94,28,28,248,22,144,13,23,197,2,10, +248,22,180,4,23,197,2,12,28,23,198,2,250,22,134,9,11,6,15,15,98, +97,100,32,109,111,100,117,108,101,32,112,97,116,104,23,201,2,250,22,135,9, 2,20,6,19,19,109,111,100,117,108,101,45,112,97,116,104,32,111,114,32,112, -97,116,104,23,199,2,28,28,248,22,63,23,197,2,249,22,165,8,248,22,66, -23,199,2,2,3,11,248,22,173,4,248,22,90,197,28,28,248,22,63,23,197, -2,249,22,165,8,248,22,66,23,199,2,66,112,108,97,110,101,116,11,87,94, +97,116,104,23,199,2,28,28,248,22,65,23,197,2,249,22,167,8,248,22,68, +23,199,2,2,3,11,248,22,175,4,248,22,92,197,28,28,248,22,65,23,197, +2,249,22,167,8,248,22,68,23,199,2,66,112,108,97,110,101,116,11,87,94, 28,207,12,20,14,159,80,158,37,39,250,80,158,40,40,249,22,27,11,80,158, -42,39,22,189,11,23,197,1,90,161,36,35,10,249,22,155,4,21,94,2,21, +42,39,22,191,11,23,197,1,90,161,36,35,10,249,22,157,4,21,94,2,21, 6,18,18,112,108,97,110,101,116,47,114,101,115,111,108,118,101,114,46,115,115, 1,27,112,108,97,110,101,116,45,109,111,100,117,108,101,45,110,97,109,101,45, 114,101,115,111,108,118,101,114,12,251,211,199,200,201,202,87,94,23,193,1,27, 89,162,8,44,36,45,79,115,104,111,119,45,99,111,108,108,101,99,116,105,111, -110,45,101,114,114,223,6,33,44,27,28,248,22,53,23,199,2,27,250,22,139, -2,80,159,43,43,37,249,22,65,23,204,2,247,22,183,13,11,28,23,193,2, +110,45,101,114,114,223,6,33,44,27,28,248,22,53,23,199,2,27,250,22,141, +2,80,159,43,43,37,249,22,67,23,204,2,247,22,185,13,11,28,23,193,2, 192,87,94,23,193,1,91,159,37,11,90,161,37,35,11,249,80,159,44,48,36, -248,22,56,23,204,2,11,27,251,80,158,47,50,2,20,23,202,1,28,248,22, -73,23,199,2,23,199,2,248,22,66,23,199,2,28,248,22,73,23,199,2,9, -248,22,67,23,199,2,249,22,160,13,23,195,1,28,248,22,73,23,197,1,87, -94,23,197,1,6,7,7,109,97,105,110,46,115,115,249,22,183,6,23,199,1, -6,3,3,46,115,115,28,248,22,160,6,23,199,2,87,94,23,194,1,27,248, -80,159,41,55,36,23,201,2,27,250,22,139,2,80,159,44,43,37,249,22,65, +248,22,58,23,204,2,11,27,251,80,158,47,50,2,20,23,202,1,28,248,22, +75,23,199,2,23,199,2,248,22,68,23,199,2,28,248,22,75,23,199,2,9, +248,22,69,23,199,2,249,22,162,13,23,195,1,28,248,22,75,23,197,1,87, +94,23,197,1,6,7,7,109,97,105,110,46,115,115,249,22,185,6,23,199,1, +6,3,3,46,115,115,28,248,22,162,6,23,199,2,87,94,23,194,1,27,248, +80,159,41,55,36,23,201,2,27,250,22,141,2,80,159,44,43,37,249,22,67, 23,205,2,23,199,2,11,28,23,193,2,192,87,94,23,193,1,91,159,37,11, -90,161,37,35,11,249,80,159,45,48,36,23,204,2,11,250,22,1,22,160,13, -23,199,1,249,22,79,249,22,2,32,0,89,162,8,44,36,43,9,222,33,45, -23,200,1,248,22,75,23,200,1,28,248,22,142,13,23,199,2,87,94,23,194, -1,28,248,22,165,13,23,199,2,23,198,2,248,22,75,6,26,26,32,40,97, +90,161,37,35,11,249,80,159,45,48,36,23,204,2,11,250,22,1,22,162,13, +23,199,1,249,22,81,249,22,2,32,0,89,162,8,44,36,43,9,222,33,45, +23,200,1,248,22,77,23,200,1,28,248,22,144,13,23,199,2,87,94,23,194, +1,28,248,22,167,13,23,199,2,23,198,2,248,22,77,6,26,26,32,40,97, 32,112,97,116,104,32,109,117,115,116,32,98,101,32,97,98,115,111,108,117,116, -101,41,28,249,22,165,8,248,22,66,23,201,2,2,21,27,250,22,139,2,80, -159,43,43,37,249,22,65,23,204,2,247,22,183,13,11,28,23,193,2,192,87, +101,41,28,249,22,167,8,248,22,68,23,201,2,2,21,27,250,22,141,2,80, +159,43,43,37,249,22,67,23,204,2,247,22,185,13,11,28,23,193,2,192,87, 94,23,193,1,91,159,38,11,90,161,37,35,11,249,80,159,45,48,36,248,22, -90,23,205,2,11,90,161,36,37,11,28,248,22,73,248,22,92,23,204,2,28, -248,22,73,23,194,2,249,22,130,14,0,8,35,114,120,34,91,46,93,34,23, -196,2,11,10,27,27,28,23,197,2,249,22,79,28,248,22,73,248,22,92,23, -208,2,21,93,6,5,5,109,122,108,105,98,249,22,1,22,79,249,22,2,80, -159,51,56,36,248,22,92,23,211,2,23,197,2,28,248,22,73,23,196,2,248, -22,75,23,197,2,23,195,2,251,80,158,49,50,2,20,23,204,1,248,22,66, -23,198,2,248,22,67,23,198,1,249,22,160,13,23,195,1,28,23,198,1,87, -94,23,196,1,23,197,1,28,248,22,73,23,197,1,87,94,23,197,1,6,7, -7,109,97,105,110,46,115,115,28,249,22,130,14,0,8,35,114,120,34,91,46, -93,34,23,199,2,23,197,1,249,22,183,6,23,199,1,6,3,3,46,115,115, -28,249,22,165,8,248,22,66,23,201,2,64,102,105,108,101,249,22,167,13,248, -22,171,13,248,22,90,23,202,2,248,80,159,42,55,36,23,202,2,12,87,94, -28,28,248,22,142,13,23,194,2,10,248,22,182,7,23,194,2,87,94,23,200, -1,12,28,23,200,2,250,22,132,9,67,114,101,113,117,105,114,101,249,22,144, +92,23,205,2,11,90,161,36,37,11,28,248,22,75,248,22,94,23,204,2,28, +248,22,75,23,194,2,249,22,132,14,0,8,35,114,120,34,91,46,93,34,23, +196,2,11,10,27,27,28,23,197,2,249,22,81,28,248,22,75,248,22,94,23, +208,2,21,93,6,5,5,109,122,108,105,98,249,22,1,22,81,249,22,2,80, +159,51,56,36,248,22,94,23,211,2,23,197,2,28,248,22,75,23,196,2,248, +22,77,23,197,2,23,195,2,251,80,158,49,50,2,20,23,204,1,248,22,68, +23,198,2,248,22,69,23,198,1,249,22,162,13,23,195,1,28,23,198,1,87, +94,23,196,1,23,197,1,28,248,22,75,23,197,1,87,94,23,197,1,6,7, +7,109,97,105,110,46,115,115,28,249,22,132,14,0,8,35,114,120,34,91,46, +93,34,23,199,2,23,197,1,249,22,185,6,23,199,1,6,3,3,46,115,115, +28,249,22,167,8,248,22,68,23,201,2,64,102,105,108,101,249,22,169,13,248, +22,173,13,248,22,92,23,202,2,248,80,159,42,55,36,23,202,2,12,87,94, +28,28,248,22,144,13,23,194,2,10,248,22,184,7,23,194,2,87,94,23,200, +1,12,28,23,200,2,250,22,134,9,67,114,101,113,117,105,114,101,249,22,146, 7,6,17,17,98,97,100,32,109,111,100,117,108,101,32,112,97,116,104,126,97, -28,23,198,2,248,22,66,23,199,2,6,0,0,23,203,1,87,94,23,200,1, -250,22,133,9,2,20,249,22,144,7,6,13,13,109,111,100,117,108,101,32,112, -97,116,104,126,97,28,23,198,2,248,22,66,23,199,2,6,0,0,23,201,2, -27,28,248,22,182,7,23,195,2,249,22,187,7,23,196,2,35,249,22,169,13, -248,22,170,13,23,197,2,11,27,28,248,22,182,7,23,196,2,249,22,187,7, +28,23,198,2,248,22,68,23,199,2,6,0,0,23,203,1,87,94,23,200,1, +250,22,135,9,2,20,249,22,146,7,6,13,13,109,111,100,117,108,101,32,112, +97,116,104,126,97,28,23,198,2,248,22,68,23,199,2,6,0,0,23,201,2, +27,28,248,22,184,7,23,195,2,249,22,189,7,23,196,2,35,249,22,171,13, +248,22,172,13,23,197,2,11,27,28,248,22,184,7,23,196,2,249,22,189,7, 23,197,2,36,248,80,158,42,51,23,195,2,91,159,38,11,90,161,38,35,11, -28,248,22,182,7,23,199,2,250,22,7,2,22,249,22,187,7,23,203,2,37, -2,22,248,22,163,13,23,198,2,87,95,23,195,1,23,193,1,27,28,248,22, -182,7,23,200,2,249,22,187,7,23,201,2,38,249,80,158,47,52,23,197,2, -5,0,27,28,248,22,182,7,23,201,2,249,22,187,7,23,202,2,39,248,22, -173,4,23,200,2,27,27,250,22,139,2,80,159,51,42,37,248,22,148,14,247, -22,189,11,11,28,23,193,2,192,87,94,23,193,1,27,247,22,123,87,94,250, -22,137,2,80,159,52,42,37,248,22,148,14,247,22,189,11,195,192,87,95,28, -23,209,1,27,250,22,139,2,23,197,2,197,11,28,23,193,1,12,87,95,27, +28,248,22,184,7,23,199,2,250,22,7,2,22,249,22,189,7,23,203,2,37, +2,22,248,22,165,13,23,198,2,87,95,23,195,1,23,193,1,27,28,248,22, +184,7,23,200,2,249,22,189,7,23,201,2,38,249,80,158,47,52,23,197,2, +5,0,27,28,248,22,184,7,23,201,2,249,22,189,7,23,202,2,39,248,22, +175,4,23,200,2,27,27,250,22,141,2,80,159,51,42,37,248,22,150,14,247, +22,191,11,11,28,23,193,2,192,87,94,23,193,1,27,247,22,125,87,94,250, +22,139,2,80,159,52,42,37,248,22,150,14,247,22,191,11,195,192,87,95,28, +23,209,1,27,250,22,141,2,23,197,2,197,11,28,23,193,1,12,87,95,27, 27,28,248,22,17,80,159,51,45,37,80,159,50,45,37,247,22,19,250,22,25, -248,22,23,23,197,2,80,159,53,44,37,23,196,1,27,248,22,148,14,247,22, -189,11,249,22,3,83,158,39,20,97,94,89,162,8,44,36,54,9,226,12,11, +248,22,23,23,197,2,80,159,53,44,37,23,196,1,27,248,22,150,14,247,22, +191,11,249,22,3,83,158,39,20,97,94,89,162,8,44,36,54,9,226,12,11, 2,3,33,46,23,195,1,23,196,1,248,28,248,22,17,80,159,50,45,37,32, 0,89,162,43,36,41,9,222,33,47,80,159,49,57,36,89,162,43,35,50,9, -227,14,9,8,4,3,33,48,250,22,137,2,23,197,1,197,10,12,28,28,248, -22,182,7,23,202,1,11,27,248,22,160,6,23,208,2,28,192,192,27,248,22, -53,23,209,2,28,192,192,28,248,22,63,23,209,2,249,22,165,8,248,22,66, -23,211,2,2,21,11,250,22,137,2,80,159,50,43,37,28,248,22,160,6,23, -210,2,249,22,65,23,211,1,248,80,159,53,55,36,23,213,1,87,94,23,210, -1,249,22,65,23,211,1,247,22,183,13,252,22,184,7,23,208,1,23,207,1, +227,14,9,8,4,3,33,48,250,22,139,2,23,197,1,197,10,12,28,28,248, +22,184,7,23,202,1,11,27,248,22,162,6,23,208,2,28,192,192,27,248,22, +53,23,209,2,28,192,192,28,248,22,65,23,209,2,249,22,167,8,248,22,68, +23,211,2,2,21,11,250,22,139,2,80,159,50,43,37,28,248,22,162,6,23, +210,2,249,22,67,23,211,1,248,80,159,53,55,36,23,213,1,87,94,23,210, +1,249,22,67,23,211,1,247,22,185,13,252,22,186,7,23,208,1,23,207,1, 23,205,1,23,203,1,201,12,193,91,159,37,10,90,161,36,35,10,11,90,161, 36,36,10,83,158,38,20,96,96,2,20,89,162,8,44,36,50,9,224,2,0, 33,42,89,162,43,38,48,9,223,1,33,43,89,162,43,39,8,30,9,225,2, -3,0,33,49,208,87,95,248,22,153,4,248,80,159,37,49,36,247,22,189,11, -248,22,191,4,80,159,36,36,36,248,22,180,12,80,159,36,41,36,159,35,20, +3,0,33,49,208,87,95,248,22,155,4,248,80,159,37,49,36,247,22,191,11, +248,22,129,5,80,159,36,36,36,248,22,182,12,80,159,36,41,36,159,35,20, 103,159,35,16,1,11,16,0,83,158,41,20,100,144,66,35,37,98,111,111,116, 29,11,11,11,11,11,10,36,80,158,35,35,20,103,159,39,16,19,2,1,2, 2,30,2,4,72,112,97,116,104,45,115,116,114,105,110,103,63,10,30,2,4, @@ -543,18 +543,18 @@ 83,158,35,16,2,89,162,43,36,44,9,223,0,33,24,80,159,35,56,36,83, 158,35,16,2,89,162,43,36,48,67,103,101,116,45,100,105,114,223,0,33,25, 80,159,35,55,36,83,158,35,16,2,89,162,43,37,48,68,119,105,116,104,45, -100,105,114,223,0,33,26,80,159,35,54,36,83,158,35,16,2,248,22,179,7, +100,105,114,223,0,33,26,80,159,35,54,36,83,158,35,16,2,248,22,181,7, 69,115,111,45,115,117,102,102,105,120,80,159,35,35,36,83,158,35,16,2,89, 162,43,37,59,2,2,223,0,33,35,80,159,35,36,36,83,158,35,16,2,32, 0,89,162,8,44,36,41,2,6,222,192,80,159,35,41,36,83,158,35,16,2, -247,22,126,80,159,35,42,36,83,158,35,16,2,247,22,125,80,159,35,43,36, -83,158,35,16,2,247,22,61,80,159,35,44,36,83,158,35,16,2,248,22,18, -74,109,111,100,117,108,101,45,108,111,97,100,105,110,103,80,159,35,45,36,83, -158,35,16,2,11,80,158,35,46,83,158,35,16,2,11,80,158,35,47,83,158, -35,16,2,32,0,89,162,43,37,44,2,13,222,33,41,80,159,35,48,36,83, -158,35,16,2,89,162,8,44,36,44,2,14,223,0,33,50,80,159,35,49,36, -83,158,35,16,2,89,162,43,35,43,2,15,223,0,33,51,80,159,35,53,36, -95,29,94,2,3,68,35,37,107,101,114,110,101,108,11,29,94,2,3,69,35, -37,109,105,110,45,115,116,120,11,2,4,9,9,9,35,0}; - EVAL_ONE_SIZED_STR((char *)expr, 4110); +247,22,128,2,80,159,35,42,36,83,158,35,16,2,247,22,127,80,159,35,43, +36,83,158,35,16,2,247,22,63,80,159,35,44,36,83,158,35,16,2,248,22, +18,74,109,111,100,117,108,101,45,108,111,97,100,105,110,103,80,159,35,45,36, +83,158,35,16,2,11,80,158,35,46,83,158,35,16,2,11,80,158,35,47,83, +158,35,16,2,32,0,89,162,43,37,44,2,13,222,33,41,80,159,35,48,36, +83,158,35,16,2,89,162,8,44,36,44,2,14,223,0,33,50,80,159,35,49, +36,83,158,35,16,2,89,162,43,35,43,2,15,223,0,33,51,80,159,35,53, +36,95,29,94,2,3,68,35,37,107,101,114,110,101,108,11,29,94,2,3,69, +35,37,109,105,110,45,115,116,120,11,2,4,9,9,9,35,0}; + EVAL_ONE_SIZED_STR((char *)expr, 4111); } diff --git a/src/mzscheme/src/schminc.h b/src/mzscheme/src/schminc.h index 526b7f346f..8dfc10b4fd 100644 --- a/src/mzscheme/src/schminc.h +++ b/src/mzscheme/src/schminc.h @@ -13,7 +13,7 @@ #define USE_COMPILED_STARTUP 1 -#define EXPECTED_PRIM_COUNT 953 +#define EXPECTED_PRIM_COUNT 955 #ifdef MZSCHEME_SOMETHING_OMITTED # undef USE_COMPILED_STARTUP diff --git a/src/mzscheme/src/schvers.h b/src/mzscheme/src/schvers.h index 8de35328ca..e5db51b1b0 100644 --- a/src/mzscheme/src/schvers.h +++ b/src/mzscheme/src/schvers.h @@ -13,12 +13,12 @@ consistently.) */ -#define MZSCHEME_VERSION "4.2.0.4" +#define MZSCHEME_VERSION "4.2.0.5" #define MZSCHEME_VERSION_X 4 #define MZSCHEME_VERSION_Y 2 #define MZSCHEME_VERSION_Z 0 -#define MZSCHEME_VERSION_W 4 +#define MZSCHEME_VERSION_W 5 #define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y) #define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W) diff --git a/src/mzscheme/src/symbol.c b/src/mzscheme/src/symbol.c index c6c5885562..84ce4c3c26 100644 --- a/src/mzscheme/src/symbol.c +++ b/src/mzscheme/src/symbol.c @@ -69,8 +69,10 @@ void scheme_set_case_sensitive(int v) { scheme_case_sensitive = v; } /* locals */ static Scheme_Object *symbol_p_prim (int argc, Scheme_Object *argv[]); +static Scheme_Object *symbol_interned_p_prim (int argc, Scheme_Object *argv[]); static Scheme_Object *string_to_symbol_prim (int argc, Scheme_Object *argv[]); static Scheme_Object *string_to_uninterned_symbol_prim (int argc, Scheme_Object *argv[]); +static Scheme_Object *string_to_unreadable_symbol_prim (int argc, Scheme_Object *argv[]); static Scheme_Object *symbol_to_string_prim (int argc, Scheme_Object *argv[]); static Scheme_Object *keyword_p_prim (int argc, Scheme_Object *argv[]); static Scheme_Object *keyword_lt (int argc, Scheme_Object *argv[]); @@ -317,8 +319,12 @@ scheme_init_symbol (Scheme_Env *env) SCHEME_PRIM_PROC_FLAGS(p) |= SCHEME_PRIM_IS_UNARY_INLINED; scheme_add_global_constant("symbol?", p, env); + p = scheme_make_folding_prim(symbol_interned_p_prim, "symbol-interned?", 1, 1, 1); + scheme_add_global_constant("symbol-interned?", p, env); + GLOBAL_IMMED_PRIM("string->symbol", string_to_symbol_prim, 1, 1, env); GLOBAL_IMMED_PRIM("string->uninterned-symbol", string_to_uninterned_symbol_prim, 1, 1, env); + GLOBAL_IMMED_PRIM("string->unreadable-symbol", string_to_unreadable_symbol_prim, 1, 1, env); GLOBAL_IMMED_PRIM("symbol->string", symbol_to_string_prim, 1, 1, env); GLOBAL_FOLDING_PRIM("keyword?", keyword_p_prim, 1, 1, 1, env); GLOBAL_FOLDING_PRIM("keywordsymbol", "string", 0, argc, argv); + + bs = scheme_utf8_encode_to_buffer_len(SCHEME_CHAR_STR_VAL(argv[0]), + SCHEME_CHAR_STRTAG_VAL(argv[0]), + buf, 64, &blen); + + return scheme_intern_exact_parallel_symbol(bs, blen); +} + static Scheme_Object * symbol_to_string_prim (int argc, Scheme_Object *argv[]) {