diff --git a/collects/scribblings/reference/cmdline.scrbl b/collects/scribblings/reference/cmdline.scrbl index 89b63f2153..f325e12513 100644 --- a/collects/scribblings/reference/cmdline.scrbl +++ b/collects/scribblings/reference/cmdline.scrbl @@ -282,7 +282,7 @@ specification is a list of three items: receive the flag. If the handler accepts arbitrarily many arguments, all of the remaining arguments are passed to the handler. A handler procedure's arity must either be a number or an - @scheme[arity-at-least] value (see \MzSecRef{arity}). + @scheme[arity-at-least] value. The return value from the handler is added to a list that is eventually passed to @scheme[finish-proc]. If the handler returns diff --git a/collects/scribblings/reference/eval.scrbl b/collects/scribblings/reference/eval.scrbl index 03b2ff269b..a66e85265c 100644 --- a/collects/scribblings/reference/eval.scrbl +++ b/collects/scribblings/reference/eval.scrbl @@ -9,7 +9,7 @@ A parameter that determines the current @deftech{evaluation handler}. The evaluation handler is a procedure that takes a top-level form and evaluates it, returning the resulting values. The @tech{evaluation handler} is called by @scheme[eval], @scheme[eval-syntax], the default -load handler, and @scheme[read-eval-print-loop] to evaluate a +@tech{load handler}, and @scheme[read-eval-print-loop] to evaluate a top-level form. The handler should evaluate its argument in tail position. @@ -82,13 +82,17 @@ contain a module declaration), or @scheme[#f] for any other load. The default load handler reads forms from the file in @scheme[read-syntax] mode with line-counting enabled for the file -port. It also @scheme[parameterize]s each read to set both +port, unless the path has a @scheme[".zo"] suffix. It also +@scheme[parameterize]s each read to set both @scheme[read-accept-compiled] and @scheme[read-accept-reader] to -@scheme[#t]. After reading a single form, the form is passed to the -current evaluation handler, wrapping the evaluation in a continuation -prompt (see @scheme[call-with-continuation-prompt]) for the default -continuation prompt tag with handler that propagates the abort to the -continuation of the @scheme[load] call. +@scheme[#t]. In addition, if @scheme[load-on-demand-enabled] is +@scheme[#t], then @scheme[read-on-demand-source] is effectively set to +the @tech{cleanse}d, absolute form of @scheme[path] during the +@scheme[read-syntax] call. After reading a single form, the form is +passed to the current evaluation handler, wrapping the evaluation in a +continuation prompt (see @scheme[call-with-continuation-prompt]) for +the default continuation prompt tag with handler that propagates the +abort to the continuation of the @scheme[load] call. If the second argument to the load handler is a symbol, then: @@ -374,3 +378,33 @@ Enforcing constants allows the compiler to inline some variable values, and it allows the native-code just-in-time compiler to generate code that skips certain run-time checks.} + +@defboolparam[compile-allow-set!-undefined allow?]{ + +A parameter that determines how a @scheme[set!] expression is compiled +when it mutates a global variable. If the value of this parameter is a +true value, @scheme[set!] expressions for global variables are +compiled so that the global variable is set even if it was not +previously defined. Otherwise, @scheme[set!] expressions for global +variables are compiled to raise the +@scheme[exn:fail:contract:variable] exception if the global variable +is not defined at the time the @scheme[set!] is performed. Note that +this parameter is used when an expression is @italic{compiled}, not +when it is @italic{evaluated}.} + +@defboolparam[eval-jit-enabled on?]{ + +A parameter that determines whether the native-code just-in-time +compiler (JIT) is enabled for code (compiled or not) that is passed to +the default evaluation handler. The default is @scheme[#t], unless +the JIT is disabled through the @Flag{j}/@DFlag{no-jit} command-line +flag to stand-alone MzScheme (or MrEd), or through the +@as-index{@envvar{PLTNOMZJIT}} environment variable (set to any +value).} + +@defboolparam[load-on-demand-enabled on?]{ + +A parameter that determines whether the default @tech{load handler} +sets @scheme[read-on-demand-source]. See @scheme[current-load] for +more information. The default is @scheme[#t], unless it is disabled +through the @Flag{d}/@DFlag{no-delay} command-line flag.} diff --git a/collects/scribblings/reference/file-ports.scrbl b/collects/scribblings/reference/file-ports.scrbl index 8f9511761f..7433f5cef5 100644 --- a/collects/scribblings/reference/file-ports.scrbl +++ b/collects/scribblings/reference/file-ports.scrbl @@ -205,3 +205,17 @@ Like @scheme[call-with-output-file*], but instead of passing the newly opened port to the given procedure argument, the port is installed as the current output port (see @scheme[current-output-port]) using @scheme[parameterize] around the call to @scheme[thunk].} + +@defproc[(port-file-identity [port file-stream-port?]) any]{ + +@index['("inode")]{Returns} an exact positive integer that represents +the identity of the device and file read or written by +@scheme[file-stream-port]. For two ports whose open times overlap, the +result of @scheme[port-file-identity] is the same for both ports if +and only if the ports access the same device and file. For ports whose +open times do not overlap, no guarantee is provided for the port +identities (even if the ports actually access the same file)---except +as can be inferred through relationships with other ports. If +@scheme[file-stream-port] is closed, the @exnraise[exn:fail]. Under +Windows 95, 98, and Me, if @scheme[file-stream-port] is connected to a +pipe instead of a file, the @exnraise[exn:fail:filesystem].} diff --git a/collects/scribblings/reference/pairs.scrbl b/collects/scribblings/reference/pairs.scrbl index 2f9c9d616e..097dc931f9 100644 --- a/collects/scribblings/reference/pairs.scrbl +++ b/collects/scribblings/reference/pairs.scrbl @@ -478,3 +478,85 @@ Like @scheme[assoc], but finds an element using the predicate @defproc[(eighth [lst list?]) any]{Returns the eighth element of the list.} @defproc[(last [lst list?]) any]{Returns the last element of the list.} + +@; ---------------------------------------- +@section{Immutable Cyclic Data} + +@defproc[(make-reader-graph [v any/c]) any/c]{ + +Returns a value like @scheme[v], with placeholders created by +@scheme[make-placeholder] replaced with the values that they contain, +and with placeholders created by @scheme[make-hash-table-placeholder] +with an immutable hash table. No part of @scheme[v] is mutated; +instead, parts of @scheme[v] are copied as necessary to construct +the resulting graph, where at most one copy is created for any given +value. + +Since the copied vales can be immutable, and since the copy is also +immutable, @scheme[make-reader-graph] can cycles involving only +immutable pairs, vectors, boxes, and hash tables. + +Only the following kinds of values are copied and traversed to detect +placeholders: + +@itemize{ + + @item{pairs} + + @item{immutable pairs (as created by @scheme[mcons])} + + @item{vectors, both mutable and immutable} + + @item{boxes, both mutable and immutable} + + @item{hash tables, both mutable and immutable} + + @item{placeholders created by @scheme[make-placeholder] and + @scheme[make-hash-table-placeholder]} + +} + +Due to these restrictions, @scheme[make-reader-graph] creates exactly +the same sort of cyclic values as @scheme[read]. + +@examples[ +(let* ([ph (make-placeholder #f)] + [x (cons 1 ph)]) + (placeholder-set! ph x) + (make-reader-graph x)) +]} + +@defproc[(placeholder? [v any/c]) boolean?]{ + +Returns @scheme[#t] if @scheme[v] is a placeholder created by +@scheme[make-placeholder], @scheme[#f] otherwise.} + + +@defproc[(make-placeholder [v any/c]) placeholder?]{ + +Returns a placeholder for use with @scheme[placeholder-set!] and +@scheme[make-reader-graph]. The @scheme[v] argument supplies the +initial value for the placeholder.} + +@defproc[(placeholder-set! [ph placeholder?] [datum any/c]) void?]{ + +Changes the value of @scheme[ph] to @scheme[v].} + +@defproc[(placeholder-get [ph placeholder?]) any/c]{ + +Returns the value of @scheme[ph].} + + +@defproc[(hash-table-placeholder? [v any/c]) boolean?]{ + +Returns @scheme[#t] if @scheme[v] is a placeholder created by +@scheme[make-hash-table-placeholder], @scheme[#f] otherwise.} + + +@defproc[(make-hash-table-placeholder [assocs (listof pair?)] + [flag (one-of/c 'equal)] + ...) + hash-table-placeholder?]{ + +Like @scheme[make-immutable-hash-table], but produces a table +placeholder for use with @scheme[make-reader-graph].} diff --git a/collects/scribblings/reference/read.scrbl b/collects/scribblings/reference/read.scrbl index 6dbca002b6..8aa5f1fe44 100644 --- a/collects/scribblings/reference/read.scrbl +++ b/collects/scribblings/reference/read.scrbl @@ -198,6 +198,23 @@ A parameter whose value determines a readtable that adjusts the parsing of S-expression input, where @scheme[#f] implies the default behavior. See @secref["readtables"] for more information.} + +@defparam[read-on-demand-source path (and/c path? complete-path?)]{ + +A parameter that enables lazy parsing of compiled code, so that +closure bodies and syntax objects are extracted (and validated) from +marshaled compiled code on demand. Normally, this parameter is set by +the default @tech{load handler} when @scheme[load-on-demand-enabled] +is @scheme[#t]. + +Even when parsing is delayed, compiled code is loaded into memory. If +the @as-index{@envvar{PLT_DELAY_FROM_ZO}} environment variable is set +(to any value) on start up, however, even loading from disk is +delayed. If the file at @tech{path} changes before the delayed code or +syntax object is demanded, the read-on-demand most likely will +encounter garbage, leading to an exception.} + + @defproc*[([(port-read-handler [in input-port?]) (case-> (input-port? . -> . any) (input-port? any/c . -> . any))] diff --git a/collects/scribblings/reference/reader.scrbl b/collects/scribblings/reference/reader.scrbl index 2d69dd7025..0e8dcff0b7 100644 --- a/collects/scribblings/reference/reader.scrbl +++ b/collects/scribblings/reference/reader.scrbl @@ -31,7 +31,7 @@ or @scheme[read-syntax] mode. In @scheme[read-syntax] mode, the result is always a @techlink{syntax object} that includes source-location and (initially empty) lexical information wrapped around the sort of datum that @scheme[read] mode would produce. In the -case of pairs, vectors, and boxes, morever, the content is also +case of pairs, vectors, and boxes, the content is also wrapped recursively as a syntax object. Unless specified otherwise, this section describes the reader's behavior in @scheme[read] mode, and @scheme[read-syntax] mode does the same modulo wrapping the final diff --git a/collects/scribblings/reference/syntax.scrbl b/collects/scribblings/reference/syntax.scrbl index e109cfd0f3..c360d52eda 100644 --- a/collects/scribblings/reference/syntax.scrbl +++ b/collects/scribblings/reference/syntax.scrbl @@ -942,6 +942,8 @@ variable}. If @scheme[id] refers to an imported binding, a syntax error is reported. If @scheme[id] refers to a @tech{top-level variable} that has not been defined, the @exnraise[exn:fail:contract]. +See also @scheme[compile-allow-set!-undefined]. + @defexamples[ (define x 12) (set! x (add1 x)) diff --git a/collects/scribblings/scribble/manual.scrbl b/collects/scribblings/scribble/manual.scrbl index 5380876a46..075c9f9966 100644 --- a/collects/scribblings/scribble/manual.scrbl +++ b/collects/scribblings/scribble/manual.scrbl @@ -322,7 +322,8 @@ The @tech{decode}d @scheme[pre-flow] documents the procedure. In this description, a reference to any identifier in @scheme[datum] via @scheme[scheme], @scheme[schemeblock], @|etc| is typeset as a sub-form non-terminal. If @scheme[#:literals] clause is provided, however, -instances of the @scheme[literal-id]s are typeset normally. +instances of the @scheme[literal-id]s are typeset normally (i.e., as +determined by the enclosing context). The typesetting of @scheme[(id . datum)] preserves the source layout, like @scheme[schemeblock].} diff --git a/src/mzscheme/src/cstartup.inc b/src/mzscheme/src/cstartup.inc index 233b1261b3..ee832a4f0a 100644 --- a/src/mzscheme/src/cstartup.inc +++ b/src/mzscheme/src/cstartup.inc @@ -1,13 +1,13 @@ { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,51,46,57,57,46,48,46,53,50,0,0,0,1,0,0,6,0,9, -0,14,0,18,0,23,0,28,0,32,0,39,0,42,0,55,0,62,0,69,0, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,51,46,57,57,46,48,46,54,50,0,0,0,1,0,0,6,0,9, +0,14,0,18,0,23,0,36,0,41,0,45,0,52,0,55,0,62,0,69,0, 78,0,84,0,98,0,112,0,115,0,119,0,121,0,132,0,134,0,148,0,155, 0,177,0,179,0,193,0,203,0,209,0,227,0,26,1,36,1,53,1,86,1, 119,1,178,1,223,1,45,2,90,2,95,2,115,2,245,2,9,3,57,3,123, 3,6,4,148,4,191,4,202,4,25,5,0,0,29,7,0,0,65,98,101,103, -105,110,29,11,11,64,108,101,116,42,63,108,101,116,64,119,104,101,110,64,99, -111,110,100,63,97,110,100,66,108,101,116,114,101,99,62,111,114,72,112,97,114, -97,109,101,116,101,114,105,122,101,66,100,101,102,105,110,101,66,117,110,108,101, +105,110,29,11,11,64,108,101,116,42,63,108,101,116,64,119,104,101,110,72,112, +97,114,97,109,101,116,101,114,105,122,101,64,99,111,110,100,63,97,110,100,66, +108,101,116,114,101,99,62,111,114,66,100,101,102,105,110,101,66,117,110,108,101, 115,115,68,104,101,114,101,45,115,116,120,65,113,117,111,116,101,29,94,2,14, 68,35,37,112,97,114,97,109,122,11,29,94,2,14,68,35,37,107,101,114,110, 101,108,11,62,105,102,63,115,116,120,61,115,70,108,101,116,45,118,97,108,117, @@ -16,56 +16,56 @@ 110,45,107,101,121,61,118,73,100,101,102,105,110,101,45,118,97,108,117,101,115, 95,8,240,48,117,0,0,11,16,0,95,8,193,11,16,0,96,35,11,93,158, 2,16,34,16,2,2,13,159,2,2,35,2,13,97,10,34,11,94,158,2,15, -34,158,2,16,34,16,20,2,9,2,2,2,3,2,2,2,4,2,2,2,5, -2,2,2,6,2,2,2,7,2,2,2,8,2,2,2,10,2,2,2,11,2, +34,158,2,16,34,16,20,2,10,2,2,2,3,2,2,2,4,2,2,2,5, +2,2,2,6,2,2,2,7,2,2,2,8,2,2,2,9,2,2,2,11,2, 2,2,12,2,2,13,16,4,34,29,11,11,2,2,11,18,98,64,104,101,114, -101,8,31,8,30,8,29,8,28,8,27,27,248,22,174,3,195,249,22,167,3, +101,8,31,8,30,8,29,8,28,8,27,27,248,22,176,3,195,249,22,169,3, 80,158,37,34,251,22,73,2,17,248,22,88,199,12,249,22,63,2,1,248,22, -90,201,27,248,22,174,3,195,249,22,167,3,80,158,37,34,251,22,73,2,17, -248,22,88,199,249,22,63,2,1,248,22,90,201,12,27,248,22,65,248,22,174, +90,201,27,248,22,176,3,195,249,22,169,3,80,158,37,34,251,22,73,2,17, +248,22,88,199,249,22,63,2,1,248,22,90,201,12,27,248,22,65,248,22,176, 3,196,28,248,22,71,193,20,15,159,35,34,35,28,248,22,71,248,22,65,194, -248,22,64,193,249,22,167,3,80,158,37,34,251,22,73,2,17,248,22,64,199, -249,22,63,2,7,248,22,65,201,11,18,100,10,8,31,8,30,8,29,8,28, -8,27,16,4,11,11,2,18,3,1,7,101,110,118,54,55,54,54,16,4,11, -11,2,19,3,1,7,101,110,118,54,55,54,55,27,248,22,65,248,22,174,3, +248,22,64,193,249,22,169,3,80,158,37,34,251,22,73,2,17,248,22,64,199, +249,22,63,2,8,248,22,65,201,11,18,100,10,8,31,8,30,8,29,8,28, +8,27,16,4,11,11,2,18,3,1,7,101,110,118,54,55,54,57,16,4,11, +11,2,19,3,1,7,101,110,118,54,55,55,48,27,248,22,65,248,22,176,3, 196,28,248,22,71,193,20,15,159,35,34,35,28,248,22,71,248,22,65,194,248, -22,64,193,249,22,167,3,80,158,37,34,250,22,73,2,20,248,22,73,249,22, +22,64,193,249,22,169,3,80,158,37,34,250,22,73,2,20,248,22,73,249,22, 73,248,22,73,2,21,248,22,64,201,251,22,73,2,17,2,21,2,21,249,22, -63,2,9,248,22,65,204,18,100,11,8,31,8,30,8,29,8,28,8,27,16, -4,11,11,2,18,3,1,7,101,110,118,54,55,54,57,16,4,11,11,2,19, -3,1,7,101,110,118,54,55,55,48,248,22,174,3,193,27,248,22,174,3,194, -249,22,63,248,22,73,248,22,64,196,248,22,65,195,27,248,22,65,248,22,174, -3,196,249,22,167,3,80,158,37,34,28,248,22,51,248,22,168,3,248,22,64, -197,27,249,22,2,32,0,89,162,8,36,35,41,9,222,33,39,248,22,174,3, +63,2,10,248,22,65,204,18,100,11,8,31,8,30,8,29,8,28,8,27,16, +4,11,11,2,18,3,1,7,101,110,118,54,55,55,50,16,4,11,11,2,19, +3,1,7,101,110,118,54,55,55,51,248,22,176,3,193,27,248,22,176,3,194, +249,22,63,248,22,73,248,22,64,196,248,22,65,195,27,248,22,65,248,22,176, +3,196,249,22,169,3,80,158,37,34,28,248,22,51,248,22,170,3,248,22,64, +197,27,249,22,2,32,0,89,162,8,36,35,41,9,222,33,39,248,22,176,3, 248,22,88,199,250,22,73,2,22,248,22,73,249,22,73,248,22,73,248,22,64, 203,250,22,74,2,23,249,22,2,22,64,203,248,22,90,205,249,22,63,248,22, 64,201,249,22,2,22,88,199,250,22,74,2,20,249,22,2,32,0,89,162,34, -35,45,9,222,33,40,248,22,174,3,248,22,64,201,248,22,65,198,27,248,22, -174,3,194,249,22,63,248,22,73,248,22,64,196,248,22,65,195,27,248,22,65, -248,22,174,3,196,249,22,167,3,80,158,37,34,250,22,74,2,22,249,22,2, -32,0,89,162,34,35,45,9,222,33,42,248,22,174,3,248,22,64,201,248,22, -65,198,27,248,22,65,248,22,174,3,196,27,248,22,174,3,248,22,64,195,249, -22,167,3,80,158,38,34,28,248,22,71,195,250,22,74,2,20,9,248,22,65, +35,45,9,222,33,40,248,22,176,3,248,22,64,201,248,22,65,198,27,248,22, +176,3,194,249,22,63,248,22,73,248,22,64,196,248,22,65,195,27,248,22,65, +248,22,176,3,196,249,22,169,3,80,158,37,34,250,22,74,2,22,249,22,2, +32,0,89,162,34,35,45,9,222,33,42,248,22,176,3,248,22,64,201,248,22, +65,198,27,248,22,65,248,22,176,3,196,27,248,22,176,3,248,22,64,195,249, +22,169,3,80,158,38,34,28,248,22,71,195,250,22,74,2,20,9,248,22,65, 199,250,22,73,2,4,248,22,73,248,22,64,199,250,22,74,2,3,248,22,65, -201,248,22,65,202,27,248,22,65,248,22,174,3,196,27,249,22,1,22,77,249, -22,2,22,174,3,248,22,174,3,248,22,64,199,249,22,167,3,80,158,38,34, +201,248,22,65,202,27,248,22,65,248,22,176,3,196,27,249,22,1,22,77,249, +22,2,22,176,3,248,22,176,3,248,22,64,199,249,22,169,3,80,158,38,34, 251,22,73,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,74,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,74,2,20,9,248,22,65,203,27,248,22, -65,248,22,174,3,196,28,248,22,71,193,20,15,159,35,34,35,249,22,167,3, -80,158,37,34,27,248,22,174,3,248,22,64,197,28,249,22,133,8,62,61,62, -248,22,168,3,248,22,88,196,250,22,73,2,20,248,22,73,249,22,73,21,93, -2,25,248,22,64,199,250,22,74,2,6,249,22,73,2,25,249,22,73,248,22, -97,203,2,25,248,22,65,202,251,22,73,2,17,28,249,22,133,8,248,22,168, +65,248,22,176,3,196,28,248,22,71,193,20,15,159,35,34,35,249,22,169,3, +80,158,37,34,27,248,22,176,3,248,22,64,197,28,249,22,135,8,62,61,62, +248,22,170,3,248,22,88,196,250,22,73,2,20,248,22,73,249,22,73,21,93, +2,25,248,22,64,199,250,22,74,2,7,249,22,73,2,25,249,22,73,248,22, +97,203,2,25,248,22,65,202,251,22,73,2,17,28,249,22,135,8,248,22,170, 3,248,22,64,200,64,101,108,115,101,10,248,22,64,197,250,22,74,2,20,9, -248,22,65,200,249,22,63,2,6,248,22,65,202,99,8,31,8,30,8,29,8, -28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,54,55,57,50,16,4, -11,11,2,19,3,1,7,101,110,118,54,55,57,51,18,158,94,10,64,118,111, -105,100,8,47,27,248,22,65,248,22,174,3,196,249,22,167,3,80,158,37,34, -28,248,22,51,248,22,168,3,248,22,64,197,250,22,73,2,26,248,22,73,248, -22,64,199,248,22,88,198,27,248,22,168,3,248,22,64,197,250,22,73,2,26, +248,22,65,200,249,22,63,2,7,248,22,65,202,99,8,31,8,30,8,29,8, +28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,54,55,57,53,16,4, +11,11,2,19,3,1,7,101,110,118,54,55,57,54,18,158,94,10,64,118,111, +105,100,8,47,27,248,22,65,248,22,176,3,196,249,22,169,3,80,158,37,34, +28,248,22,51,248,22,170,3,248,22,64,197,250,22,73,2,26,248,22,73,248, +22,64,199,248,22,88,198,27,248,22,170,3,248,22,64,197,250,22,73,2,26, 248,22,73,248,22,64,197,250,22,74,2,23,248,22,65,199,248,22,65,202,159, 34,20,102,159,34,16,1,20,24,2,1,16,0,83,158,40,20,99,131,69,35, 37,109,105,110,45,115,116,120,2,2,10,11,10,10,10,10,34,80,158,34,34, @@ -77,17 +77,17 @@ 20,102,159,34,16,0,16,1,33,32,10,16,5,93,2,12,89,162,8,36,35, 51,9,223,0,33,33,34,20,102,159,34,16,1,20,25,159,35,2,2,2,13, 16,0,11,16,5,93,2,5,89,162,8,36,35,51,9,223,0,33,34,34,20, -102,159,34,16,1,20,25,159,35,2,2,2,13,16,0,11,16,5,93,2,7, +102,159,34,16,1,20,25,159,35,2,2,2,13,16,0,11,16,5,93,2,8, 89,162,8,36,35,51,9,223,0,33,35,34,20,102,159,34,16,1,20,25,159, -35,2,2,2,13,16,1,33,36,11,16,5,93,2,9,89,162,8,36,35,54, +35,2,2,2,13,16,1,33,36,11,16,5,93,2,10,89,162,8,36,35,54, 9,223,0,33,37,34,20,102,159,34,16,1,20,25,159,35,2,2,2,13,16, 1,33,38,11,16,5,93,2,4,89,162,8,36,35,56,9,223,0,33,41,34, 20,102,159,34,16,1,20,25,159,35,2,2,2,13,16,0,11,16,5,93,2, -8,89,162,8,36,35,51,9,223,0,33,43,34,20,102,159,34,16,1,20,25, +9,89,162,8,36,35,51,9,223,0,33,43,34,20,102,159,34,16,1,20,25, 159,35,2,2,2,13,16,0,11,16,5,93,2,3,89,162,8,36,35,52,9, 223,0,33,44,34,20,102,159,34,16,1,20,25,159,35,2,2,2,13,16,0, -11,16,5,93,2,10,89,162,8,36,35,53,9,223,0,33,45,34,20,102,159, -34,16,1,20,25,159,35,2,2,2,13,16,0,11,16,5,93,2,6,89,162, +11,16,5,93,2,6,89,162,8,36,35,53,9,223,0,33,45,34,20,102,159, +34,16,1,20,25,159,35,2,2,2,13,16,0,11,16,5,93,2,7,89,162, 8,36,35,56,9,223,0,33,46,34,20,102,159,34,16,1,20,25,159,35,2, 2,2,13,16,1,33,48,11,16,5,93,2,11,89,162,8,36,35,52,9,223, 0,33,49,34,20,102,159,34,16,1,20,25,159,35,2,2,2,13,16,0,11, @@ -95,7 +95,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 1943); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,51,46,57,57,46,48,46,53,61,0,0,0,1,0,0,3,0,16, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,51,46,57,57,46,48,46,54,61,0,0,0,1,0,0,3,0,16, 0,21,0,38,0,53,0,71,0,87,0,97,0,115,0,135,0,151,0,169,0, 200,0,229,0,251,0,9,1,15,1,29,1,34,1,44,1,52,1,80,1,112, 1,157,1,202,1,226,1,9,2,11,2,20,2,71,2,87,3,96,3,126,3, @@ -128,134 +128,134 @@ 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,68,35,37,107,101, 114,110,101,108,27,20,14,159,80,158,35,49,250,80,158,38,50,249,22,27,11, -80,158,40,49,22,132,12,10,248,22,182,4,195,28,248,22,160,5,193,12,87, -94,248,22,136,8,193,248,80,159,36,53,35,195,28,248,22,71,194,9,27,248, -22,64,195,27,28,248,22,177,12,194,193,28,248,22,176,12,194,249,22,178,12, -195,250,80,158,41,47,248,22,128,13,2,20,11,10,250,80,158,39,47,248,22, -128,13,2,20,196,10,28,192,249,22,63,248,22,180,12,249,22,178,12,197,247, -22,129,13,27,248,22,65,199,28,248,22,71,193,9,27,248,22,64,194,27,28, -248,22,177,12,194,193,28,248,22,176,12,194,249,22,178,12,195,250,80,158,46, -47,248,22,128,13,2,20,11,10,250,80,158,44,47,248,22,128,13,2,20,196, -10,28,192,249,22,63,248,22,180,12,249,22,178,12,197,247,22,129,13,248,80, +80,158,40,49,22,134,12,10,248,22,184,4,195,28,248,22,162,5,193,12,87, +94,248,22,138,8,193,248,80,159,36,53,35,195,28,248,22,71,194,9,27,248, +22,64,195,27,28,248,22,179,12,194,193,28,248,22,178,12,194,249,22,180,12, +195,250,80,158,41,47,248,22,130,13,2,20,11,10,250,80,158,39,47,248,22, +130,13,2,20,196,10,28,192,249,22,63,248,22,182,12,249,22,180,12,197,247, +22,131,13,27,248,22,65,199,28,248,22,71,193,9,27,248,22,64,194,27,28, +248,22,179,12,194,193,28,248,22,178,12,194,249,22,180,12,195,250,80,158,46, +47,248,22,130,13,2,20,11,10,250,80,158,44,47,248,22,130,13,2,20,196, +10,28,192,249,22,63,248,22,182,12,249,22,180,12,197,247,22,131,13,248,80, 159,44,52,35,248,22,65,198,248,80,159,42,52,35,248,22,65,196,27,248,22, -65,197,28,248,22,71,193,9,27,248,22,64,194,27,28,248,22,177,12,194,193, -28,248,22,176,12,194,249,22,178,12,195,250,80,158,44,47,248,22,128,13,2, -20,11,10,250,80,158,42,47,248,22,128,13,2,20,196,10,28,192,249,22,63, -248,22,180,12,249,22,178,12,197,247,22,129,13,248,80,159,42,52,35,248,22, +65,197,28,248,22,71,193,9,27,248,22,64,194,27,28,248,22,179,12,194,193, +28,248,22,178,12,194,249,22,180,12,195,250,80,158,44,47,248,22,130,13,2, +20,11,10,250,80,158,42,47,248,22,130,13,2,20,196,10,28,192,249,22,63, +248,22,182,12,249,22,180,12,197,247,22,131,13,248,80,159,42,52,35,248,22, 65,198,248,80,159,40,52,35,248,22,65,196,249,80,159,36,37,35,2,7,195, -27,248,22,153,12,194,28,192,192,28,248,22,129,6,194,27,248,22,175,12,195, -28,192,192,248,22,176,12,195,11,87,94,28,28,248,22,154,12,194,10,27,248, -22,153,12,195,28,192,192,28,248,22,129,6,195,27,248,22,175,12,196,28,192, -192,248,22,176,12,196,11,12,250,22,163,8,76,110,111,114,109,97,108,45,112, +27,248,22,155,12,194,28,192,192,28,248,22,131,6,194,27,248,22,177,12,195, +28,192,192,248,22,178,12,195,11,87,94,28,28,248,22,156,12,194,10,27,248, +22,155,12,195,28,192,192,28,248,22,131,6,195,27,248,22,177,12,196,28,192, +192,248,22,178,12,196,11,12,250,22,165,8,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,196,28,28,248,22,154,12,194,249,22, -133,8,248,22,155,12,196,2,21,249,22,133,8,247,22,148,7,2,21,27,28, -248,22,129,6,195,194,248,22,138,7,248,22,158,12,196,28,249,22,141,13,0, +112,97,116,104,32,115,116,114,105,110,103,196,28,28,248,22,156,12,194,249,22, +135,8,248,22,157,12,196,2,21,249,22,135,8,247,22,150,7,2,21,27,28, +248,22,131,6,195,194,248,22,140,7,248,22,160,12,196,28,249,22,143,13,0, 21,35,114,120,34,94,91,92,92,93,91,92,92,93,91,63,93,91,92,92,93, -34,194,28,248,22,129,6,195,248,22,161,12,195,194,27,248,22,168,6,194,249, -22,162,12,248,22,141,7,250,22,147,13,0,6,35,114,120,34,47,34,28,249, -22,141,13,0,22,35,114,120,34,91,47,92,92,93,91,46,32,93,43,91,47, -92,92,93,42,36,34,200,198,250,22,147,13,0,19,35,114,120,34,91,32,46, +34,194,28,248,22,131,6,195,248,22,163,12,195,194,27,248,22,170,6,194,249, +22,164,12,248,22,143,7,250,22,149,13,0,6,35,114,120,34,47,34,28,249, +22,143,13,0,22,35,114,120,34,91,47,92,92,93,91,46,32,93,43,91,47, +92,92,93,42,36,34,200,198,250,22,149,13,0,19,35,114,120,34,91,32,46, 93,43,40,91,47,92,92,93,42,41,36,34,201,6,2,2,92,49,80,158,42, -35,2,21,28,248,22,129,6,194,248,22,161,12,194,193,87,94,28,27,248,22, -153,12,195,28,192,192,28,248,22,129,6,195,27,248,22,175,12,196,28,192,192, -248,22,176,12,196,11,12,250,22,163,8,195,2,22,196,28,248,22,175,12,194, -12,248,22,177,10,249,22,186,9,248,22,158,6,250,22,177,6,2,23,199,200, -247,22,23,87,94,28,27,248,22,153,12,195,28,192,192,28,248,22,129,6,195, -27,248,22,175,12,196,28,192,192,248,22,176,12,196,11,12,250,22,163,8,195, -2,22,196,28,248,22,175,12,194,12,248,22,177,10,249,22,186,9,248,22,158, -6,250,22,177,6,2,23,199,200,247,22,23,87,94,87,94,28,27,248,22,153, -12,195,28,192,192,28,248,22,129,6,195,27,248,22,175,12,196,28,192,192,248, -22,176,12,196,11,12,250,22,163,8,195,2,22,196,28,248,22,175,12,194,12, -248,22,177,10,249,22,186,9,248,22,158,6,250,22,177,6,2,23,199,200,247, -22,23,249,22,3,89,162,34,35,48,9,223,2,33,36,196,248,22,177,10,249, -22,152,10,195,247,22,23,87,94,87,94,249,80,159,36,37,35,2,7,195,249, +35,2,21,28,248,22,131,6,194,248,22,163,12,194,193,87,94,28,27,248,22, +155,12,195,28,192,192,28,248,22,131,6,195,27,248,22,177,12,196,28,192,192, +248,22,178,12,196,11,12,250,22,165,8,195,2,22,196,28,248,22,177,12,194, +12,248,22,179,10,249,22,188,9,248,22,160,6,250,22,179,6,2,23,199,200, +247,22,23,87,94,28,27,248,22,155,12,195,28,192,192,28,248,22,131,6,195, +27,248,22,177,12,196,28,192,192,248,22,178,12,196,11,12,250,22,165,8,195, +2,22,196,28,248,22,177,12,194,12,248,22,179,10,249,22,188,9,248,22,160, +6,250,22,179,6,2,23,199,200,247,22,23,87,94,87,94,28,27,248,22,155, +12,195,28,192,192,28,248,22,131,6,195,27,248,22,177,12,196,28,192,192,248, +22,178,12,196,11,12,250,22,165,8,195,2,22,196,28,248,22,177,12,194,12, +248,22,179,10,249,22,188,9,248,22,160,6,250,22,179,6,2,23,199,200,247, +22,23,249,22,3,89,162,34,35,48,9,223,2,33,36,196,248,22,179,10,249, +22,154,10,195,247,22,23,87,94,87,94,249,80,159,36,37,35,2,7,195,249, 22,3,80,159,36,51,35,196,251,80,159,38,40,35,2,7,32,0,89,162,34, 35,43,9,222,33,38,197,198,32,40,89,162,34,40,57,65,99,108,111,111,112, -222,33,41,28,248,22,71,198,248,195,251,22,177,6,2,24,198,28,248,22,71, -202,200,250,22,1,22,171,12,203,204,197,27,249,22,171,12,248,22,64,201,198, -28,248,22,166,12,193,27,250,22,1,22,171,12,196,201,28,248,22,166,12,193, -192,27,248,22,65,201,28,248,22,71,193,248,198,251,22,177,6,2,24,201,28, -248,22,71,205,203,250,22,1,22,171,12,206,23,15,200,27,249,22,171,12,248, -22,64,196,201,28,248,22,166,12,193,27,250,22,1,22,171,12,196,204,28,248, -22,166,12,193,192,253,2,40,203,204,205,206,23,15,248,22,65,201,253,2,40, +222,33,41,28,248,22,71,198,248,195,251,22,179,6,2,24,198,28,248,22,71, +202,200,250,22,1,22,173,12,203,204,197,27,249,22,173,12,248,22,64,201,198, +28,248,22,168,12,193,27,250,22,1,22,173,12,196,201,28,248,22,168,12,193, +192,27,248,22,65,201,28,248,22,71,193,248,198,251,22,179,6,2,24,201,28, +248,22,71,205,203,250,22,1,22,173,12,206,23,15,200,27,249,22,173,12,248, +22,64,196,201,28,248,22,168,12,193,27,250,22,1,22,173,12,196,204,28,248, +22,168,12,193,192,253,2,40,203,204,205,206,23,15,248,22,65,201,253,2,40, 202,203,204,205,206,248,22,65,200,27,248,22,65,200,28,248,22,71,193,248,197, -251,22,177,6,2,24,200,28,248,22,71,204,202,250,22,1,22,171,12,205,206, -199,27,249,22,171,12,248,22,64,196,200,28,248,22,166,12,193,27,250,22,1, -22,171,12,196,203,28,248,22,166,12,193,192,253,2,40,202,203,204,205,206,248, -22,65,201,253,2,40,201,202,203,204,205,248,22,65,200,27,247,22,130,13,253, -2,40,198,199,200,201,202,198,87,95,28,28,248,22,154,12,193,10,27,248,22, -153,12,194,28,192,192,28,248,22,129,6,194,27,248,22,175,12,195,28,192,192, -248,22,176,12,195,11,12,252,22,163,8,199,2,25,34,197,198,28,28,248,22, -129,6,194,10,248,22,181,6,194,12,252,22,163,8,199,2,26,35,197,198,91, -159,37,11,90,161,37,34,11,248,22,174,12,196,87,94,28,192,12,250,22,164, +251,22,179,6,2,24,200,28,248,22,71,204,202,250,22,1,22,173,12,205,206, +199,27,249,22,173,12,248,22,64,196,200,28,248,22,168,12,193,27,250,22,1, +22,173,12,196,203,28,248,22,168,12,193,192,253,2,40,202,203,204,205,206,248, +22,65,201,253,2,40,201,202,203,204,205,248,22,65,200,27,247,22,132,13,253, +2,40,198,199,200,201,202,198,87,95,28,28,248,22,156,12,193,10,27,248,22, +155,12,194,28,192,192,28,248,22,131,6,194,27,248,22,177,12,195,28,192,192, +248,22,178,12,195,11,12,252,22,165,8,199,2,25,34,197,198,28,28,248,22, +131,6,194,10,248,22,183,6,194,12,252,22,165,8,199,2,26,35,197,198,91, +159,37,11,90,161,37,34,11,248,22,176,12,196,87,94,28,192,12,250,22,166, 8,200,2,27,198,249,22,7,194,195,91,159,36,11,90,161,36,34,11,87,95, -28,28,248,22,154,12,195,10,27,248,22,153,12,196,28,192,192,28,248,22,129, -6,196,27,248,22,175,12,197,28,192,192,248,22,176,12,197,11,12,252,22,163, -8,2,10,2,25,34,199,200,28,28,248,22,129,6,196,10,248,22,181,6,196, -12,252,22,163,8,2,10,2,26,35,199,200,91,159,37,11,90,161,37,34,11, -248,22,174,12,198,87,94,28,192,12,250,22,164,8,2,10,2,27,200,249,22, -7,194,195,27,249,22,163,12,250,22,146,13,0,18,35,114,120,35,34,40,91, -46,93,91,94,46,93,42,124,41,36,34,248,22,159,12,200,28,248,22,129,6, -202,249,22,141,7,203,8,63,201,28,248,22,154,12,198,248,22,155,12,198,247, -22,156,12,28,248,22,153,12,194,249,22,171,12,195,194,192,91,159,36,11,90, -161,36,34,11,87,95,28,28,248,22,154,12,195,10,27,248,22,153,12,196,28, -192,192,28,248,22,129,6,196,27,248,22,175,12,197,28,192,192,248,22,176,12, -197,11,12,252,22,163,8,2,11,2,25,34,199,200,28,28,248,22,129,6,196, -10,248,22,181,6,196,12,252,22,163,8,2,11,2,26,35,199,200,91,159,37, -11,90,161,37,34,11,248,22,174,12,198,87,94,28,192,12,250,22,164,8,2, -11,2,27,200,249,22,7,194,195,27,249,22,163,12,249,22,191,6,250,22,147, -13,0,9,35,114,120,35,34,91,46,93,34,248,22,159,12,202,6,1,1,95, -28,248,22,129,6,201,249,22,141,7,202,8,63,200,28,248,22,154,12,198,248, -22,155,12,198,247,22,156,12,28,248,22,153,12,194,249,22,171,12,195,194,192, -249,247,22,180,5,194,11,248,80,158,35,45,9,27,247,22,132,13,249,80,158, -37,46,28,194,27,248,22,146,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,195,250,22,171,12,248,22,128, -13,69,97,100,100,111,110,45,100,105,114,247,22,144,7,6,8,8,99,111,108, +28,28,248,22,156,12,195,10,27,248,22,155,12,196,28,192,192,28,248,22,131, +6,196,27,248,22,177,12,197,28,192,192,248,22,178,12,197,11,12,252,22,165, +8,2,10,2,25,34,199,200,28,28,248,22,131,6,196,10,248,22,183,6,196, +12,252,22,165,8,2,10,2,26,35,199,200,91,159,37,11,90,161,37,34,11, +248,22,176,12,198,87,94,28,192,12,250,22,166,8,2,10,2,27,200,249,22, +7,194,195,27,249,22,165,12,250,22,148,13,0,18,35,114,120,35,34,40,91, +46,93,91,94,46,93,42,124,41,36,34,248,22,161,12,200,28,248,22,131,6, +202,249,22,143,7,203,8,63,201,28,248,22,156,12,198,248,22,157,12,198,247, +22,158,12,28,248,22,155,12,194,249,22,173,12,195,194,192,91,159,36,11,90, +161,36,34,11,87,95,28,28,248,22,156,12,195,10,27,248,22,155,12,196,28, +192,192,28,248,22,131,6,196,27,248,22,177,12,197,28,192,192,248,22,178,12, +197,11,12,252,22,165,8,2,11,2,25,34,199,200,28,28,248,22,131,6,196, +10,248,22,183,6,196,12,252,22,165,8,2,11,2,26,35,199,200,91,159,37, +11,90,161,37,34,11,248,22,176,12,198,87,94,28,192,12,250,22,166,8,2, +11,2,27,200,249,22,7,194,195,27,249,22,165,12,249,22,129,7,250,22,149, +13,0,9,35,114,120,35,34,91,46,93,34,248,22,161,12,202,6,1,1,95, +28,248,22,131,6,201,249,22,143,7,202,8,63,200,28,248,22,156,12,198,248, +22,157,12,198,247,22,158,12,28,248,22,155,12,194,249,22,173,12,195,194,192, +249,247,22,182,5,194,11,248,80,158,35,45,9,27,247,22,134,13,249,80,158, +37,46,28,194,27,248,22,148,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,195,250,22,173,12,248,22,130, +13,69,97,100,100,111,110,45,100,105,114,247,22,146,7,6,8,8,99,111,108, 108,101,99,116,115,11,27,248,80,159,40,52,35,249,22,77,201,248,22,73,248, -22,128,13,72,99,111,108,108,101,99,116,115,45,100,105,114,28,193,249,22,63, -195,194,192,32,49,89,162,34,37,49,2,19,222,33,50,27,249,22,139,13,196, +22,130,13,72,99,111,108,108,101,99,116,115,45,100,105,114,28,193,249,22,63, +195,194,192,32,49,89,162,34,37,49,2,19,222,33,50,27,249,22,141,13,196, 197,28,192,27,248,22,88,194,27,250,2,49,198,199,248,22,97,198,28,249,22, -187,6,195,2,28,249,22,77,197,194,249,22,63,248,22,162,12,196,194,28,249, -22,187,6,197,2,28,249,22,77,195,9,249,22,63,248,22,162,12,198,9,87, -95,28,28,248,22,181,6,194,10,248,22,129,6,194,12,250,22,163,8,2,14, +189,6,195,2,28,249,22,77,197,194,249,22,63,248,22,164,12,196,194,28,249, +22,189,6,197,2,28,249,22,77,195,9,249,22,63,248,22,164,12,198,9,87, +95,28,28,248,22,183,6,194,10,248,22,131,6,194,12,250,22,165,8,2,14, 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,72,195,249,22,4,22,153,12,196,11,12,250,22, -163,8,2,14,6,13,13,108,105,115,116,32,111,102,32,112,97,116,104,115,197, -250,2,49,197,195,28,248,22,129,6,197,248,22,140,7,197,196,32,52,89,162, +105,110,103,196,28,28,248,22,72,195,249,22,4,22,155,12,196,11,12,250,22, +165,8,2,14,6,13,13,108,105,115,116,32,111,102,32,112,97,116,104,115,197, +250,2,49,197,195,28,248,22,131,6,197,248,22,142,7,197,196,32,52,89,162, 8,36,38,56,2,19,222,33,55,32,53,89,162,8,36,37,53,70,102,111,117, 110,100,45,101,120,101,99,222,33,54,28,192,91,159,37,11,90,161,37,34,11, -248,22,174,12,198,27,28,197,27,248,22,179,12,200,28,249,22,135,8,194,201, -11,28,248,22,175,12,193,250,2,53,200,201,249,22,171,12,199,197,250,2,53, -200,201,195,11,28,192,192,27,28,248,22,153,12,195,27,249,22,171,12,197,200, -28,28,248,22,166,12,193,10,248,22,165,12,193,192,11,11,28,192,192,28,198, -11,27,248,22,179,12,201,28,249,22,135,8,194,202,11,28,248,22,175,12,193, -250,2,53,201,202,249,22,171,12,200,197,250,2,53,201,202,195,194,28,248,22, -71,196,11,27,248,22,178,12,248,22,64,198,27,249,22,171,12,195,196,28,248, -22,165,12,193,250,2,53,198,199,195,27,248,22,65,199,28,248,22,71,193,11, -27,248,22,178,12,248,22,64,195,27,249,22,171,12,195,199,28,248,22,165,12, +248,22,176,12,198,27,28,197,27,248,22,181,12,200,28,249,22,137,8,194,201, +11,28,248,22,177,12,193,250,2,53,200,201,249,22,173,12,199,197,250,2,53, +200,201,195,11,28,192,192,27,28,248,22,155,12,195,27,249,22,173,12,197,200, +28,28,248,22,168,12,193,10,248,22,167,12,193,192,11,11,28,192,192,28,198, +11,27,248,22,181,12,201,28,249,22,137,8,194,202,11,28,248,22,177,12,193, +250,2,53,201,202,249,22,173,12,200,197,250,2,53,201,202,195,194,28,248,22, +71,196,11,27,248,22,180,12,248,22,64,198,27,249,22,173,12,195,196,28,248, +22,167,12,193,250,2,53,198,199,195,27,248,22,65,199,28,248,22,71,193,11, +27,248,22,180,12,248,22,64,195,27,249,22,173,12,195,199,28,248,22,167,12, 193,250,2,53,201,202,195,27,248,22,65,196,28,248,22,71,193,11,27,248,22, -178,12,248,22,64,195,27,249,22,171,12,195,202,28,248,22,165,12,193,250,2, -53,204,205,195,251,2,52,204,205,206,248,22,65,199,87,95,28,27,248,22,153, -12,195,28,192,192,28,248,22,129,6,195,27,248,22,175,12,196,28,192,192,248, -22,176,12,196,11,12,250,22,163,8,2,15,6,25,25,112,97,116,104,32,111, +180,12,248,22,64,195,27,249,22,173,12,195,202,28,248,22,167,12,193,250,2, +53,204,205,195,251,2,52,204,205,206,248,22,65,199,87,95,28,27,248,22,155, +12,195,28,192,192,28,248,22,131,6,195,27,248,22,177,12,196,28,192,192,248, +22,178,12,196,11,12,250,22,165,8,2,15,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,196,28, -28,194,28,27,248,22,153,12,196,28,192,192,28,248,22,129,6,196,27,248,22, -175,12,197,28,192,192,248,22,176,12,197,11,248,22,175,12,195,11,10,12,250, -22,163,8,2,15,6,29,29,35,102,32,111,114,32,114,101,108,97,116,105,118, +28,194,28,27,248,22,155,12,196,28,192,192,28,248,22,131,6,196,27,248,22, +177,12,197,28,192,192,248,22,178,12,197,11,248,22,177,12,195,11,10,12,250, +22,165,8,2,15,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,197,28,28,248,22, -175,12,194,91,159,37,11,90,161,37,34,11,248,22,174,12,197,249,22,133,8, -194,68,114,101,108,97,116,105,118,101,11,27,248,22,146,7,6,4,4,80,65, +177,12,194,91,159,37,11,90,161,37,34,11,248,22,176,12,197,249,22,135,8, +194,68,114,101,108,97,116,105,118,101,11,27,248,22,148,7,6,4,4,80,65, 84,72,251,2,52,198,199,200,28,196,27,249,80,158,42,46,199,9,28,249,22, -133,8,247,22,148,7,2,21,249,22,63,248,22,162,12,5,1,46,194,192,9, -27,248,22,178,12,195,28,248,22,165,12,193,250,2,53,198,199,195,11,250,80, -158,37,47,196,197,11,250,80,158,37,47,196,11,11,87,94,249,22,185,5,247, -22,162,4,195,248,22,136,5,249,22,148,3,34,249,22,132,3,197,198,27,248, -22,128,13,2,20,27,249,80,158,38,47,195,11,27,27,248,22,151,3,198,28, -192,192,34,27,27,248,22,151,3,200,28,192,192,34,27,249,22,179,4,197,89, -162,8,36,34,46,9,224,4,3,33,59,27,248,22,166,4,194,87,94,248,22, -130,4,21,94,2,17,2,29,248,80,159,41,53,35,193,159,34,20,102,159,34, +135,8,247,22,150,7,2,21,249,22,63,248,22,164,12,5,1,46,194,192,9, +27,248,22,180,12,195,28,248,22,167,12,193,250,2,53,198,199,195,11,250,80, +158,37,47,196,197,11,250,80,158,37,47,196,11,11,87,94,249,22,187,5,247, +22,164,4,195,248,22,138,5,249,22,150,3,34,249,22,134,3,197,198,27,248, +22,130,13,2,20,27,249,80,158,38,47,195,11,27,27,248,22,153,3,198,28, +192,192,34,27,27,248,22,153,3,200,28,192,192,34,27,249,22,181,4,197,89, +162,8,36,34,46,9,224,4,3,33,59,27,248,22,168,4,194,87,94,248,22, +132,4,21,94,2,17,2,29,248,80,159,41,53,35,193,159,34,20,102,159,34, 16,1,20,24,65,98,101,103,105,110,16,0,83,158,40,20,99,131,67,35,37, 117,116,105,108,115,2,1,11,10,10,10,10,10,41,80,158,34,34,20,102,159, 37,16,17,30,2,1,2,2,193,30,2,1,2,3,193,30,2,1,2,4,193, @@ -274,7 +274,7 @@ 34,16,2,89,162,34,35,54,2,19,223,0,33,31,80,159,34,52,35,83,158, 34,16,2,89,162,8,36,35,43,9,223,0,33,32,80,159,34,51,35,83,158, 34,16,2,32,0,89,162,34,35,43,2,2,222,33,33,80,159,34,34,35,83, -158,34,16,2,249,22,131,6,7,92,7,92,80,159,34,35,35,83,158,34,16, +158,34,16,2,249,22,133,6,7,92,7,92,80,159,34,35,35,83,158,34,16, 2,89,162,34,35,52,2,4,223,0,33,34,80,159,34,36,35,83,158,34,16, 2,32,0,89,162,34,36,48,2,5,222,33,35,80,159,34,37,35,83,158,34, 16,2,32,0,89,162,34,37,49,2,6,222,33,37,80,159,34,38,35,83,158, @@ -286,8 +286,8 @@ 34,43,35,83,158,34,16,2,32,0,89,162,34,35,42,2,12,222,33,46,80, 159,34,44,35,83,158,34,16,2,83,158,37,20,96,95,2,13,89,162,34,34, 41,9,223,0,33,47,89,162,34,35,51,9,223,0,33,48,80,159,34,45,35, -83,158,34,16,2,27,248,22,135,13,248,22,140,7,27,28,249,22,133,8,247, -22,148,7,2,21,6,1,1,59,6,1,1,58,250,22,177,6,6,14,14,40, +83,158,34,16,2,27,248,22,137,13,248,22,142,7,27,28,249,22,135,8,247, +22,150,7,2,21,6,1,1,59,6,1,1,58,250,22,179,6,6,14,14,40, 91,94,126,97,93,42,41,126,97,40,46,42,41,195,195,89,162,34,36,46,2, 14,223,0,33,51,80,159,34,46,35,83,158,34,16,2,83,158,37,20,96,96, 2,15,89,162,8,36,37,52,9,223,0,33,56,89,162,34,36,45,9,223,0, @@ -298,7 +298,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 4179); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,51,46,57,57,46,48,46,53,7,0,0,0,1,0,0,6,0,19, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,51,46,57,57,46,48,46,54,7,0,0,0,1,0,0,6,0,19, 0,34,0,48,0,62,0,76,0,0,0,245,0,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, @@ -315,7 +315,7 @@ EVAL_ONE_SIZED_STR((char *)expr, 281); } { - static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,51,46,57,57,46,48,46,53,52,0,0,0,1,0,0,3,0,14, + static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,8,51,46,57,57,46,48,46,54,52,0,0,0,1,0,0,3,0,14, 0,41,0,47,0,60,0,74,0,96,0,122,0,134,0,152,0,172,0,184,0, 200,0,223,0,3,1,8,1,13,1,18,1,23,1,54,1,58,1,66,1,74, 1,82,1,163,1,199,1,216,1,245,1,17,2,47,2,57,2,87,2,97,2, @@ -337,39 +337,39 @@ 107,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,158,36,44,249,80,159,36,47,35, -195,10,27,28,194,28,249,22,133,8,196,80,158,37,45,80,158,35,46,27,248, -22,145,4,196,28,248,22,153,12,193,91,159,37,11,90,161,37,34,11,248,22, -174,12,196,87,95,83,160,36,11,80,158,39,45,198,83,160,36,11,80,158,39, -46,192,192,11,11,28,192,192,27,247,22,181,5,28,192,192,247,22,129,13,20, -14,159,80,158,34,38,250,80,158,37,39,249,22,27,11,80,158,39,38,22,181, -5,28,248,22,153,12,197,196,247,22,129,13,247,194,250,22,171,12,196,198,249, -80,158,41,37,197,5,3,46,122,111,252,22,171,12,198,200,6,6,6,110,97, -116,105,118,101,247,22,149,7,249,80,158,43,37,199,80,158,43,34,27,193,27, -250,22,188,12,196,11,32,0,89,162,8,44,34,39,9,222,11,28,192,249,22, -63,195,194,11,27,248,194,195,27,250,22,188,12,196,11,32,0,89,162,8,44, -34,39,9,222,11,28,192,249,22,63,195,194,11,249,247,22,134,13,248,22,64, -195,195,27,248,194,195,27,250,22,188,12,196,11,32,0,89,162,8,44,34,39, -9,222,11,28,192,249,22,63,195,194,11,249,247,22,179,5,248,22,64,195,195, -249,247,22,179,5,194,195,87,94,28,248,80,158,35,36,194,12,250,22,163,8, +195,10,27,28,194,28,249,22,135,8,196,80,158,37,45,80,158,35,46,27,248, +22,147,4,196,28,248,22,155,12,193,91,159,37,11,90,161,37,34,11,248,22, +176,12,196,87,95,83,160,36,11,80,158,39,45,198,83,160,36,11,80,158,39, +46,192,192,11,11,28,192,192,27,247,22,183,5,28,192,192,247,22,131,13,20, +14,159,80,158,34,38,250,80,158,37,39,249,22,27,11,80,158,39,38,22,183, +5,28,248,22,155,12,197,196,247,22,131,13,247,194,250,22,173,12,196,198,249, +80,158,41,37,197,5,3,46,122,111,252,22,173,12,198,200,6,6,6,110,97, +116,105,118,101,247,22,151,7,249,80,158,43,37,199,80,158,43,34,27,193,27, +250,22,190,12,196,11,32,0,89,162,8,44,34,39,9,222,11,28,192,249,22, +63,195,194,11,27,248,194,195,27,250,22,190,12,196,11,32,0,89,162,8,44, +34,39,9,222,11,28,192,249,22,63,195,194,11,249,247,22,136,13,248,22,64, +195,195,27,248,194,195,27,250,22,190,12,196,11,32,0,89,162,8,44,34,39, +9,222,11,28,192,249,22,63,195,194,11,249,247,22,181,5,248,22,64,195,195, +249,247,22,181,5,194,195,87,94,28,248,80,158,35,36,194,12,250,22,165,8, 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,196,91,159,40,11,90,161,35,34,11,28,248,22,177,12,200,199, -27,247,22,181,5,28,192,249,22,178,12,202,194,200,90,161,37,35,11,248,22, -174,12,193,90,161,35,38,11,28,249,22,133,8,195,68,114,101,108,97,116,105, -118,101,2,17,193,90,161,35,39,11,247,22,131,13,27,89,162,34,35,48,62, +114,105,110,103,196,91,159,40,11,90,161,35,34,11,28,248,22,179,12,200,199, +27,247,22,183,5,28,192,249,22,180,12,202,194,200,90,161,37,35,11,248,22, +176,12,193,90,161,35,38,11,28,249,22,135,8,195,68,114,101,108,97,116,105, +118,101,2,17,193,90,161,35,39,11,247,22,133,13,27,89,162,34,35,48,62, 122,111,225,7,5,3,33,27,27,89,162,34,35,50,9,225,8,6,4,33,28, 27,249,22,5,89,162,34,35,46,9,223,5,33,29,202,27,28,194,27,249,22, 5,89,162,34,35,46,9,223,5,33,30,204,27,28,195,11,193,28,192,192,28, -193,28,195,28,249,22,144,3,248,22,65,196,248,22,65,198,193,11,11,11,11, +193,28,195,28,249,22,146,3,248,22,65,196,248,22,65,198,193,11,11,11,11, 28,192,249,80,159,46,53,35,202,89,162,34,34,44,9,224,14,2,33,31,27, 28,196,27,249,22,5,89,162,34,35,46,9,223,7,33,32,205,27,28,196,11, -193,28,192,192,28,193,28,196,28,249,22,144,3,248,22,65,196,248,22,65,199, +193,28,192,192,28,193,28,196,28,249,22,146,3,248,22,65,196,248,22,65,199, 193,11,11,11,11,28,192,249,80,159,47,53,35,203,89,162,34,34,44,9,224, 15,2,33,33,249,80,159,47,53,35,203,89,162,34,34,43,9,224,15,7,33, 34,32,36,89,162,34,35,53,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,139,13,2,37,195,28,192, -249,22,63,248,22,88,195,27,248,22,97,196,27,249,22,139,13,2,37,195,28, -192,249,22,63,248,22,88,195,27,248,22,97,196,27,249,22,139,13,2,37,195, +46,42,63,41,47,40,46,42,41,36,34,27,249,22,141,13,2,37,195,28,192, +249,22,63,248,22,88,195,27,248,22,97,196,27,249,22,141,13,2,37,195,28, +192,249,22,63,248,22,88,195,27,248,22,97,196,27,249,22,141,13,2,37,195, 28,192,249,22,63,248,22,88,195,248,2,36,248,22,97,196,248,22,73,194,248, 22,73,194,248,22,73,194,32,39,89,162,34,35,53,2,19,222,33,40,28,248, 22,71,248,22,65,194,249,22,7,9,248,22,64,195,91,159,36,11,90,161,36, @@ -378,80 +378,80 @@ 22,65,194,249,22,7,9,248,22,64,195,91,159,36,11,90,161,36,34,11,248, 2,39,248,22,65,196,249,22,7,249,22,63,248,22,64,199,196,195,249,22,7, 249,22,63,248,22,64,199,196,195,249,22,7,249,22,63,248,22,64,199,196,195, -27,248,2,36,194,28,194,192,248,2,39,193,87,95,28,248,22,143,4,195,12, -250,22,163,8,2,20,6,20,20,114,101,115,111,108,118,101,100,45,109,111,100, +27,248,2,36,194,28,194,192,248,2,39,193,87,95,28,248,22,145,4,195,12, +250,22,165,8,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,207,248,208,195,12,27,27,250,22,126,80, -158,40,41,248,22,157,13,247,22,141,11,11,28,192,192,27,247,22,120,87,94, -250,22,125,80,158,41,41,248,22,157,13,247,22,141,11,195,192,250,22,125,195, -198,66,97,116,116,97,99,104,251,211,197,198,199,10,28,192,250,22,162,8,11, -196,195,248,22,160,8,194,28,249,22,135,6,194,6,1,1,46,2,17,28,249, -22,135,6,194,6,2,2,46,46,62,117,112,192,28,249,22,135,8,248,22,65, -199,196,28,249,22,133,8,248,22,64,199,195,251,22,160,8,2,20,6,26,26, +158,40,41,248,22,159,13,247,22,143,11,11,28,192,192,27,247,22,120,87,94, +250,22,125,80,158,41,41,248,22,159,13,247,22,143,11,195,192,250,22,125,195, +198,66,97,116,116,97,99,104,251,211,197,198,199,10,28,192,250,22,164,8,11, +196,195,248,22,162,8,194,28,249,22,137,6,194,6,1,1,46,2,17,28,249, +22,137,6,194,6,2,2,46,46,62,117,112,192,28,249,22,137,8,248,22,65, +199,196,28,249,22,135,8,248,22,64,199,195,251,22,162,8,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,199,249,22,2,22,65,248,22,78,249,22,63,205,201,12,12, -247,192,20,14,159,80,158,38,43,249,22,63,247,22,141,11,196,20,14,159,80, -158,38,38,250,80,158,41,39,249,22,27,11,80,158,43,38,22,191,3,195,249, -247,22,180,5,197,248,22,52,248,22,157,12,197,87,94,28,28,248,22,153,12, -196,10,248,22,148,4,196,12,28,197,250,22,162,8,11,6,15,15,98,97,100, -32,109,111,100,117,108,101,32,112,97,116,104,200,250,22,163,8,2,20,6,19, +247,192,20,14,159,80,158,38,43,249,22,63,247,22,143,11,196,20,14,159,80, +158,38,38,250,80,158,41,39,249,22,27,11,80,158,43,38,22,129,4,195,249, +247,22,182,5,197,248,22,52,248,22,159,12,197,87,94,28,28,248,22,155,12, +196,10,248,22,150,4,196,12,28,197,250,22,164,8,11,6,15,15,98,97,100, +32,109,111,100,117,108,101,32,112,97,116,104,200,250,22,165,8,2,20,6,19, 19,109,111,100,117,108,101,45,112,97,116,104,32,111,114,32,112,97,116,104,198, -28,28,248,22,61,196,249,22,133,8,248,22,64,198,2,4,11,248,22,144,4, -248,22,88,197,28,28,248,22,61,196,249,22,133,8,248,22,64,198,66,112,108, +28,28,248,22,61,196,249,22,135,8,248,22,64,198,2,4,11,248,22,146,4, +248,22,88,197,28,28,248,22,61,196,249,22,135,8,248,22,64,198,66,112,108, 97,110,101,116,11,87,94,28,207,12,20,14,159,80,158,36,38,250,80,158,39, -39,249,22,27,11,80,158,41,38,22,141,11,196,90,161,35,34,10,249,22,128, +39,249,22,27,11,80,158,41,38,22,143,11,196,90,161,35,34,10,249,22,130, 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,27, 89,162,34,35,44,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,51,198,27,250,22,126,80,158,42, -42,249,22,63,203,247,22,130,13,11,28,192,192,91,159,36,11,90,161,36,34, +42,249,22,63,203,247,22,132,13,11,28,192,192,91,159,36,11,90,161,36,34, 11,249,80,159,43,47,35,248,22,54,203,11,27,251,80,158,46,49,2,20,201, 28,248,22,71,198,198,248,22,64,198,28,248,22,71,198,9,248,22,65,198,249, -22,171,12,194,28,248,22,71,196,6,7,7,109,97,105,110,46,115,115,249,22, -152,6,198,6,3,3,46,115,115,28,248,22,129,6,198,27,248,80,159,40,54, +22,173,12,194,28,248,22,71,196,6,7,7,109,97,105,110,46,115,115,249,22, +154,6,198,6,3,3,46,115,115,28,248,22,131,6,198,27,248,80,159,40,54, 35,200,27,250,22,126,80,158,43,42,249,22,63,204,198,11,28,192,192,91,159, -36,11,90,161,36,34,11,249,80,159,44,47,35,203,11,250,22,1,22,171,12, +36,11,90,161,36,34,11,249,80,159,44,47,35,203,11,250,22,1,22,173,12, 198,249,22,77,249,22,2,32,0,89,162,8,36,35,42,9,222,33,45,199,248, -22,73,199,28,248,22,153,12,198,28,248,22,176,12,198,197,248,22,73,6,26, +22,73,199,28,248,22,155,12,198,28,248,22,178,12,198,197,248,22,73,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,133,8,248,22,64,200,2,21,27,250,22,126, -80,158,42,42,249,22,63,203,247,22,130,13,11,28,192,192,91,159,37,11,90, +111,108,117,116,101,41,28,249,22,135,8,248,22,64,200,2,21,27,250,22,126, +80,158,42,42,249,22,63,203,247,22,132,13,11,28,192,192,91,159,37,11,90, 161,36,34,11,249,80,159,44,47,35,248,22,88,204,11,90,161,35,36,11,28, -248,22,71,248,22,90,203,28,248,22,71,193,249,22,141,13,0,8,35,114,120, +248,22,71,248,22,90,203,28,248,22,71,193,249,22,143,13,0,8,35,114,120, 34,91,46,93,34,195,11,10,27,27,28,196,249,22,77,28,248,22,71,248,22, 90,23,15,21,93,6,5,5,109,122,108,105,98,249,22,1,22,77,249,22,2, 80,159,50,55,35,248,22,90,23,18,196,28,248,22,71,195,248,22,73,196,194, -251,80,158,48,49,2,20,203,248,22,64,197,248,22,65,197,249,22,171,12,194, +251,80,158,48,49,2,20,203,248,22,64,197,248,22,65,197,249,22,173,12,194, 28,197,196,28,248,22,71,196,6,7,7,109,97,105,110,46,115,115,28,249,22, -141,13,0,8,35,114,120,34,91,46,93,34,198,196,249,22,152,6,198,6,3, -3,46,115,115,28,249,22,133,8,248,22,64,200,64,102,105,108,101,249,22,178, -12,248,22,88,200,248,80,159,41,54,35,201,12,87,94,28,28,248,22,153,12, -193,10,248,22,151,7,193,12,28,199,250,22,162,8,67,114,101,113,117,105,114, -101,249,22,177,6,6,17,17,98,97,100,32,109,111,100,117,108,101,32,112,97, -116,104,126,97,28,197,248,22,64,198,6,0,0,202,250,22,163,8,2,20,249, -22,177,6,6,13,13,109,111,100,117,108,101,32,112,97,116,104,126,97,28,197, -248,22,64,198,6,0,0,200,27,28,248,22,151,7,194,249,22,156,7,195,34, -249,22,180,12,248,22,181,12,196,11,27,28,248,22,151,7,195,249,22,156,7, -196,35,248,80,158,41,50,194,91,159,37,11,90,161,37,34,11,28,248,22,151, -7,198,250,22,7,2,22,249,22,156,7,202,36,2,22,248,22,174,12,197,27, -28,248,22,151,7,199,249,22,156,7,200,37,249,80,158,46,51,196,5,0,27, -28,248,22,151,7,200,249,22,156,7,201,38,248,22,144,4,199,27,27,250,22, -126,80,158,50,41,248,22,157,13,247,22,141,11,11,28,192,192,27,247,22,120, -87,94,250,22,125,80,158,51,41,248,22,157,13,247,22,141,11,195,192,87,95, +143,13,0,8,35,114,120,34,91,46,93,34,198,196,249,22,154,6,198,6,3, +3,46,115,115,28,249,22,135,8,248,22,64,200,64,102,105,108,101,249,22,180, +12,248,22,88,200,248,80,159,41,54,35,201,12,87,94,28,28,248,22,155,12, +193,10,248,22,153,7,193,12,28,199,250,22,164,8,67,114,101,113,117,105,114, +101,249,22,179,6,6,17,17,98,97,100,32,109,111,100,117,108,101,32,112,97, +116,104,126,97,28,197,248,22,64,198,6,0,0,202,250,22,165,8,2,20,249, +22,179,6,6,13,13,109,111,100,117,108,101,32,112,97,116,104,126,97,28,197, +248,22,64,198,6,0,0,200,27,28,248,22,153,7,194,249,22,158,7,195,34, +249,22,182,12,248,22,183,12,196,11,27,28,248,22,153,7,195,249,22,158,7, +196,35,248,80,158,41,50,194,91,159,37,11,90,161,37,34,11,28,248,22,153, +7,198,250,22,7,2,22,249,22,158,7,202,36,2,22,248,22,176,12,197,27, +28,248,22,153,7,199,249,22,158,7,200,37,249,80,158,46,51,196,5,0,27, +28,248,22,153,7,200,249,22,158,7,201,38,248,22,146,4,199,27,27,250,22, +126,80,158,50,41,248,22,159,13,247,22,143,11,11,28,192,192,27,247,22,120, +87,94,250,22,125,80,158,51,41,248,22,159,13,247,22,143,11,195,192,87,95, 28,23,16,27,250,22,126,196,197,11,28,192,12,87,95,27,27,28,248,22,17, 80,158,50,44,80,158,49,44,247,22,19,250,22,25,248,22,23,196,80,158,52, -43,195,27,247,22,141,11,249,22,3,89,162,34,35,53,9,226,12,11,2,3, +43,195,27,247,22,143,11,249,22,3,89,162,34,35,53,9,226,12,11,2,3, 33,46,195,248,28,248,22,17,80,158,49,44,32,0,89,162,34,35,40,9,222, 33,47,80,159,48,56,35,89,162,34,34,49,9,227,14,9,8,4,3,33,48, -250,22,125,196,197,10,12,28,28,248,22,151,7,201,11,27,248,22,129,6,23, -15,28,192,192,28,248,22,61,23,15,249,22,133,8,248,22,64,23,17,2,21, -11,250,22,125,80,158,49,42,28,248,22,129,6,23,17,249,22,63,23,18,248, -80,159,52,54,35,23,20,249,22,63,23,18,247,22,130,13,252,22,153,7,23, +250,22,125,196,197,10,12,28,28,248,22,153,7,201,11,27,248,22,131,6,23, +15,28,192,192,28,248,22,61,23,15,249,22,135,8,248,22,64,23,17,2,21, +11,250,22,125,80,158,49,42,28,248,22,131,6,23,17,249,22,63,23,18,248, +80,159,52,54,35,23,20,249,22,63,23,18,247,22,132,13,252,22,155,7,23, 15,206,204,202,201,12,193,91,159,36,10,90,161,35,34,10,11,90,161,35,35, 10,83,158,37,20,96,96,2,20,89,162,8,36,35,49,9,224,2,0,33,42, 89,162,34,37,47,9,223,1,33,43,89,162,34,38,8,30,9,225,2,3,0, -33,49,208,87,95,248,22,190,3,248,80,158,36,48,247,22,141,11,248,22,180, -5,80,158,35,35,248,22,191,11,80,159,35,40,35,159,34,20,102,159,34,16, +33,49,208,87,95,248,22,128,4,248,80,158,36,48,247,22,143,11,248,22,182, +5,80,158,35,35,248,22,129,12,80,159,35,40,35,159,34,20,102,159,34,16, 1,20,24,65,98,101,103,105,110,16,0,83,158,40,20,99,131,66,35,37,98, 111,111,116,2,1,11,10,10,10,10,10,36,80,158,34,34,20,102,159,38,16, 19,30,2,1,2,2,193,30,2,1,2,3,193,30,2,5,72,112,97,116,104, @@ -472,7 +472,7 @@ 89,162,8,36,35,43,9,223,0,33,24,80,159,34,55,35,83,158,34,16,2, 89,162,34,35,47,67,103,101,116,45,100,105,114,223,0,33,25,80,159,34,54, 35,83,158,34,16,2,89,162,34,36,47,68,119,105,116,104,45,100,105,114,223, -0,33,26,80,159,34,53,35,83,158,34,16,2,248,22,148,7,69,115,111,45, +0,33,26,80,159,34,53,35,83,158,34,16,2,248,22,150,7,69,115,111,45, 115,117,102,102,105,120,80,159,34,34,35,83,158,34,16,2,89,162,34,36,58, 2,3,223,0,33,35,80,159,34,35,35,83,158,34,16,2,32,0,89,162,8, 36,35,40,2,7,222,192,80,159,34,40,35,83,158,34,16,2,248,22,120,2, diff --git a/src/mzscheme/src/list.c b/src/mzscheme/src/list.c index cc7d6d1fb4..52b9079128 100644 --- a/src/mzscheme/src/list.c +++ b/src/mzscheme/src/list.c @@ -110,7 +110,9 @@ static Scheme_Object *make_graph(int argc, Scheme_Object *argv[]); static Scheme_Object *make_placeholder(int argc, Scheme_Object *argv[]); static Scheme_Object *placeholder_set(int argc, Scheme_Object *argv[]); static Scheme_Object *placeholder_get(int argc, Scheme_Object *argv[]); +static Scheme_Object *placeholder_p(int argc, Scheme_Object *argv[]); static Scheme_Object *make_table_placeholder(int argc, Scheme_Object *argv[]); +static Scheme_Object *table_placeholder_p(int argc, Scheme_Object *argv[]); #define BOX "box" #define BOXP "box?" @@ -546,11 +548,21 @@ scheme_init_list (Scheme_Env *env) "placeholder-set!", 2, 2), env); + scheme_add_global_constant("placeholder?", + scheme_make_folding_prim(placeholder_p, + "placeholder?", + 1, 1, 1), + env); scheme_add_global_constant("make-hash-table-placeholder", scheme_make_prim_w_arity(make_table_placeholder, "make-hash-table-placeholder", 2, 3), env); + scheme_add_global_constant("hash-table-placeholder?", + scheme_make_folding_prim(table_placeholder_p, + "hash-table-placeholder?", + 1, 1, 1), + env); REGISTER_SO(weak_symbol); REGISTER_SO(equal_symbol); @@ -1974,6 +1986,13 @@ static Scheme_Object *placeholder_get(int argc, Scheme_Object *argv[]) return SCHEME_PTR_VAL(argv[0]); } +static Scheme_Object *placeholder_p(int c, Scheme_Object *p[]) +{ + return (SAME_TYPE(SCHEME_TYPE(p[0]), scheme_placeholder_type) + ? scheme_true + : scheme_false); +} + static Scheme_Object *make_table_placeholder(int argc, Scheme_Object *argv[]) { Scheme_Object *l, *a, *ph; @@ -2003,6 +2022,15 @@ static Scheme_Object *make_table_placeholder(int argc, Scheme_Object *argv[]) return ph; } +static Scheme_Object *table_placeholder_p(int c, Scheme_Object *p[]) +{ + return (SAME_TYPE(SCHEME_TYPE(p[0]), scheme_table_placeholder_type) + ? scheme_true + : scheme_false); +} + + + /************************************************************/ /* ephemerons */ /************************************************************/ diff --git a/src/mzscheme/src/schminc.h b/src/mzscheme/src/schminc.h index 92c6943f1f..4dad94d7e1 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 887 +#define EXPECTED_PRIM_COUNT 889 #ifdef MZSCHEME_SOMETHING_OMITTED # undef USE_COMPILED_STARTUP diff --git a/src/mzscheme/src/schvers.h b/src/mzscheme/src/schvers.h index e1ee38eb33..309f4bf96f 100644 --- a/src/mzscheme/src/schvers.h +++ b/src/mzscheme/src/schvers.h @@ -10,12 +10,12 @@ The string and the separate X/Y/Z/W numbers must be updated consistently. */ -#define MZSCHEME_VERSION "3.99.0.5" +#define MZSCHEME_VERSION "3.99.0.6" #define MZSCHEME_VERSION_X 3 #define MZSCHEME_VERSION_Y 99 #define MZSCHEME_VERSION_Z 0 -#define MZSCHEME_VERSION_W 5 +#define MZSCHEME_VERSION_W 6 #define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y) #define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W)