add eqv hash tables; add hash-update
svn: r12018
This commit is contained in:
parent
c08e09ae6c
commit
ec68bafa9c
|
@ -736,7 +736,9 @@
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(out (if (hash-table? obj 'equal)
|
(out (if (hash-table? obj 'equal)
|
||||||
"#hash"
|
"#hash"
|
||||||
"#hasheq"))
|
(if (hash-table? obj 'eqv)
|
||||||
|
"#hasheqv"
|
||||||
|
"#hasheq")))
|
||||||
(wr-lst (hash-table-map obj (lambda (k v)
|
(wr-lst (hash-table-map obj (lambda (k v)
|
||||||
(cons k (make-hide v))))
|
(cons k (make-hide v))))
|
||||||
#f depth
|
#f depth
|
||||||
|
@ -855,7 +857,9 @@
|
||||||
[(hash-table? obj)
|
[(hash-table? obj)
|
||||||
(out (if (hash-table? obj 'equal)
|
(out (if (hash-table? obj 'equal)
|
||||||
"#hash"
|
"#hash"
|
||||||
"#hasheq"))
|
(if (hash-table? obj 'eqv)
|
||||||
|
"#hasheqv"
|
||||||
|
"#hasheq")))
|
||||||
(pp-list (hash-table-map obj cons) extra pp-expr #f depth
|
(pp-list (hash-table-map obj cons) extra pp-expr #f depth
|
||||||
pair? car cdr pair-open pair-close)]
|
pair? car cdr pair-open pair-close)]
|
||||||
[(and (box? obj) print-box?)
|
[(and (box? obj) print-box?)
|
||||||
|
|
|
@ -316,42 +316,62 @@ Equivalent to @scheme[(namespace-require `(for-syntax ,req))].}
|
||||||
Raises @scheme[exn:fail], because the operations are not supported.}
|
Raises @scheme[exn:fail], because the operations are not supported.}
|
||||||
|
|
||||||
|
|
||||||
@defproc[(hash-table? [v any/c] [flag (one-of/c 'weak 'equal)] ...)
|
@defproc*[([(hash-table? [v any/c])
|
||||||
hash-table?]{
|
hash-table?]
|
||||||
|
[(hash-table? [v any/c] [flag (one-of/c 'weak 'equal 'eqv)])
|
||||||
|
hash-table?]
|
||||||
|
[(hash-table? [v any/c]
|
||||||
|
[flag (one-of/c 'weak 'equal 'eqv)]
|
||||||
|
[flag (one-of/c 'weak 'equal 'eqv)])
|
||||||
|
hash-table?])]{
|
||||||
|
|
||||||
Returns @scheme[#t] if @scheme[v] like a hash table created by
|
Returns @scheme[#t] if @scheme[v] like a hash table created by
|
||||||
@scheme[make-hash-table] or @scheme[make-immutable-hash-table] with
|
@scheme[make-hash-table] or @scheme[make-immutable-hash-table] with
|
||||||
the given @scheme[flag]s (or more), @scheme[#f] otherwise. Each
|
the given @scheme[flag]s (or more), @scheme[#f] otherwise. Each
|
||||||
provided @scheme[flag] must be distinct; if the second @scheme[flag]
|
provided @scheme[flag] must be distinct and @scheme['equal] cannot be
|
||||||
is redundant, the @scheme[exn:fail:contract] exception is raised.}
|
used with @scheme['eqv], otherwise the @scheme[exn:fail:contract]
|
||||||
|
exception is raised.}
|
||||||
|
|
||||||
|
|
||||||
@defproc[(make-hash-table [flag (one-of/c 'weak 'equal)] ...)
|
@defproc*[([(make-hash-table)
|
||||||
hash-table?]{
|
hash-table?]
|
||||||
|
[(make-hash-table [flag (one-of/c 'weak 'equal 'eqv)])
|
||||||
|
hash-table?]
|
||||||
|
[(make-hash-table [flag (one-of/c 'weak 'equal 'eqv)]
|
||||||
|
[flag (one-of/c 'weak 'equal 'eqv)])
|
||||||
|
hash-table?])]{
|
||||||
|
|
||||||
Creates and returns a new hash table. If provided, each @scheme[flag]
|
Creates and returns a new hash table. If provided, each @scheme[flag]
|
||||||
must one of the following:
|
must one of the following:
|
||||||
|
|
||||||
@itemize{
|
@itemize{
|
||||||
|
|
||||||
@item{@indexed-scheme['weak] --- creates a hash table with weakly-held
|
@item{@indexed-scheme['weak] --- creates a hash table with
|
||||||
keys via @scheme[make-weak-hash] or @scheme[make-weak-hasheq]}
|
weakly-held keys via @scheme[make-weak-hash],
|
||||||
|
@scheme[make-weak-hasheq], or @scheme[make-weak-hasheqv].}
|
||||||
|
|
||||||
@item{@indexed-scheme['equal] --- creates a hash table that compares
|
@item{@indexed-scheme['equal] --- creates a hash table that compares
|
||||||
keys using @scheme[equal?] instead of @scheme[eq?] using
|
keys using @scheme[equal?] instead of @scheme[eq?] using
|
||||||
@scheme[make-hash] or @scheme[make-weak-hash].}
|
@scheme[make-hash] or @scheme[make-weak-hash].}
|
||||||
|
|
||||||
|
@item{@indexed-scheme['eqv] --- creates a hash table that compares
|
||||||
|
keys using @scheme[eqv?] instead of @scheme[eq?] using
|
||||||
|
@scheme[make-hasheqv] or @scheme[make-weak-hasheqv].}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
By default, key comparisons use @scheme[eq?]. If the second
|
By default, key comparisons use @scheme[eq?] (i.e., the hash table is
|
||||||
@scheme[flag] is redundant, the @scheme[exn:fail:contract] exception
|
created with @scheme[make-hasheq]). If the second @scheme[flag] is
|
||||||
is raised.}
|
redundant or @scheme['equal] is provided with @scheme['eqv], the
|
||||||
|
@scheme[exn:fail:contract] exception is raised.}
|
||||||
|
|
||||||
|
|
||||||
@defproc[(make-immutable-hash-table [assocs (listof pair?)]
|
@defproc*[([(make-immutable-hash-table [assocs (listof pair?)])
|
||||||
[flag (one-of/c 'equal)]
|
(and/c hash-table? immutable?)]
|
||||||
...)
|
[(make-immutable-hash-table [assocs (listof pair?)]
|
||||||
(and/c hash-table? immutable?)]{
|
[flag (one-of/c 'equal 'eqv)])
|
||||||
|
(and/c hash-table? immutable?)])]{
|
||||||
|
|
||||||
Like @scheme[make-immutable-hash] or @scheme[make-immutable-hasheq],
|
Like @scheme[make-immutable-hash], @scheme[make-immutable-hasheq], or
|
||||||
depending on whether an @scheme['equal] @scheme[flag] is provided.}
|
@scheme[make-immutable-hasheqv], depending on whether an
|
||||||
|
@scheme['equal] or @scheme['eqv] @scheme[flag] is provided.}
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
dict-ref
|
dict-ref
|
||||||
dict-set!
|
dict-set!
|
||||||
dict-set
|
dict-set
|
||||||
|
dict-update!
|
||||||
|
dict-update
|
||||||
dict-remove!
|
dict-remove!
|
||||||
dict-remove
|
dict-remove
|
||||||
dict-count
|
dict-count
|
||||||
|
@ -206,6 +208,20 @@
|
||||||
[else
|
[else
|
||||||
(raise-type-error 'dict-set "dict" 0 d key val)]))
|
(raise-type-error 'dict-set "dict" 0 d key val)]))
|
||||||
|
|
||||||
|
(define dict-update!
|
||||||
|
(case-lambda
|
||||||
|
[(d key xform)
|
||||||
|
(dict-set! d key (xform (dict-ref d key)))]
|
||||||
|
[(d key xform default)
|
||||||
|
(dict-set! d key (xform (dict-ref d key default)))]))
|
||||||
|
|
||||||
|
(define dict-update
|
||||||
|
(case-lambda
|
||||||
|
[(d key xform)
|
||||||
|
(dict-set d key (xform (dict-ref d key)))]
|
||||||
|
[(d key xform default)
|
||||||
|
(dict-set d key (xform (dict-ref d key default)))]))
|
||||||
|
|
||||||
(define (dict-remove! d key)
|
(define (dict-remove! d key)
|
||||||
(cond
|
(cond
|
||||||
[(hash? d) (hash-remove! d key)]
|
[(hash? d) (hash-remove! d key)]
|
||||||
|
|
|
@ -23,7 +23,8 @@
|
||||||
(#%provide require require-for-syntax require-for-template require-for-label
|
(#%provide require require-for-syntax require-for-template require-for-label
|
||||||
provide provide-for-syntax provide-for-label
|
provide provide-for-syntax provide-for-label
|
||||||
(all-from-except "private/more-scheme.ss" case old-case
|
(all-from-except "private/more-scheme.ss" case old-case
|
||||||
log-fatal log-error log-warning log-info log-debug)
|
log-fatal log-error log-warning log-info log-debug
|
||||||
|
hash-update hash-update!)
|
||||||
(rename old-case case)
|
(rename old-case case)
|
||||||
(all-from "private/misc.ss")
|
(all-from "private/misc.ss")
|
||||||
(all-from-except "private/stxcase-scheme.ss" _)
|
(all-from-except "private/stxcase-scheme.ss" _)
|
||||||
|
|
|
@ -349,10 +349,39 @@
|
||||||
(define-log log-info info)
|
(define-log log-info info)
|
||||||
(define-log log-debug debug)
|
(define-log log-debug debug)
|
||||||
|
|
||||||
|
(define-values (hash-update hash-update!)
|
||||||
|
(let* ([not-there (gensym)]
|
||||||
|
[up (lambda (who mut? ref set ht key xform default)
|
||||||
|
(unless (and (hash? ht)
|
||||||
|
(or (not mut?)
|
||||||
|
(not (immutable? ht))))
|
||||||
|
(raise-type-error who (if mut? "mutable hash" "hash") ht))
|
||||||
|
(unless (and (procedure? xform)
|
||||||
|
(procedure-arity-includes? xform 1))
|
||||||
|
(raise-type-error who "procedure (arity 1)" xform))
|
||||||
|
(let ([v (ref ht key default)])
|
||||||
|
(if (eq? v not-there)
|
||||||
|
(raise-mismatch-error who "no value found for key: " key)
|
||||||
|
(set ht key (xform v)))))])
|
||||||
|
(let ([hash-update
|
||||||
|
(case-lambda
|
||||||
|
[(ht key xform default)
|
||||||
|
(up 'hash-update #f hash-ref hash-set ht key xform default)]
|
||||||
|
[(ht key xform)
|
||||||
|
(hash-update ht key xform not-there)])]
|
||||||
|
[hash-update!
|
||||||
|
(case-lambda
|
||||||
|
[(ht key xform default)
|
||||||
|
(up 'hash-update! #t hash-ref hash-set! ht key xform default)]
|
||||||
|
[(ht key xform)
|
||||||
|
(hash-update! ht key xform not-there)])])
|
||||||
|
(values hash-update hash-update!))))
|
||||||
|
|
||||||
(#%provide case old-case do
|
(#%provide case old-case do
|
||||||
parameterize parameterize* current-parameterization call-with-parameterization
|
parameterize parameterize* current-parameterization call-with-parameterization
|
||||||
parameterize-break current-break-parameterization call-with-break-parameterization
|
parameterize-break current-break-parameterization call-with-break-parameterization
|
||||||
with-handlers with-handlers* call-with-exception-handler
|
with-handlers with-handlers* call-with-exception-handler
|
||||||
set!-values
|
set!-values
|
||||||
let/cc fluid-let time
|
let/cc fluid-let time
|
||||||
log-fatal log-error log-warning log-info log-debug))
|
log-fatal log-error log-warning log-info log-debug
|
||||||
|
hash-update hash-update!))
|
||||||
|
|
|
@ -54,12 +54,18 @@
|
||||||
(make-hash)
|
(make-hash)
|
||||||
(if (eq? a 'weak)
|
(if (eq? a 'weak)
|
||||||
(make-weak-hasheq)
|
(make-weak-hasheq)
|
||||||
(raise-mismatch-error 'make-hash-table "bad argument: " a)))]
|
(if (eq? a 'eqv)
|
||||||
[(a b) (if (or (and (eq? a 'equal)
|
(make-hasheqv)
|
||||||
|
(raise-mismatch-error 'make-hash-table "bad argument: " a))))]
|
||||||
|
[(a b) (if (or (and (or (eq? a 'equal)
|
||||||
|
(eq? a 'eqv))
|
||||||
(eq? b 'weak))
|
(eq? b 'weak))
|
||||||
(and (eq? a 'weak)
|
(and (eq? a 'weak)
|
||||||
(eq? b 'equal)))
|
(or (eq? b 'equal)
|
||||||
(make-weak-hash)
|
(eq? b 'eqv))))
|
||||||
|
(if (or (eq? a 'eqv) (eq? b 'eqv))
|
||||||
|
(make-weak-hasheqv)
|
||||||
|
(make-weak-hash))
|
||||||
(raise-mismatch-error 'make-hash-table "bad arguments: " (list a b)))]))
|
(raise-mismatch-error 'make-hash-table "bad arguments: " (list a b)))]))
|
||||||
|
|
||||||
(define make-immutable-hash-table
|
(define make-immutable-hash-table
|
||||||
|
@ -67,23 +73,30 @@
|
||||||
[(l) (make-immutable-hasheq l)]
|
[(l) (make-immutable-hasheq l)]
|
||||||
[(l a) (if (eq? a 'equal)
|
[(l a) (if (eq? a 'equal)
|
||||||
(make-immutable-hash l)
|
(make-immutable-hash l)
|
||||||
(raise-mismatch-error 'make-immutable-hash-table "bad argument: " a))]))
|
(if (eq? a 'eqv)
|
||||||
|
(make-immutable-hasheqv l)
|
||||||
|
(raise-mismatch-error 'make-immutable-hash-table "bad argument: " a)))]))
|
||||||
|
|
||||||
(define hash-table?
|
(define hash-table?
|
||||||
(case-lambda
|
(case-lambda
|
||||||
[(v) (hash? v)]
|
[(v) (hash? v)]
|
||||||
[(v a) (if (eq? a 'equal)
|
[(v a) (if (eq? a 'equal)
|
||||||
(and (hash? v)
|
(and (hash? v)
|
||||||
(not (hash-eq? v)))
|
(not (hash-eq? v))
|
||||||
|
(not (hash-eqv? v)))
|
||||||
(if (eq? a 'weak)
|
(if (eq? a 'weak)
|
||||||
(and (hash? v)
|
(and (hash? v)
|
||||||
(hash-weak? v))
|
(hash-weak? v))
|
||||||
(raise-mismatch-error 'hash-table? "bad argument: " a)))]
|
(if (eq? a 'eqv)
|
||||||
[(v a b) (if (or (and (eq? a 'equal)
|
(hash-eqv? v)
|
||||||
|
(raise-mismatch-error 'hash-table? "bad argument: " a))))]
|
||||||
|
[(v a b) (if (or (and (or (eq? a 'equal) (eq? a 'eqv))
|
||||||
(eq? b 'weak))
|
(eq? b 'weak))
|
||||||
(and (eq? a 'weak)
|
(and (eq? a 'weak)
|
||||||
(eq? b 'equal)))
|
(or (eq? b 'equal) (eq? b 'eqv))))
|
||||||
(and (hash? v)
|
(and (hash? v)
|
||||||
(not (hash-eq? v))
|
(if (or (eq? a 'eqv) (eq? b 'eqv))
|
||||||
|
(hash-eqv? v)
|
||||||
|
(not (or (hash-eq? v) (hash-eqv? v))))
|
||||||
(hash-weak? v))
|
(hash-weak? v))
|
||||||
(raise-mismatch-error 'hash-table? "bad arguments: " (list a b)))])))
|
(raise-mismatch-error 'hash-table? "bad arguments: " (list a b)))])))
|
||||||
|
|
|
@ -163,6 +163,43 @@ result:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@defproc[(dict-update! [dict (and/c dict? (not/c immutable?))]
|
||||||
|
[key any/c]
|
||||||
|
[updater (any/c . -> . any/c)]
|
||||||
|
[failure-result any/c (lambda () (raise (make-exn:fail ....)))]) void?]{
|
||||||
|
|
||||||
|
Composes @scheme[dict-ref] and @scheme[dict-set!] to update an
|
||||||
|
existing mapping in @scheme[dict].
|
||||||
|
|
||||||
|
@examples[
|
||||||
|
#:eval dict-eval
|
||||||
|
(define h (make-hash))
|
||||||
|
(dict-update! h 'a add1)
|
||||||
|
(dict-update! h 'a add1 0)
|
||||||
|
h
|
||||||
|
(define v (vector #f #f #f))
|
||||||
|
(dict-update! v 0 not)
|
||||||
|
v
|
||||||
|
]}
|
||||||
|
|
||||||
|
|
||||||
|
@defproc[(dict-update [dict dict?]
|
||||||
|
[key any/c]
|
||||||
|
[updater (any/c . -> . any/c)]
|
||||||
|
[failure-result any/c (lambda () (raise (make-exn:fail ....)))])
|
||||||
|
(and/c dict? immutable?)]{
|
||||||
|
|
||||||
|
Composes @scheme[dict-ref] and @scheme[dict-set] to functionally
|
||||||
|
update an existing mapping in @scheme[dict].
|
||||||
|
|
||||||
|
@examples[
|
||||||
|
#:eval dict-eval
|
||||||
|
(dict-update #hash() 'a add1)
|
||||||
|
(dict-update #hash() 'a add1 0)
|
||||||
|
(dict-update #hash((a . "apple") (b . "beer")) 'b string-length)
|
||||||
|
]}
|
||||||
|
|
||||||
|
|
||||||
@defproc[(dict-remove! [dict (and/c dict? (not/c immutable?))]
|
@defproc[(dict-remove! [dict (and/c dict? (not/c immutable?))]
|
||||||
[key any/c])
|
[key any/c])
|
||||||
void?]{
|
void?]{
|
||||||
|
|
|
@ -7,10 +7,10 @@
|
||||||
|
|
||||||
A @deftech{hash table} (or simply @deftech{hash}) maps each of its
|
A @deftech{hash table} (or simply @deftech{hash}) maps each of its
|
||||||
keys to a single value. For a given hash table, keys are equivalent
|
keys to a single value. For a given hash table, keys are equivalent
|
||||||
via @scheme[equal?] or @scheme[eq?], and keys are retained either
|
via @scheme[equal?], @scheme[eqv?], or @scheme[eq?], and keys are
|
||||||
strongly or weakly (see @secref["weakbox"]). A hash table is also
|
retained either strongly or weakly (see @secref["weakbox"]). A hash
|
||||||
either mutable or immutable; immutable tables support constant-time
|
table is also either mutable or immutable; immutable tables support
|
||||||
functional update.
|
constant-time functional update.
|
||||||
|
|
||||||
A hash table can be used as a two-valued @tech{sequence} (see
|
A hash table can be used as a two-valued @tech{sequence} (see
|
||||||
@secref["sequences"]). The keys and values of the hash table serve as
|
@secref["sequences"]). The keys and values of the hash table serve as
|
||||||
|
@ -22,13 +22,14 @@ keys and values. See also @scheme[in-hash], @scheme[in-hash-keys],
|
||||||
@scheme[in-hash-values], and @scheme[in-hash-pairs].
|
@scheme[in-hash-values], and @scheme[in-hash-pairs].
|
||||||
|
|
||||||
Two hash tables cannot be @scheme[equal?] unless they use the same
|
Two hash tables cannot be @scheme[equal?] unless they use the same
|
||||||
key-comparison procedure (@scheme[equal?] or @scheme[eq?]), both hold keys
|
key-comparison procedure (@scheme[equal?], @scheme[eqv?], or
|
||||||
strongly or weakly, and have the same mutability.
|
@scheme[eq?]), both hold keys strongly or weakly, and have the same
|
||||||
|
mutability.
|
||||||
|
|
||||||
@bold{Caveats concerning concurrent modification:} A mutable hash
|
@bold{Caveats concerning concurrent modification:} A mutable hash
|
||||||
table can be manipulated with @scheme[hash-ref], @scheme[hash-set!],
|
table can be manipulated with @scheme[hash-ref], @scheme[hash-set!],
|
||||||
and @scheme[hash-remove!] concurrently by multiple threads, and the
|
and @scheme[hash-remove!] concurrently by multiple threads, and the
|
||||||
operations are protected by a table-specific semaphore as needed. Two
|
operations are protected by a table-specific semaphore as needed. Three
|
||||||
caveats apply, however:
|
caveats apply, however:
|
||||||
|
|
||||||
@itemize{
|
@itemize{
|
||||||
|
@ -50,6 +51,11 @@ caveats apply, however:
|
||||||
otherwise the traversal skips a deleted key or uses the remapped
|
otherwise the traversal skips a deleted key or uses the remapped
|
||||||
key's new value).}
|
key's new value).}
|
||||||
|
|
||||||
|
@item{The @scheme[hash-update!] function uses a table's semaphore
|
||||||
|
independently for the @scheme[hash-ref] and @scheme[hash-set!] parts
|
||||||
|
of its functionality, which means that the update as a whole is not
|
||||||
|
``atomic.''}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@bold{Caveat concerning mutable keys:} If a key into an
|
@bold{Caveat concerning mutable keys:} If a key into an
|
||||||
|
@ -63,10 +69,15 @@ for insertion and lookup operations becomes unpredictable.
|
||||||
Returns @scheme[#t] if @scheme[v] is a @tech{hash table}, @scheme[#f]
|
Returns @scheme[#t] if @scheme[v] is a @tech{hash table}, @scheme[#f]
|
||||||
otherwise.}
|
otherwise.}
|
||||||
|
|
||||||
|
@defproc[(hash-eqv? [hash hash?]) boolean?]{
|
||||||
|
|
||||||
|
Returns @scheme[#t] if @scheme[hash] compares keys with @scheme[eqv?],
|
||||||
|
@scheme[#f] if it compares with @scheme[equal?] or @scheme[eq?].}
|
||||||
|
|
||||||
@defproc[(hash-eq? [hash hash?]) boolean?]{
|
@defproc[(hash-eq? [hash hash?]) boolean?]{
|
||||||
|
|
||||||
Returns @scheme[#t] if @scheme[hash] compares keys with @scheme[eq?],
|
Returns @scheme[#t] if @scheme[hash] compares keys with @scheme[eq?],
|
||||||
@scheme[#f] if it compares with @scheme[equal?].}
|
@scheme[#f] if it compares with @scheme[equal?] or @scheme[eqv?].}
|
||||||
|
|
||||||
|
|
||||||
@defproc[(hash-weak? [hash hash?]) boolean?]{
|
@defproc[(hash-weak? [hash hash?]) boolean?]{
|
||||||
|
@ -82,6 +93,12 @@ uses @scheme[equal?] to compare keys. See also
|
||||||
@scheme[make-custom-hash].}
|
@scheme[make-custom-hash].}
|
||||||
|
|
||||||
|
|
||||||
|
@defproc[(make-hasheqv) (and/c hash? hash-eqv?)]{
|
||||||
|
|
||||||
|
Creates an empty mutable hash table that holds keys strongly and that
|
||||||
|
uses @scheme[eqv?] to compare keys.}
|
||||||
|
|
||||||
|
|
||||||
@defproc[(make-hasheq) (and/c hash? hash-eq?)]{
|
@defproc[(make-hasheq) (and/c hash? hash-eq?)]{
|
||||||
|
|
||||||
Creates an empty mutable hash table that holds keys strongly and that
|
Creates an empty mutable hash table that holds keys strongly and that
|
||||||
|
@ -95,6 +112,12 @@ uses @scheme[equal?] to compare keys. See also
|
||||||
@scheme[make-weak-custom-hash].}
|
@scheme[make-weak-custom-hash].}
|
||||||
|
|
||||||
|
|
||||||
|
@defproc[(make-weak-hasheqv) (and/c hash? hash-eqv? hash-weak?)]{
|
||||||
|
|
||||||
|
Creates an empty mutable hash table that holds keys weakly and that
|
||||||
|
uses @scheme[eqv?] to compare keys.}
|
||||||
|
|
||||||
|
|
||||||
@defproc[(make-weak-hasheq) (and/c hash? hash-eq? hash-weak?)]{
|
@defproc[(make-weak-hasheq) (and/c hash? hash-eq? hash-weak?)]{
|
||||||
|
|
||||||
Creates an empty mutable hash table that holds keys weakly and that
|
Creates an empty mutable hash table that holds keys weakly and that
|
||||||
|
@ -111,6 +134,12 @@ value. The mappings are added to the table in the order that they
|
||||||
appear in @scheme[assocs], so later mappings can hide earlier
|
appear in @scheme[assocs], so later mappings can hide earlier
|
||||||
mappings.}
|
mappings.}
|
||||||
|
|
||||||
|
@defproc[(make-immutable-hasheqv [assocs (listof pair?)])
|
||||||
|
(and/c hash? hash-eqv? immutable?)]{
|
||||||
|
|
||||||
|
Like @scheme[make-immutable-hash], but the resulting hash table
|
||||||
|
compares keys with @scheme[eqv?].}
|
||||||
|
|
||||||
@defproc[(make-immutable-hasheq [assocs (listof pair?)])
|
@defproc[(make-immutable-hasheq [assocs (listof pair?)])
|
||||||
(and/c hash? hash-eq? immutable?)]{
|
(and/c hash? hash-eq? immutable?)]{
|
||||||
|
|
||||||
|
@ -156,6 +185,33 @@ result:
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
@defproc[(hash-update! [hash (and/c hash? (not/c immutable?))]
|
||||||
|
[key any/c]
|
||||||
|
[updater (any/c . -> . any/c)]
|
||||||
|
[failure-result any/c (lambda ()
|
||||||
|
(raise (make-exn:fail:contract ....)))])
|
||||||
|
void?]{
|
||||||
|
|
||||||
|
Composes @scheme[hash-ref] and @scheme[hash-set!] to update an
|
||||||
|
existing mapping in @scheme[hash], where the optional
|
||||||
|
@scheme[failure-result] argument is used as in @scheme[hash-ref] when
|
||||||
|
no mapping exists for @scheme[key] already. See the caveat above about
|
||||||
|
concurrent updates.}
|
||||||
|
|
||||||
|
|
||||||
|
@defproc[(hash-update [hash (and/c hash? immutable?)]
|
||||||
|
[key any/c]
|
||||||
|
[updater (any/c . -> . any/c)]
|
||||||
|
[failure-result any/c (lambda ()
|
||||||
|
(raise (make-exn:fail:contract ....)))])
|
||||||
|
(and/c hash? immutable?)]{
|
||||||
|
|
||||||
|
Composes @scheme[hash-ref] and @scheme[hash-set] to functionally
|
||||||
|
update an existing mapping in @scheme[hash], where the optional
|
||||||
|
@scheme[failure-result] argument is used as in @scheme[hash-ref] when
|
||||||
|
no mapping exists for @scheme[key] already.}
|
||||||
|
|
||||||
|
|
||||||
@defproc[(hash-remove! [hash (and/c hash? (not/c immutable?))]
|
@defproc[(hash-remove! [hash (and/c hash? (not/c immutable?))]
|
||||||
[key any/c])
|
[key any/c])
|
||||||
void?]{
|
void?]{
|
||||||
|
@ -259,6 +315,14 @@ returned integer is the same. Furthermore, for the result integer
|
||||||
implies @scheme[(eq? k j)].}
|
implies @scheme[(eq? k j)].}
|
||||||
|
|
||||||
|
|
||||||
|
@defproc[(eqv-hash-code [v any/c]) exact-integer?]{
|
||||||
|
|
||||||
|
Returns an exact integer; for any two @scheme[eqv?] values, the
|
||||||
|
returned integer is the same. Furthermore, for the result integer
|
||||||
|
@scheme[k] and any other exact integer @scheme[j], @scheme[(= k j)]
|
||||||
|
implies @scheme[(eq? k j)].}
|
||||||
|
|
||||||
|
|
||||||
@defproc[(equal-hash-code [v any/c]) exact-integer?]{
|
@defproc[(equal-hash-code [v any/c]) exact-integer?]{
|
||||||
|
|
||||||
Returns an exact integer; for any two @scheme[equal?] values, the
|
Returns an exact integer; for any two @scheme[equal?] values, the
|
||||||
|
|
|
@ -616,7 +616,11 @@ A @as-index{@litchar{#hasheq}} starts a hash table like
|
||||||
@litchar{#hash}, except that it constructs a hash table based on
|
@litchar{#hash}, except that it constructs a hash table based on
|
||||||
@scheme[eq?] instead of @scheme[equal?].
|
@scheme[eq?] instead of @scheme[equal?].
|
||||||
|
|
||||||
In either case, the table is constructed by adding each mapping to the
|
A @as-index{@litchar{#hasheqv}} starts a hash table like
|
||||||
|
@litchar{#hash}, except that it constructs a hash table based on
|
||||||
|
@scheme[eqv?] instead of @scheme[equal?].
|
||||||
|
|
||||||
|
In all cases, the table is constructed by adding each mapping to the
|
||||||
hash table from left to right, so later mappings can hide earlier
|
hash table from left to right, so later mappings can hide earlier
|
||||||
mappings if the keys are equivalent.
|
mappings if the keys are equivalent.
|
||||||
|
|
||||||
|
|
|
@ -313,6 +313,7 @@
|
||||||
(test #t immutable? (make-immutable-hasheq '((a . b))))
|
(test #t immutable? (make-immutable-hasheq '((a . b))))
|
||||||
(test #t immutable? (make-immutable-hash '((a . b))))
|
(test #t immutable? (make-immutable-hash '((a . b))))
|
||||||
(test #f immutable? (make-hasheq))
|
(test #f immutable? (make-hasheq))
|
||||||
|
(test #f immutable? (make-hasheqv))
|
||||||
(test #f immutable? (make-hash))
|
(test #f immutable? (make-hash))
|
||||||
(test #f immutable? (make-weak-hasheq))
|
(test #f immutable? (make-weak-hasheq))
|
||||||
(test #f immutable? (make-weak-hash))
|
(test #f immutable? (make-weak-hash))
|
||||||
|
@ -1904,12 +1905,15 @@
|
||||||
|
|
||||||
(arity-test make-hash 0 0)
|
(arity-test make-hash 0 0)
|
||||||
(arity-test make-hasheq 0 0)
|
(arity-test make-hasheq 0 0)
|
||||||
|
(arity-test make-hasheqv 0 0)
|
||||||
(arity-test make-weak-hash 0 0)
|
(arity-test make-weak-hash 0 0)
|
||||||
(arity-test make-weak-hasheq 0 0)
|
(arity-test make-weak-hasheq 0 0)
|
||||||
|
(arity-test make-weak-hasheqv 0 0)
|
||||||
|
|
||||||
(define (hash-tests make-hash make-hasheq
|
(define (hash-tests make-hash make-hasheq make-hasheqv
|
||||||
make-weak-hash make-weak-hasheq
|
make-weak-hash make-weak-hasheq make-weak-hasheqv
|
||||||
hash-ref hash-set! hash-remove! hash-count
|
hash-ref hash-set! hash-update!
|
||||||
|
hash-remove! hash-count
|
||||||
hash-map hash-for-each
|
hash-map hash-for-each
|
||||||
hash-iterate-first hash-iterate-next
|
hash-iterate-first hash-iterate-next
|
||||||
hash-iterate-value hash-iterate-key
|
hash-iterate-value hash-iterate-key
|
||||||
|
@ -1932,14 +1936,35 @@
|
||||||
(make-hasheq))]
|
(make-hasheq))]
|
||||||
[l (list 1 2 3)])
|
[l (list 1 2 3)])
|
||||||
(test #t eq? (eq-hash-code l) (eq-hash-code l))
|
(test #t eq? (eq-hash-code l) (eq-hash-code l))
|
||||||
|
(test #t eq? (eqv-hash-code l) (eqv-hash-code l))
|
||||||
(test #t eq? (equal-hash-code l) (equal-hash-code l))
|
(test #t eq? (equal-hash-code l) (equal-hash-code l))
|
||||||
(test #t eq? (equal-hash-code l) (equal-hash-code (list 1 2 3)))
|
(test #t eq? (equal-hash-code l) (equal-hash-code (list 1 2 3)))
|
||||||
(hash-set! h1 l 'ok)
|
(hash-set! h1 l 'ok)
|
||||||
(test 'ok hash-ref h1 l)
|
(test 'ok hash-ref h1 l)
|
||||||
|
(hash-update! h1 l (curry cons 'more))
|
||||||
|
(test '(more . ok) hash-ref h1 l)
|
||||||
|
(hash-update! h1 l cdr)
|
||||||
(test 'nope hash-ref h1 (list 1 2 3) (lambda () 'nope))
|
(test 'nope hash-ref h1 (list 1 2 3) (lambda () 'nope))
|
||||||
(test '(((1 2 3) . ok)) hash-map h1 (lambda (k v) (cons k v)))
|
(test '(((1 2 3) . ok)) hash-map h1 (lambda (k v) (cons k v)))
|
||||||
(hash-remove! h1 l)
|
(hash-remove! h1 l)
|
||||||
(test 'nope hash-ref h1 l (lambda () 'nope)))
|
(test 'nope hash-ref h1 l (lambda () 'nope))
|
||||||
|
(err/rt-test (hash-update! h1 l add1))
|
||||||
|
(hash-update! h1 l add1 0)
|
||||||
|
(test 1 hash-ref h1 l)
|
||||||
|
(hash-remove! h1 l))
|
||||||
|
|
||||||
|
(let ([h1 (if weak?
|
||||||
|
(make-weak-hasheqv)
|
||||||
|
(make-hasheqv))]
|
||||||
|
[n (expt 2 500)]
|
||||||
|
[q (/ 1 2)]
|
||||||
|
[s (make-string 2 #\q)])
|
||||||
|
(hash-set! h1 n 'power)
|
||||||
|
(hash-set! h1 q 'half)
|
||||||
|
(hash-set! h1 s 'string)
|
||||||
|
(test 'power hash-ref h1 (expt (read (open-input-string "2")) 500))
|
||||||
|
(test 'half hash-ref h1 (/ 1 (read (open-input-string "2"))))
|
||||||
|
(test #f hash-ref h1 (make-string (read (open-input-string "2")) #\q) #f))
|
||||||
|
|
||||||
(let ([h1 (if weak?
|
(let ([h1 (if weak?
|
||||||
(make-weak-hash)
|
(make-weak-hash)
|
||||||
|
@ -2066,9 +2091,10 @@
|
||||||
|
|
||||||
(save)))) ; prevents gcing of the ht-registered values
|
(save)))) ; prevents gcing of the ht-registered values
|
||||||
|
|
||||||
(hash-tests make-hash make-hasheq
|
(hash-tests make-hash make-hasheq make-hasheqv
|
||||||
make-weak-hash make-weak-hasheq
|
make-weak-hash make-weak-hasheq make-weak-hasheqv
|
||||||
hash-ref hash-set! hash-remove! hash-count
|
hash-ref hash-set! hash-update!
|
||||||
|
hash-remove! hash-count
|
||||||
hash-map hash-for-each
|
hash-map hash-for-each
|
||||||
hash-iterate-first hash-iterate-next
|
hash-iterate-first hash-iterate-next
|
||||||
hash-iterate-value hash-iterate-key
|
hash-iterate-value hash-iterate-key
|
||||||
|
@ -2078,9 +2104,13 @@
|
||||||
(apply proc (unbox ht) args)))])
|
(apply proc (unbox ht) args)))])
|
||||||
(hash-tests (lambda () (box #hash()))
|
(hash-tests (lambda () (box #hash()))
|
||||||
(lambda () (box #hasheq()))
|
(lambda () (box #hasheq()))
|
||||||
#f #f
|
(lambda () (box #hasheqv()))
|
||||||
|
#f #f #f
|
||||||
(ub-wrap hash-ref)
|
(ub-wrap hash-ref)
|
||||||
(lambda (ht k v) (set-box! ht (hash-set (unbox ht) k v)))
|
(lambda (ht k v) (set-box! ht (hash-set (unbox ht) k v)))
|
||||||
|
(case-lambda
|
||||||
|
[(ht k u) (set-box! ht (hash-update (unbox ht) k u))]
|
||||||
|
[(ht k u def) (set-box! ht (hash-update (unbox ht) k u def))])
|
||||||
(lambda (ht k) (set-box! ht (hash-remove (unbox ht) k)))
|
(lambda (ht k) (set-box! ht (hash-remove (unbox ht) k)))
|
||||||
(ub-wrap hash-count)
|
(ub-wrap hash-count)
|
||||||
(ub-wrap hash-map)
|
(ub-wrap hash-map)
|
||||||
|
@ -2093,18 +2123,35 @@
|
||||||
|
|
||||||
(test #f hash? 5)
|
(test #f hash? 5)
|
||||||
(test #t hash? (make-hasheq))
|
(test #t hash? (make-hasheq))
|
||||||
|
(test #t hash? (make-hasheqv))
|
||||||
(test #t hash-eq? (make-hasheq))
|
(test #t hash-eq? (make-hasheq))
|
||||||
(test #f hash-eq? (make-hash))
|
(test #f hash-eq? (make-hash))
|
||||||
|
(test #f hash-eq? (make-hasheqv))
|
||||||
(test #t hash-eq? (make-weak-hasheq))
|
(test #t hash-eq? (make-weak-hasheq))
|
||||||
(test #f hash-eq? (make-weak-hash))
|
(test #f hash-eq? (make-weak-hash))
|
||||||
|
(test #f hash-eq? (make-weak-hasheqv))
|
||||||
|
(test #f hash-eqv? (make-hasheq))
|
||||||
|
(test #f hash-eqv? (make-hash))
|
||||||
|
(test #t hash-eqv? (make-hasheqv))
|
||||||
|
(test #f hash-eqv? (make-weak-hasheq))
|
||||||
|
(test #f hash-eqv? (make-weak-hash))
|
||||||
|
(test #t hash-eqv? (make-weak-hasheqv))
|
||||||
(test #f hash-weak? (make-hasheq))
|
(test #f hash-weak? (make-hasheq))
|
||||||
(test #f hash-weak? (make-hash))
|
(test #f hash-weak? (make-hash))
|
||||||
|
(test #f hash-weak? (make-hasheqv))
|
||||||
(test #t hash-weak? (make-weak-hasheq))
|
(test #t hash-weak? (make-weak-hasheq))
|
||||||
(test #t hash-weak? (make-weak-hash))
|
(test #t hash-weak? (make-weak-hash))
|
||||||
|
(test #t hash-weak? (make-weak-hasheqv))
|
||||||
|
|
||||||
(err/rt-test (hash-eq? 5))
|
(err/rt-test (hash-eq? 5))
|
||||||
|
(err/rt-test (hash-eqv? 5))
|
||||||
(err/rt-test (hash-weak? 5))
|
(err/rt-test (hash-weak? 5))
|
||||||
|
|
||||||
|
(let ([a (expt 2 500)]
|
||||||
|
[b (expt (read (open-input-string "2")) 500)])
|
||||||
|
(test #t equal? (eqv-hash-code a) (eqv-hash-code b))
|
||||||
|
(test #t equal? (equal-hash-code a) (equal-hash-code b)))
|
||||||
|
|
||||||
;; Check for proper clearing of weak hash tables
|
;; Check for proper clearing of weak hash tables
|
||||||
;; (internally, value should get cleared along with key):
|
;; (internally, value should get cleared along with key):
|
||||||
(let ([ht (make-weak-hasheq)])
|
(let ([ht (make-weak-hasheq)])
|
||||||
|
@ -2139,6 +2186,28 @@
|
||||||
(err/rt-test (hash-remove! 1 2))
|
(err/rt-test (hash-remove! 1 2))
|
||||||
(err/rt-test (hash-ref (make-hasheq) 2) exn:application:mismatch?)
|
(err/rt-test (hash-ref (make-hasheq) 2) exn:application:mismatch?)
|
||||||
|
|
||||||
|
(let ([mk (lambda (mk)
|
||||||
|
(let ([ht (mk)])
|
||||||
|
(hash-set! ht make-hash 2)
|
||||||
|
ht))])
|
||||||
|
(test #t equal? (mk make-hash) (mk make-hash))
|
||||||
|
(test #t equal? (mk make-hasheq) (mk make-hasheq))
|
||||||
|
(test #t equal? (mk make-hasheqv) (mk make-hasheqv))
|
||||||
|
(test #f equal? (mk make-hash) (mk make-hasheq))
|
||||||
|
(test #f equal? (mk make-hash) (mk make-hasheqv))
|
||||||
|
(test #f equal? (mk make-hasheq) (mk make-hasheqv))
|
||||||
|
(test #f equal? (mk make-hash) (mk make-weak-hash))
|
||||||
|
(test #f equal? (mk make-hasheq) (mk make-weak-hasheq))
|
||||||
|
(test #f equal? (mk make-hasheqv) (mk make-weak-hasheqv)))
|
||||||
|
(let ([mk (lambda (mk)
|
||||||
|
(mk `((1 . 2))))])
|
||||||
|
(test #t equal? (mk make-immutable-hash) (mk make-immutable-hash))
|
||||||
|
(test #t equal? (mk make-immutable-hasheq) (mk make-immutable-hasheq))
|
||||||
|
(test #t equal? (mk make-immutable-hasheqv) (mk make-immutable-hasheqv))
|
||||||
|
(test #f equal? (mk make-immutable-hash) (mk make-immutable-hasheq))
|
||||||
|
(test #f equal? (mk make-immutable-hash) (mk make-immutable-hasheqv))
|
||||||
|
(test #f equal? (mk make-immutable-hasheq) (mk make-immutable-hasheqv)))
|
||||||
|
|
||||||
(define im-t (make-immutable-hasheq null))
|
(define im-t (make-immutable-hasheq null))
|
||||||
(test #t hash? im-t)
|
(test #t hash? im-t)
|
||||||
(test #t hash-eq? im-t)
|
(test #t hash-eq? im-t)
|
||||||
|
|
|
@ -295,6 +295,7 @@
|
||||||
(err/rt-test (readstr "#hash") exn:fail:read:eof?)
|
(err/rt-test (readstr "#hash") exn:fail:read:eof?)
|
||||||
(err/rt-test (readstr "#hashe") exn:fail:read:eof?)
|
(err/rt-test (readstr "#hashe") exn:fail:read:eof?)
|
||||||
(err/rt-test (readstr "#hasheq") exn:fail:read:eof?)
|
(err/rt-test (readstr "#hasheq") exn:fail:read:eof?)
|
||||||
|
(err/rt-test (readstr "#hasheqv") exn:fail:read:eof?)
|
||||||
(err/rt-test (readstr "#hash(") exn:fail:read:eof?)
|
(err/rt-test (readstr "#hash(") exn:fail:read:eof?)
|
||||||
(err/rt-test (readstr "#hash((1") exn:fail:read:eof?)
|
(err/rt-test (readstr "#hash((1") exn:fail:read:eof?)
|
||||||
(err/rt-test (readstr "#hash((1 .") exn:fail:read:eof?)
|
(err/rt-test (readstr "#hash((1 .") exn:fail:read:eof?)
|
||||||
|
@ -331,12 +332,16 @@
|
||||||
(test-ht (readstr "#hash{(1 . 2)}") 1 #f 1 2)
|
(test-ht (readstr "#hash{(1 . 2)}") 1 #f 1 2)
|
||||||
(test-ht (readstr "#hash{[1 . 2]}") 1 #f 1 2)
|
(test-ht (readstr "#hash{[1 . 2]}") 1 #f 1 2)
|
||||||
(test-ht (readstr "#hasheq((1 . 2))") 1 #t 1 2)
|
(test-ht (readstr "#hasheq((1 . 2))") 1 #t 1 2)
|
||||||
|
(test-ht (readstr "#hasheqv((1 . 2))") 1 #f 1 2)
|
||||||
(test-ht (readstr "#hash((\"apple\" . 1))") 1 #f "apple" 1)
|
(test-ht (readstr "#hash((\"apple\" . 1))") 1 #f "apple" 1)
|
||||||
(test-ht (readstr "#hasheq((\"apple\" . 1))") 1 #t "apple" #f)
|
(test-ht (readstr "#hasheq((\"apple\" . 1))") 1 #t "apple" #f)
|
||||||
|
(test-ht (readstr "#hasheqv((\"apple\" . 1))") 1 #f "apple" #f)
|
||||||
(test-ht (readstr "#hash((\"apple\" . 1) (\"apple\" . 10))") 1 #f "apple" 10)
|
(test-ht (readstr "#hash((\"apple\" . 1) (\"apple\" . 10))") 1 #f "apple" 10)
|
||||||
(test-ht (readstr "#hasheq((\"apple\" . 1) (\"apple\" . 10))") 2 #t "apple" #f)
|
(test-ht (readstr "#hasheq((\"apple\" . 1) (\"apple\" . 10))") 2 #t "apple" #f)
|
||||||
|
(test-ht (readstr "#hasheqv((\"apple\" . 1) (\"apple\" . 10))") 2 #f "apple" #f)
|
||||||
(test-ht (readstr "#hash((apple . 1) (apple . 10))") 1 #f 'apple 10)
|
(test-ht (readstr "#hash((apple . 1) (apple . 10))") 1 #f 'apple 10)
|
||||||
(test-ht (readstr "#hasheq((apple . 1) (apple . 10))") 1 #t 'apple 10)
|
(test-ht (readstr "#hasheq((apple . 1) (apple . 10))") 1 #t 'apple 10)
|
||||||
|
(test-ht (readstr "#hasheqv((apple . 1) (apple . 10))") 1 #f 'apple 10)
|
||||||
(test-ht (readstr "#hasheq((#0=\"apple\" . 1) (#0# . 10))") 1 #t "apple" #f)
|
(test-ht (readstr "#hasheq((#0=\"apple\" . 1) (#0# . 10))") 1 #t "apple" #f)
|
||||||
(test-ht (readstr "#hash((#0=\"apple\" . 1) (\"banana\" . #0#))") 2 #f "banana" "apple")
|
(test-ht (readstr "#hash((#0=\"apple\" . 1) (\"banana\" . #0#))") 2 #f "banana" "apple")
|
||||||
(test-ht (readstr "#hash((a . 1) (b . 2) (c . 3) (e . 4) (f . 5) (g . 6) (h . 7) (i . 8))") 8 #f 'f 5)
|
(test-ht (readstr "#hash((a . 1) (b . 2) (c . 3) (e . 4) (f . 5) (g . 6) (h . 7) (i . 8))") 8 #f 'f 5)
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
Version 4.1.1.2
|
||||||
|
Added eqv-based hash tables
|
||||||
|
Added hash-update and hash-update!
|
||||||
|
|
||||||
Version 4.1.1.1
|
Version 4.1.1.1
|
||||||
Changed -X and -S to complete directory relative to pwd, and
|
Changed -X and -S to complete directory relative to pwd, and
|
||||||
changed -S to add after main collects
|
changed -S to add after main collects
|
||||||
|
|
|
@ -205,6 +205,7 @@ scheme_bucket_table_equal
|
||||||
scheme_clone_bucket_table
|
scheme_clone_bucket_table
|
||||||
scheme_make_hash_table
|
scheme_make_hash_table
|
||||||
scheme_make_hash_table_equal
|
scheme_make_hash_table_equal
|
||||||
|
scheme_make_hash_table_eqv
|
||||||
scheme_hash_set
|
scheme_hash_set
|
||||||
scheme_hash_get
|
scheme_hash_get
|
||||||
scheme_eq_hash_get
|
scheme_eq_hash_get
|
||||||
|
@ -212,6 +213,7 @@ scheme_hash_set_atomic
|
||||||
scheme_hash_get_atomic
|
scheme_hash_get_atomic
|
||||||
scheme_hash_table_equal
|
scheme_hash_table_equal
|
||||||
scheme_is_hash_table_equal
|
scheme_is_hash_table_equal
|
||||||
|
scheme_is_hash_table_eqv
|
||||||
scheme_clone_hash_table
|
scheme_clone_hash_table
|
||||||
scheme_make_hash_tree
|
scheme_make_hash_tree
|
||||||
scheme_hash_tree_set
|
scheme_hash_tree_set
|
||||||
|
@ -220,6 +222,7 @@ scheme_hash_tree_next
|
||||||
scheme_hash_tree_index
|
scheme_hash_tree_index
|
||||||
scheme_hash_tree_equal
|
scheme_hash_tree_equal
|
||||||
scheme_is_hash_tree_equal
|
scheme_is_hash_tree_equal
|
||||||
|
scheme_is_hash_tree_eqv
|
||||||
scheme_make_prim
|
scheme_make_prim
|
||||||
scheme_make_noneternal_prim
|
scheme_make_noneternal_prim
|
||||||
scheme_make_prim_w_arity
|
scheme_make_prim_w_arity
|
||||||
|
@ -519,6 +522,8 @@ scheme_equal_hash_key
|
||||||
scheme_equal_hash_key2
|
scheme_equal_hash_key2
|
||||||
scheme_recur_equal_hash_key
|
scheme_recur_equal_hash_key
|
||||||
scheme_recur_equal_hash_key2
|
scheme_recur_equal_hash_key2
|
||||||
|
scheme_eqv_hash_key
|
||||||
|
scheme_eqv_hash_key2
|
||||||
scheme_set_type_equality
|
scheme_set_type_equality
|
||||||
scheme_recur_equal
|
scheme_recur_equal
|
||||||
scheme_build_list
|
scheme_build_list
|
||||||
|
|
|
@ -216,6 +216,7 @@ scheme_bucket_table_equal
|
||||||
scheme_clone_bucket_table
|
scheme_clone_bucket_table
|
||||||
scheme_make_hash_table
|
scheme_make_hash_table
|
||||||
scheme_make_hash_table_equal
|
scheme_make_hash_table_equal
|
||||||
|
scheme_make_hash_table_eqv
|
||||||
scheme_hash_set
|
scheme_hash_set
|
||||||
scheme_hash_get
|
scheme_hash_get
|
||||||
scheme_eq_hash_get
|
scheme_eq_hash_get
|
||||||
|
@ -223,6 +224,7 @@ scheme_hash_set_atomic
|
||||||
scheme_hash_get_atomic
|
scheme_hash_get_atomic
|
||||||
scheme_hash_table_equal
|
scheme_hash_table_equal
|
||||||
scheme_is_hash_table_equal
|
scheme_is_hash_table_equal
|
||||||
|
scheme_is_hash_table_eqv
|
||||||
scheme_clone_hash_table
|
scheme_clone_hash_table
|
||||||
scheme_make_hash_tree
|
scheme_make_hash_tree
|
||||||
scheme_hash_tree_set
|
scheme_hash_tree_set
|
||||||
|
@ -231,6 +233,7 @@ scheme_hash_tree_next
|
||||||
scheme_hash_tree_index
|
scheme_hash_tree_index
|
||||||
scheme_hash_tree_equal
|
scheme_hash_tree_equal
|
||||||
scheme_is_hash_tree_equal
|
scheme_is_hash_tree_equal
|
||||||
|
scheme_is_hash_tree_eqv
|
||||||
scheme_make_prim
|
scheme_make_prim
|
||||||
scheme_make_noneternal_prim
|
scheme_make_noneternal_prim
|
||||||
scheme_make_prim_w_arity
|
scheme_make_prim_w_arity
|
||||||
|
@ -531,6 +534,8 @@ scheme_equal_hash_key
|
||||||
scheme_equal_hash_key2
|
scheme_equal_hash_key2
|
||||||
scheme_recur_equal_hash_key
|
scheme_recur_equal_hash_key
|
||||||
scheme_recur_equal_hash_key2
|
scheme_recur_equal_hash_key2
|
||||||
|
scheme_eqv_hash_key
|
||||||
|
scheme_eqv_hash_key2
|
||||||
scheme_set_type_equality
|
scheme_set_type_equality
|
||||||
scheme_recur_equal
|
scheme_recur_equal
|
||||||
scheme_build_list
|
scheme_build_list
|
||||||
|
|
|
@ -193,6 +193,7 @@ EXPORTS
|
||||||
scheme_clone_bucket_table
|
scheme_clone_bucket_table
|
||||||
scheme_make_hash_table
|
scheme_make_hash_table
|
||||||
scheme_make_hash_table_equal
|
scheme_make_hash_table_equal
|
||||||
|
scheme_make_hash_table_eqv
|
||||||
scheme_hash_set
|
scheme_hash_set
|
||||||
scheme_hash_get
|
scheme_hash_get
|
||||||
scheme_eq_hash_get
|
scheme_eq_hash_get
|
||||||
|
@ -200,6 +201,7 @@ EXPORTS
|
||||||
scheme_hash_get_atomic
|
scheme_hash_get_atomic
|
||||||
scheme_hash_table_equal
|
scheme_hash_table_equal
|
||||||
scheme_is_hash_table_equal
|
scheme_is_hash_table_equal
|
||||||
|
scheme_is_hash_table_eqv
|
||||||
scheme_clone_hash_table
|
scheme_clone_hash_table
|
||||||
scheme_make_hash_tree
|
scheme_make_hash_tree
|
||||||
scheme_hash_tree_set
|
scheme_hash_tree_set
|
||||||
|
@ -208,6 +210,7 @@ EXPORTS
|
||||||
scheme_hash_tree_index
|
scheme_hash_tree_index
|
||||||
scheme_hash_tree_equal
|
scheme_hash_tree_equal
|
||||||
scheme_is_hash_tree_equal
|
scheme_is_hash_tree_equal
|
||||||
|
scheme_is_hash_tree_eqv
|
||||||
scheme_make_prim
|
scheme_make_prim
|
||||||
scheme_make_noneternal_prim
|
scheme_make_noneternal_prim
|
||||||
scheme_make_prim_w_arity
|
scheme_make_prim_w_arity
|
||||||
|
@ -507,6 +510,8 @@ EXPORTS
|
||||||
scheme_equal_hash_key2
|
scheme_equal_hash_key2
|
||||||
scheme_recur_equal_hash_key
|
scheme_recur_equal_hash_key
|
||||||
scheme_recur_equal_hash_key2
|
scheme_recur_equal_hash_key2
|
||||||
|
scheme_eqv_hash_key
|
||||||
|
scheme_eqv_hash_key2
|
||||||
scheme_set_type_equality
|
scheme_set_type_equality
|
||||||
scheme_recur_equal
|
scheme_recur_equal
|
||||||
scheme_build_list
|
scheme_build_list
|
||||||
|
|
|
@ -208,6 +208,7 @@ EXPORTS
|
||||||
scheme_clone_bucket_table
|
scheme_clone_bucket_table
|
||||||
scheme_make_hash_table
|
scheme_make_hash_table
|
||||||
scheme_make_hash_table_equal
|
scheme_make_hash_table_equal
|
||||||
|
scheme_make_hash_table_eqv
|
||||||
scheme_hash_set
|
scheme_hash_set
|
||||||
scheme_hash_get
|
scheme_hash_get
|
||||||
scheme_eq_hash_get
|
scheme_eq_hash_get
|
||||||
|
@ -215,6 +216,7 @@ EXPORTS
|
||||||
scheme_hash_get_atomic
|
scheme_hash_get_atomic
|
||||||
scheme_hash_table_equal
|
scheme_hash_table_equal
|
||||||
scheme_is_hash_table_equal
|
scheme_is_hash_table_equal
|
||||||
|
scheme_is_hash_table_eqv
|
||||||
scheme_clone_hash_table
|
scheme_clone_hash_table
|
||||||
scheme_make_hash_tree
|
scheme_make_hash_tree
|
||||||
scheme_hash_tree_set
|
scheme_hash_tree_set
|
||||||
|
@ -223,6 +225,7 @@ EXPORTS
|
||||||
scheme_hash_tree_index
|
scheme_hash_tree_index
|
||||||
scheme_hash_tree_equal
|
scheme_hash_tree_equal
|
||||||
scheme_is_hash_tree_equal
|
scheme_is_hash_tree_equal
|
||||||
|
scheme_is_hash_tree_eqv
|
||||||
scheme_make_prim
|
scheme_make_prim
|
||||||
scheme_make_noneternal_prim
|
scheme_make_noneternal_prim
|
||||||
scheme_make_prim_w_arity
|
scheme_make_prim_w_arity
|
||||||
|
@ -523,6 +526,8 @@ EXPORTS
|
||||||
scheme_equal_hash_key2
|
scheme_equal_hash_key2
|
||||||
scheme_recur_equal_hash_key
|
scheme_recur_equal_hash_key
|
||||||
scheme_recur_equal_hash_key2
|
scheme_recur_equal_hash_key2
|
||||||
|
scheme_eqv_hash_key
|
||||||
|
scheme_eqv_hash_key2
|
||||||
scheme_set_type_equality
|
scheme_set_type_equality
|
||||||
scheme_recur_equal
|
scheme_recur_equal
|
||||||
scheme_build_list
|
scheme_build_list
|
||||||
|
|
|
@ -1,75 +1,75 @@
|
||||||
{
|
{
|
||||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,49,46,49,50,0,0,0,1,0,0,6,0,9,0,
|
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,49,46,50,50,0,0,0,1,0,0,6,0,9,0,
|
||||||
13,0,20,0,23,0,36,0,41,0,48,0,53,0,58,0,65,0,69,0,78,
|
13,0,26,0,29,0,34,0,41,0,46,0,51,0,58,0,65,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,
|
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,253,0,23,1,32,1,41,1,51,1,68,1,107,1,146,
|
177,0,179,0,193,0,253,0,23,1,32,1,41,1,51,1,68,1,107,1,146,
|
||||||
1,215,1,4,2,92,2,137,2,142,2,162,2,53,3,73,3,124,3,190,3,
|
1,215,1,4,2,92,2,137,2,142,2,162,2,53,3,73,3,124,3,190,3,
|
||||||
75,4,233,4,20,5,31,5,110,5,0,0,119,7,0,0,65,98,101,103,105,
|
75,4,233,4,20,5,31,5,110,5,0,0,119,7,0,0,65,98,101,103,105,
|
||||||
110,29,11,11,63,108,101,116,66,100,101,102,105,110,101,62,111,114,72,112,97,
|
110,29,11,11,63,108,101,116,72,112,97,114,97,109,101,116,101,114,105,122,101,
|
||||||
114,97,109,101,116,101,114,105,122,101,64,108,101,116,42,66,117,110,108,101,115,
|
62,111,114,64,108,101,116,42,66,117,110,108,101,115,115,64,99,111,110,100,64,
|
||||||
115,64,99,111,110,100,64,119,104,101,110,66,108,101,116,114,101,99,63,97,110,
|
119,104,101,110,66,108,101,116,114,101,99,66,100,101,102,105,110,101,63,97,110,
|
||||||
100,68,104,101,114,101,45,115,116,120,65,113,117,111,116,101,29,94,2,14,68,
|
100,68,104,101,114,101,45,115,116,120,65,113,117,111,116,101,29,94,2,14,68,
|
||||||
35,37,107,101,114,110,101,108,11,29,94,2,14,68,35,37,112,97,114,97,109,
|
35,37,107,101,114,110,101,108,11,29,94,2,14,68,35,37,112,97,114,97,109,
|
||||||
122,11,62,105,102,63,115,116,120,61,115,70,108,101,116,45,118,97,108,117,101,
|
122,11,62,105,102,63,115,116,120,61,115,70,108,101,116,45,118,97,108,117,101,
|
||||||
115,61,120,73,108,101,116,114,101,99,45,118,97,108,117,101,115,66,108,97,109,
|
115,61,120,73,108,101,116,114,101,99,45,118,97,108,117,101,115,66,108,97,109,
|
||||||
98,100,97,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,
|
98,100,97,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,
|
||||||
45,107,101,121,61,118,73,100,101,102,105,110,101,45,118,97,108,117,101,115,98,
|
45,107,101,121,61,118,73,100,101,102,105,110,101,45,118,97,108,117,101,115,98,
|
||||||
10,35,11,8,174,227,94,159,2,16,35,35,159,2,15,35,35,16,20,2,3,
|
10,35,11,8,186,227,94,159,2,16,35,35,159,2,15,35,35,16,20,2,3,
|
||||||
2,2,2,4,2,2,2,11,2,2,2,5,2,2,2,6,2,2,2,7,2,
|
2,2,2,4,2,2,2,10,2,2,2,5,2,2,2,6,2,2,2,7,2,
|
||||||
2,2,8,2,2,2,9,2,2,2,10,2,2,2,12,2,2,97,36,11,8,
|
2,2,8,2,2,2,9,2,2,2,11,2,2,2,12,2,2,97,36,11,8,
|
||||||
174,227,93,159,2,15,35,36,16,2,2,13,161,2,2,36,2,13,2,2,2,
|
186,227,93,159,2,15,35,36,16,2,2,13,161,2,2,36,2,13,2,2,2,
|
||||||
13,97,10,11,11,8,174,227,16,0,97,10,37,11,8,174,227,16,0,13,16,
|
13,97,10,11,11,8,186,227,16,0,97,10,37,11,8,186,227,16,0,13,16,
|
||||||
4,35,29,11,11,2,2,11,18,98,64,104,101,114,101,8,31,8,30,8,29,
|
4,35,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,190,3,23,196,1,249,22,183,3,80,158,38,35,251,
|
8,28,8,27,27,248,22,132,4,23,196,1,249,22,189,3,80,158,38,35,251,
|
||||||
22,73,2,17,248,22,88,23,200,2,12,249,22,63,2,1,248,22,90,23,202,
|
22,73,2,17,248,22,88,23,200,2,12,249,22,63,2,1,248,22,90,23,202,
|
||||||
1,27,248,22,190,3,23,196,1,249,22,183,3,80,158,38,35,251,22,73,2,
|
1,27,248,22,132,4,23,196,1,249,22,189,3,80,158,38,35,251,22,73,2,
|
||||||
17,248,22,88,23,200,2,249,22,63,2,1,248,22,90,23,202,1,12,27,248,
|
17,248,22,88,23,200,2,249,22,63,2,1,248,22,90,23,202,1,12,27,248,
|
||||||
22,65,248,22,190,3,23,197,1,28,248,22,71,23,194,2,20,15,159,36,35,
|
22,65,248,22,132,4,23,197,1,28,248,22,71,23,194,2,20,15,159,36,35,
|
||||||
36,28,248,22,71,248,22,65,23,195,2,248,22,64,193,249,22,183,3,80,158,
|
36,28,248,22,71,248,22,65,23,195,2,248,22,64,193,249,22,189,3,80,158,
|
||||||
38,35,251,22,73,2,17,248,22,64,23,200,2,249,22,63,2,12,248,22,65,
|
38,35,251,22,73,2,17,248,22,64,23,200,2,249,22,63,2,12,248,22,65,
|
||||||
23,202,1,11,18,100,10,8,31,8,30,8,29,8,28,8,27,16,4,11,11,
|
23,202,1,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,57,57,52,52,16,4,11,11,2,19,3,1,7,
|
2,18,3,1,7,101,110,118,57,57,53,54,16,4,11,11,2,19,3,1,7,
|
||||||
101,110,118,57,57,52,53,27,248,22,65,248,22,190,3,23,197,1,28,248,22,
|
101,110,118,57,57,53,55,27,248,22,65,248,22,132,4,23,197,1,28,248,22,
|
||||||
71,23,194,2,20,15,159,36,35,36,28,248,22,71,248,22,65,23,195,2,248,
|
71,23,194,2,20,15,159,36,35,36,28,248,22,71,248,22,65,23,195,2,248,
|
||||||
22,64,193,249,22,183,3,80,158,38,35,250,22,73,2,20,248,22,73,249,22,
|
22,64,193,249,22,189,3,80,158,38,35,250,22,73,2,20,248,22,73,249,22,
|
||||||
73,248,22,73,2,21,248,22,64,23,202,2,251,22,73,2,17,2,21,2,21,
|
73,248,22,73,2,21,248,22,64,23,202,2,251,22,73,2,17,2,21,2,21,
|
||||||
249,22,63,2,5,248,22,65,23,205,1,18,100,11,8,31,8,30,8,29,8,
|
249,22,63,2,5,248,22,65,23,205,1,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,57,57,52,55,16,4,
|
28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,57,57,53,57,16,4,
|
||||||
11,11,2,19,3,1,7,101,110,118,57,57,52,56,248,22,190,3,193,27,248,
|
11,11,2,19,3,1,7,101,110,118,57,57,54,48,248,22,132,4,193,27,248,
|
||||||
22,190,3,194,249,22,63,248,22,73,248,22,64,196,248,22,65,195,27,248,22,
|
22,132,4,194,249,22,63,248,22,73,248,22,64,196,248,22,65,195,27,248,22,
|
||||||
65,248,22,190,3,23,197,1,249,22,183,3,80,158,38,35,28,248,22,51,248,
|
65,248,22,132,4,23,197,1,249,22,189,3,80,158,38,35,28,248,22,51,248,
|
||||||
22,184,3,248,22,64,23,198,2,27,249,22,2,32,0,89,162,8,44,36,42,
|
22,190,3,248,22,64,23,198,2,27,249,22,2,32,0,89,162,8,44,36,42,
|
||||||
9,222,33,39,248,22,190,3,248,22,88,23,200,2,250,22,73,2,22,248,22,
|
9,222,33,39,248,22,132,4,248,22,88,23,200,2,250,22,73,2,22,248,22,
|
||||||
73,249,22,73,248,22,73,248,22,64,23,204,2,250,22,74,2,23,249,22,2,
|
73,249,22,73,248,22,73,248,22,64,23,204,2,250,22,74,2,23,249,22,2,
|
||||||
22,64,23,204,2,248,22,90,23,206,2,249,22,63,248,22,64,23,202,1,249,
|
22,64,23,204,2,248,22,90,23,206,2,249,22,63,248,22,64,23,202,1,249,
|
||||||
22,2,22,88,23,200,1,250,22,74,2,20,249,22,2,32,0,89,162,8,44,
|
22,2,22,88,23,200,1,250,22,74,2,20,249,22,2,32,0,89,162,8,44,
|
||||||
36,46,9,222,33,40,248,22,190,3,248,22,64,201,248,22,65,198,27,248,22,
|
36,46,9,222,33,40,248,22,132,4,248,22,64,201,248,22,65,198,27,248,22,
|
||||||
190,3,194,249,22,63,248,22,73,248,22,64,196,248,22,65,195,27,248,22,65,
|
132,4,194,249,22,63,248,22,73,248,22,64,196,248,22,65,195,27,248,22,65,
|
||||||
248,22,190,3,23,197,1,249,22,183,3,80,158,38,35,250,22,74,2,22,249,
|
248,22,132,4,23,197,1,249,22,189,3,80,158,38,35,250,22,74,2,22,249,
|
||||||
22,2,32,0,89,162,8,44,36,46,9,222,33,42,248,22,190,3,248,22,64,
|
22,2,32,0,89,162,8,44,36,46,9,222,33,42,248,22,132,4,248,22,64,
|
||||||
201,248,22,65,198,27,248,22,65,248,22,190,3,196,27,248,22,190,3,248,22,
|
201,248,22,65,198,27,248,22,65,248,22,132,4,196,27,248,22,132,4,248,22,
|
||||||
64,195,249,22,183,3,80,158,39,35,28,248,22,71,195,250,22,74,2,20,9,
|
64,195,249,22,189,3,80,158,39,35,28,248,22,71,195,250,22,74,2,20,9,
|
||||||
248,22,65,199,250,22,73,2,3,248,22,73,248,22,64,199,250,22,74,2,7,
|
248,22,65,199,250,22,73,2,3,248,22,73,248,22,64,199,250,22,74,2,6,
|
||||||
248,22,65,201,248,22,65,202,27,248,22,65,248,22,190,3,23,197,1,27,249,
|
248,22,65,201,248,22,65,202,27,248,22,65,248,22,132,4,23,197,1,27,249,
|
||||||
22,1,22,77,249,22,2,22,190,3,248,22,190,3,248,22,64,199,249,22,183,
|
22,1,22,77,249,22,2,22,132,4,248,22,132,4,248,22,64,199,249,22,189,
|
||||||
3,80,158,39,35,251,22,73,1,22,119,105,116,104,45,99,111,110,116,105,110,
|
3,80,158,39,35,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,
|
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,
|
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,
|
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,
|
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,190,3,23,197,1,28,248,22,71,23,194,2,20,
|
65,203,27,248,22,65,248,22,132,4,23,197,1,28,248,22,71,23,194,2,20,
|
||||||
15,159,36,35,36,249,22,183,3,80,158,38,35,27,248,22,190,3,248,22,64,
|
15,159,36,35,36,249,22,189,3,80,158,38,35,27,248,22,132,4,248,22,64,
|
||||||
23,198,2,28,249,22,154,8,62,61,62,248,22,184,3,248,22,88,23,197,2,
|
23,198,2,28,249,22,160,8,62,61,62,248,22,190,3,248,22,88,23,197,2,
|
||||||
250,22,73,2,20,248,22,73,249,22,73,21,93,2,25,248,22,64,199,250,22,
|
250,22,73,2,20,248,22,73,249,22,73,21,93,2,25,248,22,64,199,250,22,
|
||||||
74,2,9,249,22,73,2,25,249,22,73,248,22,97,203,2,25,248,22,65,202,
|
74,2,8,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,154,8,248,22,184,3,248,22,64,23,201,2,64,
|
251,22,73,2,17,28,249,22,160,8,248,22,190,3,248,22,64,23,201,2,64,
|
||||||
101,108,115,101,10,248,22,64,23,198,2,250,22,74,2,20,9,248,22,65,23,
|
101,108,115,101,10,248,22,64,23,198,2,250,22,74,2,20,9,248,22,65,23,
|
||||||
201,1,249,22,63,2,9,248,22,65,23,203,1,99,8,31,8,30,8,29,8,
|
201,1,249,22,63,2,8,248,22,65,23,203,1,99,8,31,8,30,8,29,8,
|
||||||
28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,57,57,55,48,16,4,
|
28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,57,57,56,50,16,4,
|
||||||
11,11,2,19,3,1,7,101,110,118,57,57,55,49,18,158,94,10,64,118,111,
|
11,11,2,19,3,1,7,101,110,118,57,57,56,51,18,158,94,10,64,118,111,
|
||||||
105,100,8,47,27,248,22,65,248,22,190,3,196,249,22,183,3,80,158,38,35,
|
105,100,8,47,27,248,22,65,248,22,132,4,196,249,22,189,3,80,158,38,35,
|
||||||
28,248,22,51,248,22,184,3,248,22,64,197,250,22,73,2,26,248,22,73,248,
|
28,248,22,51,248,22,190,3,248,22,64,197,250,22,73,2,26,248,22,73,248,
|
||||||
22,64,199,248,22,88,198,27,248,22,184,3,248,22,64,197,250,22,73,2,26,
|
22,64,199,248,22,88,198,27,248,22,190,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,
|
248,22,73,248,22,64,197,250,22,74,2,23,248,22,65,199,248,22,65,202,159,
|
||||||
35,20,103,159,35,16,1,2,1,16,0,83,158,41,20,100,138,69,35,37,109,
|
35,20,103,159,35,16,1,2,1,16,0,83,158,41,20,100,138,69,35,37,109,
|
||||||
105,110,45,115,116,120,2,2,11,10,11,10,35,80,158,35,35,20,103,159,35,
|
105,110,45,115,116,120,2,2,11,10,11,10,35,80,158,35,35,20,103,159,35,
|
||||||
|
@ -78,28 +78,28 @@
|
||||||
11,11,11,11,11,11,16,10,2,3,2,4,2,5,2,6,2,7,2,8,2,
|
11,11,11,11,11,11,16,10,2,3,2,4,2,5,2,6,2,7,2,8,2,
|
||||||
9,2,10,2,11,2,12,35,45,36,11,11,16,0,16,0,16,0,35,35,11,
|
9,2,10,2,11,2,12,35,45,36,11,11,16,0,16,0,16,0,35,35,11,
|
||||||
11,11,16,0,16,0,16,0,35,35,16,11,16,5,93,2,13,20,15,159,35,
|
11,11,16,0,16,0,16,0,35,35,16,11,16,5,93,2,13,20,15,159,35,
|
||||||
35,35,35,20,103,159,35,16,0,16,1,33,32,10,16,5,93,2,8,89,162,
|
35,35,35,20,103,159,35,16,0,16,1,33,32,10,16,5,93,2,7,89,162,
|
||||||
8,44,36,52,9,223,0,33,33,35,20,103,159,35,16,1,20,25,159,36,2,
|
8,44,36,52,9,223,0,33,33,35,20,103,159,35,16,1,20,25,159,36,2,
|
||||||
2,2,13,16,0,11,16,5,93,2,10,89,162,8,44,36,52,9,223,0,33,
|
2,2,13,16,0,11,16,5,93,2,9,89,162,8,44,36,52,9,223,0,33,
|
||||||
34,35,20,103,159,35,16,1,20,25,159,36,2,2,2,13,16,0,11,16,5,
|
34,35,20,103,159,35,16,1,20,25,159,36,2,2,2,13,16,0,11,16,5,
|
||||||
93,2,12,89,162,8,44,36,52,9,223,0,33,35,35,20,103,159,35,16,1,
|
93,2,12,89,162,8,44,36,52,9,223,0,33,35,35,20,103,159,35,16,1,
|
||||||
20,25,159,36,2,2,2,13,16,1,33,36,11,16,5,93,2,5,89,162,8,
|
20,25,159,36,2,2,2,13,16,1,33,36,11,16,5,93,2,5,89,162,8,
|
||||||
44,36,55,9,223,0,33,37,35,20,103,159,35,16,1,20,25,159,36,2,2,
|
44,36,55,9,223,0,33,37,35,20,103,159,35,16,1,20,25,159,36,2,2,
|
||||||
2,13,16,1,33,38,11,16,5,93,2,3,89,162,8,44,36,57,9,223,0,
|
2,13,16,1,33,38,11,16,5,93,2,3,89,162,8,44,36,57,9,223,0,
|
||||||
33,41,35,20,103,159,35,16,1,20,25,159,36,2,2,2,13,16,0,11,16,
|
33,41,35,20,103,159,35,16,1,20,25,159,36,2,2,2,13,16,0,11,16,
|
||||||
5,93,2,11,89,162,8,44,36,52,9,223,0,33,43,35,20,103,159,35,16,
|
5,93,2,10,89,162,8,44,36,52,9,223,0,33,43,35,20,103,159,35,16,
|
||||||
1,20,25,159,36,2,2,2,13,16,0,11,16,5,93,2,7,89,162,8,44,
|
1,20,25,159,36,2,2,2,13,16,0,11,16,5,93,2,6,89,162,8,44,
|
||||||
36,53,9,223,0,33,44,35,20,103,159,35,16,1,20,25,159,36,2,2,2,
|
36,53,9,223,0,33,44,35,20,103,159,35,16,1,20,25,159,36,2,2,2,
|
||||||
13,16,0,11,16,5,93,2,6,89,162,8,44,36,54,9,223,0,33,45,35,
|
13,16,0,11,16,5,93,2,4,89,162,8,44,36,54,9,223,0,33,45,35,
|
||||||
20,103,159,35,16,1,20,25,159,36,2,2,2,13,16,0,11,16,5,93,2,
|
20,103,159,35,16,1,20,25,159,36,2,2,2,13,16,0,11,16,5,93,2,
|
||||||
9,89,162,8,44,36,57,9,223,0,33,46,35,20,103,159,35,16,1,20,25,
|
8,89,162,8,44,36,57,9,223,0,33,46,35,20,103,159,35,16,1,20,25,
|
||||||
159,36,2,2,2,13,16,1,33,48,11,16,5,93,2,4,89,162,8,44,36,
|
159,36,2,2,2,13,16,1,33,48,11,16,5,93,2,11,89,162,8,44,36,
|
||||||
53,9,223,0,33,49,35,20,103,159,35,16,1,20,25,159,36,2,2,2,13,
|
53,9,223,0,33,49,35,20,103,159,35,16,1,20,25,159,36,2,2,2,13,
|
||||||
16,0,11,16,0,94,2,15,2,16,93,2,15,9,9,35,0};
|
16,0,11,16,0,94,2,15,2,16,93,2,15,9,9,35,0};
|
||||||
EVAL_ONE_SIZED_STR((char *)expr, 2032);
|
EVAL_ONE_SIZED_STR((char *)expr, 2032);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,49,46,49,60,0,0,0,1,0,0,3,0,16,0,
|
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,49,46,50,60,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,
|
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,
|
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,68,2,158,3,199,3,33,5,137,5,241,
|
157,1,202,1,226,1,9,2,11,2,68,2,158,3,199,3,33,5,137,5,241,
|
||||||
|
@ -131,177 +131,177 @@
|
||||||
111,114,32,98,121,116,101,32,115,116,114,105,110,103,6,36,36,99,97,110,110,
|
111,114,32,98,121,116,101,32,115,116,114,105,110,103,6,36,36,99,97,110,110,
|
||||||
111,116,32,97,100,100,32,97,32,115,117,102,102,105,120,32,116,111,32,97,32,
|
111,116,32,97,100,100,32,97,32,115,117,102,102,105,120,32,116,111,32,97,32,
|
||||||
114,111,111,116,32,112,97,116,104,58,32,5,0,27,20,14,159,80,158,36,50,
|
114,111,111,116,32,112,97,116,104,58,32,5,0,27,20,14,159,80,158,36,50,
|
||||||
250,80,158,39,51,249,22,27,11,80,158,41,50,22,170,12,10,248,22,147,5,
|
250,80,158,39,51,249,22,27,11,80,158,41,50,22,176,12,10,248,22,153,5,
|
||||||
23,196,2,28,248,22,144,6,23,194,2,12,87,94,248,22,157,8,23,194,1,
|
23,196,2,28,248,22,150,6,23,194,2,12,87,94,248,22,163,8,23,194,1,
|
||||||
248,80,159,37,53,36,195,28,248,22,71,23,195,2,9,27,248,22,64,23,196,
|
248,80,159,37,53,36,195,28,248,22,71,23,195,2,9,27,248,22,64,23,196,
|
||||||
2,27,28,248,22,151,13,23,195,2,23,194,1,28,248,22,150,13,23,195,2,
|
2,27,28,248,22,157,13,23,195,2,23,194,1,28,248,22,156,13,23,195,2,
|
||||||
249,22,152,13,23,196,1,250,80,158,42,48,248,22,166,13,2,20,11,10,250,
|
249,22,158,13,23,196,1,250,80,158,42,48,248,22,172,13,2,20,11,10,250,
|
||||||
80,158,40,48,248,22,166,13,2,20,23,197,1,10,28,23,193,2,249,22,63,
|
80,158,40,48,248,22,172,13,2,20,23,197,1,10,28,23,193,2,249,22,63,
|
||||||
248,22,154,13,249,22,152,13,23,198,1,247,22,167,13,27,248,22,65,23,200,
|
248,22,160,13,249,22,158,13,23,198,1,247,22,173,13,27,248,22,65,23,200,
|
||||||
1,28,248,22,71,23,194,2,9,27,248,22,64,23,195,2,27,28,248,22,151,
|
1,28,248,22,71,23,194,2,9,27,248,22,64,23,195,2,27,28,248,22,157,
|
||||||
13,23,195,2,23,194,1,28,248,22,150,13,23,195,2,249,22,152,13,23,196,
|
13,23,195,2,23,194,1,28,248,22,156,13,23,195,2,249,22,158,13,23,196,
|
||||||
1,250,80,158,47,48,248,22,166,13,2,20,11,10,250,80,158,45,48,248,22,
|
1,250,80,158,47,48,248,22,172,13,2,20,11,10,250,80,158,45,48,248,22,
|
||||||
166,13,2,20,23,197,1,10,28,23,193,2,249,22,63,248,22,154,13,249,22,
|
172,13,2,20,23,197,1,10,28,23,193,2,249,22,63,248,22,160,13,249,22,
|
||||||
152,13,23,198,1,247,22,167,13,248,80,159,45,52,36,248,22,65,23,199,1,
|
158,13,23,198,1,247,22,173,13,248,80,159,45,52,36,248,22,65,23,199,1,
|
||||||
87,94,23,193,1,248,80,159,43,52,36,248,22,65,23,197,1,87,94,23,193,
|
87,94,23,193,1,248,80,159,43,52,36,248,22,65,23,197,1,87,94,23,193,
|
||||||
1,27,248,22,65,23,198,1,28,248,22,71,23,194,2,9,27,248,22,64,23,
|
1,27,248,22,65,23,198,1,28,248,22,71,23,194,2,9,27,248,22,64,23,
|
||||||
195,2,27,28,248,22,151,13,23,195,2,23,194,1,28,248,22,150,13,23,195,
|
195,2,27,28,248,22,157,13,23,195,2,23,194,1,28,248,22,156,13,23,195,
|
||||||
2,249,22,152,13,23,196,1,250,80,158,45,48,248,22,166,13,2,20,11,10,
|
2,249,22,158,13,23,196,1,250,80,158,45,48,248,22,172,13,2,20,11,10,
|
||||||
250,80,158,43,48,248,22,166,13,2,20,23,197,1,10,28,23,193,2,249,22,
|
250,80,158,43,48,248,22,172,13,2,20,23,197,1,10,28,23,193,2,249,22,
|
||||||
63,248,22,154,13,249,22,152,13,23,198,1,247,22,167,13,248,80,159,43,52,
|
63,248,22,160,13,249,22,158,13,23,198,1,247,22,173,13,248,80,159,43,52,
|
||||||
36,248,22,65,23,199,1,248,80,159,41,52,36,248,22,65,196,27,248,22,191,
|
36,248,22,65,23,199,1,248,80,159,41,52,36,248,22,65,196,27,248,22,133,
|
||||||
12,23,195,2,28,23,193,2,192,87,94,23,193,1,28,248,22,149,6,23,195,
|
13,23,195,2,28,23,193,2,192,87,94,23,193,1,28,248,22,155,6,23,195,
|
||||||
2,27,248,22,149,13,195,28,192,192,248,22,150,13,195,11,87,94,28,28,248,
|
2,27,248,22,155,13,195,28,192,192,248,22,156,13,195,11,87,94,28,28,248,
|
||||||
22,128,13,23,195,2,10,27,248,22,191,12,23,196,2,28,23,193,2,192,87,
|
22,134,13,23,195,2,10,27,248,22,133,13,23,196,2,28,23,193,2,192,87,
|
||||||
94,23,193,1,28,248,22,149,6,23,196,2,27,248,22,149,13,23,197,2,28,
|
94,23,193,1,28,248,22,155,6,23,196,2,27,248,22,155,13,23,197,2,28,
|
||||||
23,193,2,192,87,94,23,193,1,248,22,150,13,23,197,2,11,12,250,22,184,
|
23,193,2,192,87,94,23,193,1,248,22,156,13,23,197,2,11,12,250,22,190,
|
||||||
8,76,110,111,114,109,97,108,45,112,97,116,104,45,99,97,115,101,6,42,42,
|
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,
|
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,
|
32,111,114,32,118,97,108,105,100,45,112,97,116,104,32,115,116,114,105,110,103,
|
||||||
23,197,2,28,28,248,22,128,13,23,195,2,249,22,154,8,248,22,129,13,23,
|
23,197,2,28,28,248,22,134,13,23,195,2,249,22,160,8,248,22,135,13,23,
|
||||||
197,2,2,21,249,22,154,8,247,22,168,7,2,21,27,28,248,22,149,6,23,
|
197,2,2,21,249,22,160,8,247,22,174,7,2,21,27,28,248,22,155,6,23,
|
||||||
196,2,23,195,2,248,22,158,7,248,22,132,13,23,197,2,28,249,22,179,13,
|
196,2,23,195,2,248,22,164,7,248,22,138,13,23,197,2,28,249,22,185,13,
|
||||||
0,21,35,114,120,34,94,91,92,92,93,91,92,92,93,91,63,93,91,92,92,
|
0,21,35,114,120,34,94,91,92,92,93,91,92,92,93,91,63,93,91,92,92,
|
||||||
93,34,23,195,2,28,248,22,149,6,195,248,22,135,13,195,194,27,248,22,188,
|
93,34,23,195,2,28,248,22,155,6,195,248,22,141,13,195,194,27,248,22,130,
|
||||||
6,23,195,1,249,22,136,13,248,22,161,7,250,22,185,13,0,6,35,114,120,
|
7,23,195,1,249,22,142,13,248,22,167,7,250,22,191,13,0,6,35,114,120,
|
||||||
34,47,34,28,249,22,179,13,0,22,35,114,120,34,91,47,92,92,93,91,46,
|
34,47,34,28,249,22,185,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,23,201,2,23,199,1,250,22,185,13,
|
32,93,43,91,47,92,92,93,42,36,34,23,201,2,23,199,1,250,22,191,13,
|
||||||
0,19,35,114,120,34,91,32,46,93,43,40,91,47,92,92,93,42,41,36,34,
|
0,19,35,114,120,34,91,32,46,93,43,40,91,47,92,92,93,42,41,36,34,
|
||||||
23,202,1,6,2,2,92,49,80,158,43,36,2,21,28,248,22,149,6,194,248,
|
23,202,1,6,2,2,92,49,80,158,43,36,2,21,28,248,22,155,6,194,248,
|
||||||
22,135,13,194,193,87,94,28,27,248,22,191,12,23,196,2,28,23,193,2,192,
|
22,141,13,194,193,87,94,28,27,248,22,133,13,23,196,2,28,23,193,2,192,
|
||||||
87,94,23,193,1,28,248,22,149,6,23,196,2,27,248,22,149,13,23,197,2,
|
87,94,23,193,1,28,248,22,155,6,23,196,2,27,248,22,155,13,23,197,2,
|
||||||
28,23,193,2,192,87,94,23,193,1,248,22,150,13,23,197,2,11,12,250,22,
|
28,23,193,2,192,87,94,23,193,1,248,22,156,13,23,197,2,11,12,250,22,
|
||||||
184,8,23,196,2,2,22,23,197,2,28,248,22,149,13,23,195,2,12,248,22,
|
190,8,23,196,2,2,22,23,197,2,28,248,22,155,13,23,195,2,12,248,22,
|
||||||
146,11,249,22,155,10,248,22,178,6,250,22,133,7,2,23,23,200,1,23,201,
|
152,11,249,22,161,10,248,22,184,6,250,22,139,7,2,23,23,200,1,23,201,
|
||||||
1,247,22,23,87,94,28,27,248,22,191,12,23,196,2,28,23,193,2,192,87,
|
1,247,22,23,87,94,28,27,248,22,133,13,23,196,2,28,23,193,2,192,87,
|
||||||
94,23,193,1,28,248,22,149,6,23,196,2,27,248,22,149,13,23,197,2,28,
|
94,23,193,1,28,248,22,155,6,23,196,2,27,248,22,155,13,23,197,2,28,
|
||||||
23,193,2,192,87,94,23,193,1,248,22,150,13,23,197,2,11,12,250,22,184,
|
23,193,2,192,87,94,23,193,1,248,22,156,13,23,197,2,11,12,250,22,190,
|
||||||
8,23,196,2,2,22,23,197,2,28,248,22,149,13,23,195,2,12,248,22,146,
|
8,23,196,2,2,22,23,197,2,28,248,22,155,13,23,195,2,12,248,22,152,
|
||||||
11,249,22,155,10,248,22,178,6,250,22,133,7,2,23,23,200,1,23,201,1,
|
11,249,22,161,10,248,22,184,6,250,22,139,7,2,23,23,200,1,23,201,1,
|
||||||
247,22,23,87,94,87,94,28,27,248,22,191,12,23,196,2,28,23,193,2,192,
|
247,22,23,87,94,87,94,28,27,248,22,133,13,23,196,2,28,23,193,2,192,
|
||||||
87,94,23,193,1,28,248,22,149,6,23,196,2,27,248,22,149,13,23,197,2,
|
87,94,23,193,1,28,248,22,155,6,23,196,2,27,248,22,155,13,23,197,2,
|
||||||
28,23,193,2,192,87,94,23,193,1,248,22,150,13,23,197,2,11,12,250,22,
|
28,23,193,2,192,87,94,23,193,1,248,22,156,13,23,197,2,11,12,250,22,
|
||||||
184,8,195,2,22,23,197,2,28,248,22,149,13,23,195,2,12,248,22,146,11,
|
190,8,195,2,22,23,197,2,28,248,22,155,13,23,195,2,12,248,22,152,11,
|
||||||
249,22,155,10,248,22,178,6,250,22,133,7,2,23,199,23,201,1,247,22,23,
|
249,22,161,10,248,22,184,6,250,22,139,7,2,23,199,23,201,1,247,22,23,
|
||||||
249,22,3,89,162,8,44,36,49,9,223,2,33,34,196,248,22,146,11,249,22,
|
249,22,3,89,162,8,44,36,49,9,223,2,33,34,196,248,22,152,11,249,22,
|
||||||
185,10,23,196,1,247,22,23,87,94,250,80,159,38,39,36,2,7,196,197,251,
|
191,10,23,196,1,247,22,23,87,94,250,80,159,38,39,36,2,7,196,197,251,
|
||||||
80,159,39,41,36,2,7,32,0,89,162,8,44,36,44,9,222,33,36,197,198,
|
80,159,39,41,36,2,7,32,0,89,162,8,44,36,44,9,222,33,36,197,198,
|
||||||
32,38,89,162,43,41,58,65,99,108,111,111,112,222,33,39,28,248,22,71,23,
|
32,38,89,162,43,41,58,65,99,108,111,111,112,222,33,39,28,248,22,71,23,
|
||||||
199,2,87,94,23,198,1,248,23,196,1,251,22,133,7,2,24,23,199,1,28,
|
199,2,87,94,23,198,1,248,23,196,1,251,22,139,7,2,24,23,199,1,28,
|
||||||
248,22,71,23,203,2,87,94,23,202,1,23,201,1,250,22,1,22,145,13,23,
|
248,22,71,23,203,2,87,94,23,202,1,23,201,1,250,22,1,22,151,13,23,
|
||||||
204,1,23,205,1,23,198,1,27,249,22,145,13,248,22,64,23,202,2,23,199,
|
204,1,23,205,1,23,198,1,27,249,22,151,13,248,22,64,23,202,2,23,199,
|
||||||
2,28,248,22,140,13,23,194,2,27,250,22,1,22,145,13,23,197,1,23,202,
|
2,28,248,22,146,13,23,194,2,27,250,22,1,22,151,13,23,197,1,23,202,
|
||||||
2,28,248,22,140,13,23,194,2,192,87,94,23,193,1,27,248,22,65,23,202,
|
2,28,248,22,146,13,23,194,2,192,87,94,23,193,1,27,248,22,65,23,202,
|
||||||
1,28,248,22,71,23,194,2,87,94,23,193,1,248,23,199,1,251,22,133,7,
|
1,28,248,22,71,23,194,2,87,94,23,193,1,248,23,199,1,251,22,139,7,
|
||||||
2,24,23,202,1,28,248,22,71,23,206,2,87,94,23,205,1,23,204,1,250,
|
2,24,23,202,1,28,248,22,71,23,206,2,87,94,23,205,1,23,204,1,250,
|
||||||
22,1,22,145,13,23,207,1,23,208,1,23,201,1,27,249,22,145,13,248,22,
|
22,1,22,151,13,23,207,1,23,208,1,23,201,1,27,249,22,151,13,248,22,
|
||||||
64,23,197,2,23,202,2,28,248,22,140,13,23,194,2,27,250,22,1,22,145,
|
64,23,197,2,23,202,2,28,248,22,146,13,23,194,2,27,250,22,1,22,151,
|
||||||
13,23,197,1,204,28,248,22,140,13,193,192,253,2,38,203,204,205,206,23,15,
|
13,23,197,1,204,28,248,22,146,13,193,192,253,2,38,203,204,205,206,23,15,
|
||||||
248,22,65,201,253,2,38,202,203,204,205,206,248,22,65,200,87,94,23,193,1,
|
248,22,65,201,253,2,38,202,203,204,205,206,248,22,65,200,87,94,23,193,1,
|
||||||
27,248,22,65,23,201,1,28,248,22,71,23,194,2,87,94,23,193,1,248,23,
|
27,248,22,65,23,201,1,28,248,22,71,23,194,2,87,94,23,193,1,248,23,
|
||||||
198,1,251,22,133,7,2,24,23,201,1,28,248,22,71,23,205,2,87,94,23,
|
198,1,251,22,139,7,2,24,23,201,1,28,248,22,71,23,205,2,87,94,23,
|
||||||
204,1,23,203,1,250,22,1,22,145,13,23,206,1,23,207,1,23,200,1,27,
|
204,1,23,203,1,250,22,1,22,151,13,23,206,1,23,207,1,23,200,1,27,
|
||||||
249,22,145,13,248,22,64,23,197,2,23,201,2,28,248,22,140,13,23,194,2,
|
249,22,151,13,248,22,64,23,197,2,23,201,2,28,248,22,146,13,23,194,2,
|
||||||
27,250,22,1,22,145,13,23,197,1,203,28,248,22,140,13,193,192,253,2,38,
|
27,250,22,1,22,151,13,23,197,1,203,28,248,22,146,13,193,192,253,2,38,
|
||||||
202,203,204,205,206,248,22,65,201,253,2,38,201,202,203,204,205,248,22,65,200,
|
202,203,204,205,206,248,22,65,201,253,2,38,201,202,203,204,205,248,22,65,200,
|
||||||
27,247,22,168,13,253,2,38,198,199,200,201,202,198,87,95,28,28,248,22,128,
|
27,247,22,174,13,253,2,38,198,199,200,201,202,198,87,95,28,28,248,22,134,
|
||||||
13,23,194,2,10,27,248,22,191,12,23,195,2,28,23,193,2,192,87,94,23,
|
13,23,194,2,10,27,248,22,133,13,23,195,2,28,23,193,2,192,87,94,23,
|
||||||
193,1,28,248,22,149,6,23,195,2,27,248,22,149,13,23,196,2,28,23,193,
|
193,1,28,248,22,155,6,23,195,2,27,248,22,155,13,23,196,2,28,23,193,
|
||||||
2,192,87,94,23,193,1,248,22,150,13,23,196,2,11,12,252,22,184,8,23,
|
2,192,87,94,23,193,1,248,22,156,13,23,196,2,11,12,252,22,190,8,23,
|
||||||
200,2,2,25,35,23,198,2,23,199,2,28,28,248,22,149,6,23,195,2,10,
|
200,2,2,25,35,23,198,2,23,199,2,28,28,248,22,155,6,23,195,2,10,
|
||||||
248,22,137,7,23,195,2,87,94,23,194,1,12,252,22,184,8,23,200,2,2,
|
248,22,143,7,23,195,2,87,94,23,194,1,12,252,22,190,8,23,200,2,2,
|
||||||
26,36,23,198,2,23,199,1,91,159,38,11,90,161,38,35,11,248,22,148,13,
|
26,36,23,198,2,23,199,1,91,159,38,11,90,161,38,35,11,248,22,154,13,
|
||||||
23,197,2,87,94,23,195,1,87,94,28,192,12,250,22,185,8,23,201,1,2,
|
23,197,2,87,94,23,195,1,87,94,28,192,12,250,22,191,8,23,201,1,2,
|
||||||
27,23,199,1,249,22,7,194,195,91,159,37,11,90,161,37,35,11,87,95,28,
|
27,23,199,1,249,22,7,194,195,91,159,37,11,90,161,37,35,11,87,95,28,
|
||||||
28,248,22,128,13,23,196,2,10,27,248,22,191,12,23,197,2,28,23,193,2,
|
28,248,22,134,13,23,196,2,10,27,248,22,133,13,23,197,2,28,23,193,2,
|
||||||
192,87,94,23,193,1,28,248,22,149,6,23,197,2,27,248,22,149,13,23,198,
|
192,87,94,23,193,1,28,248,22,155,6,23,197,2,27,248,22,155,13,23,198,
|
||||||
2,28,23,193,2,192,87,94,23,193,1,248,22,150,13,23,198,2,11,12,252,
|
2,28,23,193,2,192,87,94,23,193,1,248,22,156,13,23,198,2,11,12,252,
|
||||||
22,184,8,2,10,2,25,35,23,200,2,23,201,2,28,28,248,22,149,6,23,
|
22,190,8,2,10,2,25,35,23,200,2,23,201,2,28,28,248,22,155,6,23,
|
||||||
197,2,10,248,22,137,7,23,197,2,12,252,22,184,8,2,10,2,26,36,23,
|
197,2,10,248,22,143,7,23,197,2,12,252,22,190,8,2,10,2,26,36,23,
|
||||||
200,2,23,201,2,91,159,38,11,90,161,38,35,11,248,22,148,13,23,199,2,
|
200,2,23,201,2,91,159,38,11,90,161,38,35,11,248,22,154,13,23,199,2,
|
||||||
87,94,23,195,1,87,94,28,23,193,2,12,250,22,185,8,2,10,2,27,23,
|
87,94,23,195,1,87,94,28,23,193,2,12,250,22,191,8,2,10,2,27,23,
|
||||||
201,2,249,22,7,23,195,1,23,196,1,27,249,22,137,13,250,22,184,13,0,
|
201,2,249,22,7,23,195,1,23,196,1,27,249,22,143,13,250,22,190,13,0,
|
||||||
18,35,114,120,35,34,40,91,46,93,91,94,46,93,42,124,41,36,34,248,22,
|
18,35,114,120,35,34,40,91,46,93,91,94,46,93,42,124,41,36,34,248,22,
|
||||||
133,13,23,201,1,28,248,22,149,6,23,203,2,249,22,161,7,23,204,1,8,
|
139,13,23,201,1,28,248,22,155,6,23,203,2,249,22,167,7,23,204,1,8,
|
||||||
63,23,202,1,28,248,22,128,13,23,199,2,248,22,129,13,23,199,1,87,94,
|
63,23,202,1,28,248,22,134,13,23,199,2,248,22,135,13,23,199,1,87,94,
|
||||||
23,198,1,247,22,130,13,28,248,22,191,12,194,249,22,145,13,195,194,192,91,
|
23,198,1,247,22,136,13,28,248,22,133,13,194,249,22,151,13,195,194,192,91,
|
||||||
159,37,11,90,161,37,35,11,87,95,28,28,248,22,128,13,23,196,2,10,27,
|
159,37,11,90,161,37,35,11,87,95,28,28,248,22,134,13,23,196,2,10,27,
|
||||||
248,22,191,12,23,197,2,28,23,193,2,192,87,94,23,193,1,28,248,22,149,
|
248,22,133,13,23,197,2,28,23,193,2,192,87,94,23,193,1,28,248,22,155,
|
||||||
6,23,197,2,27,248,22,149,13,23,198,2,28,23,193,2,192,87,94,23,193,
|
6,23,197,2,27,248,22,155,13,23,198,2,28,23,193,2,192,87,94,23,193,
|
||||||
1,248,22,150,13,23,198,2,11,12,252,22,184,8,2,11,2,25,35,23,200,
|
1,248,22,156,13,23,198,2,11,12,252,22,190,8,2,11,2,25,35,23,200,
|
||||||
2,23,201,2,28,28,248,22,149,6,23,197,2,10,248,22,137,7,23,197,2,
|
2,23,201,2,28,28,248,22,155,6,23,197,2,10,248,22,143,7,23,197,2,
|
||||||
12,252,22,184,8,2,11,2,26,36,23,200,2,23,201,2,91,159,38,11,90,
|
12,252,22,190,8,2,11,2,26,36,23,200,2,23,201,2,91,159,38,11,90,
|
||||||
161,38,35,11,248,22,148,13,23,199,2,87,94,23,195,1,87,94,28,23,193,
|
161,38,35,11,248,22,154,13,23,199,2,87,94,23,195,1,87,94,28,23,193,
|
||||||
2,12,250,22,185,8,2,11,2,27,23,201,2,249,22,7,23,195,1,23,196,
|
2,12,250,22,191,8,2,11,2,27,23,201,2,249,22,7,23,195,1,23,196,
|
||||||
1,27,249,22,137,13,249,22,147,7,250,22,185,13,0,9,35,114,120,35,34,
|
1,27,249,22,143,13,249,22,153,7,250,22,191,13,0,9,35,114,120,35,34,
|
||||||
91,46,93,34,248,22,133,13,23,203,1,6,1,1,95,28,248,22,149,6,23,
|
91,46,93,34,248,22,139,13,23,203,1,6,1,1,95,28,248,22,155,6,23,
|
||||||
202,2,249,22,161,7,23,203,1,8,63,23,201,1,28,248,22,128,13,23,199,
|
202,2,249,22,167,7,23,203,1,8,63,23,201,1,28,248,22,134,13,23,199,
|
||||||
2,248,22,129,13,23,199,1,87,94,23,198,1,247,22,130,13,28,248,22,191,
|
2,248,22,135,13,23,199,1,87,94,23,198,1,247,22,136,13,28,248,22,133,
|
||||||
12,194,249,22,145,13,195,194,192,249,247,22,180,4,194,11,249,80,158,37,46,
|
13,194,249,22,151,13,195,194,192,249,247,22,186,4,194,11,249,80,158,37,46,
|
||||||
9,9,249,80,158,37,46,195,9,27,247,22,170,13,249,80,158,38,47,28,23,
|
9,9,249,80,158,37,46,195,9,27,247,22,176,13,249,80,158,38,47,28,23,
|
||||||
195,2,27,248,22,166,7,6,11,11,80,76,84,67,79,76,76,69,67,84,83,
|
195,2,27,248,22,172,7,6,11,11,80,76,84,67,79,76,76,69,67,84,83,
|
||||||
28,192,192,6,0,0,6,0,0,27,28,23,196,1,250,22,145,13,248,22,166,
|
28,192,192,6,0,0,6,0,0,27,28,23,196,1,250,22,151,13,248,22,172,
|
||||||
13,69,97,100,100,111,110,45,100,105,114,247,22,164,7,6,8,8,99,111,108,
|
13,69,97,100,100,111,110,45,100,105,114,247,22,170,7,6,8,8,99,111,108,
|
||||||
108,101,99,116,115,11,27,248,80,159,41,52,36,250,22,77,23,203,1,248,22,
|
108,101,99,116,115,11,27,248,80,159,41,52,36,250,22,77,23,203,1,248,22,
|
||||||
73,248,22,166,13,72,99,111,108,108,101,99,116,115,45,100,105,114,23,204,1,
|
73,248,22,172,13,72,99,111,108,108,101,99,116,115,45,100,105,114,23,204,1,
|
||||||
28,23,194,2,249,22,63,23,196,1,23,195,1,192,32,48,89,162,8,44,38,
|
28,23,194,2,249,22,63,23,196,1,23,195,1,192,32,48,89,162,8,44,38,
|
||||||
54,2,19,222,33,49,27,249,22,177,13,23,197,2,23,198,2,28,23,193,2,
|
54,2,19,222,33,49,27,249,22,183,13,23,197,2,23,198,2,28,23,193,2,
|
||||||
87,94,23,196,1,27,248,22,88,23,195,2,27,27,248,22,97,23,197,1,27,
|
87,94,23,196,1,27,248,22,88,23,195,2,27,27,248,22,97,23,197,1,27,
|
||||||
249,22,177,13,23,201,2,23,196,2,28,23,193,2,87,94,23,194,1,27,248,
|
249,22,183,13,23,201,2,23,196,2,28,23,193,2,87,94,23,194,1,27,248,
|
||||||
22,88,23,195,2,27,250,2,48,23,203,2,23,204,1,248,22,97,23,199,1,
|
22,88,23,195,2,27,250,2,48,23,203,2,23,204,1,248,22,97,23,199,1,
|
||||||
28,249,22,143,7,23,196,2,2,28,249,22,77,23,202,2,194,249,22,63,248,
|
28,249,22,149,7,23,196,2,2,28,249,22,77,23,202,2,194,249,22,63,248,
|
||||||
22,136,13,23,197,1,23,195,1,87,95,23,199,1,23,193,1,28,249,22,143,
|
22,142,13,23,197,1,23,195,1,87,95,23,199,1,23,193,1,28,249,22,149,
|
||||||
7,23,196,2,2,28,249,22,77,23,200,2,9,249,22,63,248,22,136,13,23,
|
7,23,196,2,2,28,249,22,77,23,200,2,9,249,22,63,248,22,142,13,23,
|
||||||
197,1,9,28,249,22,143,7,23,196,2,2,28,249,22,77,197,194,87,94,23,
|
197,1,9,28,249,22,149,7,23,196,2,2,28,249,22,77,197,194,87,94,23,
|
||||||
196,1,249,22,63,248,22,136,13,23,197,1,194,87,94,23,193,1,28,249,22,
|
196,1,249,22,63,248,22,142,13,23,197,1,194,87,94,23,193,1,28,249,22,
|
||||||
143,7,23,198,2,2,28,249,22,77,195,9,87,94,23,194,1,249,22,63,248,
|
149,7,23,198,2,2,28,249,22,77,195,9,87,94,23,194,1,249,22,63,248,
|
||||||
22,136,13,23,199,1,9,87,95,28,28,248,22,137,7,194,10,248,22,149,6,
|
22,142,13,23,199,1,9,87,95,28,28,248,22,143,7,194,10,248,22,155,6,
|
||||||
194,12,250,22,184,8,2,14,6,21,21,98,121,116,101,32,115,116,114,105,110,
|
194,12,250,22,190,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,
|
103,32,111,114,32,115,116,114,105,110,103,196,28,28,248,22,72,195,249,22,4,
|
||||||
22,191,12,196,11,12,250,22,184,8,2,14,6,13,13,108,105,115,116,32,111,
|
22,133,13,196,11,12,250,22,190,8,2,14,6,13,13,108,105,115,116,32,111,
|
||||||
102,32,112,97,116,104,115,197,250,2,48,197,195,28,248,22,149,6,197,248,22,
|
102,32,112,97,116,104,115,197,250,2,48,197,195,28,248,22,155,6,197,248,22,
|
||||||
160,7,197,196,32,51,89,162,8,44,39,57,2,19,222,33,54,32,52,89,162,
|
166,7,197,196,32,51,89,162,8,44,39,57,2,19,222,33,54,32,52,89,162,
|
||||||
8,44,38,54,70,102,111,117,110,100,45,101,120,101,99,222,33,53,28,23,193,
|
8,44,38,54,70,102,111,117,110,100,45,101,120,101,99,222,33,53,28,23,193,
|
||||||
2,91,159,38,11,90,161,38,35,11,248,22,148,13,23,199,2,87,95,23,195,
|
2,91,159,38,11,90,161,38,35,11,248,22,154,13,23,199,2,87,95,23,195,
|
||||||
1,23,194,1,27,28,23,198,2,27,248,22,153,13,23,201,2,28,249,22,156,
|
1,23,194,1,27,28,23,198,2,27,248,22,159,13,23,201,2,28,249,22,162,
|
||||||
8,23,195,2,23,202,2,11,28,248,22,149,13,23,194,2,250,2,52,23,201,
|
8,23,195,2,23,202,2,11,28,248,22,155,13,23,194,2,250,2,52,23,201,
|
||||||
2,23,202,2,249,22,145,13,23,200,2,23,198,1,250,2,52,23,201,2,23,
|
2,23,202,2,249,22,151,13,23,200,2,23,198,1,250,2,52,23,201,2,23,
|
||||||
202,2,23,196,1,11,28,23,193,2,192,87,94,23,193,1,27,28,248,22,191,
|
202,2,23,196,1,11,28,23,193,2,192,87,94,23,193,1,27,28,248,22,133,
|
||||||
12,23,196,2,27,249,22,145,13,23,198,2,23,201,2,28,28,248,22,140,13,
|
13,23,196,2,27,249,22,151,13,23,198,2,23,201,2,28,28,248,22,146,13,
|
||||||
193,10,248,22,139,13,193,192,11,11,28,23,193,2,192,87,94,23,193,1,28,
|
193,10,248,22,145,13,193,192,11,11,28,23,193,2,192,87,94,23,193,1,28,
|
||||||
23,199,2,11,27,248,22,153,13,23,202,2,28,249,22,156,8,23,195,2,23,
|
23,199,2,11,27,248,22,159,13,23,202,2,28,249,22,162,8,23,195,2,23,
|
||||||
203,1,11,28,248,22,149,13,23,194,2,250,2,52,23,202,1,23,203,1,249,
|
203,1,11,28,248,22,155,13,23,194,2,250,2,52,23,202,1,23,203,1,249,
|
||||||
22,145,13,23,201,1,23,198,1,250,2,52,201,202,195,194,28,248,22,71,23,
|
22,151,13,23,201,1,23,198,1,250,2,52,201,202,195,194,28,248,22,71,23,
|
||||||
197,2,11,27,248,22,152,13,248,22,64,23,199,2,27,249,22,145,13,23,196,
|
197,2,11,27,248,22,158,13,248,22,64,23,199,2,27,249,22,151,13,23,196,
|
||||||
1,23,197,2,28,248,22,139,13,23,194,2,250,2,52,198,199,195,87,94,23,
|
1,23,197,2,28,248,22,145,13,23,194,2,250,2,52,198,199,195,87,94,23,
|
||||||
193,1,27,248,22,65,23,200,1,28,248,22,71,23,194,2,11,27,248,22,152,
|
193,1,27,248,22,65,23,200,1,28,248,22,71,23,194,2,11,27,248,22,158,
|
||||||
13,248,22,64,23,196,2,27,249,22,145,13,23,196,1,23,200,2,28,248,22,
|
13,248,22,64,23,196,2,27,249,22,151,13,23,196,1,23,200,2,28,248,22,
|
||||||
139,13,23,194,2,250,2,52,201,202,195,87,94,23,193,1,27,248,22,65,23,
|
145,13,23,194,2,250,2,52,201,202,195,87,94,23,193,1,27,248,22,65,23,
|
||||||
197,1,28,248,22,71,23,194,2,11,27,248,22,152,13,248,22,64,195,27,249,
|
197,1,28,248,22,71,23,194,2,11,27,248,22,158,13,248,22,64,195,27,249,
|
||||||
22,145,13,23,196,1,202,28,248,22,139,13,193,250,2,52,204,205,195,251,2,
|
22,151,13,23,196,1,202,28,248,22,145,13,193,250,2,52,204,205,195,251,2,
|
||||||
51,204,205,206,248,22,65,199,87,95,28,27,248,22,191,12,23,196,2,28,23,
|
51,204,205,206,248,22,65,199,87,95,28,27,248,22,133,13,23,196,2,28,23,
|
||||||
193,2,192,87,94,23,193,1,28,248,22,149,6,23,196,2,27,248,22,149,13,
|
193,2,192,87,94,23,193,1,28,248,22,155,6,23,196,2,27,248,22,155,13,
|
||||||
23,197,2,28,23,193,2,192,87,94,23,193,1,248,22,150,13,23,197,2,11,
|
23,197,2,28,23,193,2,192,87,94,23,193,1,248,22,156,13,23,197,2,11,
|
||||||
12,250,22,184,8,2,15,6,25,25,112,97,116,104,32,111,114,32,115,116,114,
|
12,250,22,190,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,23,197,2,28,28,23,195,
|
105,110,103,32,40,115,97,110,115,32,110,117,108,41,23,197,2,28,28,23,195,
|
||||||
2,28,27,248,22,191,12,23,197,2,28,23,193,2,192,87,94,23,193,1,28,
|
2,28,27,248,22,133,13,23,197,2,28,23,193,2,192,87,94,23,193,1,28,
|
||||||
248,22,149,6,23,197,2,27,248,22,149,13,23,198,2,28,23,193,2,192,87,
|
248,22,155,6,23,197,2,27,248,22,155,13,23,198,2,28,23,193,2,192,87,
|
||||||
94,23,193,1,248,22,150,13,23,198,2,11,248,22,149,13,23,196,2,11,10,
|
94,23,193,1,248,22,156,13,23,198,2,11,248,22,155,13,23,196,2,11,10,
|
||||||
12,250,22,184,8,2,15,6,29,29,35,102,32,111,114,32,114,101,108,97,116,
|
12,250,22,190,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,23,198,2,
|
105,118,101,32,112,97,116,104,32,111,114,32,115,116,114,105,110,103,23,198,2,
|
||||||
28,28,248,22,149,13,23,195,2,91,159,38,11,90,161,38,35,11,248,22,148,
|
28,28,248,22,155,13,23,195,2,91,159,38,11,90,161,38,35,11,248,22,154,
|
||||||
13,23,198,2,249,22,154,8,194,68,114,101,108,97,116,105,118,101,11,27,248,
|
13,23,198,2,249,22,160,8,194,68,114,101,108,97,116,105,118,101,11,27,248,
|
||||||
22,166,7,6,4,4,80,65,84,72,251,2,51,23,199,1,23,200,1,23,201,
|
22,172,7,6,4,4,80,65,84,72,251,2,51,23,199,1,23,200,1,23,201,
|
||||||
1,28,23,197,2,27,249,80,158,43,47,23,200,1,9,28,249,22,154,8,247,
|
1,28,23,197,2,27,249,80,158,43,47,23,200,1,9,28,249,22,160,8,247,
|
||||||
22,168,7,2,21,249,22,63,248,22,136,13,5,1,46,23,195,1,192,9,27,
|
22,174,7,2,21,249,22,63,248,22,142,13,5,1,46,23,195,1,192,9,27,
|
||||||
248,22,152,13,23,196,1,28,248,22,139,13,193,250,2,52,198,199,195,11,250,
|
248,22,158,13,23,196,1,28,248,22,145,13,193,250,2,52,198,199,195,11,250,
|
||||||
80,158,38,48,196,197,11,250,80,158,38,48,196,11,11,87,94,249,22,140,6,
|
80,158,38,48,196,197,11,250,80,158,38,48,196,11,11,87,94,249,22,146,6,
|
||||||
247,22,176,4,195,248,22,166,5,249,22,163,3,35,249,22,147,3,197,198,27,
|
247,22,182,4,195,248,22,172,5,249,22,169,3,35,249,22,153,3,197,198,27,
|
||||||
28,23,197,2,87,95,23,196,1,23,195,1,23,197,1,87,94,23,197,1,27,
|
28,23,197,2,87,95,23,196,1,23,195,1,23,197,1,87,94,23,197,1,27,
|
||||||
248,22,166,13,2,20,27,249,80,158,40,48,23,196,1,11,27,27,248,22,166,
|
248,22,172,13,2,20,27,249,80,158,40,48,23,196,1,11,27,27,248,22,172,
|
||||||
3,23,200,1,28,192,192,35,27,27,248,22,166,3,23,202,1,28,192,192,35,
|
3,23,200,1,28,192,192,35,27,27,248,22,172,3,23,202,1,28,192,192,35,
|
||||||
249,22,143,5,23,197,1,83,158,39,20,97,95,89,162,8,44,35,47,9,224,
|
249,22,149,5,23,197,1,83,158,39,20,97,95,89,162,8,44,35,47,9,224,
|
||||||
3,2,33,58,23,195,1,23,196,1,27,248,22,128,5,23,195,1,248,80,159,
|
3,2,33,58,23,195,1,23,196,1,27,248,22,134,5,23,195,1,248,80,159,
|
||||||
38,53,36,193,159,35,20,103,159,35,16,1,65,98,101,103,105,110,16,0,83,
|
38,53,36,193,159,35,20,103,159,35,16,1,65,98,101,103,105,110,16,0,83,
|
||||||
158,41,20,100,138,67,35,37,117,116,105,108,115,2,1,11,11,10,10,42,80,
|
158,41,20,100,138,67,35,37,117,116,105,108,115,2,1,11,11,10,10,42,80,
|
||||||
158,35,35,20,103,159,37,16,17,30,2,1,2,2,193,30,2,1,2,3,193,
|
158,35,35,20,103,159,37,16,17,30,2,1,2,2,193,30,2,1,2,3,193,
|
||||||
|
@ -319,7 +319,7 @@
|
||||||
0,16,0,16,0,35,35,16,0,16,17,83,158,35,16,2,89,162,43,36,48,
|
0,16,0,16,0,35,35,16,0,16,17,83,158,35,16,2,89,162,43,36,48,
|
||||||
2,19,223,0,33,29,80,159,35,53,36,83,158,35,16,2,89,162,8,44,36,
|
2,19,223,0,33,29,80,159,35,53,36,83,158,35,16,2,89,162,8,44,36,
|
||||||
55,2,19,223,0,33,30,80,159,35,52,36,83,158,35,16,2,32,0,89,162,
|
55,2,19,223,0,33,30,80,159,35,52,36,83,158,35,16,2,32,0,89,162,
|
||||||
43,36,44,2,2,222,33,31,80,159,35,35,36,83,158,35,16,2,249,22,151,
|
43,36,44,2,2,222,33,31,80,159,35,35,36,83,158,35,16,2,249,22,157,
|
||||||
6,7,92,7,92,80,159,35,36,36,83,158,35,16,2,89,162,43,36,53,2,
|
6,7,92,7,92,80,159,35,36,36,83,158,35,16,2,89,162,43,36,53,2,
|
||||||
4,223,0,33,32,80,159,35,37,36,83,158,35,16,2,32,0,89,162,8,44,
|
4,223,0,33,32,80,159,35,37,36,83,158,35,16,2,32,0,89,162,8,44,
|
||||||
37,49,2,5,222,33,33,80,159,35,38,36,83,158,35,16,2,32,0,89,162,
|
37,49,2,5,222,33,33,80,159,35,38,36,83,158,35,16,2,32,0,89,162,
|
||||||
|
@ -332,8 +332,8 @@
|
||||||
35,16,2,32,0,89,162,43,36,43,2,12,222,33,44,80,159,35,45,36,83,
|
35,16,2,32,0,89,162,43,36,43,2,12,222,33,44,80,159,35,45,36,83,
|
||||||
158,35,16,2,83,158,38,20,96,96,2,13,89,162,43,35,43,9,223,0,33,
|
158,35,16,2,83,158,38,20,96,96,2,13,89,162,43,35,43,9,223,0,33,
|
||||||
45,89,162,43,36,44,9,223,0,33,46,89,162,43,37,54,9,223,0,33,47,
|
45,89,162,43,36,44,9,223,0,33,46,89,162,43,37,54,9,223,0,33,47,
|
||||||
80,159,35,46,36,83,158,35,16,2,27,248,22,173,13,248,22,160,7,27,28,
|
80,159,35,46,36,83,158,35,16,2,27,248,22,179,13,248,22,166,7,27,28,
|
||||||
249,22,154,8,247,22,168,7,2,21,6,1,1,59,6,1,1,58,250,22,133,
|
249,22,160,8,247,22,174,7,2,21,6,1,1,59,6,1,1,58,250,22,139,
|
||||||
7,6,14,14,40,91,94,126,97,93,42,41,126,97,40,46,42,41,23,196,2,
|
7,6,14,14,40,91,94,126,97,93,42,41,126,97,40,46,42,41,23,196,2,
|
||||||
23,196,1,89,162,8,44,37,47,2,14,223,0,33,50,80,159,35,47,36,83,
|
23,196,1,89,162,8,44,37,47,2,14,223,0,33,50,80,159,35,47,36,83,
|
||||||
158,35,16,2,83,158,38,20,96,96,2,15,89,162,8,44,38,53,9,223,0,
|
158,35,16,2,83,158,38,20,96,96,2,15,89,162,8,44,38,53,9,223,0,
|
||||||
|
@ -344,12 +344,12 @@
|
||||||
EVAL_ONE_SIZED_STR((char *)expr, 5080);
|
EVAL_ONE_SIZED_STR((char *)expr, 5080);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,49,46,49,8,0,0,0,1,0,0,6,0,19,0,
|
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,49,46,50,8,0,0,0,1,0,0,6,0,19,0,
|
||||||
34,0,48,0,62,0,76,0,111,0,0,0,255,0,0,0,65,113,117,111,116,
|
34,0,48,0,62,0,76,0,111,0,0,0,255,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,
|
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,
|
110,101,116,119,111,114,107,11,29,94,2,1,68,35,37,112,97,114,97,109,122,
|
||||||
11,29,94,2,1,68,35,37,101,120,112,111,98,115,11,29,94,2,1,68,35,
|
11,29,94,2,1,68,35,37,101,120,112,111,98,115,11,29,94,2,1,68,35,
|
||||||
37,107,101,114,110,101,108,11,98,10,35,11,8,176,229,97,159,2,2,35,35,
|
37,107,101,114,110,101,108,11,98,10,35,11,8,188,229,97,159,2,2,35,35,
|
||||||
159,2,3,35,35,159,2,4,35,35,159,2,5,35,35,159,2,6,35,35,16,
|
159,2,3,35,35,159,2,4,35,35,159,2,5,35,35,159,2,6,35,35,16,
|
||||||
0,159,35,20,103,159,35,16,1,65,98,101,103,105,110,16,0,83,158,41,20,
|
0,159,35,20,103,159,35,16,1,65,98,101,103,105,110,16,0,83,158,41,20,
|
||||||
100,138,69,35,37,98,117,105,108,116,105,110,29,11,11,11,10,10,18,96,11,
|
100,138,69,35,37,98,117,105,108,116,105,110,29,11,11,11,10,10,18,96,11,
|
||||||
|
@ -361,7 +361,7 @@
|
||||||
EVAL_ONE_SIZED_STR((char *)expr, 292);
|
EVAL_ONE_SIZED_STR((char *)expr, 292);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,49,46,49,52,0,0,0,1,0,0,3,0,14,0,
|
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,49,46,50,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,
|
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,
|
0,223,0,3,1,8,1,13,1,18,1,23,1,54,1,58,1,66,1,74,1,
|
||||||
82,1,185,1,230,1,250,1,29,2,64,2,98,2,108,2,155,2,165,2,172,
|
82,1,185,1,230,1,250,1,29,2,64,2,98,2,108,2,155,2,165,2,172,
|
||||||
|
@ -383,48 +383,48 @@
|
||||||
64,108,111,111,112,1,29,115,116,97,110,100,97,114,100,45,109,111,100,117,108,
|
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,
|
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,37,45,249,80,159,37,48,36,195,
|
103,110,111,114,101,100,249,22,14,195,80,158,37,45,249,80,159,37,48,36,195,
|
||||||
10,27,28,23,195,2,28,249,22,154,8,23,197,2,80,158,38,46,87,94,23,
|
10,27,28,23,195,2,28,249,22,160,8,23,197,2,80,158,38,46,87,94,23,
|
||||||
195,1,80,158,36,47,27,248,22,163,4,23,197,2,28,248,22,191,12,23,194,
|
195,1,80,158,36,47,27,248,22,169,4,23,197,2,28,248,22,133,13,23,194,
|
||||||
2,91,159,38,11,90,161,38,35,11,248,22,148,13,23,197,1,87,95,83,160,
|
2,91,159,38,11,90,161,38,35,11,248,22,154,13,23,197,1,87,95,83,160,
|
||||||
37,11,80,158,40,46,198,83,160,37,11,80,158,40,47,192,192,11,11,28,23,
|
37,11,80,158,40,46,198,83,160,37,11,80,158,40,47,192,192,11,11,28,23,
|
||||||
193,2,192,87,94,23,193,1,27,247,22,181,4,28,192,192,247,22,167,13,20,
|
193,2,192,87,94,23,193,1,27,247,22,187,4,28,192,192,247,22,173,13,20,
|
||||||
14,159,80,158,35,39,250,80,158,38,40,249,22,27,11,80,158,40,39,22,181,
|
14,159,80,158,35,39,250,80,158,38,40,249,22,27,11,80,158,40,39,22,187,
|
||||||
4,28,248,22,191,12,23,198,2,23,197,1,87,94,23,197,1,247,22,167,13,
|
4,28,248,22,133,13,23,198,2,23,197,1,87,94,23,197,1,247,22,173,13,
|
||||||
247,194,250,22,145,13,23,197,1,23,199,1,249,80,158,42,38,23,198,1,2,
|
247,194,250,22,151,13,23,197,1,23,199,1,249,80,158,42,38,23,198,1,2,
|
||||||
18,252,22,145,13,23,199,1,23,201,1,6,6,6,110,97,116,105,118,101,247,
|
18,252,22,151,13,23,199,1,23,201,1,6,6,6,110,97,116,105,118,101,247,
|
||||||
22,169,7,249,80,158,44,38,23,200,1,80,158,44,35,87,94,23,194,1,27,
|
22,175,7,249,80,158,44,38,23,200,1,80,158,44,35,87,94,23,194,1,27,
|
||||||
23,194,1,27,250,22,162,13,196,11,32,0,89,162,8,44,35,40,9,222,11,
|
23,194,1,27,250,22,168,13,196,11,32,0,89,162,8,44,35,40,9,222,11,
|
||||||
28,192,249,22,63,195,194,11,27,248,23,195,1,23,196,1,27,250,22,162,13,
|
28,192,249,22,63,195,194,11,27,248,23,195,1,23,196,1,27,250,22,168,13,
|
||||||
196,11,32,0,89,162,8,44,35,40,9,222,11,28,192,249,22,63,195,194,11,
|
196,11,32,0,89,162,8,44,35,40,9,222,11,28,192,249,22,63,195,194,11,
|
||||||
249,247,22,172,13,248,22,64,195,195,27,250,22,145,13,23,198,1,23,200,1,
|
249,247,22,178,13,248,22,64,195,195,27,250,22,151,13,23,198,1,23,200,1,
|
||||||
249,80,158,43,38,23,199,1,2,18,27,250,22,162,13,196,11,32,0,89,162,
|
249,80,158,43,38,23,199,1,2,18,27,250,22,168,13,196,11,32,0,89,162,
|
||||||
8,44,35,40,9,222,11,28,192,249,22,63,195,194,11,249,247,22,179,4,248,
|
8,44,35,40,9,222,11,28,192,249,22,63,195,194,11,249,247,22,185,4,248,
|
||||||
22,64,195,195,249,247,22,179,4,194,195,87,94,28,248,80,158,36,37,23,195,
|
22,64,195,195,249,247,22,185,4,194,195,87,94,28,248,80,158,36,37,23,195,
|
||||||
2,12,250,22,184,8,77,108,111,97,100,47,117,115,101,45,99,111,109,112,105,
|
2,12,250,22,190,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,
|
108,101,100,6,25,25,112,97,116,104,32,111,114,32,118,97,108,105,100,45,112,
|
||||||
97,116,104,32,115,116,114,105,110,103,23,197,2,91,159,41,11,90,161,36,35,
|
97,116,104,32,115,116,114,105,110,103,23,197,2,91,159,41,11,90,161,36,35,
|
||||||
11,28,248,22,151,13,23,201,2,23,200,1,27,247,22,181,4,28,23,193,2,
|
11,28,248,22,157,13,23,201,2,23,200,1,27,247,22,187,4,28,23,193,2,
|
||||||
249,22,152,13,23,203,1,23,195,1,200,90,161,38,36,11,248,22,148,13,23,
|
249,22,158,13,23,203,1,23,195,1,200,90,161,38,36,11,248,22,154,13,23,
|
||||||
194,2,87,94,23,196,1,90,161,36,39,11,28,249,22,154,8,23,196,2,68,
|
194,2,87,94,23,196,1,90,161,36,39,11,28,249,22,160,8,23,196,2,68,
|
||||||
114,101,108,97,116,105,118,101,87,94,23,194,1,2,17,23,194,1,90,161,36,
|
114,101,108,97,116,105,118,101,87,94,23,194,1,2,17,23,194,1,90,161,36,
|
||||||
40,11,247,22,169,13,27,89,162,43,36,49,62,122,111,225,7,5,3,33,27,
|
40,11,247,22,175,13,27,89,162,43,36,49,62,122,111,225,7,5,3,33,27,
|
||||||
27,89,162,43,36,51,9,225,8,6,4,33,28,27,249,22,5,89,162,8,44,
|
27,89,162,43,36,51,9,225,8,6,4,33,28,27,249,22,5,89,162,8,44,
|
||||||
36,47,9,223,5,33,29,23,203,2,27,28,23,195,2,27,249,22,5,83,158,
|
36,47,9,223,5,33,29,23,203,2,27,28,23,195,2,27,249,22,5,83,158,
|
||||||
39,20,97,94,89,162,8,44,36,47,9,223,5,33,30,23,198,1,23,205,2,
|
39,20,97,94,89,162,8,44,36,47,9,223,5,33,30,23,198,1,23,205,2,
|
||||||
27,28,23,196,2,11,193,28,192,192,28,193,28,23,196,2,28,249,22,159,3,
|
27,28,23,196,2,11,193,28,192,192,28,193,28,23,196,2,28,249,22,165,3,
|
||||||
248,22,65,196,248,22,65,23,199,2,193,11,11,11,87,94,23,195,1,11,28,
|
248,22,65,196,248,22,65,23,199,2,193,11,11,11,87,94,23,195,1,11,28,
|
||||||
23,193,2,249,80,159,47,54,36,202,89,162,43,35,45,9,224,14,2,33,31,
|
23,193,2,249,80,159,47,54,36,202,89,162,43,35,45,9,224,14,2,33,31,
|
||||||
87,94,23,193,1,27,28,23,197,1,27,249,22,5,83,158,39,20,97,94,89,
|
87,94,23,193,1,27,28,23,197,1,27,249,22,5,83,158,39,20,97,94,89,
|
||||||
162,8,44,36,50,9,225,14,12,10,33,32,23,203,1,23,206,1,27,28,196,
|
162,8,44,36,50,9,225,14,12,10,33,32,23,203,1,23,206,1,27,28,196,
|
||||||
11,193,28,192,192,28,193,28,196,28,249,22,159,3,248,22,65,196,248,22,65,
|
11,193,28,192,192,28,193,28,196,28,249,22,165,3,248,22,65,196,248,22,65,
|
||||||
199,193,11,11,11,11,28,192,249,80,159,48,54,36,203,89,162,43,35,45,9,
|
199,193,11,11,11,11,28,192,249,80,159,48,54,36,203,89,162,43,35,45,9,
|
||||||
224,15,2,33,33,249,80,159,48,54,36,203,89,162,43,35,44,9,224,15,7,
|
224,15,2,33,33,249,80,159,48,54,36,203,89,162,43,35,44,9,224,15,7,
|
||||||
33,34,32,36,89,162,8,44,36,54,2,19,222,33,38,0,17,35,114,120,34,
|
33,34,32,36,89,162,8,44,36,54,2,19,222,33,38,0,17,35,114,120,34,
|
||||||
94,40,46,42,63,41,47,40,46,42,41,36,34,27,249,22,177,13,2,37,23,
|
94,40,46,42,63,41,47,40,46,42,41,36,34,27,249,22,183,13,2,37,23,
|
||||||
196,2,28,23,193,2,87,94,23,194,1,249,22,63,248,22,88,23,196,2,27,
|
196,2,28,23,193,2,87,94,23,194,1,249,22,63,248,22,88,23,196,2,27,
|
||||||
248,22,97,23,197,1,27,249,22,177,13,2,37,23,196,2,28,23,193,2,87,
|
248,22,97,23,197,1,27,249,22,183,13,2,37,23,196,2,28,23,193,2,87,
|
||||||
94,23,194,1,249,22,63,248,22,88,23,196,2,27,248,22,97,23,197,1,27,
|
94,23,194,1,249,22,63,248,22,88,23,196,2,27,248,22,97,23,197,1,27,
|
||||||
249,22,177,13,2,37,23,196,2,28,23,193,2,87,94,23,194,1,249,22,63,
|
249,22,183,13,2,37,23,196,2,28,23,193,2,87,94,23,194,1,249,22,63,
|
||||||
248,22,88,23,196,2,248,2,36,248,22,97,23,197,1,248,22,73,194,248,22,
|
248,22,88,23,196,2,248,2,36,248,22,97,23,197,1,248,22,73,194,248,22,
|
||||||
73,194,248,22,73,194,32,39,89,162,43,36,54,2,19,222,33,40,28,248,22,
|
73,194,248,22,73,194,32,39,89,162,43,36,54,2,19,222,33,40,28,248,22,
|
||||||
71,248,22,65,23,195,2,249,22,7,9,248,22,64,195,91,159,37,11,90,161,
|
71,248,22,65,23,195,2,249,22,7,9,248,22,64,195,91,159,37,11,90,161,
|
||||||
|
@ -435,96 +435,96 @@
|
||||||
249,22,7,249,22,63,248,22,64,23,200,1,23,197,1,23,196,1,249,22,7,
|
249,22,7,249,22,63,248,22,64,23,200,1,23,197,1,23,196,1,249,22,7,
|
||||||
249,22,63,248,22,64,23,200,1,23,197,1,23,196,1,249,22,7,249,22,63,
|
249,22,63,248,22,64,23,200,1,23,197,1,23,196,1,249,22,7,249,22,63,
|
||||||
248,22,64,23,200,1,23,197,1,195,27,248,2,36,23,195,1,28,194,192,248,
|
248,22,64,23,200,1,23,197,1,195,27,248,2,36,23,195,1,28,194,192,248,
|
||||||
2,39,193,87,95,28,248,22,161,4,195,12,250,22,184,8,2,20,6,20,20,
|
2,39,193,87,95,28,248,22,167,4,195,12,250,22,190,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,
|
114,101,115,111,108,118,101,100,45,109,111,100,117,108,101,45,112,97,116,104,197,
|
||||||
28,24,193,2,248,24,194,1,195,87,94,23,193,1,12,27,27,250,22,133,2,
|
28,24,193,2,248,24,194,1,195,87,94,23,193,1,12,27,27,250,22,137,2,
|
||||||
80,158,41,42,248,22,133,14,247,22,174,11,11,28,23,193,2,192,87,94,23,
|
80,158,41,42,248,22,139,14,247,22,180,11,11,28,23,193,2,192,87,94,23,
|
||||||
193,1,27,247,22,121,87,94,250,22,131,2,80,158,42,42,248,22,133,14,247,
|
193,1,27,247,22,121,87,94,250,22,135,2,80,158,42,42,248,22,139,14,247,
|
||||||
22,174,11,195,192,250,22,131,2,195,198,66,97,116,116,97,99,104,251,211,197,
|
22,180,11,195,192,250,22,135,2,195,198,66,97,116,116,97,99,104,251,211,197,
|
||||||
198,199,10,28,192,250,22,183,8,11,196,195,248,22,181,8,194,28,249,22,155,
|
198,199,10,28,192,250,22,189,8,11,196,195,248,22,187,8,194,28,249,22,161,
|
||||||
6,194,6,1,1,46,2,17,28,249,22,155,6,194,6,2,2,46,46,62,117,
|
6,194,6,1,1,46,2,17,28,249,22,161,6,194,6,2,2,46,46,62,117,
|
||||||
112,192,28,249,22,156,8,248,22,65,23,200,2,23,197,1,28,249,22,154,8,
|
112,192,28,249,22,162,8,248,22,65,23,200,2,23,197,1,28,249,22,160,8,
|
||||||
248,22,64,23,200,2,23,196,1,251,22,181,8,2,20,6,26,26,99,121,99,
|
248,22,64,23,200,2,23,196,1,251,22,187,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,
|
108,101,32,105,110,32,108,111,97,100,105,110,103,32,97,116,32,126,101,58,32,
|
||||||
126,101,23,200,1,249,22,2,22,65,248,22,78,249,22,63,23,206,1,23,202,
|
126,101,23,200,1,249,22,2,22,65,248,22,78,249,22,63,23,206,1,23,202,
|
||||||
1,12,12,247,192,20,14,159,80,158,39,44,249,22,63,247,22,174,11,23,197,
|
1,12,12,247,192,20,14,159,80,158,39,44,249,22,63,247,22,180,11,23,197,
|
||||||
1,20,14,159,80,158,39,39,250,80,158,42,40,249,22,27,11,80,158,44,39,
|
1,20,14,159,80,158,39,39,250,80,158,42,40,249,22,27,11,80,158,44,39,
|
||||||
22,143,4,23,196,1,249,247,22,180,4,23,198,1,248,22,52,248,22,131,13,
|
22,149,4,23,196,1,249,247,22,186,4,23,198,1,248,22,52,248,22,137,13,
|
||||||
23,198,1,87,94,28,28,248,22,191,12,23,197,2,10,248,22,167,4,23,197,
|
23,198,1,87,94,28,28,248,22,133,13,23,197,2,10,248,22,173,4,23,197,
|
||||||
2,12,28,23,198,2,250,22,183,8,11,6,15,15,98,97,100,32,109,111,100,
|
2,12,28,23,198,2,250,22,189,8,11,6,15,15,98,97,100,32,109,111,100,
|
||||||
117,108,101,32,112,97,116,104,23,201,2,250,22,184,8,2,20,6,19,19,109,
|
117,108,101,32,112,97,116,104,23,201,2,250,22,190,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,23,199,2,
|
111,100,117,108,101,45,112,97,116,104,32,111,114,32,112,97,116,104,23,199,2,
|
||||||
28,28,248,22,61,23,197,2,249,22,154,8,248,22,64,23,199,2,2,4,11,
|
28,28,248,22,61,23,197,2,249,22,160,8,248,22,64,23,199,2,2,4,11,
|
||||||
248,22,162,4,248,22,88,197,28,28,248,22,61,23,197,2,249,22,154,8,248,
|
248,22,168,4,248,22,88,197,28,28,248,22,61,23,197,2,249,22,160,8,248,
|
||||||
22,64,23,199,2,66,112,108,97,110,101,116,11,87,94,28,207,12,20,14,159,
|
22,64,23,199,2,66,112,108,97,110,101,116,11,87,94,28,207,12,20,14,159,
|
||||||
80,158,37,39,250,80,158,40,40,249,22,27,11,80,158,42,39,22,174,11,23,
|
80,158,37,39,250,80,158,40,40,249,22,27,11,80,158,42,39,22,180,11,23,
|
||||||
197,1,90,161,36,35,10,249,22,144,4,21,94,2,21,6,18,18,112,108,97,
|
197,1,90,161,36,35,10,249,22,150,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,
|
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,116,45,109,111,100,117,108,101,45,110,97,109,101,45,114,101,115,111,108,118,
|
||||||
101,114,12,251,211,199,200,201,202,87,94,23,193,1,27,89,162,8,44,36,45,
|
101,114,12,251,211,199,200,201,202,87,94,23,193,1,27,89,162,8,44,36,45,
|
||||||
79,115,104,111,119,45,99,111,108,108,101,99,116,105,111,110,45,101,114,114,223,
|
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,23,199,2,27,250,22,133,2,80,158,43,43,249,
|
6,33,44,27,28,248,22,51,23,199,2,27,250,22,137,2,80,158,43,43,249,
|
||||||
22,63,23,204,2,247,22,168,13,11,28,23,193,2,192,87,94,23,193,1,91,
|
22,63,23,204,2,247,22,174,13,11,28,23,193,2,192,87,94,23,193,1,91,
|
||||||
159,37,11,90,161,37,35,11,249,80,159,44,48,36,248,22,54,23,204,2,11,
|
159,37,11,90,161,37,35,11,249,80,159,44,48,36,248,22,54,23,204,2,11,
|
||||||
27,251,80,158,47,50,2,20,23,202,1,28,248,22,71,23,199,2,23,199,2,
|
27,251,80,158,47,50,2,20,23,202,1,28,248,22,71,23,199,2,23,199,2,
|
||||||
248,22,64,23,199,2,28,248,22,71,23,199,2,9,248,22,65,23,199,2,249,
|
248,22,64,23,199,2,28,248,22,71,23,199,2,9,248,22,65,23,199,2,249,
|
||||||
22,145,13,23,195,1,28,248,22,71,23,197,1,87,94,23,197,1,6,7,7,
|
22,151,13,23,195,1,28,248,22,71,23,197,1,87,94,23,197,1,6,7,7,
|
||||||
109,97,105,110,46,115,115,249,22,172,6,23,199,1,6,3,3,46,115,115,28,
|
109,97,105,110,46,115,115,249,22,178,6,23,199,1,6,3,3,46,115,115,28,
|
||||||
248,22,149,6,23,199,2,87,94,23,194,1,27,248,80,159,41,55,36,23,201,
|
248,22,155,6,23,199,2,87,94,23,194,1,27,248,80,159,41,55,36,23,201,
|
||||||
2,27,250,22,133,2,80,158,44,43,249,22,63,23,205,2,23,199,2,11,28,
|
2,27,250,22,137,2,80,158,44,43,249,22,63,23,205,2,23,199,2,11,28,
|
||||||
23,193,2,192,87,94,23,193,1,91,159,37,11,90,161,37,35,11,249,80,159,
|
23,193,2,192,87,94,23,193,1,91,159,37,11,90,161,37,35,11,249,80,159,
|
||||||
45,48,36,23,204,2,11,250,22,1,22,145,13,23,199,1,249,22,77,249,22,
|
45,48,36,23,204,2,11,250,22,1,22,151,13,23,199,1,249,22,77,249,22,
|
||||||
2,32,0,89,162,8,44,36,43,9,222,33,45,23,200,1,248,22,73,23,200,
|
2,32,0,89,162,8,44,36,43,9,222,33,45,23,200,1,248,22,73,23,200,
|
||||||
1,28,248,22,191,12,23,199,2,87,94,23,194,1,28,248,22,150,13,23,199,
|
1,28,248,22,133,13,23,199,2,87,94,23,194,1,28,248,22,156,13,23,199,
|
||||||
2,23,198,2,248,22,73,6,26,26,32,40,97,32,112,97,116,104,32,109,117,
|
2,23,198,2,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,154,8,248,
|
115,116,32,98,101,32,97,98,115,111,108,117,116,101,41,28,249,22,160,8,248,
|
||||||
22,64,23,201,2,2,21,27,250,22,133,2,80,158,43,43,249,22,63,23,204,
|
22,64,23,201,2,2,21,27,250,22,137,2,80,158,43,43,249,22,63,23,204,
|
||||||
2,247,22,168,13,11,28,23,193,2,192,87,94,23,193,1,91,159,38,11,90,
|
2,247,22,174,13,11,28,23,193,2,192,87,94,23,193,1,91,159,38,11,90,
|
||||||
161,37,35,11,249,80,159,45,48,36,248,22,88,23,205,2,11,90,161,36,37,
|
161,37,35,11,249,80,159,45,48,36,248,22,88,23,205,2,11,90,161,36,37,
|
||||||
11,28,248,22,71,248,22,90,23,204,2,28,248,22,71,23,194,2,249,22,179,
|
11,28,248,22,71,248,22,90,23,204,2,28,248,22,71,23,194,2,249,22,185,
|
||||||
13,0,8,35,114,120,34,91,46,93,34,23,196,2,11,10,27,27,28,23,197,
|
13,0,8,35,114,120,34,91,46,93,34,23,196,2,11,10,27,27,28,23,197,
|
||||||
2,249,22,77,28,248,22,71,248,22,90,23,208,2,21,93,6,5,5,109,122,
|
2,249,22,77,28,248,22,71,248,22,90,23,208,2,21,93,6,5,5,109,122,
|
||||||
108,105,98,249,22,1,22,77,249,22,2,80,159,51,56,36,248,22,90,23,211,
|
108,105,98,249,22,1,22,77,249,22,2,80,159,51,56,36,248,22,90,23,211,
|
||||||
2,23,197,2,28,248,22,71,23,196,2,248,22,73,23,197,2,23,195,2,251,
|
2,23,197,2,28,248,22,71,23,196,2,248,22,73,23,197,2,23,195,2,251,
|
||||||
80,158,49,50,2,20,23,204,1,248,22,64,23,198,2,248,22,65,23,198,1,
|
80,158,49,50,2,20,23,204,1,248,22,64,23,198,2,248,22,65,23,198,1,
|
||||||
249,22,145,13,23,195,1,28,23,198,1,87,94,23,196,1,23,197,1,28,248,
|
249,22,151,13,23,195,1,28,23,198,1,87,94,23,196,1,23,197,1,28,248,
|
||||||
22,71,23,197,1,87,94,23,197,1,6,7,7,109,97,105,110,46,115,115,28,
|
22,71,23,197,1,87,94,23,197,1,6,7,7,109,97,105,110,46,115,115,28,
|
||||||
249,22,179,13,0,8,35,114,120,34,91,46,93,34,23,199,2,23,197,1,249,
|
249,22,185,13,0,8,35,114,120,34,91,46,93,34,23,199,2,23,197,1,249,
|
||||||
22,172,6,23,199,1,6,3,3,46,115,115,28,249,22,154,8,248,22,64,23,
|
22,178,6,23,199,1,6,3,3,46,115,115,28,249,22,160,8,248,22,64,23,
|
||||||
201,2,64,102,105,108,101,249,22,152,13,248,22,156,13,248,22,88,23,202,2,
|
201,2,64,102,105,108,101,249,22,158,13,248,22,162,13,248,22,88,23,202,2,
|
||||||
248,80,159,42,55,36,23,202,2,12,87,94,28,28,248,22,191,12,23,194,2,
|
248,80,159,42,55,36,23,202,2,12,87,94,28,28,248,22,133,13,23,194,2,
|
||||||
10,248,22,171,7,23,194,2,87,94,23,200,1,12,28,23,200,2,250,22,183,
|
10,248,22,177,7,23,194,2,87,94,23,200,1,12,28,23,200,2,250,22,189,
|
||||||
8,67,114,101,113,117,105,114,101,249,22,133,7,6,17,17,98,97,100,32,109,
|
8,67,114,101,113,117,105,114,101,249,22,139,7,6,17,17,98,97,100,32,109,
|
||||||
111,100,117,108,101,32,112,97,116,104,126,97,28,23,198,2,248,22,64,23,199,
|
111,100,117,108,101,32,112,97,116,104,126,97,28,23,198,2,248,22,64,23,199,
|
||||||
2,6,0,0,23,203,1,87,94,23,200,1,250,22,184,8,2,20,249,22,133,
|
2,6,0,0,23,203,1,87,94,23,200,1,250,22,190,8,2,20,249,22,139,
|
||||||
7,6,13,13,109,111,100,117,108,101,32,112,97,116,104,126,97,28,23,198,2,
|
7,6,13,13,109,111,100,117,108,101,32,112,97,116,104,126,97,28,23,198,2,
|
||||||
248,22,64,23,199,2,6,0,0,23,201,2,27,28,248,22,171,7,23,195,2,
|
248,22,64,23,199,2,6,0,0,23,201,2,27,28,248,22,177,7,23,195,2,
|
||||||
249,22,176,7,23,196,2,35,249,22,154,13,248,22,155,13,23,197,2,11,27,
|
249,22,182,7,23,196,2,35,249,22,160,13,248,22,161,13,23,197,2,11,27,
|
||||||
28,248,22,171,7,23,196,2,249,22,176,7,23,197,2,36,248,80,158,42,51,
|
28,248,22,177,7,23,196,2,249,22,182,7,23,197,2,36,248,80,158,42,51,
|
||||||
23,195,2,91,159,38,11,90,161,38,35,11,28,248,22,171,7,23,199,2,250,
|
23,195,2,91,159,38,11,90,161,38,35,11,28,248,22,177,7,23,199,2,250,
|
||||||
22,7,2,22,249,22,176,7,23,203,2,37,2,22,248,22,148,13,23,198,2,
|
22,7,2,22,249,22,182,7,23,203,2,37,2,22,248,22,154,13,23,198,2,
|
||||||
87,95,23,195,1,23,193,1,27,28,248,22,171,7,23,200,2,249,22,176,7,
|
87,95,23,195,1,23,193,1,27,28,248,22,177,7,23,200,2,249,22,182,7,
|
||||||
23,201,2,38,249,80,158,47,52,23,197,2,5,0,27,28,248,22,171,7,23,
|
23,201,2,38,249,80,158,47,52,23,197,2,5,0,27,28,248,22,177,7,23,
|
||||||
201,2,249,22,176,7,23,202,2,39,248,22,162,4,23,200,2,27,27,250,22,
|
201,2,249,22,182,7,23,202,2,39,248,22,168,4,23,200,2,27,27,250,22,
|
||||||
133,2,80,158,51,42,248,22,133,14,247,22,174,11,11,28,23,193,2,192,87,
|
137,2,80,158,51,42,248,22,139,14,247,22,180,11,11,28,23,193,2,192,87,
|
||||||
94,23,193,1,27,247,22,121,87,94,250,22,131,2,80,158,52,42,248,22,133,
|
94,23,193,1,27,247,22,121,87,94,250,22,135,2,80,158,52,42,248,22,139,
|
||||||
14,247,22,174,11,195,192,87,95,28,23,209,1,27,250,22,133,2,23,197,2,
|
14,247,22,180,11,195,192,87,95,28,23,209,1,27,250,22,137,2,23,197,2,
|
||||||
197,11,28,23,193,1,12,87,95,27,27,28,248,22,17,80,158,51,45,80,158,
|
197,11,28,23,193,1,12,87,95,27,27,28,248,22,17,80,158,51,45,80,158,
|
||||||
50,45,247,22,19,250,22,25,248,22,23,23,197,2,80,158,53,44,23,196,1,
|
50,45,247,22,19,250,22,25,248,22,23,23,197,2,80,158,53,44,23,196,1,
|
||||||
27,247,22,174,11,249,22,3,83,158,39,20,97,94,89,162,8,44,36,54,9,
|
27,247,22,180,11,249,22,3,83,158,39,20,97,94,89,162,8,44,36,54,9,
|
||||||
226,12,11,2,3,33,46,23,195,1,23,196,1,248,28,248,22,17,80,158,50,
|
226,12,11,2,3,33,46,23,195,1,23,196,1,248,28,248,22,17,80,158,50,
|
||||||
45,32,0,89,162,43,36,41,9,222,33,47,80,159,49,57,36,89,162,43,35,
|
45,32,0,89,162,43,36,41,9,222,33,47,80,159,49,57,36,89,162,43,35,
|
||||||
50,9,227,14,9,8,4,3,33,48,250,22,131,2,23,197,1,197,10,12,28,
|
50,9,227,14,9,8,4,3,33,48,250,22,135,2,23,197,1,197,10,12,28,
|
||||||
28,248,22,171,7,23,202,1,11,27,248,22,149,6,23,208,2,28,192,192,28,
|
28,248,22,177,7,23,202,1,11,27,248,22,155,6,23,208,2,28,192,192,28,
|
||||||
248,22,61,23,208,2,249,22,154,8,248,22,64,23,210,2,2,21,11,250,22,
|
248,22,61,23,208,2,249,22,160,8,248,22,64,23,210,2,2,21,11,250,22,
|
||||||
131,2,80,158,50,43,28,248,22,149,6,23,210,2,249,22,63,23,211,1,248,
|
135,2,80,158,50,43,28,248,22,155,6,23,210,2,249,22,63,23,211,1,248,
|
||||||
80,159,53,55,36,23,213,1,87,94,23,210,1,249,22,63,23,211,1,247,22,
|
80,159,53,55,36,23,213,1,87,94,23,210,1,249,22,63,23,211,1,247,22,
|
||||||
168,13,252,22,173,7,23,208,1,23,207,1,23,205,1,23,203,1,201,12,193,
|
174,13,252,22,179,7,23,208,1,23,207,1,23,205,1,23,203,1,201,12,193,
|
||||||
91,159,37,10,90,161,36,35,10,11,90,161,36,36,10,83,158,38,20,96,96,
|
91,159,37,10,90,161,36,35,10,11,90,161,36,36,10,83,158,38,20,96,96,
|
||||||
2,20,89,162,8,44,36,50,9,224,2,0,33,42,89,162,43,38,48,9,223,
|
2,20,89,162,8,44,36,50,9,224,2,0,33,42,89,162,43,38,48,9,223,
|
||||||
1,33,43,89,162,43,39,8,30,9,225,2,3,0,33,49,208,87,95,248,22,
|
1,33,43,89,162,43,39,8,30,9,225,2,3,0,33,49,208,87,95,248,22,
|
||||||
142,4,248,80,158,37,49,247,22,174,11,248,22,180,4,80,158,36,36,248,22,
|
148,4,248,80,158,37,49,247,22,180,11,248,22,186,4,80,158,36,36,248,22,
|
||||||
165,12,80,159,36,41,36,159,35,20,103,159,35,16,1,65,98,101,103,105,110,
|
171,12,80,159,36,41,36,159,35,20,103,159,35,16,1,65,98,101,103,105,110,
|
||||||
16,0,83,158,41,20,100,138,66,35,37,98,111,111,116,2,1,11,11,10,10,
|
16,0,83,158,41,20,100,138,66,35,37,98,111,111,116,2,1,11,11,10,10,
|
||||||
36,80,158,35,35,20,103,159,39,16,19,30,2,1,2,2,193,30,2,1,2,
|
36,80,158,35,35,20,103,159,39,16,19,30,2,1,2,2,193,30,2,1,2,
|
||||||
3,193,30,2,5,72,112,97,116,104,45,115,116,114,105,110,103,63,10,30,2,
|
3,193,30,2,5,72,112,97,116,104,45,115,116,114,105,110,103,63,10,30,2,
|
||||||
|
@ -545,11 +545,11 @@
|
||||||
44,9,223,0,33,24,80,159,35,56,36,83,158,35,16,2,89,162,43,36,48,
|
44,9,223,0,33,24,80,159,35,56,36,83,158,35,16,2,89,162,43,36,48,
|
||||||
67,103,101,116,45,100,105,114,223,0,33,25,80,159,35,55,36,83,158,35,16,
|
67,103,101,116,45,100,105,114,223,0,33,25,80,159,35,55,36,83,158,35,16,
|
||||||
2,89,162,43,37,48,68,119,105,116,104,45,100,105,114,223,0,33,26,80,159,
|
2,89,162,43,37,48,68,119,105,116,104,45,100,105,114,223,0,33,26,80,159,
|
||||||
35,54,36,83,158,35,16,2,248,22,168,7,69,115,111,45,115,117,102,102,105,
|
35,54,36,83,158,35,16,2,248,22,174,7,69,115,111,45,115,117,102,102,105,
|
||||||
120,80,159,35,35,36,83,158,35,16,2,89,162,43,37,59,2,3,223,0,33,
|
120,80,159,35,35,36,83,158,35,16,2,89,162,43,37,59,2,3,223,0,33,
|
||||||
35,80,159,35,36,36,83,158,35,16,2,32,0,89,162,8,44,36,41,2,7,
|
35,80,159,35,36,36,83,158,35,16,2,32,0,89,162,8,44,36,41,2,7,
|
||||||
222,192,80,159,35,41,36,83,158,35,16,2,247,22,123,80,159,35,42,36,83,
|
222,192,80,159,35,41,36,83,158,35,16,2,247,22,124,80,159,35,42,36,83,
|
||||||
158,35,16,2,247,22,122,80,159,35,43,36,83,158,35,16,2,247,22,59,80,
|
158,35,16,2,247,22,123,80,159,35,43,36,83,158,35,16,2,247,22,59,80,
|
||||||
159,35,44,36,83,158,35,16,2,248,22,18,74,109,111,100,117,108,101,45,108,
|
159,35,44,36,83,158,35,16,2,248,22,18,74,109,111,100,117,108,101,45,108,
|
||||||
111,97,100,105,110,103,80,159,35,45,36,83,158,35,16,2,11,80,158,35,46,
|
111,97,100,105,110,103,80,159,35,45,36,83,158,35,16,2,11,80,158,35,46,
|
||||||
83,158,35,16,2,11,80,158,35,47,83,158,35,16,2,32,0,89,162,43,37,
|
83,158,35,16,2,11,80,158,35,47,83,158,35,16,2,32,0,89,162,43,37,
|
||||||
|
|
|
@ -1304,6 +1304,22 @@ long scheme_equal_hash_key2(Scheme_Object *o)
|
||||||
return equal_hash_key2(o, &hi);
|
return equal_hash_key2(o, &hi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
long scheme_eqv_hash_key(Scheme_Object *o)
|
||||||
|
{
|
||||||
|
if (!SCHEME_INTP(o) && SCHEME_NUMBERP(o))
|
||||||
|
return scheme_equal_hash_key(o);
|
||||||
|
else
|
||||||
|
return (PTR_TO_LONG(o) >> 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
long scheme_eqv_hash_key2(Scheme_Object *o)
|
||||||
|
{
|
||||||
|
if (!SCHEME_INTP(o) && SCHEME_NUMBERP(o))
|
||||||
|
return scheme_equal_hash_key2(o);
|
||||||
|
else
|
||||||
|
return (PTR_TO_LONG(o) >> 3);
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *hash2_recur(int argc, Scheme_Object **argv, Scheme_Object *prim)
|
static Scheme_Object *hash2_recur(int argc, Scheme_Object **argv, Scheme_Object *prim)
|
||||||
{
|
{
|
||||||
long v;
|
long v;
|
||||||
|
@ -2116,7 +2132,7 @@ static RBNode *rb_remove(RBNode *s, unsigned long code)
|
||||||
return remove_aux(s, code, &bh_dec);
|
return remove_aux(s, code, &bh_dec);
|
||||||
}
|
}
|
||||||
|
|
||||||
Scheme_Hash_Tree *scheme_make_hash_tree(int eql)
|
Scheme_Hash_Tree *scheme_make_hash_tree(int kind)
|
||||||
{
|
{
|
||||||
Scheme_Hash_Tree *tree;
|
Scheme_Hash_Tree *tree;
|
||||||
|
|
||||||
|
@ -2125,8 +2141,7 @@ Scheme_Hash_Tree *scheme_make_hash_tree(int eql)
|
||||||
tree->count = 0;
|
tree->count = 0;
|
||||||
|
|
||||||
tree->iso.so.type = scheme_hash_tree_type;
|
tree->iso.so.type = scheme_hash_tree_type;
|
||||||
if (eql)
|
SCHEME_HASHTR_FLAGS(tree) |= (kind & 0x3);
|
||||||
SCHEME_HASHTR_FLAGS(tree) |= 0x1;
|
|
||||||
|
|
||||||
return tree;
|
return tree;
|
||||||
}
|
}
|
||||||
|
@ -2138,8 +2153,12 @@ Scheme_Hash_Tree *scheme_hash_tree_set(Scheme_Hash_Tree *tree, Scheme_Object *ke
|
||||||
RBNode *root, *added;
|
RBNode *root, *added;
|
||||||
int delta;
|
int delta;
|
||||||
|
|
||||||
if (SCHEME_HASHTR_FLAGS(tree) & 0x1) {
|
if (SCHEME_HASHTR_FLAGS(tree) & 0x3) {
|
||||||
h = (unsigned long)scheme_equal_hash_key(key);
|
if (SCHEME_HASHTR_FLAGS(tree) & 0x1) {
|
||||||
|
h = (unsigned long)scheme_equal_hash_key(key);
|
||||||
|
} else {
|
||||||
|
h = (unsigned long)scheme_eqv_hash_key(key);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
h = (unsigned long)PTR_TO_LONG((Scheme_Object *)key);
|
h = (unsigned long)PTR_TO_LONG((Scheme_Object *)key);
|
||||||
}
|
}
|
||||||
|
@ -2150,10 +2169,12 @@ Scheme_Hash_Tree *scheme_hash_tree_set(Scheme_Hash_Tree *tree, Scheme_Object *ke
|
||||||
if (!added)
|
if (!added)
|
||||||
return tree; /* nothing to remove */
|
return tree; /* nothing to remove */
|
||||||
if (added->key) {
|
if (added->key) {
|
||||||
int eql = (SCHEME_HASHTR_FLAGS(tree) & 0x1);
|
int kind = (SCHEME_HASHTR_FLAGS(tree) & 0x3);
|
||||||
|
|
||||||
if ((eql && scheme_equal(added->key, key))
|
if ((kind && ((kind == 1)
|
||||||
|| (!eql && SAME_OBJ(added->key, key))) {
|
? scheme_equal(added->key, key)
|
||||||
|
: scheme_eqv(added->key, key)))
|
||||||
|
|| (!kind && SAME_OBJ(added->key, key))) {
|
||||||
/* remove single item */
|
/* remove single item */
|
||||||
root = rb_remove(tree->root, h);
|
root = rb_remove(tree->root, h);
|
||||||
|
|
||||||
|
@ -2182,7 +2203,7 @@ Scheme_Hash_Tree *scheme_hash_tree_set(Scheme_Hash_Tree *tree, Scheme_Object *ke
|
||||||
delta = 0;
|
delta = 0;
|
||||||
|
|
||||||
if (added->val) {
|
if (added->val) {
|
||||||
int eql = (SCHEME_HASHTR_FLAGS(tree) & 0x1);
|
int kind = (SCHEME_HASHTR_FLAGS(tree) & 0x3);
|
||||||
|
|
||||||
if (!added->key) {
|
if (!added->key) {
|
||||||
/* Have a list of keys and vals. In this case, val can be NULL
|
/* Have a list of keys and vals. In this case, val can be NULL
|
||||||
|
@ -2191,9 +2212,14 @@ Scheme_Hash_Tree *scheme_hash_tree_set(Scheme_Hash_Tree *tree, Scheme_Object *ke
|
||||||
int cnt = 0;
|
int cnt = 0;
|
||||||
while (prs) {
|
while (prs) {
|
||||||
a = SCHEME_CAR(prs);
|
a = SCHEME_CAR(prs);
|
||||||
if (eql) {
|
if (kind) {
|
||||||
if (scheme_equal(SCHEME_CAR(a), key))
|
if (kind == 1) {
|
||||||
break;
|
if (scheme_equal(SCHEME_CAR(a), key))
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
if (scheme_eqv(SCHEME_CAR(a), key))
|
||||||
|
break;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (SAME_OBJ(SCHEME_CAR(a), key))
|
if (SAME_OBJ(SCHEME_CAR(a), key))
|
||||||
break;
|
break;
|
||||||
|
@ -2231,8 +2257,11 @@ Scheme_Hash_Tree *scheme_hash_tree_set(Scheme_Hash_Tree *tree, Scheme_Object *ke
|
||||||
} else {
|
} else {
|
||||||
/* Currently have one value for this hash code */
|
/* Currently have one value for this hash code */
|
||||||
int same;
|
int same;
|
||||||
if (eql) {
|
if (kind) {
|
||||||
same = scheme_equal(key, added->key);
|
if (kind == 1)
|
||||||
|
same = scheme_equal(key, added->key);
|
||||||
|
else
|
||||||
|
same = scheme_eqv(key, added->key);
|
||||||
} else {
|
} else {
|
||||||
same = SAME_OBJ(key, added->key);
|
same = SAME_OBJ(key, added->key);
|
||||||
}
|
}
|
||||||
|
@ -2271,25 +2300,32 @@ Scheme_Object *scheme_hash_tree_get(Scheme_Hash_Tree *tree, Scheme_Object *key)
|
||||||
{
|
{
|
||||||
unsigned long h;
|
unsigned long h;
|
||||||
RBNode *rb;
|
RBNode *rb;
|
||||||
|
int kind = (SCHEME_HASHTR_FLAGS(tree) & 0x3);
|
||||||
|
|
||||||
if (SCHEME_HASHTR_FLAGS(tree) & 0x1) {
|
if (kind) {
|
||||||
h = (unsigned long)scheme_equal_hash_key(key);
|
if (kind == 1)
|
||||||
|
h = (unsigned long)scheme_equal_hash_key(key);
|
||||||
|
else
|
||||||
|
h = (unsigned long)scheme_eqv_hash_key(key);
|
||||||
} else {
|
} else {
|
||||||
h = (unsigned long)PTR_TO_LONG((Scheme_Object *)key);
|
h = (unsigned long)PTR_TO_LONG((Scheme_Object *)key);
|
||||||
}
|
}
|
||||||
|
|
||||||
rb = rb_find(h, tree->root);
|
rb = rb_find(h, tree->root);
|
||||||
if (rb) {
|
if (rb) {
|
||||||
int eql = (SCHEME_HASHTR_FLAGS(tree) & 0x1);
|
|
||||||
|
|
||||||
if (!rb->key) {
|
if (!rb->key) {
|
||||||
/* Have list of keys & vals: */
|
/* Have list of keys & vals: */
|
||||||
Scheme_Object *prs = rb->val, *a;
|
Scheme_Object *prs = rb->val, *a;
|
||||||
while (prs) {
|
while (prs) {
|
||||||
a = SCHEME_CAR(prs);
|
a = SCHEME_CAR(prs);
|
||||||
if (eql) {
|
if (kind) {
|
||||||
if (scheme_equal(SCHEME_CAR(a), key))
|
if (kind == 1) {
|
||||||
return SCHEME_CDR(a);
|
if (scheme_equal(SCHEME_CAR(a), key))
|
||||||
|
return SCHEME_CDR(a);
|
||||||
|
} else {
|
||||||
|
if (scheme_eqv(SCHEME_CAR(a), key))
|
||||||
|
return SCHEME_CDR(a);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (SAME_OBJ(SCHEME_CAR(a), key))
|
if (SAME_OBJ(SCHEME_CAR(a), key))
|
||||||
return SCHEME_CDR(a);
|
return SCHEME_CDR(a);
|
||||||
|
@ -2297,9 +2333,14 @@ Scheme_Object *scheme_hash_tree_get(Scheme_Hash_Tree *tree, Scheme_Object *key)
|
||||||
prs = SCHEME_CDR(prs);
|
prs = SCHEME_CDR(prs);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (eql) {
|
if (kind) {
|
||||||
if (scheme_equal(key, rb->key))
|
if (kind == 1) {
|
||||||
return rb->val;
|
if (scheme_equal(key, rb->key))
|
||||||
|
return rb->val;
|
||||||
|
} else {
|
||||||
|
if (scheme_eqv(key, rb->key))
|
||||||
|
return rb->val;
|
||||||
|
}
|
||||||
} else if (SAME_OBJ(key, rb->key))
|
} else if (SAME_OBJ(key, rb->key))
|
||||||
return rb->val;
|
return rb->val;
|
||||||
}
|
}
|
||||||
|
@ -2381,7 +2422,7 @@ int scheme_hash_tree_equal_rec(Scheme_Hash_Tree *t1, Scheme_Hash_Tree *t2, void
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
if ((t1->count != t2->count)
|
if ((t1->count != t2->count)
|
||||||
|| ((SCHEME_HASHTR_FLAGS(t1) & 0x1) != (SCHEME_HASHTR_FLAGS(t2) & 0x1)))
|
|| ((SCHEME_HASHTR_FLAGS(t1) & 0x3) != (SCHEME_HASHTR_FLAGS(t2) & 0x3)))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
for (i = t1->count; i--; ) {
|
for (i = t1->count; i--; ) {
|
||||||
|
|
|
@ -83,14 +83,18 @@ static Scheme_Object *set_box (int argc, Scheme_Object *argv[]);
|
||||||
|
|
||||||
static Scheme_Object *make_hash(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *make_hash(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *make_hasheq(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *make_hasheq(int argc, Scheme_Object *argv[]);
|
||||||
|
static Scheme_Object *make_hasheqv(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *make_weak_hash(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *make_weak_hash(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *make_weak_hasheq(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *make_weak_hasheq(int argc, Scheme_Object *argv[]);
|
||||||
|
static Scheme_Object *make_weak_hasheqv(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *make_immutable_hash(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *make_immutable_hash(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *make_immutable_hasheq(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *make_immutable_hasheq(int argc, Scheme_Object *argv[]);
|
||||||
|
static Scheme_Object *make_immutable_hasheqv(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *hash_table_count(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *hash_table_count(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *hash_table_copy(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *hash_table_copy(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *hash_p(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *hash_p(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *hash_eq_p(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *hash_eq_p(int argc, Scheme_Object *argv[]);
|
||||||
|
static Scheme_Object *hash_eqv_p(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *hash_weak_p(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *hash_weak_p(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *hash_table_put_bang(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *hash_table_put_bang(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *hash_table_put(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *hash_table_put(int argc, Scheme_Object *argv[]);
|
||||||
|
@ -106,6 +110,7 @@ static Scheme_Object *hash_table_iterate_key(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *eq_hash_code(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *eq_hash_code(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *equal_hash_code(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *equal_hash_code(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *equal_hash2_code(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *equal_hash2_code(int argc, Scheme_Object *argv[]);
|
||||||
|
static Scheme_Object *eqv_hash_code(int argc, Scheme_Object *argv[]);
|
||||||
|
|
||||||
static Scheme_Object *make_weak_box(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *make_weak_box(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *weak_box_value(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *weak_box_value(int argc, Scheme_Object *argv[]);
|
||||||
|
@ -122,6 +127,7 @@ static Scheme_Object *placeholder_get(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *placeholder_p(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *placeholder_p(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *make_hash_placeholder(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *make_hash_placeholder(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *make_hasheq_placeholder(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *make_hasheq_placeholder(int argc, Scheme_Object *argv[]);
|
||||||
|
static Scheme_Object *make_hasheqv_placeholder(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *table_placeholder_p(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *table_placeholder_p(int argc, Scheme_Object *argv[]);
|
||||||
|
|
||||||
#define BOX "box"
|
#define BOX "box"
|
||||||
|
@ -433,6 +439,11 @@ scheme_init_list (Scheme_Env *env)
|
||||||
"make-hasheq",
|
"make-hasheq",
|
||||||
0, 0),
|
0, 0),
|
||||||
env);
|
env);
|
||||||
|
scheme_add_global_constant("make-hasheqv",
|
||||||
|
scheme_make_immed_prim(make_hasheqv,
|
||||||
|
"make-hasheqv",
|
||||||
|
0, 0),
|
||||||
|
env);
|
||||||
scheme_add_global_constant("make-weak-hash",
|
scheme_add_global_constant("make-weak-hash",
|
||||||
scheme_make_immed_prim(make_weak_hash,
|
scheme_make_immed_prim(make_weak_hash,
|
||||||
"make-weak-hash",
|
"make-weak-hash",
|
||||||
|
@ -443,6 +454,11 @@ scheme_init_list (Scheme_Env *env)
|
||||||
"make-weak-hasheq",
|
"make-weak-hasheq",
|
||||||
0, 0),
|
0, 0),
|
||||||
env);
|
env);
|
||||||
|
scheme_add_global_constant("make-weak-hasheqv",
|
||||||
|
scheme_make_immed_prim(make_weak_hasheqv,
|
||||||
|
"make-weak-hasheqv",
|
||||||
|
0, 0),
|
||||||
|
env);
|
||||||
scheme_add_global_constant("make-immutable-hash",
|
scheme_add_global_constant("make-immutable-hash",
|
||||||
scheme_make_immed_prim(make_immutable_hash,
|
scheme_make_immed_prim(make_immutable_hash,
|
||||||
"make-immutable-hash",
|
"make-immutable-hash",
|
||||||
|
@ -453,6 +469,11 @@ scheme_init_list (Scheme_Env *env)
|
||||||
"make-immutable-hasheq",
|
"make-immutable-hasheq",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
scheme_add_global_constant("make-immutable-hasheqv",
|
||||||
|
scheme_make_immed_prim(make_immutable_hasheqv,
|
||||||
|
"make-immutable-hasheqv",
|
||||||
|
1, 1),
|
||||||
|
env);
|
||||||
scheme_add_global_constant("hash?",
|
scheme_add_global_constant("hash?",
|
||||||
scheme_make_folding_prim(hash_p,
|
scheme_make_folding_prim(hash_p,
|
||||||
"hash?",
|
"hash?",
|
||||||
|
@ -463,6 +484,11 @@ scheme_init_list (Scheme_Env *env)
|
||||||
"hash-eq?",
|
"hash-eq?",
|
||||||
1, 1, 1),
|
1, 1, 1),
|
||||||
env);
|
env);
|
||||||
|
scheme_add_global_constant("hash-eqv?",
|
||||||
|
scheme_make_folding_prim(hash_eqv_p,
|
||||||
|
"hash-eqv?",
|
||||||
|
1, 1, 1),
|
||||||
|
env);
|
||||||
scheme_add_global_constant("hash-weak?",
|
scheme_add_global_constant("hash-weak?",
|
||||||
scheme_make_folding_prim(hash_weak_p,
|
scheme_make_folding_prim(hash_weak_p,
|
||||||
"hash-weak?",
|
"hash-weak?",
|
||||||
|
@ -540,6 +566,11 @@ scheme_init_list (Scheme_Env *env)
|
||||||
"eq-hash-code",
|
"eq-hash-code",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
scheme_add_global_constant("eqv-hash-code",
|
||||||
|
scheme_make_immed_prim(eqv_hash_code,
|
||||||
|
"eqv-hash-code",
|
||||||
|
1, 1),
|
||||||
|
env);
|
||||||
scheme_add_global_constant("equal-hash-code",
|
scheme_add_global_constant("equal-hash-code",
|
||||||
scheme_make_noncm_prim(equal_hash_code,
|
scheme_make_noncm_prim(equal_hash_code,
|
||||||
"equal-hash-code",
|
"equal-hash-code",
|
||||||
|
@ -618,6 +649,11 @@ scheme_init_list (Scheme_Env *env)
|
||||||
"make-hasheq-placeholder",
|
"make-hasheq-placeholder",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
scheme_add_global_constant("make-hasheqv-placeholder",
|
||||||
|
scheme_make_prim_w_arity(make_hasheqv_placeholder,
|
||||||
|
"make-hasheqv-placeholder",
|
||||||
|
1, 1),
|
||||||
|
env);
|
||||||
scheme_add_global_constant("hash-placeholder?",
|
scheme_add_global_constant("hash-placeholder?",
|
||||||
scheme_make_folding_prim(table_placeholder_p,
|
scheme_make_folding_prim(table_placeholder_p,
|
||||||
"hash-placeholder?",
|
"hash-placeholder?",
|
||||||
|
@ -1417,6 +1453,19 @@ static void make_hash_indices_for_equal(void *v, long *_stk_h1, long *_stk_h2)
|
||||||
*_stk_h2 = scheme_equal_hash_key2((Scheme_Object *)v);
|
*_stk_h2 = scheme_equal_hash_key2((Scheme_Object *)v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int compare_eqv(void *v1, void *v2)
|
||||||
|
{
|
||||||
|
return !scheme_eqv((Scheme_Object *)v1, (Scheme_Object *)v2);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void make_hash_indices_for_eqv(void *v, long *_stk_h1, long *_stk_h2)
|
||||||
|
{
|
||||||
|
if (_stk_h1)
|
||||||
|
*_stk_h1 = scheme_eqv_hash_key((Scheme_Object *)v);
|
||||||
|
if (_stk_h2)
|
||||||
|
*_stk_h2 = scheme_eqv_hash_key2((Scheme_Object *)v);
|
||||||
|
}
|
||||||
|
|
||||||
Scheme_Bucket_Table *scheme_make_weak_equal_table(void)
|
Scheme_Bucket_Table *scheme_make_weak_equal_table(void)
|
||||||
{
|
{
|
||||||
Scheme_Object *sema;
|
Scheme_Object *sema;
|
||||||
|
@ -1432,6 +1481,21 @@ Scheme_Bucket_Table *scheme_make_weak_equal_table(void)
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Scheme_Bucket_Table *scheme_make_weak_eqv_table(void)
|
||||||
|
{
|
||||||
|
Scheme_Object *sema;
|
||||||
|
Scheme_Bucket_Table *t;
|
||||||
|
|
||||||
|
t = scheme_make_bucket_table(20, SCHEME_hash_weak_ptr);
|
||||||
|
|
||||||
|
sema = scheme_make_sema(1);
|
||||||
|
t->mutex = sema;
|
||||||
|
t->compare = compare_eqv;
|
||||||
|
t->make_hash_indices = make_hash_indices_for_eqv;
|
||||||
|
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *make_hash(int argc, Scheme_Object *argv[])
|
static Scheme_Object *make_hash(int argc, Scheme_Object *argv[])
|
||||||
{
|
{
|
||||||
return (Scheme_Object *)scheme_make_hash_table_equal();
|
return (Scheme_Object *)scheme_make_hash_table_equal();
|
||||||
|
@ -1442,6 +1506,11 @@ static Scheme_Object *make_hasheq(int argc, Scheme_Object *argv[])
|
||||||
return (Scheme_Object *)scheme_make_hash_table(SCHEME_hash_ptr);
|
return (Scheme_Object *)scheme_make_hash_table(SCHEME_hash_ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *make_hasheqv(int argc, Scheme_Object *argv[])
|
||||||
|
{
|
||||||
|
return (Scheme_Object *)scheme_make_hash_table_eqv();
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *make_weak_hash(int argc, Scheme_Object *argv[])
|
static Scheme_Object *make_weak_hash(int argc, Scheme_Object *argv[])
|
||||||
{
|
{
|
||||||
return (Scheme_Object *)scheme_make_weak_equal_table();
|
return (Scheme_Object *)scheme_make_weak_equal_table();
|
||||||
|
@ -1452,7 +1521,12 @@ static Scheme_Object *make_weak_hasheq(int argc, Scheme_Object *argv[])
|
||||||
return (Scheme_Object *)scheme_make_bucket_table(20, SCHEME_hash_weak_ptr);
|
return (Scheme_Object *)scheme_make_bucket_table(20, SCHEME_hash_weak_ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Scheme_Object *make_immutable_table(const char *who, int eql, int argc, Scheme_Object *argv[])
|
static Scheme_Object *make_weak_hasheqv(int argc, Scheme_Object *argv[])
|
||||||
|
{
|
||||||
|
return (Scheme_Object *)scheme_make_weak_eqv_table();
|
||||||
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *make_immutable_table(const char *who, int kind, int argc, Scheme_Object *argv[])
|
||||||
{
|
{
|
||||||
Scheme_Object *l = argv[0], *a;
|
Scheme_Object *l = argv[0], *a;
|
||||||
Scheme_Hash_Tree *ht;
|
Scheme_Hash_Tree *ht;
|
||||||
|
@ -1468,7 +1542,7 @@ static Scheme_Object *make_immutable_table(const char *who, int eql, int argc, S
|
||||||
if (!SCHEME_NULLP(l))
|
if (!SCHEME_NULLP(l))
|
||||||
scheme_wrong_type("make-immutable-hash", "list of pairs", 0, argc, argv);
|
scheme_wrong_type("make-immutable-hash", "list of pairs", 0, argc, argv);
|
||||||
|
|
||||||
ht = scheme_make_hash_tree(eql);
|
ht = scheme_make_hash_tree(kind);
|
||||||
|
|
||||||
for (l = argv[0]; SCHEME_PAIRP(l); l = SCHEME_CDR(l)) {
|
for (l = argv[0]; SCHEME_PAIRP(l); l = SCHEME_CDR(l)) {
|
||||||
a = SCHEME_CAR(l);
|
a = SCHEME_CAR(l);
|
||||||
|
@ -1488,6 +1562,11 @@ static Scheme_Object *make_immutable_hasheq(int argc, Scheme_Object *argv[])
|
||||||
return make_immutable_table("make-immutable-hasheq", 0, argc, argv);
|
return make_immutable_table("make-immutable-hasheq", 0, argc, argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *make_immutable_hasheqv(int argc, Scheme_Object *argv[])
|
||||||
|
{
|
||||||
|
return make_immutable_table("make-immutable-hasheqv", 2, argc, argv);
|
||||||
|
}
|
||||||
|
|
||||||
Scheme_Hash_Table *scheme_make_hash_table_equal()
|
Scheme_Hash_Table *scheme_make_hash_table_equal()
|
||||||
{
|
{
|
||||||
Scheme_Hash_Table *t;
|
Scheme_Hash_Table *t;
|
||||||
|
@ -1503,6 +1582,21 @@ Scheme_Hash_Table *scheme_make_hash_table_equal()
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Scheme_Hash_Table *scheme_make_hash_table_eqv()
|
||||||
|
{
|
||||||
|
Scheme_Hash_Table *t;
|
||||||
|
Scheme_Object *sema;
|
||||||
|
|
||||||
|
t = scheme_make_hash_table(SCHEME_hash_ptr);
|
||||||
|
|
||||||
|
sema = scheme_make_sema(1);
|
||||||
|
t->mutex = sema;
|
||||||
|
t->compare = compare_eqv;
|
||||||
|
t->make_hash_indices = make_hash_indices_for_eqv;
|
||||||
|
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *hash_table_count(int argc, Scheme_Object *argv[])
|
static Scheme_Object *hash_table_count(int argc, Scheme_Object *argv[])
|
||||||
{
|
{
|
||||||
if (SCHEME_HASHTP(argv[0])) {
|
if (SCHEME_HASHTP(argv[0])) {
|
||||||
|
@ -1595,13 +1689,15 @@ static Scheme_Object *hash_eq_p(int argc, Scheme_Object *argv[])
|
||||||
Scheme_Object *o = argv[0];
|
Scheme_Object *o = argv[0];
|
||||||
|
|
||||||
if (SCHEME_HASHTP(o)) {
|
if (SCHEME_HASHTP(o)) {
|
||||||
if (((Scheme_Hash_Table *)o)->compare != compare_equal)
|
if ((((Scheme_Hash_Table *)o)->compare != compare_equal)
|
||||||
|
&& (((Scheme_Hash_Table *)o)->compare != compare_eqv))
|
||||||
return scheme_true;
|
return scheme_true;
|
||||||
} else if (SCHEME_HASHTRP(o)) {
|
} else if (SCHEME_HASHTRP(o)) {
|
||||||
if (!(SCHEME_HASHTR_FLAGS((Scheme_Hash_Tree *)o) & 0x1))
|
if (!(SCHEME_HASHTR_FLAGS((Scheme_Hash_Tree *)o) & 0x3))
|
||||||
return scheme_true;
|
return scheme_true;
|
||||||
} else if (SCHEME_BUCKTP(o)) {
|
} else if (SCHEME_BUCKTP(o)) {
|
||||||
if (((Scheme_Bucket_Table *)o)->compare != compare_equal)
|
if ((((Scheme_Bucket_Table *)o)->compare != compare_equal)
|
||||||
|
&& (((Scheme_Bucket_Table *)o)->compare != compare_eqv))
|
||||||
return scheme_true;
|
return scheme_true;
|
||||||
} else {
|
} else {
|
||||||
scheme_wrong_type("hash-eq?", "hash", 0, argc, argv);
|
scheme_wrong_type("hash-eq?", "hash", 0, argc, argv);
|
||||||
|
@ -1610,6 +1706,26 @@ static Scheme_Object *hash_eq_p(int argc, Scheme_Object *argv[])
|
||||||
return scheme_false;
|
return scheme_false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *hash_eqv_p(int argc, Scheme_Object *argv[])
|
||||||
|
{
|
||||||
|
Scheme_Object *o = argv[0];
|
||||||
|
|
||||||
|
if (SCHEME_HASHTP(o)) {
|
||||||
|
if (((Scheme_Hash_Table *)o)->compare == compare_eqv)
|
||||||
|
return scheme_true;
|
||||||
|
} else if (SCHEME_HASHTRP(o)) {
|
||||||
|
if (SCHEME_HASHTR_FLAGS((Scheme_Hash_Tree *)o) & 0x2)
|
||||||
|
return scheme_true;
|
||||||
|
} else if (SCHEME_BUCKTP(o)) {
|
||||||
|
if (((Scheme_Bucket_Table *)o)->compare == compare_eqv)
|
||||||
|
return scheme_true;
|
||||||
|
} else {
|
||||||
|
scheme_wrong_type("hash-eqv?", "hash", 0, argc, argv);
|
||||||
|
}
|
||||||
|
|
||||||
|
return scheme_false;
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *hash_weak_p(int argc, Scheme_Object *argv[])
|
static Scheme_Object *hash_weak_p(int argc, Scheme_Object *argv[])
|
||||||
{
|
{
|
||||||
Scheme_Object *o = argv[0];
|
Scheme_Object *o = argv[0];
|
||||||
|
@ -1629,11 +1745,21 @@ int scheme_is_hash_table_equal(Scheme_Object *o)
|
||||||
return (((Scheme_Hash_Table *)o)->compare == compare_equal);
|
return (((Scheme_Hash_Table *)o)->compare == compare_equal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int scheme_is_hash_table_eqv(Scheme_Object *o)
|
||||||
|
{
|
||||||
|
return (((Scheme_Hash_Table *)o)->compare == compare_eqv);
|
||||||
|
}
|
||||||
|
|
||||||
int scheme_is_hash_tree_equal(Scheme_Object *o)
|
int scheme_is_hash_tree_equal(Scheme_Object *o)
|
||||||
{
|
{
|
||||||
return SCHEME_HASHTR_FLAGS((Scheme_Hash_Tree *)o) & 0x1;
|
return SCHEME_HASHTR_FLAGS((Scheme_Hash_Tree *)o) & 0x1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int scheme_is_hash_tree_eqv(Scheme_Object *o)
|
||||||
|
{
|
||||||
|
return SCHEME_HASHTR_FLAGS((Scheme_Hash_Tree *)o) & 0x2;
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *hash_table_put_bang(int argc, Scheme_Object *argv[])
|
static Scheme_Object *hash_table_put_bang(int argc, Scheme_Object *argv[])
|
||||||
{
|
{
|
||||||
Scheme_Object *v = argv[0];
|
Scheme_Object *v = argv[0];
|
||||||
|
@ -2060,6 +2186,18 @@ static Scheme_Object *equal_hash2_code(int argc, Scheme_Object *argv[])
|
||||||
return scheme_make_integer(v);
|
return scheme_make_integer(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *eqv_hash_code(int argc, Scheme_Object *argv[])
|
||||||
|
{
|
||||||
|
long v;
|
||||||
|
|
||||||
|
if (SCHEME_INTP(argv[0]))
|
||||||
|
return argv[0];
|
||||||
|
|
||||||
|
v = scheme_eqv_hash_key(argv[0]);
|
||||||
|
|
||||||
|
return scheme_make_integer(v);
|
||||||
|
}
|
||||||
|
|
||||||
Scheme_Object *scheme_make_weak_box(Scheme_Object *v)
|
Scheme_Object *scheme_make_weak_box(Scheme_Object *v)
|
||||||
{
|
{
|
||||||
#ifdef MZ_PRECISE_GC
|
#ifdef MZ_PRECISE_GC
|
||||||
|
@ -2145,7 +2283,7 @@ static Scheme_Object *placeholder_p(int c, Scheme_Object *p[])
|
||||||
: scheme_false);
|
: scheme_false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Scheme_Object *do_make_hash_placeholder(const char *who, int eq, int argc, Scheme_Object *argv[])
|
static Scheme_Object *do_make_hash_placeholder(const char *who, int kind, int argc, Scheme_Object *argv[])
|
||||||
{
|
{
|
||||||
Scheme_Object *l, *a, *ph;
|
Scheme_Object *l, *a, *ph;
|
||||||
|
|
||||||
|
@ -2162,14 +2300,14 @@ static Scheme_Object *do_make_hash_placeholder(const char *who, int eq, int argc
|
||||||
ph = scheme_alloc_object();
|
ph = scheme_alloc_object();
|
||||||
ph->type = scheme_table_placeholder_type;
|
ph->type = scheme_table_placeholder_type;
|
||||||
SCHEME_IPTR_VAL(ph) = argv[0];
|
SCHEME_IPTR_VAL(ph) = argv[0];
|
||||||
SCHEME_PINT_VAL(ph) = eq;
|
SCHEME_PINT_VAL(ph) = kind;
|
||||||
|
|
||||||
return ph;
|
return ph;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Scheme_Object *make_hash_placeholder(int argc, Scheme_Object *argv[])
|
static Scheme_Object *make_hash_placeholder(int argc, Scheme_Object *argv[])
|
||||||
{
|
{
|
||||||
return do_make_hash_placeholder("make-hash-placeholder", 0, argc, argv);
|
return do_make_hash_placeholder("make-hash-placeholder", 1, argc, argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Scheme_Object *make_hasheq_placeholder(int argc, Scheme_Object *argv[])
|
static Scheme_Object *make_hasheq_placeholder(int argc, Scheme_Object *argv[])
|
||||||
|
@ -2177,6 +2315,11 @@ static Scheme_Object *make_hasheq_placeholder(int argc, Scheme_Object *argv[])
|
||||||
return do_make_hash_placeholder("make-hash-placeholder", 0, argc, argv);
|
return do_make_hash_placeholder("make-hash-placeholder", 0, argc, argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *make_hasheqv_placeholder(int argc, Scheme_Object *argv[])
|
||||||
|
{
|
||||||
|
return do_make_hash_placeholder("make-hasheqv-placeholder", 2, argc, argv);
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *table_placeholder_p(int c, Scheme_Object *p[])
|
static Scheme_Object *table_placeholder_p(int c, Scheme_Object *p[])
|
||||||
{
|
{
|
||||||
return (SAME_TYPE(SCHEME_TYPE(p[0]), scheme_table_placeholder_type)
|
return (SAME_TYPE(SCHEME_TYPE(p[0]), scheme_table_placeholder_type)
|
||||||
|
|
|
@ -1842,18 +1842,29 @@ print(Scheme_Object *obj, int notdisplay, int compact, Scheme_Hash_Table *ht,
|
||||||
print_compact(pp, CPT_HASH_TABLE);
|
print_compact(pp, CPT_HASH_TABLE);
|
||||||
if ((SCHEME_HASHTP(obj) && scheme_is_hash_table_equal(obj))
|
if ((SCHEME_HASHTP(obj) && scheme_is_hash_table_equal(obj))
|
||||||
|| (SCHEME_HASHTRP(obj) && scheme_is_hash_tree_equal(obj)))
|
|| (SCHEME_HASHTRP(obj) && scheme_is_hash_tree_equal(obj)))
|
||||||
print_compact_number(pp, 0);
|
|
||||||
else
|
|
||||||
print_compact_number(pp, 1);
|
print_compact_number(pp, 1);
|
||||||
|
else if ((SCHEME_HASHTP(obj) && scheme_is_hash_table_eqv(obj))
|
||||||
|
|| (SCHEME_HASHTRP(obj) && scheme_is_hash_tree_eqv(obj)))
|
||||||
|
print_compact_number(pp, 2);
|
||||||
|
else
|
||||||
|
print_compact_number(pp, 0);
|
||||||
} else {
|
} else {
|
||||||
always_scheme(pp, 1);
|
always_scheme(pp, 1);
|
||||||
print_utf8_string(pp, "#hash", 0, 5);
|
print_utf8_string(pp, "#hash", 0, 5);
|
||||||
if (SCHEME_HASHTP(obj)) {
|
if (SCHEME_HASHTP(obj)) {
|
||||||
if (!scheme_is_hash_table_equal(obj))
|
if (!scheme_is_hash_table_equal(obj)) {
|
||||||
print_utf8_string(pp, "eq", 0, 2);
|
if (scheme_is_hash_table_eqv(obj))
|
||||||
|
print_utf8_string(pp, "eqv", 0, 3);
|
||||||
|
else
|
||||||
|
print_utf8_string(pp, "eq", 0, 2);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!scheme_is_hash_tree_equal(obj))
|
if (!scheme_is_hash_tree_equal(obj)) {
|
||||||
print_utf8_string(pp, "eq", 0, 2);
|
if (scheme_is_hash_tree_eqv(obj))
|
||||||
|
print_utf8_string(pp, "eqv", 0, 3);
|
||||||
|
else
|
||||||
|
print_utf8_string(pp, "eq", 0, 2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
print_utf8_string(pp, "(", 0, 1);
|
print_utf8_string(pp, "(", 0, 1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -243,7 +243,7 @@ static Scheme_Object *read_box(Scheme_Object *port, Scheme_Object *stxsrc,
|
||||||
ReadParams *params);
|
ReadParams *params);
|
||||||
static Scheme_Object *read_hash(Scheme_Object *port, Scheme_Object *stxsrc,
|
static Scheme_Object *read_hash(Scheme_Object *port, Scheme_Object *stxsrc,
|
||||||
long line, long col, long pos,
|
long line, long col, long pos,
|
||||||
int opener, char closer, int eq,
|
int opener, char closer, int kind,
|
||||||
Scheme_Hash_Table **ht,
|
Scheme_Hash_Table **ht,
|
||||||
Scheme_Object *indentation,
|
Scheme_Object *indentation,
|
||||||
ReadParams *params);
|
ReadParams *params);
|
||||||
|
@ -1507,7 +1507,7 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table *
|
||||||
|
|
||||||
return v;
|
return v;
|
||||||
} else {
|
} else {
|
||||||
GC_CAN_IGNORE const mzchar str[] = { 's', 'h', 'e', 'q', 0 };
|
GC_CAN_IGNORE const mzchar str[] = { 's', 'h', 'e', 'q', 'v', 0 };
|
||||||
int scanpos = 0, failed = 0;
|
int scanpos = 0, failed = 0;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
@ -1515,7 +1515,7 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table *
|
||||||
if ((mzchar)ch == str[scanpos]) {
|
if ((mzchar)ch == str[scanpos]) {
|
||||||
scanpos++;
|
scanpos++;
|
||||||
} else {
|
} else {
|
||||||
if (scanpos == 2) {
|
if ((scanpos == 2) || (scanpos == 4)) {
|
||||||
int effective_ch;
|
int effective_ch;
|
||||||
effective_ch = readtable_effective_char(table, ch);
|
effective_ch = readtable_effective_char(table, ch);
|
||||||
if (!(effective_ch == '(')
|
if (!(effective_ch == '(')
|
||||||
|
@ -1530,19 +1530,26 @@ read_inner_inner(Scheme_Object *port, Scheme_Object *stxsrc, Scheme_Hash_Table *
|
||||||
|
|
||||||
if (!failed) {
|
if (!failed) {
|
||||||
/* Found recognized tag. Look for open paren... */
|
/* Found recognized tag. Look for open paren... */
|
||||||
int effective_ch;
|
int effective_ch, kind;
|
||||||
|
|
||||||
if (scanpos > 2)
|
if (scanpos > 4)
|
||||||
ch = scheme_getc_special_ok(port);
|
ch = scheme_getc_special_ok(port);
|
||||||
|
|
||||||
effective_ch = readtable_effective_char(table, ch);
|
effective_ch = readtable_effective_char(table, ch);
|
||||||
|
|
||||||
|
if (scanpos == 4)
|
||||||
|
kind = 0;
|
||||||
|
else if (scanpos == 2)
|
||||||
|
kind = 1;
|
||||||
|
else
|
||||||
|
kind = 2;
|
||||||
|
|
||||||
if (effective_ch == '(')
|
if (effective_ch == '(')
|
||||||
return read_hash(port, stxsrc, line, col, pos, ch, ')', (scanpos == 4), ht, indentation, params);
|
return read_hash(port, stxsrc, line, col, pos, ch, ')', kind, ht, indentation, params);
|
||||||
if (effective_ch == '[' && params->square_brackets_are_parens)
|
if (effective_ch == '[' && params->square_brackets_are_parens)
|
||||||
return read_hash(port, stxsrc, line, col, pos, ch, ']', (scanpos == 4), ht, indentation, params);
|
return read_hash(port, stxsrc, line, col, pos, ch, ']', kind, ht, indentation, params);
|
||||||
if (effective_ch == '{' && params->curly_braces_are_parens)
|
if (effective_ch == '{' && params->curly_braces_are_parens)
|
||||||
return read_hash(port, stxsrc, line, col, pos, ch, '}', (scanpos == 4), ht, indentation, params);
|
return read_hash(port, stxsrc, line, col, pos, ch, '}', kind, ht, indentation, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Report an error. So far, we read 'ha', then scanpos chars of str, then ch. */
|
/* Report an error. So far, we read 'ha', then scanpos chars of str, then ch. */
|
||||||
|
@ -2048,11 +2055,16 @@ static Scheme_Object *resolve_references(Scheme_Object *obj,
|
||||||
|| SCHEME_HASHTRP(obj)) {
|
|| SCHEME_HASHTRP(obj)) {
|
||||||
Scheme_Hash_Tree *t, *base;
|
Scheme_Hash_Tree *t, *base;
|
||||||
Scheme_Object *a, *key, *val, *lst;
|
Scheme_Object *a, *key, *val, *lst;
|
||||||
int eq;
|
int kind;
|
||||||
|
|
||||||
if (SCHEME_HASHTRP(obj)) {
|
if (SCHEME_HASHTRP(obj)) {
|
||||||
int i;
|
int i;
|
||||||
eq = !scheme_is_hash_tree_equal(obj);
|
if (scheme_is_hash_tree_equal(obj))
|
||||||
|
kind = 1;
|
||||||
|
else if (scheme_is_hash_tree_equal(obj))
|
||||||
|
kind = 2;
|
||||||
|
else
|
||||||
|
kind = 0;
|
||||||
t = (Scheme_Hash_Tree *)obj;
|
t = (Scheme_Hash_Tree *)obj;
|
||||||
lst = scheme_null;
|
lst = scheme_null;
|
||||||
for (i = t->count; i--; ) {
|
for (i = t->count; i--; ) {
|
||||||
|
@ -2060,13 +2072,13 @@ static Scheme_Object *resolve_references(Scheme_Object *obj,
|
||||||
lst = scheme_make_pair(scheme_make_pair(key, val), lst);
|
lst = scheme_make_pair(scheme_make_pair(key, val), lst);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
eq = SCHEME_PINT_VAL(obj);
|
kind = SCHEME_PINT_VAL(obj);
|
||||||
lst = SCHEME_IPTR_VAL(obj);
|
lst = SCHEME_IPTR_VAL(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create `t' to be overwritten, and create `base' to extend. */
|
/* Create `t' to be overwritten, and create `base' to extend. */
|
||||||
t = scheme_make_hash_tree(!eq);
|
t = scheme_make_hash_tree(kind);
|
||||||
base = scheme_make_hash_tree(!eq);
|
base = scheme_make_hash_tree(kind);
|
||||||
|
|
||||||
result = (Scheme_Object *)t;
|
result = (Scheme_Object *)t;
|
||||||
scheme_hash_set(dht, obj, result);
|
scheme_hash_set(dht, obj, result);
|
||||||
|
@ -3947,7 +3959,7 @@ static Scheme_Object *read_box(Scheme_Object *port,
|
||||||
/* "(" has been read */
|
/* "(" has been read */
|
||||||
static Scheme_Object *read_hash(Scheme_Object *port, Scheme_Object *stxsrc,
|
static Scheme_Object *read_hash(Scheme_Object *port, Scheme_Object *stxsrc,
|
||||||
long line, long col, long pos,
|
long line, long col, long pos,
|
||||||
int opener, char closer, int eq,
|
int opener, char closer, int kind,
|
||||||
Scheme_Hash_Table **ht,
|
Scheme_Hash_Table **ht,
|
||||||
Scheme_Object *indentation, ReadParams *params)
|
Scheme_Object *indentation, ReadParams *params)
|
||||||
{
|
{
|
||||||
|
@ -3960,7 +3972,7 @@ static Scheme_Object *read_hash(Scheme_Object *port, Scheme_Object *stxsrc,
|
||||||
Scheme_Object *key, *val;
|
Scheme_Object *key, *val;
|
||||||
Scheme_Hash_Tree *t;
|
Scheme_Hash_Tree *t;
|
||||||
|
|
||||||
t = scheme_make_hash_tree(!eq);
|
t = scheme_make_hash_tree(kind);
|
||||||
|
|
||||||
l = scheme_syntax_to_datum(l, 0, NULL);
|
l = scheme_syntax_to_datum(l, 0, NULL);
|
||||||
|
|
||||||
|
@ -3981,7 +3993,7 @@ static Scheme_Object *read_hash(Scheme_Object *port, Scheme_Object *stxsrc,
|
||||||
ph = scheme_alloc_object();
|
ph = scheme_alloc_object();
|
||||||
ph->type = scheme_table_placeholder_type;
|
ph->type = scheme_table_placeholder_type;
|
||||||
SCHEME_IPTR_VAL(ph) = l;
|
SCHEME_IPTR_VAL(ph) = l;
|
||||||
SCHEME_PINT_VAL(ph) = eq;
|
SCHEME_PINT_VAL(ph) = kind;
|
||||||
|
|
||||||
if (!*ht) {
|
if (!*ht) {
|
||||||
/* So that resolve_references is called to build the table: */
|
/* So that resolve_references is called to build the table: */
|
||||||
|
@ -4565,9 +4577,9 @@ static Scheme_Object *read_compact(CPort *port, int use_stack)
|
||||||
case CPT_HASH_TABLE:
|
case CPT_HASH_TABLE:
|
||||||
{
|
{
|
||||||
Scheme_Object *l;
|
Scheme_Object *l;
|
||||||
int eq, len;
|
int kind, len;
|
||||||
|
|
||||||
eq = read_compact_number(port);
|
kind = read_compact_number(port);
|
||||||
len = read_compact_number(port);
|
len = read_compact_number(port);
|
||||||
|
|
||||||
l = scheme_null;
|
l = scheme_null;
|
||||||
|
@ -4590,7 +4602,7 @@ static Scheme_Object *read_compact(CPort *port, int use_stack)
|
||||||
/* Let resolve_references complete the table construction: */
|
/* Let resolve_references complete the table construction: */
|
||||||
v = scheme_alloc_object();
|
v = scheme_alloc_object();
|
||||||
v->type = scheme_table_placeholder_type;
|
v->type = scheme_table_placeholder_type;
|
||||||
SCHEME_PINT_VAL(v) = eq;
|
SCHEME_PINT_VAL(v) = kind;
|
||||||
SCHEME_IPTR_VAL(v) = l;
|
SCHEME_IPTR_VAL(v) = l;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -423,6 +423,7 @@ MZ_EXTERN Scheme_Bucket_Table *scheme_clone_bucket_table(Scheme_Bucket_Table *bt
|
||||||
|
|
||||||
MZ_EXTERN Scheme_Hash_Table *scheme_make_hash_table(int type);
|
MZ_EXTERN Scheme_Hash_Table *scheme_make_hash_table(int type);
|
||||||
MZ_EXTERN Scheme_Hash_Table *scheme_make_hash_table_equal();
|
MZ_EXTERN Scheme_Hash_Table *scheme_make_hash_table_equal();
|
||||||
|
MZ_EXTERN Scheme_Hash_Table *scheme_make_hash_table_eqv();
|
||||||
MZ_EXTERN void scheme_hash_set(Scheme_Hash_Table *table, Scheme_Object *key, Scheme_Object *val);
|
MZ_EXTERN void scheme_hash_set(Scheme_Hash_Table *table, Scheme_Object *key, Scheme_Object *val);
|
||||||
MZ_EXTERN Scheme_Object *scheme_hash_get(Scheme_Hash_Table *table, Scheme_Object *key);
|
MZ_EXTERN Scheme_Object *scheme_hash_get(Scheme_Hash_Table *table, Scheme_Object *key);
|
||||||
XFORM_NONGCING MZ_EXTERN Scheme_Object *scheme_eq_hash_get(Scheme_Hash_Table *table, Scheme_Object *key);
|
XFORM_NONGCING MZ_EXTERN Scheme_Object *scheme_eq_hash_get(Scheme_Hash_Table *table, Scheme_Object *key);
|
||||||
|
@ -430,15 +431,17 @@ MZ_EXTERN void scheme_hash_set_atomic(Scheme_Hash_Table *table, Scheme_Object *k
|
||||||
MZ_EXTERN Scheme_Object *scheme_hash_get_atomic(Scheme_Hash_Table *table, Scheme_Object *key);
|
MZ_EXTERN Scheme_Object *scheme_hash_get_atomic(Scheme_Hash_Table *table, Scheme_Object *key);
|
||||||
MZ_EXTERN int scheme_hash_table_equal(Scheme_Hash_Table *t1, Scheme_Hash_Table *t2);
|
MZ_EXTERN int scheme_hash_table_equal(Scheme_Hash_Table *t1, Scheme_Hash_Table *t2);
|
||||||
MZ_EXTERN int scheme_is_hash_table_equal(Scheme_Object *o);
|
MZ_EXTERN int scheme_is_hash_table_equal(Scheme_Object *o);
|
||||||
|
MZ_EXTERN int scheme_is_hash_table_eqv(Scheme_Object *o);
|
||||||
MZ_EXTERN Scheme_Hash_Table *scheme_clone_hash_table(Scheme_Hash_Table *bt);
|
MZ_EXTERN Scheme_Hash_Table *scheme_clone_hash_table(Scheme_Hash_Table *bt);
|
||||||
|
|
||||||
MZ_EXTERN Scheme_Hash_Tree *scheme_make_hash_tree(int eql);
|
MZ_EXTERN Scheme_Hash_Tree *scheme_make_hash_tree(int kind);
|
||||||
MZ_EXTERN Scheme_Hash_Tree *scheme_hash_tree_set(Scheme_Hash_Tree *tree, Scheme_Object *key, Scheme_Object *val);
|
MZ_EXTERN Scheme_Hash_Tree *scheme_hash_tree_set(Scheme_Hash_Tree *tree, Scheme_Object *key, Scheme_Object *val);
|
||||||
MZ_EXTERN Scheme_Object *scheme_hash_tree_get(Scheme_Hash_Tree *tree, Scheme_Object *key);
|
MZ_EXTERN Scheme_Object *scheme_hash_tree_get(Scheme_Hash_Tree *tree, Scheme_Object *key);
|
||||||
MZ_EXTERN long scheme_hash_tree_next(Scheme_Hash_Tree *tree, long pos);
|
MZ_EXTERN long scheme_hash_tree_next(Scheme_Hash_Tree *tree, long pos);
|
||||||
MZ_EXTERN int scheme_hash_tree_index(Scheme_Hash_Tree *tree, long pos, Scheme_Object **_key, Scheme_Object **_val);
|
MZ_EXTERN int scheme_hash_tree_index(Scheme_Hash_Tree *tree, long pos, Scheme_Object **_key, Scheme_Object **_val);
|
||||||
MZ_EXTERN int scheme_hash_tree_equal(Scheme_Hash_Tree *t1, Scheme_Hash_Tree *t2);
|
MZ_EXTERN int scheme_hash_tree_equal(Scheme_Hash_Tree *t1, Scheme_Hash_Tree *t2);
|
||||||
MZ_EXTERN int scheme_is_hash_tree_equal(Scheme_Object *o);
|
MZ_EXTERN int scheme_is_hash_tree_equal(Scheme_Object *o);
|
||||||
|
MZ_EXTERN int scheme_is_hash_tree_eqv(Scheme_Object *o);
|
||||||
|
|
||||||
/*========================================================================*/
|
/*========================================================================*/
|
||||||
/* basic Scheme value constructors */
|
/* basic Scheme value constructors */
|
||||||
|
@ -1011,6 +1014,8 @@ MZ_EXTERN long scheme_equal_hash_key(Scheme_Object *o);
|
||||||
MZ_EXTERN long scheme_equal_hash_key2(Scheme_Object *o);
|
MZ_EXTERN long scheme_equal_hash_key2(Scheme_Object *o);
|
||||||
MZ_EXTERN long scheme_recur_equal_hash_key(Scheme_Object *o, void *cycle_data);
|
MZ_EXTERN long scheme_recur_equal_hash_key(Scheme_Object *o, void *cycle_data);
|
||||||
MZ_EXTERN long scheme_recur_equal_hash_key2(Scheme_Object *o, void *cycle_data);
|
MZ_EXTERN long scheme_recur_equal_hash_key2(Scheme_Object *o, void *cycle_data);
|
||||||
|
MZ_EXTERN long scheme_eqv_hash_key(Scheme_Object *o);
|
||||||
|
MZ_EXTERN long scheme_eqv_hash_key2(Scheme_Object *o);
|
||||||
|
|
||||||
MZ_EXTERN void scheme_set_type_equality(Scheme_Type type,
|
MZ_EXTERN void scheme_set_type_equality(Scheme_Type type,
|
||||||
Scheme_Equal_Proc f,
|
Scheme_Equal_Proc f,
|
||||||
|
|
|
@ -343,6 +343,7 @@ int (*scheme_bucket_table_equal)(Scheme_Bucket_Table *t1, Scheme_Bucket_Table *t
|
||||||
Scheme_Bucket_Table *(*scheme_clone_bucket_table)(Scheme_Bucket_Table *bt);
|
Scheme_Bucket_Table *(*scheme_clone_bucket_table)(Scheme_Bucket_Table *bt);
|
||||||
Scheme_Hash_Table *(*scheme_make_hash_table)(int type);
|
Scheme_Hash_Table *(*scheme_make_hash_table)(int type);
|
||||||
Scheme_Hash_Table *(*scheme_make_hash_table_equal)();
|
Scheme_Hash_Table *(*scheme_make_hash_table_equal)();
|
||||||
|
Scheme_Hash_Table *(*scheme_make_hash_table_eqv)();
|
||||||
void (*scheme_hash_set)(Scheme_Hash_Table *table, Scheme_Object *key, Scheme_Object *val);
|
void (*scheme_hash_set)(Scheme_Hash_Table *table, Scheme_Object *key, Scheme_Object *val);
|
||||||
Scheme_Object *(*scheme_hash_get)(Scheme_Hash_Table *table, Scheme_Object *key);
|
Scheme_Object *(*scheme_hash_get)(Scheme_Hash_Table *table, Scheme_Object *key);
|
||||||
Scheme_Object *(*scheme_eq_hash_get)(Scheme_Hash_Table *table, Scheme_Object *key);
|
Scheme_Object *(*scheme_eq_hash_get)(Scheme_Hash_Table *table, Scheme_Object *key);
|
||||||
|
@ -350,14 +351,16 @@ void (*scheme_hash_set_atomic)(Scheme_Hash_Table *table, Scheme_Object *key, Sch
|
||||||
Scheme_Object *(*scheme_hash_get_atomic)(Scheme_Hash_Table *table, Scheme_Object *key);
|
Scheme_Object *(*scheme_hash_get_atomic)(Scheme_Hash_Table *table, Scheme_Object *key);
|
||||||
int (*scheme_hash_table_equal)(Scheme_Hash_Table *t1, Scheme_Hash_Table *t2);
|
int (*scheme_hash_table_equal)(Scheme_Hash_Table *t1, Scheme_Hash_Table *t2);
|
||||||
int (*scheme_is_hash_table_equal)(Scheme_Object *o);
|
int (*scheme_is_hash_table_equal)(Scheme_Object *o);
|
||||||
|
int (*scheme_is_hash_table_eqv)(Scheme_Object *o);
|
||||||
Scheme_Hash_Table *(*scheme_clone_hash_table)(Scheme_Hash_Table *bt);
|
Scheme_Hash_Table *(*scheme_clone_hash_table)(Scheme_Hash_Table *bt);
|
||||||
Scheme_Hash_Tree *(*scheme_make_hash_tree)(int eql);
|
Scheme_Hash_Tree *(*scheme_make_hash_tree)(int kind);
|
||||||
Scheme_Hash_Tree *(*scheme_hash_tree_set)(Scheme_Hash_Tree *tree, Scheme_Object *key, Scheme_Object *val);
|
Scheme_Hash_Tree *(*scheme_hash_tree_set)(Scheme_Hash_Tree *tree, Scheme_Object *key, Scheme_Object *val);
|
||||||
Scheme_Object *(*scheme_hash_tree_get)(Scheme_Hash_Tree *tree, Scheme_Object *key);
|
Scheme_Object *(*scheme_hash_tree_get)(Scheme_Hash_Tree *tree, Scheme_Object *key);
|
||||||
long (*scheme_hash_tree_next)(Scheme_Hash_Tree *tree, long pos);
|
long (*scheme_hash_tree_next)(Scheme_Hash_Tree *tree, long pos);
|
||||||
int (*scheme_hash_tree_index)(Scheme_Hash_Tree *tree, long pos, Scheme_Object **_key, Scheme_Object **_val);
|
int (*scheme_hash_tree_index)(Scheme_Hash_Tree *tree, long pos, Scheme_Object **_key, Scheme_Object **_val);
|
||||||
int (*scheme_hash_tree_equal)(Scheme_Hash_Tree *t1, Scheme_Hash_Tree *t2);
|
int (*scheme_hash_tree_equal)(Scheme_Hash_Tree *t1, Scheme_Hash_Tree *t2);
|
||||||
int (*scheme_is_hash_tree_equal)(Scheme_Object *o);
|
int (*scheme_is_hash_tree_equal)(Scheme_Object *o);
|
||||||
|
int (*scheme_is_hash_tree_eqv)(Scheme_Object *o);
|
||||||
/*========================================================================*/
|
/*========================================================================*/
|
||||||
/* basic Scheme value constructors */
|
/* basic Scheme value constructors */
|
||||||
/*========================================================================*/
|
/*========================================================================*/
|
||||||
|
@ -839,6 +842,8 @@ long (*scheme_equal_hash_key)(Scheme_Object *o);
|
||||||
long (*scheme_equal_hash_key2)(Scheme_Object *o);
|
long (*scheme_equal_hash_key2)(Scheme_Object *o);
|
||||||
long (*scheme_recur_equal_hash_key)(Scheme_Object *o, void *cycle_data);
|
long (*scheme_recur_equal_hash_key)(Scheme_Object *o, void *cycle_data);
|
||||||
long (*scheme_recur_equal_hash_key2)(Scheme_Object *o, void *cycle_data);
|
long (*scheme_recur_equal_hash_key2)(Scheme_Object *o, void *cycle_data);
|
||||||
|
long (*scheme_eqv_hash_key)(Scheme_Object *o);
|
||||||
|
long (*scheme_eqv_hash_key2)(Scheme_Object *o);
|
||||||
void (*scheme_set_type_equality)(Scheme_Type type,
|
void (*scheme_set_type_equality)(Scheme_Type type,
|
||||||
Scheme_Equal_Proc f,
|
Scheme_Equal_Proc f,
|
||||||
Scheme_Primary_Hash_Proc hash1,
|
Scheme_Primary_Hash_Proc hash1,
|
||||||
|
|
|
@ -239,6 +239,7 @@
|
||||||
scheme_extension_table->scheme_clone_bucket_table = scheme_clone_bucket_table;
|
scheme_extension_table->scheme_clone_bucket_table = scheme_clone_bucket_table;
|
||||||
scheme_extension_table->scheme_make_hash_table = scheme_make_hash_table;
|
scheme_extension_table->scheme_make_hash_table = scheme_make_hash_table;
|
||||||
scheme_extension_table->scheme_make_hash_table_equal = scheme_make_hash_table_equal;
|
scheme_extension_table->scheme_make_hash_table_equal = scheme_make_hash_table_equal;
|
||||||
|
scheme_extension_table->scheme_make_hash_table_eqv = scheme_make_hash_table_eqv;
|
||||||
scheme_extension_table->scheme_hash_set = scheme_hash_set;
|
scheme_extension_table->scheme_hash_set = scheme_hash_set;
|
||||||
scheme_extension_table->scheme_hash_get = scheme_hash_get;
|
scheme_extension_table->scheme_hash_get = scheme_hash_get;
|
||||||
scheme_extension_table->scheme_eq_hash_get = scheme_eq_hash_get;
|
scheme_extension_table->scheme_eq_hash_get = scheme_eq_hash_get;
|
||||||
|
@ -246,6 +247,7 @@
|
||||||
scheme_extension_table->scheme_hash_get_atomic = scheme_hash_get_atomic;
|
scheme_extension_table->scheme_hash_get_atomic = scheme_hash_get_atomic;
|
||||||
scheme_extension_table->scheme_hash_table_equal = scheme_hash_table_equal;
|
scheme_extension_table->scheme_hash_table_equal = scheme_hash_table_equal;
|
||||||
scheme_extension_table->scheme_is_hash_table_equal = scheme_is_hash_table_equal;
|
scheme_extension_table->scheme_is_hash_table_equal = scheme_is_hash_table_equal;
|
||||||
|
scheme_extension_table->scheme_is_hash_table_eqv = scheme_is_hash_table_eqv;
|
||||||
scheme_extension_table->scheme_clone_hash_table = scheme_clone_hash_table;
|
scheme_extension_table->scheme_clone_hash_table = scheme_clone_hash_table;
|
||||||
scheme_extension_table->scheme_make_hash_tree = scheme_make_hash_tree;
|
scheme_extension_table->scheme_make_hash_tree = scheme_make_hash_tree;
|
||||||
scheme_extension_table->scheme_hash_tree_set = scheme_hash_tree_set;
|
scheme_extension_table->scheme_hash_tree_set = scheme_hash_tree_set;
|
||||||
|
@ -254,6 +256,7 @@
|
||||||
scheme_extension_table->scheme_hash_tree_index = scheme_hash_tree_index;
|
scheme_extension_table->scheme_hash_tree_index = scheme_hash_tree_index;
|
||||||
scheme_extension_table->scheme_hash_tree_equal = scheme_hash_tree_equal;
|
scheme_extension_table->scheme_hash_tree_equal = scheme_hash_tree_equal;
|
||||||
scheme_extension_table->scheme_is_hash_tree_equal = scheme_is_hash_tree_equal;
|
scheme_extension_table->scheme_is_hash_tree_equal = scheme_is_hash_tree_equal;
|
||||||
|
scheme_extension_table->scheme_is_hash_tree_eqv = scheme_is_hash_tree_eqv;
|
||||||
scheme_extension_table->scheme_make_prim = scheme_make_prim;
|
scheme_extension_table->scheme_make_prim = scheme_make_prim;
|
||||||
scheme_extension_table->scheme_make_noneternal_prim = scheme_make_noneternal_prim;
|
scheme_extension_table->scheme_make_noneternal_prim = scheme_make_noneternal_prim;
|
||||||
scheme_extension_table->scheme_make_prim_w_arity = scheme_make_prim_w_arity;
|
scheme_extension_table->scheme_make_prim_w_arity = scheme_make_prim_w_arity;
|
||||||
|
@ -577,6 +580,8 @@
|
||||||
scheme_extension_table->scheme_equal_hash_key2 = scheme_equal_hash_key2;
|
scheme_extension_table->scheme_equal_hash_key2 = scheme_equal_hash_key2;
|
||||||
scheme_extension_table->scheme_recur_equal_hash_key = scheme_recur_equal_hash_key;
|
scheme_extension_table->scheme_recur_equal_hash_key = scheme_recur_equal_hash_key;
|
||||||
scheme_extension_table->scheme_recur_equal_hash_key2 = scheme_recur_equal_hash_key2;
|
scheme_extension_table->scheme_recur_equal_hash_key2 = scheme_recur_equal_hash_key2;
|
||||||
|
scheme_extension_table->scheme_eqv_hash_key = scheme_eqv_hash_key;
|
||||||
|
scheme_extension_table->scheme_eqv_hash_key2 = scheme_eqv_hash_key2;
|
||||||
scheme_extension_table->scheme_set_type_equality = scheme_set_type_equality;
|
scheme_extension_table->scheme_set_type_equality = scheme_set_type_equality;
|
||||||
scheme_extension_table->scheme_recur_equal = scheme_recur_equal;
|
scheme_extension_table->scheme_recur_equal = scheme_recur_equal;
|
||||||
scheme_extension_table->scheme_build_list = scheme_build_list;
|
scheme_extension_table->scheme_build_list = scheme_build_list;
|
||||||
|
|
|
@ -239,6 +239,7 @@
|
||||||
#define scheme_clone_bucket_table (scheme_extension_table->scheme_clone_bucket_table)
|
#define scheme_clone_bucket_table (scheme_extension_table->scheme_clone_bucket_table)
|
||||||
#define scheme_make_hash_table (scheme_extension_table->scheme_make_hash_table)
|
#define scheme_make_hash_table (scheme_extension_table->scheme_make_hash_table)
|
||||||
#define scheme_make_hash_table_equal (scheme_extension_table->scheme_make_hash_table_equal)
|
#define scheme_make_hash_table_equal (scheme_extension_table->scheme_make_hash_table_equal)
|
||||||
|
#define scheme_make_hash_table_eqv (scheme_extension_table->scheme_make_hash_table_eqv)
|
||||||
#define scheme_hash_set (scheme_extension_table->scheme_hash_set)
|
#define scheme_hash_set (scheme_extension_table->scheme_hash_set)
|
||||||
#define scheme_hash_get (scheme_extension_table->scheme_hash_get)
|
#define scheme_hash_get (scheme_extension_table->scheme_hash_get)
|
||||||
#define scheme_eq_hash_get (scheme_extension_table->scheme_eq_hash_get)
|
#define scheme_eq_hash_get (scheme_extension_table->scheme_eq_hash_get)
|
||||||
|
@ -246,6 +247,7 @@
|
||||||
#define scheme_hash_get_atomic (scheme_extension_table->scheme_hash_get_atomic)
|
#define scheme_hash_get_atomic (scheme_extension_table->scheme_hash_get_atomic)
|
||||||
#define scheme_hash_table_equal (scheme_extension_table->scheme_hash_table_equal)
|
#define scheme_hash_table_equal (scheme_extension_table->scheme_hash_table_equal)
|
||||||
#define scheme_is_hash_table_equal (scheme_extension_table->scheme_is_hash_table_equal)
|
#define scheme_is_hash_table_equal (scheme_extension_table->scheme_is_hash_table_equal)
|
||||||
|
#define scheme_is_hash_table_eqv (scheme_extension_table->scheme_is_hash_table_eqv)
|
||||||
#define scheme_clone_hash_table (scheme_extension_table->scheme_clone_hash_table)
|
#define scheme_clone_hash_table (scheme_extension_table->scheme_clone_hash_table)
|
||||||
#define scheme_make_hash_tree (scheme_extension_table->scheme_make_hash_tree)
|
#define scheme_make_hash_tree (scheme_extension_table->scheme_make_hash_tree)
|
||||||
#define scheme_hash_tree_set (scheme_extension_table->scheme_hash_tree_set)
|
#define scheme_hash_tree_set (scheme_extension_table->scheme_hash_tree_set)
|
||||||
|
@ -254,6 +256,7 @@
|
||||||
#define scheme_hash_tree_index (scheme_extension_table->scheme_hash_tree_index)
|
#define scheme_hash_tree_index (scheme_extension_table->scheme_hash_tree_index)
|
||||||
#define scheme_hash_tree_equal (scheme_extension_table->scheme_hash_tree_equal)
|
#define scheme_hash_tree_equal (scheme_extension_table->scheme_hash_tree_equal)
|
||||||
#define scheme_is_hash_tree_equal (scheme_extension_table->scheme_is_hash_tree_equal)
|
#define scheme_is_hash_tree_equal (scheme_extension_table->scheme_is_hash_tree_equal)
|
||||||
|
#define scheme_is_hash_tree_eqv (scheme_extension_table->scheme_is_hash_tree_eqv)
|
||||||
#define scheme_make_prim (scheme_extension_table->scheme_make_prim)
|
#define scheme_make_prim (scheme_extension_table->scheme_make_prim)
|
||||||
#define scheme_make_noneternal_prim (scheme_extension_table->scheme_make_noneternal_prim)
|
#define scheme_make_noneternal_prim (scheme_extension_table->scheme_make_noneternal_prim)
|
||||||
#define scheme_make_prim_w_arity (scheme_extension_table->scheme_make_prim_w_arity)
|
#define scheme_make_prim_w_arity (scheme_extension_table->scheme_make_prim_w_arity)
|
||||||
|
@ -577,6 +580,8 @@
|
||||||
#define scheme_equal_hash_key2 (scheme_extension_table->scheme_equal_hash_key2)
|
#define scheme_equal_hash_key2 (scheme_extension_table->scheme_equal_hash_key2)
|
||||||
#define scheme_recur_equal_hash_key (scheme_extension_table->scheme_recur_equal_hash_key)
|
#define scheme_recur_equal_hash_key (scheme_extension_table->scheme_recur_equal_hash_key)
|
||||||
#define scheme_recur_equal_hash_key2 (scheme_extension_table->scheme_recur_equal_hash_key2)
|
#define scheme_recur_equal_hash_key2 (scheme_extension_table->scheme_recur_equal_hash_key2)
|
||||||
|
#define scheme_eqv_hash_key (scheme_extension_table->scheme_eqv_hash_key)
|
||||||
|
#define scheme_eqv_hash_key2 (scheme_extension_table->scheme_eqv_hash_key2)
|
||||||
#define scheme_set_type_equality (scheme_extension_table->scheme_set_type_equality)
|
#define scheme_set_type_equality (scheme_extension_table->scheme_set_type_equality)
|
||||||
#define scheme_recur_equal (scheme_extension_table->scheme_recur_equal)
|
#define scheme_recur_equal (scheme_extension_table->scheme_recur_equal)
|
||||||
#define scheme_build_list (scheme_extension_table->scheme_build_list)
|
#define scheme_build_list (scheme_extension_table->scheme_build_list)
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
#define USE_COMPILED_STARTUP 1
|
#define USE_COMPILED_STARTUP 1
|
||||||
|
|
||||||
#define EXPECTED_PRIM_COUNT 929
|
#define EXPECTED_PRIM_COUNT 935
|
||||||
|
|
||||||
#ifdef MZSCHEME_SOMETHING_OMITTED
|
#ifdef MZSCHEME_SOMETHING_OMITTED
|
||||||
# undef USE_COMPILED_STARTUP
|
# undef USE_COMPILED_STARTUP
|
||||||
|
|
|
@ -530,7 +530,7 @@ Scheme_Bucket *scheme_bucket_or_null_from_table(Scheme_Bucket_Table *table, cons
|
||||||
|
|
||||||
struct Scheme_Hash_Tree
|
struct Scheme_Hash_Tree
|
||||||
{
|
{
|
||||||
Scheme_Inclhash_Object iso; /* 0x1 flag => equal?-based hashing */
|
Scheme_Inclhash_Object iso; /* 0x1 flag => equal?-based hashing; 0x2 flag => eqv?-based hashing */
|
||||||
int count;
|
int count;
|
||||||
struct RBNode *root;
|
struct RBNode *root;
|
||||||
Scheme_Object *elems_box; /* vector in a weak box */
|
Scheme_Object *elems_box; /* vector in a weak box */
|
||||||
|
|
|
@ -13,12 +13,12 @@
|
||||||
consistently.)
|
consistently.)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define MZSCHEME_VERSION "4.1.1.1"
|
#define MZSCHEME_VERSION "4.1.1.2"
|
||||||
|
|
||||||
#define MZSCHEME_VERSION_X 4
|
#define MZSCHEME_VERSION_X 4
|
||||||
#define MZSCHEME_VERSION_Y 1
|
#define MZSCHEME_VERSION_Y 1
|
||||||
#define MZSCHEME_VERSION_Z 1
|
#define MZSCHEME_VERSION_Z 1
|
||||||
#define MZSCHEME_VERSION_W 1
|
#define MZSCHEME_VERSION_W 2
|
||||||
|
|
||||||
#define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y)
|
#define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y)
|
||||||
#define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W)
|
#define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user