fill out more documentation; add placeholder? and hash-table-placeholder?

svn: r8089
This commit is contained in:
Matthew Flatt 2007-12-21 03:45:22 +00:00
parent 8c42e26cde
commit 68ec60f448
12 changed files with 422 additions and 244 deletions

View File

@ -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

View File

@ -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.}

View File

@ -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].}

View File

@ -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].}

View File

@ -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))]

View File

@ -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

View File

@ -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))

View File

@ -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].}

View File

@ -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,

View File

@ -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 */
/************************************************************/

View File

@ -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

View File

@ -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)