3.99.0.13: generalize require and provide to work with arbitrary phases
svn: r8742
This commit is contained in:
parent
68ba174c67
commit
ba63bd6f95
|
@ -25,11 +25,11 @@
|
||||||
(x (apply max x))))
|
(x (apply max x))))
|
||||||
|
|
||||||
(define (get-deps code path)
|
(define (get-deps code path)
|
||||||
(let-values ([(imports fs-imports ft-imports fl-imports) (module-compiled-imports code)])
|
(let-values ([(imports) (apply append (map cdr (module-compiled-imports code)))])
|
||||||
(map path->bytes
|
(map path->bytes
|
||||||
(let ([l (map (lambda (x)
|
(let ([l (map (lambda (x)
|
||||||
(resolve-module-path-index x path))
|
(resolve-module-path-index x path))
|
||||||
(append imports fs-imports ft-imports fl-imports))])
|
imports)])
|
||||||
;; Filter symbols:
|
;; Filter symbols:
|
||||||
(let loop ([l l])
|
(let loop ([l l])
|
||||||
(cond
|
(cond
|
||||||
|
|
|
@ -133,7 +133,6 @@
|
||||||
"private/match/match-error.ss"
|
"private/match/match-error.ss"
|
||||||
"private/match/test-no-order.ss")
|
"private/match/test-no-order.ss")
|
||||||
|
|
||||||
|
|
||||||
(define-syntax match-definer
|
(define-syntax match-definer
|
||||||
(syntax-rules ()
|
(syntax-rules ()
|
||||||
[(match-definer name clauses ...)
|
[(match-definer name clauses ...)
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
(provide
|
(provide
|
||||||
;; PLT Scheme pre-requisites:
|
;; PLT Scheme pre-requisites:
|
||||||
(rename-out [datum #%datum])
|
(rename-out [datum #%datum])
|
||||||
#%app
|
#%app #%top #%top-interaction
|
||||||
|
|
||||||
;; 11.2
|
;; 11.2
|
||||||
(rename-out [r5rs:define define]
|
(rename-out [r5rs:define define]
|
||||||
|
|
|
@ -38,13 +38,13 @@
|
||||||
(if for-stx
|
(if for-stx
|
||||||
(with-syntax ([for for-stx])
|
(with-syntax ([for for-stx])
|
||||||
(syntax/loc stx
|
(syntax/loc stx
|
||||||
(#%require (for elem ...))))
|
(#%require (for-meta for (just-meta 0 elem ...)))))
|
||||||
(syntax/loc stx
|
(syntax/loc stx
|
||||||
(#%require elem ...)))])))])
|
(#%require elem ...)))])))])
|
||||||
(values (mk #f)
|
(values (mk #f)
|
||||||
(mk #'for-syntax)
|
(mk #'1)
|
||||||
(mk #'for-template)
|
(mk #'-1)
|
||||||
(mk #'for-label))))
|
(mk #'#f))))
|
||||||
|
|
||||||
(define-syntaxes (provide provide-for-syntax provide-for-label)
|
(define-syntaxes (provide provide-for-syntax provide-for-label)
|
||||||
(let ([mk
|
(let ([mk
|
||||||
|
|
|
@ -8,9 +8,9 @@
|
||||||
"struct-info.ss"))
|
"struct-info.ss"))
|
||||||
|
|
||||||
(#%provide lib file planet
|
(#%provide lib file planet
|
||||||
for-syntax for-template for-label
|
for-syntax for-template for-label for-meta
|
||||||
require
|
require
|
||||||
only-in rename-in prefix-in except-in
|
only-in rename-in prefix-in except-in only-meta-in
|
||||||
provide
|
provide
|
||||||
all-defined-out all-from-out
|
all-defined-out all-from-out
|
||||||
rename-out except-out prefix-out struct-out
|
rename-out except-out prefix-out struct-out
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
(define-for-syntax (xlate-path stx)
|
(define-for-syntax (xlate-path stx)
|
||||||
(if (pair? (syntax-e stx))
|
(if (pair? (syntax-e stx))
|
||||||
(let ([kw
|
(let ([kw
|
||||||
;; free-identifier=? identifers are not necessarily module=?
|
;; symbolic-identifier=? identifers are not necessarily free-identifier=?
|
||||||
(syntax-case stx (lib planet file quote)
|
(syntax-case stx (lib planet file quote)
|
||||||
[(quote . _) 'quote]
|
[(quote . _) 'quote]
|
||||||
[(lib . _) 'lib]
|
[(lib . _) 'lib]
|
||||||
|
@ -57,26 +57,27 @@
|
||||||
(define-syntaxes (lib file planet)
|
(define-syntaxes (lib file planet)
|
||||||
(let ([t (lambda (stx)
|
(let ([t (lambda (stx)
|
||||||
(check-lib-form stx)
|
(check-lib-form stx)
|
||||||
(let*-values ([(mod-path) (syntax->datum stx)]
|
(let* ([mod-path (syntax->datum stx)]
|
||||||
[(names et-names lt-names) (syntax-local-module-exports stx)])
|
[namess (syntax-local-module-exports stx)])
|
||||||
(values
|
(values
|
||||||
(apply
|
(apply
|
||||||
append
|
append
|
||||||
(map (lambda (names mode)
|
(map (lambda (names)
|
||||||
(map (lambda (name)
|
(let ([mode (car names)])
|
||||||
(make-import (datum->syntax
|
(map (lambda (name)
|
||||||
stx
|
(make-import (datum->syntax
|
||||||
name
|
stx
|
||||||
stx)
|
name
|
||||||
name
|
stx)
|
||||||
mod-path
|
name
|
||||||
mode
|
mod-path
|
||||||
'run
|
mode
|
||||||
stx))
|
0
|
||||||
names))
|
mode
|
||||||
(list names et-names lt-names)
|
stx))
|
||||||
(list 'run 'syntax 'label)))
|
(cdr names))))
|
||||||
(list (make-import-source stx 'run)))))])
|
namess))
|
||||||
|
(list (make-import-source stx 0)))))])
|
||||||
(let ([t2
|
(let ([t2
|
||||||
(let-values ([(s: mk s? s-ref s-set!)
|
(let-values ([(s: mk s? s-ref s-set!)
|
||||||
(make-struct-type 'req+prov
|
(make-struct-type 'req+prov
|
||||||
|
@ -96,6 +97,9 @@
|
||||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; for-syntax, for-template, for-label
|
;; for-syntax, for-template, for-label
|
||||||
|
|
||||||
|
(define-for-syntax (phase+ a b)
|
||||||
|
(and a b (+ a b)))
|
||||||
|
|
||||||
(define-for-syntax (shift-subs stx mode)
|
(define-for-syntax (shift-subs stx mode)
|
||||||
(syntax-case stx ()
|
(syntax-case stx ()
|
||||||
[(_ in ...)
|
[(_ in ...)
|
||||||
|
@ -110,18 +114,17 @@
|
||||||
(make-import (import-local-id import)
|
(make-import (import-local-id import)
|
||||||
(import-src-sym import)
|
(import-src-sym import)
|
||||||
(import-src-mod-path import)
|
(import-src-mod-path import)
|
||||||
mode
|
(phase+ mode (import-mode import))
|
||||||
mode
|
(phase+ mode (import-req-mode import))
|
||||||
|
(import-orig-mode import)
|
||||||
(import-orig-stx import)))
|
(import-orig-stx import)))
|
||||||
(filter (lambda (import)
|
imports)
|
||||||
(eq? (import-mode import) 'run))
|
|
||||||
imports))
|
|
||||||
(map (lambda (source)
|
(map (lambda (source)
|
||||||
(make-import-source (import-source-mod-path-stx source)
|
(make-import-source
|
||||||
mode))
|
(import-source-mod-path-stx source)
|
||||||
(filter (lambda (source)
|
(phase+ mode
|
||||||
(eq? (import-source-mode source) 'run))
|
(import-source-mode source))))
|
||||||
sources))))]))
|
sources)))]))
|
||||||
|
|
||||||
(define-for-syntax (make-require+provide-transformer r p)
|
(define-for-syntax (make-require+provide-transformer r p)
|
||||||
(let-values ([(s: mk s? s-ref s-set!)
|
(let-values ([(s: mk s? s-ref s-set!)
|
||||||
|
@ -149,21 +152,50 @@
|
||||||
(define-syntax for-syntax
|
(define-syntax for-syntax
|
||||||
(make-require+provide-transformer
|
(make-require+provide-transformer
|
||||||
(lambda (stx)
|
(lambda (stx)
|
||||||
(shift-subs stx 'syntax))
|
(shift-subs stx 1))
|
||||||
(lambda (stx modes)
|
(lambda (stx modes)
|
||||||
(exports-at-phase stx modes 'syntax))))
|
(exports-at-phase stx modes 1))))
|
||||||
|
|
||||||
(define-syntax for-template
|
(define-syntax for-template
|
||||||
(make-require-transformer
|
(make-require+provide-transformer
|
||||||
(lambda (stx)
|
(lambda (stx)
|
||||||
(shift-subs stx 'template))))
|
(shift-subs stx -1))
|
||||||
|
(lambda (stx modes)
|
||||||
|
(exports-at-phase stx modes -1))))
|
||||||
|
|
||||||
(define-syntax for-label
|
(define-syntax for-label
|
||||||
(make-require+provide-transformer
|
(make-require+provide-transformer
|
||||||
(lambda (stx)
|
(lambda (stx)
|
||||||
(shift-subs stx 'label))
|
(shift-subs stx #f))
|
||||||
(lambda (stx modes)
|
(lambda (stx modes)
|
||||||
(exports-at-phase stx modes 'label))))
|
(exports-at-phase stx modes #f))))
|
||||||
|
|
||||||
|
(define-syntax for-meta
|
||||||
|
(make-require+provide-transformer
|
||||||
|
(lambda (stx)
|
||||||
|
(syntax-case stx ()
|
||||||
|
[(_ mode in ...)
|
||||||
|
(let ([base-mode (syntax-e #'mode)])
|
||||||
|
(unless (or (not base-mode)
|
||||||
|
(exact-integer? base-mode))
|
||||||
|
(raise-syntax-error
|
||||||
|
#f
|
||||||
|
"phase level must be #f or an exact integer"
|
||||||
|
stx
|
||||||
|
#'mode))
|
||||||
|
(shift-subs #'(for-meta in ...) base-mode))]))
|
||||||
|
(lambda (stx modes)
|
||||||
|
(syntax-case stx ()
|
||||||
|
[(_ mode out ...)
|
||||||
|
(let ([base-mode (syntax-e #'mode)])
|
||||||
|
(unless (or (not base-mode)
|
||||||
|
(exact-integer? base-mode))
|
||||||
|
(raise-syntax-error
|
||||||
|
#f
|
||||||
|
"phase level must be #f or an exact integer"
|
||||||
|
stx
|
||||||
|
#'mode))
|
||||||
|
(exports-at-phase #'(for-meta out ...) modes base-mode))]))))
|
||||||
|
|
||||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; require
|
;; require
|
||||||
|
@ -176,11 +208,8 @@
|
||||||
(letrec ([mode-wrap
|
(letrec ([mode-wrap
|
||||||
(lambda (mode base)
|
(lambda (mode base)
|
||||||
(cond
|
(cond
|
||||||
[(eq? mode 'run) base]
|
[(eq? mode 0) base]
|
||||||
[(eq? mode 'syntax) #`(for-syntax #,base)]
|
[else #`(for-meta #,mode #,base)]))]
|
||||||
[(eq? mode 'template) #`(for-template #,base)]
|
|
||||||
[(eq? mode 'label) #`(for-label #,base)]
|
|
||||||
[else (error "huh?" mode)]))]
|
|
||||||
[simple-path? (lambda (p)
|
[simple-path? (lambda (p)
|
||||||
(syntax-case p (lib quote)
|
(syntax-case p (lib quote)
|
||||||
[(lib . _)
|
[(lib . _)
|
||||||
|
@ -249,27 +278,17 @@
|
||||||
;; TODO: collapse back to simple cases when possible
|
;; TODO: collapse back to simple cases when possible
|
||||||
(append
|
(append
|
||||||
(map (lambda (import)
|
(map (lambda (import)
|
||||||
(mode-wrap (if (eq? base-mode 'run)
|
#`(just-meta
|
||||||
(import-req-mode import)
|
#,(import-orig-mode import)
|
||||||
base-mode)
|
#,(mode-wrap (phase+ base-mode (import-req-mode import))
|
||||||
#`(rename #,(import-src-mod-path import)
|
#`(rename #,(import-src-mod-path import)
|
||||||
#,(import-local-id import)
|
#,(import-local-id import)
|
||||||
#,(import-src-sym import))))
|
#,(import-src-sym import)))))
|
||||||
(if (eq? base-mode 'run)
|
imports)
|
||||||
imports
|
|
||||||
(filter (lambda (import)
|
|
||||||
(eq? (import-mode import) 'run))
|
|
||||||
imports)))
|
|
||||||
(map (lambda (src)
|
(map (lambda (src)
|
||||||
(mode-wrap (if (eq? base-mode 'run)
|
(mode-wrap (phase+ base-mode (import-source-mode src))
|
||||||
(import-source-mode src)
|
|
||||||
base-mode)
|
|
||||||
#`(only #,(import-source-mod-path-stx src))))
|
#`(only #,(import-source-mod-path-stx src))))
|
||||||
(if (eq? base-mode 'run)
|
sources)))]))]
|
||||||
sources
|
|
||||||
(filter (lambda (source)
|
|
||||||
(eq? (import-source-mode source) 'run))
|
|
||||||
sources)))))]))]
|
|
||||||
[transform-one
|
[transform-one
|
||||||
(lambda (in)
|
(lambda (in)
|
||||||
;; Recognize `for-syntax', etc. for simple cases:
|
;; Recognize `for-syntax', etc. for simple cases:
|
||||||
|
@ -283,13 +302,13 @@
|
||||||
(transform-simple in
|
(transform-simple in
|
||||||
(cond
|
(cond
|
||||||
[(free-identifier=? #'for-something #'for-syntax)
|
[(free-identifier=? #'for-something #'for-syntax)
|
||||||
'syntax]
|
1]
|
||||||
[(free-identifier=? #'for-something #'for-template)
|
[(free-identifier=? #'for-something #'for-template)
|
||||||
'template]
|
-1]
|
||||||
[(free-identifier=? #'for-something #'for-label)
|
[(free-identifier=? #'for-something #'for-label)
|
||||||
'label])))
|
#f])))
|
||||||
(syntax->list #'(elem ...))))]
|
(syntax->list #'(elem ...))))]
|
||||||
[_ (transform-simple in 'run)]))])
|
[_ (transform-simple in 0 #| run phase |#)]))])
|
||||||
(syntax-case stx ()
|
(syntax-case stx ()
|
||||||
[(_ in ...)
|
[(_ in ...)
|
||||||
(with-syntax ([(new-in ...)
|
(with-syntax ([(new-in ...)
|
||||||
|
@ -339,26 +358,32 @@
|
||||||
stx
|
stx
|
||||||
dup-id)))
|
dup-id)))
|
||||||
(values
|
(values
|
||||||
(map (lambda (new-id orig-id)
|
(apply
|
||||||
(or (ormap (lambda (import)
|
append
|
||||||
(and (free-identifier=? orig-id
|
(map (lambda (new-id orig-id)
|
||||||
(import-local-id import))
|
(let ([l (filter
|
||||||
(if (eq? new-id orig-id)
|
values
|
||||||
import
|
(map (lambda (import)
|
||||||
(make-import new-id
|
(and (free-identifier=? orig-id (import-local-id import)) ; don't compare at mode
|
||||||
(import-src-sym import)
|
(if (eq? new-id orig-id)
|
||||||
(import-src-mod-path import)
|
import
|
||||||
(import-mode import)
|
(make-import new-id
|
||||||
(import-req-mode import)
|
(import-src-sym import)
|
||||||
new-id))))
|
(import-src-mod-path import)
|
||||||
imports)
|
(import-mode import)
|
||||||
(raise-syntax-error
|
(import-req-mode import)
|
||||||
#f
|
(import-orig-mode import)
|
||||||
(format "identifier `~a' not included in nested require spec"
|
new-id))))
|
||||||
(syntax-e orig-id))
|
imports))])
|
||||||
stx
|
(if (null? l)
|
||||||
#'in)))
|
(raise-syntax-error
|
||||||
new-ids orig-ids)
|
#f
|
||||||
|
(format "identifier `~a' not included in nested require spec"
|
||||||
|
(syntax-e orig-id))
|
||||||
|
stx
|
||||||
|
#'in)
|
||||||
|
l)))
|
||||||
|
new-ids orig-ids))
|
||||||
sources)))]))))
|
sources)))]))))
|
||||||
|
|
||||||
(define-syntax except-in
|
(define-syntax except-in
|
||||||
|
@ -402,6 +427,31 @@
|
||||||
imports)
|
imports)
|
||||||
sources))]))))
|
sources))]))))
|
||||||
|
|
||||||
|
(define-syntax only-meta-in
|
||||||
|
(make-require-transformer
|
||||||
|
(lambda (stx)
|
||||||
|
(syntax-case stx ()
|
||||||
|
[(_ mode in ...)
|
||||||
|
(let ([base-mode (syntax-e #'mode)])
|
||||||
|
(unless (or (not base-mode)
|
||||||
|
(exact-integer? base-mode))
|
||||||
|
(raise-syntax-error
|
||||||
|
#f
|
||||||
|
"phase level must be #f or an exact integer"
|
||||||
|
stx
|
||||||
|
#'mode))
|
||||||
|
(let ([subs
|
||||||
|
(map (lambda (in)
|
||||||
|
(let-values ([(imports sources) (expand-import in)])
|
||||||
|
(cons
|
||||||
|
(filter (lambda (import)
|
||||||
|
(equal? (import-mode import) base-mode))
|
||||||
|
imports)
|
||||||
|
sources)))
|
||||||
|
(syntax->list #'(in ...)))])
|
||||||
|
(values (apply append (map car subs))
|
||||||
|
(apply append (map cdr subs)))))]))))
|
||||||
|
|
||||||
(define-syntax rename-in
|
(define-syntax rename-in
|
||||||
(make-require-transformer
|
(make-require-transformer
|
||||||
(lambda (stx)
|
(lambda (stx)
|
||||||
|
@ -444,6 +494,7 @@
|
||||||
(import-src-mod-path import)
|
(import-src-mod-path import)
|
||||||
(import-mode import)
|
(import-mode import)
|
||||||
(import-req-mode import)
|
(import-req-mode import)
|
||||||
|
(import-orig-mode import)
|
||||||
bind-id)
|
bind-id)
|
||||||
import)))
|
import)))
|
||||||
orig-ids bind-ids)])
|
orig-ids bind-ids)])
|
||||||
|
@ -500,6 +551,7 @@
|
||||||
(import-src-mod-path import)
|
(import-src-mod-path import)
|
||||||
(import-mode import)
|
(import-mode import)
|
||||||
(import-req-mode import)
|
(import-req-mode import)
|
||||||
|
(import-orig-mode import)
|
||||||
(import-orig-stx import))))
|
(import-orig-stx import))))
|
||||||
imports)
|
imports)
|
||||||
sources))]))))
|
sources))]))))
|
||||||
|
@ -538,9 +590,8 @@
|
||||||
[mode (export-mode export)])
|
[mode (export-mode export)])
|
||||||
(let ([phased
|
(let ([phased
|
||||||
(cond
|
(cond
|
||||||
[(eq? mode 'run) base]
|
[(eq? mode 0) base]
|
||||||
[(eq? mode 'syntax) #`(for-syntax #,base)]
|
[else #`(for-meta #,mode #,base)])])
|
||||||
[(eq? mode 'label) #`(for-label #,base)])])
|
|
||||||
(if (export-protect? export)
|
(if (export-protect? export)
|
||||||
#`(protect #,phased)
|
#`(protect #,phased)
|
||||||
phased))))
|
phased))))
|
||||||
|
@ -569,16 +620,16 @@
|
||||||
stx
|
stx
|
||||||
(syntax-e id)))))])
|
(syntax-e id)))))])
|
||||||
(append
|
(append
|
||||||
(if (memq 'syntax modes)
|
(if (memq 1 modes)
|
||||||
(map (lambda (id)
|
(map (lambda (id)
|
||||||
(make-export id (syntax-e id) 'syntax #f stx))
|
(make-export id (syntax-e id) 1 #f stx))
|
||||||
(filter (same-ctx? free-transformer-identifier=?)
|
(filter (same-ctx? free-transformer-identifier=?)
|
||||||
stx-ids))
|
stx-ids))
|
||||||
null)
|
null)
|
||||||
(if (or (null? modes)
|
(if (or (null? modes)
|
||||||
(memq 'run modes))
|
(memq 0 modes))
|
||||||
(map (lambda (id)
|
(map (lambda (id)
|
||||||
(make-export id (syntax-e id) 'run #f stx))
|
(make-export id (syntax-e id) 0 #f stx))
|
||||||
(filter (same-ctx? free-identifier=?)
|
(filter (same-ctx? free-identifier=?)
|
||||||
ids))
|
ids))
|
||||||
null)))]))))
|
null)))]))))
|
||||||
|
@ -598,61 +649,42 @@
|
||||||
"bad module path"
|
"bad module path"
|
||||||
stx
|
stx
|
||||||
mp))
|
mp))
|
||||||
(let-values ([(ids stx-ids label-ids)
|
(let ([idss
|
||||||
(syntax-local-module-required-identifiers (syntax->datum mp)
|
(apply
|
||||||
(or (null? modes)
|
append
|
||||||
(memq 'run modes))
|
(map (lambda (mode)
|
||||||
(memq 'syntax modes)
|
(let ([r (syntax-local-module-required-identifiers (syntax->datum mp)
|
||||||
(memq 'label modes))]
|
mode)])
|
||||||
[(ok-context?) (lambda (id id=?)
|
(or r
|
||||||
(id=? id
|
(raise-syntax-error
|
||||||
(datum->syntax mp (syntax-e id))))])
|
#f
|
||||||
(when (or (null? modes)
|
(format "no corresponding require~a"
|
||||||
(memq 'run modes))
|
(cond
|
||||||
(unless ids
|
[(eq? mode 0) ""]
|
||||||
(raise-syntax-error
|
[(not mode)
|
||||||
#f
|
" at the label phase level"]
|
||||||
"no corresponding require"
|
[else
|
||||||
stx
|
(format " at phase level ~a" mode)]))
|
||||||
mp)))
|
stx
|
||||||
(when (memq 'syntax modes)
|
mp))))
|
||||||
(unless stx-ids
|
(if (null? modes)
|
||||||
(raise-syntax-error
|
'(0)
|
||||||
#f
|
modes)))]
|
||||||
"no corresponding for-syntax require"
|
[ok-context? (lambda (id id=?)
|
||||||
stx
|
(id=? id
|
||||||
mp)))
|
(datum->syntax mp (syntax-e id))))])
|
||||||
(when (memq 'label modes)
|
|
||||||
(unless label-ids
|
|
||||||
(raise-syntax-error
|
|
||||||
#f
|
|
||||||
"no corresponding for-label require"
|
|
||||||
stx
|
|
||||||
mp)))
|
|
||||||
(filter
|
(filter
|
||||||
values
|
values
|
||||||
(append
|
(apply
|
||||||
(map (lambda (id)
|
append
|
||||||
(and (ok-context? id free-transformer-identifier=?)
|
(map (lambda (ids)
|
||||||
(make-export id (syntax-e id) 'syntax #f stx)))
|
(let ([mode (car ids)])
|
||||||
(if (or (null? modes)
|
(map (lambda (id)
|
||||||
(memq 'syntax modes))
|
(and (free-identifier=? id (datum->syntax mp (syntax-e id))
|
||||||
(or stx-ids null)
|
mode)
|
||||||
null))
|
(make-export id (syntax-e id) mode #f stx)))
|
||||||
(map (lambda (id)
|
(cdr ids))))
|
||||||
(and (ok-context? id free-label-identifier=?)
|
idss)))))
|
||||||
(make-export id (syntax-e id) 'label #f stx)))
|
|
||||||
(if (or (null? modes)
|
|
||||||
(memq 'label modes))
|
|
||||||
(or label-ids null)
|
|
||||||
null))
|
|
||||||
(map (lambda (id)
|
|
||||||
(and (ok-context? id free-identifier=?)
|
|
||||||
(make-export id (syntax-e id) 'run #f stx)))
|
|
||||||
(if (or (null? modes)
|
|
||||||
(memq 'run modes))
|
|
||||||
ids
|
|
||||||
null))))))
|
|
||||||
(syntax->list #'(mp ...))))]))))
|
(syntax->list #'(mp ...))))]))))
|
||||||
|
|
||||||
(define-syntax rename-out
|
(define-syntax rename-out
|
||||||
|
@ -672,12 +704,16 @@
|
||||||
(append orig-ids bind-ids))
|
(append orig-ids bind-ids))
|
||||||
(apply
|
(apply
|
||||||
append
|
append
|
||||||
(map (lambda (mode identifier-binding env-desc)
|
(map (lambda (mode)
|
||||||
(map (lambda (orig-id bind-id)
|
(map (lambda (orig-id bind-id)
|
||||||
(unless (list? (identifier-binding orig-id))
|
(unless (list? (identifier-binding orig-id mode))
|
||||||
(raise-syntax-error
|
(raise-syntax-error
|
||||||
#f
|
#f
|
||||||
(format "no binding~a for identifier" env-desc)
|
(format "no binding~a for identifier"
|
||||||
|
(cond
|
||||||
|
[(eq? mode 0) ""]
|
||||||
|
[(not mode) " in the label phase level"]
|
||||||
|
[(not mode) (format " at phase level ~a" mode)]))
|
||||||
stx
|
stx
|
||||||
orig-id))
|
orig-id))
|
||||||
(make-export orig-id
|
(make-export orig-id
|
||||||
|
@ -687,24 +723,8 @@
|
||||||
bind-id))
|
bind-id))
|
||||||
orig-ids bind-ids))
|
orig-ids bind-ids))
|
||||||
(if (null? modes)
|
(if (null? modes)
|
||||||
'(run)
|
'(0)
|
||||||
modes)
|
modes))))]))))
|
||||||
(if (null? modes)
|
|
||||||
(list identifier-binding)
|
|
||||||
(map (lambda (mode)
|
|
||||||
(cond
|
|
||||||
[(eq? mode 'run) identifier-binding]
|
|
||||||
[(eq? mode 'syntax) identifier-transformer-binding]
|
|
||||||
[(eq? mode 'label) identifier-label-binding]))
|
|
||||||
modes))
|
|
||||||
(if (null? modes)
|
|
||||||
(list "")
|
|
||||||
(map (lambda (mode)
|
|
||||||
(cond
|
|
||||||
[(eq? mode 'run) ""]
|
|
||||||
[(eq? mode 'syntax) " for-syntax"]
|
|
||||||
[(eq? mode 'label) " for-label"]))
|
|
||||||
modes)))))]))))
|
|
||||||
|
|
||||||
(define-syntax except-out
|
(define-syntax except-out
|
||||||
(make-provide-transformer
|
(make-provide-transformer
|
||||||
|
@ -728,26 +748,22 @@
|
||||||
"duplicate identifier"
|
"duplicate identifier"
|
||||||
stx
|
stx
|
||||||
dup-id)))
|
dup-id)))
|
||||||
(map (lambda (id)
|
(for-each (lambda (id)
|
||||||
(or (ormap (lambda (export)
|
(or (ormap (lambda (export)
|
||||||
(free-identifier=? id (export-local-id export)))
|
(free-identifier=? id (export-local-id export)
|
||||||
exports)
|
(export-mode export)))
|
||||||
(raise-syntax-error
|
exports)
|
||||||
#f
|
(raise-syntax-error
|
||||||
(format "identifier `~a' not included in nested provide spec"
|
#f
|
||||||
(syntax-e id))
|
(format "identifier `~a' not included in nested provide spec"
|
||||||
stx
|
(syntax-e id))
|
||||||
#'out)))
|
stx
|
||||||
ids)
|
#'out)))
|
||||||
|
ids)
|
||||||
(filter (lambda (export)
|
(filter (lambda (export)
|
||||||
(not (ormap (lambda (id)
|
(not (ormap (lambda (id)
|
||||||
((let ([mode (export-mode export)])
|
(free-identifier=? id (export-local-id export)
|
||||||
(cond
|
(export-mode export)))
|
||||||
[(eq? mode 'run) free-identifier=?]
|
|
||||||
[(eq? mode 'syntax) free-transformer-identifier=?]
|
|
||||||
[(eq? mode 'label) free-label-identifier=?]))
|
|
||||||
id
|
|
||||||
(export-local-id export)))
|
|
||||||
ids)))
|
ids)))
|
||||||
exports))]))))
|
exports))]))))
|
||||||
|
|
||||||
|
@ -767,10 +783,10 @@
|
||||||
(make-provide-transformer
|
(make-provide-transformer
|
||||||
(lambda (stx modes)
|
(lambda (stx modes)
|
||||||
(unless (or (null? modes)
|
(unless (or (null? modes)
|
||||||
(memq 'run modes))
|
(equal? '(0) modes))
|
||||||
(raise-syntax-error
|
(raise-syntax-error
|
||||||
#f
|
#f
|
||||||
"allowed only for run-time bindings"
|
"allowed only for phase level 0"
|
||||||
stx))
|
stx))
|
||||||
(syntax-case stx ()
|
(syntax-case stx ()
|
||||||
[(_ id)
|
[(_ id)
|
||||||
|
@ -805,9 +821,13 @@
|
||||||
;; used a lot.
|
;; used a lot.
|
||||||
[avail-ids (append (let-values ([(ids _) (syntax-local-module-defined-identifiers)])
|
[avail-ids (append (let-values ([(ids _) (syntax-local-module-defined-identifiers)])
|
||||||
ids)
|
ids)
|
||||||
(let-values ([(ids _ __)
|
(let ([idss (syntax-local-module-required-identifiers #f #t)])
|
||||||
(syntax-local-module-required-identifiers #f #t #f #f)])
|
(if idss
|
||||||
ids))]
|
(let ([a (assoc 0 idss)])
|
||||||
|
(if a
|
||||||
|
(cdr a)
|
||||||
|
null))
|
||||||
|
null)))]
|
||||||
[find-imported/defined (lambda (id)
|
[find-imported/defined (lambda (id)
|
||||||
(let ([ids (filter (lambda (id2)
|
(let ([ids (filter (lambda (id2)
|
||||||
(and (free-identifier=? id2 id)
|
(and (free-identifier=? id2 id)
|
||||||
|
@ -839,7 +859,7 @@
|
||||||
(let ([id (find-imported/defined id)])
|
(let ([id (find-imported/defined id)])
|
||||||
(make-export id
|
(make-export id
|
||||||
(syntax-e id)
|
(syntax-e id)
|
||||||
'run
|
0
|
||||||
#f
|
#f
|
||||||
id))))
|
id))))
|
||||||
(append
|
(append
|
||||||
|
|
|
@ -19,8 +19,9 @@
|
||||||
(raise-type-error 'make-export "identifier" i))
|
(raise-type-error 'make-export "identifier" i))
|
||||||
(unless (symbol? s)
|
(unless (symbol? s)
|
||||||
(raise-type-error 'make-export "symbol" s))
|
(raise-type-error 'make-export "symbol" s))
|
||||||
(unless (memq mode '(run syntax label))
|
(unless (or (not mode)
|
||||||
(raise-type-error 'make-export "'run, 'syntax, or 'label" mode))
|
(exact-integer? mode))
|
||||||
|
(raise-type-error 'make-export "exact integer or #f" mode))
|
||||||
(unless (syntax? stx)
|
(unless (syntax? stx)
|
||||||
(raise-type-error 'make-export "syntax" stx))
|
(raise-type-error 'make-export "syntax" stx))
|
||||||
(values i s mode (and protect? #t) stx)))
|
(values i s mode (and protect? #t) stx)))
|
||||||
|
@ -42,9 +43,9 @@
|
||||||
(map (lambda (mode)
|
(map (lambda (mode)
|
||||||
(list (make-export stx (syntax-e stx) mode #f stx)))
|
(list (make-export stx (syntax-e stx) mode #f stx)))
|
||||||
(if (null? modes)
|
(if (null? modes)
|
||||||
'(run)
|
'(0)
|
||||||
modes)))
|
modes)))
|
||||||
(syntax-case stx (lib)
|
(syntax-case stx ()
|
||||||
[(id . rest)
|
[(id . rest)
|
||||||
(identifier? #'id)
|
(identifier? #'id)
|
||||||
(let ([t (syntax-local-value #'id (lambda () #f))])
|
(let ([t (syntax-local-value #'id (lambda () #f))])
|
||||||
|
|
|
@ -12,34 +12,46 @@
|
||||||
make-require-transformer prop:require-transformer require-transformer?
|
make-require-transformer prop:require-transformer require-transformer?
|
||||||
;; the import struct type:
|
;; the import struct type:
|
||||||
import struct:import make-import import?
|
import struct:import make-import import?
|
||||||
import-local-id import-src-sym import-src-mod-path import-orig-stx import-mode import-req-mode
|
import-local-id import-src-sym import-src-mod-path import-orig-stx import-mode import-req-mode import-orig-mode
|
||||||
;; the import-source struct type:
|
;; the import-source struct type:
|
||||||
import-source struct:import-source make-import-source import-source?
|
import-source struct:import-source make-import-source import-source?
|
||||||
import-source-mod-path-stx import-source-mode)
|
import-source-mod-path-stx import-source-mode)
|
||||||
|
|
||||||
(define-struct* import (local-id src-sym src-mod-path mode req-mode orig-stx)
|
(define-struct* import (local-id src-sym src-mod-path mode req-mode orig-mode orig-stx)
|
||||||
#:guard (lambda (i s path mode req-mode stx info)
|
#:guard (lambda (i s path mode req-mode orig-mode stx info)
|
||||||
(unless (identifier? i)
|
(unless (identifier? i)
|
||||||
(raise-type-error 'make-import "identifier" i))
|
(raise-type-error 'make-import "identifier" i))
|
||||||
(unless (symbol? s)
|
(unless (symbol? s)
|
||||||
(raise-type-error 'make-import "symbol" s))
|
(raise-type-error 'make-import "symbol" s))
|
||||||
(unless (module-path? path)
|
(unless (module-path? path)
|
||||||
(raise-type-error 'make-import "module-path" path))
|
(raise-type-error 'make-import "module-path" path))
|
||||||
(unless (memq mode '(run syntax template label))
|
(unless (or (not mode)
|
||||||
(raise-type-error 'make-import "'run, 'syntax, 'template, or 'label" mode))
|
(exact-integer? mode))
|
||||||
(unless (memq req-mode '(run syntax template label))
|
(raise-type-error 'make-import "exact integer or #f" mode))
|
||||||
(raise-type-error 'make-import "'run, 'syntax, 'template, or 'label" req-mode))
|
(unless (or (not req-mode)
|
||||||
|
(exact-integer? req-mode))
|
||||||
|
(raise-type-error 'make-import "'exact integer or #f" req-mode))
|
||||||
|
(unless (or (not orig-mode)
|
||||||
|
(exact-integer? orig-mode))
|
||||||
|
(raise-type-error 'make-import "'exact integer or #f" orig-mode))
|
||||||
|
(unless (equal? mode (and req-mode orig-mode (+ req-mode orig-mode)))
|
||||||
|
(raise-mismatch-error 'make-import
|
||||||
|
(format
|
||||||
|
"orig mode: ~a and require mode: ~a not consistent with mode: "
|
||||||
|
orig-mode req-mode)
|
||||||
|
mode))
|
||||||
(unless (syntax? stx)
|
(unless (syntax? stx)
|
||||||
(raise-type-error 'make-import "syntax" stx))
|
(raise-type-error 'make-import "syntax" stx))
|
||||||
(values i s path mode req-mode stx)))
|
(values i s path mode req-mode orig-mode stx)))
|
||||||
|
|
||||||
(define-struct* import-source (mod-path-stx mode)
|
(define-struct* import-source (mod-path-stx mode)
|
||||||
#:guard (lambda (path mode info)
|
#:guard (lambda (path mode info)
|
||||||
(unless (and (syntax? path)
|
(unless (and (syntax? path)
|
||||||
(module-path? (syntax->datum path)))
|
(module-path? (syntax->datum path)))
|
||||||
(raise-type-error 'make-import-source "syntax module-path" path))
|
(raise-type-error 'make-import-source "syntax module-path" path))
|
||||||
(unless (memq mode '(run syntax template label))
|
(unless (or (not mode)
|
||||||
(raise-type-error 'make-import-source "'run, 'syntax, 'template, or 'label" mode))
|
(exact-integer? mode))
|
||||||
|
(raise-type-error 'make-import-source "exact integer or #f" mode))
|
||||||
(values path mode)))
|
(values path mode)))
|
||||||
|
|
||||||
(define-values (prop:require-transformer require-transformer? require-transformer-get-proc)
|
(define-values (prop:require-transformer require-transformer? require-transformer-get-proc)
|
||||||
|
@ -69,25 +81,26 @@
|
||||||
#f
|
#f
|
||||||
"invalid module-path form"
|
"invalid module-path form"
|
||||||
stx))
|
stx))
|
||||||
(let-values ([(names et-names lt-names) (syntax-local-module-exports stx)])
|
(let ([namess (syntax-local-module-exports stx)])
|
||||||
(values
|
(values
|
||||||
(apply
|
(apply
|
||||||
append
|
append
|
||||||
(map (lambda (names mode)
|
(map (lambda (names)
|
||||||
(map (lambda (name)
|
(let ([mode (car names)])
|
||||||
(make-import (datum->syntax
|
(map (lambda (name)
|
||||||
stx
|
(make-import (datum->syntax
|
||||||
name
|
stx
|
||||||
stx)
|
name
|
||||||
name
|
stx)
|
||||||
mod-path
|
name
|
||||||
mode
|
mod-path
|
||||||
'run
|
mode
|
||||||
stx))
|
0
|
||||||
names))
|
mode
|
||||||
(list names et-names lt-names)
|
stx))
|
||||||
(list 'run 'syntax 'label)))
|
(cdr names))))
|
||||||
(list (make-import-source #'simple 'run)))))]
|
namess))
|
||||||
|
(list (make-import-source #'simple 0)))))]
|
||||||
[(id . rest)
|
[(id . rest)
|
||||||
(identifier? #'id)
|
(identifier? #'id)
|
||||||
(let ([t (syntax-local-value #'id (lambda () #f))])
|
(let ([t (syntax-local-value #'id (lambda () #f))])
|
||||||
|
|
|
@ -446,7 +446,7 @@
|
||||||
(let ([s (to-element/no-color elem)])
|
(let ([s (to-element/no-color elem)])
|
||||||
(make-delayed-element
|
(make-delayed-element
|
||||||
(lambda (renderer sec ri)
|
(lambda (renderer sec ri)
|
||||||
(let* ([tag (find-scheme-tag sec ri sig 'for-label)]
|
(let* ([tag (find-scheme-tag sec ri sig #f)]
|
||||||
[taglet (and tag (append (cadr tag) (list elem)))]
|
[taglet (and tag (append (cadr tag) (list elem)))]
|
||||||
[vtag (and tag `(sig-val ,taglet))]
|
[vtag (and tag `(sig-val ,taglet))]
|
||||||
[stag (and tag `(sig-form ,taglet))]
|
[stag (and tag `(sig-form ,taglet))]
|
||||||
|
@ -490,7 +490,7 @@
|
||||||
(lambda (c mk)
|
(lambda (c mk)
|
||||||
(make-delayed-element
|
(make-delayed-element
|
||||||
(lambda (ren p ri)
|
(lambda (ren p ri)
|
||||||
(let ([tag (find-scheme-tag p ri id/tag 'for-label)])
|
(let ([tag (find-scheme-tag p ri id/tag #f)])
|
||||||
(if tag
|
(if tag
|
||||||
(list (mk tag))
|
(list (mk tag))
|
||||||
content)))
|
content)))
|
||||||
|
@ -1851,7 +1851,7 @@
|
||||||
(list
|
(list
|
||||||
(make-link-element #f
|
(make-link-element #f
|
||||||
content
|
content
|
||||||
(or (find-scheme-tag p ri stx-id 'for-label)
|
(or (find-scheme-tag p ri stx-id #f)
|
||||||
(format "--UNDEFINED:~a--" (syntax-e stx-id))))))
|
(format "--UNDEFINED:~a--" (syntax-e stx-id))))))
|
||||||
(lambda () content)
|
(lambda () content)
|
||||||
(lambda () content))))
|
(lambda () content))))
|
||||||
|
@ -2023,15 +2023,17 @@
|
||||||
(if (path? p)
|
(if (path? p)
|
||||||
(intern-taglet (path->main-collects-relative p))
|
(intern-taglet (path->main-collects-relative p))
|
||||||
p))
|
p))
|
||||||
(cadddr b)
|
(list-ref b 3)
|
||||||
(list-ref b 5))
|
(list-ref b 4)
|
||||||
|
(list-ref b 5)
|
||||||
|
(list-ref b 6))
|
||||||
(error 'scribble "no class/interface/mixin information for identifier: ~e"
|
(error 'scribble "no class/interface/mixin information for identifier: ~e"
|
||||||
id))))
|
id))))
|
||||||
|
|
||||||
(define-serializable-struct cls/intf (name-element app-mixins super intfs methods))
|
(define-serializable-struct cls/intf (name-element app-mixins super intfs methods))
|
||||||
|
|
||||||
(define (make-inherited-table r d ri decl)
|
(define (make-inherited-table r d ri decl)
|
||||||
(let* ([start (let ([key (find-scheme-tag d ri (decl-name decl) 'for-label)])
|
(let* ([start (let ([key (find-scheme-tag d ri (decl-name decl) #f)])
|
||||||
(if key
|
(if key
|
||||||
(list (cons key (lookup-cls/intf d ri key)))
|
(list (cons key (lookup-cls/intf d ri key)))
|
||||||
null))]
|
null))]
|
||||||
|
@ -2047,7 +2049,7 @@
|
||||||
(let ([super (car supers)])
|
(let ([super (car supers)])
|
||||||
(loop (append (filter values
|
(loop (append (filter values
|
||||||
(map (lambda (i)
|
(map (lambda (i)
|
||||||
(let ([key (find-scheme-tag d ri i 'for-label)])
|
(let ([key (find-scheme-tag d ri i #f)])
|
||||||
(and key
|
(and key
|
||||||
(cons key (lookup-cls/intf d ri key)))))
|
(cons key (lookup-cls/intf d ri key)))))
|
||||||
(append
|
(append
|
||||||
|
@ -2452,14 +2454,14 @@
|
||||||
null))])
|
null))])
|
||||||
(make-delayed-element
|
(make-delayed-element
|
||||||
(lambda (r d ri)
|
(lambda (r d ri)
|
||||||
(let loop ([search (get d ri (find-scheme-tag d ri cname 'for-label))])
|
(let loop ([search (get d ri (find-scheme-tag d ri cname #f))])
|
||||||
(cond
|
(cond
|
||||||
[(null? search)
|
[(null? search)
|
||||||
(list (make-element #f '("<method not found>")))]
|
(list (make-element #f '("<method not found>")))]
|
||||||
[(not (car search))
|
[(not (car search))
|
||||||
(loop (cdr search))]
|
(loop (cdr search))]
|
||||||
[else
|
[else
|
||||||
(let* ([a-key (find-scheme-tag d ri (car search) 'for-label)]
|
(let* ([a-key (find-scheme-tag d ri (car search) #f)]
|
||||||
[v (and a-key (lookup-cls/intf d ri a-key))])
|
[v (and a-key (lookup-cls/intf d ri a-key))])
|
||||||
(if v
|
(if v
|
||||||
(if (member name (cls/intf-methods v))
|
(if (member name (cls/intf-methods v))
|
||||||
|
@ -2468,7 +2470,7 @@
|
||||||
(list (**method name a-key)
|
(list (**method name a-key)
|
||||||
" in "
|
" in "
|
||||||
(cls/intf-name-element v))))
|
(cls/intf-name-element v))))
|
||||||
(loop (append (cdr search) (get d ri (find-scheme-tag d ri (car search) 'for-label)))))
|
(loop (append (cdr search) (get d ri (find-scheme-tag d ri (car search) #f)))))
|
||||||
(loop (cdr search))))])))
|
(loop (cdr search))))])))
|
||||||
(lambda () (format "~a in ~a" (syntax-e cname) name))
|
(lambda () (format "~a in ~a" (syntax-e cname) name))
|
||||||
(lambda () (format "~a in ~a" (syntax-e cname) name)))))
|
(lambda () (format "~a in ~a" (syntax-e cname) name)))))
|
||||||
|
|
|
@ -85,7 +85,7 @@
|
||||||
(weak-box-value b))))
|
(weak-box-value b))))
|
||||||
(let ([e (make-cached-delayed-element
|
(let ([e (make-cached-delayed-element
|
||||||
(lambda (renderer sec ri)
|
(lambda (renderer sec ri)
|
||||||
(let* ([tag (find-scheme-tag sec ri c 'for-label)])
|
(let* ([tag (find-scheme-tag sec ri c #f)])
|
||||||
(if tag
|
(if tag
|
||||||
(list
|
(list
|
||||||
(case (car tag)
|
(case (car tag)
|
||||||
|
|
|
@ -36,17 +36,21 @@
|
||||||
v)))
|
v)))
|
||||||
|
|
||||||
|
|
||||||
;; mode is #f, 'for-label, or 'for-run
|
(define (find-scheme-tag part ri stx/binding phase-level)
|
||||||
(define (find-scheme-tag part ri stx/binding mode)
|
;; The phase-level argument is used only when `stx/binding'
|
||||||
|
;; is an identifier.
|
||||||
|
;;
|
||||||
|
;; Note: documentation key currently don't distinguish different
|
||||||
|
;; phase definitions of an identifier from a source module.
|
||||||
|
;; That is, there's no way to document (define x ....) differently
|
||||||
|
;; from (define-for-syntax x ...). This isn't a problem in practice,
|
||||||
|
;; because no one uses the same name for different-phase exported
|
||||||
|
;; bindings.
|
||||||
(let ([b (cond
|
(let ([b (cond
|
||||||
[(identifier? stx/binding)
|
[(identifier? stx/binding)
|
||||||
((case mode
|
(identifier-binding stx/binding phase-level)]
|
||||||
[(for-label) identifier-label-binding]
|
|
||||||
[(for-syntax) identifier-transformer-binding]
|
|
||||||
[else identifier-binding])
|
|
||||||
stx/binding)]
|
|
||||||
[(and (list? stx/binding)
|
[(and (list? stx/binding)
|
||||||
(= 6 (length stx/binding)))
|
(= 7 (length stx/binding)))
|
||||||
stx/binding]
|
stx/binding]
|
||||||
[else
|
[else
|
||||||
(and (not (symbol? (car stx/binding)))
|
(and (not (symbol? (car stx/binding)))
|
||||||
|
@ -57,15 +61,20 @@
|
||||||
(cadr stx/binding)
|
(cadr stx/binding)
|
||||||
p
|
p
|
||||||
(cadr stx/binding)
|
(cadr stx/binding)
|
||||||
#f
|
|
||||||
(if (= 2 (length stx/binding))
|
(if (= 2 (length stx/binding))
|
||||||
mode
|
0
|
||||||
(caddr stx/binding)))))])])
|
(caddr stx/binding))
|
||||||
|
(if (= 2 (length stx/binding))
|
||||||
|
0
|
||||||
|
(cadddr stx/binding))
|
||||||
|
(if (= 2 (length stx/binding))
|
||||||
|
0
|
||||||
|
(cadddr (cdr stx/binding))))))])])
|
||||||
(and
|
(and
|
||||||
(pair? b)
|
(pair? b)
|
||||||
(let ([seen (make-hash-table)]
|
(let ([seen (make-hash-table)]
|
||||||
[search-key #f])
|
[search-key #f])
|
||||||
(let loop ([queue (list (list (caddr b) (cadddr b) (eq? mode (list-ref b 5))))]
|
(let loop ([queue (list (list (caddr b) (cadddr b) (list-ref b 4) (list-ref b 5) (list-ref b 6)))]
|
||||||
[rqueue null])
|
[rqueue null])
|
||||||
(cond
|
(cond
|
||||||
[(null? queue)
|
[(null? queue)
|
||||||
|
@ -74,12 +83,14 @@
|
||||||
#f
|
#f
|
||||||
(loop (reverse rqueue) null))]
|
(loop (reverse rqueue) null))]
|
||||||
[else
|
[else
|
||||||
(let ([mod (caar queue)]
|
(let ([mod (list-ref (car queue) 0)]
|
||||||
[id (cadar queue)]
|
[id (list-ref (car queue) 1)]
|
||||||
[here? (caddar queue)]
|
[defn-phase (list-ref (car queue) 2)]
|
||||||
|
[import-phase (list-ref (car queue) 3)]
|
||||||
|
[export-phase (list-ref (car queue) 4)]
|
||||||
[queue (cdr queue)])
|
[queue (cdr queue)])
|
||||||
(let* ([rmp (module-path-index-resolve mod)]
|
(let* ([rmp (module-path-index-resolve mod)]
|
||||||
[eb (and here?
|
[eb (and (equal? defn-phase export-phase)
|
||||||
(list (let ([p (resolved-module-path-name rmp)])
|
(list (let ([p (resolved-module-path-name rmp)])
|
||||||
(if (path? p)
|
(if (path? p)
|
||||||
(intern-taglet (path->main-collects-relative p))
|
(intern-taglet (path->main-collects-relative p))
|
||||||
|
@ -106,35 +117,46 @@
|
||||||
module-info-cache
|
module-info-cache
|
||||||
rmp
|
rmp
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(let-values ([(run-vals run-stxes
|
(let-values ([(valss stxess)
|
||||||
syntax-vals syntax-stxes
|
|
||||||
label-vals label-stxes)
|
|
||||||
(module-compiled-exports
|
(module-compiled-exports
|
||||||
(get-module-code (resolved-module-path-name rmp)))])
|
(get-module-code (resolved-module-path-name rmp)))])
|
||||||
(let ([t (list (append run-vals run-stxes)
|
(let ([t
|
||||||
(append syntax-vals syntax-stxes)
|
;; Merge the two association lists:
|
||||||
(append label-vals label-stxes))])
|
(let loop ([base valss]
|
||||||
|
[stxess stxess])
|
||||||
|
(cond
|
||||||
|
[(null? stxess) base]
|
||||||
|
[(assoc (caar stxess) base)
|
||||||
|
=> (lambda (l)
|
||||||
|
(loop (cons (cons (car l)
|
||||||
|
(append (cdar stxess)
|
||||||
|
(cdr l)))
|
||||||
|
(remq l base))
|
||||||
|
(cdr stxess)))]
|
||||||
|
[else (loop (cons (car stxess)
|
||||||
|
base)
|
||||||
|
(cdr stxess))]))])
|
||||||
(hash-table-put! module-info-cache rmp t)
|
(hash-table-put! module-info-cache rmp t)
|
||||||
t))))])
|
t))))])
|
||||||
(hash-table-put! seen rmp #t)
|
(hash-table-put! seen rmp #t)
|
||||||
(let ([a (assq id (list-ref exports
|
(let ([a (assq id (let ([a (assoc export-phase exports)])
|
||||||
(if here?
|
(if a
|
||||||
0
|
(cdr a)
|
||||||
(case mode
|
null)))])
|
||||||
[(for-syntax) 1]
|
|
||||||
[(for-label) 2]
|
|
||||||
[else 0]))))])
|
|
||||||
(if a
|
(if a
|
||||||
(loop queue
|
(loop queue
|
||||||
(append (map (lambda (m)
|
(append (map (lambda (m)
|
||||||
(if (pair? m)
|
(if (pair? m)
|
||||||
(list (module-path-index-rejoin (car m) mod)
|
(list (module-path-index-rejoin (car m) mod)
|
||||||
(caddr m)
|
(list-ref m 2)
|
||||||
(or here?
|
defn-phase
|
||||||
(eq? mode (cadr m))))
|
(list-ref m 1)
|
||||||
|
(list-ref m 3))
|
||||||
(list (module-path-index-rejoin m mod)
|
(list (module-path-index-rejoin m mod)
|
||||||
id
|
id
|
||||||
here?)))
|
0
|
||||||
|
0
|
||||||
|
0)))
|
||||||
(cadr a))
|
(cadr a))
|
||||||
rqueue))
|
rqueue))
|
||||||
(error 'find-scheme-tag
|
(error 'find-scheme-tag
|
||||||
|
|
|
@ -242,37 +242,34 @@ the module's declared name.}
|
||||||
|
|
||||||
|
|
||||||
@defproc[(module-compiled-imports [compiled-module-code compiled-module-expression?])
|
@defproc[(module-compiled-imports [compiled-module-code compiled-module-expression?])
|
||||||
(values (listof module-path-index?)
|
(listof (cons/c (or/c exact-integer? false/c)
|
||||||
(listof module-path-index?)
|
(listof module-path-index?)))]{
|
||||||
(listof module-path-index?)
|
|
||||||
(listof module-path-index?))]{
|
Takes a module declaration in compiled form and returns an association
|
||||||
|
list mapping @tech{phase level} shifts (where @scheme[#f] corresponds
|
||||||
|
to a shift into the @tech{label phase level}) to module references for
|
||||||
|
the module's explicit imports.}
|
||||||
|
|
||||||
Takes a module declaration in compiled form and returns four values: a
|
|
||||||
list of module references for the module's explicit imports, a list of
|
|
||||||
module references for the module's explicit for-syntax imports, a list
|
|
||||||
of module references for the module's explicit for-template imports,
|
|
||||||
and a list of module references for the module's explicit for-label
|
|
||||||
imports.}
|
|
||||||
|
|
||||||
@defproc[(module-compiled-exports [compiled-module-code compiled-module-expression?])
|
@defproc[(module-compiled-exports [compiled-module-code compiled-module-expression?])
|
||||||
(values list? list? list? list? list? list?)]{
|
(values (listof (cons/c (or/c exact-integer? false/c) list?))
|
||||||
|
(listof (cons/c (or/c exact-integer? false/c) list?)))]
|
||||||
|
|
||||||
Returns six lists: one for the module's explicit variable exports, one
|
Returns two association lists mapping @tech{phase level} values (where
|
||||||
for the module's explicit syntax exports, one for the module's
|
@scheme[#f] corresponds to the @tech{label phase level}) to exports at
|
||||||
explicit @scheme[for-syntax] variable exports, one for the module's
|
the corresponding phase. The first association list is for exported
|
||||||
explicit @scheme[for-syntax] syntax exports, one for the module's
|
variables, and the second is for exported syntax.
|
||||||
explicit @scheme[for-label] variable exports, one for the module's
|
|
||||||
explicit @scheme[for-label] syntax exports.
|
|
||||||
|
|
||||||
Each list more precisely matches the contract
|
Each associated list more precisely matches the contract
|
||||||
|
|
||||||
@schemeblock[
|
@schemeblock[
|
||||||
(listof (list/c symbol?
|
(listof (list/c symbol?
|
||||||
(listof
|
(listof
|
||||||
(or/c module-path-index?
|
(or/c module-path-index?
|
||||||
(list/c module-path-index?
|
(list/c module-path-index?
|
||||||
(one-of/c #f 'for-syntax 'for-label)
|
(or/c exact-integer? false/c)
|
||||||
symbol?)))))
|
symbol?
|
||||||
|
(or/c exact-integer? false/c))))))
|
||||||
]
|
]
|
||||||
|
|
||||||
For each element of the list, the leading symbol is the name of the
|
For each element of the list, the leading symbol is the name of the
|
||||||
|
@ -287,12 +284,15 @@ The origin list has more than one element if the binding was imported
|
||||||
multiple times from (possibly) different sources.
|
multiple times from (possibly) different sources.
|
||||||
|
|
||||||
For each origin, a @tech{module path index} by itself means that the
|
For each origin, a @tech{module path index} by itself means that the
|
||||||
binding was imported with a plain @scheme[require] (not
|
binding was imported with a @tech{phase level} shift of @scheme[0]
|
||||||
@scheme[for-syntax] or @scheme[for-label]), and imported identifier
|
(i.e., a plain @scheme[require] without @scheme[for-meta],
|
||||||
has the same name as the re-exported name. An origin represented with
|
@scheme[for-syntax], etc.), and imported identifier has the same name
|
||||||
a list indicates explicitly the import, the import mode (plain
|
as the re-exported name. An origin represented with a list indicates
|
||||||
@scheme[require], @scheme[for-syntax], or @scheme[for-label]) and the
|
explicitly the import, the import @tech{phase level} shift (where
|
||||||
original export name of the re-exported binding.}
|
@scheme[#f] corresponds to a @scheme[for-label] import), the import
|
||||||
|
name of the re-exported binding, and the @tech{phase level} of the
|
||||||
|
import.}
|
||||||
|
|
||||||
|
|
||||||
@;------------------------------------------------------------------------
|
@;------------------------------------------------------------------------
|
||||||
@section[#:tag "dynreq"]{Dynamic Module Access}
|
@section[#:tag "dynreq"]{Dynamic Module Access}
|
||||||
|
|
|
@ -3,19 +3,30 @@
|
||||||
|
|
||||||
@title[#:tag "stxcmp"]{Syntax Object Bindings}
|
@title[#:tag "stxcmp"]{Syntax Object Bindings}
|
||||||
|
|
||||||
@defproc[(bound-identifier=? [a-id syntax?][b-id syntax?]) boolean?]{
|
@defproc[(bound-identifier=? [a-id syntax?][b-id syntax?]
|
||||||
|
[phase-level (or/c exact-integer? false/c)
|
||||||
|
(syntax-local-phase-level)])
|
||||||
|
boolean?]{
|
||||||
|
|
||||||
Returns @scheme[#t] if the identifier @scheme[a-id] would bind
|
Returns @scheme[#t] if the identifier @scheme[a-id] would bind
|
||||||
@scheme[b-id] (or vice-versa) if the identifiers were substituted in a
|
@scheme[b-id] (or vice-versa) if the identifiers were substituted in a
|
||||||
suitable expression context, @scheme[#f] otherwise.}
|
suitable expression context at the @tech{phase level} indicated by
|
||||||
|
@scheme[phase-level], @scheme[#f] otherwise. A @scheme[#f] value for
|
||||||
|
@scheme[phase-level] corresponds to the @tech{label phase level}.}
|
||||||
|
|
||||||
|
|
||||||
@defproc[(free-identifier=? [a-id syntax?][b-id syntax?]) boolean?]{
|
@defproc[(free-identifier=? [a-id syntax?][b-id syntax?]
|
||||||
|
[phase-level (or/c exact-integer? false/c)
|
||||||
|
(syntax-local-phase-level)])
|
||||||
|
boolean?]{
|
||||||
|
|
||||||
Returns @scheme[#t] if @scheme[a-id] and @scheme[b-id] access the same
|
Returns @scheme[#t] if @scheme[a-id] and @scheme[b-id] access the same
|
||||||
lexical, module, or top-level binding at @tech{phase level} 0. ``Same
|
lexical, module, or top-level binding at the @tech{phase level}
|
||||||
module binding'' means that the identifiers refer to the same original
|
indicated by @scheme[phase-level]. A @scheme[#f] value for
|
||||||
definition site, not necessarily the @scheme[require] or
|
@scheme[phase-level] corresponds to the @tech{label phase level}.
|
||||||
|
|
||||||
|
``Same module binding'' means that the identifiers refer to the same
|
||||||
|
original definition site, not necessarily the @scheme[require] or
|
||||||
@scheme[provide] site. Due to renaming in @scheme[require] and
|
@scheme[provide] site. Due to renaming in @scheme[require] and
|
||||||
@scheme[provide], the identifiers may return distinct results with
|
@scheme[provide], the identifiers may return distinct results with
|
||||||
@scheme[syntax-e].}
|
@scheme[syntax-e].}
|
||||||
|
@ -23,23 +34,15 @@ definition site, not necessarily the @scheme[require] or
|
||||||
|
|
||||||
@defproc[(free-transformer-identifier=? [a-id syntax?][b-id syntax?]) boolean?]{
|
@defproc[(free-transformer-identifier=? [a-id syntax?][b-id syntax?]) boolean?]{
|
||||||
|
|
||||||
Returns @scheme[#t] if @scheme[a-id] and @scheme[b-id] access the same
|
Same as @scheme[(free-identifier=? a-id b-id (add1 (syntax-local-phase-level)))].}
|
||||||
lexical, module, or top-level binding at @tech{phase level} 1 (see
|
|
||||||
@secref["id-model"]).}
|
|
||||||
|
|
||||||
|
|
||||||
@defproc[(free-template-identifier=? [a-id syntax?][b-id syntax?]) boolean?]{
|
@defproc[(free-template-identifier=? [a-id syntax?][b-id syntax?]) boolean?]{
|
||||||
|
|
||||||
Returns @scheme[#t] if @scheme[a-id] and @scheme[b-id] access the same
|
Same as @scheme[(free-identifier=? a-id b-id (sub1 (syntax-local-phase-level)))].}
|
||||||
lexical or module binding at @tech{phase level} -1 (see
|
|
||||||
@secref["id-model"]).}
|
|
||||||
|
|
||||||
|
|
||||||
@defproc[(free-label-identifier=? [a-id syntax?][b-id syntax?]) boolean?]{
|
@defproc[(free-label-identifier=? [a-id syntax?][b-id syntax?]) boolean?]{
|
||||||
|
|
||||||
Returns @scheme[#t] if @scheme[a-id] and @scheme[b-id] access the same
|
Same as @scheme[(free-identifier=? a-id b-id #f)].}
|
||||||
lexical or module binding at the @tech{label phase level} (see
|
|
||||||
@secref["id-model"]).}
|
|
||||||
|
|
||||||
|
|
||||||
@defproc[(check-duplicate-identifier [ids (listof identifier?)])
|
@defproc[(check-duplicate-identifier [ids (listof identifier?)])
|
||||||
|
@ -52,33 +55,41 @@ first one in @scheme[ids] that is a duplicate), otherwise the result
|
||||||
is @scheme[#f].}
|
is @scheme[#f].}
|
||||||
|
|
||||||
|
|
||||||
@defproc[(identifier-binding [id-stx syntax?])
|
@defproc[(identifier-binding [id-stx syntax?]
|
||||||
|
[phase-level (or/c exact-integer? false/c)
|
||||||
|
(syntax-local-phase-level)])
|
||||||
(or/c (one-of 'lexical #f)
|
(or/c (one-of 'lexical #f)
|
||||||
(listof module-path-index?
|
(listof module-path-index?
|
||||||
symbol?
|
symbol?
|
||||||
module-path-index?
|
module-path-index?
|
||||||
symbol?
|
symbol?
|
||||||
boolean?
|
(one-of/c 0 1)
|
||||||
(one-of/c #f 'for-syntax 'for-template)))]{
|
(or/c exact-integer? false/c)
|
||||||
|
(or/c exact-integer? false/c)))]{
|
||||||
|
|
||||||
Returns one of three kinds of values, depending on the binding of
|
Returns one of three kinds of values, depending on the binding of
|
||||||
@scheme[id-stx] at @tech{phase level} 0:
|
@scheme[id-stx] at the @tech{phase level} indicated by
|
||||||
|
@scheme[phase-level] (where a @scheme[#f] value for
|
||||||
|
@scheme[phase-level] corresponds to the @tech{label phase level}):
|
||||||
|
|
||||||
@itemize{
|
@itemize{
|
||||||
|
|
||||||
@item{The result is @indexed-scheme['lexical] if @scheme[id-stx]
|
@item{The result is @indexed-scheme['lexical] if @scheme[id-stx]
|
||||||
has a @tech{local binding}.}
|
has a @tech{local binding}. If @scheme['lexical] is produced for
|
||||||
|
any @scheme[phase-level] value, then it is produced for all
|
||||||
|
@scheme[phase-level] values.}
|
||||||
|
|
||||||
@item{The result is a list of six items when @scheme[id-stx]
|
@item{The result is a list of six items when @scheme[id-stx]
|
||||||
has a @tech{module binding}: @scheme[(list source-mod source-id
|
has a @tech{module binding}: @scheme[(list _source-mod _source-id
|
||||||
nominal-source-mod nominal-source-id et? mode)].
|
_nominal-source-mod _nominal-source-id _source-phase _import-phase
|
||||||
|
_nominal-export-phase)].
|
||||||
|
|
||||||
@itemize{
|
@itemize{
|
||||||
|
|
||||||
@item{@scheme[source-mod] is a module path index (see
|
@item{@scheme[_source-mod] is a module path index (see
|
||||||
@secref["modpathidx"]) that indicates the defining module.}
|
@secref["modpathidx"]) that indicates the defining module.}
|
||||||
|
|
||||||
@item{@scheme[source-id] is a symbol for the identifier's name
|
@item{@scheme[_source-id] is a symbol for the identifier's name
|
||||||
at its definition site in the source module. This can be
|
at its definition site in the source module. This can be
|
||||||
different from the local name returned by
|
different from the local name returned by
|
||||||
@scheme[syntax->datum] for several reasons: the identifier is
|
@scheme[syntax->datum] for several reasons: the identifier is
|
||||||
|
@ -86,27 +97,32 @@ Returns one of three kinds of values, depending on the binding of
|
||||||
implicitly renamed because the identifier (or its import) was
|
implicitly renamed because the identifier (or its import) was
|
||||||
generated by a macro invocation.}
|
generated by a macro invocation.}
|
||||||
|
|
||||||
@item{@scheme[nominal-source-mod] is a module path index (see
|
@item{@scheme[_nominal-source-mod] is a module path index (see
|
||||||
@secref["modpathidx"]) that indicates the module
|
@secref["modpathidx"]) that indicates the module
|
||||||
@scheme[require]d into the context of @scheme[id-stx] to
|
@scheme[require]d into the context of @scheme[id-stx] to
|
||||||
provide its binding. It can be different from
|
provide its binding. It can be different from
|
||||||
@scheme[source-mod] due to a re-export in
|
@scheme[_source-mod] due to a re-export in
|
||||||
@scheme[nominal-source-mod] of some imported identifier.}
|
@scheme[_nominal-source-mod] of some imported identifier. If
|
||||||
|
the same binding is imported in multiple ways, an arbitrary
|
||||||
|
representative is chosen.}
|
||||||
|
|
||||||
@item{@scheme[nominal-source-id] is a symbol for the
|
@item{@scheme[_nominal-source-id] is a symbol for the
|
||||||
identifier's name as exported by
|
identifier's name as exported by
|
||||||
@scheme[nominal-source-mod]. It can be different from
|
@scheme[_nominal-source-mod]. It can be different from
|
||||||
@scheme[source-id] due to a renaming @scheme[provide], even if
|
@scheme[_source-id] due to a renaming @scheme[provide], even if
|
||||||
@scheme[source-mod] and @scheme[nominal-source-mod] are the
|
@scheme[_source-mod] and @scheme[_nominal-source-mod] are the
|
||||||
same.}
|
same.}
|
||||||
|
|
||||||
@item{@scheme[et?] is @scheme[#t] if the source definition is
|
@item{@scheme[_source-phase] is @scheme[1] if the source
|
||||||
for-syntax, @scheme[#f] otherwise.}
|
definition is for-syntax, @scheme[0] otherwise.}
|
||||||
|
|
||||||
@item{@scheme[mode] is @scheme[#f] if the binding import is a
|
@item{@scheme[_import-phase] is @scheme[0] if the binding
|
||||||
plain @scheme[require], @scheme['for-syntax] if it is from a
|
import of @scheme[_nominal-source-mode] is a plain
|
||||||
@scheme[for-syntax] import, or @scheme['for-template] if it is
|
@scheme[require], @scheme[1] if it is from a
|
||||||
from a @scheme[for-template] import.}
|
@scheme[for-syntax] import, etc.}
|
||||||
|
|
||||||
|
@item{@scheme[_nominal-export-phase] is the @tech{phase level}
|
||||||
|
of the export from @scheme[_nominal-source-mod].}
|
||||||
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
@ -121,17 +137,11 @@ Returns one of three kinds of values, depending on the binding of
|
||||||
symbol?
|
symbol?
|
||||||
module-path-index?
|
module-path-index?
|
||||||
symbol?
|
symbol?
|
||||||
boolean?
|
(one-of/c 0 1)
|
||||||
(one-of/c #f 'for-syntax 'for-template)))]{
|
(or/c exact-integer? false/c)
|
||||||
|
(or/c exact-integer? false/c)))]{
|
||||||
|
|
||||||
Like @scheme[identifier-binding], but that the reported information is
|
Same as @scheme[(identifier-binding id-stx (add1 (syntax-local-phase-level)))].}
|
||||||
for the identifier's binding in @tech{phase level} 1 (see
|
|
||||||
@secref["id-model"]).
|
|
||||||
|
|
||||||
If the result is @scheme['lexical] for either of
|
|
||||||
@scheme[identifier-binding] or
|
|
||||||
@scheme[identifier-transformer-binding], then the result is always
|
|
||||||
@scheme['lexical] for both.}
|
|
||||||
|
|
||||||
|
|
||||||
@defproc[(identifier-template-binding [id-stx syntax?])
|
@defproc[(identifier-template-binding [id-stx syntax?])
|
||||||
|
@ -140,32 +150,22 @@ If the result is @scheme['lexical] for either of
|
||||||
symbol?
|
symbol?
|
||||||
module-path-index?
|
module-path-index?
|
||||||
symbol?
|
symbol?
|
||||||
boolean?
|
(one-of/c 0 1)
|
||||||
(one-of/c #f 'for-syntax 'for-template)))]{
|
(or/c exact-integer? false/c)
|
||||||
|
(or/c exact-integer? false/c)))]{
|
||||||
|
|
||||||
Like @scheme[identifier-binding], but that the reported information is
|
Same as @scheme[(identifier-binding id-stx (sub1 (syntax-local-phase-level)))].}
|
||||||
for the identifier's binding in @tech{phase level} -1 (see
|
|
||||||
@secref["id-model"]).
|
|
||||||
|
|
||||||
If the result is @scheme['lexical] for either of
|
|
||||||
@scheme[identifier-binding] or
|
|
||||||
@scheme[identifier-template-binding], then the result is always
|
|
||||||
@scheme['lexical] for both.}
|
|
||||||
|
|
||||||
|
|
||||||
@defproc[(identifier-label-binding [id-stx syntax?])
|
@defproc[(identifier-label-binding [id-stx syntax?])
|
||||||
(or/c false/c
|
(or/c (one-of 'lexical #f)
|
||||||
(listof (or/c module-path-index? symbol?)
|
(listof module-path-index?
|
||||||
symbol?
|
symbol?
|
||||||
(or/c module-path-index? symbol?)
|
module-path-index?
|
||||||
symbol?
|
symbol?
|
||||||
boolean?
|
(one-of/c 0 1)
|
||||||
(one-of/c #f 'for-label)))]{
|
(or/c exact-integer? false/c)
|
||||||
|
(or/c exact-integer? false/c)))]{
|
||||||
|
|
||||||
Like @scheme[identifier-binding], but that the reported information is
|
Same as @scheme[(identifier-binding id-stx #f)].}
|
||||||
for the identifier's binding in the @tech{label phase level} (see
|
|
||||||
@secref["id-model"]).
|
|
||||||
|
|
||||||
Unlike @scheme[identifier-binding], the result cannot be
|
|
||||||
@scheme['lexical].}
|
|
||||||
|
|
||||||
|
|
|
@ -356,6 +356,13 @@ contexts.
|
||||||
@transform-time[]}
|
@transform-time[]}
|
||||||
|
|
||||||
|
|
||||||
|
@defproc[(syntax-local-phase-level) (or/c exact-integer? false/c)]{
|
||||||
|
|
||||||
|
During the dynamic extent of a @tech{syntax transformer} application
|
||||||
|
by the expander, the result is the @tech{phase level} of the form
|
||||||
|
being expanded. Otherwise, the result is @scheme[0].}
|
||||||
|
|
||||||
|
|
||||||
@defproc[(syntax-local-module-exports [mod-path module-path?])
|
@defproc[(syntax-local-module-exports [mod-path module-path?])
|
||||||
(values (listof symbol?) (listof symbol?) (listof symbol?))]{
|
(values (listof symbol?) (listof symbol?) (listof symbol?))]{
|
||||||
|
|
||||||
|
@ -558,9 +565,10 @@ Returns @scheme[#t] if @scheme[v] has the
|
||||||
@defstruct[import ([local-id identifier?]
|
@defstruct[import ([local-id identifier?]
|
||||||
[src-sym symbol?]
|
[src-sym symbol?]
|
||||||
[src-mod-path module-path?]
|
[src-mod-path module-path?]
|
||||||
[orig-stx syntax?]
|
[mode (or/c exact-integer? false/c)]
|
||||||
[mode (one-of/c 'run 'syntax 'template 'label)]
|
[req-mode (or/c exact-integer? false/c)]
|
||||||
[req-mode (one-of/c 'run 'syntax 'template 'label)])]{
|
[orig-mode (or/c exact-integer? false/c)]
|
||||||
|
[orig-stx syntax?])]{
|
||||||
|
|
||||||
A structure representing a single imported identifier:
|
A structure representing a single imported identifier:
|
||||||
|
|
||||||
|
@ -582,11 +590,10 @@ A structure representing a single imported identifier:
|
||||||
importing module.}
|
importing module.}
|
||||||
|
|
||||||
@item{@scheme[req-mode] --- the @tech{phase level} shift of the
|
@item{@scheme[req-mode] --- the @tech{phase level} shift of the
|
||||||
import relative to the exporting module. Since the underlying
|
import relative to the exporting module.}
|
||||||
module system currently allows only for-run @scheme[require]s
|
|
||||||
to import into other @tech{phase levels}, if this value is not
|
@item{@scheme[orig-mode] --- the @tech{phase level} of the
|
||||||
@scheme['run], then it must match the @scheme[mode] field's
|
binding as exported by the exporting module.}
|
||||||
value.}
|
|
||||||
|
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
@ -594,7 +601,7 @@ A structure representing a single imported identifier:
|
||||||
@defstruct[import-source ([mod-path-stx (and/c syntax?
|
@defstruct[import-source ([mod-path-stx (and/c syntax?
|
||||||
(lambda (x)
|
(lambda (x)
|
||||||
(module-path? (syntax->datum x))))]
|
(module-path? (syntax->datum x))))]
|
||||||
[mode (one-of/c 'run 'syntax 'template 'label)])]{
|
[mode (or/c exact-integer? false/c)])]{
|
||||||
|
|
||||||
A structure representing an imported module, which must be
|
A structure representing an imported module, which must be
|
||||||
instantiated or visited even if no binding is imported into a module.
|
instantiated or visited even if no binding is imported into a module.
|
||||||
|
@ -630,7 +637,7 @@ If the derived form contains a sub-form that is a
|
||||||
transform the sub-@scheme[_provide-spec] to a lists of exports.
|
transform the sub-@scheme[_provide-spec] to a lists of exports.
|
||||||
|
|
||||||
|
|
||||||
@defproc[(expand-export [stx syntax?] [modes (listof (one-of/c 'run 'syntax 'label))])
|
@defproc[(expand-export [stx syntax?] [modes (listof (or/c exact-integer? false/c))])
|
||||||
(listof export?)]{
|
(listof export?)]{
|
||||||
|
|
||||||
Expands the given @scheme[_provide-spec] to a list of exports. The
|
Expands the given @scheme[_provide-spec] to a list of exports. The
|
||||||
|
@ -638,10 +645,10 @@ Expands the given @scheme[_provide-spec] to a list of exports. The
|
||||||
sub-@scheme[_provide-specs]; for example, an identifier refers to a
|
sub-@scheme[_provide-specs]; for example, an identifier refers to a
|
||||||
@tech{phase level} 0 binding unless the @scheme[modes] list specifies
|
@tech{phase level} 0 binding unless the @scheme[modes] list specifies
|
||||||
otherwise. Normally, @scheme[modes] is either empty or contains a
|
otherwise. Normally, @scheme[modes] is either empty or contains a
|
||||||
single symbol.}
|
single element.}
|
||||||
|
|
||||||
|
|
||||||
@defproc[(make-provide-transformer [proc (syntax? (listof (one-of/c 'run 'syntax 'label))
|
@defproc[(make-provide-transformer [proc (syntax? (listof (or/c exact-integer? false/c))
|
||||||
. -> . (listof export?))])
|
. -> . (listof export?))])
|
||||||
provide-transformer?]{
|
provide-transformer?]{
|
||||||
|
|
||||||
|
@ -667,7 +674,7 @@ Returns @scheme[#t] if @scheme[v] has the
|
||||||
[out-sym symbol?]
|
[out-sym symbol?]
|
||||||
[orig-stx syntax?]
|
[orig-stx syntax?]
|
||||||
[protect? any/c]
|
[protect? any/c]
|
||||||
[mode (one-of/c 'run 'syntax 'label)])]{
|
[mode (or/c exact-integer? false/c)])]{
|
||||||
|
|
||||||
A structure representing a single imported identifier:
|
A structure representing a single imported identifier:
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@ run time of the enclosing module (or the run time of top-level
|
||||||
expression). Bindings in @tech{phase level} 0 constitute the
|
expression). Bindings in @tech{phase level} 0 constitute the
|
||||||
@deftech{base environment}. @tech{Phase level} 1 corresponds to the
|
@deftech{base environment}. @tech{Phase level} 1 corresponds to the
|
||||||
time during which the enclosing module (or top-level expression) is
|
time during which the enclosing module (or top-level expression) is
|
||||||
expanded; bindings in @tech{phase level} 0 constitute the
|
expanded; bindings in @tech{phase level} 1 constitute the
|
||||||
@deftech{transformer environment}. Phase level -1 corresponds to the
|
@deftech{transformer environment}. Phase level -1 corresponds to the
|
||||||
run time of a different module for which the enclosing module is
|
run time of a different module for which the enclosing module is
|
||||||
imported for use at @tech{phase level} 1 (relative to the importing
|
imported for use at @tech{phase level} 1 (relative to the importing
|
||||||
|
@ -385,20 +385,21 @@ core syntactic forms are encountered:
|
||||||
@tech{phase level}s specified by the exporting modules:
|
@tech{phase level}s specified by the exporting modules:
|
||||||
@tech{phase level} 0 for each normal @scheme[provide],
|
@tech{phase level} 0 for each normal @scheme[provide],
|
||||||
@tech{phase level} 1 for each @scheme[for-syntax]
|
@tech{phase level} 1 for each @scheme[for-syntax]
|
||||||
@scheme[provide], and the @tech{label phase level} for each
|
@scheme[provide], and so on. The @scheme[for-meta]
|
||||||
@scheme[for-label] @scheme[provide].
|
@scheme[provide] form allows exports at an arbitrary
|
||||||
|
@tech{phase level} (as long as a binding exists within the
|
||||||
|
module at the @tech{phase level}).
|
||||||
|
|
||||||
A @scheme[for-syntax] sub-form within @scheme[require] imports
|
A @scheme[for-syntax] sub-form within @scheme[require] imports
|
||||||
only @tech{phase level} 0 exports from the specified modules,
|
similarly, but the resulting bindings have a @tech{phase level}
|
||||||
but the resulting bindings are for @tech{phase level} 1.
|
that is one more than the exported @tech{phase levels}, when
|
||||||
|
exports for the @tech{label phase level} are still imported at
|
||||||
A @scheme[for-template] sub-form within @scheme[require] imports
|
the @tech{label phase level}. More generally, a
|
||||||
only @tech{phase level} 0 exports from the specified modules,
|
@scheme[for-meta] sub-form within @scheme[require] imports with
|
||||||
but the resulting bindings are for @tech{phase level} -1.
|
the specified @tech{phase level} shift; if the specified shift
|
||||||
|
is @scheme[#f], or if @scheme[for-label] is used to import,
|
||||||
A @scheme[for-label] sub-form within @scheme[require] imports
|
then all bindings are imported into the @tech{label phase
|
||||||
only @tech{phase level} 0 exports from the specified modules,
|
level}.}
|
||||||
but the resulting bindings are for the @tech{label phase level}.}
|
|
||||||
|
|
||||||
@item{When a @scheme[define], @scheme[define-values],
|
@item{When a @scheme[define], @scheme[define-values],
|
||||||
@scheme[define-syntax], or @scheme[define-syntaxes] form is
|
@scheme[define-syntax], or @scheme[define-syntaxes] form is
|
||||||
|
|
|
@ -1238,16 +1238,18 @@ Legal only in a @tech{module begin context}, and handled by the
|
||||||
@guideintro["module-require"]{@scheme[require]}
|
@guideintro["module-require"]{@scheme[require]}
|
||||||
|
|
||||||
@defform/subs[#:literals (only-in prefix-in except-in rename-in lib file planet + - =
|
@defform/subs[#:literals (only-in prefix-in except-in rename-in lib file planet + - =
|
||||||
for-syntax for-template for-label quote)
|
for-syntax for-template for-label for-meta only-meta-in quote)
|
||||||
(require require-spec ...)
|
(require require-spec ...)
|
||||||
([require-spec module-path
|
([require-spec module-path
|
||||||
(only-in require-spec id-maybe-renamed ...)
|
(only-in require-spec id-maybe-renamed ...)
|
||||||
(except-in require-spec id ...)
|
(except-in require-spec id ...)
|
||||||
(prefix-in prefix-id require-spec)
|
(prefix-in prefix-id require-spec)
|
||||||
(rename-in require-spec [orig-id bind-id] ...)
|
(rename-in require-spec [orig-id bind-id] ...)
|
||||||
|
(only-meta-in require-spec ...)
|
||||||
(for-syntax require-spec ...)
|
(for-syntax require-spec ...)
|
||||||
(for-template require-spec ...)
|
(for-template require-spec ...)
|
||||||
(for-label require-spec ...)
|
(for-label require-spec ...)
|
||||||
|
(for-meta phase-level require-spec ...)
|
||||||
derived-require-spec]
|
derived-require-spec]
|
||||||
[module-path (#,(scheme quote) id)
|
[module-path (#,(scheme quote) id)
|
||||||
rel-string
|
rel-string
|
||||||
|
@ -1259,6 +1261,7 @@ Legal only in a @tech{module begin context}, and handled by the
|
||||||
rel-string ...)]
|
rel-string ...)]
|
||||||
[id-maybe-renamed id
|
[id-maybe-renamed id
|
||||||
[orig-id bind-id]]
|
[orig-id bind-id]]
|
||||||
|
[phase-level exact-integer #f]
|
||||||
[vers nat
|
[vers nat
|
||||||
(nat nat)
|
(nat nat)
|
||||||
(= nat)
|
(= nat)
|
||||||
|
@ -1316,22 +1319,29 @@ pre-defined forms are as follows.
|
||||||
@scheme[orig-id] is not in the set that @scheme[require-spec]
|
@scheme[orig-id] is not in the set that @scheme[require-spec]
|
||||||
describes, a syntax error is reported.}
|
describes, a syntax error is reported.}
|
||||||
|
|
||||||
|
@defsubform[(only-meta-in phase-level require-spec ...)]{
|
||||||
|
Like the combination of @scheme[require-spec]s, but removing any
|
||||||
|
binding that is not for @scheme[phase-level], where @scheme[#f] for
|
||||||
|
@scheme[phase-level] corresponds to the @tech{label phase level}.}
|
||||||
|
|
||||||
|
@specsubform[#:literals (for-meta)
|
||||||
|
(for-meta phase-level require-spec ...)]{Like the combination of
|
||||||
|
@scheme[require-spec]s, but constrained each binding specified by
|
||||||
|
each @scheme[require-spec] is shifted by @scheme[phase-level]. The
|
||||||
|
@tech{label phase level} corresponds to @scheme[#f], and a shifting
|
||||||
|
combination that involves @scheme[#f] produces @scheme[#f].}
|
||||||
|
|
||||||
@specsubform[#:literals (for-syntax)
|
@specsubform[#:literals (for-syntax)
|
||||||
(for-syntax require-spec ...)]{Like the combination of
|
(for-syntax require-spec ...)]{Same as
|
||||||
@scheme[require-spec]s, but constrained to imports specified as
|
@scheme[(for-meta 1 require-spec ...)].}
|
||||||
@tech{phase level} 0 imports, each shifted to a @tech{phase level} 1
|
|
||||||
binding. A @scheme[for-syntax] form cannot appear within a
|
|
||||||
@scheme[for-syntax], @scheme[for-template], or @scheme[for-label]
|
|
||||||
form.}
|
|
||||||
|
|
||||||
@specsubform[#:literals (for-template)
|
@specsubform[#:literals (for-template)
|
||||||
(for-template require-spec ...)]{Analogous to
|
(for-template require-spec ...)]{Same as
|
||||||
@scheme[for-syntax-spec], but shifts bindings to @tech{phase level} -1.}
|
@scheme[(for-meta -1 require-spec ...)].}
|
||||||
|
|
||||||
@specsubform[#:literals (for-label)
|
@specsubform[#:literals (for-label)
|
||||||
(for-label require-spec ...)]{Analogous to
|
(for-label require-spec ...)]{Same as
|
||||||
@scheme[for-syntax-spec], but shifts bindings to the @tech{label
|
@scheme[(for-meta #f require-spec ...)].}
|
||||||
phase level}.}
|
|
||||||
|
|
||||||
@specsubform[derived-require-spec]{See @secref["require-trans"] for
|
@specsubform[derived-require-spec]{See @secref["require-trans"] for
|
||||||
information on expanding the set of @scheme[require-spec] forms.}
|
information on expanding the set of @scheme[require-spec] forms.}
|
||||||
|
@ -1427,8 +1437,8 @@ an identifier can be either imported or defined for a given
|
||||||
@guideintro["module-provide"]{@scheme[provide]}
|
@guideintro["module-provide"]{@scheme[provide]}
|
||||||
|
|
||||||
@defform/subs[#:literals (protect-out all-defined-out all-from-out rename-out
|
@defform/subs[#:literals (protect-out all-defined-out all-from-out rename-out
|
||||||
except-out prefix-out struct-out
|
except-out prefix-out struct-out for-meta
|
||||||
for-syntax for-label)
|
for-syntax for-label for-template)
|
||||||
(provide provide-spec ...)
|
(provide provide-spec ...)
|
||||||
([provide-spec id
|
([provide-spec id
|
||||||
(all-defined-out)
|
(all-defined-out)
|
||||||
|
@ -1438,7 +1448,12 @@ an identifier can be either imported or defined for a given
|
||||||
(prefix-out prefix-id provide-spec)
|
(prefix-out prefix-id provide-spec)
|
||||||
(struct-out id)
|
(struct-out id)
|
||||||
(protect-out provide-spec ...)
|
(protect-out provide-spec ...)
|
||||||
derived-provide-spec])]{
|
(for-meta phase-level provide-spec ...)
|
||||||
|
(for-syntax provide-spec ...)
|
||||||
|
(for-template provide-spec ...)
|
||||||
|
(for-label provide-spec ...)
|
||||||
|
derived-provide-spec]
|
||||||
|
[phase-level exact-integer #f])]{
|
||||||
|
|
||||||
Declares exports from a module. A @scheme[provide] form must appear in
|
Declares exports from a module. A @scheme[provide] form must appear in
|
||||||
a @tech{module context} or a @tech{module-begin context}.
|
a @tech{module context} or a @tech{module-begin context}.
|
||||||
|
@ -1514,19 +1529,27 @@ pre-defined forms are as follows.
|
||||||
@secref["modprotect"]. The @scheme[provide-spec] must specify only
|
@secref["modprotect"]. The @scheme[provide-spec] must specify only
|
||||||
bindings that are defined within the exporting module.}
|
bindings that are defined within the exporting module.}
|
||||||
|
|
||||||
@specsubform[#:literals (for-syntax)
|
@specsubform[#:literals (for-meta)
|
||||||
(for-syntax provide-spec ...)]{ Like the union of the
|
(for-meta phase-level provide-spec ...)]{ Like the union of the
|
||||||
@scheme[provide-spec]s, but adjusted to apply to @tech{phase level}
|
@scheme[provide-spec]s, but adjusted to apply to @tech{phase level}
|
||||||
1. In particular, an @scheme[id] or @scheme[rename-out] formas a
|
specified by @scheme[phase-level] (where @scheme[#f] corresponds to the
|
||||||
@scheme[provide-spec] refers to a @tech{phase-level}-1 binding, an
|
@tech{label phase level}). In particular, an @scheme[id] or @scheme[rename-out] form as
|
||||||
@scheme[all-define-out] exports only @tech{phase-level}-1
|
a @scheme[provide-spec] refers to a binding at @scheme[phase-level], an
|
||||||
definitions, and an @scheme[all-from-out] exports only bindings
|
@scheme[all-define-out] exports only @scheme[phase-level]
|
||||||
imported with a shift to @tech{phase level} 1.}
|
definitions, and an @scheme[all-from-out] exports bindings
|
||||||
|
imported with a shift by @scheme[phase-level].}
|
||||||
|
|
||||||
@specsubform[#:literals (for-label)
|
@specsubform[#:literals (for-syntax)
|
||||||
(for-label provide-spec ...)]{Analogous to
|
(for-syntax provide-spec ...)]{Same as
|
||||||
@scheme[for-syntax], adjusting each @scheme[provide-spec] to the
|
@scheme[(for-meta 1 provide-spec ...)].}
|
||||||
@tech{label phase level}.}
|
|
||||||
|
@specsubform[#:literals (for-template)
|
||||||
|
(for-template provide-spec ...)]{Same as
|
||||||
|
@scheme[(for-meta -1 provide-spec ...)].}
|
||||||
|
|
||||||
|
@specsubform[#:literals (for-label)
|
||||||
|
(for-label provide-spec ...)]{Same as
|
||||||
|
@scheme[(for-meta #f provide-spec ...)].}
|
||||||
|
|
||||||
@specsubform[derived-provide-spec]{See @secref["provide-trans"] for
|
@specsubform[derived-provide-spec]{See @secref["provide-trans"] for
|
||||||
information on expanding the set of @scheme[provide-spec] forms.}
|
information on expanding the set of @scheme[provide-spec] forms.}
|
||||||
|
@ -1536,15 +1559,20 @@ export name, though the same binding can be specified with the
|
||||||
multiple symbolic names.}
|
multiple symbolic names.}
|
||||||
|
|
||||||
|
|
||||||
|
@defform[(for-meta require-spec ...)]{See @scheme[require] and @scheme[provide].}
|
||||||
@defform[(for-syntax require-spec ...)]{See @scheme[require] and @scheme[provide].}
|
@defform[(for-syntax require-spec ...)]{See @scheme[require] and @scheme[provide].}
|
||||||
@defform[(for-template require-spec ...)]{See @scheme[require].}
|
@defform[(for-template require-spec ...)]{See @scheme[require] and @scheme[provide].}
|
||||||
@defform[(for-label require-spec ...)]{See @scheme[require] and @scheme[provide].}
|
@defform[(for-label require-spec ...)]{See @scheme[require] and @scheme[provide].}
|
||||||
|
|
||||||
@defform/subs[(#%require raw-require-spec ...)
|
@defform/subs[(#%require raw-require-spec ...)
|
||||||
([raw-require-spec phaseless-require-spec
|
([raw-require-spec phaseless-spec
|
||||||
|
(#,(schemeidfont "for-meta") phase-level phaseless-spec ...)
|
||||||
(#,(schemeidfont "for-syntax") phaseless-spec ...)
|
(#,(schemeidfont "for-syntax") phaseless-spec ...)
|
||||||
(#,(schemeidfont "for-template") phaseless-spec ...)
|
(#,(schemeidfont "for-template") phaseless-spec ...)
|
||||||
(#,(schemeidfont "for-label") phaseless-spec ...)]
|
(#,(schemeidfont "for-label") phaseless-spec ...)
|
||||||
|
(#,(schemeidfont "just-meta") phase-level raw-require-spec ...)]
|
||||||
|
[phase-level exact-integer
|
||||||
|
#f]
|
||||||
[phaseless-spec raw-module-path
|
[phaseless-spec raw-module-path
|
||||||
(#,(schemeidfont "only") rw-module-path id ...)
|
(#,(schemeidfont "only") rw-module-path id ...)
|
||||||
(#,(schemeidfont "prefix") prefix-id raw-module-path)
|
(#,(schemeidfont "prefix") prefix-id raw-module-path)
|
||||||
|
@ -1565,7 +1593,9 @@ The primitive import form, to which @scheme[require] expands. A
|
||||||
@scheme[require] form, except that the syntax is more constrained, not
|
@scheme[require] form, except that the syntax is more constrained, not
|
||||||
composable, and not extensible. Also, sub-form names like
|
composable, and not extensible. Also, sub-form names like
|
||||||
@schemeidfont{for-syntax} and @schemeidfont{lib} are recognized
|
@schemeidfont{for-syntax} and @schemeidfont{lib} are recognized
|
||||||
symbolically, instead of via bindings.
|
symbolically, instead of via bindings. Although not formalized in the
|
||||||
|
grammar above, a @schemeidfont{just-meta} form cannot appear within a
|
||||||
|
@schemeidfont{just-meta} form.
|
||||||
|
|
||||||
Each @scheme[raw-require-spec] corresponds to the obvious
|
Each @scheme[raw-require-spec] corresponds to the obvious
|
||||||
@scheme[_require-spec], but the @schemeidfont{rename} sub-form has the
|
@scheme[_require-spec], but the @schemeidfont{rename} sub-form has the
|
||||||
|
@ -1579,9 +1609,12 @@ where the lexical context of the @scheme[local-id] is preserved.}
|
||||||
|
|
||||||
@defform/subs[(#%provide raw-provide-spec ...)
|
@defform/subs[(#%provide raw-provide-spec ...)
|
||||||
([raw-provide-spec phaseless-spec
|
([raw-provide-spec phaseless-spec
|
||||||
|
(#,(schemeidfont "for-meta") phase-level phaseless-spec)
|
||||||
(#,(schemeidfont "for-syntax") phaseless-spec)
|
(#,(schemeidfont "for-syntax") phaseless-spec)
|
||||||
(#,(schemeidfont "for-label") phaseless-spec)
|
(#,(schemeidfont "for-label") phaseless-spec)
|
||||||
(#,(schemeidfont "protect") raw-provide-spec)]
|
(#,(schemeidfont "protect") raw-provide-spec)]
|
||||||
|
[phase-level exact-integer
|
||||||
|
#f]
|
||||||
[phaseless-spec id
|
[phaseless-spec id
|
||||||
(#,(schemeidfont "rename") local-id export-id)
|
(#,(schemeidfont "rename") local-id export-id)
|
||||||
(#,(schemeidfont "struct") struct-id (field-id ...))
|
(#,(schemeidfont "struct") struct-id (field-id ...))
|
||||||
|
|
|
@ -49,15 +49,18 @@ get all cross-reference information for installed documentation.}
|
||||||
symbol?
|
symbol?
|
||||||
module-path-index?
|
module-path-index?
|
||||||
symbol?
|
symbol?
|
||||||
boolean?
|
(one-of/c 0 1)
|
||||||
(one-of/c #f 'for-syntax 'for-label))
|
(or/c exact-integer? false/c)
|
||||||
|
(or/c exact-integer? false/c))
|
||||||
(list/c (or/c module-path?
|
(list/c (or/c module-path?
|
||||||
module-path-index?
|
module-path-index?
|
||||||
path?
|
path?
|
||||||
resolved-module-path?)
|
resolved-module-path?)
|
||||||
symbol?
|
symbol?
|
||||||
(one-of/c #f 'for-syntax 'for-label)))]
|
(one-of/c 0 1)
|
||||||
[mode (one-of/c #f 'for-syntax 'for-label)])
|
(or/c exact-integer? false/c)
|
||||||
|
(or/c exact-integer? false/c)))]
|
||||||
|
[mode (or/c exact-integer? false/c)])
|
||||||
(or/c tag? false/c)]{
|
(or/c tag? false/c)]{
|
||||||
|
|
||||||
Locates a tag in @scheme[xref] that documents a module export. The
|
Locates a tag in @scheme[xref] that documents a module export. The
|
||||||
|
@ -68,35 +71,27 @@ either for the specified module or, if the exported name is
|
||||||
re-exported from other other module, for the other module
|
re-exported from other other module, for the other module
|
||||||
(transitively).
|
(transitively).
|
||||||
|
|
||||||
The @scheme[mode] argument specifies more information about the
|
The @scheme[mode] argument specifies the relevant phase level for the
|
||||||
binding: whether it refers to a normal binding, a @scheme[for-syntax]
|
binding. The @scheme[binding] is specified in one of four ways:
|
||||||
binding, or a @scheme[for-label] binding.
|
|
||||||
|
|
||||||
The @scheme[binding] is specified in one of four ways:
|
|
||||||
|
|
||||||
@itemize{
|
@itemize{
|
||||||
|
|
||||||
@item{If @scheme[binding] is an identifier, then
|
@item{If @scheme[binding] is an identifier, then
|
||||||
@scheme[identifier-binding],
|
@scheme[identifier-binding] is used with @scheme[mode] to
|
||||||
@scheme[identifier-transformer-binding], or
|
determine the binding.}
|
||||||
@scheme[identifier-label-binding] is used to determine the
|
|
||||||
binding, depending on the value of @scheme[mode].}
|
|
||||||
|
|
||||||
@item{If @scheme[binding] is a two-element list, then the first
|
@item{If @scheme[binding] is a two-element list, then the first
|
||||||
element provides the exporting module and the second the
|
element provides the exporting module and the second the
|
||||||
exported name. The @scheme[mode] argument is effectively
|
exported name. The @scheme[mode] argument is effectively
|
||||||
ignored.}
|
ignored.}
|
||||||
|
|
||||||
@item{If @scheme[binding] is a six-element list, then it corresponds
|
@item{If @scheme[binding] is a seven-element list, then it corresponds
|
||||||
to a result from @scheme[identifier-binding],
|
to a result from @scheme[identifier-binding] using
|
||||||
@scheme[identifier-transformer-binding], or
|
|
||||||
@scheme[identifier-label-binding], depending on the value of
|
|
||||||
@scheme[mode].}
|
@scheme[mode].}
|
||||||
|
|
||||||
@item{If @scheme[binding] is a three-element list, then the first
|
@item{If @scheme[binding] is a five-element list, then the first
|
||||||
element is as for the 2-element-list case, the second element
|
element is as for the two-element-list case, and the remain
|
||||||
is like the fourth element of the six-element case, and the
|
elements are as in the last four elements of the seven-element
|
||||||
third element is like the sixth element of the six-element
|
|
||||||
case.}
|
case.}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -445,11 +445,11 @@
|
||||||
(cdddr b))
|
(cdddr b))
|
||||||
b)))
|
b)))
|
||||||
|
|
||||||
(test '('#%kernel case-lambda (lib "scheme/init") case-lambda #f #f) identifier-binding* #'case-lambda)
|
(test '('#%kernel case-lambda (lib "scheme/init") case-lambda 0 0 0) identifier-binding* #'case-lambda)
|
||||||
(test '(scheme/promise delay (lib "scheme/init") delay #f #f) identifier-binding* #'delay)
|
(test '(scheme/promise delay (lib "scheme/init") delay 0 0 0) identifier-binding* #'delay)
|
||||||
(test '('#%kernel #%module-begin (lib "scheme/init") #%plain-module-begin #f #f) identifier-binding* #'#%plain-module-begin)
|
(test '('#%kernel #%module-begin (lib "scheme/init") #%plain-module-begin 0 0 0) identifier-binding* #'#%plain-module-begin)
|
||||||
(require (only-in scheme/base [#%plain-module-begin #%pmb]))
|
(require (only-in scheme/base [#%plain-module-begin #%pmb]))
|
||||||
(test '('#%kernel #%module-begin scheme/base #%plain-module-begin #f #f) identifier-binding* #'#%pmb)
|
(test '('#%kernel #%module-begin scheme/base #%plain-module-begin 0 0 0) identifier-binding* #'#%pmb)
|
||||||
|
|
||||||
(let ([b (identifier-binding (syntax-case (expand #'(module m scheme/base
|
(let ([b (identifier-binding (syntax-case (expand #'(module m scheme/base
|
||||||
(require (only-in (lib "lang/htdp-intermediate.ss") [cons bcons]))
|
(require (only-in (lib "lang/htdp-intermediate.ss") [cons bcons]))
|
||||||
|
@ -1275,6 +1275,97 @@
|
||||||
|
|
||||||
;; If we get here, then macro expansion didn't fail.
|
;; If we get here, then macro expansion didn't fail.
|
||||||
|
|
||||||
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; Check that the free-identifier=? cache doesn't kick in too eagerly.
|
||||||
|
|
||||||
|
(module @w@ scheme/base
|
||||||
|
(define add '+)
|
||||||
|
|
||||||
|
(provide (rename-out [add plus])))
|
||||||
|
|
||||||
|
(module @q@ scheme/base
|
||||||
|
(require (for-syntax scheme/base))
|
||||||
|
(provide result)
|
||||||
|
|
||||||
|
(define-for-syntax a #'plus)
|
||||||
|
(define-for-syntax b #'plus)
|
||||||
|
|
||||||
|
(define-for-syntax accum null)
|
||||||
|
|
||||||
|
(begin-for-syntax
|
||||||
|
(set! accum (cons (free-identifier=? a #'plus)
|
||||||
|
accum)))
|
||||||
|
|
||||||
|
(require '@w@)
|
||||||
|
|
||||||
|
(begin-for-syntax
|
||||||
|
(set! accum (list*
|
||||||
|
(free-identifier=? a #'plus)
|
||||||
|
(free-identifier=? b #'plus)
|
||||||
|
accum)))
|
||||||
|
|
||||||
|
(define-syntax (accumulated stx)
|
||||||
|
(datum->syntax stx `',accum))
|
||||||
|
|
||||||
|
(define result (accumulated)))
|
||||||
|
|
||||||
|
(require '@q@)
|
||||||
|
(test '(#t #t #t) values result)
|
||||||
|
|
||||||
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
;; Test namespace-attach with phase-levels -2 and 2
|
||||||
|
|
||||||
|
(when (file-exists? "tmp10")
|
||||||
|
(delete-file "tmp10"))
|
||||||
|
|
||||||
|
(module @!a scheme/base
|
||||||
|
(provide x)
|
||||||
|
(with-output-to-file "tmp10"
|
||||||
|
#:exists 'append
|
||||||
|
(lambda ()
|
||||||
|
(printf "a\n")))
|
||||||
|
(define x 5))
|
||||||
|
|
||||||
|
(module @!b scheme/base
|
||||||
|
(provide get-x)
|
||||||
|
(require (for-meta -2 '@!a))
|
||||||
|
(define (get-x) #'x))
|
||||||
|
|
||||||
|
(module @!c scheme/base
|
||||||
|
(require (for-meta 2 '@!b)
|
||||||
|
(for-syntax scheme/base
|
||||||
|
(for-syntax scheme/base)))
|
||||||
|
(define-syntax (foo stx)
|
||||||
|
(let-syntax ([ref-x (lambda (stx)
|
||||||
|
#`(quote-syntax #,(get-x)))])
|
||||||
|
(ref-x)))
|
||||||
|
|
||||||
|
(with-output-to-file "tmp10"
|
||||||
|
#:exists 'append
|
||||||
|
(lambda ()
|
||||||
|
(printf "~s\n" (foo)))))
|
||||||
|
|
||||||
|
(define (check-tmp10 s)
|
||||||
|
(test s with-input-from-file "tmp10" (lambda () (read-string 1000))))
|
||||||
|
|
||||||
|
(require '@!c)
|
||||||
|
(check-tmp10 "a\n5\n")
|
||||||
|
|
||||||
|
(let ()
|
||||||
|
(define n (make-base-namespace))
|
||||||
|
(namespace-attach-module (current-namespace) ''@!c n)
|
||||||
|
(test 5
|
||||||
|
'use-a
|
||||||
|
(parameterize ([current-namespace n])
|
||||||
|
;; Shouldn't instantiate new:
|
||||||
|
(namespace-require ''@!a)
|
||||||
|
;; Should see `x' from @!a:
|
||||||
|
(eval 'x)))
|
||||||
|
(check-tmp10 "a\n5\n"))
|
||||||
|
|
||||||
|
(when (file-exists? "tmp10")
|
||||||
|
(delete-file "tmp10"))
|
||||||
|
|
||||||
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
(report-errs)
|
(report-errs)
|
||||||
|
|
|
@ -55,10 +55,9 @@
|
||||||
(printf "Copying ~a to ~a~n" path target)
|
(printf "Copying ~a to ~a~n" path target)
|
||||||
(copy-file path target)
|
(copy-file path target)
|
||||||
(let ([code (get-module-code path "no-such-dir")])
|
(let ([code (get-module-code path "no-such-dir")])
|
||||||
(let-values ([(a b c d) (module-compiled-imports code)])
|
(map (lambda (x)
|
||||||
(map (lambda (x)
|
(go x path #f))
|
||||||
(go x path #f))
|
(apply append (map cdr (module-compiled-imports code))))))))))
|
||||||
(append a b c d)))))))))
|
|
||||||
|
|
||||||
(unless (directory-exists? "xform-collects")
|
(unless (directory-exists? "xform-collects")
|
||||||
(make-directory "xform-collects"))
|
(make-directory "xform-collects"))
|
||||||
|
|
|
@ -1,112 +1,111 @@
|
||||||
{
|
{
|
||||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,49,49,50,0,0,0,1,0,0,6,0,
|
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,49,51,50,0,0,0,1,0,0,6,0,
|
||||||
9,0,14,0,18,0,23,0,36,0,41,0,45,0,52,0,55,0,62,0,69,
|
9,0,22,0,27,0,31,0,36,0,41,0,45,0,52,0,55,0,62,0,69,
|
||||||
0,78,0,84,0,98,0,112,0,115,0,119,0,121,0,132,0,134,0,148,0,
|
0,78,0,84,0,98,0,112,0,115,0,119,0,121,0,132,0,134,0,148,0,
|
||||||
155,0,177,0,179,0,193,0,203,0,209,0,232,0,33,1,43,1,60,1,99,
|
155,0,177,0,179,0,193,0,250,0,17,1,23,1,29,1,39,1,56,1,95,
|
||||||
1,138,1,212,1,1,2,94,2,139,2,144,2,164,2,54,3,74,3,124,3,
|
1,134,1,203,1,248,1,80,2,125,2,130,2,150,2,40,3,60,3,110,3,
|
||||||
190,3,75,4,238,4,25,5,36,5,115,5,0,0,133,7,0,0,65,98,101,
|
176,3,61,4,219,4,6,5,17,5,96,5,0,0,117,7,0,0,65,98,101,
|
||||||
103,105,110,29,11,11,64,108,101,116,42,63,108,101,116,64,119,104,101,110,72,
|
103,105,110,29,11,11,72,112,97,114,97,109,101,116,101,114,105,122,101,64,108,
|
||||||
112,97,114,97,109,101,116,101,114,105,122,101,64,99,111,110,100,63,97,110,100,
|
101,116,42,63,108,101,116,64,119,104,101,110,64,99,111,110,100,63,97,110,100,
|
||||||
66,108,101,116,114,101,99,62,111,114,66,100,101,102,105,110,101,66,117,110,108,
|
66,108,101,116,114,101,99,62,111,114,66,100,101,102,105,110,101,66,117,110,108,
|
||||||
101,115,115,68,104,101,114,101,45,115,116,120,65,113,117,111,116,101,29,94,2,
|
101,115,115,68,104,101,114,101,45,115,116,120,65,113,117,111,116,101,29,94,2,
|
||||||
14,68,35,37,112,97,114,97,109,122,11,29,94,2,14,68,35,37,107,101,114,
|
14,68,35,37,107,101,114,110,101,108,11,29,94,2,14,68,35,37,112,97,114,
|
||||||
110,101,108,11,62,105,102,63,115,116,120,61,115,70,108,101,116,45,118,97,108,
|
97,109,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,
|
117,101,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,
|
97,109,98,100,97,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,
|
||||||
111,110,45,107,101,121,61,118,73,100,101,102,105,110,101,45,118,97,108,117,101,
|
111,110,45,107,101,121,61,118,73,100,101,102,105,110,101,45,118,97,108,117,101,
|
||||||
115,95,8,240,48,117,0,0,11,16,0,95,8,193,11,16,0,96,35,11,93,
|
115,97,10,34,11,94,159,2,16,34,34,159,2,15,34,34,16,20,2,10,2,
|
||||||
159,2,16,34,35,16,2,2,13,161,2,2,35,2,13,2,2,2,13,97,10,
|
2,2,3,2,2,2,4,2,2,2,5,2,2,2,6,2,2,2,7,2,2,
|
||||||
34,11,94,159,2,15,34,34,159,2,16,34,34,16,20,2,10,2,2,2,3,
|
2,8,2,2,2,9,2,2,2,11,2,2,2,12,2,2,96,35,11,93,159,
|
||||||
2,2,2,4,2,2,2,5,2,2,2,6,2,2,2,7,2,2,2,8,2,
|
2,15,34,35,16,2,2,13,161,2,2,35,2,13,2,2,2,13,96,10,11,
|
||||||
2,2,9,2,2,2,11,2,2,2,12,2,2,13,16,4,34,29,11,11,2,
|
11,16,0,96,10,36,11,16,0,13,16,4,34,29,11,11,2,2,11,18,98,
|
||||||
2,11,18,98,64,104,101,114,101,8,31,8,30,8,29,8,28,8,27,27,248,
|
64,104,101,114,101,8,31,8,30,8,29,8,28,8,27,27,248,22,178,3,23,
|
||||||
22,178,3,23,196,1,249,22,171,3,80,158,37,34,251,22,73,2,17,248,22,
|
196,1,249,22,171,3,80,158,37,34,251,22,73,2,17,248,22,88,23,200,2,
|
||||||
88,23,200,2,12,249,22,63,2,1,248,22,90,23,202,1,27,248,22,178,3,
|
12,249,22,63,2,1,248,22,90,23,202,1,27,248,22,178,3,23,196,1,249,
|
||||||
23,196,1,249,22,171,3,80,158,37,34,251,22,73,2,17,248,22,88,23,200,
|
22,171,3,80,158,37,34,251,22,73,2,17,248,22,88,23,200,2,249,22,63,
|
||||||
2,249,22,63,2,1,248,22,90,23,202,1,12,27,248,22,65,248,22,178,3,
|
2,1,248,22,90,23,202,1,12,27,248,22,65,248,22,178,3,23,197,1,28,
|
||||||
23,197,1,28,248,22,71,23,194,2,87,94,23,193,1,20,15,159,35,34,35,
|
248,22,71,23,194,2,20,15,159,35,34,35,28,248,22,71,248,22,65,23,195,
|
||||||
28,248,22,71,248,22,65,23,195,2,248,22,64,193,249,22,171,3,80,158,37,
|
2,248,22,64,193,249,22,171,3,80,158,37,34,251,22,73,2,17,248,22,64,
|
||||||
34,251,22,73,2,17,248,22,64,23,200,2,249,22,63,2,8,248,22,65,23,
|
23,200,2,249,22,63,2,8,248,22,65,23,202,1,11,18,100,10,8,31,8,
|
||||||
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,54,57,49,51,16,4,11,11,2,19,3,1,7,101,
|
|
||||||
110,118,54,57,49,52,27,248,22,65,248,22,178,3,23,197,1,28,248,22,71,
|
|
||||||
23,194,2,87,94,23,193,1,20,15,159,35,34,35,28,248,22,71,248,22,65,
|
|
||||||
23,195,2,248,22,64,193,249,22,171,3,80,158,37,34,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,249,22,63,2,10,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,54,57,
|
30,8,29,8,28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,54,57,
|
||||||
49,54,16,4,11,11,2,19,3,1,7,101,110,118,54,57,49,55,248,22,178,
|
56,55,16,4,11,11,2,19,3,1,7,101,110,118,54,57,56,56,27,248,22,
|
||||||
3,193,27,248,22,178,3,194,249,22,63,248,22,73,248,22,64,196,248,22,65,
|
65,248,22,178,3,23,197,1,28,248,22,71,23,194,2,20,15,159,35,34,35,
|
||||||
195,27,248,22,65,248,22,178,3,23,197,1,249,22,171,3,80,158,37,34,28,
|
28,248,22,71,248,22,65,23,195,2,248,22,64,193,249,22,171,3,80,158,37,
|
||||||
248,22,51,248,22,172,3,248,22,64,23,198,2,27,249,22,2,32,0,89,162,
|
34,250,22,73,2,20,248,22,73,249,22,73,248,22,73,2,21,248,22,64,23,
|
||||||
8,44,35,41,9,222,33,39,248,22,178,3,248,22,88,23,200,2,250,22,73,
|
202,2,251,22,73,2,17,2,21,2,21,249,22,63,2,10,248,22,65,23,205,
|
||||||
2,22,248,22,73,249,22,73,248,22,73,248,22,64,23,204,2,250,22,74,2,
|
1,18,100,11,8,31,8,30,8,29,8,28,8,27,16,4,11,11,2,18,3,
|
||||||
23,249,22,2,22,64,23,204,2,248,22,90,23,206,2,249,22,63,248,22,64,
|
1,7,101,110,118,54,57,57,48,16,4,11,11,2,19,3,1,7,101,110,118,
|
||||||
23,202,1,249,22,2,22,88,23,200,1,250,22,74,2,20,249,22,2,32,0,
|
54,57,57,49,248,22,178,3,193,27,248,22,178,3,194,249,22,63,248,22,73,
|
||||||
89,162,42,35,45,9,222,33,40,248,22,178,3,248,22,64,201,248,22,65,198,
|
248,22,64,196,248,22,65,195,27,248,22,65,248,22,178,3,23,197,1,249,22,
|
||||||
27,248,22,178,3,194,249,22,63,248,22,73,248,22,64,196,248,22,65,195,27,
|
171,3,80,158,37,34,28,248,22,51,248,22,172,3,248,22,64,23,198,2,27,
|
||||||
248,22,65,248,22,178,3,23,197,1,249,22,171,3,80,158,37,34,250,22,74,
|
249,22,2,32,0,89,162,8,44,35,41,9,222,33,39,248,22,178,3,248,22,
|
||||||
2,22,249,22,2,32,0,89,162,42,35,45,9,222,33,42,248,22,178,3,248,
|
88,23,200,2,250,22,73,2,22,248,22,73,249,22,73,248,22,73,248,22,64,
|
||||||
22,64,201,248,22,65,198,27,248,22,65,248,22,178,3,196,27,248,22,178,3,
|
23,204,2,250,22,74,2,23,249,22,2,22,64,23,204,2,248,22,90,23,206,
|
||||||
248,22,64,195,249,22,171,3,80,158,38,34,28,248,22,71,195,250,22,74,2,
|
2,249,22,63,248,22,64,23,202,1,249,22,2,22,88,23,200,1,250,22,74,
|
||||||
20,9,248,22,65,199,250,22,73,2,4,248,22,73,248,22,64,199,250,22,74,
|
2,20,249,22,2,32,0,89,162,42,35,45,9,222,33,40,248,22,178,3,248,
|
||||||
2,3,248,22,65,201,248,22,65,202,27,248,22,65,248,22,178,3,23,197,1,
|
22,64,201,248,22,65,198,27,248,22,178,3,194,249,22,63,248,22,73,248,22,
|
||||||
27,249,22,1,22,77,249,22,2,22,178,3,248,22,178,3,248,22,64,199,249,
|
64,196,248,22,65,195,27,248,22,65,248,22,178,3,23,197,1,249,22,171,3,
|
||||||
22,171,3,80,158,38,34,251,22,73,1,22,119,105,116,104,45,99,111,110,116,
|
80,158,37,34,250,22,74,2,22,249,22,2,32,0,89,162,42,35,45,9,222,
|
||||||
105,110,117,97,116,105,111,110,45,109,97,114,107,2,24,250,22,74,1,23,101,
|
33,42,248,22,178,3,248,22,64,201,248,22,65,198,27,248,22,65,248,22,178,
|
||||||
120,116,101,110,100,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,
|
3,196,27,248,22,178,3,248,22,64,195,249,22,171,3,80,158,38,34,28,248,
|
||||||
110,21,95,1,27,99,111,110,116,105,110,117,97,116,105,111,110,45,109,97,114,
|
22,71,195,250,22,74,2,20,9,248,22,65,199,250,22,73,2,5,248,22,73,
|
||||||
107,45,115,101,116,45,102,105,114,115,116,11,2,24,201,250,22,74,2,20,9,
|
248,22,64,199,250,22,74,2,4,248,22,65,201,248,22,65,202,27,248,22,65,
|
||||||
248,22,65,203,27,248,22,65,248,22,178,3,23,197,1,28,248,22,71,23,194,
|
248,22,178,3,23,197,1,27,249,22,1,22,77,249,22,2,22,178,3,248,22,
|
||||||
2,87,94,23,193,1,20,15,159,35,34,35,249,22,171,3,80,158,37,34,27,
|
178,3,248,22,64,199,249,22,171,3,80,158,38,34,251,22,73,1,22,119,105,
|
||||||
248,22,178,3,248,22,64,23,198,2,28,249,22,138,8,62,61,62,248,22,172,
|
116,104,45,99,111,110,116,105,110,117,97,116,105,111,110,45,109,97,114,107,2,
|
||||||
3,248,22,88,23,197,2,250,22,73,2,20,248,22,73,249,22,73,21,93,2,
|
24,250,22,74,1,23,101,120,116,101,110,100,45,112,97,114,97,109,101,116,101,
|
||||||
25,248,22,64,199,250,22,74,2,7,249,22,73,2,25,249,22,73,248,22,97,
|
114,105,122,97,116,105,111,110,21,95,1,27,99,111,110,116,105,110,117,97,116,
|
||||||
203,2,25,248,22,65,202,251,22,73,2,17,28,249,22,138,8,248,22,172,3,
|
105,111,110,45,109,97,114,107,45,115,101,116,45,102,105,114,115,116,11,2,24,
|
||||||
248,22,64,23,201,2,64,101,108,115,101,10,248,22,64,23,198,2,250,22,74,
|
201,250,22,74,2,20,9,248,22,65,203,27,248,22,65,248,22,178,3,23,197,
|
||||||
2,20,9,248,22,65,23,201,1,249,22,63,2,7,248,22,65,23,203,1,99,
|
1,28,248,22,71,23,194,2,20,15,159,35,34,35,249,22,171,3,80,158,37,
|
||||||
8,31,8,30,8,29,8,28,8,27,16,4,11,11,2,18,3,1,7,101,110,
|
34,27,248,22,178,3,248,22,64,23,198,2,28,249,22,138,8,62,61,62,248,
|
||||||
118,54,57,51,57,16,4,11,11,2,19,3,1,7,101,110,118,54,57,52,48,
|
22,172,3,248,22,88,23,197,2,250,22,73,2,20,248,22,73,249,22,73,21,
|
||||||
18,158,94,10,64,118,111,105,100,8,47,27,248,22,65,248,22,178,3,196,249,
|
93,2,25,248,22,64,199,250,22,74,2,7,249,22,73,2,25,249,22,73,248,
|
||||||
22,171,3,80,158,37,34,28,248,22,51,248,22,172,3,248,22,64,197,250,22,
|
22,97,203,2,25,248,22,65,202,251,22,73,2,17,28,249,22,138,8,248,22,
|
||||||
73,2,26,248,22,73,248,22,64,199,248,22,88,198,27,248,22,172,3,248,22,
|
172,3,248,22,64,23,201,2,64,101,108,115,101,10,248,22,64,23,198,2,250,
|
||||||
64,197,250,22,73,2,26,248,22,73,248,22,64,197,250,22,74,2,23,248,22,
|
22,74,2,20,9,248,22,65,23,201,1,249,22,63,2,7,248,22,65,23,203,
|
||||||
65,199,248,22,65,202,159,34,20,102,159,34,16,1,20,24,2,1,16,0,83,
|
1,99,8,31,8,30,8,29,8,28,8,27,16,4,11,11,2,18,3,1,7,
|
||||||
158,40,20,99,134,69,35,37,109,105,110,45,115,116,120,2,2,10,11,10,10,
|
101,110,118,55,48,49,51,16,4,11,11,2,19,3,1,7,101,110,118,55,48,
|
||||||
10,10,34,80,158,34,34,20,102,159,34,16,0,16,0,11,11,16,0,34,11,
|
49,52,18,158,94,10,64,118,111,105,100,8,47,27,248,22,65,248,22,178,3,
|
||||||
11,11,16,0,16,0,16,0,34,34,11,11,16,0,16,0,16,0,34,34,11,
|
196,249,22,171,3,80,158,37,34,28,248,22,51,248,22,172,3,248,22,64,197,
|
||||||
16,10,9,9,9,9,9,9,9,9,9,9,16,10,2,3,2,4,2,5,2,
|
250,22,73,2,26,248,22,73,248,22,64,199,248,22,88,198,27,248,22,172,3,
|
||||||
6,2,7,2,8,2,9,2,10,2,11,2,12,16,10,11,11,11,11,11,11,
|
248,22,64,197,250,22,73,2,26,248,22,73,248,22,64,197,250,22,74,2,23,
|
||||||
11,11,11,11,16,10,2,3,2,4,2,5,2,6,2,7,2,8,2,9,2,
|
248,22,65,199,248,22,65,202,159,34,20,103,159,34,16,1,20,24,2,1,16,
|
||||||
10,2,11,2,12,34,44,16,11,16,5,93,2,13,20,15,159,34,34,34,34,
|
0,83,158,40,20,100,137,69,35,37,109,105,110,45,115,116,120,2,2,10,11,
|
||||||
20,102,159,34,16,0,16,1,33,32,10,16,5,93,2,12,89,162,8,44,35,
|
10,34,80,158,34,34,20,103,159,34,16,0,16,0,11,11,16,0,34,11,37,
|
||||||
51,9,223,0,33,33,34,20,102,159,34,16,1,20,25,159,35,2,2,2,13,
|
34,11,16,10,9,9,9,9,9,9,9,9,9,9,16,10,2,3,2,4,2,
|
||||||
16,0,11,16,5,93,2,5,89,162,8,44,35,51,9,223,0,33,34,34,20,
|
5,2,6,2,7,2,8,2,9,2,10,2,11,2,12,16,10,11,11,11,11,
|
||||||
102,159,34,16,1,20,25,159,35,2,2,2,13,16,0,11,16,5,93,2,8,
|
11,11,11,11,11,11,16,10,2,3,2,4,2,5,2,6,2,7,2,8,2,
|
||||||
89,162,8,44,35,51,9,223,0,33,35,34,20,102,159,34,16,1,20,25,159,
|
9,2,10,2,11,2,12,34,44,35,11,11,16,0,16,0,16,0,34,34,11,
|
||||||
35,2,2,2,13,16,1,33,36,11,16,5,93,2,10,89,162,8,44,35,54,
|
11,11,16,0,16,0,16,0,34,34,16,11,16,5,93,2,13,20,15,159,34,
|
||||||
9,223,0,33,37,34,20,102,159,34,16,1,20,25,159,35,2,2,2,13,16,
|
34,34,34,20,103,159,34,16,0,16,1,33,32,10,16,5,93,2,12,89,162,
|
||||||
1,33,38,11,16,5,93,2,4,89,162,8,44,35,56,9,223,0,33,41,34,
|
8,44,35,51,9,223,0,33,33,34,20,103,159,34,16,1,20,25,159,35,2,
|
||||||
20,102,159,34,16,1,20,25,159,35,2,2,2,13,16,0,11,16,5,93,2,
|
2,2,13,16,0,11,16,5,93,2,6,89,162,8,44,35,51,9,223,0,33,
|
||||||
9,89,162,8,44,35,51,9,223,0,33,43,34,20,102,159,34,16,1,20,25,
|
34,34,20,103,159,34,16,1,20,25,159,35,2,2,2,13,16,0,11,16,5,
|
||||||
159,35,2,2,2,13,16,0,11,16,5,93,2,3,89,162,8,44,35,52,9,
|
93,2,8,89,162,8,44,35,51,9,223,0,33,35,34,20,103,159,34,16,1,
|
||||||
223,0,33,44,34,20,102,159,34,16,1,20,25,159,35,2,2,2,13,16,0,
|
20,25,159,35,2,2,2,13,16,1,33,36,11,16,5,93,2,10,89,162,8,
|
||||||
11,16,5,93,2,6,89,162,8,44,35,53,9,223,0,33,45,34,20,102,159,
|
44,35,54,9,223,0,33,37,34,20,103,159,34,16,1,20,25,159,35,2,2,
|
||||||
34,16,1,20,25,159,35,2,2,2,13,16,0,11,16,5,93,2,7,89,162,
|
2,13,16,1,33,38,11,16,5,93,2,5,89,162,8,44,35,56,9,223,0,
|
||||||
8,44,35,56,9,223,0,33,46,34,20,102,159,34,16,1,20,25,159,35,2,
|
33,41,34,20,103,159,34,16,1,20,25,159,35,2,2,2,13,16,0,11,16,
|
||||||
2,2,13,16,1,33,48,11,16,5,93,2,11,89,162,8,44,35,52,9,223,
|
5,93,2,9,89,162,8,44,35,51,9,223,0,33,43,34,20,103,159,34,16,
|
||||||
0,33,49,34,20,102,159,34,16,1,20,25,159,35,2,2,2,13,16,0,11,
|
1,20,25,159,35,2,2,2,13,16,0,11,16,5,93,2,4,89,162,8,44,
|
||||||
16,0,94,2,16,2,15,93,2,16,9,0};
|
35,52,9,223,0,33,44,34,20,103,159,34,16,1,20,25,159,35,2,2,2,
|
||||||
EVAL_ONE_SIZED_STR((char *)expr, 2048);
|
13,16,0,11,16,5,93,2,3,89,162,8,44,35,53,9,223,0,33,45,34,
|
||||||
|
20,103,159,34,16,1,20,25,159,35,2,2,2,13,16,0,11,16,5,93,2,
|
||||||
|
7,89,162,8,44,35,56,9,223,0,33,46,34,20,103,159,34,16,1,20,25,
|
||||||
|
159,35,2,2,2,13,16,1,33,48,11,16,5,93,2,11,89,162,8,44,35,
|
||||||
|
52,9,223,0,33,49,34,20,103,159,34,16,1,20,25,159,35,2,2,2,13,
|
||||||
|
16,0,11,16,0,94,2,15,2,16,93,2,15,9,9,34,0};
|
||||||
|
EVAL_ONE_SIZED_STR((char *)expr, 2032);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,49,49,61,0,0,0,1,0,0,3,0,
|
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,49,51,61,0,0,0,1,0,0,3,0,
|
||||||
16,0,21,0,38,0,53,0,71,0,87,0,97,0,115,0,135,0,151,0,169,
|
16,0,21,0,38,0,53,0,71,0,87,0,97,0,115,0,135,0,151,0,169,
|
||||||
0,200,0,229,0,251,0,9,1,15,1,29,1,34,1,44,1,52,1,80,1,
|
0,200,0,229,0,251,0,9,1,15,1,29,1,34,1,44,1,52,1,80,1,
|
||||||
112,1,157,1,202,1,226,1,9,2,11,2,20,2,71,2,87,3,96,3,126,
|
112,1,157,1,202,1,226,1,9,2,11,2,20,2,77,2,167,3,176,3,217,
|
||||||
3,170,4,242,4,58,5,146,5,158,5,201,5,217,5,204,6,218,6,69,7,
|
3,51,5,155,5,3,6,119,6,133,6,176,6,192,6,42,8,56,8,219,8,
|
||||||
8,8,202,8,209,8,215,8,75,9,87,9,155,9,1,10,14,10,36,10,170,
|
226,9,232,10,239,10,245,10,117,11,129,11,242,11,88,12,101,12,123,12,75,
|
||||||
10,36,11,37,12,45,12,53,12,79,12,158,12,0,0,209,15,0,0,29,11,
|
13,235,13,50,15,58,15,66,15,92,15,193,15,0,0,251,18,0,0,29,11,
|
||||||
11,72,112,97,116,104,45,115,116,114,105,110,103,63,64,98,115,98,115,76,110,
|
11,72,112,97,116,104,45,115,116,114,105,110,103,63,64,98,115,98,115,76,110,
|
||||||
111,114,109,97,108,45,99,97,115,101,45,112,97,116,104,74,45,99,104,101,99,
|
111,114,109,97,108,45,99,97,115,101,45,112,97,116,104,74,45,99,104,101,99,
|
||||||
107,45,114,101,108,112,97,116,104,77,45,99,104,101,99,107,45,99,111,108,108,
|
107,45,114,101,108,112,97,116,104,77,45,99,104,101,99,107,45,99,111,108,108,
|
||||||
|
@ -133,199 +132,238 @@
|
||||||
99,97,110,110,111,116,32,97,100,100,32,97,32,115,117,102,102,105,120,32,116,
|
99,97,110,110,111,116,32,97,100,100,32,97,32,115,117,102,102,105,120,32,116,
|
||||||
111,32,97,32,114,111,111,116,32,112,97,116,104,58,32,5,0,68,35,37,107,
|
111,32,97,32,114,111,111,116,32,112,97,116,104,58,32,5,0,68,35,37,107,
|
||||||
101,114,110,101,108,27,20,14,159,80,158,35,49,250,80,158,38,50,249,22,27,
|
101,114,110,101,108,27,20,14,159,80,158,35,49,250,80,158,38,50,249,22,27,
|
||||||
11,80,158,40,49,22,138,12,10,248,22,186,4,195,28,248,22,164,5,193,12,
|
11,80,158,40,49,22,138,12,10,248,22,186,4,23,196,2,28,248,22,164,5,
|
||||||
87,94,248,22,141,8,193,248,80,159,36,53,35,195,28,248,22,71,194,9,27,
|
23,194,2,12,87,94,248,22,141,8,23,194,1,248,80,159,36,53,35,195,28,
|
||||||
248,22,64,195,27,28,248,22,183,12,194,193,28,248,22,182,12,194,249,22,184,
|
248,22,71,23,195,2,9,27,248,22,64,23,196,2,27,28,248,22,183,12,23,
|
||||||
12,195,250,80,158,41,47,248,22,134,13,2,20,11,10,250,80,158,39,47,248,
|
195,2,23,194,1,28,248,22,182,12,23,195,2,249,22,184,12,23,196,1,250,
|
||||||
22,134,13,2,20,196,10,28,192,249,22,63,248,22,186,12,249,22,184,12,197,
|
80,158,41,47,248,22,134,13,2,20,11,10,250,80,158,39,47,248,22,134,13,
|
||||||
247,22,135,13,27,248,22,65,199,28,248,22,71,193,9,27,248,22,64,194,27,
|
2,20,23,197,1,10,28,23,193,2,249,22,63,248,22,186,12,249,22,184,12,
|
||||||
28,248,22,183,12,194,193,28,248,22,182,12,194,249,22,184,12,195,250,80,158,
|
23,198,1,247,22,135,13,27,248,22,65,23,200,1,28,248,22,71,23,194,2,
|
||||||
46,47,248,22,134,13,2,20,11,10,250,80,158,44,47,248,22,134,13,2,20,
|
9,27,248,22,64,23,195,2,27,28,248,22,183,12,23,195,2,23,194,1,28,
|
||||||
196,10,28,192,249,22,63,248,22,186,12,249,22,184,12,197,247,22,135,13,248,
|
248,22,182,12,23,195,2,249,22,184,12,23,196,1,250,80,158,46,47,248,22,
|
||||||
80,159,44,52,35,248,22,65,198,248,80,159,42,52,35,248,22,65,196,27,248,
|
134,13,2,20,11,10,250,80,158,44,47,248,22,134,13,2,20,23,197,1,10,
|
||||||
22,65,197,28,248,22,71,193,9,27,248,22,64,194,27,28,248,22,183,12,194,
|
28,23,193,2,249,22,63,248,22,186,12,249,22,184,12,23,198,1,247,22,135,
|
||||||
193,28,248,22,182,12,194,249,22,184,12,195,250,80,158,44,47,248,22,134,13,
|
13,248,80,159,44,52,35,248,22,65,23,199,1,87,94,23,193,1,248,80,159,
|
||||||
2,20,11,10,250,80,158,42,47,248,22,134,13,2,20,196,10,28,192,249,22,
|
42,52,35,248,22,65,23,197,1,87,94,23,193,1,27,248,22,65,23,198,1,
|
||||||
63,248,22,186,12,249,22,184,12,197,247,22,135,13,248,80,159,42,52,35,248,
|
28,248,22,71,23,194,2,9,27,248,22,64,23,195,2,27,28,248,22,183,12,
|
||||||
22,65,198,248,80,159,40,52,35,248,22,65,196,249,80,159,36,37,35,2,7,
|
23,195,2,23,194,1,28,248,22,182,12,23,195,2,249,22,184,12,23,196,1,
|
||||||
195,27,248,22,159,12,194,28,192,192,28,248,22,133,6,194,27,248,22,181,12,
|
250,80,158,44,47,248,22,134,13,2,20,11,10,250,80,158,42,47,248,22,134,
|
||||||
195,28,192,192,248,22,182,12,195,11,87,94,28,28,248,22,160,12,194,10,27,
|
13,2,20,23,197,1,10,28,23,193,2,249,22,63,248,22,186,12,249,22,184,
|
||||||
248,22,159,12,195,28,192,192,28,248,22,133,6,195,27,248,22,181,12,196,28,
|
12,23,198,1,247,22,135,13,248,80,159,42,52,35,248,22,65,23,199,1,248,
|
||||||
192,192,248,22,182,12,196,11,12,250,22,168,8,76,110,111,114,109,97,108,45,
|
80,159,40,52,35,248,22,65,196,249,80,159,36,37,35,2,7,195,27,248,22,
|
||||||
112,97,116,104,45,99,97,115,101,6,42,42,112,97,116,104,32,40,102,111,114,
|
159,12,23,195,2,28,23,193,2,192,87,94,23,193,1,28,248,22,133,6,23,
|
||||||
32,97,110,121,32,115,121,115,116,101,109,41,32,111,114,32,118,97,108,105,100,
|
195,2,27,248,22,181,12,195,28,192,192,248,22,182,12,195,11,87,94,28,28,
|
||||||
45,112,97,116,104,32,115,116,114,105,110,103,196,28,28,248,22,160,12,194,249,
|
248,22,160,12,23,195,2,10,27,248,22,159,12,23,196,2,28,23,193,2,192,
|
||||||
22,138,8,248,22,161,12,196,2,21,249,22,138,8,247,22,152,7,2,21,27,
|
87,94,23,193,1,28,248,22,133,6,23,196,2,27,248,22,181,12,23,197,2,
|
||||||
28,248,22,133,6,195,194,248,22,142,7,248,22,164,12,196,28,249,22,147,13,
|
28,23,193,2,192,87,94,23,193,1,248,22,182,12,23,197,2,11,12,250,22,
|
||||||
0,21,35,114,120,34,94,91,92,92,93,91,92,92,93,91,63,93,91,92,92,
|
168,8,76,110,111,114,109,97,108,45,112,97,116,104,45,99,97,115,101,6,42,
|
||||||
93,34,194,28,248,22,133,6,195,248,22,167,12,195,194,27,248,22,172,6,194,
|
42,112,97,116,104,32,40,102,111,114,32,97,110,121,32,115,121,115,116,101,109,
|
||||||
249,22,168,12,248,22,145,7,250,22,153,13,0,6,35,114,120,34,47,34,28,
|
41,32,111,114,32,118,97,108,105,100,45,112,97,116,104,32,115,116,114,105,110,
|
||||||
249,22,147,13,0,22,35,114,120,34,91,47,92,92,93,91,46,32,93,43,91,
|
103,23,197,2,28,28,248,22,160,12,23,195,2,249,22,138,8,248,22,161,12,
|
||||||
47,92,92,93,42,36,34,200,198,250,22,153,13,0,19,35,114,120,34,91,32,
|
23,197,2,2,21,249,22,138,8,247,22,152,7,2,21,27,28,248,22,133,6,
|
||||||
46,93,43,40,91,47,92,92,93,42,41,36,34,201,6,2,2,92,49,80,158,
|
23,196,2,23,195,2,248,22,142,7,248,22,164,12,23,197,2,28,249,22,147,
|
||||||
42,35,2,21,28,248,22,133,6,194,248,22,167,12,194,193,87,94,28,27,248,
|
13,0,21,35,114,120,34,94,91,92,92,93,91,92,92,93,91,63,93,91,92,
|
||||||
22,159,12,195,28,192,192,28,248,22,133,6,195,27,248,22,181,12,196,28,192,
|
92,93,34,23,195,2,28,248,22,133,6,195,248,22,167,12,195,194,27,248,22,
|
||||||
192,248,22,182,12,196,11,12,250,22,168,8,195,2,22,196,28,248,22,181,12,
|
172,6,23,195,1,249,22,168,12,248,22,145,7,250,22,153,13,0,6,35,114,
|
||||||
194,12,248,22,183,10,249,22,128,10,248,22,162,6,250,22,181,6,2,23,199,
|
120,34,47,34,28,249,22,147,13,0,22,35,114,120,34,91,47,92,92,93,91,
|
||||||
200,247,22,23,87,94,28,27,248,22,159,12,195,28,192,192,28,248,22,133,6,
|
46,32,93,43,91,47,92,92,93,42,36,34,23,201,2,23,199,1,250,22,153,
|
||||||
195,27,248,22,181,12,196,28,192,192,248,22,182,12,196,11,12,250,22,168,8,
|
13,0,19,35,114,120,34,91,32,46,93,43,40,91,47,92,92,93,42,41,36,
|
||||||
195,2,22,196,28,248,22,181,12,194,12,248,22,183,10,249,22,128,10,248,22,
|
34,23,202,1,6,2,2,92,49,80,158,42,35,2,21,28,248,22,133,6,194,
|
||||||
162,6,250,22,181,6,2,23,199,200,247,22,23,87,94,87,94,28,27,248,22,
|
248,22,167,12,194,193,87,94,28,27,248,22,159,12,23,196,2,28,23,193,2,
|
||||||
159,12,195,28,192,192,28,248,22,133,6,195,27,248,22,181,12,196,28,192,192,
|
192,87,94,23,193,1,28,248,22,133,6,23,196,2,27,248,22,181,12,23,197,
|
||||||
248,22,182,12,196,11,12,250,22,168,8,195,2,22,196,28,248,22,181,12,194,
|
2,28,23,193,2,192,87,94,23,193,1,248,22,182,12,23,197,2,11,12,250,
|
||||||
12,248,22,183,10,249,22,128,10,248,22,162,6,250,22,181,6,2,23,199,200,
|
22,168,8,23,196,2,2,22,23,197,2,28,248,22,181,12,23,195,2,12,248,
|
||||||
247,22,23,249,22,3,89,162,34,35,48,9,223,2,33,36,196,248,22,183,10,
|
22,183,10,249,22,128,10,248,22,162,6,250,22,181,6,2,23,23,200,1,23,
|
||||||
249,22,158,10,195,247,22,23,87,94,87,94,249,80,159,36,37,35,2,7,195,
|
201,1,247,22,23,87,94,28,27,248,22,159,12,23,196,2,28,23,193,2,192,
|
||||||
|
87,94,23,193,1,28,248,22,133,6,23,196,2,27,248,22,181,12,23,197,2,
|
||||||
|
28,23,193,2,192,87,94,23,193,1,248,22,182,12,23,197,2,11,12,250,22,
|
||||||
|
168,8,23,196,2,2,22,23,197,2,28,248,22,181,12,23,195,2,12,248,22,
|
||||||
|
183,10,249,22,128,10,248,22,162,6,250,22,181,6,2,23,23,200,1,23,201,
|
||||||
|
1,247,22,23,87,94,87,94,28,27,248,22,159,12,23,196,2,28,23,193,2,
|
||||||
|
192,87,94,23,193,1,28,248,22,133,6,23,196,2,27,248,22,181,12,23,197,
|
||||||
|
2,28,23,193,2,192,87,94,23,193,1,248,22,182,12,23,197,2,11,12,250,
|
||||||
|
22,168,8,195,2,22,23,197,2,28,248,22,181,12,23,195,2,12,248,22,183,
|
||||||
|
10,249,22,128,10,248,22,162,6,250,22,181,6,2,23,199,23,201,1,247,22,
|
||||||
|
23,249,22,3,89,162,42,35,48,9,223,2,33,36,196,248,22,183,10,249,22,
|
||||||
|
158,10,23,196,1,247,22,23,87,94,87,94,249,80,159,36,37,35,2,7,195,
|
||||||
249,22,3,80,159,36,51,35,196,251,80,159,38,40,35,2,7,32,0,89,162,
|
249,22,3,80,159,36,51,35,196,251,80,159,38,40,35,2,7,32,0,89,162,
|
||||||
34,35,43,9,222,33,38,197,198,32,40,89,162,34,40,57,65,99,108,111,111,
|
42,35,43,9,222,33,38,197,198,32,40,89,162,42,40,57,65,99,108,111,111,
|
||||||
112,222,33,41,28,248,22,71,198,248,195,251,22,181,6,2,24,198,28,248,22,
|
112,222,33,41,28,248,22,71,23,199,2,87,94,23,198,1,248,23,196,1,251,
|
||||||
71,202,200,250,22,1,22,177,12,203,204,197,27,249,22,177,12,248,22,64,201,
|
22,181,6,2,24,23,199,1,28,248,22,71,23,203,2,87,94,23,202,1,23,
|
||||||
198,28,248,22,172,12,193,27,250,22,1,22,177,12,196,201,28,248,22,172,12,
|
201,1,250,22,1,22,177,12,23,204,1,23,205,1,23,198,1,27,249,22,177,
|
||||||
193,192,27,248,22,65,201,28,248,22,71,193,248,198,251,22,181,6,2,24,201,
|
12,248,22,64,23,202,2,23,199,2,28,248,22,172,12,23,194,2,27,250,22,
|
||||||
28,248,22,71,205,203,250,22,1,22,177,12,206,23,15,200,27,249,22,177,12,
|
1,22,177,12,23,197,1,23,202,2,28,248,22,172,12,23,194,2,192,87,94,
|
||||||
248,22,64,196,201,28,248,22,172,12,193,27,250,22,1,22,177,12,196,204,28,
|
23,193,1,27,248,22,65,23,202,1,28,248,22,71,23,194,2,87,94,23,193,
|
||||||
248,22,172,12,193,192,253,2,40,203,204,205,206,23,15,248,22,65,201,253,2,
|
1,248,23,199,1,251,22,181,6,2,24,23,202,1,28,248,22,71,23,206,2,
|
||||||
40,202,203,204,205,206,248,22,65,200,27,248,22,65,200,28,248,22,71,193,248,
|
87,94,23,205,1,23,204,1,250,22,1,22,177,12,23,207,1,23,208,1,23,
|
||||||
197,251,22,181,6,2,24,200,28,248,22,71,204,202,250,22,1,22,177,12,205,
|
201,1,27,249,22,177,12,248,22,64,23,197,2,23,202,2,28,248,22,172,12,
|
||||||
206,199,27,249,22,177,12,248,22,64,196,200,28,248,22,172,12,193,27,250,22,
|
23,194,2,27,250,22,1,22,177,12,23,197,1,204,28,248,22,172,12,193,192,
|
||||||
1,22,177,12,196,203,28,248,22,172,12,193,192,253,2,40,202,203,204,205,206,
|
253,2,40,203,204,205,206,23,15,248,22,65,201,253,2,40,202,203,204,205,206,
|
||||||
248,22,65,201,253,2,40,201,202,203,204,205,248,22,65,200,27,247,22,136,13,
|
248,22,65,200,87,94,23,193,1,27,248,22,65,23,201,1,28,248,22,71,23,
|
||||||
253,2,40,198,199,200,201,202,198,87,95,28,28,248,22,160,12,193,10,27,248,
|
194,2,87,94,23,193,1,248,23,198,1,251,22,181,6,2,24,23,201,1,28,
|
||||||
22,159,12,194,28,192,192,28,248,22,133,6,194,27,248,22,181,12,195,28,192,
|
248,22,71,23,205,2,87,94,23,204,1,23,203,1,250,22,1,22,177,12,23,
|
||||||
192,248,22,182,12,195,11,12,252,22,168,8,199,2,25,34,197,198,28,28,248,
|
206,1,23,207,1,23,200,1,27,249,22,177,12,248,22,64,23,197,2,23,201,
|
||||||
22,133,6,194,10,248,22,185,6,194,12,252,22,168,8,199,2,26,35,197,198,
|
2,28,248,22,172,12,23,194,2,27,250,22,1,22,177,12,23,197,1,203,28,
|
||||||
91,159,37,11,90,161,37,34,11,248,22,180,12,196,87,94,28,192,12,250,22,
|
248,22,172,12,193,192,253,2,40,202,203,204,205,206,248,22,65,201,253,2,40,
|
||||||
169,8,200,2,27,198,249,22,7,194,195,91,159,36,11,90,161,36,34,11,87,
|
201,202,203,204,205,248,22,65,200,27,247,22,136,13,253,2,40,198,199,200,201,
|
||||||
95,28,28,248,22,160,12,195,10,27,248,22,159,12,196,28,192,192,28,248,22,
|
202,198,87,95,28,28,248,22,160,12,23,194,2,10,27,248,22,159,12,23,195,
|
||||||
133,6,196,27,248,22,181,12,197,28,192,192,248,22,182,12,197,11,12,252,22,
|
2,28,23,193,2,192,87,94,23,193,1,28,248,22,133,6,23,195,2,27,248,
|
||||||
168,8,2,10,2,25,34,199,200,28,28,248,22,133,6,196,10,248,22,185,6,
|
22,181,12,23,196,2,28,23,193,2,192,87,94,23,193,1,248,22,182,12,23,
|
||||||
196,12,252,22,168,8,2,10,2,26,35,199,200,91,159,37,11,90,161,37,34,
|
196,2,11,12,252,22,168,8,23,200,2,2,25,34,23,198,2,23,199,2,28,
|
||||||
11,248,22,180,12,198,87,94,28,192,12,250,22,169,8,2,10,2,27,200,249,
|
28,248,22,133,6,23,195,2,10,248,22,185,6,23,195,2,87,94,23,194,1,
|
||||||
22,7,194,195,27,249,22,169,12,250,22,152,13,0,18,35,114,120,35,34,40,
|
12,252,22,168,8,23,200,2,2,26,35,23,198,2,23,199,1,91,159,37,11,
|
||||||
91,46,93,91,94,46,93,42,124,41,36,34,248,22,165,12,200,28,248,22,133,
|
90,161,37,34,11,248,22,180,12,23,197,2,87,94,23,195,1,87,94,28,192,
|
||||||
6,202,249,22,145,7,203,8,63,201,28,248,22,160,12,198,248,22,161,12,198,
|
12,250,22,169,8,23,201,1,2,27,23,199,1,249,22,7,194,195,91,159,36,
|
||||||
247,22,162,12,28,248,22,159,12,194,249,22,177,12,195,194,192,91,159,36,11,
|
11,90,161,36,34,11,87,95,28,28,248,22,160,12,23,196,2,10,27,248,22,
|
||||||
90,161,36,34,11,87,95,28,28,248,22,160,12,195,10,27,248,22,159,12,196,
|
159,12,23,197,2,28,23,193,2,192,87,94,23,193,1,28,248,22,133,6,23,
|
||||||
28,192,192,28,248,22,133,6,196,27,248,22,181,12,197,28,192,192,248,22,182,
|
197,2,27,248,22,181,12,23,198,2,28,23,193,2,192,87,94,23,193,1,248,
|
||||||
12,197,11,12,252,22,168,8,2,11,2,25,34,199,200,28,28,248,22,133,6,
|
22,182,12,23,198,2,11,12,252,22,168,8,2,10,2,25,34,23,200,2,23,
|
||||||
196,10,248,22,185,6,196,12,252,22,168,8,2,11,2,26,35,199,200,91,159,
|
201,2,28,28,248,22,133,6,23,197,2,10,248,22,185,6,23,197,2,12,252,
|
||||||
37,11,90,161,37,34,11,248,22,180,12,198,87,94,28,192,12,250,22,169,8,
|
22,168,8,2,10,2,26,35,23,200,2,23,201,2,91,159,37,11,90,161,37,
|
||||||
2,11,2,27,200,249,22,7,194,195,27,249,22,169,12,249,22,131,7,250,22,
|
34,11,248,22,180,12,23,199,2,87,94,23,195,1,87,94,28,23,193,2,12,
|
||||||
153,13,0,9,35,114,120,35,34,91,46,93,34,248,22,165,12,202,6,1,1,
|
250,22,169,8,2,10,2,27,23,201,2,249,22,7,23,195,1,23,196,1,27,
|
||||||
95,28,248,22,133,6,201,249,22,145,7,202,8,63,200,28,248,22,160,12,198,
|
249,22,169,12,250,22,152,13,0,18,35,114,120,35,34,40,91,46,93,91,94,
|
||||||
248,22,161,12,198,247,22,162,12,28,248,22,159,12,194,249,22,177,12,195,194,
|
46,93,42,124,41,36,34,248,22,165,12,23,201,1,28,248,22,133,6,23,203,
|
||||||
192,249,247,22,184,5,194,11,248,80,158,35,45,9,27,247,22,138,13,249,80,
|
2,249,22,145,7,23,204,1,8,63,23,202,1,28,248,22,160,12,23,199,2,
|
||||||
158,37,46,28,194,27,248,22,150,7,6,11,11,80,76,84,67,79,76,76,69,
|
248,22,161,12,23,199,1,87,94,23,198,1,247,22,162,12,28,248,22,159,12,
|
||||||
67,84,83,28,192,192,6,0,0,6,0,0,27,28,195,250,22,177,12,248,22,
|
194,249,22,177,12,195,194,192,91,159,36,11,90,161,36,34,11,87,95,28,28,
|
||||||
|
248,22,160,12,23,196,2,10,27,248,22,159,12,23,197,2,28,23,193,2,192,
|
||||||
|
87,94,23,193,1,28,248,22,133,6,23,197,2,27,248,22,181,12,23,198,2,
|
||||||
|
28,23,193,2,192,87,94,23,193,1,248,22,182,12,23,198,2,11,12,252,22,
|
||||||
|
168,8,2,11,2,25,34,23,200,2,23,201,2,28,28,248,22,133,6,23,197,
|
||||||
|
2,10,248,22,185,6,23,197,2,12,252,22,168,8,2,11,2,26,35,23,200,
|
||||||
|
2,23,201,2,91,159,37,11,90,161,37,34,11,248,22,180,12,23,199,2,87,
|
||||||
|
94,23,195,1,87,94,28,23,193,2,12,250,22,169,8,2,11,2,27,23,201,
|
||||||
|
2,249,22,7,23,195,1,23,196,1,27,249,22,169,12,249,22,131,7,250,22,
|
||||||
|
153,13,0,9,35,114,120,35,34,91,46,93,34,248,22,165,12,23,203,1,6,
|
||||||
|
1,1,95,28,248,22,133,6,23,202,2,249,22,145,7,23,203,1,8,63,23,
|
||||||
|
201,1,28,248,22,160,12,23,199,2,248,22,161,12,23,199,1,87,94,23,198,
|
||||||
|
1,247,22,162,12,28,248,22,159,12,194,249,22,177,12,195,194,192,249,247,22,
|
||||||
|
184,5,194,11,248,80,158,35,45,9,27,247,22,138,13,249,80,158,37,46,28,
|
||||||
|
23,195,2,27,248,22,150,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,177,12,248,22,
|
||||||
134,13,69,97,100,100,111,110,45,100,105,114,247,22,148,7,6,8,8,99,111,
|
134,13,69,97,100,100,111,110,45,100,105,114,247,22,148,7,6,8,8,99,111,
|
||||||
108,108,101,99,116,115,11,27,248,80,159,40,52,35,249,22,77,201,248,22,73,
|
108,108,101,99,116,115,11,27,248,80,159,40,52,35,249,22,77,23,202,1,248,
|
||||||
248,22,134,13,72,99,111,108,108,101,99,116,115,45,100,105,114,28,193,249,22,
|
22,73,248,22,134,13,72,99,111,108,108,101,99,116,115,45,100,105,114,28,23,
|
||||||
63,195,194,192,32,49,89,162,34,37,49,2,19,222,33,50,27,249,22,145,13,
|
194,2,249,22,63,23,196,1,23,195,1,192,32,49,89,162,42,37,49,2,19,
|
||||||
196,197,28,192,27,248,22,88,194,27,250,2,49,198,199,248,22,97,198,28,249,
|
222,33,50,27,249,22,145,13,23,197,2,23,198,2,28,23,193,2,87,94,23,
|
||||||
22,191,6,195,2,28,249,22,77,197,194,249,22,63,248,22,168,12,196,194,28,
|
196,1,27,248,22,88,23,195,2,27,250,2,49,23,199,2,23,200,1,248,22,
|
||||||
249,22,191,6,197,2,28,249,22,77,195,9,249,22,63,248,22,168,12,198,9,
|
97,23,199,1,28,249,22,191,6,23,196,2,2,28,249,22,77,197,194,87,94,
|
||||||
87,95,28,28,248,22,185,6,194,10,248,22,133,6,194,12,250,22,168,8,2,
|
23,196,1,249,22,63,248,22,168,12,23,197,1,194,87,95,23,195,1,23,193,
|
||||||
14,6,21,21,98,121,116,101,32,115,116,114,105,110,103,32,111,114,32,115,116,
|
1,28,249,22,191,6,23,198,2,2,28,249,22,77,195,9,87,94,23,194,1,
|
||||||
114,105,110,103,196,28,28,248,22,72,195,249,22,4,22,159,12,196,11,12,250,
|
249,22,63,248,22,168,12,23,199,1,9,87,95,28,28,248,22,185,6,194,10,
|
||||||
22,168,8,2,14,6,13,13,108,105,115,116,32,111,102,32,112,97,116,104,115,
|
248,22,133,6,194,12,250,22,168,8,2,14,6,21,21,98,121,116,101,32,115,
|
||||||
197,250,2,49,197,195,28,248,22,133,6,197,248,22,144,7,197,196,32,52,89,
|
116,114,105,110,103,32,111,114,32,115,116,114,105,110,103,196,28,28,248,22,72,
|
||||||
162,8,36,38,56,2,19,222,33,55,32,53,89,162,8,36,37,53,70,102,111,
|
195,249,22,4,22,159,12,196,11,12,250,22,168,8,2,14,6,13,13,108,105,
|
||||||
117,110,100,45,101,120,101,99,222,33,54,28,192,91,159,37,11,90,161,37,34,
|
115,116,32,111,102,32,112,97,116,104,115,197,250,2,49,197,195,28,248,22,133,
|
||||||
11,248,22,180,12,198,27,28,197,27,248,22,185,12,200,28,249,22,140,8,194,
|
6,197,248,22,144,7,197,196,32,52,89,162,8,44,38,56,2,19,222,33,55,
|
||||||
201,11,28,248,22,181,12,193,250,2,53,200,201,249,22,177,12,199,197,250,2,
|
32,53,89,162,8,44,37,53,70,102,111,117,110,100,45,101,120,101,99,222,33,
|
||||||
53,200,201,195,11,28,192,192,27,28,248,22,159,12,195,27,249,22,177,12,197,
|
54,28,23,193,2,91,159,37,11,90,161,37,34,11,248,22,180,12,23,199,2,
|
||||||
200,28,28,248,22,172,12,193,10,248,22,171,12,193,192,11,11,28,192,192,28,
|
87,95,23,195,1,23,194,1,27,28,23,198,2,27,248,22,185,12,23,201,2,
|
||||||
198,11,27,248,22,185,12,201,28,249,22,140,8,194,202,11,28,248,22,181,12,
|
28,249,22,140,8,23,195,2,23,202,2,11,28,248,22,181,12,23,194,2,250,
|
||||||
193,250,2,53,201,202,249,22,177,12,200,197,250,2,53,201,202,195,194,28,248,
|
2,53,23,201,2,23,202,2,249,22,177,12,23,200,2,23,198,1,250,2,53,
|
||||||
22,71,196,11,27,248,22,184,12,248,22,64,198,27,249,22,177,12,195,196,28,
|
23,201,2,23,202,2,23,196,1,11,28,23,193,2,192,87,94,23,193,1,27,
|
||||||
248,22,171,12,193,250,2,53,198,199,195,27,248,22,65,199,28,248,22,71,193,
|
28,248,22,159,12,23,196,2,27,249,22,177,12,23,198,2,23,201,2,28,28,
|
||||||
11,27,248,22,184,12,248,22,64,195,27,249,22,177,12,195,199,28,248,22,171,
|
248,22,172,12,193,10,248,22,171,12,193,192,11,11,28,23,193,2,192,87,94,
|
||||||
12,193,250,2,53,201,202,195,27,248,22,65,196,28,248,22,71,193,11,27,248,
|
23,193,1,28,23,199,2,11,27,248,22,185,12,23,202,2,28,249,22,140,8,
|
||||||
22,184,12,248,22,64,195,27,249,22,177,12,195,202,28,248,22,171,12,193,250,
|
23,195,2,23,203,1,11,28,248,22,181,12,23,194,2,250,2,53,23,202,1,
|
||||||
2,53,204,205,195,251,2,52,204,205,206,248,22,65,199,87,95,28,27,248,22,
|
23,203,1,249,22,177,12,23,201,1,23,198,1,250,2,53,201,202,195,194,28,
|
||||||
159,12,195,28,192,192,28,248,22,133,6,195,27,248,22,181,12,196,28,192,192,
|
248,22,71,23,197,2,11,27,248,22,184,12,248,22,64,23,199,2,27,249,22,
|
||||||
248,22,182,12,196,11,12,250,22,168,8,2,15,6,25,25,112,97,116,104,32,
|
177,12,23,196,1,23,197,2,28,248,22,171,12,23,194,2,250,2,53,198,199,
|
||||||
111,114,32,115,116,114,105,110,103,32,40,115,97,110,115,32,110,117,108,41,196,
|
195,87,94,23,193,1,27,248,22,65,23,200,1,28,248,22,71,23,194,2,11,
|
||||||
28,28,194,28,27,248,22,159,12,196,28,192,192,28,248,22,133,6,196,27,248,
|
27,248,22,184,12,248,22,64,23,196,2,27,249,22,177,12,23,196,1,23,200,
|
||||||
22,181,12,197,28,192,192,248,22,182,12,197,11,248,22,181,12,195,11,10,12,
|
2,28,248,22,171,12,23,194,2,250,2,53,201,202,195,87,94,23,193,1,27,
|
||||||
250,22,168,8,2,15,6,29,29,35,102,32,111,114,32,114,101,108,97,116,105,
|
248,22,65,23,197,1,28,248,22,71,23,194,2,11,27,248,22,184,12,248,22,
|
||||||
118,101,32,112,97,116,104,32,111,114,32,115,116,114,105,110,103,197,28,28,248,
|
64,195,27,249,22,177,12,23,196,1,202,28,248,22,171,12,193,250,2,53,204,
|
||||||
22,181,12,194,91,159,37,11,90,161,37,34,11,248,22,180,12,197,249,22,138,
|
205,195,251,2,52,204,205,206,248,22,65,199,87,95,28,27,248,22,159,12,23,
|
||||||
8,194,68,114,101,108,97,116,105,118,101,11,27,248,22,150,7,6,4,4,80,
|
196,2,28,23,193,2,192,87,94,23,193,1,28,248,22,133,6,23,196,2,27,
|
||||||
65,84,72,251,2,52,198,199,200,28,196,27,249,80,158,42,46,199,9,28,249,
|
248,22,181,12,23,197,2,28,23,193,2,192,87,94,23,193,1,248,22,182,12,
|
||||||
22,138,8,247,22,152,7,2,21,249,22,63,248,22,168,12,5,1,46,194,192,
|
23,197,2,11,12,250,22,168,8,2,15,6,25,25,112,97,116,104,32,111,114,
|
||||||
9,27,248,22,184,12,195,28,248,22,171,12,193,250,2,53,198,199,195,11,250,
|
32,115,116,114,105,110,103,32,40,115,97,110,115,32,110,117,108,41,23,197,2,
|
||||||
80,158,37,47,196,197,11,250,80,158,37,47,196,11,11,87,94,249,22,189,5,
|
28,28,23,195,2,28,27,248,22,159,12,23,197,2,28,23,193,2,192,87,94,
|
||||||
247,22,166,4,195,248,22,140,5,249,22,151,3,34,249,22,135,3,197,198,27,
|
23,193,1,28,248,22,133,6,23,197,2,27,248,22,181,12,23,198,2,28,23,
|
||||||
248,22,134,13,2,20,27,249,80,158,38,47,195,11,27,27,248,22,154,3,198,
|
193,2,192,87,94,23,193,1,248,22,182,12,23,198,2,11,248,22,181,12,23,
|
||||||
28,192,192,34,27,27,248,22,154,3,200,28,192,192,34,27,249,22,183,4,197,
|
196,2,11,10,12,250,22,168,8,2,15,6,29,29,35,102,32,111,114,32,114,
|
||||||
89,162,34,34,46,9,224,4,3,33,59,27,248,22,170,4,194,87,94,248,22,
|
101,108,97,116,105,118,101,32,112,97,116,104,32,111,114,32,115,116,114,105,110,
|
||||||
134,4,21,94,2,17,2,29,248,80,159,41,53,35,193,159,34,20,102,159,34,
|
103,23,198,2,28,28,248,22,181,12,23,195,2,91,159,37,11,90,161,37,34,
|
||||||
16,1,20,24,65,98,101,103,105,110,16,0,83,158,40,20,99,134,67,35,37,
|
11,248,22,180,12,23,198,2,249,22,138,8,194,68,114,101,108,97,116,105,118,
|
||||||
117,116,105,108,115,2,1,11,10,10,10,10,10,41,80,158,34,34,20,102,159,
|
101,11,27,248,22,150,7,6,4,4,80,65,84,72,251,2,52,23,199,1,23,
|
||||||
37,16,17,30,2,1,2,2,193,30,2,1,2,3,193,30,2,1,2,4,193,
|
200,1,23,201,1,28,23,197,2,27,249,80,158,42,46,23,200,1,9,28,249,
|
||||||
30,2,1,2,5,193,30,2,1,2,6,193,30,2,1,2,7,193,30,2,1,
|
22,138,8,247,22,152,7,2,21,249,22,63,248,22,168,12,5,1,46,23,195,
|
||||||
2,8,193,30,2,1,2,9,193,30,2,1,2,10,193,30,2,1,2,11,193,
|
1,192,9,27,248,22,184,12,23,196,1,28,248,22,171,12,193,250,2,53,198,
|
||||||
30,2,1,2,12,193,30,2,1,2,13,193,30,2,1,2,14,193,30,2,1,
|
199,195,11,250,80,158,37,47,196,197,11,250,80,158,37,47,196,11,11,87,94,
|
||||||
2,15,193,30,2,1,2,16,193,30,2,18,1,20,112,97,114,97,109,101,116,
|
249,22,189,5,247,22,166,4,195,248,22,140,5,249,22,151,3,34,249,22,135,
|
||||||
101,114,105,122,97,116,105,111,110,45,107,101,121,4,30,2,18,1,23,101,120,
|
3,197,198,27,248,22,134,13,2,20,27,249,80,158,38,47,23,196,1,11,27,
|
||||||
116,101,110,100,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,
|
27,248,22,154,3,23,199,1,28,192,192,34,27,27,248,22,154,3,23,201,1,
|
||||||
3,16,0,11,11,16,4,2,6,2,5,2,3,2,9,38,11,11,11,16,0,
|
28,192,192,34,27,249,22,183,4,23,198,1,83,158,38,20,97,95,89,162,42,
|
||||||
16,0,16,0,34,34,11,11,16,0,16,0,16,0,34,34,11,16,11,9,9,
|
34,46,9,224,4,3,33,59,23,196,1,23,197,1,27,248,22,170,4,23,195,
|
||||||
9,9,9,9,9,9,9,9,9,16,11,2,8,2,7,2,16,2,15,2,13,
|
1,87,94,248,22,134,4,21,94,2,17,2,29,248,80,159,41,53,35,193,159,
|
||||||
2,12,2,4,2,11,2,14,2,10,2,2,16,11,11,11,11,11,11,11,11,
|
34,20,103,159,34,16,1,20,24,65,98,101,103,105,110,16,0,83,158,40,20,
|
||||||
11,11,11,11,16,11,2,8,2,7,2,16,2,15,2,13,2,12,2,4,2,
|
100,137,67,35,37,117,116,105,108,115,2,1,11,10,10,41,80,158,34,34,20,
|
||||||
11,2,14,2,10,2,2,45,45,16,0,16,18,83,158,34,16,2,89,162,34,
|
103,159,37,16,17,30,2,1,2,2,193,30,2,1,2,3,193,30,2,1,2,
|
||||||
35,47,2,19,223,0,33,30,80,159,34,53,35,83,158,34,16,2,89,162,34,
|
4,193,30,2,1,2,5,193,30,2,1,2,6,193,30,2,1,2,7,193,30,
|
||||||
35,54,2,19,223,0,33,31,80,159,34,52,35,83,158,34,16,2,89,162,8,
|
2,1,2,8,193,30,2,1,2,9,193,30,2,1,2,10,193,30,2,1,2,
|
||||||
36,35,43,9,223,0,33,32,80,159,34,51,35,83,158,34,16,2,32,0,89,
|
11,193,30,2,1,2,12,193,30,2,1,2,13,193,30,2,1,2,14,193,30,
|
||||||
162,34,35,43,2,2,222,33,33,80,159,34,34,35,83,158,34,16,2,249,22,
|
2,1,2,15,193,30,2,1,2,16,193,30,2,18,1,20,112,97,114,97,109,
|
||||||
135,6,7,92,7,92,80,159,34,35,35,83,158,34,16,2,89,162,34,35,52,
|
101,116,101,114,105,122,97,116,105,111,110,45,107,101,121,4,30,2,18,1,23,
|
||||||
2,4,223,0,33,34,80,159,34,36,35,83,158,34,16,2,32,0,89,162,34,
|
101,120,116,101,110,100,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,
|
||||||
36,48,2,5,222,33,35,80,159,34,37,35,83,158,34,16,2,32,0,89,162,
|
111,110,3,16,0,11,11,16,4,2,6,2,5,2,3,2,9,38,11,37,34,
|
||||||
34,37,49,2,6,222,33,37,80,159,34,38,35,83,158,34,16,2,89,162,8,
|
11,16,11,9,9,9,9,9,9,9,9,9,9,9,16,11,2,8,2,7,2,
|
||||||
37,36,46,2,7,223,0,33,39,80,159,34,39,35,83,158,34,16,2,32,0,
|
16,2,15,2,13,2,12,2,4,2,11,2,14,2,10,2,2,16,11,11,11,
|
||||||
89,162,34,38,50,2,8,222,33,42,80,159,34,40,35,83,158,34,16,2,32,
|
11,11,11,11,11,11,11,11,11,16,11,2,8,2,7,2,16,2,15,2,13,
|
||||||
0,89,162,34,37,48,2,9,222,33,43,80,159,34,41,35,83,158,34,16,2,
|
2,12,2,4,2,11,2,14,2,10,2,2,45,45,35,11,11,16,0,16,0,
|
||||||
32,0,89,162,34,36,51,2,10,222,33,44,80,159,34,42,35,83,158,34,16,
|
16,0,34,34,11,11,11,16,0,16,0,16,0,34,34,16,0,16,18,83,158,
|
||||||
2,32,0,89,162,34,36,52,2,11,222,33,45,80,159,34,43,35,83,158,34,
|
34,16,2,89,162,42,35,47,2,19,223,0,33,30,80,159,34,53,35,83,158,
|
||||||
16,2,32,0,89,162,34,35,42,2,12,222,33,46,80,159,34,44,35,83,158,
|
34,16,2,89,162,42,35,54,2,19,223,0,33,31,80,159,34,52,35,83,158,
|
||||||
34,16,2,83,158,37,20,96,95,2,13,89,162,34,34,41,9,223,0,33,47,
|
34,16,2,89,162,8,44,35,43,9,223,0,33,32,80,159,34,51,35,83,158,
|
||||||
89,162,34,35,51,9,223,0,33,48,80,159,34,45,35,83,158,34,16,2,27,
|
34,16,2,32,0,89,162,42,35,43,2,2,222,33,33,80,159,34,34,35,83,
|
||||||
248,22,141,13,248,22,144,7,27,28,249,22,138,8,247,22,152,7,2,21,6,
|
158,34,16,2,249,22,135,6,7,92,7,92,80,159,34,35,35,83,158,34,16,
|
||||||
1,1,59,6,1,1,58,250,22,181,6,6,14,14,40,91,94,126,97,93,42,
|
2,89,162,42,35,52,2,4,223,0,33,34,80,159,34,36,35,83,158,34,16,
|
||||||
41,126,97,40,46,42,41,195,195,89,162,34,36,46,2,14,223,0,33,51,80,
|
2,32,0,89,162,42,36,48,2,5,222,33,35,80,159,34,37,35,83,158,34,
|
||||||
159,34,46,35,83,158,34,16,2,83,158,37,20,96,96,2,15,89,162,8,36,
|
16,2,32,0,89,162,42,37,49,2,6,222,33,37,80,159,34,38,35,83,158,
|
||||||
37,52,9,223,0,33,56,89,162,34,36,45,9,223,0,33,57,89,162,34,35,
|
34,16,2,89,162,8,45,36,46,2,7,223,0,33,39,80,159,34,39,35,83,
|
||||||
44,9,223,0,33,58,80,159,34,47,35,83,158,34,16,2,89,162,34,36,49,
|
158,34,16,2,32,0,89,162,42,38,50,2,8,222,33,42,80,159,34,40,35,
|
||||||
2,16,223,0,33,60,80,159,34,48,35,94,29,94,2,17,2,29,11,29,94,
|
83,158,34,16,2,32,0,89,162,42,37,48,2,9,222,33,43,80,159,34,41,
|
||||||
2,17,69,35,37,109,105,110,45,115,116,120,11,9,9,0};
|
35,83,158,34,16,2,32,0,89,162,42,36,51,2,10,222,33,44,80,159,34,
|
||||||
EVAL_ONE_SIZED_STR((char *)expr, 4194);
|
42,35,83,158,34,16,2,32,0,89,162,42,36,52,2,11,222,33,45,80,159,
|
||||||
|
34,43,35,83,158,34,16,2,32,0,89,162,42,35,42,2,12,222,33,46,80,
|
||||||
|
159,34,44,35,83,158,34,16,2,83,158,37,20,96,95,2,13,89,162,42,34,
|
||||||
|
41,9,223,0,33,47,89,162,42,35,51,9,223,0,33,48,80,159,34,45,35,
|
||||||
|
83,158,34,16,2,27,248,22,141,13,248,22,144,7,27,28,249,22,138,8,247,
|
||||||
|
22,152,7,2,21,6,1,1,59,6,1,1,58,250,22,181,6,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,
|
||||||
|
42,36,46,2,14,223,0,33,51,80,159,34,46,35,83,158,34,16,2,83,158,
|
||||||
|
37,20,96,96,2,15,89,162,8,44,37,52,9,223,0,33,56,89,162,42,36,
|
||||||
|
45,9,223,0,33,57,89,162,42,35,44,9,223,0,33,58,80,159,34,47,35,
|
||||||
|
83,158,34,16,2,89,162,42,36,49,2,16,223,0,33,60,80,159,34,48,35,
|
||||||
|
94,29,94,2,17,2,29,11,29,94,2,17,69,35,37,109,105,110,45,115,116,
|
||||||
|
120,11,9,9,9,34,0};
|
||||||
|
EVAL_ONE_SIZED_STR((char *)expr, 5004);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,49,49,7,0,0,0,1,0,0,6,0,
|
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,49,51,8,0,0,0,1,0,0,6,0,
|
||||||
19,0,34,0,48,0,62,0,76,0,0,0,253,0,0,0,65,113,117,111,116,
|
19,0,34,0,48,0,62,0,76,0,108,0,0,0,240,0,0,0,65,113,117,
|
||||||
101,29,94,2,1,67,35,37,117,116,105,108,115,11,29,94,2,1,69,35,37,
|
111,116,101,29,94,2,1,67,35,37,117,116,105,108,115,11,29,94,2,1,69,
|
||||||
110,101,116,119,111,114,107,11,29,94,2,1,68,35,37,112,97,114,97,109,122,
|
35,37,110,101,116,119,111,114,107,11,29,94,2,1,68,35,37,112,97,114,97,
|
||||||
11,29,94,2,1,68,35,37,101,120,112,111,98,115,11,29,94,2,1,68,35,
|
109,122,11,29,94,2,1,68,35,37,101,120,112,111,98,115,11,29,94,2,1,
|
||||||
37,107,101,114,110,101,108,11,159,34,20,102,159,34,16,1,20,24,65,98,101,
|
68,35,37,107,101,114,110,101,108,11,97,10,34,11,97,159,2,2,34,34,159,
|
||||||
103,105,110,16,0,83,158,40,20,99,134,69,35,37,98,117,105,108,116,105,110,
|
2,3,34,34,159,2,4,34,34,159,2,5,34,34,159,2,6,34,34,16,0,
|
||||||
29,11,11,10,10,18,94,11,97,10,34,11,97,159,2,2,34,34,159,2,3,
|
159,34,20,103,159,34,16,1,20,24,65,98,101,103,105,110,16,0,83,158,40,
|
||||||
34,34,159,2,4,34,34,159,2,5,34,34,159,2,6,34,34,16,0,18,94,
|
20,100,137,69,35,37,98,117,105,108,116,105,110,29,11,11,10,10,18,96,11,
|
||||||
11,95,35,11,16,0,10,18,94,11,95,8,240,48,117,0,0,11,16,0,34,
|
41,41,41,34,80,158,34,34,20,103,159,34,16,0,16,0,11,11,16,0,34,
|
||||||
80,158,34,34,20,102,159,34,16,0,16,0,11,11,16,0,34,11,11,11,16,
|
11,37,34,11,11,16,0,16,0,16,0,34,34,35,11,11,16,0,16,0,16,
|
||||||
0,16,0,16,0,34,34,11,11,16,0,16,0,16,0,34,34,11,11,16,0,
|
0,34,34,11,11,11,16,0,16,0,16,0,34,34,16,0,16,0,98,2,6,
|
||||||
16,0,16,0,34,34,16,0,16,0,98,2,6,2,5,29,94,2,1,69,35,
|
2,5,29,94,2,1,69,35,37,102,111,114,101,105,103,110,11,2,4,2,3,
|
||||||
37,102,111,114,101,105,103,110,11,2,4,2,3,2,2,9,9,0};
|
2,2,9,9,9,34,0};
|
||||||
EVAL_ONE_SIZED_STR((char *)expr, 290);
|
EVAL_ONE_SIZED_STR((char *)expr, 279);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,49,49,52,0,0,0,1,0,0,3,0,
|
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,9,51,46,57,57,46,48,46,49,51,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,
|
14,0,41,0,47,0,60,0,74,0,96,0,122,0,134,0,152,0,172,0,184,
|
||||||
0,200,0,223,0,3,1,8,1,13,1,18,1,23,1,54,1,58,1,66,1,
|
0,200,0,223,0,3,1,8,1,13,1,18,1,23,1,54,1,58,1,66,1,
|
||||||
74,1,82,1,163,1,199,1,216,1,245,1,17,2,47,2,57,2,87,2,97,
|
74,1,82,1,185,1,230,1,253,1,32,2,67,2,101,2,111,2,145,2,155,
|
||||||
2,104,2,178,3,190,3,209,3,33,4,45,4,173,4,185,4,30,5,36,5,
|
2,162,2,65,4,77,4,96,4,215,4,227,4,131,5,145,5,6,6,12,6,
|
||||||
50,5,77,5,148,5,150,5,203,5,93,10,151,10,183,10,0,0,118,13,0,
|
26,6,53,6,138,6,140,6,201,6,118,12,176,12,208,12,0,0,146,15,0,
|
||||||
0,29,11,11,70,100,108,108,45,115,117,102,102,105,120,1,25,100,101,102,97,
|
0,29,11,11,70,100,108,108,45,115,117,102,102,105,120,1,25,100,101,102,97,
|
||||||
117,108,116,45,108,111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,
|
117,108,116,45,108,111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,
|
||||||
65,113,117,111,116,101,29,94,2,4,67,35,37,117,116,105,108,115,11,29,94,
|
65,113,117,111,116,101,29,94,2,4,67,35,37,117,116,105,108,115,11,29,94,
|
||||||
|
@ -342,154 +380,179 @@
|
||||||
97,107,64,108,111,111,112,1,29,115,116,97,110,100,97,114,100,45,109,111,100,
|
97,107,64,108,111,111,112,1,29,115,116,97,110,100,97,114,100,45,109,111,100,
|
||||||
117,108,101,45,110,97,109,101,45,114,101,115,111,108,118,101,114,63,108,105,98,
|
117,108,101,45,110,97,109,101,45,114,101,115,111,108,118,101,114,63,108,105,98,
|
||||||
67,105,103,110,111,114,101,100,249,22,14,195,80,158,36,44,249,80,159,36,47,
|
67,105,103,110,111,114,101,100,249,22,14,195,80,158,36,44,249,80,159,36,47,
|
||||||
35,195,10,27,28,194,28,249,22,138,8,196,80,158,37,45,80,158,35,46,27,
|
35,195,10,27,28,23,195,2,28,249,22,138,8,23,197,2,80,158,37,45,87,
|
||||||
248,22,149,4,196,28,248,22,159,12,193,91,159,37,11,90,161,37,34,11,248,
|
94,23,195,1,80,158,35,46,27,248,22,149,4,23,197,2,28,248,22,159,12,
|
||||||
22,180,12,196,87,95,83,160,36,11,80,158,39,45,198,83,160,36,11,80,158,
|
23,194,2,91,159,37,11,90,161,37,34,11,248,22,180,12,23,197,1,87,95,
|
||||||
39,46,192,192,11,11,28,192,192,27,247,22,185,5,28,192,192,247,22,135,13,
|
83,160,36,11,80,158,39,45,198,83,160,36,11,80,158,39,46,192,192,11,11,
|
||||||
20,14,159,80,158,34,38,250,80,158,37,39,249,22,27,11,80,158,39,38,22,
|
28,23,193,2,192,87,94,23,193,1,27,247,22,185,5,28,192,192,247,22,135,
|
||||||
185,5,28,248,22,159,12,197,196,247,22,135,13,247,194,250,22,177,12,196,198,
|
13,20,14,159,80,158,34,38,250,80,158,37,39,249,22,27,11,80,158,39,38,
|
||||||
249,80,158,41,37,197,5,3,46,122,111,252,22,177,12,198,200,6,6,6,110,
|
22,185,5,28,248,22,159,12,23,198,2,23,197,1,87,94,23,197,1,247,22,
|
||||||
97,116,105,118,101,247,22,153,7,249,80,158,43,37,199,80,158,43,34,27,193,
|
135,13,247,194,250,22,177,12,23,197,1,23,199,1,249,80,158,41,37,23,198,
|
||||||
27,250,22,130,13,196,11,32,0,89,162,8,36,34,39,9,222,11,28,192,249,
|
1,5,3,46,122,111,252,22,177,12,23,199,1,23,201,1,6,6,6,110,97,
|
||||||
22,63,195,194,11,27,248,194,195,27,250,22,130,13,196,11,32,0,89,162,8,
|
116,105,118,101,247,22,153,7,249,80,158,43,37,23,200,1,80,158,43,34,87,
|
||||||
36,34,39,9,222,11,28,192,249,22,63,195,194,11,249,247,22,140,13,248,22,
|
94,23,194,1,27,23,194,1,27,250,22,130,13,196,11,32,0,89,162,8,44,
|
||||||
64,195,195,27,248,194,195,27,250,22,130,13,196,11,32,0,89,162,8,36,34,
|
34,39,9,222,11,28,192,249,22,63,195,194,11,27,248,23,195,1,23,196,1,
|
||||||
39,9,222,11,28,192,249,22,63,195,194,11,249,247,22,183,5,248,22,64,195,
|
27,250,22,130,13,196,11,32,0,89,162,8,44,34,39,9,222,11,28,192,249,
|
||||||
195,249,247,22,183,5,194,195,87,94,28,248,80,158,35,36,194,12,250,22,168,
|
22,63,195,194,11,249,247,22,140,13,248,22,64,195,195,27,248,23,195,1,23,
|
||||||
8,77,108,111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,6,25,
|
196,1,27,250,22,130,13,196,11,32,0,89,162,8,44,34,39,9,222,11,28,
|
||||||
25,112,97,116,104,32,111,114,32,118,97,108,105,100,45,112,97,116,104,32,115,
|
192,249,22,63,195,194,11,249,247,22,183,5,248,22,64,195,195,249,247,22,183,
|
||||||
116,114,105,110,103,196,91,159,40,11,90,161,35,34,11,28,248,22,183,12,200,
|
5,194,195,87,94,28,248,80,158,35,36,23,195,2,12,250,22,168,8,77,108,
|
||||||
199,27,247,22,185,5,28,192,249,22,184,12,202,194,200,90,161,37,35,11,248,
|
111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,6,25,25,112,97,
|
||||||
22,180,12,193,90,161,35,38,11,28,249,22,138,8,195,68,114,101,108,97,116,
|
116,104,32,111,114,32,118,97,108,105,100,45,112,97,116,104,32,115,116,114,105,
|
||||||
105,118,101,2,17,193,90,161,35,39,11,247,22,137,13,27,89,162,34,35,48,
|
110,103,23,197,2,91,159,40,11,90,161,35,34,11,28,248,22,183,12,23,201,
|
||||||
62,122,111,225,7,5,3,33,27,27,89,162,34,35,50,9,225,8,6,4,33,
|
2,23,200,1,27,247,22,185,5,28,23,193,2,249,22,184,12,23,203,1,23,
|
||||||
28,27,249,22,5,89,162,34,35,46,9,223,5,33,29,202,27,28,194,27,249,
|
195,1,200,90,161,37,35,11,248,22,180,12,23,194,2,87,94,23,196,1,90,
|
||||||
22,5,89,162,34,35,46,9,223,5,33,30,204,27,28,195,11,193,28,192,192,
|
161,35,38,11,28,249,22,138,8,23,196,2,68,114,101,108,97,116,105,118,101,
|
||||||
28,193,28,195,28,249,22,147,3,248,22,65,196,248,22,65,198,193,11,11,11,
|
87,94,23,194,1,2,17,23,194,1,90,161,35,39,11,247,22,137,13,27,89,
|
||||||
11,28,192,249,80,159,46,53,35,202,89,162,34,34,44,9,224,14,2,33,31,
|
162,42,35,48,62,122,111,225,7,5,3,33,27,27,83,158,38,20,97,94,89,
|
||||||
27,28,196,27,249,22,5,89,162,34,35,46,9,223,7,33,32,205,27,28,196,
|
162,42,35,50,9,225,8,6,4,33,28,23,197,1,27,249,22,5,89,162,42,
|
||||||
11,193,28,192,192,28,193,28,196,28,249,22,147,3,248,22,65,196,248,22,65,
|
35,46,9,223,5,33,29,23,203,2,27,28,23,195,2,27,249,22,5,83,158,
|
||||||
199,193,11,11,11,11,28,192,249,80,159,47,53,35,203,89,162,34,34,44,9,
|
38,20,97,94,89,162,42,35,46,9,223,5,33,30,23,198,1,23,205,2,27,
|
||||||
224,15,2,33,33,249,80,159,47,53,35,203,89,162,34,34,43,9,224,15,7,
|
28,23,196,2,11,193,28,192,192,28,193,28,23,196,2,28,249,22,147,3,248,
|
||||||
33,34,32,36,89,162,34,35,53,2,19,222,33,38,0,17,35,114,120,34,94,
|
22,65,196,248,22,65,23,199,2,193,11,11,11,87,94,23,195,1,11,28,23,
|
||||||
40,46,42,63,41,47,40,46,42,41,36,34,27,249,22,145,13,2,37,195,28,
|
193,2,249,80,159,46,53,35,202,89,162,42,34,44,9,224,14,2,33,31,87,
|
||||||
192,249,22,63,248,22,88,195,27,248,22,97,196,27,249,22,145,13,2,37,195,
|
94,23,193,1,27,28,23,197,2,27,249,22,5,83,158,38,20,97,94,89,162,
|
||||||
28,192,249,22,63,248,22,88,195,27,248,22,97,196,27,249,22,145,13,2,37,
|
42,35,46,9,223,7,33,32,23,200,1,23,206,1,27,28,196,11,193,28,192,
|
||||||
195,28,192,249,22,63,248,22,88,195,248,2,36,248,22,97,196,248,22,73,194,
|
192,28,193,28,196,28,249,22,147,3,248,22,65,196,248,22,65,199,193,11,11,
|
||||||
248,22,73,194,248,22,73,194,32,39,89,162,34,35,53,2,19,222,33,40,28,
|
11,11,28,192,249,80,159,47,53,35,203,89,162,42,34,44,9,224,15,2,33,
|
||||||
248,22,71,248,22,65,194,249,22,7,9,248,22,64,195,91,159,36,11,90,161,
|
33,249,80,159,47,53,35,203,89,162,42,34,43,9,224,15,7,33,34,32,36,
|
||||||
36,34,11,27,248,22,65,196,28,248,22,71,248,22,65,194,249,22,7,9,248,
|
89,162,42,35,53,2,19,222,33,38,0,17,35,114,120,34,94,40,46,42,63,
|
||||||
22,64,195,91,159,36,11,90,161,36,34,11,27,248,22,65,196,28,248,22,71,
|
41,47,40,46,42,41,36,34,27,249,22,145,13,2,37,23,196,2,28,23,193,
|
||||||
248,22,65,194,249,22,7,9,248,22,64,195,91,159,36,11,90,161,36,34,11,
|
2,87,94,23,194,1,249,22,63,248,22,88,23,196,2,27,248,22,97,23,197,
|
||||||
248,2,39,248,22,65,196,249,22,7,249,22,63,248,22,64,199,196,195,249,22,
|
1,27,249,22,145,13,2,37,23,196,2,28,23,193,2,87,94,23,194,1,249,
|
||||||
7,249,22,63,248,22,64,199,196,195,249,22,7,249,22,63,248,22,64,199,196,
|
22,63,248,22,88,23,196,2,27,248,22,97,23,197,1,27,249,22,145,13,2,
|
||||||
195,27,248,2,36,194,28,194,192,248,2,39,193,87,95,28,248,22,147,4,195,
|
37,23,196,2,28,23,193,2,87,94,23,194,1,249,22,63,248,22,88,23,196,
|
||||||
12,250,22,168,8,2,20,6,20,20,114,101,115,111,108,118,101,100,45,109,111,
|
2,248,2,36,248,22,97,23,197,1,248,22,73,194,248,22,73,194,248,22,73,
|
||||||
100,117,108,101,45,112,97,116,104,197,28,207,248,208,195,12,27,27,250,22,126,
|
194,32,39,89,162,42,35,53,2,19,222,33,40,28,248,22,71,248,22,65,23,
|
||||||
80,158,40,41,248,22,163,13,247,22,147,11,11,28,192,192,27,247,22,120,87,
|
195,2,249,22,7,9,248,22,64,195,91,159,36,11,90,161,36,34,11,27,248,
|
||||||
94,250,22,125,80,158,41,41,248,22,163,13,247,22,147,11,195,192,250,22,125,
|
22,65,23,197,2,28,248,22,71,248,22,65,23,195,2,249,22,7,9,248,22,
|
||||||
195,198,66,97,116,116,97,99,104,251,211,197,198,199,10,28,192,250,22,167,8,
|
64,23,196,1,91,159,36,11,90,161,36,34,11,27,248,22,65,23,197,2,28,
|
||||||
11,196,195,248,22,165,8,194,28,249,22,139,6,194,6,1,1,46,2,17,28,
|
248,22,71,248,22,65,23,195,2,249,22,7,9,248,22,64,23,196,1,91,159,
|
||||||
249,22,139,6,194,6,2,2,46,46,62,117,112,192,28,249,22,140,8,248,22,
|
36,11,90,161,36,34,11,248,2,39,248,22,65,23,197,2,249,22,7,249,22,
|
||||||
65,199,196,28,249,22,138,8,248,22,64,199,195,251,22,165,8,2,20,6,26,
|
63,248,22,64,23,200,1,23,197,1,23,196,1,249,22,7,249,22,63,248,22,
|
||||||
26,99,121,99,108,101,32,105,110,32,108,111,97,100,105,110,103,32,97,116,32,
|
64,23,200,1,23,197,1,23,196,1,249,22,7,249,22,63,248,22,64,23,200,
|
||||||
126,101,58,32,126,101,199,249,22,2,22,65,248,22,78,249,22,63,205,201,12,
|
1,23,197,1,195,27,248,2,36,23,195,1,28,194,192,248,2,39,193,87,95,
|
||||||
12,247,192,20,14,159,80,158,38,43,249,22,63,247,22,147,11,196,20,14,159,
|
28,248,22,147,4,195,12,250,22,168,8,2,20,6,20,20,114,101,115,111,108,
|
||||||
80,158,38,38,250,80,158,41,39,249,22,27,11,80,158,43,38,22,131,4,195,
|
118,101,100,45,109,111,100,117,108,101,45,112,97,116,104,197,28,24,193,2,248,
|
||||||
249,247,22,184,5,197,248,22,52,248,22,163,12,197,87,94,28,28,248,22,159,
|
24,194,1,195,87,94,23,193,1,12,27,27,250,22,126,80,158,40,41,248,22,
|
||||||
12,196,10,248,22,152,4,196,12,28,197,250,22,167,8,11,6,15,15,98,97,
|
163,13,247,22,147,11,11,28,23,193,2,192,87,94,23,193,1,27,247,22,120,
|
||||||
100,32,109,111,100,117,108,101,32,112,97,116,104,200,250,22,168,8,2,20,6,
|
87,94,250,22,125,80,158,41,41,248,22,163,13,247,22,147,11,195,192,250,22,
|
||||||
19,19,109,111,100,117,108,101,45,112,97,116,104,32,111,114,32,112,97,116,104,
|
125,195,198,66,97,116,116,97,99,104,251,211,197,198,199,10,28,192,250,22,167,
|
||||||
198,28,28,248,22,61,196,249,22,138,8,248,22,64,198,2,4,11,248,22,148,
|
8,11,196,195,248,22,165,8,194,28,249,22,139,6,194,6,1,1,46,2,17,
|
||||||
4,248,22,88,197,28,28,248,22,61,196,249,22,138,8,248,22,64,198,66,112,
|
28,249,22,139,6,194,6,2,2,46,46,62,117,112,192,28,249,22,140,8,248,
|
||||||
108,97,110,101,116,11,87,94,28,207,12,20,14,159,80,158,36,38,250,80,158,
|
22,65,23,200,2,23,197,1,28,249,22,138,8,248,22,64,23,200,2,23,196,
|
||||||
39,39,249,22,27,11,80,158,41,38,22,147,11,196,90,161,35,34,10,249,22,
|
1,251,22,165,8,2,20,6,26,26,99,121,99,108,101,32,105,110,32,108,111,
|
||||||
132,4,21,94,2,21,6,18,18,112,108,97,110,101,116,47,114,101,115,111,108,
|
97,100,105,110,103,32,97,116,32,126,101,58,32,126,101,23,200,1,249,22,2,
|
||||||
118,101,114,46,115,115,1,27,112,108,97,110,101,116,45,109,111,100,117,108,101,
|
22,65,248,22,78,249,22,63,23,206,1,23,202,1,12,12,247,192,20,14,159,
|
||||||
45,110,97,109,101,45,114,101,115,111,108,118,101,114,12,251,211,199,200,201,202,
|
80,158,38,43,249,22,63,247,22,147,11,23,197,1,20,14,159,80,158,38,38,
|
||||||
27,89,162,34,35,44,79,115,104,111,119,45,99,111,108,108,101,99,116,105,111,
|
250,80,158,41,39,249,22,27,11,80,158,43,38,22,131,4,23,196,1,249,247,
|
||||||
110,45,101,114,114,223,6,33,44,27,28,248,22,51,198,27,250,22,126,80,158,
|
22,184,5,23,198,1,248,22,52,248,22,163,12,23,198,1,87,94,28,28,248,
|
||||||
42,42,249,22,63,203,247,22,136,13,11,28,192,192,91,159,36,11,90,161,36,
|
22,159,12,23,197,2,10,248,22,152,4,23,197,2,12,28,23,198,2,250,22,
|
||||||
34,11,249,80,159,43,47,35,248,22,54,203,11,27,251,80,158,46,49,2,20,
|
167,8,11,6,15,15,98,97,100,32,109,111,100,117,108,101,32,112,97,116,104,
|
||||||
201,28,248,22,71,198,198,248,22,64,198,28,248,22,71,198,9,248,22,65,198,
|
23,201,2,250,22,168,8,2,20,6,19,19,109,111,100,117,108,101,45,112,97,
|
||||||
249,22,177,12,194,28,248,22,71,196,6,7,7,109,97,105,110,46,115,115,249,
|
116,104,32,111,114,32,112,97,116,104,23,199,2,28,28,248,22,61,23,197,2,
|
||||||
22,156,6,198,6,3,3,46,115,115,28,248,22,133,6,198,27,248,80,159,40,
|
249,22,138,8,248,22,64,23,199,2,2,4,11,248,22,148,4,248,22,88,197,
|
||||||
54,35,200,27,250,22,126,80,158,43,42,249,22,63,204,198,11,28,192,192,91,
|
28,28,248,22,61,23,197,2,249,22,138,8,248,22,64,23,199,2,66,112,108,
|
||||||
159,36,11,90,161,36,34,11,249,80,159,44,47,35,203,11,250,22,1,22,177,
|
97,110,101,116,11,87,94,28,207,12,20,14,159,80,158,36,38,250,80,158,39,
|
||||||
12,198,249,22,77,249,22,2,32,0,89,162,8,36,35,42,9,222,33,45,199,
|
39,249,22,27,11,80,158,41,38,22,147,11,23,197,1,90,161,35,34,10,249,
|
||||||
248,22,73,199,28,248,22,159,12,198,28,248,22,182,12,198,197,248,22,73,6,
|
22,132,4,21,94,2,21,6,18,18,112,108,97,110,101,116,47,114,101,115,111,
|
||||||
26,26,32,40,97,32,112,97,116,104,32,109,117,115,116,32,98,101,32,97,98,
|
108,118,101,114,46,115,115,1,27,112,108,97,110,101,116,45,109,111,100,117,108,
|
||||||
115,111,108,117,116,101,41,28,249,22,138,8,248,22,64,200,2,21,27,250,22,
|
101,45,110,97,109,101,45,114,101,115,111,108,118,101,114,12,251,211,199,200,201,
|
||||||
126,80,158,42,42,249,22,63,203,247,22,136,13,11,28,192,192,91,159,37,11,
|
202,87,94,23,193,1,27,89,162,42,35,44,79,115,104,111,119,45,99,111,108,
|
||||||
90,161,36,34,11,249,80,159,44,47,35,248,22,88,204,11,90,161,35,36,11,
|
108,101,99,116,105,111,110,45,101,114,114,223,6,33,44,27,28,248,22,51,23,
|
||||||
28,248,22,71,248,22,90,203,28,248,22,71,193,249,22,147,13,0,8,35,114,
|
199,2,27,250,22,126,80,158,42,42,249,22,63,23,204,2,247,22,136,13,11,
|
||||||
120,34,91,46,93,34,195,11,10,27,27,28,196,249,22,77,28,248,22,71,248,
|
28,23,193,2,192,87,94,23,193,1,91,159,36,11,90,161,36,34,11,249,80,
|
||||||
22,90,23,15,21,93,6,5,5,109,122,108,105,98,249,22,1,22,77,249,22,
|
159,43,47,35,248,22,54,23,204,2,11,27,251,80,158,46,49,2,20,23,202,
|
||||||
2,80,159,50,55,35,248,22,90,23,18,196,28,248,22,71,195,248,22,73,196,
|
1,28,248,22,71,23,199,2,23,199,2,248,22,64,23,199,2,28,248,22,71,
|
||||||
194,251,80,158,48,49,2,20,203,248,22,64,197,248,22,65,197,249,22,177,12,
|
23,199,2,9,248,22,65,23,199,2,249,22,177,12,23,195,1,28,248,22,71,
|
||||||
194,28,197,196,28,248,22,71,196,6,7,7,109,97,105,110,46,115,115,28,249,
|
23,197,1,87,94,23,197,1,6,7,7,109,97,105,110,46,115,115,249,22,156,
|
||||||
22,147,13,0,8,35,114,120,34,91,46,93,34,198,196,249,22,156,6,198,6,
|
6,23,199,1,6,3,3,46,115,115,28,248,22,133,6,23,199,2,87,94,23,
|
||||||
3,3,46,115,115,28,249,22,138,8,248,22,64,200,64,102,105,108,101,249,22,
|
194,1,27,248,80,159,40,54,35,23,201,2,27,250,22,126,80,158,43,42,249,
|
||||||
184,12,248,22,88,200,248,80,159,41,54,35,201,12,87,94,28,28,248,22,159,
|
22,63,23,205,2,23,199,2,11,28,23,193,2,192,87,94,23,193,1,91,159,
|
||||||
12,193,10,248,22,155,7,193,12,28,199,250,22,167,8,67,114,101,113,117,105,
|
36,11,90,161,36,34,11,249,80,159,44,47,35,23,204,2,11,250,22,1,22,
|
||||||
114,101,249,22,181,6,6,17,17,98,97,100,32,109,111,100,117,108,101,32,112,
|
177,12,23,199,1,249,22,77,249,22,2,32,0,89,162,8,44,35,42,9,222,
|
||||||
97,116,104,126,97,28,197,248,22,64,198,6,0,0,202,250,22,168,8,2,20,
|
33,45,23,200,1,248,22,73,23,200,1,28,248,22,159,12,23,199,2,87,94,
|
||||||
249,22,181,6,6,13,13,109,111,100,117,108,101,32,112,97,116,104,126,97,28,
|
23,194,1,28,248,22,182,12,23,199,2,23,198,2,248,22,73,6,26,26,32,
|
||||||
197,248,22,64,198,6,0,0,200,27,28,248,22,155,7,194,249,22,160,7,195,
|
40,97,32,112,97,116,104,32,109,117,115,116,32,98,101,32,97,98,115,111,108,
|
||||||
34,249,22,186,12,248,22,187,12,196,11,27,28,248,22,155,7,195,249,22,160,
|
117,116,101,41,28,249,22,138,8,248,22,64,23,201,2,2,21,27,250,22,126,
|
||||||
7,196,35,248,80,158,41,50,194,91,159,37,11,90,161,37,34,11,28,248,22,
|
80,158,42,42,249,22,63,23,204,2,247,22,136,13,11,28,23,193,2,192,87,
|
||||||
155,7,198,250,22,7,2,22,249,22,160,7,202,36,2,22,248,22,180,12,197,
|
94,23,193,1,91,159,37,11,90,161,36,34,11,249,80,159,44,47,35,248,22,
|
||||||
27,28,248,22,155,7,199,249,22,160,7,200,37,249,80,158,46,51,196,5,0,
|
88,23,205,2,11,90,161,35,36,11,28,248,22,71,248,22,90,23,204,2,28,
|
||||||
27,28,248,22,155,7,200,249,22,160,7,201,38,248,22,148,4,199,27,27,250,
|
248,22,71,23,194,2,249,22,147,13,0,8,35,114,120,34,91,46,93,34,23,
|
||||||
22,126,80,158,50,41,248,22,163,13,247,22,147,11,11,28,192,192,27,247,22,
|
196,2,11,10,27,27,28,23,197,2,249,22,77,28,248,22,71,248,22,90,23,
|
||||||
120,87,94,250,22,125,80,158,51,41,248,22,163,13,247,22,147,11,195,192,87,
|
208,2,21,93,6,5,5,109,122,108,105,98,249,22,1,22,77,249,22,2,80,
|
||||||
95,28,23,16,27,250,22,126,196,197,11,28,192,12,87,95,27,27,28,248,22,
|
159,50,55,35,248,22,90,23,211,2,23,197,2,28,248,22,71,23,196,2,248,
|
||||||
17,80,158,50,44,80,158,49,44,247,22,19,250,22,25,248,22,23,196,80,158,
|
22,73,23,197,2,23,195,2,251,80,158,48,49,2,20,23,204,1,248,22,64,
|
||||||
52,43,195,27,247,22,147,11,249,22,3,89,162,34,35,53,9,226,12,11,2,
|
23,198,2,248,22,65,23,198,1,249,22,177,12,23,195,1,28,23,198,1,87,
|
||||||
3,33,46,195,248,28,248,22,17,80,158,49,44,32,0,89,162,34,35,40,9,
|
94,23,196,1,23,197,1,28,248,22,71,23,197,1,87,94,23,197,1,6,7,
|
||||||
222,33,47,80,159,48,56,35,89,162,34,34,49,9,227,14,9,8,4,3,33,
|
7,109,97,105,110,46,115,115,28,249,22,147,13,0,8,35,114,120,34,91,46,
|
||||||
48,250,22,125,196,197,10,12,28,28,248,22,155,7,201,11,27,248,22,133,6,
|
93,34,23,199,2,23,197,1,249,22,156,6,23,199,1,6,3,3,46,115,115,
|
||||||
23,15,28,192,192,28,248,22,61,23,15,249,22,138,8,248,22,64,23,17,2,
|
28,249,22,138,8,248,22,64,23,201,2,64,102,105,108,101,249,22,184,12,248,
|
||||||
21,11,250,22,125,80,158,49,42,28,248,22,133,6,23,17,249,22,63,23,18,
|
22,88,23,201,2,248,80,159,41,54,35,23,202,2,12,87,94,28,28,248,22,
|
||||||
248,80,159,52,54,35,23,20,249,22,63,23,18,247,22,136,13,252,22,157,7,
|
159,12,23,194,2,10,248,22,155,7,23,194,2,87,94,23,200,1,12,28,23,
|
||||||
23,15,206,204,202,201,12,193,91,159,36,10,90,161,35,34,10,11,90,161,35,
|
200,2,250,22,167,8,67,114,101,113,117,105,114,101,249,22,181,6,6,17,17,
|
||||||
35,10,83,158,37,20,96,96,2,20,89,162,34,35,49,9,224,2,0,33,42,
|
98,97,100,32,109,111,100,117,108,101,32,112,97,116,104,126,97,28,23,198,2,
|
||||||
89,162,34,37,47,9,223,1,33,43,89,162,34,38,8,30,9,225,2,3,0,
|
248,22,64,23,199,2,6,0,0,23,203,1,87,94,23,200,1,250,22,168,8,
|
||||||
33,49,208,87,95,248,22,130,4,248,80,158,36,48,247,22,147,11,248,22,184,
|
2,20,249,22,181,6,6,13,13,109,111,100,117,108,101,32,112,97,116,104,126,
|
||||||
5,80,158,35,35,248,22,133,12,80,159,35,40,35,159,34,20,102,159,34,16,
|
97,28,23,198,2,248,22,64,23,199,2,6,0,0,23,201,2,27,28,248,22,
|
||||||
1,20,24,65,98,101,103,105,110,16,0,83,158,40,20,99,134,66,35,37,98,
|
155,7,23,195,2,249,22,160,7,23,196,2,34,249,22,186,12,248,22,187,12,
|
||||||
111,111,116,2,1,11,10,10,10,10,10,36,80,158,34,34,20,102,159,38,16,
|
23,197,2,11,27,28,248,22,155,7,23,196,2,249,22,160,7,23,197,2,35,
|
||||||
19,30,2,1,2,2,193,30,2,1,2,3,193,30,2,5,72,112,97,116,104,
|
248,80,158,41,50,23,195,2,91,159,37,11,90,161,37,34,11,28,248,22,155,
|
||||||
45,115,116,114,105,110,103,63,10,30,2,5,75,112,97,116,104,45,97,100,100,
|
7,23,199,2,250,22,7,2,22,249,22,160,7,23,203,2,36,2,22,248,22,
|
||||||
45,115,117,102,102,105,120,7,30,2,6,1,20,112,97,114,97,109,101,116,101,
|
180,12,23,198,2,87,95,23,195,1,23,193,1,27,28,248,22,155,7,23,200,
|
||||||
114,105,122,97,116,105,111,110,45,107,101,121,4,30,2,6,1,23,101,120,116,
|
2,249,22,160,7,23,201,2,37,249,80,158,46,51,23,197,2,5,0,27,28,
|
||||||
101,110,100,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,3,
|
248,22,155,7,23,201,2,249,22,160,7,23,202,2,38,248,22,148,4,23,200,
|
||||||
30,2,1,2,7,193,30,2,1,2,8,193,30,2,1,2,9,193,30,2,1,
|
2,27,27,250,22,126,80,158,50,41,248,22,163,13,247,22,147,11,11,28,23,
|
||||||
2,10,193,30,2,1,2,11,193,30,2,1,2,12,193,30,2,1,2,13,193,
|
193,2,192,87,94,23,193,1,27,247,22,120,87,94,250,22,125,80,158,51,41,
|
||||||
30,2,1,2,14,193,30,2,1,2,15,193,30,2,5,69,45,102,105,110,100,
|
248,22,163,13,247,22,147,11,195,192,87,95,28,23,209,1,27,250,22,126,23,
|
||||||
45,99,111,108,0,30,2,5,76,110,111,114,109,97,108,45,99,97,115,101,45,
|
197,2,197,11,28,23,193,1,12,87,95,27,27,28,248,22,17,80,158,50,44,
|
||||||
112,97,116,104,6,30,2,5,79,112,97,116,104,45,114,101,112,108,97,99,101,
|
80,158,49,44,247,22,19,250,22,25,248,22,23,23,197,2,80,158,52,43,23,
|
||||||
45,115,117,102,102,105,120,9,30,2,1,2,16,193,16,0,11,11,16,11,2,
|
196,1,27,247,22,147,11,249,22,3,83,158,38,20,97,94,89,162,42,35,53,
|
||||||
10,2,11,2,8,2,9,2,12,2,13,2,3,2,7,2,2,2,15,2,14,
|
9,226,12,11,2,3,33,46,23,195,1,23,196,1,248,28,248,22,17,80,158,
|
||||||
45,11,11,11,16,0,16,0,16,0,34,34,11,11,16,0,16,0,16,0,34,
|
49,44,32,0,89,162,42,35,40,9,222,33,47,80,159,48,56,35,89,162,42,
|
||||||
34,11,16,1,9,16,1,2,16,16,1,11,16,1,2,16,35,35,16,0,16,
|
34,49,9,227,14,9,8,4,3,33,48,250,22,125,23,197,1,197,10,12,28,
|
||||||
16,83,158,34,16,2,89,162,34,35,43,9,223,0,33,23,80,159,34,56,35,
|
28,248,22,155,7,23,202,1,11,27,248,22,133,6,23,208,2,28,192,192,28,
|
||||||
83,158,34,16,2,89,162,8,36,35,43,9,223,0,33,24,80,159,34,55,35,
|
248,22,61,23,208,2,249,22,138,8,248,22,64,23,210,2,2,21,11,250,22,
|
||||||
83,158,34,16,2,89,162,34,35,47,67,103,101,116,45,100,105,114,223,0,33,
|
125,80,158,49,42,28,248,22,133,6,23,210,2,249,22,63,23,211,1,248,80,
|
||||||
25,80,159,34,54,35,83,158,34,16,2,89,162,34,36,47,68,119,105,116,104,
|
159,52,54,35,23,213,1,87,94,23,210,1,249,22,63,23,211,1,247,22,136,
|
||||||
45,100,105,114,223,0,33,26,80,159,34,53,35,83,158,34,16,2,248,22,152,
|
13,252,22,157,7,23,208,1,23,207,1,23,205,1,23,203,1,201,12,193,91,
|
||||||
7,69,115,111,45,115,117,102,102,105,120,80,159,34,34,35,83,158,34,16,2,
|
159,36,10,90,161,35,34,10,11,90,161,35,35,10,83,158,37,20,96,96,2,
|
||||||
89,162,34,36,58,2,3,223,0,33,35,80,159,34,35,35,83,158,34,16,2,
|
20,89,162,42,35,49,9,224,2,0,33,42,89,162,42,37,47,9,223,1,33,
|
||||||
32,0,89,162,8,36,35,40,2,7,222,192,80,159,34,40,35,83,158,34,16,
|
43,89,162,42,38,8,30,9,225,2,3,0,33,49,208,87,95,248,22,130,4,
|
||||||
2,248,22,120,2,18,80,159,34,41,35,83,158,34,16,2,249,22,120,2,18,
|
248,80,158,36,48,247,22,147,11,248,22,184,5,80,158,35,35,248,22,133,12,
|
||||||
65,101,113,117,97,108,80,159,34,42,35,83,158,34,16,2,247,22,59,80,159,
|
80,159,35,40,35,159,34,20,103,159,34,16,1,20,24,65,98,101,103,105,110,
|
||||||
34,43,35,83,158,34,16,2,248,22,18,74,109,111,100,117,108,101,45,108,111,
|
16,0,83,158,40,20,100,137,66,35,37,98,111,111,116,2,1,11,10,10,36,
|
||||||
97,100,105,110,103,80,159,34,44,35,83,158,34,16,2,11,80,158,34,45,83,
|
80,158,34,34,20,103,159,38,16,19,30,2,1,2,2,193,30,2,1,2,3,
|
||||||
158,34,16,2,11,80,158,34,46,83,158,34,16,2,32,0,89,162,34,36,43,
|
193,30,2,5,72,112,97,116,104,45,115,116,114,105,110,103,63,10,30,2,5,
|
||||||
2,14,222,33,41,80,159,34,47,35,83,158,34,16,2,89,162,8,36,35,43,
|
75,112,97,116,104,45,97,100,100,45,115,117,102,102,105,120,7,30,2,6,1,
|
||||||
2,15,223,0,33,50,80,159,34,48,35,83,158,34,16,2,89,162,34,34,42,
|
20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,45,107,101,121,
|
||||||
2,16,223,0,33,51,80,159,34,52,35,95,29,94,2,4,68,35,37,107,101,
|
4,30,2,6,1,23,101,120,116,101,110,100,45,112,97,114,97,109,101,116,101,
|
||||||
114,110,101,108,11,29,94,2,4,69,35,37,109,105,110,45,115,116,120,11,2,
|
114,105,122,97,116,105,111,110,3,30,2,1,2,7,193,30,2,1,2,8,193,
|
||||||
5,9,9,0};
|
30,2,1,2,9,193,30,2,1,2,10,193,30,2,1,2,11,193,30,2,1,
|
||||||
EVAL_ONE_SIZED_STR((char *)expr, 3573);
|
2,12,193,30,2,1,2,13,193,30,2,1,2,14,193,30,2,1,2,15,193,
|
||||||
|
30,2,5,69,45,102,105,110,100,45,99,111,108,0,30,2,5,76,110,111,114,
|
||||||
|
109,97,108,45,99,97,115,101,45,112,97,116,104,6,30,2,5,79,112,97,116,
|
||||||
|
104,45,114,101,112,108,97,99,101,45,115,117,102,102,105,120,9,30,2,1,2,
|
||||||
|
16,193,16,0,11,11,16,11,2,10,2,11,2,8,2,9,2,12,2,13,2,
|
||||||
|
3,2,7,2,2,2,15,2,14,45,11,37,34,11,16,1,9,16,1,2,16,
|
||||||
|
16,1,11,16,1,2,16,35,35,35,11,11,16,0,16,0,16,0,34,34,11,
|
||||||
|
11,11,16,0,16,0,16,0,34,34,16,0,16,16,83,158,34,16,2,89,162,
|
||||||
|
42,35,43,9,223,0,33,23,80,159,34,56,35,83,158,34,16,2,89,162,8,
|
||||||
|
44,35,43,9,223,0,33,24,80,159,34,55,35,83,158,34,16,2,89,162,42,
|
||||||
|
35,47,67,103,101,116,45,100,105,114,223,0,33,25,80,159,34,54,35,83,158,
|
||||||
|
34,16,2,89,162,42,36,47,68,119,105,116,104,45,100,105,114,223,0,33,26,
|
||||||
|
80,159,34,53,35,83,158,34,16,2,248,22,152,7,69,115,111,45,115,117,102,
|
||||||
|
102,105,120,80,159,34,34,35,83,158,34,16,2,89,162,42,36,58,2,3,223,
|
||||||
|
0,33,35,80,159,34,35,35,83,158,34,16,2,32,0,89,162,8,44,35,40,
|
||||||
|
2,7,222,192,80,159,34,40,35,83,158,34,16,2,248,22,120,2,18,80,159,
|
||||||
|
34,41,35,83,158,34,16,2,249,22,120,2,18,65,101,113,117,97,108,80,159,
|
||||||
|
34,42,35,83,158,34,16,2,247,22,59,80,159,34,43,35,83,158,34,16,2,
|
||||||
|
248,22,18,74,109,111,100,117,108,101,45,108,111,97,100,105,110,103,80,159,34,
|
||||||
|
44,35,83,158,34,16,2,11,80,158,34,45,83,158,34,16,2,11,80,158,34,
|
||||||
|
46,83,158,34,16,2,32,0,89,162,42,36,43,2,14,222,33,41,80,159,34,
|
||||||
|
47,35,83,158,34,16,2,89,162,8,44,35,43,2,15,223,0,33,50,80,159,
|
||||||
|
34,48,35,83,158,34,16,2,89,162,42,34,42,2,16,223,0,33,51,80,159,
|
||||||
|
34,52,35,95,29,94,2,4,68,35,37,107,101,114,110,101,108,11,29,94,2,
|
||||||
|
4,69,35,37,109,105,110,45,115,116,120,11,2,5,9,9,9,34,0};
|
||||||
|
EVAL_ONE_SIZED_STR((char *)expr, 4113);
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,10 +79,12 @@ static Scheme_Object *namespace_module_registry(int, Scheme_Object *[]);
|
||||||
static Scheme_Object *variable_module_path(int, Scheme_Object *[]);
|
static Scheme_Object *variable_module_path(int, Scheme_Object *[]);
|
||||||
static Scheme_Object *variable_namespace(int, Scheme_Object *[]);
|
static Scheme_Object *variable_namespace(int, Scheme_Object *[]);
|
||||||
static Scheme_Object *variable_top_level_namespace(int, Scheme_Object *[]);
|
static Scheme_Object *variable_top_level_namespace(int, Scheme_Object *[]);
|
||||||
|
static Scheme_Object *variable_phase(int, Scheme_Object *[]);
|
||||||
static Scheme_Object *now_transforming(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *now_transforming(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *local_exp_time_value(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *local_exp_time_value(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *local_exp_time_name(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *local_exp_time_name(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *local_context(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *local_context(int argc, Scheme_Object *argv[]);
|
||||||
|
static Scheme_Object *local_phase_level(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *local_make_intdef_context(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *local_make_intdef_context(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *local_introduce(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *local_introduce(int argc, Scheme_Object *argv[]);
|
||||||
static Scheme_Object *local_module_introduce(int argc, Scheme_Object *argv[]);
|
static Scheme_Object *local_module_introduce(int argc, Scheme_Object *argv[]);
|
||||||
|
@ -530,7 +532,11 @@ static void make_init_env(void)
|
||||||
"variable-reference->top-level-namespace",
|
"variable-reference->top-level-namespace",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
scheme_add_global_constant("variable-reference->phase",
|
||||||
|
scheme_make_prim_w_arity(variable_phase,
|
||||||
|
"variable-reference->phase",
|
||||||
|
1, 1),
|
||||||
|
env);
|
||||||
|
|
||||||
scheme_add_global_constant("syntax-transforming?",
|
scheme_add_global_constant("syntax-transforming?",
|
||||||
scheme_make_prim_w_arity(now_transforming,
|
scheme_make_prim_w_arity(now_transforming,
|
||||||
|
@ -552,6 +558,11 @@ static void make_init_env(void)
|
||||||
"syntax-local-context",
|
"syntax-local-context",
|
||||||
0, 0),
|
0, 0),
|
||||||
env);
|
env);
|
||||||
|
scheme_add_global_constant("syntax-local-phase-level",
|
||||||
|
scheme_make_prim_w_arity(local_phase_level,
|
||||||
|
"syntax-local-phase-level",
|
||||||
|
0, 0),
|
||||||
|
env);
|
||||||
scheme_add_global_constant("syntax-local-make-definition-context",
|
scheme_add_global_constant("syntax-local-make-definition-context",
|
||||||
scheme_make_prim_w_arity(local_make_intdef_context,
|
scheme_make_prim_w_arity(local_make_intdef_context,
|
||||||
"syntax-local-make-definition-context",
|
"syntax-local-make-definition-context",
|
||||||
|
@ -591,7 +602,7 @@ static void make_init_env(void)
|
||||||
scheme_add_global_constant("syntax-local-module-required-identifiers",
|
scheme_add_global_constant("syntax-local-module-required-identifiers",
|
||||||
scheme_make_prim_w_arity(local_module_imports,
|
scheme_make_prim_w_arity(local_module_imports,
|
||||||
"syntax-local-module-required-identifiers",
|
"syntax-local-module-required-identifiers",
|
||||||
4, 4),
|
2, 2),
|
||||||
env);
|
env);
|
||||||
scheme_add_global_constant("syntax-local-transforming-module-provides?",
|
scheme_add_global_constant("syntax-local-transforming-module-provides?",
|
||||||
scheme_make_prim_w_arity(local_module_expanding_provides,
|
scheme_make_prim_w_arity(local_module_expanding_provides,
|
||||||
|
@ -709,20 +720,14 @@ static void skip_certain_things(Scheme_Object *o, Scheme_Close_Custodian_Client
|
||||||
/* namespace constructors */
|
/* namespace constructors */
|
||||||
/*========================================================================*/
|
/*========================================================================*/
|
||||||
|
|
||||||
static void create_env_marked_names(Scheme_Env *e)
|
void scheme_prepare_env_renames(Scheme_Env *env, int kind)
|
||||||
{
|
{
|
||||||
Scheme_Hash_Table *mn;
|
if (!env->rename_set) {
|
||||||
Scheme_Object *rn;
|
Scheme_Object *rns;
|
||||||
|
|
||||||
/* Set up a rename table, in case an identifier with a let-binding
|
rns = scheme_make_module_rename_set(kind, NULL);
|
||||||
renaming ends up in a definition position: */
|
env->rename_set = rns;
|
||||||
|
}
|
||||||
mn = scheme_make_hash_table(SCHEME_hash_ptr);
|
|
||||||
scheme_hash_set(mn, scheme_false, scheme_null);
|
|
||||||
e->marked_names = mn;
|
|
||||||
|
|
||||||
rn = scheme_make_module_rename(e->phase, mzMOD_RENAME_TOPLEVEL, mn);
|
|
||||||
e->rename = rn;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Scheme_Env *scheme_make_empty_env(void)
|
Scheme_Env *scheme_make_empty_env(void)
|
||||||
|
@ -730,7 +735,6 @@ Scheme_Env *scheme_make_empty_env(void)
|
||||||
Scheme_Env *e;
|
Scheme_Env *e;
|
||||||
|
|
||||||
e = make_env(NULL, 0, 7);
|
e = make_env(NULL, 0, 7);
|
||||||
create_env_marked_names(e);
|
|
||||||
|
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
@ -843,8 +847,11 @@ void scheme_prepare_exp_env(Scheme_Env *env)
|
||||||
env->exp_env = eenv;
|
env->exp_env = eenv;
|
||||||
eenv->template_env = env;
|
eenv->template_env = env;
|
||||||
|
|
||||||
if (!env->module && !env->phase)
|
scheme_prepare_env_renames(env, mzMOD_RENAME_TOPLEVEL);
|
||||||
create_env_marked_names(eenv);
|
eenv->rename_set = env->rename_set;
|
||||||
|
|
||||||
|
if (env->disallow_unbound)
|
||||||
|
eenv->disallow_unbound = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -875,26 +882,19 @@ void scheme_prepare_template_env(Scheme_Env *env)
|
||||||
}
|
}
|
||||||
eenv->modchain = modchain;
|
eenv->modchain = modchain;
|
||||||
|
|
||||||
|
scheme_prepare_env_renames(env, mzMOD_RENAME_TOPLEVEL);
|
||||||
|
eenv->rename_set = env->rename_set;
|
||||||
|
|
||||||
env->template_env = eenv;
|
env->template_env = eenv;
|
||||||
eenv->exp_env = env;
|
eenv->exp_env = env;
|
||||||
|
|
||||||
|
if (env->disallow_unbound)
|
||||||
|
eenv->disallow_unbound = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void scheme_prepare_label_env(Scheme_Env *env)
|
void scheme_prepare_label_env(Scheme_Env *env)
|
||||||
{
|
{
|
||||||
if (!env->label_env) {
|
|
||||||
/* Used only for its marked_names table */
|
|
||||||
Scheme_Env *lenv;
|
|
||||||
lenv = make_env(NULL, 1, 7);
|
|
||||||
lenv->phase = MZ_LABEL_PHASE;
|
|
||||||
lenv->mod_phase = MZ_LABEL_PHASE;
|
|
||||||
env->label_env = lenv;
|
|
||||||
lenv->module = env->module;
|
|
||||||
lenv->module_registry = env->module_registry;
|
|
||||||
lenv->export_registry = env->export_registry;
|
|
||||||
lenv->insp = env->insp;
|
|
||||||
lenv->modchain = env->modchain;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Scheme_Env *scheme_clone_module_env(Scheme_Env *menv, Scheme_Env *ns, Scheme_Object *modchain)
|
Scheme_Env *scheme_clone_module_env(Scheme_Env *menv, Scheme_Env *ns, Scheme_Object *modchain)
|
||||||
|
@ -1115,22 +1115,31 @@ scheme_add_global_keyword_symbol(Scheme_Object *name, Scheme_Object *obj,
|
||||||
|
|
||||||
void scheme_shadow(Scheme_Env *env, Scheme_Object *n, int stxtoo)
|
void scheme_shadow(Scheme_Env *env, Scheme_Object *n, int stxtoo)
|
||||||
{
|
{
|
||||||
if (env->rename) {
|
Scheme_Object *rn;
|
||||||
scheme_remove_module_rename(env->rename, n);
|
|
||||||
if (env->module) {
|
if (env->rename_set) {
|
||||||
scheme_extend_module_rename(env->rename,
|
rn = scheme_get_module_rename_from_set(env->rename_set,
|
||||||
env->module->self_modidx,
|
scheme_make_integer(env->phase),
|
||||||
n, n,
|
0);
|
||||||
env->module->self_modidx,
|
if (rn) {
|
||||||
n,
|
scheme_remove_module_rename(rn, n);
|
||||||
env->mod_phase,
|
if (env->module) {
|
||||||
-1,
|
scheme_extend_module_rename(rn,
|
||||||
0);
|
env->module->self_modidx,
|
||||||
|
n, n,
|
||||||
|
env->module->self_modidx,
|
||||||
|
n,
|
||||||
|
env->mod_phase,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
} else
|
||||||
|
rn = NULL;
|
||||||
|
|
||||||
if (stxtoo) {
|
if (stxtoo) {
|
||||||
if (!env->module || env->rename) {
|
if (!env->module || rn) {
|
||||||
if (!env->shadowed_syntax) {
|
if (!env->shadowed_syntax) {
|
||||||
Scheme_Hash_Table *ht;
|
Scheme_Hash_Table *ht;
|
||||||
ht = scheme_make_hash_table(SCHEME_hash_ptr);
|
ht = scheme_make_hash_table(SCHEME_hash_ptr);
|
||||||
|
@ -1732,7 +1741,7 @@ Scheme_Object *scheme_hash_module_variable(Scheme_Env *env, Scheme_Object *modid
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, Scheme_Object *bdg, int is_def)
|
Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, Scheme_Object *bdg, int is_def, Scheme_Object *phase)
|
||||||
/* The `env' argument can actually be a hash table. */
|
/* The `env' argument can actually be a hash table. */
|
||||||
{
|
{
|
||||||
Scheme_Object *marks = NULL, *sym, *map, *l, *a, *amarks, *m, *best_match, *cm, *abdg;
|
Scheme_Object *marks = NULL, *sym, *map, *l, *a, *amarks, *m, *best_match, *cm, *abdg;
|
||||||
|
@ -1745,9 +1754,11 @@ Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, Scheme_Objec
|
||||||
marked_names = (Scheme_Hash_Table *)env;
|
marked_names = (Scheme_Hash_Table *)env;
|
||||||
else {
|
else {
|
||||||
/* If there's no table and we're not defining, bail out fast */
|
/* If there's no table and we're not defining, bail out fast */
|
||||||
if (!is_def && !env->marked_names)
|
if (!is_def && !env->rename_set)
|
||||||
return sym;
|
return sym;
|
||||||
marked_names = env->marked_names;
|
marked_names = scheme_get_module_rename_marked_names(env->rename_set,
|
||||||
|
phase ? phase : scheme_make_integer(env->phase),
|
||||||
|
0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (is_def) {
|
if (is_def) {
|
||||||
|
@ -1762,8 +1773,10 @@ Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, Scheme_Objec
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!marked_names) {
|
if (!marked_names) {
|
||||||
marked_names = scheme_make_hash_table(SCHEME_hash_ptr);
|
scheme_prepare_env_renames(env, mzMOD_RENAME_TOPLEVEL);
|
||||||
env->marked_names = marked_names;
|
marked_names = scheme_get_module_rename_marked_names(env->rename_set,
|
||||||
|
phase ? phase : scheme_make_integer(env->phase),
|
||||||
|
1);
|
||||||
}
|
}
|
||||||
|
|
||||||
map = scheme_hash_get(marked_names, sym);
|
map = scheme_hash_get(marked_names, sym);
|
||||||
|
@ -1865,7 +1878,7 @@ Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, Scheme_Objec
|
||||||
existing rename. */
|
existing rename. */
|
||||||
if (!SCHEME_HASHTP((Scheme_Object *)env) && env->module && (is_def != 2)) {
|
if (!SCHEME_HASHTP((Scheme_Object *)env) && env->module && (is_def != 2)) {
|
||||||
Scheme_Object *mod, *nm = id;
|
Scheme_Object *mod, *nm = id;
|
||||||
mod = scheme_stx_module_name(&nm, env->phase, NULL, NULL, NULL, NULL);
|
mod = scheme_stx_module_name(&nm, scheme_make_integer(env->phase), NULL, NULL, NULL, NULL, NULL);
|
||||||
if (mod /* must refer to env->module, otherwise there would
|
if (mod /* must refer to env->module, otherwise there would
|
||||||
have been an error before getting here */
|
have been an error before getting here */
|
||||||
&& NOT_SAME_OBJ(nm, sym))
|
&& NOT_SAME_OBJ(nm, sym))
|
||||||
|
@ -2331,9 +2344,10 @@ scheme_lookup_binding(Scheme_Object *find_id, Scheme_Comp_Env *env, int flags,
|
||||||
Scheme_Object **_lexical_binding_id)
|
Scheme_Object **_lexical_binding_id)
|
||||||
{
|
{
|
||||||
Scheme_Comp_Env *frame;
|
Scheme_Comp_Env *frame;
|
||||||
int j = 0, p = 0, modpos, skip_stops = 0, mod_defn_phase, module_self_reference = 0;
|
int j = 0, p = 0, modpos, skip_stops = 0, module_self_reference = 0;
|
||||||
Scheme_Bucket *b;
|
Scheme_Bucket *b;
|
||||||
Scheme_Object *val, *modidx, *modname, *src_find_id, *find_global_id;
|
Scheme_Object *val, *modidx, *modname, *src_find_id, *find_global_id, *mod_defn_phase;
|
||||||
|
Scheme_Object *find_id_sym = NULL;
|
||||||
Scheme_Env *genv;
|
Scheme_Env *genv;
|
||||||
long phase;
|
long phase;
|
||||||
|
|
||||||
|
@ -2372,16 +2386,20 @@ scheme_lookup_binding(Scheme_Object *find_id, Scheme_Comp_Env *env, int flags,
|
||||||
|
|
||||||
uid = scheme_env_frame_uid(frame);
|
uid = scheme_env_frame_uid(frame);
|
||||||
|
|
||||||
|
if (!find_id_sym
|
||||||
|
&& (frame->flags & SCHEME_CAPTURE_WITHOUT_RENAME))
|
||||||
|
find_id_sym = scheme_stx_get_module_eq_sym(find_id, scheme_make_integer(phase));
|
||||||
|
|
||||||
for (i = frame->num_bindings; i--; ) {
|
for (i = frame->num_bindings; i--; ) {
|
||||||
if (frame->values[i]) {
|
if (frame->values[i]) {
|
||||||
if (frame->uids)
|
if (frame->uids)
|
||||||
uid = frame->uids[i];
|
uid = frame->uids[i];
|
||||||
if (SAME_OBJ(SCHEME_STX_VAL(find_id), SCHEME_STX_VAL(frame->values[i]))
|
if (SAME_OBJ(SCHEME_STX_VAL(find_id), SCHEME_STX_VAL(frame->values[i]))
|
||||||
&& (scheme_stx_env_bound_eq(find_id, frame->values[i], uid, phase)
|
&& (scheme_stx_env_bound_eq(find_id, frame->values[i], uid, scheme_make_integer(phase))
|
||||||
|| ((frame->flags & SCHEME_CAPTURE_WITHOUT_RENAME)
|
|| ((frame->flags & SCHEME_CAPTURE_WITHOUT_RENAME)
|
||||||
&& scheme_stx_module_eq(find_id, frame->values[i], phase))
|
&& scheme_stx_module_eq2(find_id, frame->values[i], scheme_make_integer(phase), find_id_sym))
|
||||||
|| ((frame->flags & SCHEME_CAPTURE_LIFTED)
|
|| ((frame->flags & SCHEME_CAPTURE_LIFTED)
|
||||||
&& scheme_stx_bound_eq(find_id, frame->values[i], phase)))) {
|
&& scheme_stx_bound_eq(find_id, frame->values[i], scheme_make_integer(phase))))) {
|
||||||
/* Found a lambda-, let-, etc. bound variable: */
|
/* Found a lambda-, let-, etc. bound variable: */
|
||||||
/* First, check certs (don't bind with fewer certs): */
|
/* First, check certs (don't bind with fewer certs): */
|
||||||
if (!(flags & SCHEME_NO_CERT_CHECKS)
|
if (!(flags & SCHEME_NO_CERT_CHECKS)
|
||||||
|
@ -2414,12 +2432,14 @@ scheme_lookup_binding(Scheme_Object *find_id, Scheme_Comp_Env *env, int flags,
|
||||||
for (i = COMPILE_DATA(frame)->num_const; i--; ) {
|
for (i = COMPILE_DATA(frame)->num_const; i--; ) {
|
||||||
int issame;
|
int issame;
|
||||||
if (frame->flags & SCHEME_CAPTURE_WITHOUT_RENAME)
|
if (frame->flags & SCHEME_CAPTURE_WITHOUT_RENAME)
|
||||||
issame = scheme_stx_module_eq(find_id, COMPILE_DATA(frame)->const_names[i], phase);
|
issame = scheme_stx_module_eq2(find_id, COMPILE_DATA(frame)->const_names[i],
|
||||||
else {
|
scheme_make_integer(phase), find_id_sym);
|
||||||
|
else {
|
||||||
if (COMPILE_DATA(frame)->const_uids) uid = COMPILE_DATA(frame)->const_uids[i];
|
if (COMPILE_DATA(frame)->const_uids) uid = COMPILE_DATA(frame)->const_uids[i];
|
||||||
issame = (SAME_OBJ(SCHEME_STX_VAL(find_id),
|
issame = (SAME_OBJ(SCHEME_STX_VAL(find_id),
|
||||||
SCHEME_STX_VAL(COMPILE_DATA(frame)->const_names[i]))
|
SCHEME_STX_VAL(COMPILE_DATA(frame)->const_names[i]))
|
||||||
&& scheme_stx_env_bound_eq(find_id, COMPILE_DATA(frame)->const_names[i], uid, phase));
|
&& scheme_stx_env_bound_eq(find_id, COMPILE_DATA(frame)->const_names[i], uid,
|
||||||
|
scheme_make_integer(phase)));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (issame) {
|
if (issame) {
|
||||||
|
@ -2466,7 +2486,7 @@ scheme_lookup_binding(Scheme_Object *find_id, Scheme_Comp_Env *env, int flags,
|
||||||
}
|
}
|
||||||
|
|
||||||
src_find_id = find_id;
|
src_find_id = find_id;
|
||||||
modidx = scheme_stx_module_name(&find_id, phase, NULL, NULL, &mod_defn_phase, NULL);
|
modidx = scheme_stx_module_name(&find_id, scheme_make_integer(phase), NULL, NULL, &mod_defn_phase, NULL, NULL);
|
||||||
|
|
||||||
/* Used out of context? */
|
/* Used out of context? */
|
||||||
if (SAME_OBJ(modidx, scheme_undefined)) {
|
if (SAME_OBJ(modidx, scheme_undefined)) {
|
||||||
|
@ -2488,7 +2508,7 @@ scheme_lookup_binding(Scheme_Object *find_id, Scheme_Comp_Env *env, int flags,
|
||||||
and references to top-level definitions: */
|
and references to top-level definitions: */
|
||||||
module_self_reference = 1;
|
module_self_reference = 1;
|
||||||
} else {
|
} else {
|
||||||
genv = scheme_module_access(modname, env->genv, mod_defn_phase);
|
genv = scheme_module_access(modname, env->genv, SCHEME_INT_VAL(mod_defn_phase));
|
||||||
|
|
||||||
if (!genv) {
|
if (!genv) {
|
||||||
if (env->genv->phase) {
|
if (env->genv->phase) {
|
||||||
|
@ -2496,14 +2516,14 @@ scheme_lookup_binding(Scheme_Object *find_id, Scheme_Comp_Env *env, int flags,
|
||||||
execution. Force all laziness at the prior level
|
execution. Force all laziness at the prior level
|
||||||
and try again. */
|
and try again. */
|
||||||
scheme_module_force_lazy(env->genv, 1);
|
scheme_module_force_lazy(env->genv, 1);
|
||||||
genv = scheme_module_access(modname, env->genv, mod_defn_phase);
|
genv = scheme_module_access(modname, env->genv, SCHEME_INT_VAL(mod_defn_phase));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!genv) {
|
if (!genv) {
|
||||||
scheme_wrong_syntax("require", NULL, src_find_id,
|
scheme_wrong_syntax("require", NULL, src_find_id,
|
||||||
"namespace mismatch; reference (phase %d) to a module"
|
"namespace mismatch; reference (phase %d) to a module"
|
||||||
" %D that is not available (phase %d)",
|
" %D that is not available (phase %d)",
|
||||||
env->genv->phase, modname, mod_defn_phase);
|
env->genv->phase, modname, SCHEME_INT_VAL(mod_defn_phase));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2512,7 +2532,7 @@ scheme_lookup_binding(Scheme_Object *find_id, Scheme_Comp_Env *env, int flags,
|
||||||
genv = env->genv;
|
genv = env->genv;
|
||||||
modname = NULL;
|
modname = NULL;
|
||||||
|
|
||||||
if (genv->module && !genv->rename) {
|
if (genv->module && genv->disallow_unbound) {
|
||||||
/* Free variable. Maybe don't continue. */
|
/* Free variable. Maybe don't continue. */
|
||||||
if (flags & (SCHEME_SETTING | SCHEME_REFERENCING)) {
|
if (flags & (SCHEME_SETTING | SCHEME_REFERENCING)) {
|
||||||
scheme_wrong_syntax(((flags & SCHEME_SETTING)
|
scheme_wrong_syntax(((flags & SCHEME_SETTING)
|
||||||
|
@ -2530,7 +2550,7 @@ scheme_lookup_binding(Scheme_Object *find_id, Scheme_Comp_Env *env, int flags,
|
||||||
*_menv = genv;
|
*_menv = genv;
|
||||||
|
|
||||||
if (!modname && SCHEME_STXP(find_id))
|
if (!modname && SCHEME_STXP(find_id))
|
||||||
find_global_id = scheme_tl_id_sym(env->genv, find_id, NULL, 0);
|
find_global_id = scheme_tl_id_sym(env->genv, find_id, NULL, 0, NULL);
|
||||||
else
|
else
|
||||||
find_global_id = find_id;
|
find_global_id = find_id;
|
||||||
|
|
||||||
|
@ -2576,7 +2596,8 @@ scheme_lookup_binding(Scheme_Object *find_id, Scheme_Comp_Env *env, int flags,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!modname && (flags & (SCHEME_SETTING | SCHEME_REFERENCING)) && (genv->module && !genv->rename)) {
|
if (!modname && (flags & (SCHEME_SETTING | SCHEME_REFERENCING))
|
||||||
|
&& (genv->module && genv->disallow_unbound)) {
|
||||||
/* Check for set! of unbound variable: */
|
/* Check for set! of unbound variable: */
|
||||||
if (!scheme_lookup_in_table(genv->toplevel, (const char *)find_global_id)) {
|
if (!scheme_lookup_in_table(genv->toplevel, (const char *)find_global_id)) {
|
||||||
scheme_wrong_syntax(((flags & SCHEME_SETTING)
|
scheme_wrong_syntax(((flags & SCHEME_SETTING)
|
||||||
|
@ -2610,7 +2631,7 @@ scheme_lookup_binding(Scheme_Object *find_id, Scheme_Comp_Env *env, int flags,
|
||||||
/* Create a module variable reference, so that idx is preserved: */
|
/* Create a module variable reference, so that idx is preserved: */
|
||||||
return scheme_hash_module_variable(env->genv, modidx, find_id,
|
return scheme_hash_module_variable(env->genv, modidx, find_id,
|
||||||
genv->module->insp,
|
genv->module->insp,
|
||||||
modpos, mod_defn_phase);
|
modpos, SCHEME_INT_VAL(mod_defn_phase));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!modname && (flags & (SCHEME_SETTING | SCHEME_REFERENCING)) && genv->module) {
|
if (!modname && (flags & (SCHEME_SETTING | SCHEME_REFERENCING)) && genv->module) {
|
||||||
|
@ -2693,7 +2714,7 @@ void scheme_dup_symbol_check(DupCheckRecord *r, const char *where,
|
||||||
|
|
||||||
if (r->count <= 5) {
|
if (r->count <= 5) {
|
||||||
for (i = 0; i < r->count; i++) {
|
for (i = 0; i < r->count; i++) {
|
||||||
if (scheme_stx_bound_eq(symbol, r->syms[i], r->phase))
|
if (scheme_stx_bound_eq(symbol, r->syms[i], scheme_make_integer(r->phase)))
|
||||||
scheme_wrong_syntax(where, symbol, form,
|
scheme_wrong_syntax(where, symbol, form,
|
||||||
"duplicate %s name", what);
|
"duplicate %s name", what);
|
||||||
}
|
}
|
||||||
|
@ -2729,7 +2750,7 @@ int scheme_check_context(Scheme_Env *env, Scheme_Object *name, Scheme_Object *ok
|
||||||
if (mod && SCHEME_TRUEP(mod) && NOT_SAME_OBJ(ok_modidx, mod)) {
|
if (mod && SCHEME_TRUEP(mod) && NOT_SAME_OBJ(ok_modidx, mod)) {
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
mod = scheme_stx_module_name(&id, env->phase, NULL, NULL, NULL, NULL);
|
mod = scheme_stx_module_name(&id, scheme_make_integer(env->phase), NULL, NULL, NULL, NULL, NULL);
|
||||||
if (SAME_OBJ(mod, scheme_undefined))
|
if (SAME_OBJ(mod, scheme_undefined))
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -3614,10 +3635,8 @@ namespace_identifier(int argc, Scheme_Object *argv[])
|
||||||
obj = scheme_datum_to_syntax(obj, scheme_false, scheme_false, 1, 0);
|
obj = scheme_datum_to_syntax(obj, scheme_false, scheme_false, 1, 0);
|
||||||
|
|
||||||
/* Renamings: */
|
/* Renamings: */
|
||||||
if (genv->rename)
|
if (genv->rename_set)
|
||||||
obj = scheme_add_rename(obj, genv->rename);
|
obj = scheme_add_rename(obj, genv->rename_set);
|
||||||
if (genv->exp_env && genv->exp_env->rename)
|
|
||||||
obj = scheme_add_rename(obj, genv->exp_env->rename);
|
|
||||||
|
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
@ -3648,7 +3667,9 @@ namespace_variable_value(int argc, Scheme_Object *argv[])
|
||||||
else {
|
else {
|
||||||
Scheme_Full_Comp_Env inlined_e;
|
Scheme_Full_Comp_Env inlined_e;
|
||||||
|
|
||||||
id = scheme_make_renamed_stx(argv[0], genv->rename);
|
scheme_prepare_env_renames(genv, mzMOD_RENAME_TOPLEVEL);
|
||||||
|
|
||||||
|
id = scheme_make_renamed_stx(argv[0], genv->rename_set);
|
||||||
|
|
||||||
inlined_e.base.num_bindings = 0;
|
inlined_e.base.num_bindings = 0;
|
||||||
inlined_e.base.next = NULL;
|
inlined_e.base.next = NULL;
|
||||||
|
@ -3774,8 +3795,8 @@ namespace_mapped_symbols(int argc, Scheme_Object *argv[])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (env->rename)
|
if (env->rename_set)
|
||||||
scheme_list_module_rename(env->rename, mapped);
|
scheme_list_module_rename(env->rename_set, mapped);
|
||||||
|
|
||||||
l = scheme_null;
|
l = scheme_null;
|
||||||
for (i = mapped->size; i--; ) {
|
for (i = mapped->size; i--; ) {
|
||||||
|
@ -3816,7 +3837,9 @@ static Scheme_Object *do_variable_namespace(const char *who, int tl, int argc, S
|
||||||
0, argc, argv);
|
0, argc, argv);
|
||||||
|
|
||||||
ph = env->phase;
|
ph = env->phase;
|
||||||
if (tl) {
|
if (tl == 2) {
|
||||||
|
return scheme_make_integer(ph);
|
||||||
|
} else if (tl) {
|
||||||
while (ph--) {
|
while (ph--) {
|
||||||
env = env->template_env;
|
env = env->template_env;
|
||||||
}
|
}
|
||||||
|
@ -3846,6 +3869,11 @@ static Scheme_Object *variable_top_level_namespace(int argc, Scheme_Object *argv
|
||||||
return do_variable_namespace("variable-reference->top-level-namespace", 1, argc, argv);
|
return do_variable_namespace("variable-reference->top-level-namespace", 1, argc, argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *variable_phase(int argc, Scheme_Object *argv[])
|
||||||
|
{
|
||||||
|
return do_variable_namespace("variable-reference->phase", 2, argc, argv);
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *variable_module_path(int argc, Scheme_Object *argv[])
|
static Scheme_Object *variable_module_path(int argc, Scheme_Object *argv[])
|
||||||
{
|
{
|
||||||
Scheme_Object *v;
|
Scheme_Object *v;
|
||||||
|
@ -4016,6 +4044,19 @@ local_context(int argc, Scheme_Object *argv[])
|
||||||
return scheme_intern_symbol("expression");
|
return scheme_intern_symbol("expression");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *
|
||||||
|
local_phase_level(int argc, Scheme_Object *argv[])
|
||||||
|
{
|
||||||
|
Scheme_Thread *p = scheme_current_thread;
|
||||||
|
int phase;
|
||||||
|
|
||||||
|
phase = (p->current_local_env
|
||||||
|
? p->current_local_env->genv->phase
|
||||||
|
: 0);
|
||||||
|
|
||||||
|
return scheme_make_integer(phase);
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *
|
static Scheme_Object *
|
||||||
local_make_intdef_context(int argc, Scheme_Object *argv[])
|
local_make_intdef_context(int argc, Scheme_Object *argv[])
|
||||||
{
|
{
|
||||||
|
@ -4079,22 +4120,9 @@ local_module_introduce(int argc, Scheme_Object *argv[])
|
||||||
v = scheme_stx_to_rename(env->genv->module->rn_stx);
|
v = scheme_stx_to_rename(env->genv->module->rn_stx);
|
||||||
s = scheme_add_rename(s, v);
|
s = scheme_add_rename(s, v);
|
||||||
}
|
}
|
||||||
if (env->genv->module->et_rn_stx && !SAME_OBJ(scheme_true, env->genv->module->et_rn_stx)) {
|
|
||||||
v = scheme_stx_to_rename(env->genv->module->et_rn_stx);
|
|
||||||
s = scheme_add_rename(s, v);
|
|
||||||
}
|
|
||||||
if (env->genv->module->dt_rn_stx && !SAME_OBJ(scheme_true, env->genv->module->dt_rn_stx)) {
|
|
||||||
v = scheme_stx_to_rename(env->genv->module->dt_rn_stx);
|
|
||||||
s = scheme_add_rename(s, v);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
if (env->genv->rename)
|
if (env->genv->rename_set)
|
||||||
s = scheme_add_rename(s, env->genv->rename);
|
s = scheme_add_rename(s, env->genv->rename_set);
|
||||||
if (env->genv->et_rename)
|
|
||||||
s = scheme_add_rename(s, env->genv->et_rename);
|
|
||||||
if (env->genv->dt_rename) {
|
|
||||||
s = scheme_add_rename(s, env->genv->dt_rename);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4326,12 +4354,16 @@ local_module_imports(int argc, Scheme_Object *argv[])
|
||||||
if (SCHEME_TRUEP(argv[0]) && !scheme_is_module_path(argv[0]))
|
if (SCHEME_TRUEP(argv[0]) && !scheme_is_module_path(argv[0]))
|
||||||
scheme_wrong_type("syntax-local-module-required-identifiers", "module-path or #f", 0, argc, argv);
|
scheme_wrong_type("syntax-local-module-required-identifiers", "module-path or #f", 0, argc, argv);
|
||||||
|
|
||||||
|
if (!SCHEME_FALSEP(argv[1])
|
||||||
|
&& !SAME_OBJ(scheme_true, argv[1])
|
||||||
|
&& !SCHEME_INTP(argv[1])
|
||||||
|
&& !SCHEME_BIGNUMP(argv[1]))
|
||||||
|
scheme_wrong_type("syntax-local-module-required-identifiers", "exact integer, #f, or #t", 1, argc, argv);
|
||||||
|
|
||||||
return scheme_module_imported_list(scheme_current_thread->current_local_env->genv,
|
return scheme_module_imported_list(scheme_current_thread->current_local_env->genv,
|
||||||
scheme_current_thread->current_local_bindings,
|
scheme_current_thread->current_local_bindings,
|
||||||
argv[0],
|
argv[0],
|
||||||
SCHEME_TRUEP(argv[1]),
|
argv[1]);
|
||||||
SCHEME_TRUEP(argv[2]),
|
|
||||||
SCHEME_TRUEP(argv[3]));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Scheme_Object *
|
static Scheme_Object *
|
||||||
|
|
|
@ -1553,7 +1553,7 @@ static void do_wrong_syntax(const char *where,
|
||||||
if (scheme_current_thread->current_local_env)
|
if (scheme_current_thread->current_local_env)
|
||||||
phase = scheme_current_thread->current_local_env->genv->phase;
|
phase = scheme_current_thread->current_local_env->genv->phase;
|
||||||
else phase = 0;
|
else phase = 0;
|
||||||
scheme_stx_module_name(&first, phase, &mod, &nomwho, NULL, NULL);
|
scheme_stx_module_name(&first, scheme_make_integer(phase), &mod, &nomwho, NULL, NULL, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -4606,13 +4606,13 @@ static Scheme_Object *call_compile_handler(Scheme_Object *form, int immediate_ev
|
||||||
|
|
||||||
static Scheme_Object *add_renames_unless_module(Scheme_Object *form, Scheme_Env *genv)
|
static Scheme_Object *add_renames_unless_module(Scheme_Object *form, Scheme_Env *genv)
|
||||||
{
|
{
|
||||||
if (genv->rename) {
|
if (genv->rename_set) {
|
||||||
if (SCHEME_STX_PAIRP(form)) {
|
if (SCHEME_STX_PAIRP(form)) {
|
||||||
Scheme_Object *a, *d;
|
Scheme_Object *a, *d;
|
||||||
|
|
||||||
a = SCHEME_STX_CAR(form);
|
a = SCHEME_STX_CAR(form);
|
||||||
if (SCHEME_STX_SYMBOLP(a)) {
|
if (SCHEME_STX_SYMBOLP(a)) {
|
||||||
a = scheme_add_rename(a, genv->rename);
|
a = scheme_add_rename(a, genv->rename_set);
|
||||||
if (scheme_stx_module_eq(a, scheme_module_stx, 0)) {
|
if (scheme_stx_module_eq(a, scheme_module_stx, 0)) {
|
||||||
/* Don't add renames to the whole module; let the
|
/* Don't add renames to the whole module; let the
|
||||||
module's language take over. */
|
module's language take over. */
|
||||||
|
@ -4625,14 +4625,8 @@ static Scheme_Object *add_renames_unless_module(Scheme_Object *form, Scheme_Env
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (genv->rename)
|
if (genv->rename_set)
|
||||||
form = scheme_add_rename(form, genv->rename);
|
form = scheme_add_rename(form, genv->rename_set);
|
||||||
if (genv->exp_env && genv->exp_env->rename)
|
|
||||||
form = scheme_add_rename(form, genv->exp_env->rename);
|
|
||||||
if (genv->template_env && genv->template_env->rename)
|
|
||||||
form = scheme_add_rename(form, genv->template_env->rename);
|
|
||||||
if (genv->dt_rename)
|
|
||||||
form = scheme_add_rename(form, genv->dt_rename);
|
|
||||||
|
|
||||||
return form;
|
return form;
|
||||||
}
|
}
|
||||||
|
@ -5343,7 +5337,7 @@ scheme_compile_expand_expr(Scheme_Object *form, Scheme_Comp_Env *env,
|
||||||
/* If form is a marked name, then force #%top binding.
|
/* If form is a marked name, then force #%top binding.
|
||||||
This is so temporaries can be used as defined ids. */
|
This is so temporaries can be used as defined ids. */
|
||||||
Scheme_Object *nm;
|
Scheme_Object *nm;
|
||||||
nm = scheme_tl_id_sym(env->genv, form, NULL, 0);
|
nm = scheme_tl_id_sym(env->genv, form, NULL, 0, NULL);
|
||||||
if (!SAME_OBJ(nm, SCHEME_STX_VAL(form))) {
|
if (!SAME_OBJ(nm, SCHEME_STX_VAL(form))) {
|
||||||
stx = scheme_datum_to_syntax(top_symbol, scheme_false, scheme_sys_wraps(env), 0, 0);
|
stx = scheme_datum_to_syntax(top_symbol, scheme_false, scheme_sys_wraps(env), 0, 0);
|
||||||
|
|
||||||
|
@ -5738,11 +5732,11 @@ static Scheme_Object *check_top(const char *when, Scheme_Object *form, Scheme_Co
|
||||||
Scheme_Object *modidx, *symbol = c, *tl_id;
|
Scheme_Object *modidx, *symbol = c, *tl_id;
|
||||||
int bad;
|
int bad;
|
||||||
|
|
||||||
tl_id = scheme_tl_id_sym(env->genv, symbol, NULL, 0);
|
tl_id = scheme_tl_id_sym(env->genv, symbol, NULL, 0, NULL);
|
||||||
if (NOT_SAME_OBJ(tl_id, SCHEME_STX_SYM(symbol))) {
|
if (NOT_SAME_OBJ(tl_id, SCHEME_STX_SYM(symbol))) {
|
||||||
/* Since the module has a rename for this id, it's certainly defined. */
|
/* Since the module has a rename for this id, it's certainly defined. */
|
||||||
} else {
|
} else {
|
||||||
modidx = scheme_stx_module_name(&symbol, env->genv->phase, NULL, NULL, NULL, NULL);
|
modidx = scheme_stx_module_name(&symbol, scheme_make_integer(env->genv->phase), NULL, NULL, NULL, NULL, NULL);
|
||||||
if (modidx) {
|
if (modidx) {
|
||||||
/* If it's an access path, resolve it: */
|
/* If it's an access path, resolve it: */
|
||||||
if (env->genv->module
|
if (env->genv->module
|
||||||
|
@ -5753,7 +5747,7 @@ static Scheme_Object *check_top(const char *when, Scheme_Object *form, Scheme_Co
|
||||||
} else
|
} else
|
||||||
bad = 1;
|
bad = 1;
|
||||||
|
|
||||||
if (!env->genv->rename) {
|
if (env->genv->disallow_unbound) {
|
||||||
if (bad || !scheme_lookup_in_table(env->genv->toplevel, (const char *)SCHEME_STX_SYM(c))) {
|
if (bad || !scheme_lookup_in_table(env->genv->toplevel, (const char *)SCHEME_STX_SYM(c))) {
|
||||||
scheme_wrong_syntax(when, NULL, c,
|
scheme_wrong_syntax(when, NULL, c,
|
||||||
(env->genv->phase
|
(env->genv->phase
|
||||||
|
@ -5774,7 +5768,7 @@ top_syntax(Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Compile_Info *rec,
|
||||||
|
|
||||||
c = check_top(scheme_compile_stx_string, form, env);
|
c = check_top(scheme_compile_stx_string, form, env);
|
||||||
|
|
||||||
c = scheme_tl_id_sym(env->genv, c, NULL, 0);
|
c = scheme_tl_id_sym(env->genv, c, NULL, 0, NULL);
|
||||||
|
|
||||||
if (env->genv->module && !rec[drec].resolve_module_ids) {
|
if (env->genv->module && !rec[drec].resolve_module_ids) {
|
||||||
/* Self-reference in a module; need to remember the modidx. Don't
|
/* Self-reference in a module; need to remember the modidx. Don't
|
||||||
|
@ -8779,7 +8773,7 @@ scheme_make_lifted_defn(Scheme_Object *sys_wraps, Scheme_Object **_id, Scheme_Ob
|
||||||
Scheme_Object *l;
|
Scheme_Object *l;
|
||||||
|
|
||||||
/* Registers marked id: */
|
/* Registers marked id: */
|
||||||
scheme_tl_id_sym(env->genv, *_id, scheme_false, 2);
|
scheme_tl_id_sym(env->genv, *_id, scheme_false, 2, NULL);
|
||||||
|
|
||||||
l = icons(scheme_datum_to_syntax(define_values_symbol, scheme_false, sys_wraps, 0, 0),
|
l = icons(scheme_datum_to_syntax(define_values_symbol, scheme_false, sys_wraps, 0, 0),
|
||||||
icons(scheme_make_pair(*_id, scheme_null),
|
icons(scheme_make_pair(*_id, scheme_null),
|
||||||
|
|
|
@ -2570,73 +2570,73 @@ scheme_apply_macro(Scheme_Object *name, Scheme_Env *menv,
|
||||||
Scheme_Object *certs;
|
Scheme_Object *certs;
|
||||||
certs = rec[drec].certs;
|
certs = rec[drec].certs;
|
||||||
|
|
||||||
if (SAME_TYPE(SCHEME_TYPE(rator), scheme_id_macro_type)) {
|
if (SAME_TYPE(SCHEME_TYPE(rator), scheme_id_macro_type)) {
|
||||||
Scheme_Object *mark;
|
Scheme_Object *mark;
|
||||||
|
|
||||||
rator = SCHEME_PTR1_VAL(rator);
|
rator = SCHEME_PTR1_VAL(rator);
|
||||||
/* rator is now an identifier */
|
/* rator is now an identifier */
|
||||||
|
|
||||||
/* and it's introduced by this expression: */
|
/* and it's introduced by this expression: */
|
||||||
mark = scheme_new_mark();
|
mark = scheme_new_mark();
|
||||||
rator = scheme_add_remove_mark(rator, mark);
|
rator = scheme_add_remove_mark(rator, mark);
|
||||||
|
|
||||||
if (for_set) {
|
if (for_set) {
|
||||||
Scheme_Object *tail, *setkw;
|
Scheme_Object *tail, *setkw;
|
||||||
|
|
||||||
tail = SCHEME_STX_CDR(code);
|
tail = SCHEME_STX_CDR(code);
|
||||||
setkw = SCHEME_STX_CAR(code);
|
setkw = SCHEME_STX_CAR(code);
|
||||||
tail = SCHEME_STX_CDR(tail);
|
tail = SCHEME_STX_CDR(tail);
|
||||||
code = scheme_make_pair(setkw, scheme_make_pair(rator, tail));
|
code = scheme_make_pair(setkw, scheme_make_pair(rator, tail));
|
||||||
code = scheme_datum_to_syntax(code, orig_code, orig_code, 0, 0);
|
code = scheme_datum_to_syntax(code, orig_code, orig_code, 0, 0);
|
||||||
} else if (SCHEME_SYMBOLP(SCHEME_STX_VAL(code)))
|
} else if (SCHEME_SYMBOLP(SCHEME_STX_VAL(code)))
|
||||||
code = rator;
|
code = rator;
|
||||||
else {
|
else {
|
||||||
code = SCHEME_STX_CDR(code);
|
code = SCHEME_STX_CDR(code);
|
||||||
code = scheme_make_pair(rator, code);
|
code = scheme_make_pair(rator, code);
|
||||||
code = scheme_datum_to_syntax(code, orig_code, scheme_sys_wraps(env), 0, 0);
|
code = scheme_datum_to_syntax(code, orig_code, scheme_sys_wraps(env), 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
code = cert_with_specials(code, mark, menv, orig_code, orig_code, env, env->genv->phase, 0, 0);
|
code = cert_with_specials(code, mark, menv, orig_code, orig_code, env, env->genv->phase, 0, 0);
|
||||||
|
|
||||||
code = scheme_stx_track(code, orig_code, name);
|
code = scheme_stx_track(code, orig_code, name);
|
||||||
|
|
||||||
return code;
|
return code;
|
||||||
} else {
|
} else {
|
||||||
Scheme_Object *mark, *rands_vec[1];
|
Scheme_Object *mark, *rands_vec[1];
|
||||||
|
|
||||||
certs = scheme_stx_extract_certs(code, certs);
|
certs = scheme_stx_extract_certs(code, certs);
|
||||||
|
|
||||||
if (SAME_TYPE(SCHEME_TYPE(rator), scheme_set_macro_type))
|
if (SAME_TYPE(SCHEME_TYPE(rator), scheme_set_macro_type))
|
||||||
rator = SCHEME_PTR_VAL(rator);
|
rator = SCHEME_PTR_VAL(rator);
|
||||||
|
|
||||||
mark = scheme_new_mark();
|
mark = scheme_new_mark();
|
||||||
code = scheme_add_remove_mark(code, mark);
|
code = scheme_add_remove_mark(code, mark);
|
||||||
|
|
||||||
SCHEME_EXPAND_OBSERVE_MACRO_PRE_X(rec[drec].observer, code);
|
SCHEME_EXPAND_OBSERVE_MACRO_PRE_X(rec[drec].observer, code);
|
||||||
|
|
||||||
scheme_on_next_top(env, mark, boundname, certs,
|
scheme_on_next_top(env, mark, boundname, certs,
|
||||||
menv, menv ? menv->link_midx : env->genv->link_midx);
|
menv, menv ? menv->link_midx : env->genv->link_midx);
|
||||||
|
|
||||||
rands_vec[0] = code;
|
rands_vec[0] = code;
|
||||||
code = scheme_apply(rator, 1, rands_vec);
|
code = scheme_apply(rator, 1, rands_vec);
|
||||||
|
|
||||||
SCHEME_EXPAND_OBSERVE_MACRO_POST_X(rec[drec].observer, code);
|
SCHEME_EXPAND_OBSERVE_MACRO_POST_X(rec[drec].observer, code);
|
||||||
|
|
||||||
if (!SCHEME_STXP(code)) {
|
if (!SCHEME_STXP(code)) {
|
||||||
scheme_raise_exn(MZEXN_FAIL_CONTRACT,
|
scheme_raise_exn(MZEXN_FAIL_CONTRACT,
|
||||||
"%S: return value from syntax expander was not syntax: %V",
|
"%S: return value from syntax expander was not syntax: %V",
|
||||||
SCHEME_STX_SYM(name),
|
SCHEME_STX_SYM(name),
|
||||||
code);
|
code);
|
||||||
}
|
}
|
||||||
|
|
||||||
code = scheme_add_remove_mark(code, mark);
|
code = scheme_add_remove_mark(code, mark);
|
||||||
|
|
||||||
code = cert_with_specials(code, mark, menv, orig_code, orig_code, env, env->genv->phase, 0, 0);
|
code = cert_with_specials(code, mark, menv, orig_code, orig_code, env, env->genv->phase, 0, 0);
|
||||||
|
|
||||||
code = scheme_stx_track(code, orig_code, name);
|
code = scheme_stx_track(code, orig_code, name);
|
||||||
|
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*========================================================================*/
|
/*========================================================================*/
|
||||||
|
|
|
@ -166,6 +166,8 @@ static Scheme_Object *do_hash(Scheme_Hash_Table *table, Scheme_Object *key, int
|
||||||
_h2 = NULL;
|
_h2 = NULL;
|
||||||
} else
|
} else
|
||||||
_h2 = &h2;
|
_h2 = &h2;
|
||||||
|
if ((long)table->make_hash_indices < 0x100)
|
||||||
|
*(long *)0x0 = 1; /* REMOVEME */
|
||||||
table->make_hash_indices((void *)key, (long *)&h, (long *)_h2);
|
table->make_hash_indices((void *)key, (long *)&h, (long *)_h2);
|
||||||
h = h & mask;
|
h = h & mask;
|
||||||
if (_h2) {
|
if (_h2) {
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -2054,15 +2054,11 @@ static int namespace_val_MARK(void *p) {
|
||||||
gcMARK(e->export_registry);
|
gcMARK(e->export_registry);
|
||||||
gcMARK(e->insp);
|
gcMARK(e->insp);
|
||||||
|
|
||||||
gcMARK(e->rename);
|
gcMARK(e->rename_set);
|
||||||
gcMARK(e->et_rename);
|
|
||||||
gcMARK(e->tt_rename);
|
|
||||||
gcMARK(e->dt_rename);
|
|
||||||
|
|
||||||
gcMARK(e->syntax);
|
gcMARK(e->syntax);
|
||||||
gcMARK(e->exp_env);
|
gcMARK(e->exp_env);
|
||||||
gcMARK(e->template_env);
|
gcMARK(e->template_env);
|
||||||
gcMARK(e->label_env);
|
|
||||||
|
|
||||||
gcMARK(e->shadowed_syntax);
|
gcMARK(e->shadowed_syntax);
|
||||||
|
|
||||||
|
@ -2071,13 +2067,13 @@ static int namespace_val_MARK(void *p) {
|
||||||
gcMARK(e->et_require_names);
|
gcMARK(e->et_require_names);
|
||||||
gcMARK(e->tt_require_names);
|
gcMARK(e->tt_require_names);
|
||||||
gcMARK(e->dt_require_names);
|
gcMARK(e->dt_require_names);
|
||||||
|
gcMARK(e->other_require_names);
|
||||||
|
|
||||||
gcMARK(e->toplevel);
|
gcMARK(e->toplevel);
|
||||||
gcMARK(e->modchain);
|
gcMARK(e->modchain);
|
||||||
|
|
||||||
gcMARK(e->modvars);
|
gcMARK(e->modvars);
|
||||||
|
|
||||||
gcMARK(e->marked_names);
|
|
||||||
|
|
||||||
return
|
return
|
||||||
gcBYTES_TO_WORDS(sizeof(Scheme_Env));
|
gcBYTES_TO_WORDS(sizeof(Scheme_Env));
|
||||||
|
@ -2091,15 +2087,11 @@ static int namespace_val_FIXUP(void *p) {
|
||||||
gcFIXUP(e->export_registry);
|
gcFIXUP(e->export_registry);
|
||||||
gcFIXUP(e->insp);
|
gcFIXUP(e->insp);
|
||||||
|
|
||||||
gcFIXUP(e->rename);
|
gcFIXUP(e->rename_set);
|
||||||
gcFIXUP(e->et_rename);
|
|
||||||
gcFIXUP(e->tt_rename);
|
|
||||||
gcFIXUP(e->dt_rename);
|
|
||||||
|
|
||||||
gcFIXUP(e->syntax);
|
gcFIXUP(e->syntax);
|
||||||
gcFIXUP(e->exp_env);
|
gcFIXUP(e->exp_env);
|
||||||
gcFIXUP(e->template_env);
|
gcFIXUP(e->template_env);
|
||||||
gcFIXUP(e->label_env);
|
|
||||||
|
|
||||||
gcFIXUP(e->shadowed_syntax);
|
gcFIXUP(e->shadowed_syntax);
|
||||||
|
|
||||||
|
@ -2108,13 +2100,13 @@ static int namespace_val_FIXUP(void *p) {
|
||||||
gcFIXUP(e->et_require_names);
|
gcFIXUP(e->et_require_names);
|
||||||
gcFIXUP(e->tt_require_names);
|
gcFIXUP(e->tt_require_names);
|
||||||
gcFIXUP(e->dt_require_names);
|
gcFIXUP(e->dt_require_names);
|
||||||
|
gcFIXUP(e->other_require_names);
|
||||||
|
|
||||||
gcFIXUP(e->toplevel);
|
gcFIXUP(e->toplevel);
|
||||||
gcFIXUP(e->modchain);
|
gcFIXUP(e->modchain);
|
||||||
|
|
||||||
gcFIXUP(e->modvars);
|
gcFIXUP(e->modvars);
|
||||||
|
|
||||||
gcFIXUP(e->marked_names);
|
|
||||||
|
|
||||||
return
|
return
|
||||||
gcBYTES_TO_WORDS(sizeof(Scheme_Env));
|
gcBYTES_TO_WORDS(sizeof(Scheme_Env));
|
||||||
|
@ -2324,6 +2316,7 @@ static int module_val_MARK(void *p) {
|
||||||
gcMARK(m->requires);
|
gcMARK(m->requires);
|
||||||
gcMARK(m->tt_requires);
|
gcMARK(m->tt_requires);
|
||||||
gcMARK(m->dt_requires);
|
gcMARK(m->dt_requires);
|
||||||
|
gcMARK(m->other_requires);
|
||||||
|
|
||||||
gcMARK(m->body);
|
gcMARK(m->body);
|
||||||
gcMARK(m->et_body);
|
gcMARK(m->et_body);
|
||||||
|
@ -2351,9 +2344,6 @@ static int module_val_MARK(void *p) {
|
||||||
gcMARK(m->dummy);
|
gcMARK(m->dummy);
|
||||||
|
|
||||||
gcMARK(m->rn_stx);
|
gcMARK(m->rn_stx);
|
||||||
gcMARK(m->et_rn_stx);
|
|
||||||
gcMARK(m->tt_rn_stx);
|
|
||||||
gcMARK(m->dt_rn_stx);
|
|
||||||
|
|
||||||
gcMARK(m->primitive);
|
gcMARK(m->primitive);
|
||||||
return
|
return
|
||||||
|
@ -2368,6 +2358,7 @@ static int module_val_FIXUP(void *p) {
|
||||||
gcFIXUP(m->requires);
|
gcFIXUP(m->requires);
|
||||||
gcFIXUP(m->tt_requires);
|
gcFIXUP(m->tt_requires);
|
||||||
gcFIXUP(m->dt_requires);
|
gcFIXUP(m->dt_requires);
|
||||||
|
gcFIXUP(m->other_requires);
|
||||||
|
|
||||||
gcFIXUP(m->body);
|
gcFIXUP(m->body);
|
||||||
gcFIXUP(m->et_body);
|
gcFIXUP(m->et_body);
|
||||||
|
@ -2395,9 +2386,6 @@ static int module_val_FIXUP(void *p) {
|
||||||
gcFIXUP(m->dummy);
|
gcFIXUP(m->dummy);
|
||||||
|
|
||||||
gcFIXUP(m->rn_stx);
|
gcFIXUP(m->rn_stx);
|
||||||
gcFIXUP(m->et_rn_stx);
|
|
||||||
gcFIXUP(m->tt_rn_stx);
|
|
||||||
gcFIXUP(m->dt_rn_stx);
|
|
||||||
|
|
||||||
gcFIXUP(m->primitive);
|
gcFIXUP(m->primitive);
|
||||||
return
|
return
|
||||||
|
@ -2416,6 +2404,8 @@ static int module_phase_exports_val_SIZE(void *p) {
|
||||||
static int module_phase_exports_val_MARK(void *p) {
|
static int module_phase_exports_val_MARK(void *p) {
|
||||||
Scheme_Module_Phase_Exports *m = (Scheme_Module_Phase_Exports *)p;
|
Scheme_Module_Phase_Exports *m = (Scheme_Module_Phase_Exports *)p;
|
||||||
|
|
||||||
|
gcMARK(m->phase_index);
|
||||||
|
|
||||||
gcMARK(m->src_modidx);
|
gcMARK(m->src_modidx);
|
||||||
|
|
||||||
gcMARK(m->provides);
|
gcMARK(m->provides);
|
||||||
|
@ -2436,6 +2426,8 @@ static int module_phase_exports_val_MARK(void *p) {
|
||||||
static int module_phase_exports_val_FIXUP(void *p) {
|
static int module_phase_exports_val_FIXUP(void *p) {
|
||||||
Scheme_Module_Phase_Exports *m = (Scheme_Module_Phase_Exports *)p;
|
Scheme_Module_Phase_Exports *m = (Scheme_Module_Phase_Exports *)p;
|
||||||
|
|
||||||
|
gcFIXUP(m->phase_index);
|
||||||
|
|
||||||
gcFIXUP(m->src_modidx);
|
gcFIXUP(m->src_modidx);
|
||||||
|
|
||||||
gcFIXUP(m->provides);
|
gcFIXUP(m->provides);
|
||||||
|
@ -2468,6 +2460,7 @@ static int module_exports_val_MARK(void *p) {
|
||||||
gcMARK(m->rt);
|
gcMARK(m->rt);
|
||||||
gcMARK(m->et);
|
gcMARK(m->et);
|
||||||
gcMARK(m->dt);
|
gcMARK(m->dt);
|
||||||
|
gcMARK(m->other_phases);
|
||||||
|
|
||||||
gcMARK(m->src_modidx);
|
gcMARK(m->src_modidx);
|
||||||
return
|
return
|
||||||
|
@ -2480,6 +2473,7 @@ static int module_exports_val_FIXUP(void *p) {
|
||||||
gcFIXUP(m->rt);
|
gcFIXUP(m->rt);
|
||||||
gcFIXUP(m->et);
|
gcFIXUP(m->et);
|
||||||
gcFIXUP(m->dt);
|
gcFIXUP(m->dt);
|
||||||
|
gcFIXUP(m->other_phases);
|
||||||
|
|
||||||
gcFIXUP(m->src_modidx);
|
gcFIXUP(m->src_modidx);
|
||||||
return
|
return
|
||||||
|
@ -4842,6 +4836,7 @@ static int mark_rename_table_SIZE(void *p) {
|
||||||
|
|
||||||
static int mark_rename_table_MARK(void *p) {
|
static int mark_rename_table_MARK(void *p) {
|
||||||
Module_Renames *rn = (Module_Renames *)p;
|
Module_Renames *rn = (Module_Renames *)p;
|
||||||
|
gcMARK(rn->phase);
|
||||||
gcMARK(rn->ht);
|
gcMARK(rn->ht);
|
||||||
gcMARK(rn->nomarshal_ht);
|
gcMARK(rn->nomarshal_ht);
|
||||||
gcMARK(rn->unmarshal_info);
|
gcMARK(rn->unmarshal_info);
|
||||||
|
@ -4854,6 +4849,7 @@ static int mark_rename_table_MARK(void *p) {
|
||||||
|
|
||||||
static int mark_rename_table_FIXUP(void *p) {
|
static int mark_rename_table_FIXUP(void *p) {
|
||||||
Module_Renames *rn = (Module_Renames *)p;
|
Module_Renames *rn = (Module_Renames *)p;
|
||||||
|
gcFIXUP(rn->phase);
|
||||||
gcFIXUP(rn->ht);
|
gcFIXUP(rn->ht);
|
||||||
gcFIXUP(rn->nomarshal_ht);
|
gcFIXUP(rn->nomarshal_ht);
|
||||||
gcFIXUP(rn->unmarshal_info);
|
gcFIXUP(rn->unmarshal_info);
|
||||||
|
@ -4868,6 +4864,35 @@ static int mark_rename_table_FIXUP(void *p) {
|
||||||
#define mark_rename_table_IS_CONST_SIZE 1
|
#define mark_rename_table_IS_CONST_SIZE 1
|
||||||
|
|
||||||
|
|
||||||
|
static int mark_rename_table_set_SIZE(void *p) {
|
||||||
|
return
|
||||||
|
gcBYTES_TO_WORDS(sizeof(Module_Renames_Set));
|
||||||
|
}
|
||||||
|
|
||||||
|
static int mark_rename_table_set_MARK(void *p) {
|
||||||
|
Module_Renames_Set *rns = (Module_Renames_Set *)p;
|
||||||
|
gcMARK(rns->et);
|
||||||
|
gcMARK(rns->rt);
|
||||||
|
gcMARK(rns->other_phases);
|
||||||
|
gcMARK(rns->share_marked_names);
|
||||||
|
return
|
||||||
|
gcBYTES_TO_WORDS(sizeof(Module_Renames_Set));
|
||||||
|
}
|
||||||
|
|
||||||
|
static int mark_rename_table_set_FIXUP(void *p) {
|
||||||
|
Module_Renames_Set *rns = (Module_Renames_Set *)p;
|
||||||
|
gcFIXUP(rns->et);
|
||||||
|
gcFIXUP(rns->rt);
|
||||||
|
gcFIXUP(rns->other_phases);
|
||||||
|
gcFIXUP(rns->share_marked_names);
|
||||||
|
return
|
||||||
|
gcBYTES_TO_WORDS(sizeof(Module_Renames_Set));
|
||||||
|
}
|
||||||
|
|
||||||
|
#define mark_rename_table_set_IS_ATOMIC 0
|
||||||
|
#define mark_rename_table_set_IS_CONST_SIZE 1
|
||||||
|
|
||||||
|
|
||||||
static int mark_srcloc_SIZE(void *p) {
|
static int mark_srcloc_SIZE(void *p) {
|
||||||
return
|
return
|
||||||
gcBYTES_TO_WORDS(sizeof(Scheme_Stx_Srcloc));
|
gcBYTES_TO_WORDS(sizeof(Scheme_Stx_Srcloc));
|
||||||
|
|
|
@ -814,15 +814,11 @@ namespace_val {
|
||||||
gcMARK(e->export_registry);
|
gcMARK(e->export_registry);
|
||||||
gcMARK(e->insp);
|
gcMARK(e->insp);
|
||||||
|
|
||||||
gcMARK(e->rename);
|
gcMARK(e->rename_set);
|
||||||
gcMARK(e->et_rename);
|
|
||||||
gcMARK(e->tt_rename);
|
|
||||||
gcMARK(e->dt_rename);
|
|
||||||
|
|
||||||
gcMARK(e->syntax);
|
gcMARK(e->syntax);
|
||||||
gcMARK(e->exp_env);
|
gcMARK(e->exp_env);
|
||||||
gcMARK(e->template_env);
|
gcMARK(e->template_env);
|
||||||
gcMARK(e->label_env);
|
|
||||||
|
|
||||||
gcMARK(e->shadowed_syntax);
|
gcMARK(e->shadowed_syntax);
|
||||||
|
|
||||||
|
@ -831,13 +827,13 @@ namespace_val {
|
||||||
gcMARK(e->et_require_names);
|
gcMARK(e->et_require_names);
|
||||||
gcMARK(e->tt_require_names);
|
gcMARK(e->tt_require_names);
|
||||||
gcMARK(e->dt_require_names);
|
gcMARK(e->dt_require_names);
|
||||||
|
gcMARK(e->other_require_names);
|
||||||
|
|
||||||
gcMARK(e->toplevel);
|
gcMARK(e->toplevel);
|
||||||
gcMARK(e->modchain);
|
gcMARK(e->modchain);
|
||||||
|
|
||||||
gcMARK(e->modvars);
|
gcMARK(e->modvars);
|
||||||
|
|
||||||
gcMARK(e->marked_names);
|
|
||||||
|
|
||||||
size:
|
size:
|
||||||
gcBYTES_TO_WORDS(sizeof(Scheme_Env));
|
gcBYTES_TO_WORDS(sizeof(Scheme_Env));
|
||||||
|
@ -921,6 +917,7 @@ module_val {
|
||||||
gcMARK(m->requires);
|
gcMARK(m->requires);
|
||||||
gcMARK(m->tt_requires);
|
gcMARK(m->tt_requires);
|
||||||
gcMARK(m->dt_requires);
|
gcMARK(m->dt_requires);
|
||||||
|
gcMARK(m->other_requires);
|
||||||
|
|
||||||
gcMARK(m->body);
|
gcMARK(m->body);
|
||||||
gcMARK(m->et_body);
|
gcMARK(m->et_body);
|
||||||
|
@ -948,9 +945,6 @@ module_val {
|
||||||
gcMARK(m->dummy);
|
gcMARK(m->dummy);
|
||||||
|
|
||||||
gcMARK(m->rn_stx);
|
gcMARK(m->rn_stx);
|
||||||
gcMARK(m->et_rn_stx);
|
|
||||||
gcMARK(m->tt_rn_stx);
|
|
||||||
gcMARK(m->dt_rn_stx);
|
|
||||||
|
|
||||||
gcMARK(m->primitive);
|
gcMARK(m->primitive);
|
||||||
size:
|
size:
|
||||||
|
@ -961,6 +955,8 @@ module_phase_exports_val {
|
||||||
mark:
|
mark:
|
||||||
Scheme_Module_Phase_Exports *m = (Scheme_Module_Phase_Exports *)p;
|
Scheme_Module_Phase_Exports *m = (Scheme_Module_Phase_Exports *)p;
|
||||||
|
|
||||||
|
gcMARK(m->phase_index);
|
||||||
|
|
||||||
gcMARK(m->src_modidx);
|
gcMARK(m->src_modidx);
|
||||||
|
|
||||||
gcMARK(m->provides);
|
gcMARK(m->provides);
|
||||||
|
@ -985,6 +981,7 @@ module_exports_val {
|
||||||
gcMARK(m->rt);
|
gcMARK(m->rt);
|
||||||
gcMARK(m->et);
|
gcMARK(m->et);
|
||||||
gcMARK(m->dt);
|
gcMARK(m->dt);
|
||||||
|
gcMARK(m->other_phases);
|
||||||
|
|
||||||
gcMARK(m->src_modidx);
|
gcMARK(m->src_modidx);
|
||||||
size:
|
size:
|
||||||
|
@ -1974,6 +1971,7 @@ START stxobj;
|
||||||
mark_rename_table {
|
mark_rename_table {
|
||||||
mark:
|
mark:
|
||||||
Module_Renames *rn = (Module_Renames *)p;
|
Module_Renames *rn = (Module_Renames *)p;
|
||||||
|
gcMARK(rn->phase);
|
||||||
gcMARK(rn->ht);
|
gcMARK(rn->ht);
|
||||||
gcMARK(rn->nomarshal_ht);
|
gcMARK(rn->nomarshal_ht);
|
||||||
gcMARK(rn->unmarshal_info);
|
gcMARK(rn->unmarshal_info);
|
||||||
|
@ -1984,6 +1982,17 @@ mark_rename_table {
|
||||||
gcBYTES_TO_WORDS(sizeof(Module_Renames));
|
gcBYTES_TO_WORDS(sizeof(Module_Renames));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mark_rename_table_set {
|
||||||
|
mark:
|
||||||
|
Module_Renames_Set *rns = (Module_Renames_Set *)p;
|
||||||
|
gcMARK(rns->et);
|
||||||
|
gcMARK(rns->rt);
|
||||||
|
gcMARK(rns->other_phases);
|
||||||
|
gcMARK(rns->share_marked_names);
|
||||||
|
size:
|
||||||
|
gcBYTES_TO_WORDS(sizeof(Module_Renames_Set));
|
||||||
|
}
|
||||||
|
|
||||||
mark_srcloc {
|
mark_srcloc {
|
||||||
mark:
|
mark:
|
||||||
Scheme_Stx_Srcloc *s = (Scheme_Stx_Srcloc *)p;
|
Scheme_Stx_Srcloc *s = (Scheme_Stx_Srcloc *)p;
|
||||||
|
|
|
@ -4460,12 +4460,8 @@ static Scheme_Object *do_load_handler(void *data)
|
||||||
/* ... end special support for module loading ... */
|
/* ... end special support for module loading ... */
|
||||||
|
|
||||||
genv = scheme_get_env(config);
|
genv = scheme_get_env(config);
|
||||||
if (genv->rename)
|
if (genv->rename_set)
|
||||||
obj = scheme_add_rename(obj, genv->rename);
|
obj = scheme_add_rename(obj, genv->rename_set);
|
||||||
if (genv->exp_env && genv->exp_env->rename)
|
|
||||||
obj = scheme_add_rename(obj, genv->exp_env->rename);
|
|
||||||
if (genv->template_env && genv->template_env->rename)
|
|
||||||
obj = scheme_add_rename(obj, genv->template_env->rename);
|
|
||||||
|
|
||||||
last_val = _scheme_apply_multi_with_prompt(scheme_get_param(config, MZCONFIG_EVAL_HANDLER),
|
last_val = _scheme_apply_multi_with_prompt(scheme_get_param(config, MZCONFIG_EVAL_HANDLER),
|
||||||
1, &obj);
|
1, &obj);
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
#lang scheme/base
|
||||||
|
|
||||||
(define filename "stypes.h")
|
(define filename "stypes.h")
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
#define USE_COMPILED_STARTUP 1
|
#define USE_COMPILED_STARTUP 1
|
||||||
|
|
||||||
#define EXPECTED_PRIM_COUNT 893
|
#define EXPECTED_PRIM_COUNT 895
|
||||||
|
|
||||||
#ifdef MZSCHEME_SOMETHING_OMITTED
|
#ifdef MZSCHEME_SOMETHING_OMITTED
|
||||||
# undef USE_COMPILED_STARTUP
|
# undef USE_COMPILED_STARTUP
|
||||||
|
|
|
@ -591,7 +591,7 @@ typedef struct Scheme_Stx {
|
||||||
Scheme_Stx_Srcloc *srcloc;
|
Scheme_Stx_Srcloc *srcloc;
|
||||||
Scheme_Object *wraps;
|
Scheme_Object *wraps;
|
||||||
union {
|
union {
|
||||||
long lazy_prefix; /* # of initial items in wraps to propagate */
|
long lazy_prefix; /* # of insitial items in wraps to propagate */
|
||||||
Scheme_Object *modinfo_cache;
|
Scheme_Object *modinfo_cache;
|
||||||
} u;
|
} u;
|
||||||
Scheme_Object *certs; /* cert chain or pair of cert chains */
|
Scheme_Object *certs; /* cert chain or pair of cert chains */
|
||||||
|
@ -658,14 +658,27 @@ Scheme_Object *scheme_stx_remove_extra_marks(Scheme_Object *o, Scheme_Object *re
|
||||||
|
|
||||||
struct Scheme_Module_Phase_Exports; /* forward declaration */
|
struct Scheme_Module_Phase_Exports; /* forward declaration */
|
||||||
|
|
||||||
Scheme_Object *scheme_make_module_rename(long phase, int kind, Scheme_Hash_Table *mns);
|
Scheme_Object *scheme_make_module_rename_set(int kind, Scheme_Object *share_marked_names);
|
||||||
|
void scheme_add_module_rename_to_set(Scheme_Object *set, Scheme_Object *rn);
|
||||||
|
Scheme_Object *scheme_get_module_rename_from_set(Scheme_Object *set, Scheme_Object *phase, int create);
|
||||||
|
|
||||||
|
Scheme_Hash_Table *scheme_get_module_rename_marked_names(Scheme_Object *set, Scheme_Object *phase, int create);
|
||||||
|
|
||||||
|
void scheme_append_rename_set_to_env(Scheme_Object *rns, Scheme_Env *env);
|
||||||
|
|
||||||
|
void scheme_seal_module_rename(Scheme_Object *rn);
|
||||||
|
void scheme_seal_module_rename_set(Scheme_Object *rns);
|
||||||
|
|
||||||
|
Scheme_Object *scheme_make_module_rename(Scheme_Object *phase, int kind, Scheme_Hash_Table *mns);
|
||||||
void scheme_extend_module_rename(Scheme_Object *rn, Scheme_Object *modname,
|
void scheme_extend_module_rename(Scheme_Object *rn, Scheme_Object *modname,
|
||||||
Scheme_Object *locname, Scheme_Object *exname,
|
Scheme_Object *locname, Scheme_Object *exname,
|
||||||
Scheme_Object *nominal_src, Scheme_Object *nominal_ex,
|
Scheme_Object *nominal_src, Scheme_Object *nominal_ex,
|
||||||
int mod_phase, int src_phase_index, int drop_for_marshal);
|
int mod_phase, Scheme_Object *src_phase_index,
|
||||||
|
Scheme_Object *nom_export_phase, int drop_for_marshal);
|
||||||
void scheme_extend_module_rename_with_shared(Scheme_Object *rn, Scheme_Object *modidx,
|
void scheme_extend_module_rename_with_shared(Scheme_Object *rn, Scheme_Object *modidx,
|
||||||
struct Scheme_Module_Phase_Exports *pt, int k,
|
struct Scheme_Module_Phase_Exports *pt,
|
||||||
int src_phase_index,
|
Scheme_Object *unmarshal_phase_index,
|
||||||
|
Scheme_Object *src_phase_index,
|
||||||
int save_unmarshal);
|
int save_unmarshal);
|
||||||
void scheme_extend_module_rename_with_kernel(Scheme_Object *rn, Scheme_Object *nominal_src);
|
void scheme_extend_module_rename_with_kernel(Scheme_Object *rn, Scheme_Object *nominal_src);
|
||||||
void scheme_save_module_rename_unmarshal(Scheme_Object *rn, Scheme_Object *info);
|
void scheme_save_module_rename_unmarshal(Scheme_Object *rn, Scheme_Object *info);
|
||||||
|
@ -681,21 +694,26 @@ void scheme_list_module_rename(Scheme_Object *src, Scheme_Hash_Table *ht);
|
||||||
Scheme_Object *scheme_rename_to_stx(Scheme_Object *rn);
|
Scheme_Object *scheme_rename_to_stx(Scheme_Object *rn);
|
||||||
Scheme_Object *scheme_stx_to_rename(Scheme_Object *stx);
|
Scheme_Object *scheme_stx_to_rename(Scheme_Object *stx);
|
||||||
Scheme_Object *scheme_stx_shift_rename(Scheme_Object *mrn, Scheme_Object *old_midx, Scheme_Object *new_midx);
|
Scheme_Object *scheme_stx_shift_rename(Scheme_Object *mrn, Scheme_Object *old_midx, Scheme_Object *new_midx);
|
||||||
|
Scheme_Object *scheme_stx_shift_rename_set(Scheme_Object *mrns, Scheme_Object *old_midx, Scheme_Object *new_midx);
|
||||||
Scheme_Hash_Table *scheme_module_rename_marked_names(Scheme_Object *rn);
|
Scheme_Hash_Table *scheme_module_rename_marked_names(Scheme_Object *rn);
|
||||||
|
|
||||||
Scheme_Object *scheme_stx_content(Scheme_Object *o);
|
Scheme_Object *scheme_stx_content(Scheme_Object *o);
|
||||||
Scheme_Object *scheme_flatten_syntax_list(Scheme_Object *lst, int *islist);
|
Scheme_Object *scheme_flatten_syntax_list(Scheme_Object *lst, int *islist);
|
||||||
|
|
||||||
int scheme_stx_module_eq(Scheme_Object *a, Scheme_Object *b, long phase);
|
int scheme_stx_module_eq(Scheme_Object *a, Scheme_Object *b, long phase);
|
||||||
Scheme_Object *scheme_stx_module_name(Scheme_Object **name, long phase,
|
int scheme_stx_module_eq2(Scheme_Object *a, Scheme_Object *b, Scheme_Object *phase, Scheme_Object *asym);
|
||||||
|
Scheme_Object *scheme_stx_get_module_eq_sym(Scheme_Object *a, Scheme_Object *phase);
|
||||||
|
Scheme_Object *scheme_stx_module_name(Scheme_Object **name, Scheme_Object *phase,
|
||||||
Scheme_Object **nominal_modidx,
|
Scheme_Object **nominal_modidx,
|
||||||
Scheme_Object **nominal_name,
|
Scheme_Object **nominal_name,
|
||||||
int *mod_phase, int *src_phase_index);
|
Scheme_Object **mod_phase,
|
||||||
Scheme_Object *scheme_stx_moduleless_env(Scheme_Object *a, long phase);
|
Scheme_Object **src_phase_index,
|
||||||
|
Scheme_Object **nominal_src_phase);
|
||||||
|
Scheme_Object *scheme_stx_moduleless_env(Scheme_Object *a, Scheme_Object *phase);
|
||||||
int scheme_stx_parallel_is_used(Scheme_Object *sym, Scheme_Object *stx);
|
int scheme_stx_parallel_is_used(Scheme_Object *sym, Scheme_Object *stx);
|
||||||
|
|
||||||
int scheme_stx_bound_eq(Scheme_Object *a, Scheme_Object *b, long phase);
|
int scheme_stx_bound_eq(Scheme_Object *a, Scheme_Object *b, Scheme_Object *phase);
|
||||||
int scheme_stx_env_bound_eq(Scheme_Object *a, Scheme_Object *b, Scheme_Object *uid, long phase);
|
int scheme_stx_env_bound_eq(Scheme_Object *a, Scheme_Object *b, Scheme_Object *uid, Scheme_Object *phase);
|
||||||
|
|
||||||
Scheme_Object *scheme_stx_source_module(Scheme_Object *stx, int resolve);
|
Scheme_Object *scheme_stx_source_module(Scheme_Object *stx, int resolve);
|
||||||
|
|
||||||
|
@ -2225,6 +2243,7 @@ Scheme_Env *scheme_make_empty_env(void);
|
||||||
void scheme_prepare_exp_env(Scheme_Env *env);
|
void scheme_prepare_exp_env(Scheme_Env *env);
|
||||||
void scheme_prepare_template_env(Scheme_Env *env);
|
void scheme_prepare_template_env(Scheme_Env *env);
|
||||||
void scheme_prepare_label_env(Scheme_Env *env);
|
void scheme_prepare_label_env(Scheme_Env *env);
|
||||||
|
void scheme_prepare_env_renames(Scheme_Env *env, int kind);
|
||||||
|
|
||||||
int scheme_used_app_only(Scheme_Comp_Env *env, int which);
|
int scheme_used_app_only(Scheme_Comp_Env *env, int which);
|
||||||
int scheme_used_ever(Scheme_Comp_Env *env, int which);
|
int scheme_used_ever(Scheme_Comp_Env *env, int which);
|
||||||
|
@ -2346,6 +2365,8 @@ void scheme_unmarshal_wrap_set(Scheme_Unmarshal_Tables *ut,
|
||||||
struct Scheme_Env {
|
struct Scheme_Env {
|
||||||
Scheme_Object so; /* scheme_namespace_type */
|
Scheme_Object so; /* scheme_namespace_type */
|
||||||
|
|
||||||
|
char disallow_unbound, rename_set_ready;
|
||||||
|
|
||||||
struct Scheme_Module *module; /* NULL => top-level */
|
struct Scheme_Module *module; /* NULL => top-level */
|
||||||
|
|
||||||
Scheme_Hash_Table *module_registry; /* symbol -> module ; loaded modules,
|
Scheme_Hash_Table *module_registry; /* symbol -> module ; loaded modules,
|
||||||
|
@ -2354,17 +2375,11 @@ struct Scheme_Env {
|
||||||
Scheme_Object *insp; /* instantiation-time inspector, for granting
|
Scheme_Object *insp; /* instantiation-time inspector, for granting
|
||||||
protected access and certificates */
|
protected access and certificates */
|
||||||
|
|
||||||
/* For compilation, per-declaration: */
|
Scheme_Object *rename_set;
|
||||||
/* First two are passed from module to module-begin: */
|
|
||||||
Scheme_Object *rename; /* module rename record */
|
|
||||||
Scheme_Object *et_rename; /* exp-time rename record */
|
|
||||||
Scheme_Object *tt_rename; /* template-time rename record */
|
|
||||||
Scheme_Object *dt_rename; /* template-time rename record */
|
|
||||||
|
|
||||||
Scheme_Bucket_Table *syntax;
|
Scheme_Bucket_Table *syntax;
|
||||||
struct Scheme_Env *exp_env;
|
struct Scheme_Env *exp_env;
|
||||||
struct Scheme_Env *template_env;
|
struct Scheme_Env *template_env;
|
||||||
struct Scheme_Env *label_env; /* just for renamings */
|
|
||||||
|
|
||||||
Scheme_Hash_Table *shadowed_syntax; /* top level only */
|
Scheme_Hash_Table *shadowed_syntax; /* top level only */
|
||||||
|
|
||||||
|
@ -2372,6 +2387,7 @@ struct Scheme_Env {
|
||||||
long phase, mod_phase;
|
long phase, mod_phase;
|
||||||
Scheme_Object *link_midx;
|
Scheme_Object *link_midx;
|
||||||
Scheme_Object *require_names, *et_require_names, *tt_require_names, *dt_require_names; /* resolved */
|
Scheme_Object *require_names, *et_require_names, *tt_require_names, *dt_require_names; /* resolved */
|
||||||
|
Scheme_Hash_Table *other_require_names;
|
||||||
char running, et_running, tt_running, lazy_syntax, attached, ran, et_ran;
|
char running, et_running, tt_running, lazy_syntax, attached, ran, et_ran;
|
||||||
|
|
||||||
Scheme_Bucket_Table *toplevel;
|
Scheme_Bucket_Table *toplevel;
|
||||||
|
@ -2383,8 +2399,6 @@ struct Scheme_Env {
|
||||||
|
|
||||||
Scheme_Hash_Table *modvars; /* for scheme_module_variable_type hashing */
|
Scheme_Hash_Table *modvars; /* for scheme_module_variable_type hashing */
|
||||||
|
|
||||||
Scheme_Hash_Table *marked_names; /* for mapping marked ids to uninterned symbols */
|
|
||||||
|
|
||||||
int id_counter;
|
int id_counter;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2405,6 +2419,7 @@ typedef struct Scheme_Module
|
||||||
Scheme_Object *requires; /* list of symbol-or-module-path-index */
|
Scheme_Object *requires; /* list of symbol-or-module-path-index */
|
||||||
Scheme_Object *tt_requires; /* list of symbol-or-module-path-index */
|
Scheme_Object *tt_requires; /* list of symbol-or-module-path-index */
|
||||||
Scheme_Object *dt_requires; /* list of symbol-or-module-path-index */
|
Scheme_Object *dt_requires; /* list of symbol-or-module-path-index */
|
||||||
|
Scheme_Hash_Table *other_requires; /* phase to list of symbol-or-module-path-index */
|
||||||
|
|
||||||
Scheme_Invoke_Proc prim_body;
|
Scheme_Invoke_Proc prim_body;
|
||||||
Scheme_Invoke_Proc prim_et_body;
|
Scheme_Invoke_Proc prim_et_body;
|
||||||
|
@ -2442,21 +2457,21 @@ typedef struct Scheme_Module
|
||||||
|
|
||||||
Scheme_Env *primitive;
|
Scheme_Env *primitive;
|
||||||
|
|
||||||
Scheme_Object *rn_stx, *et_rn_stx, *tt_rn_stx, *dt_rn_stx;
|
Scheme_Object *rn_stx;
|
||||||
} Scheme_Module;
|
} Scheme_Module;
|
||||||
|
|
||||||
typedef struct Scheme_Module_Phase_Exports
|
typedef struct Scheme_Module_Phase_Exports
|
||||||
{
|
{
|
||||||
MZTAG_IF_REQUIRED
|
Scheme_Object so;
|
||||||
|
|
||||||
int phase_index;
|
Scheme_Object *phase_index;
|
||||||
|
|
||||||
Scheme_Object *src_modidx; /* same as in enclosing Scheme_Module_Exports */
|
Scheme_Object *src_modidx; /* same as in enclosing Scheme_Module_Exports */
|
||||||
|
|
||||||
Scheme_Object **provides; /* symbols (extenal names) */
|
Scheme_Object **provides; /* symbols (extenal names) */
|
||||||
Scheme_Object **provide_srcs; /* module access paths, #f for self */
|
Scheme_Object **provide_srcs; /* module access paths, #f for self */
|
||||||
Scheme_Object **provide_src_names; /* symbols (original internal names) */
|
Scheme_Object **provide_src_names; /* symbols (original internal names) */
|
||||||
Scheme_Object **provide_nominal_srcs; /* import source if re-exported; NULL or array of lists */
|
Scheme_Object **provide_nominal_srcs; /* import source if re-exported; NULL or array of lists */
|
||||||
char *provide_src_phases; /* NULL, or src phase for for-syntax import */
|
char *provide_src_phases; /* NULL, or src phase for for-syntax import */
|
||||||
int num_provides;
|
int num_provides;
|
||||||
int num_var_provides; /* non-syntax listed first in provides */
|
int num_var_provides; /* non-syntax listed first in provides */
|
||||||
|
@ -2476,7 +2491,10 @@ typedef struct Scheme_Module_Exports
|
||||||
unmarshal syntax-object context. */
|
unmarshal syntax-object context. */
|
||||||
MZTAG_IF_REQUIRED
|
MZTAG_IF_REQUIRED
|
||||||
|
|
||||||
|
/* Most common phases: */
|
||||||
Scheme_Module_Phase_Exports *rt, *et, *dt;
|
Scheme_Module_Phase_Exports *rt, *et, *dt;
|
||||||
|
/* All others: */
|
||||||
|
Scheme_Hash_Table *other_phases;
|
||||||
|
|
||||||
Scheme_Object *src_modidx; /* the one used in marshalled syntax */
|
Scheme_Object *src_modidx; /* the one used in marshalled syntax */
|
||||||
} Scheme_Module_Exports;
|
} Scheme_Module_Exports;
|
||||||
|
@ -2504,7 +2522,7 @@ void scheme_add_global_keyword_symbol(Scheme_Object *name, Scheme_Object *v, Sch
|
||||||
void scheme_add_global_constant(const char *name, Scheme_Object *v, Scheme_Env *env);
|
void scheme_add_global_constant(const char *name, Scheme_Object *v, Scheme_Env *env);
|
||||||
void scheme_add_global_constant_symbol(Scheme_Object *name, Scheme_Object *v, Scheme_Env *env);
|
void scheme_add_global_constant_symbol(Scheme_Object *name, Scheme_Object *v, Scheme_Env *env);
|
||||||
|
|
||||||
Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, Scheme_Object *bdg, int is_def);
|
Scheme_Object *scheme_tl_id_sym(Scheme_Env *env, Scheme_Object *id, Scheme_Object *bdg, int is_def, Scheme_Object *phase);
|
||||||
int scheme_tl_id_is_sym_used(Scheme_Hash_Table *marked_names, Scheme_Object *sym);
|
int scheme_tl_id_is_sym_used(Scheme_Hash_Table *marked_names, Scheme_Object *sym);
|
||||||
|
|
||||||
Scheme_Object *scheme_sys_wraps(Scheme_Comp_Env *env);
|
Scheme_Object *scheme_sys_wraps(Scheme_Comp_Env *env);
|
||||||
|
@ -2552,8 +2570,8 @@ void scheme_clear_modidx_cache(void);
|
||||||
void scheme_clear_shift_cache(void);
|
void scheme_clear_shift_cache(void);
|
||||||
void scheme_clear_prompt_cache(void);
|
void scheme_clear_prompt_cache(void);
|
||||||
|
|
||||||
Scheme_Object *scheme_module_imported_list(Scheme_Env *genv, Scheme_Object *binings, Scheme_Object *modpath,
|
Scheme_Object *scheme_module_imported_list(Scheme_Env *genv, Scheme_Object *bindings, Scheme_Object *modpath,
|
||||||
int include_run, int include_exp, int include_lbl);
|
Scheme_Object *mode);
|
||||||
Scheme_Object *scheme_module_exported_list(Scheme_Object *modpath, Scheme_Env *genv);
|
Scheme_Object *scheme_module_exported_list(Scheme_Object *modpath, Scheme_Env *genv);
|
||||||
|
|
||||||
void scheme_run_module(Scheme_Env *menv, int set_ns);
|
void scheme_run_module(Scheme_Env *menv, int set_ns);
|
||||||
|
|
|
@ -13,12 +13,12 @@
|
||||||
consistently.)
|
consistently.)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define MZSCHEME_VERSION "3.99.0.12"
|
#define MZSCHEME_VERSION "3.99.0.13"
|
||||||
|
|
||||||
#define MZSCHEME_VERSION_X 3
|
#define MZSCHEME_VERSION_X 3
|
||||||
#define MZSCHEME_VERSION_Y 99
|
#define MZSCHEME_VERSION_Y 99
|
||||||
#define MZSCHEME_VERSION_Z 0
|
#define MZSCHEME_VERSION_Z 0
|
||||||
#define MZSCHEME_VERSION_W 12
|
#define MZSCHEME_VERSION_W 13
|
||||||
|
|
||||||
#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)
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -114,129 +114,130 @@ enum {
|
||||||
scheme_case_lambda_sequence_type, /* 96 */
|
scheme_case_lambda_sequence_type, /* 96 */
|
||||||
scheme_begin0_sequence_type, /* 97 */
|
scheme_begin0_sequence_type, /* 97 */
|
||||||
scheme_rename_table_type, /* 98 */
|
scheme_rename_table_type, /* 98 */
|
||||||
scheme_module_type, /* 99 */
|
scheme_rename_table_set_type, /* 99 */
|
||||||
scheme_svector_type, /* 100 */
|
scheme_module_type, /* 100 */
|
||||||
scheme_lazy_macro_type, /* 101 */
|
scheme_svector_type, /* 101 */
|
||||||
scheme_resolve_prefix_type, /* 102 */
|
scheme_lazy_macro_type, /* 102 */
|
||||||
scheme_security_guard_type, /* 103 */
|
scheme_resolve_prefix_type, /* 103 */
|
||||||
scheme_indent_type, /* 104 */
|
scheme_security_guard_type, /* 104 */
|
||||||
scheme_udp_type, /* 105 */
|
scheme_indent_type, /* 105 */
|
||||||
scheme_udp_evt_type, /* 106 */
|
scheme_udp_type, /* 106 */
|
||||||
scheme_tcp_accept_evt_type, /* 107 */
|
scheme_udp_evt_type, /* 107 */
|
||||||
scheme_id_macro_type, /* 108 */
|
scheme_tcp_accept_evt_type, /* 108 */
|
||||||
scheme_evt_set_type, /* 109 */
|
scheme_id_macro_type, /* 109 */
|
||||||
scheme_wrap_evt_type, /* 110 */
|
scheme_evt_set_type, /* 110 */
|
||||||
scheme_handle_evt_type, /* 111 */
|
scheme_wrap_evt_type, /* 111 */
|
||||||
scheme_nack_guard_evt_type, /* 112 */
|
scheme_handle_evt_type, /* 112 */
|
||||||
scheme_semaphore_repost_type, /* 113 */
|
scheme_nack_guard_evt_type, /* 113 */
|
||||||
scheme_channel_type, /* 114 */
|
scheme_semaphore_repost_type, /* 114 */
|
||||||
scheme_channel_put_type, /* 115 */
|
scheme_channel_type, /* 115 */
|
||||||
scheme_thread_resume_type, /* 116 */
|
scheme_channel_put_type, /* 116 */
|
||||||
scheme_thread_suspend_type, /* 117 */
|
scheme_thread_resume_type, /* 117 */
|
||||||
scheme_thread_dead_type, /* 118 */
|
scheme_thread_suspend_type, /* 118 */
|
||||||
scheme_poll_evt_type, /* 119 */
|
scheme_thread_dead_type, /* 119 */
|
||||||
scheme_nack_evt_type, /* 120 */
|
scheme_poll_evt_type, /* 120 */
|
||||||
scheme_module_registry_type, /* 121 */
|
scheme_nack_evt_type, /* 121 */
|
||||||
scheme_thread_set_type, /* 122 */
|
scheme_module_registry_type, /* 122 */
|
||||||
scheme_string_converter_type, /* 123 */
|
scheme_thread_set_type, /* 123 */
|
||||||
scheme_alarm_type, /* 124 */
|
scheme_string_converter_type, /* 124 */
|
||||||
scheme_thread_cell_type, /* 125 */
|
scheme_alarm_type, /* 125 */
|
||||||
scheme_channel_syncer_type, /* 126 */
|
scheme_thread_cell_type, /* 126 */
|
||||||
scheme_special_comment_type, /* 127 */
|
scheme_channel_syncer_type, /* 127 */
|
||||||
scheme_write_evt_type, /* 128 */
|
scheme_special_comment_type, /* 128 */
|
||||||
scheme_always_evt_type, /* 129 */
|
scheme_write_evt_type, /* 129 */
|
||||||
scheme_never_evt_type, /* 130 */
|
scheme_always_evt_type, /* 130 */
|
||||||
scheme_progress_evt_type, /* 131 */
|
scheme_never_evt_type, /* 131 */
|
||||||
scheme_certifications_type, /* 132 */
|
scheme_progress_evt_type, /* 132 */
|
||||||
scheme_already_comp_type, /* 133 */
|
scheme_certifications_type, /* 133 */
|
||||||
scheme_readtable_type, /* 134 */
|
scheme_already_comp_type, /* 134 */
|
||||||
scheme_intdef_context_type, /* 135 */
|
scheme_readtable_type, /* 135 */
|
||||||
scheme_lexical_rib_type, /* 136 */
|
scheme_intdef_context_type, /* 136 */
|
||||||
scheme_thread_cell_values_type, /* 137 */
|
scheme_lexical_rib_type, /* 137 */
|
||||||
scheme_global_ref_type, /* 138 */
|
scheme_thread_cell_values_type, /* 138 */
|
||||||
scheme_cont_mark_chain_type, /* 139 */
|
scheme_global_ref_type, /* 139 */
|
||||||
scheme_raw_pair_type, /* 140 */
|
scheme_cont_mark_chain_type, /* 140 */
|
||||||
scheme_prompt_type, /* 141 */
|
scheme_raw_pair_type, /* 141 */
|
||||||
scheme_prompt_tag_type, /* 142 */
|
scheme_prompt_type, /* 142 */
|
||||||
scheme_expanded_syntax_type, /* 143 */
|
scheme_prompt_tag_type, /* 143 */
|
||||||
scheme_delay_syntax_type, /* 144 */
|
scheme_expanded_syntax_type, /* 144 */
|
||||||
scheme_cust_box_type, /* 145 */
|
scheme_delay_syntax_type, /* 145 */
|
||||||
scheme_resolved_module_path_type, /* 146 */
|
scheme_cust_box_type, /* 146 */
|
||||||
|
scheme_resolved_module_path_type, /* 147 */
|
||||||
|
scheme_module_phase_exports_type, /* 148 */
|
||||||
|
|
||||||
#ifdef MZTAG_REQUIRED
|
#ifdef MZTAG_REQUIRED
|
||||||
_scheme_last_normal_type_, /* 147 */
|
_scheme_last_normal_type_, /* 149 */
|
||||||
|
|
||||||
scheme_rt_weak_array, /* 148 */
|
scheme_rt_weak_array, /* 150 */
|
||||||
|
|
||||||
scheme_rt_comp_env, /* 149 */
|
scheme_rt_comp_env, /* 151 */
|
||||||
scheme_rt_constant_binding, /* 150 */
|
scheme_rt_constant_binding, /* 152 */
|
||||||
scheme_rt_resolve_info, /* 151 */
|
scheme_rt_resolve_info, /* 153 */
|
||||||
scheme_rt_optimize_info, /* 152 */
|
scheme_rt_optimize_info, /* 154 */
|
||||||
scheme_rt_compile_info, /* 153 */
|
scheme_rt_compile_info, /* 155 */
|
||||||
scheme_rt_cont_mark, /* 154 */
|
scheme_rt_cont_mark, /* 156 */
|
||||||
scheme_rt_saved_stack, /* 155 */
|
scheme_rt_saved_stack, /* 157 */
|
||||||
scheme_rt_reply_item, /* 156 */
|
scheme_rt_reply_item, /* 158 */
|
||||||
scheme_rt_closure_info, /* 157 */
|
scheme_rt_closure_info, /* 159 */
|
||||||
scheme_rt_overflow, /* 158 */
|
scheme_rt_overflow, /* 160 */
|
||||||
scheme_rt_overflow_jmp, /* 159 */
|
scheme_rt_overflow_jmp, /* 161 */
|
||||||
scheme_rt_meta_cont, /* 160 */
|
scheme_rt_meta_cont, /* 162 */
|
||||||
scheme_rt_dyn_wind_cell, /* 161 */
|
scheme_rt_dyn_wind_cell, /* 163 */
|
||||||
scheme_rt_dyn_wind_info, /* 162 */
|
scheme_rt_dyn_wind_info, /* 164 */
|
||||||
scheme_rt_dyn_wind, /* 163 */
|
scheme_rt_dyn_wind, /* 165 */
|
||||||
scheme_rt_dup_check, /* 164 */
|
scheme_rt_dup_check, /* 166 */
|
||||||
scheme_rt_thread_memory, /* 165 */
|
scheme_rt_thread_memory, /* 167 */
|
||||||
scheme_rt_input_file, /* 166 */
|
scheme_rt_input_file, /* 168 */
|
||||||
scheme_rt_input_fd, /* 167 */
|
scheme_rt_input_fd, /* 169 */
|
||||||
scheme_rt_oskit_console_input, /* 168 */
|
scheme_rt_oskit_console_input, /* 170 */
|
||||||
scheme_rt_tested_input_file, /* 169 */
|
scheme_rt_tested_input_file, /* 171 */
|
||||||
scheme_rt_tested_output_file, /* 170 */
|
scheme_rt_tested_output_file, /* 172 */
|
||||||
scheme_rt_indexed_string, /* 171 */
|
scheme_rt_indexed_string, /* 173 */
|
||||||
scheme_rt_output_file, /* 172 */
|
scheme_rt_output_file, /* 174 */
|
||||||
scheme_rt_load_handler_data, /* 173 */
|
scheme_rt_load_handler_data, /* 175 */
|
||||||
scheme_rt_pipe, /* 174 */
|
scheme_rt_pipe, /* 176 */
|
||||||
scheme_rt_beos_process, /* 175 */
|
scheme_rt_beos_process, /* 177 */
|
||||||
scheme_rt_system_child, /* 176 */
|
scheme_rt_system_child, /* 178 */
|
||||||
scheme_rt_tcp, /* 177 */
|
scheme_rt_tcp, /* 179 */
|
||||||
scheme_rt_write_data, /* 178 */
|
scheme_rt_write_data, /* 180 */
|
||||||
scheme_rt_tcp_select_info, /* 179 */
|
scheme_rt_tcp_select_info, /* 181 */
|
||||||
scheme_rt_namespace_option, /* 180 */
|
scheme_rt_namespace_option, /* 182 */
|
||||||
scheme_rt_param_data, /* 181 */
|
scheme_rt_param_data, /* 183 */
|
||||||
scheme_rt_will, /* 182 */
|
scheme_rt_will, /* 184 */
|
||||||
scheme_rt_will_registration, /* 183 */
|
scheme_rt_will_registration, /* 185 */
|
||||||
scheme_rt_struct_proc_info, /* 184 */
|
scheme_rt_struct_proc_info, /* 186 */
|
||||||
scheme_rt_linker_name, /* 185 */
|
scheme_rt_linker_name, /* 187 */
|
||||||
scheme_rt_param_map, /* 186 */
|
scheme_rt_param_map, /* 188 */
|
||||||
scheme_rt_finalization, /* 187 */
|
scheme_rt_finalization, /* 189 */
|
||||||
scheme_rt_finalizations, /* 188 */
|
scheme_rt_finalizations, /* 190 */
|
||||||
scheme_rt_cpp_object, /* 189 */
|
scheme_rt_cpp_object, /* 191 */
|
||||||
scheme_rt_cpp_array_object, /* 190 */
|
scheme_rt_cpp_array_object, /* 192 */
|
||||||
scheme_rt_stack_object, /* 191 */
|
scheme_rt_stack_object, /* 193 */
|
||||||
scheme_rt_preallocated_object, /* 192 */
|
scheme_rt_preallocated_object, /* 194 */
|
||||||
scheme_thread_hop_type, /* 193 */
|
scheme_thread_hop_type, /* 195 */
|
||||||
scheme_rt_srcloc, /* 194 */
|
scheme_rt_srcloc, /* 196 */
|
||||||
scheme_rt_evt, /* 195 */
|
scheme_rt_evt, /* 197 */
|
||||||
scheme_rt_syncing, /* 196 */
|
scheme_rt_syncing, /* 198 */
|
||||||
scheme_rt_comp_prefix, /* 197 */
|
scheme_rt_comp_prefix, /* 199 */
|
||||||
scheme_rt_user_input, /* 198 */
|
scheme_rt_user_input, /* 200 */
|
||||||
scheme_rt_user_output, /* 199 */
|
scheme_rt_user_output, /* 201 */
|
||||||
scheme_rt_compact_port, /* 200 */
|
scheme_rt_compact_port, /* 202 */
|
||||||
scheme_rt_read_special_dw, /* 201 */
|
scheme_rt_read_special_dw, /* 203 */
|
||||||
scheme_rt_regwork, /* 202 */
|
scheme_rt_regwork, /* 204 */
|
||||||
scheme_rt_buf_holder, /* 203 */
|
scheme_rt_buf_holder, /* 205 */
|
||||||
scheme_rt_parameterization, /* 204 */
|
scheme_rt_parameterization, /* 206 */
|
||||||
scheme_rt_print_params, /* 205 */
|
scheme_rt_print_params, /* 207 */
|
||||||
scheme_rt_read_params, /* 206 */
|
scheme_rt_read_params, /* 208 */
|
||||||
scheme_rt_native_code, /* 207 */
|
scheme_rt_native_code, /* 209 */
|
||||||
scheme_rt_native_code_plus_case, /* 208 */
|
scheme_rt_native_code_plus_case, /* 210 */
|
||||||
scheme_rt_jitter_data, /* 209 */
|
scheme_rt_jitter_data, /* 211 */
|
||||||
scheme_rt_module_exports, /* 210 */
|
scheme_rt_module_exports, /* 212 */
|
||||||
scheme_rt_module_phase_exports, /* 211 */
|
scheme_rt_delay_load_info, /* 213 */
|
||||||
scheme_rt_delay_load_info, /* 212 */
|
scheme_rt_marshal_info, /* 214 */
|
||||||
scheme_rt_marshal_info, /* 213 */
|
scheme_rt_unmarshal_info, /* 215 */
|
||||||
scheme_rt_unmarshal_info, /* 214 */
|
scheme_rt_runstack, /* 216 */
|
||||||
scheme_rt_runstack, /* 215 */
|
scheme_rt_sfs_info, /* 217 */
|
||||||
scheme_rt_sfs_info, /* 216 */
|
scheme_rt_validate_clearing, /* 218 */
|
||||||
scheme_rt_validate_clearing, /* 217 */
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
_scheme_last_type_
|
_scheme_last_type_
|
||||||
|
|
|
@ -1102,7 +1102,7 @@ defn_targets_syntax (Scheme_Object *var, Scheme_Comp_Env *env, Scheme_Compile_In
|
||||||
Scheme_Object *name, *pr, *bucket;
|
Scheme_Object *name, *pr, *bucket;
|
||||||
|
|
||||||
name = SCHEME_STX_CAR(var);
|
name = SCHEME_STX_CAR(var);
|
||||||
name = scheme_tl_id_sym(env->genv, name, NULL, 2);
|
name = scheme_tl_id_sym(env->genv, name, NULL, 2, NULL);
|
||||||
|
|
||||||
if (rec[drec].resolve_module_ids || !env->genv->module) {
|
if (rec[drec].resolve_module_ids || !env->genv->module) {
|
||||||
bucket = (Scheme_Object *)scheme_global_bucket(name, env->genv);
|
bucket = (Scheme_Object *)scheme_global_bucket(name, env->genv);
|
||||||
|
@ -4025,7 +4025,7 @@ gen_let_syntax (Scheme_Object *form, Scheme_Comp_Env *origenv, char *formname,
|
||||||
|
|
||||||
for (j = pre_k; j < k; j++) {
|
for (j = pre_k; j < k; j++) {
|
||||||
for (m = j + 1; m < k; m++) {
|
for (m = j + 1; m < k; m++) {
|
||||||
if (scheme_stx_bound_eq(names[m], names[j], env->genv->phase))
|
if (scheme_stx_bound_eq(names[m], names[j], scheme_make_integer(env->genv->phase)))
|
||||||
scheme_wrong_syntax(NULL, NULL, form,
|
scheme_wrong_syntax(NULL, NULL, form,
|
||||||
"multiple bindings of `%S' in the same clause",
|
"multiple bindings of `%S' in the same clause",
|
||||||
SCHEME_STX_SYM(names[m]));
|
SCHEME_STX_SYM(names[m]));
|
||||||
|
@ -5285,7 +5285,7 @@ static Scheme_Object *stx_val(Scheme_Object *name, Scheme_Object *_env)
|
||||||
{
|
{
|
||||||
Scheme_Env *env = (Scheme_Env *)_env;
|
Scheme_Env *env = (Scheme_Env *)_env;
|
||||||
|
|
||||||
return scheme_tl_id_sym(env, name, NULL, 2);
|
return scheme_tl_id_sym(env, name, NULL, 2, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Scheme_Object *
|
static Scheme_Object *
|
||||||
|
|
|
@ -579,7 +579,7 @@ void scheme_register_traversers(void)
|
||||||
GC_REG_TRAV(scheme_expanded_syntax_type, twoptr_obj);
|
GC_REG_TRAV(scheme_expanded_syntax_type, twoptr_obj);
|
||||||
GC_REG_TRAV(scheme_module_type, module_val);
|
GC_REG_TRAV(scheme_module_type, module_val);
|
||||||
GC_REG_TRAV(scheme_rt_module_exports, module_exports_val);
|
GC_REG_TRAV(scheme_rt_module_exports, module_exports_val);
|
||||||
GC_REG_TRAV(scheme_rt_module_phase_exports, module_phase_exports_val);
|
GC_REG_TRAV(scheme_module_phase_exports_type, module_phase_exports_val);
|
||||||
GC_REG_TRAV(scheme_module_index_type, modidx_val);
|
GC_REG_TRAV(scheme_module_index_type, modidx_val);
|
||||||
|
|
||||||
GC_REG_TRAV(scheme_security_guard_type, guard_val);
|
GC_REG_TRAV(scheme_security_guard_type, guard_val);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user