module paths normalize to .rkt, load handler converts .rkt back to .ss if necessary
svn: r18788
This commit is contained in:
parent
e672c022c9
commit
bdb71498e3
|
@ -40,29 +40,34 @@
|
|||
;; use the date of the original file (or the zo, whichever
|
||||
;; is newer).
|
||||
(let-values ([(base name dir) (split-path p)])
|
||||
(let* ([ext (filename-extension p)]
|
||||
[pbytes (path->bytes name)]
|
||||
[zo-file-name
|
||||
(and ext
|
||||
(bytes->path
|
||||
(bytes-append
|
||||
(subbytes
|
||||
pbytes
|
||||
0
|
||||
(- (bytes-length pbytes)
|
||||
(bytes-length ext)))
|
||||
#"zo")))]
|
||||
[zo-path (and zo-file-name
|
||||
(build-path
|
||||
base
|
||||
(car (use-compiled-file-paths))
|
||||
zo-file-name))])
|
||||
(cond
|
||||
[(and zo-file-name (file-exists? zo-path))
|
||||
(max (file-or-directory-modify-seconds p)
|
||||
(file-or-directory-modify-seconds zo-file-name))]
|
||||
[else
|
||||
(file-or-directory-modify-seconds p)])))]
|
||||
(let* ([p-date (file-or-directory-modify-seconds p #f (lambda () #f))]
|
||||
[alt-date (and (not p-date)
|
||||
(file-or-directory-modify-seconds
|
||||
(rkt->ss p)
|
||||
#f
|
||||
(lambda () #f)))]
|
||||
[date (or p-date alt-date)]
|
||||
[get-zo-date (lambda (name)
|
||||
(file-or-directory-modify-seconds
|
||||
(build-path
|
||||
base
|
||||
(car (use-compiled-file-paths))
|
||||
(path-add-suffix name #".zo"))
|
||||
#f
|
||||
(lambda () #f)))]
|
||||
[main-zo-date (and (or p-date (not alt-date))
|
||||
(get-zo-date name))]
|
||||
[alt-zo-date (and (or alt-date
|
||||
(and (not p-date)
|
||||
(not alt-date)
|
||||
(not main-zo-date)))
|
||||
(get-zo-date (rkt->ss name)))]
|
||||
[zo-date (or main-zo-date alt-zo-date)])
|
||||
(or (and date
|
||||
zo-date
|
||||
(max date zo-date))
|
||||
date
|
||||
zo-date)))]
|
||||
[(null? p-eles)
|
||||
;; this case shouldn't happen... I think.
|
||||
(c-loop (cdr paths))]
|
||||
|
@ -81,7 +86,8 @@
|
|||
(define (get-deps code path)
|
||||
(filter-map (lambda (x)
|
||||
(let ([r (resolve-module-path-index x path)])
|
||||
(and (path? r) (path->bytes r))))
|
||||
(and (path? r)
|
||||
(path->bytes r))))
|
||||
(append-map cdr (module-compiled-imports code))))
|
||||
|
||||
(define (get-compilation-dir+name mode path)
|
||||
|
@ -104,8 +110,7 @@
|
|||
(close-output-port (open-output-file path #:exists 'append)))
|
||||
|
||||
(define (try-file-time path)
|
||||
;; might be better to use a `with-handlers'
|
||||
(and (file-exists? path) (file-or-directory-modify-seconds path)))
|
||||
(file-or-directory-modify-seconds path #f (lambda () #f)))
|
||||
|
||||
(define (try-delete-file path)
|
||||
;; Attempt to delete, but give up if it doesn't work:
|
||||
|
@ -165,7 +170,7 @@
|
|||
(date-hour d) (date-minute d) (date-second d))))
|
||||
|
||||
(define (verify-times ss-name zo-name)
|
||||
(define ss-sec (try-file-time ss-name)) ; should exist
|
||||
(define ss-sec (try-file-time ss-name))
|
||||
(define zo-sec (try-file-time zo-name))
|
||||
(cond [(not ss-sec) (error 'compile-zo "internal error")]
|
||||
[(not zo-sec) (error 'compile-zo "failed to create .zo file (~a) for ~a"
|
||||
|
@ -184,6 +189,8 @@
|
|||
(define-struct file-dependency (path) #:prefab)
|
||||
|
||||
(define (compile-zo* mode path read-src-syntax zo-name)
|
||||
;; The `path' argument has been converted to .rkt or .ss form,
|
||||
;; as appropriate.
|
||||
;; External dependencies registered through reader guard and
|
||||
;; accomplice-logged events:
|
||||
(define external-deps null)
|
||||
|
@ -275,9 +282,11 @@
|
|||
|
||||
(define depth (make-parameter 0))
|
||||
|
||||
(define (compile-zo mode path read-src-syntax)
|
||||
((manager-compile-notify-handler) path)
|
||||
(trace-printf "compiling: ~a" path)
|
||||
(define (compile-zo mode path orig-path read-src-syntax)
|
||||
;; The `path' argument has been converted to .rkt or .ss form,
|
||||
;; as appropriate.
|
||||
((manager-compile-notify-handler) orig-path)
|
||||
(trace-printf "compiling: ~a" orig-path)
|
||||
(parameterize ([indent (string-append " " (indent))])
|
||||
(let* ([zo-name (path-add-suffix (get-compilation-path mode path) #".zo")]
|
||||
[zo-exists? (file-exists? zo-name)])
|
||||
|
@ -288,7 +297,7 @@
|
|||
(build-string
|
||||
(depth)
|
||||
(λ (x) (if (= 2 (modulo x 3)) #\| #\space)))
|
||||
path))
|
||||
orig-path))
|
||||
(parameterize ([depth (+ (depth) 1)])
|
||||
(with-handlers
|
||||
([exn:get-module-code?
|
||||
|
@ -298,7 +307,7 @@
|
|||
(exn-message ex))
|
||||
(raise ex))])
|
||||
(compile-zo* mode path read-src-syntax zo-name)))))))
|
||||
(trace-printf "end compile: ~a" path))
|
||||
(trace-printf "end compile: ~a" orig-path))
|
||||
|
||||
(define (get-compiled-time mode path)
|
||||
(define-values (dir name) (get-compilation-dir+name mode path))
|
||||
|
@ -308,31 +317,44 @@
|
|||
(try-file-time (build-path dir (path-add-suffix name #".zo")))
|
||||
-inf.0))
|
||||
|
||||
(define (rkt->ss p)
|
||||
(let ([b (path->bytes p)])
|
||||
(if (regexp-match? #rx#"[.]rkt$" b)
|
||||
(path-replace-suffix p #".ss")
|
||||
p)))
|
||||
|
||||
(define (compile-root mode path0 up-to-date read-src-syntax)
|
||||
(define path (simplify-path (cleanse-path path0)))
|
||||
(define (read-deps)
|
||||
(define orig-path (simplify-path (cleanse-path path0)))
|
||||
(define (read-deps path)
|
||||
(with-handlers ([exn:fail:filesystem? (lambda (ex) (list (version)))])
|
||||
(call-with-input-file
|
||||
(path-add-suffix (get-compilation-path mode path) #".dep")
|
||||
read)))
|
||||
(define (do-check)
|
||||
(define path-zo-time (get-compiled-time mode path))
|
||||
(define path-time (try-file-time path))
|
||||
(cond
|
||||
[(not path-time)
|
||||
(trace-printf "~a does not exist" path)
|
||||
path-zo-time]
|
||||
[else
|
||||
(cond
|
||||
(let* ([main-path orig-path]
|
||||
[alt-path (rkt->ss orig-path)]
|
||||
[main-path-time (try-file-time main-path)]
|
||||
[alt-path-time (and (not main-path-time)
|
||||
(not (eq? alt-path main-path))
|
||||
(try-file-time alt-path))]
|
||||
[path (if alt-path-time alt-path main-path)]
|
||||
[path-time (or main-path-time alt-path-time)]
|
||||
[path-zo-time (get-compiled-time mode path)])
|
||||
(cond
|
||||
[(not path-time)
|
||||
(trace-printf "~a does not exist" orig-path)
|
||||
path-zo-time]
|
||||
[else
|
||||
(cond
|
||||
[(> path-time path-zo-time)
|
||||
(trace-printf "newer src...")
|
||||
(compile-zo mode path read-src-syntax)]
|
||||
(compile-zo mode path orig-path read-src-syntax)]
|
||||
[else
|
||||
(let ([deps (read-deps)])
|
||||
(let ([deps (read-deps path)])
|
||||
(cond
|
||||
[(not (and (pair? deps) (equal? (version) (car deps))))
|
||||
(trace-printf "newer version...")
|
||||
(compile-zo mode path read-src-syntax)]
|
||||
(compile-zo mode path orig-path read-src-syntax)]
|
||||
[(ormap
|
||||
(lambda (p)
|
||||
;; (cons 'ext rel-path) => a non-module file (check date)
|
||||
|
@ -348,13 +370,15 @@
|
|||
d t path-zo-time)
|
||||
#t)))
|
||||
(cdr deps))
|
||||
(compile-zo mode path read-src-syntax)]))])
|
||||
(compile-zo mode path orig-path read-src-syntax)]))])
|
||||
(let ([stamp (get-compiled-time mode path)])
|
||||
(hash-set! up-to-date path stamp)
|
||||
stamp)]))
|
||||
(or (and up-to-date (hash-ref up-to-date path #f))
|
||||
((manager-skip-file-handler) path)
|
||||
(begin (trace-printf "checking: ~a" path)
|
||||
(hash-set! up-to-date main-path stamp)
|
||||
(unless (eq? main-path alt-path)
|
||||
(hash-set! up-to-date alt-path stamp))
|
||||
stamp)])))
|
||||
(or (and up-to-date (hash-ref up-to-date orig-path #f))
|
||||
((manager-skip-file-handler) orig-path)
|
||||
(begin (trace-printf "checking: ~a" orig-path)
|
||||
(do-check))))
|
||||
|
||||
(define (managed-compile-zo zo [read-src-syntax read-syntax])
|
||||
|
@ -362,13 +386,14 @@
|
|||
|
||||
(define (make-caching-managed-compile-zo [read-src-syntax read-syntax])
|
||||
(let ([cache (make-hash)])
|
||||
(lambda (zo)
|
||||
(lambda (src)
|
||||
(parameterize ([current-load/use-compiled
|
||||
(make-compilation-manager-load/use-compiled-handler/table
|
||||
cache)])
|
||||
(compile-root (car (use-compiled-file-paths))
|
||||
(path->complete-path zo)
|
||||
cache read-src-syntax)
|
||||
(path->complete-path src)
|
||||
cache
|
||||
read-src-syntax)
|
||||
(void)))))
|
||||
|
||||
(define (make-compilation-manager-load/use-compiled-handler)
|
||||
|
@ -383,7 +408,10 @@
|
|||
(define (compilation-manager-load-handler path mod-name)
|
||||
(cond [(not mod-name)
|
||||
(trace-printf "skipping: ~a mod-name ~s" path mod-name)]
|
||||
[(not (file-exists? path))
|
||||
[(not (or (file-exists? path)
|
||||
(let ([p2 (rkt->ss path)])
|
||||
(and (not (eq? path p2))
|
||||
(file-exists? p2)))))
|
||||
(trace-printf "skipping: ~a file does not exist" path)]
|
||||
[(or (null? (use-compiled-file-paths))
|
||||
(not (equal? (car modes)
|
||||
|
|
|
@ -76,91 +76,102 @@
|
|||
(syntax-case stx ()
|
||||
[(_ orig-stx ctx loc fn reader)
|
||||
;; Parse the file name
|
||||
(let ([c-file (resolve-path-spec (syntax fn) (syntax loc) (syntax orig-stx) #'build-path)]
|
||||
(let ([orig-c-file (resolve-path-spec (syntax fn) (syntax loc) (syntax orig-stx) #'build-path)]
|
||||
[ctx (syntax ctx)]
|
||||
[loc (syntax loc)]
|
||||
[reader (syntax reader)]
|
||||
[orig-stx (syntax orig-stx)])
|
||||
[orig-stx (syntax orig-stx)]
|
||||
[rkt->ss (lambda (p)
|
||||
(let ([b (path->bytes p)])
|
||||
(if (regexp-match? #rx#"[.]rkt$" b)
|
||||
(path-replace-suffix p #".ss")
|
||||
p)))])
|
||||
|
||||
(register-external-file c-file)
|
||||
(let ([c-file (if (file-exists? orig-c-file)
|
||||
orig-c-file
|
||||
(let ([p2 (rkt->ss orig-c-file)])
|
||||
(if (file-exists? p2)
|
||||
p2
|
||||
orig-c-file)))])
|
||||
(register-external-file c-file)
|
||||
|
||||
(let ([read-syntax (if (syntax-e reader)
|
||||
(reader-val
|
||||
(let loop ([e (syntax-object->datum
|
||||
(local-expand reader 'expression null))])
|
||||
(cond
|
||||
[(reader? e) e]
|
||||
[(pair? e) (or (loop (car e))
|
||||
(loop (cdr e)))]
|
||||
[else #f])))
|
||||
read-syntax)])
|
||||
(unless (and (procedure? read-syntax)
|
||||
(procedure-arity-includes? read-syntax 2))
|
||||
(raise-syntax-error
|
||||
#f
|
||||
"reader is not a procedure of two arguments"
|
||||
orig-stx))
|
||||
(let ([read-syntax (if (syntax-e reader)
|
||||
(reader-val
|
||||
(let loop ([e (syntax-object->datum
|
||||
(local-expand reader 'expression null))])
|
||||
(cond
|
||||
[(reader? e) e]
|
||||
[(pair? e) (or (loop (car e))
|
||||
(loop (cdr e)))]
|
||||
[else #f])))
|
||||
read-syntax)])
|
||||
(unless (and (procedure? read-syntax)
|
||||
(procedure-arity-includes? read-syntax 2))
|
||||
(raise-syntax-error
|
||||
#f
|
||||
"reader is not a procedure of two arguments"
|
||||
orig-stx))
|
||||
|
||||
;; Open the included file
|
||||
(let ([p (with-handlers ([exn:fail?
|
||||
(lambda (exn)
|
||||
(raise-syntax-error
|
||||
#f
|
||||
(format
|
||||
"can't open include file (~a)"
|
||||
(if (exn? exn)
|
||||
(exn-message exn)
|
||||
exn))
|
||||
orig-stx
|
||||
c-file))])
|
||||
(open-input-file c-file))])
|
||||
(port-count-lines! p)
|
||||
;; Read expressions from file
|
||||
(let ([content
|
||||
(let loop ()
|
||||
(let ([r (with-handlers ([exn:fail?
|
||||
(lambda (exn)
|
||||
(close-input-port p)
|
||||
(raise-syntax-error
|
||||
#f
|
||||
(format
|
||||
"read error (~a)"
|
||||
(if (exn? exn)
|
||||
(exn-message exn)
|
||||
exn))
|
||||
orig-stx))])
|
||||
(read-syntax c-file p))])
|
||||
(if (eof-object? r)
|
||||
null
|
||||
(cons r (loop)))))])
|
||||
(close-input-port p)
|
||||
;; Preserve src info for content, but set its
|
||||
;; lexical context to be that of the include expression
|
||||
(let ([lexed-content
|
||||
(let loop ([content content])
|
||||
(cond
|
||||
[(pair? content)
|
||||
(cons (loop (car content))
|
||||
(loop (cdr content)))]
|
||||
[(null? content) null]
|
||||
[else
|
||||
(let ([v (syntax-e content)])
|
||||
(datum->syntax-object
|
||||
ctx
|
||||
(cond
|
||||
[(pair? v)
|
||||
(loop v)]
|
||||
[(vector? v)
|
||||
(list->vector (loop (vector->list v)))]
|
||||
[(box? v)
|
||||
(box (loop (unbox v)))]
|
||||
[else
|
||||
v])
|
||||
content))]))])
|
||||
(datum->syntax-object
|
||||
(quote-syntax here)
|
||||
`(begin ,@lexed-content)
|
||||
orig-stx))))))]))
|
||||
;; Open the included file
|
||||
(let ([p (with-handlers ([exn:fail?
|
||||
(lambda (exn)
|
||||
(raise-syntax-error
|
||||
#f
|
||||
(format
|
||||
"can't open include file (~a)"
|
||||
(if (exn? exn)
|
||||
(exn-message exn)
|
||||
exn))
|
||||
orig-stx
|
||||
c-file))])
|
||||
(open-input-file c-file))])
|
||||
(port-count-lines! p)
|
||||
;; Read expressions from file
|
||||
(let ([content
|
||||
(let loop ()
|
||||
(let ([r (with-handlers ([exn:fail?
|
||||
(lambda (exn)
|
||||
(close-input-port p)
|
||||
(raise-syntax-error
|
||||
#f
|
||||
(format
|
||||
"read error (~a)"
|
||||
(if (exn? exn)
|
||||
(exn-message exn)
|
||||
exn))
|
||||
orig-stx))])
|
||||
(read-syntax c-file p))])
|
||||
(if (eof-object? r)
|
||||
null
|
||||
(cons r (loop)))))])
|
||||
(close-input-port p)
|
||||
;; Preserve src info for content, but set its
|
||||
;; lexical context to be that of the include expression
|
||||
(let ([lexed-content
|
||||
(let loop ([content content])
|
||||
(cond
|
||||
[(pair? content)
|
||||
(cons (loop (car content))
|
||||
(loop (cdr content)))]
|
||||
[(null? content) null]
|
||||
[else
|
||||
(let ([v (syntax-e content)])
|
||||
(datum->syntax-object
|
||||
ctx
|
||||
(cond
|
||||
[(pair? v)
|
||||
(loop v)]
|
||||
[(vector? v)
|
||||
(list->vector (loop (vector->list v)))]
|
||||
[(box? v)
|
||||
(box (loop (unbox v)))]
|
||||
[else
|
||||
v])
|
||||
content))]))])
|
||||
(datum->syntax-object
|
||||
(quote-syntax here)
|
||||
`(begin ,@lexed-content)
|
||||
orig-stx)))))))]))
|
||||
|
||||
(define (include/proc stx)
|
||||
(syntax-case stx ()
|
||||
|
|
|
@ -15,94 +15,106 @@
|
|||
(syntax-case stx ()
|
||||
[(_ orig-stx ctx loc fn reader)
|
||||
;; Parse the file name
|
||||
(let ([c-file (resolve-path-spec (syntax fn) (syntax loc) (syntax orig-stx))]
|
||||
(let ([orig-c-file (resolve-path-spec (syntax fn) (syntax loc) (syntax orig-stx))]
|
||||
[ctx (syntax ctx)]
|
||||
[loc (syntax loc)]
|
||||
[reader (syntax reader)]
|
||||
[orig-stx (syntax orig-stx)])
|
||||
|
||||
(register-external-file c-file)
|
||||
[orig-stx (syntax orig-stx)]
|
||||
[rkt->ss (lambda (p)
|
||||
(let ([b (path->bytes p)])
|
||||
(if (regexp-match? #rx#"[.]rkt$" b)
|
||||
(path-replace-suffix p #".ss")
|
||||
p)))])
|
||||
|
||||
(let ([read-syntax (if (syntax-e reader)
|
||||
(reader-val
|
||||
(let loop ([e (syntax->datum
|
||||
(local-expand reader 'expression null))])
|
||||
(cond
|
||||
[(reader? e) e]
|
||||
[(pair? e) (or (loop (car e))
|
||||
(loop (cdr e)))]
|
||||
[else #f])))
|
||||
(lambda (src in)
|
||||
(parameterize ([read-accept-reader #t])
|
||||
(read-syntax src in))))])
|
||||
(unless (and (procedure? read-syntax)
|
||||
(procedure-arity-includes? read-syntax 2))
|
||||
(raise-syntax-error
|
||||
#f
|
||||
"reader is not a procedure of two arguments"
|
||||
orig-stx))
|
||||
(let ([c-file (if (file-exists? orig-c-file)
|
||||
orig-c-file
|
||||
(let ([p2 (rkt->ss orig-c-file)])
|
||||
(if (file-exists? p2)
|
||||
p2
|
||||
orig-c-file)))])
|
||||
|
||||
(register-external-file c-file)
|
||||
|
||||
;; Open the included file
|
||||
(let ([p (with-handlers ([exn:fail?
|
||||
(lambda (exn)
|
||||
(raise-syntax-error
|
||||
#f
|
||||
(format
|
||||
"can't open include file (~a)"
|
||||
(if (exn? exn)
|
||||
(exn-message exn)
|
||||
exn))
|
||||
orig-stx
|
||||
c-file))])
|
||||
(open-input-file c-file))])
|
||||
(port-count-lines! p)
|
||||
;; Read expressions from file
|
||||
(let ([content
|
||||
(let loop ()
|
||||
(let ([r (with-handlers ([exn:fail?
|
||||
(lambda (exn)
|
||||
(close-input-port p)
|
||||
(raise-syntax-error
|
||||
#f
|
||||
(format
|
||||
"read error (~a)"
|
||||
(if (exn? exn)
|
||||
(exn-message exn)
|
||||
exn))
|
||||
orig-stx))])
|
||||
(read-syntax c-file p))])
|
||||
(if (eof-object? r)
|
||||
null
|
||||
(cons r (loop)))))])
|
||||
(close-input-port p)
|
||||
;; Preserve src info for content, but set its
|
||||
;; lexical context to be that of the include expression
|
||||
(let ([lexed-content
|
||||
(let loop ([content content])
|
||||
(cond
|
||||
[(pair? content)
|
||||
(cons (loop (car content))
|
||||
(loop (cdr content)))]
|
||||
[(null? content) null]
|
||||
[else
|
||||
(let ([v (syntax-e content)])
|
||||
(datum->syntax
|
||||
ctx
|
||||
(cond
|
||||
[(pair? v)
|
||||
(loop v)]
|
||||
[(vector? v)
|
||||
(list->vector (loop (vector->list v)))]
|
||||
[(box? v)
|
||||
(box (loop (unbox v)))]
|
||||
[else
|
||||
v])
|
||||
content
|
||||
content))]))])
|
||||
(datum->syntax
|
||||
(quote-syntax here)
|
||||
`(begin ,@lexed-content)
|
||||
orig-stx))))))]))
|
||||
(let ([read-syntax (if (syntax-e reader)
|
||||
(reader-val
|
||||
(let loop ([e (syntax->datum
|
||||
(local-expand reader 'expression null))])
|
||||
(cond
|
||||
[(reader? e) e]
|
||||
[(pair? e) (or (loop (car e))
|
||||
(loop (cdr e)))]
|
||||
[else #f])))
|
||||
(lambda (src in)
|
||||
(parameterize ([read-accept-reader #t])
|
||||
(read-syntax src in))))])
|
||||
(unless (and (procedure? read-syntax)
|
||||
(procedure-arity-includes? read-syntax 2))
|
||||
(raise-syntax-error
|
||||
#f
|
||||
"reader is not a procedure of two arguments"
|
||||
orig-stx))
|
||||
|
||||
;; Open the included file
|
||||
(let ([p (with-handlers ([exn:fail?
|
||||
(lambda (exn)
|
||||
(raise-syntax-error
|
||||
#f
|
||||
(format
|
||||
"can't open include file (~a)"
|
||||
(if (exn? exn)
|
||||
(exn-message exn)
|
||||
exn))
|
||||
orig-stx
|
||||
c-file))])
|
||||
(open-input-file c-file))])
|
||||
(port-count-lines! p)
|
||||
;; Read expressions from file
|
||||
(let ([content
|
||||
(let loop ()
|
||||
(let ([r (with-handlers ([exn:fail?
|
||||
(lambda (exn)
|
||||
(close-input-port p)
|
||||
(raise-syntax-error
|
||||
#f
|
||||
(format
|
||||
"read error (~a)"
|
||||
(if (exn? exn)
|
||||
(exn-message exn)
|
||||
exn))
|
||||
orig-stx))])
|
||||
(read-syntax c-file p))])
|
||||
(if (eof-object? r)
|
||||
null
|
||||
(cons r (loop)))))])
|
||||
(close-input-port p)
|
||||
;; Preserve src info for content, but set its
|
||||
;; lexical context to be that of the include expression
|
||||
(let ([lexed-content
|
||||
(let loop ([content content])
|
||||
(cond
|
||||
[(pair? content)
|
||||
(cons (loop (car content))
|
||||
(loop (cdr content)))]
|
||||
[(null? content) null]
|
||||
[else
|
||||
(let ([v (syntax-e content)])
|
||||
(datum->syntax
|
||||
ctx
|
||||
(cond
|
||||
[(pair? v)
|
||||
(loop v)]
|
||||
[(vector? v)
|
||||
(list->vector (loop (vector->list v)))]
|
||||
[(box? v)
|
||||
(box (loop (unbox v)))]
|
||||
[else
|
||||
v])
|
||||
content
|
||||
content))]))])
|
||||
(datum->syntax
|
||||
(quote-syntax here)
|
||||
`(begin ,@lexed-content)
|
||||
orig-stx)))))))]))
|
||||
|
||||
(define-syntax (include stx)
|
||||
(syntax-case stx ()
|
||||
|
|
|
@ -275,7 +275,11 @@
|
|||
(if m
|
||||
(module-compiled-imports m)
|
||||
null))))))
|
||||
(cons path r)))])))
|
||||
(let ([l (cons path r)])
|
||||
;; If we need an .rkt path, also allow access to .ss path
|
||||
(if (regexp-match? #rx#"[.]rkt$" (path->bytes path))
|
||||
(cons (path-replace-suffix path #".ss") l)
|
||||
l))))])))
|
||||
|
||||
;; Resources ----------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -23,7 +23,15 @@
|
|||
[else c]))
|
||||
|
||||
(define-for-syntax (extract orig-path stx)
|
||||
(let ([path (resolve-path-spec orig-path orig-path stx)])
|
||||
(let* ([n-path (resolve-path-spec orig-path orig-path stx)]
|
||||
[path (if (regexp-match? #rx#"[.]rkt$" (path->bytes n-path))
|
||||
(if (file-exists? n-path)
|
||||
n-path
|
||||
(let ([ss (path-replace-suffix n-path #".ss")])
|
||||
(if (file-exists? ss)
|
||||
ss
|
||||
n-path)))
|
||||
n-path)])
|
||||
(let ([s-exp
|
||||
(parameterize ([current-namespace (make-base-namespace)]
|
||||
[read-accept-reader #t]
|
||||
|
|
|
@ -252,15 +252,17 @@ A parameter whose value is called for each file that is loaded and
|
|||
|
||||
@defproc[(file-date-in-collection [p path?]) (or/c number? #f)]{
|
||||
Calls @scheme[file-date-in-paths] with @scheme[p] and
|
||||
@scheme[(current-library-collection-paths)].
|
||||
}
|
||||
@scheme[(current-library-collection-paths)].}
|
||||
|
||||
@defproc[(file-date-in-paths [p path?] [paths (listof path?)]) (or/c number? #f)]{
|
||||
This is a function intended to be used with @scheme[manager-skip-file-handler].
|
||||
It returns the date of the @tt{.ss} or @tt{.zo} file (whichever is newer)
|
||||
for any path that is inside the @scheme[paths] argument, and
|
||||
@scheme[#f] for any other path.
|
||||
}
|
||||
|
||||
Returns the file-modification date of @scheme[p] or its bytecode form
|
||||
(i.e., @filepath{.zo} file), whichever exists and is newer, if
|
||||
@scheme[p] is an extension of any path in @scheme[paths] (i.e.,
|
||||
exists in the directory, a subdirectory, etc.). Otherwise, the result
|
||||
is @scheme[#f].
|
||||
|
||||
This function is intended for use with @scheme[manager-skip-file-handler].}
|
||||
|
||||
@; ----------------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -213,24 +213,34 @@ The protocol for a @tech{compiled-load handler} is the same as for the
|
|||
@tech{load handler} (see @scheme[current-load]), except that a
|
||||
@tech{compiled-load handler} is expected to set
|
||||
@scheme[current-load-relative-directory] itself. The default
|
||||
@tech{compiled-load handler}, however, checks for @filepath{.zo} files
|
||||
(usually produced with @scheme[compile-file]) and @filepath{.so} (Unix),
|
||||
@filepath{.dll} (Windows), or @filepath{.dylib} (Mac OS X) files.
|
||||
@tech{compiled-load handler}, however, checks for a @filepath{.ss}
|
||||
file when then given path ends with @filepath{.rkt} and no
|
||||
@filepath{.rkt} file exists. In addition, the default
|
||||
@tech{compiled-load handler} checks for @filepath{.zo} (bytecode)
|
||||
files and @filepath{.so} (native Unix), @filepath{.dll} (native
|
||||
Windows), or @filepath{.dylib} (native Mac OS X) files.
|
||||
|
||||
The check for a compiled file occurs whenever the given path
|
||||
@scheme[_file] ends with any extension (e.g., @filepath{.ss} or
|
||||
@filepath{.scm}), and the check consults the subdirectories indicated by
|
||||
the @scheme[use-compiled-file-paths] parameter relative to
|
||||
@scheme[_file]. The subdirectories are checked in order. A @filepath{.zo}
|
||||
version of the file is loaded if it exists directly in one of the
|
||||
indicated subdirectories, or a @filepath{.so}/@filepath{.dll}/@filepath{.dylib}
|
||||
version of the file is loaded if it exists within a @filepath{native}
|
||||
subdirectory of a @scheme[use-compiled-file-paths] directory, in an
|
||||
even deeper subdirectory as named by
|
||||
@scheme[system-library-subpath]. A compiled file is loaded only if its
|
||||
modification date is not older than the date for @scheme[_file]. If
|
||||
both @filepath{.zo} and @filepath{.so}/@filepath{.dll}/@filepath{.dylib} files are
|
||||
available, the @filepath{.so}/@filepath{.dll}/@filepath{.dylib} file is used.
|
||||
@scheme[_file] ends with any extension (e.g., @filepath{.rkt} or
|
||||
@filepath{.scrbl}), and the check consults the subdirectories
|
||||
indicated by the @scheme[use-compiled-file-paths] parameter relative
|
||||
to @scheme[_file]. The subdirectories are checked in order. A
|
||||
@filepath{.zo} version of the file (whose name is formed by passing
|
||||
@scheme[_file] and @scheme[#".zo"] to @scheme[path-add-suffix]) is
|
||||
loaded if it exists directly in one of the indicated subdirectories,
|
||||
or a @filepath{.so}/@filepath{.dll}/@filepath{.dylib} version of the
|
||||
file is loaded if it exists within a @filepath{native} subdirectory of
|
||||
a @scheme[use-compiled-file-paths] directory, in an even deeper
|
||||
subdirectory as named by @scheme[system-library-subpath]. A compiled
|
||||
file is loaded only if its modification date is not older than the
|
||||
date for @scheme[_file]. If both @filepath{.zo} and
|
||||
@filepath{.so}/@filepath{.dll}/@filepath{.dylib} files are available,
|
||||
the @filepath{.so}/@filepath{.dll}/@filepath{.dylib} file is used. If
|
||||
@scheme[_file] ends with @filepath{.rkt}, no such file exists, and a
|
||||
@filepath{.ss} file exists, then @filepath{.zo} and
|
||||
@filepath{.so}/@filepath{.dll}/@filepath{.dylib} files are used only
|
||||
with names based on @scheme[_file] with its suffixed replaced by
|
||||
@filepath{.ss}.
|
||||
|
||||
While a @filepath{.zo}, @filepath{.so}, @filepath{.dll}, or
|
||||
@filepath{.dylib} file is loaded, the current @scheme[load-relative]
|
||||
|
|
|
@ -61,7 +61,7 @@ the grammar for @scheme[_module-path] for @scheme[require],
|
|||
|
||||
A parameter that determines the current @deftech{module name
|
||||
resolver}, which manages the conversion from other kinds of module
|
||||
references to a symbol or @tech{resolved module path}. For example,
|
||||
references to a @tech{resolved module path}. For example,
|
||||
when the expander encounters @scheme[(require _module-path)] where
|
||||
@scheme[_module-path] is not an identifier, then the expander passes
|
||||
@scheme['_module-path] to the module name resolver to obtain a symbol
|
||||
|
@ -223,7 +223,7 @@ above).}
|
|||
|
||||
Combines @scheme[path] and @scheme[mpi] to create a new @tech{module
|
||||
path index}. The @scheme[path] argument can @scheme[#f] only if
|
||||
@scheme[mpi] is also @scheme[false].}
|
||||
@scheme[mpi] is also @scheme[#f].}
|
||||
|
||||
@defproc[(compiled-module-expression? [v any/c]) boolean?]{
|
||||
|
||||
|
|
|
@ -456,8 +456,9 @@ corresponds to the default @tech{module name resolver}.
|
|||
Refers to a module previously declared interactively with the name
|
||||
@scheme[id].
|
||||
|
||||
Example: Require'ing a module named test.
|
||||
@scheme[(require 'test)]}
|
||||
@examples[
|
||||
(code:comment @#,t{a module declared interactively as @schemeidfont{test}:})
|
||||
(eval:alts (require '@#,schemeidfont{test}) (void))]}
|
||||
|
||||
@specsubform[rel-string]{A path relative to the containing source (as
|
||||
determined by @scheme[current-load-relative-directory] or
|
||||
|
@ -481,13 +482,18 @@ corresponds to the default @tech{module name resolver}.
|
|||
UTF-8 encoding). Such encodings are not decoded to arrive at a
|
||||
filename, but instead preserved in the file access.}
|
||||
|
||||
Example: Require a module named x.ss in the same directory as this file.
|
||||
If @scheme[rel-string] ends with a @filepath{.ss} suffix, it is
|
||||
converted to a @filepath{.rkt} suffix. The @tech{compiled-load
|
||||
handler} may reverse that conversion if a @filepath{.rkt} file does
|
||||
not exist and a @filepath{.ss} exists.
|
||||
|
||||
@scheme[(require "x.ss")]
|
||||
|
||||
Require a module named x.ss in the parent directory.
|
||||
|
||||
@scheme[(require "../x.ss")]}
|
||||
@examples[
|
||||
(code:comment @#,t{a module named @filepath{x.rkt} in the same})
|
||||
(code:comment @#,t{directory as the enclosing module's file:})
|
||||
(eval:alts (require "x.rkt") (void))
|
||||
(code:comment @#,t{a module named @filepath{x.rkt} in the parent directory})
|
||||
(code:comment @#,t{of the enclosing module file's directory:})
|
||||
(eval:alts (require "../x.rkt") (void))]}
|
||||
|
||||
@defsubform[(lib rel-string ...+)]{A path to a module installed into
|
||||
a @tech{collection} (see @secref["collects"]). The @scheme[rel-string]s in
|
||||
|
@ -503,43 +509,52 @@ corresponds to the default @tech{module name resolver}.
|
|||
@item{If a single @scheme[rel-string] is provided, and if it
|
||||
consists of a single element (i.e., no @litchar{/}) with no file
|
||||
suffix (i.e., no @litchar{.}), then @scheme[rel-string] names a
|
||||
@tech{collection}, and @filepath{main.ss} is the library file name.
|
||||
@tech{collection}, and @filepath{main.rkt} is the library file name.
|
||||
|
||||
Example: require swindle
|
||||
@defexamples[#:eval require-eval
|
||||
(eval:alts (require (lib "swindle")) (void))]}
|
||||
@examples[
|
||||
(code:comment @#,t{the main @schememodname[swindle] library:})
|
||||
(eval:alts (require (lib "swindle")) (void))
|
||||
(code:comment @#,t{the same:})
|
||||
(eval:alts (require (lib "swindle/main.rkt")) (void))]}
|
||||
|
||||
@item{If a single @scheme[rel-string] is provided, and if it
|
||||
consists of multiple @litchar{/}-separated elements, then each
|
||||
element up to the last names a @tech{collection}, subcollection,
|
||||
etc., and the last element names a file. If the last element has
|
||||
no file suffix, @filepath{.ss} is added.
|
||||
no file suffix, @filepath{.rkt} is added, while a @filepath{.ss}
|
||||
suffix is converted to @filepath{.rkt}.
|
||||
|
||||
Example: require a file within the swindle collection
|
||||
@defexamples[#:eval require-eval
|
||||
(eval:alts (require (lib "swindle/turbo")) (void))]}
|
||||
@examples[
|
||||
(code:comment @#,t{@filepath{turbo.rkt} from the @filepath{swindle} collection:})
|
||||
(eval:alts (require (lib "swindle/turbo")) (void))
|
||||
(code:comment @#,t{the same:})
|
||||
(eval:alts (require (lib "swindle/turbo.rkt")) (void))
|
||||
(code:comment @#,t{the same:})
|
||||
(eval:alts (require (lib "swindle/turbo.ss")) (void))]}
|
||||
|
||||
@item{If a single @scheme[rel-string] is provided, and if it
|
||||
consists of a single element @italic{with} a file suffix (i.e,
|
||||
with a @litchar{.}), then @scheme[rel-string] names a file within
|
||||
the @filepath{mzlib} @tech{collection}. (This convention is for
|
||||
the @filepath{mzlib} @tech{collection}. A @filepath{.ss}
|
||||
suffix is converted to @filepath{.rkt}. (This convention is for
|
||||
compatibility with older version of PLT Scheme.)
|
||||
|
||||
Example: require the tar module from mzlib
|
||||
@defexamples[#:eval require-eval
|
||||
(eval:alts (require (lib "tar.ss")) (void))]}
|
||||
@examples[
|
||||
(code:comment @#,t{@filepath{tar.rkt} module from the @filepath{mzlib} collection:})
|
||||
(eval:alts (require (lib "tar.ss")) (void))]}
|
||||
|
||||
@item{Otherwise, when multiple @scheme[rel-string]s are provided,
|
||||
the first @scheme[rel-string] is effectively moved after the
|
||||
others, and all @scheme[rel-string]s are appended with @litchar{/}
|
||||
separators. The resulting path names a @tech{collection}, then
|
||||
subcollection, etc., ending with a file name. No suffix is added
|
||||
automatically. (This convention is for compatibility
|
||||
with older version of PLT Scheme.)
|
||||
automatically, but a @filepath{.ss} suffix is converted to
|
||||
@filepath{.rkt}. (This convention is for compatibility with older
|
||||
version of PLT Scheme.)
|
||||
|
||||
Example: require the tar module from mzlib
|
||||
@defexamples[#:eval require-eval
|
||||
(eval:alts (require (lib "tar.ss" "mzlib")) (void))]}
|
||||
@examples[
|
||||
(code:comment @#,t{@filepath{tar.rkt} module from the @filepath{mzlib} collection:})
|
||||
(eval:alts (require (lib "tar.ss" "mzlib")) (void))]}
|
||||
]}
|
||||
|
||||
@specsubform[id]{A shorthand for a @scheme[lib] form with a single
|
||||
|
@ -553,8 +568,9 @@ corresponds to the default @tech{module name resolver}.
|
|||
@defsubform[(file string)]{Similar to the plain @scheme[rel-string]
|
||||
case, but @scheme[string] is a path---possibly absolute---using the
|
||||
current platform's path conventions and @scheme[expand-user-path].
|
||||
A @filepath{.ss} suffix is converted to @filepath{.rkt}.
|
||||
|
||||
@examples[(eval:alts (require (file "~/tmp/x.ss")) (void))]}
|
||||
@examples[(eval:alts (require (file "~/tmp/x.rkt")) (void))]}
|
||||
|
||||
@defsubform*[((planet id)
|
||||
(planet string)
|
||||
|
@ -590,14 +606,15 @@ corresponds to the default @tech{module name resolver}.
|
|||
(that do not encode one of the other allowed characters), and an
|
||||
@nonterm{int} is a non-empty sequence of ASCII digits. As this
|
||||
shorthand is expended, a @filepath{.plt} extension is added to
|
||||
@nonterm{pkg}, and a @filepath{.ss} extension is added to
|
||||
@nonterm{path}; if no @nonterm{path} is included, @filepath{main.ss}
|
||||
@nonterm{pkg}, and a @filepath{.rkt} extension is added to
|
||||
@nonterm{path}; if no @nonterm{path} is included, @filepath{main.rkt}
|
||||
is used in the expansion.
|
||||
|
||||
A @scheme[(planet string)] form is like a @scheme[(planet id)] form
|
||||
with the identifier converted to a string, except that the
|
||||
@scheme[string] can optionally end with a file extension (i.e., a
|
||||
@litchar{.}) for a @nonterm{path}.
|
||||
@litchar{.}) for a @nonterm{path}. A @filepath{.ss} file extension is
|
||||
converted to @filepath{.rkt}.
|
||||
|
||||
In the more general last form of a @scheme[planet] module path, the
|
||||
@scheme[rel-string]s are similar to the @scheme[lib] form, except
|
||||
|
@ -615,13 +632,13 @@ corresponds to the default @tech{module name resolver}.
|
|||
symbolically.
|
||||
|
||||
@examples[
|
||||
(code:comment @#,t{@filepath{main.ss} in package @filepath{farm} by @filepath{mcdonald}:})
|
||||
(code:comment @#,t{@filepath{main.rkt} in package @filepath{farm} by @filepath{mcdonald}:})
|
||||
(eval:alts (require (planet mcdonald/farm)) (void))
|
||||
(code:comment @#,t{@filepath{main.ss} in version >= 2.0 of @filepath{farm} by @filepath{mcdonald}:})
|
||||
(code:comment @#,t{@filepath{main.rkt} in version >= 2.0 of @filepath{farm} by @filepath{mcdonald}:})
|
||||
(eval:alts (require (planet mcdonald/farm:2)) (void))
|
||||
(code:comment @#,t{@filepath{main.ss} in version >= 2.5 of @filepath{farm} by @filepath{mcdonald}:})
|
||||
(code:comment @#,t{@filepath{main.rkt} in version >= 2.5 of @filepath{farm} by @filepath{mcdonald}:})
|
||||
(eval:alts (require (planet mcdonald/farm:2:5)) (void))
|
||||
(code:comment @#,t{@filepath{duck.ss} in version >= 2.5 of @filepath{farm} by @filepath{mcdonald}:})
|
||||
(code:comment @#,t{@filepath{duck.rkt} in version >= 2.5 of @filepath{farm} by @filepath{mcdonald}:})
|
||||
(eval:alts (require (planet mcdonald/farm:2:5/duck)) (void))
|
||||
]}
|
||||
|
||||
|
@ -629,7 +646,7 @@ No identifier can be bound multiple times in a given @tech{phase
|
|||
level} by an import, unless all of the bindings refer to the same
|
||||
original definition in the same module. In a @tech{module context},
|
||||
an identifier can be either imported or defined for a given
|
||||
@tech{phase level}, but not both.}}
|
||||
@tech{phase level}, but not both.}
|
||||
|
||||
|
||||
@guideintro["module-provide"]{@scheme[provide]}
|
||||
|
|
|
@ -78,22 +78,52 @@
|
|||
[sub-path sub-path0] [compiler compile0] [extension-handler ext-handler0]
|
||||
#:choose [choose (lambda (src zo so) #f)]
|
||||
#:notify [notify void]
|
||||
#:source-reader [read-src-syntax read-syntax])
|
||||
#:source-reader [read-src-syntax read-syntax]
|
||||
#:rkt-try-ss? [rkt-try-ss? #t])
|
||||
(unless (path-string? path)
|
||||
(raise-type-error 'get-module-code "path or string (sans nul)" path))
|
||||
(let*-values ([(path) (resolve path)]
|
||||
[(base file dir?) (split-path path)]
|
||||
(let*-values ([(orig-path) (resolve path)]
|
||||
[(base orig-file dir?) (split-path path)]
|
||||
[(main-file alt-file)
|
||||
(if rkt-try-ss?
|
||||
(let* ([b (path->bytes orig-file)]
|
||||
[len (bytes-length b)])
|
||||
(cond
|
||||
[(and (len . >= . 4)
|
||||
(bytes=? #".rkt" (subbytes b (- len 4))))
|
||||
;; .rkt => try .rkt then .ss
|
||||
(values orig-file
|
||||
(bytes->path (bytes-append (subbytes b 0 (- len 4)) #".ss")))]
|
||||
[else
|
||||
;; No search path
|
||||
(values orig-file #f)]))
|
||||
(values orig-file #f))]
|
||||
[(main-path) (if (eq? main-file orig-file)
|
||||
orig-path
|
||||
(build-path base main-file))]
|
||||
[(alt-path) (and alt-file
|
||||
(if (eq? alt-file orig-file)
|
||||
orig-path
|
||||
(build-path base alt-file)))]
|
||||
[(base) (if (eq? base 'relative) 'same base)]
|
||||
[(mode) (use-compiled-file-paths)])
|
||||
(let* ([get-so (lambda (file)
|
||||
(let* ([main-path-d (file-or-directory-modify-seconds path #f (lambda () #f))]
|
||||
[alt-path-d (and alt-path
|
||||
(file-or-directory-modify-seconds alt-path #f (lambda () #f)))]
|
||||
[path-d (or main-path-d alt-path-d)]
|
||||
[file (if alt-path-d alt-file main-file)]
|
||||
[path (if alt-path-d alt-path main-path)]
|
||||
[try-alt? (and (not alt-path-d) (not main-path-d))]
|
||||
[get-so (lambda (file)
|
||||
(build-path
|
||||
base sub-path "native"
|
||||
(system-library-subpath)
|
||||
(path-add-suffix file (system-type 'so-suffix))))]
|
||||
[zo (build-path base sub-path (path-add-suffix file #".zo"))]
|
||||
[alt-zo (and try-alt?
|
||||
(build-path base sub-path (path-add-suffix alt-file #".zo")))]
|
||||
[so (get-so file)]
|
||||
[path-d (with-handlers ([exn:fail:filesystem? (lambda (x) #f)])
|
||||
(file-or-directory-modify-seconds path))]
|
||||
[alt-so (and try-alt? (get-so alt-file))]
|
||||
[with-dir (lambda (t)
|
||||
(parameterize ([current-load-relative-directory
|
||||
(if (path? base)
|
||||
|
@ -105,13 +135,17 @@
|
|||
;; Use .zo, if it's new enough
|
||||
[(or (eq? prefer 'zo)
|
||||
(and (not prefer)
|
||||
(date>=? zo path-d)))
|
||||
(or (date>=? zo path-d)
|
||||
(and try-alt?
|
||||
(date>=? alt-zo path-d)))))
|
||||
(notify zo)
|
||||
(read-one path zo #f read-syntax)]
|
||||
;; Maybe there's an .so? Use it only if we don't prefer source.
|
||||
[(or (eq? prefer 'so)
|
||||
(and (not prefer)
|
||||
(date>=? so path-d)))
|
||||
(or (date>=? so path-d)
|
||||
(and try-alt?
|
||||
(date>=? alt-so path-d)))))
|
||||
(if extension-handler
|
||||
(begin
|
||||
(notify so)
|
||||
|
@ -124,9 +158,9 @@
|
|||
[(or (eq? prefer 'src)
|
||||
path-d)
|
||||
(notify path)
|
||||
(with-dir (lambda () (compiler (read-one path path #t read-src-syntax))))]
|
||||
(with-dir (lambda () (compiler (read-one orig-path path #t read-src-syntax))))]
|
||||
;; Report a not-there error
|
||||
[else (raise (make-exn:get-module-code
|
||||
(format "get-module-code: no such file: ~e" path)
|
||||
(format "get-module-code: no such file: ~e" orig-path)
|
||||
(current-continuation-marks)
|
||||
#f))])))))
|
||||
|
|
|
@ -21,6 +21,12 @@
|
|||
[(procedure? relto) (relto)]
|
||||
[else (current-directory)]))
|
||||
|
||||
(define (path-ss->rkt p)
|
||||
(let-values ([(base name dir?) (split-path p)])
|
||||
(if (regexp-match #rx"[.]ss$" (path->bytes name))
|
||||
(path-replace-suffix p #".rkt")
|
||||
p)))
|
||||
|
||||
(define (resolve-module-path s relto)
|
||||
;; relto should be a complete path, #f, or procedure that returns a
|
||||
;; complete path
|
||||
|
@ -32,17 +38,19 @@
|
|||
(module-path-index-join s #f)))]
|
||||
[(string? s)
|
||||
;; Parse Unix-style relative path string
|
||||
(apply build-path (get-dir) (explode-relpath-string s))]
|
||||
(path-ss->rkt
|
||||
(apply build-path (get-dir) (explode-relpath-string s)))]
|
||||
[(and (or (not (pair? s)) (not (list? s))) (not (path? s)))
|
||||
#f]
|
||||
[(or (path? s) (eq? (car s) 'file))
|
||||
(let ([p (if (path? s) s (cadr s))])
|
||||
(path->complete-path
|
||||
p (let ([d (get-dir)])
|
||||
(if (path-string? d)
|
||||
d
|
||||
(or (current-load-relative-directory)
|
||||
(current-directory))))))]
|
||||
(path-ss->rkt
|
||||
(path->complete-path
|
||||
p (let ([d (get-dir)])
|
||||
(if (path-string? d)
|
||||
d
|
||||
(or (current-load-relative-directory)
|
||||
(current-directory)))))))]
|
||||
[(or (eq? (car s) 'lib)
|
||||
(eq? (car s) 'quote)
|
||||
(eq? (car s) 'planet))
|
||||
|
@ -57,7 +65,7 @@
|
|||
(let-values ([(path base) (module-path-index-split mpi)])
|
||||
(if path
|
||||
(resolve-module-path path (resolve-possible-module-path-index base relto))
|
||||
(force-relto relto #f))))
|
||||
(path-ss->rkt (force-relto relto #f)))))
|
||||
|
||||
(define (resolve-possible-module-path-index base relto)
|
||||
(cond [(module-path-index? base)
|
||||
|
|
|
@ -47,7 +47,20 @@ Use syntax/modcollapse instead.
|
|||
(define (add-main s)
|
||||
(if (regexp-match #rx"[.][^/]*$" s)
|
||||
s
|
||||
(string-append s "/main.ss")))
|
||||
(string-append s "/main.rkt")))
|
||||
|
||||
(define (ss->rkt s)
|
||||
(let ([len (string-length s)])
|
||||
(if (and (len . >= . 3)
|
||||
(string=? ".ss" (substring s (- len 3))))
|
||||
(string-append (substring s 0 (- len 3)) ".rkt")
|
||||
s)))
|
||||
|
||||
(define (path-ss->rkt p)
|
||||
(let-values ([(base name dir?) (split-path p)])
|
||||
(if (regexp-match #rx"[.]ss$" (path->bytes name))
|
||||
(path-replace-suffix p #".rkt")
|
||||
p)))
|
||||
|
||||
(define (combine-relative-elements elements)
|
||||
|
||||
|
@ -70,32 +83,34 @@ Use syntax/modcollapse instead.
|
|||
(when (symbol? relto-mp) (set! relto-mp `(lib ,(symbol->string relto-mp))))
|
||||
(cond
|
||||
[(or (path? relto-mp) (and (string? relto-mp) (ormap path? elements)))
|
||||
(apply build-path
|
||||
(extract-base relto-mp)
|
||||
(map (lambda (x) (if (bytes? x) (bytes->path x) x))
|
||||
elements))]
|
||||
(path-ss->rkt
|
||||
(apply build-path
|
||||
(extract-base relto-mp)
|
||||
(map (lambda (x) (if (bytes? x) (bytes->path x) x))
|
||||
elements)))]
|
||||
[(string? relto-mp)
|
||||
(bytes->string/locale
|
||||
(apply
|
||||
bytes-append
|
||||
(cond [(regexp-match #rx#"^(.*)/[^/]*$"
|
||||
(string->bytes/locale relto-mp))
|
||||
=> cadr]
|
||||
[else #"."])
|
||||
(map (lambda (e)
|
||||
(cond [(eq? e 'same) #"/."]
|
||||
[(eq? e 'up) #"/.."]
|
||||
[else (bytes-append
|
||||
#"/" (if (path? e) (path->bytes e) e))]))
|
||||
elements)))]
|
||||
(ss->rkt
|
||||
(bytes->string/locale
|
||||
(apply
|
||||
bytes-append
|
||||
(cond [(regexp-match #rx#"^(.*)/[^/]*$"
|
||||
(string->bytes/locale relto-mp))
|
||||
=> cadr]
|
||||
[else #"."])
|
||||
(map (lambda (e)
|
||||
(cond [(eq? e 'same) #"/."]
|
||||
[(eq? e 'up) #"/.."]
|
||||
[else (bytes-append
|
||||
#"/" (if (path? e) (path->bytes e) e))]))
|
||||
elements))))]
|
||||
[(eq? (car relto-mp) 'file)
|
||||
(let ([path ((if (ormap path? elements) values path->string)
|
||||
(attach-to-relative-path (cadr relto-mp)))])
|
||||
(path-ss->rkt (attach-to-relative-path (cadr relto-mp))))])
|
||||
(if (path? path) path `(file ,path)))]
|
||||
[(eq? (car relto-mp) 'lib)
|
||||
(let ([relto-mp (if (null? (cddr relto-mp))
|
||||
;; old style => add 'mzlib
|
||||
;; new style => add main.ss or split
|
||||
;; new style => add main.rkt or split
|
||||
(let ([m (regexp-match-positions #rx"[/]" (cadr relto-mp))])
|
||||
(if m
|
||||
;; new style: split
|
||||
|
@ -104,8 +119,8 @@ Use syntax/modcollapse instead.
|
|||
(if (regexp-match? #rx"[.]" (cadr relto-mp))
|
||||
;; old style:
|
||||
`(lib ,(cadr relto-mp) "mzlib")
|
||||
;; new style, add "main.ss":
|
||||
`(lib "main.ss" ,(cadr relto-mp)))))
|
||||
;; new style, add "main.rkt":
|
||||
`(lib "main.rkt" ,(cadr relto-mp)))))
|
||||
;; already has at least two parts:
|
||||
relto-mp)])
|
||||
(let ([path (attach-to-relative-path-string
|
||||
|
@ -153,20 +168,23 @@ Use syntax/modcollapse instead.
|
|||
;; It has a suffix:
|
||||
(if (regexp-match? #rx"/" e)
|
||||
;; It has a path, so it's fine:
|
||||
s
|
||||
(let ([e2 (ss->rkt e)])
|
||||
(if (eq? e e2)
|
||||
s
|
||||
`(lib ,e2)))
|
||||
;; No path, so add "mzlib/":
|
||||
`(lib ,(string-append "mzlib/" e)))]
|
||||
`(lib ,(string-append "mzlib/" (ss->rkt e))))]
|
||||
[(regexp-match? #rx"/" e)
|
||||
;; It has a separator, so add a suffix:
|
||||
`(lib ,(string-append e ".ss"))]
|
||||
`(lib ,(string-append e ".rkt"))]
|
||||
[else
|
||||
;; No separator or suffix, so add "/main.ss":
|
||||
`(lib ,(string-append e "/main.ss"))]))
|
||||
;; No separator or suffix, so add "/main.rkt":
|
||||
`(lib ,(string-append e "/main.rkt"))]))
|
||||
;; multi-string version:
|
||||
(if (regexp-match? #rx"[.]" (cadr s))
|
||||
;; there's a suffix, so we can collapse to a single string:
|
||||
`(lib ,(string-join (append (cddr s)
|
||||
(list (cadr s)))
|
||||
(list (ss->rkt (cadr s))))
|
||||
"/"))
|
||||
;; No suffix, so we must keep the old style:
|
||||
s)))
|
||||
|
@ -183,11 +201,11 @@ Use syntax/modcollapse instead.
|
|||
[pkg+vers (regexp-split #rx":" (cadr strs))]
|
||||
[path (cddr strs)])
|
||||
`(planet ,(if (null? path)
|
||||
"main.ss"
|
||||
"main.rkt"
|
||||
(let ([str (last path)])
|
||||
(if (regexp-match? #rx"[.]" str)
|
||||
str
|
||||
(string-append str ".ss"))))
|
||||
(ss->rkt str)
|
||||
(string-append str ".rkt"))))
|
||||
(,owner
|
||||
,(string-append (car pkg+vers) ".plt")
|
||||
,@(if (null? (cdr pkg+vers))
|
||||
|
@ -231,13 +249,17 @@ Use syntax/modcollapse instead.
|
|||
(let ([bases (split base)]
|
||||
[rests (map split rest)])
|
||||
(list* (car s)
|
||||
(last bases)
|
||||
(ss->rkt (last bases))
|
||||
(caddr s)
|
||||
(append
|
||||
(apply append rests)
|
||||
(drop-right bases 1)))))
|
||||
;; already in normal form:
|
||||
s))]))
|
||||
(let* ([e (cadr s)]
|
||||
[e2 (ss->rkt e)])
|
||||
(if (eq? e e2)
|
||||
s
|
||||
(list* (car s) e2 (cddr s))))))]))
|
||||
|
||||
(cond [(string? s)
|
||||
;; Parse Unix-style relative path string
|
||||
|
@ -250,7 +272,13 @@ Use syntax/modcollapse instead.
|
|||
[(or (path? s) (eq? (car s) 'file))
|
||||
(let ([p (if (path? s) s (cadr s))])
|
||||
(if (absolute-path? p)
|
||||
s
|
||||
(let ([p2 (if (path? p)
|
||||
(path-ss->rkt p)
|
||||
(ss->rkt p))])
|
||||
(cond
|
||||
[(eq? p p2) s]
|
||||
[(path? s) p2]
|
||||
[else `(file ,p2)]))
|
||||
(let loop ([p p] [elements null])
|
||||
(let-values ([(base name dir?) (split-path p)])
|
||||
(cond [(eq? base 'relative)
|
||||
|
|
|
@ -102,4 +102,24 @@
|
|||
|
||||
;; ----------------------------------------
|
||||
|
||||
;; test `file-date-in-paths'
|
||||
(test (file-or-directory-modify-seconds (build-path (collection-path "file")
|
||||
"compiled"
|
||||
"gif_ss.zo"))
|
||||
file-date-in-collection
|
||||
(build-path (collection-path "file") "gif.ss"))
|
||||
;; gl-info.ss doesn't have a .ss source:
|
||||
(test (file-or-directory-modify-seconds (build-path (collection-path "sgl")
|
||||
"compiled"
|
||||
"gl-info_ss.zo"))
|
||||
file-date-in-collection
|
||||
(build-path (collection-path "sgl") "gl-info.ss"))
|
||||
;; setup/main doesn't have a .zo:
|
||||
(test (file-or-directory-modify-seconds (build-path (collection-path "setup")
|
||||
"main.ss"))
|
||||
file-date-in-collection
|
||||
(build-path (collection-path "setup") "main.ss"))
|
||||
|
||||
;; ----------------------------------------
|
||||
|
||||
(report-errs)
|
||||
|
|
|
@ -24,34 +24,34 @@
|
|||
(module-path-index-join #f #f)))
|
||||
pi-rel-to)))
|
||||
|
||||
(test-rmp (build-path (current-directory) "apple.ss") "apple.ss" #f)
|
||||
(test-rmp (build-path (current-directory) "apple.ss") "apple.ss" (build-path (current-directory) "x.ss"))
|
||||
(test-rmp (build-path (current-directory) "apple.ss") "apple.ss" current-directory)
|
||||
(test-rmp (build-path (current-directory) 'up "apple.ss") "../apple.ss" #f)
|
||||
(test-rmp (build-path (current-directory) 'up 'up "apple.ss") "../../apple.ss" #f)
|
||||
(test-rmp (build-path (current-directory) 'same "apple.ss") "./apple.ss" #f)
|
||||
(test-rmp (build-path (current-directory) "down" "apple.ss") "down/apple.ss" #f)
|
||||
(test-rmp (build-path (current-directory) "apple.rkt") "apple.ss" #f)
|
||||
(test-rmp (build-path (current-directory) "apple.rkt") "apple.ss" (build-path (current-directory) "x.ss"))
|
||||
(test-rmp (build-path (current-directory) "apple.rkt") "apple.ss" current-directory)
|
||||
(test-rmp (build-path (current-directory) 'up "apple.rkt") "../apple.ss" #f)
|
||||
(test-rmp (build-path (current-directory) 'up 'up "apple.rkt") "../../apple.ss" #f)
|
||||
(test-rmp (build-path (current-directory) 'same "apple.rkt") "./apple.ss" #f)
|
||||
(test-rmp (build-path (current-directory) "down" "apple.rkt") "down/apple.ss" #f)
|
||||
|
||||
(test (build-path (current-directory) 'up 'up "apple.ss")
|
||||
(test (build-path (current-directory) 'up 'up "apple.rkt")
|
||||
resolve-module-path-index
|
||||
(module-path-index-join "../apple.ss"
|
||||
(module-path-index-join "../other.ss"
|
||||
(module-path-index-join #f #f)))
|
||||
(build-path (current-directory) "f.ss"))
|
||||
(test (build-path (current-directory) "only.ss")
|
||||
(test (build-path (current-directory) "only.rkt")
|
||||
resolve-module-path-index
|
||||
(module-path-index-join #f #f)
|
||||
(build-path (current-directory) "only.ss"))
|
||||
|
||||
(let ([mzlib (collection-path "mzlib")]
|
||||
[syntax (collection-path "syntax")])
|
||||
(test-rmp (build-path mzlib "x.ss") '(lib "x.ss") #f)
|
||||
(test-rmp (build-path mzlib "x.ss") '(lib "x.ss" "mzlib") #f)
|
||||
(test-rmp (build-path syntax "x.ss") '(lib "x.ss" "syntax") #f)
|
||||
(test-rmp (build-path syntax "private" "x.ss") '(lib "x.ss" "syntax" "private") #f)
|
||||
(test-rmp (build-path (current-directory) "x.ss") `(file ,(path->string (build-path (current-directory) "x.ss"))) #f)
|
||||
(test-rmp (build-path (current-directory) "x.ss") (build-path (current-directory) "x.ss") #f)
|
||||
(test-rmp (build-path (current-directory) "x.ss") (build-path "x.ss") #f)
|
||||
(test-rmp (build-path mzlib "x.rkt") '(lib "x.ss") #f)
|
||||
(test-rmp (build-path mzlib "x.rkt") '(lib "x.ss" "mzlib") #f)
|
||||
(test-rmp (build-path syntax "x.rkt") '(lib "x.ss" "syntax") #f)
|
||||
(test-rmp (build-path syntax "private" "x.rkt") '(lib "x.ss" "syntax" "private") #f)
|
||||
(test-rmp (build-path (current-directory) "x.rkt") `(file ,(path->string (build-path (current-directory) "x.ss"))) #f)
|
||||
(test-rmp (build-path (current-directory) "x.rkt") (build-path (current-directory) "x.ss") #f)
|
||||
(test-rmp (build-path (current-directory) "x.rkt") (build-path "x.ss") #f)
|
||||
(void))
|
||||
|
||||
|
||||
|
@ -80,59 +80,164 @@
|
|||
(module-path-index-join #f #f)))
|
||||
rel-to))
|
||||
|
||||
(test-cmp '(lib "nonesuch/x.ss") "x.ss" '(lib "y.ss" "nonesuch"))
|
||||
(test-cmp '(lib "nonesuch/x.ss") "x.ss" (lambda () '(lib "y.ss" "nonesuch")))
|
||||
(test-cmp '(lib "nonesuch/down/x.ss") "down/x.ss" '(lib "y.ss" "nonesuch"))
|
||||
(test-cmp '(lib "mzlib/x.ss") '(lib "x.ss") '(lib "y.ss" "nonesuch"))
|
||||
(test-cmp '(lib "nonesuch/x.ss") "../x.ss" '(lib "y.ss" "nonesuch/private"))
|
||||
(test-cmp '(lib "nonesuch/x.ss") "../x.ss" '(lib "private/y.ss" "nonesuch"))
|
||||
(test-cmp '(lib "alsonot/private/x.ss") '(lib "x.ss" "alsonot" "private") '(lib "y.ss" "nonesuch"))
|
||||
(test-cmp '(lib "nonesuch/x.rkt") "x.rkt" '(lib "y.ss" "nonesuch"))
|
||||
(test-cmp '(lib "nonesuch/x.rkt") "x.ss" '(lib "y.ss" "nonesuch"))
|
||||
(test-cmp '(lib "nonesuch/x.scm") "x.scm" '(lib "y.ss" "nonesuch"))
|
||||
|
||||
(test-cmp '(lib "nonesuch/x.rkt") "x.rkt" (lambda () '(lib "y.ss" "nonesuch")))
|
||||
(test-cmp '(lib "nonesuch/x.rkt") "x.ss" (lambda () '(lib "y.ss" "nonesuch")))
|
||||
(test-cmp '(lib "nonesuch/x.scm") "x.scm" (lambda () '(lib "y.ss" "nonesuch")))
|
||||
|
||||
(test-cmp '(lib "nonesuch/down/x.rkt") "down/x.rkt" '(lib "y.ss" "nonesuch"))
|
||||
(test-cmp '(lib "nonesuch/down/x.rkt") "down/x.ss" '(lib "y.ss" "nonesuch"))
|
||||
(test-cmp '(lib "nonesuch/down/x.scm") "down/x.scm" '(lib "y.ss" "nonesuch"))
|
||||
|
||||
(test-cmp '(lib "mzlib/x.rkt") '(lib "x.rkt") '(lib "y.ss" "nonesuch"))
|
||||
(test-cmp '(lib "mzlib/x.rkt") '(lib "x.ss") '(lib "y.ss" "nonesuch"))
|
||||
(test-cmp '(lib "mzlib/x.scm") '(lib "x.scm") '(lib "y.ss" "nonesuch"))
|
||||
|
||||
(test-cmp '(lib "nonesuch/x.rkt") "../x.rkt" '(lib "y.ss" "nonesuch/private"))
|
||||
(test-cmp '(lib "nonesuch/x.rkt") "../x.ss" '(lib "y.ss" "nonesuch/private"))
|
||||
(test-cmp '(lib "nonesuch/x.scm") "../x.scm" '(lib "y.ss" "nonesuch/private"))
|
||||
|
||||
(test-cmp '(lib "nonesuch/x.rkt") "../x.rkt" '(lib "private/y.ss" "nonesuch"))
|
||||
(test-cmp '(lib "nonesuch/x.rkt") "../x.ss" '(lib "private/y.ss" "nonesuch"))
|
||||
(test-cmp '(lib "nonesuch/x.scm") "../x.scm" '(lib "private/y.ss" "nonesuch"))
|
||||
|
||||
(test-cmp '(lib "alsonot/private/x.rkt") '(lib "x.rkt" "alsonot" "private") '(lib "y.ss" "nonesuch"))
|
||||
(test-cmp '(lib "alsonot/private/x.rkt") '(lib "x.ss" "alsonot" "private") '(lib "y.ss" "nonesuch"))
|
||||
(test-cmp '(lib "alsonot/private/x.scm") '(lib "x.scm" "alsonot" "private") '(lib "y.ss" "nonesuch"))
|
||||
|
||||
(test-cmp '(lib "x" "nonesuch") "x" '(lib "y.ss" "nonesuch"))
|
||||
(test-cmp '(lib "x" "nonesuch") "x" 'nonesuch/y)
|
||||
(test-cmp '(lib "x" "nonesuch") "x" 'nonesuch)
|
||||
(test-cmp '(lib "nonesuch/y.ss") 'nonesuch/y (current-directory))
|
||||
(test-cmp '(lib "mzlib/nonesuch.ss") '(lib "nonesuch.ss") (current-directory))
|
||||
(test-cmp '(lib "nonesuch/y.rkt") 'nonesuch/y (current-directory))
|
||||
|
||||
(test-cmp (build-path (current-directory) "x.ss") "x.ss" (build-path (current-directory) "other"))
|
||||
(test-cmp (build-path (current-directory) "x.ss")
|
||||
(test-cmp '(lib "mzlib/nonesuch.rkt") '(lib "nonesuch.rkt") (current-directory))
|
||||
(test-cmp '(lib "mzlib/nonesuch.rkt") '(lib "nonesuch.ss") (current-directory))
|
||||
(test-cmp '(lib "mzlib/nonesuch.scm") '(lib "nonesuch.scm") (current-directory))
|
||||
|
||||
(test-cmp (build-path (current-directory) "x.rkt") "x.rkt" (build-path (current-directory) "other"))
|
||||
(test-cmp (build-path (current-directory) "x.rkt") "x.ss" (build-path (current-directory) "other"))
|
||||
(test-cmp (build-path (current-directory) "x.scm") "x.scm" (build-path (current-directory) "other"))
|
||||
|
||||
(test-cmp (build-path (current-directory) "x.rkt")
|
||||
"x.rkt"
|
||||
`(file ,(path->string (build-path (current-directory) "other"))))
|
||||
(test-cmp (build-path (current-directory) "x.rkt")
|
||||
"x.ss"
|
||||
`(file ,(path->string (build-path (current-directory) "other"))))
|
||||
(test-cmp (build-path (current-directory) "x.ss")
|
||||
(build-path "x.ss")
|
||||
(test-cmp (build-path (current-directory) "x.scm")
|
||||
"x.scm"
|
||||
`(file ,(path->string (build-path (current-directory) "other"))))
|
||||
|
||||
(test-cmp '(planet "x.ss" ("usr" "pkg.plt" 1)) "x.ss" '(planet "y.ss" ("usr" "pkg.plt" 1)))
|
||||
(test-cmp '(planet "x.ss" ("usr" "pkg.plt" 1 0)) "x.ss" (lambda () '(planet "y.ss" ("usr" "pkg.plt" 1 0))))
|
||||
(test-cmp '(planet "x.ss" ("a" "p.plt" 1) "path") "path/x.ss" '(planet "z.ss" ("a" "p.plt" 1)))
|
||||
(test-cmp '(planet "x.ss" ("a" "p.plt" 2) "path" "qq") "qq/x.ss" '(planet "path/z.ss" ("a" "p.plt" 2)))
|
||||
(test-cmp '(planet "x.ss" ("m" "z.plt" 2)) '(planet "x.ss" ("m" "z.plt" 2)) '(planet "o.ss" ("a" "q.plt" 54 3)))
|
||||
(test-cmp '(planet "x.ss" ("m" "z.plt" 2)) '(planet "x.ss" ("m" "z.plt" 2)) '(lib "o.ss" "nonesuch"))
|
||||
(test-cmp '(planet "x.ss" ("m" "z.plt" 2)) '(planet "x.ss" ("m" "z.plt" 2)) '(file "q.ss"))
|
||||
(test-cmp '(planet "x.ss" ("m" "z.plt" 2)) '(planet "x.ss" ("m" "z.plt" 2)) (build-path "yikes"))
|
||||
(test-cmp '(planet "x.ss" ("m" "z.plt" 2)) '(planet "m/z:2/x.ss") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.ss" ("m" "z.plt" 2 5)) '(planet "m/z:2:5/x.ss") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.ss" ("m" "z.plt" 2 (= 5))) '(planet "m/z:2:=5/x.ss") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.ss" ("m" "z.plt" 2 5)) '(planet "m/z:2:>=5/x.ss") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.ss" ("m" "z.plt" 2 (- 5))) '(planet "m/z:2:<=5/x.ss") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.ss" ("m" "z.plt" 2 (7 99))) '(planet "m/z:2:7-99/x.ss") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.ss" ("m" "z.plt" 2 (7 99))) '(planet "m/z:2:7-99/x.ss") (build-path "yikes"))
|
||||
(test-cmp (build-path (current-directory) "x.rkt")
|
||||
(build-path "x.rkt")
|
||||
`(file ,(path->string (build-path (current-directory) "other"))))
|
||||
(test-cmp (build-path (current-directory) "x.rkt")
|
||||
(build-path "x.ss")
|
||||
`(file ,(path->string (build-path (current-directory) "other"))))
|
||||
(test-cmp (build-path (current-directory) "x.scm")
|
||||
(build-path "x.scm")
|
||||
`(file ,(path->string (build-path (current-directory) "other"))))
|
||||
|
||||
(test-cmp '(planet "utils.ss" ("untyped" "unlib.plt" 3 (= 6)))
|
||||
(test-cmp '(planet "x.rkt" ("usr" "pkg.plt" 1)) "x.rkt" '(planet "y.ss" ("usr" "pkg.plt" 1)))
|
||||
(test-cmp '(planet "x.rkt" ("usr" "pkg.plt" 1)) "x.ss" '(planet "y.ss" ("usr" "pkg.plt" 1)))
|
||||
(test-cmp '(planet "x.scm" ("usr" "pkg.plt" 1)) "x.scm" '(planet "y.ss" ("usr" "pkg.plt" 1)))
|
||||
|
||||
(test-cmp '(planet "x.rkt" ("usr" "pkg.plt" 1 0)) "x.rkt" (lambda () '(planet "y.ss" ("usr" "pkg.plt" 1 0))))
|
||||
(test-cmp '(planet "x.rkt" ("usr" "pkg.plt" 1 0)) "x.ss" (lambda () '(planet "y.ss" ("usr" "pkg.plt" 1 0))))
|
||||
(test-cmp '(planet "x.scm" ("usr" "pkg.plt" 1 0)) "x.scm" (lambda () '(planet "y.ss" ("usr" "pkg.plt" 1 0))))
|
||||
|
||||
(test-cmp '(planet "x.rkt" ("a" "p.plt" 1) "path") "path/x.rkt" '(planet "z.ss" ("a" "p.plt" 1)))
|
||||
(test-cmp '(planet "x.rkt" ("a" "p.plt" 1) "path") "path/x.ss" '(planet "z.ss" ("a" "p.plt" 1)))
|
||||
(test-cmp '(planet "x.scm" ("a" "p.plt" 1) "path") "path/x.scm" '(planet "z.ss" ("a" "p.plt" 1)))
|
||||
|
||||
(test-cmp '(planet "x.rkt" ("a" "p.plt" 2) "path" "qq") "qq/x.rkt" '(planet "path/z.ss" ("a" "p.plt" 2)))
|
||||
(test-cmp '(planet "x.rkt" ("a" "p.plt" 2) "path" "qq") "qq/x.ss" '(planet "path/z.ss" ("a" "p.plt" 2)))
|
||||
(test-cmp '(planet "x.scm" ("a" "p.plt" 2) "path" "qq") "qq/x.scm" '(planet "path/z.ss" ("a" "p.plt" 2)))
|
||||
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2)) '(planet "x.rkt" ("m" "z.plt" 2)) '(planet "o.ss" ("a" "q.plt" 54 3)))
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2)) '(planet "x.ss" ("m" "z.plt" 2)) '(planet "o.ss" ("a" "q.plt" 54 3)))
|
||||
(test-cmp '(planet "x.scm" ("m" "z.plt" 2)) '(planet "x.scm" ("m" "z.plt" 2)) '(planet "o.ss" ("a" "q.plt" 54 3)))
|
||||
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2)) '(planet "x.rkt" ("m" "z.plt" 2)) '(lib "o.ss" "nonesuch"))
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2)) '(planet "x.ss" ("m" "z.plt" 2)) '(lib "o.ss" "nonesuch"))
|
||||
(test-cmp '(planet "x.scm" ("m" "z.plt" 2)) '(planet "x.scm" ("m" "z.plt" 2)) '(lib "o.ss" "nonesuch"))
|
||||
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2)) '(planet "x.rkt" ("m" "z.plt" 2)) '(file "q.ss"))
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2)) '(planet "x.ss" ("m" "z.plt" 2)) '(file "q.ss"))
|
||||
(test-cmp '(planet "x.scm" ("m" "z.plt" 2)) '(planet "x.scm" ("m" "z.plt" 2)) '(file "q.ss"))
|
||||
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2)) '(planet "x.rkt" ("m" "z.plt" 2)) (build-path "yikes"))
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2)) '(planet "x.ss" ("m" "z.plt" 2)) (build-path "yikes"))
|
||||
(test-cmp '(planet "x.scm" ("m" "z.plt" 2)) '(planet "x.scm" ("m" "z.plt" 2)) (build-path "yikes"))
|
||||
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2)) '(planet "m/z:2/x.rkt") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2)) '(planet "m/z:2/x.ss") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.scm" ("m" "z.plt" 2)) '(planet "m/z:2/x.scm") (build-path "yikes"))
|
||||
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2 5)) '(planet "m/z:2:5/x.rkt") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2 5)) '(planet "m/z:2:5/x.ss") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.scm" ("m" "z.plt" 2 5)) '(planet "m/z:2:5/x.scm") (build-path "yikes"))
|
||||
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2 (= 5))) '(planet "m/z:2:=5/x.rkt") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2 (= 5))) '(planet "m/z:2:=5/x.ss") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.scm" ("m" "z.plt" 2 (= 5))) '(planet "m/z:2:=5/x.scm") (build-path "yikes"))
|
||||
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2 5)) '(planet "m/z:2:>=5/x.rkt") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2 5)) '(planet "m/z:2:>=5/x.ss") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.scm" ("m" "z.plt" 2 5)) '(planet "m/z:2:>=5/x.scm") (build-path "yikes"))
|
||||
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2 (- 5))) '(planet "m/z:2:<=5/x.rkt") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2 (- 5))) '(planet "m/z:2:<=5/x.ss") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.scm" ("m" "z.plt" 2 (- 5))) '(planet "m/z:2:<=5/x.scm") (build-path "yikes"))
|
||||
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2 (7 99))) '(planet "m/z:2:7-99/x.rkt") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2 (7 99))) '(planet "m/z:2:7-99/x.ss") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.scm" ("m" "z.plt" 2 (7 99))) '(planet "m/z:2:7-99/x.scm") (build-path "yikes"))
|
||||
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2 (7 99))) '(planet "m/z:2:7-99/x.rkt") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.rkt" ("m" "z.plt" 2 (7 99))) '(planet "m/z:2:7-99/x.ss") (build-path "yikes"))
|
||||
(test-cmp '(planet "x.scm" ("m" "z.plt" 2 (7 99))) '(planet "m/z:2:7-99/x.scm") (build-path "yikes"))
|
||||
|
||||
(test-cmp '(planet "utils.rkt" ("untyped" "unlib.plt" 3 (= 6)))
|
||||
"../utils.rkt" '(planet "doc/stuff.ss" ("untyped" "unlib.plt" 3 (= 6))))
|
||||
(test-cmp '(planet "utils.rkt" ("untyped" "unlib.plt" 3 (= 6)))
|
||||
"../utils.ss" '(planet "doc/stuff.ss" ("untyped" "unlib.plt" 3 (= 6))))
|
||||
(test-cmp '(planet "utils.ss" ("untyped" "unlib.plt" 3 (= 6)))
|
||||
(test-cmp '(planet "utils.scm" ("untyped" "unlib.plt" 3 (= 6)))
|
||||
"../utils.scm" '(planet "doc/stuff.ss" ("untyped" "unlib.plt" 3 (= 6))))
|
||||
|
||||
(test-cmp '(planet "utils.rkt" ("untyped" "unlib.plt" 3 (= 6)))
|
||||
"../utils.rkt" '(planet "stuff.ss" ("untyped" "unlib.plt" 3 (= 6)) "doc"))
|
||||
(test-cmp '(planet "utils.rkt" ("untyped" "unlib.plt" 3 (= 6)))
|
||||
"../utils.ss" '(planet "stuff.ss" ("untyped" "unlib.plt" 3 (= 6)) "doc"))
|
||||
(test-cmp '(planet "utils.ss" ("untyped" "unlib.plt" 3 (= 6)) "down")
|
||||
(test-cmp '(planet "utils.scm" ("untyped" "unlib.plt" 3 (= 6)))
|
||||
"../utils.scm" '(planet "stuff.ss" ("untyped" "unlib.plt" 3 (= 6)) "doc"))
|
||||
|
||||
(test-cmp '(planet "utils.rkt" ("untyped" "unlib.plt" 3 (= 6)) "down")
|
||||
"../down/utils.rkt" '(planet "stuff.ss" ("untyped" "unlib.plt" 3 (= 6)) "doc"))
|
||||
(test-cmp '(planet "utils.rkt" ("untyped" "unlib.plt" 3 (= 6)) "down")
|
||||
"../down/utils.ss" '(planet "stuff.ss" ("untyped" "unlib.plt" 3 (= 6)) "doc"))
|
||||
(test-cmp '(planet "utils.ss" ("untyped" "unlib.plt" 3 (= 6)) "down")
|
||||
(test-cmp '(planet "utils.scm" ("untyped" "unlib.plt" 3 (= 6)) "down")
|
||||
"../down/utils.scm" '(planet "stuff.ss" ("untyped" "unlib.plt" 3 (= 6)) "doc"))
|
||||
|
||||
(test-cmp '(planet "utils.rkt" ("untyped" "unlib.plt" 3 (= 6)) "down")
|
||||
"../down/utils.rkt" '(planet untyped/unlib:3:=6/doc/stuff))
|
||||
(test-cmp '(planet "utils.rkt" ("untyped" "unlib.plt" 3 (= 6)) "down")
|
||||
"../down/utils.ss" '(planet untyped/unlib:3:=6/doc/stuff))
|
||||
(test-cmp '(planet "utils.scm" ("untyped" "unlib.plt" 3 (= 6)) "down")
|
||||
"../down/utils.scm" '(planet untyped/unlib:3:=6/doc/stuff))
|
||||
|
||||
(test-cmp (build-path 'same "x.ss") "x.ss" (build-path 'same))
|
||||
(test-cmp (build-path 'same "x.rkt") "x.rkt" (build-path 'same))
|
||||
(test-cmp (build-path 'same "x.rkt") "x.ss" (build-path 'same))
|
||||
(test-cmp (build-path 'same "x.scm") "x.scm" (build-path 'same))
|
||||
|
||||
(test '(lib "bar/foo.ss")
|
||||
(test '(lib "bar/foo.rkt")
|
||||
collapse-module-path-index
|
||||
(module-path-index-join '(lib "foo.ss" "bar") (make-resolved-module-path 'nowhere))
|
||||
(current-directory))
|
||||
(test (build-path (find-system-path 'temp-dir) "data.ss")
|
||||
(test (build-path (find-system-path 'temp-dir) "data.rkt")
|
||||
collapse-module-path-index
|
||||
(module-path-index-join '"data.ss" (make-resolved-module-path
|
||||
(build-path (find-system-path 'temp-dir) "prog.ss")))
|
||||
|
@ -140,14 +245,14 @@
|
|||
|
||||
;; Try path cases that don't fit UTF-8 (and therefore would go wrong as a string):
|
||||
(let ([dir (build-path (current-directory) (bytes->path #"\xFF"))])
|
||||
(test-cmp (build-path dir "x.ss")
|
||||
(test-cmp (build-path dir "x.rkt")
|
||||
"x.ss"
|
||||
(build-path dir "other")))
|
||||
(test-cmp (build-path (current-directory) (bytes->path #"\xFF"))
|
||||
(bytes->path #"\xFF")
|
||||
`(file ,(path->string (build-path (current-directory) "other"))))
|
||||
|
||||
(test '(lib "alsonot/x.ss")
|
||||
(test '(lib "alsonot/x.rkt")
|
||||
collapse-module-path-index
|
||||
(module-path-index-join "x.ss"
|
||||
(module-path-index-join
|
||||
|
|
|
@ -35,22 +35,33 @@
|
|||
(resolve-module-path-index mod-path rel-to)
|
||||
(resolve-module-path mod-path rel-to)))])
|
||||
(unless (symbol? path)
|
||||
;; Copy file to here:
|
||||
(let ([target
|
||||
(or target
|
||||
(let-values ([(src-base rel-path)
|
||||
(let loop ([path (simplify-path path)][accum null])
|
||||
(let-values ([(base name dir?) (split-path path)])
|
||||
(if (string=? (path->string name) "collects")
|
||||
(values base (cons "xform-collects" accum))
|
||||
(loop base (cons name accum)))))])
|
||||
(let loop ([place (current-directory)][rel-path rel-path])
|
||||
(if (null? (cdr rel-path))
|
||||
(build-path place (car rel-path))
|
||||
(let ([next (build-path place (car rel-path))])
|
||||
(unless (directory-exists? next)
|
||||
(make-directory next))
|
||||
(loop next (cdr rel-path)))))))])
|
||||
;; Copy file to here. The filename is from the resolved module
|
||||
;; path, so it is ".rkt" even if the source is ".ss".
|
||||
(let* ([path (if (file-exists? path)
|
||||
path
|
||||
(if (regexp-match? #rx#"[.]rkt$" (if (path? path)
|
||||
(path->bytes path)
|
||||
path))
|
||||
(let ([p2 (path-replace-suffix path #".ss")])
|
||||
(if (file-exists? p2)
|
||||
p2
|
||||
path))
|
||||
path))]
|
||||
[target
|
||||
(or target
|
||||
(let-values ([(src-base rel-path)
|
||||
(let loop ([path (simplify-path path)][accum null])
|
||||
(let-values ([(base name dir?) (split-path path)])
|
||||
(if (string=? (path->string name) "collects")
|
||||
(values base (cons "xform-collects" accum))
|
||||
(loop base (cons name accum)))))])
|
||||
(let loop ([place (current-directory)][rel-path rel-path])
|
||||
(if (null? (cdr rel-path))
|
||||
(build-path place (car rel-path))
|
||||
(let ([next (build-path place (car rel-path))])
|
||||
(unless (directory-exists? next)
|
||||
(make-directory next))
|
||||
(loop next (cdr rel-path)))))))])
|
||||
(unless (file-exists? target)
|
||||
(printf "Copying ~a to ~a~n" path target)
|
||||
(copy-file path target)
|
||||
|
|
|
@ -1,43 +1,43 @@
|
|||
{
|
||||
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,53,46,55,50,0,0,0,1,0,0,3,0,12,0,
|
||||
17,0,21,0,24,0,37,0,44,0,49,0,53,0,60,0,65,0,72,0,78,
|
||||
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,53,46,56,50,0,0,0,1,0,0,3,0,12,0,
|
||||
16,0,21,0,28,0,41,0,48,0,53,0,58,0,62,0,69,0,72,0,78,
|
||||
0,92,0,106,0,109,0,115,0,119,0,121,0,132,0,134,0,148,0,155,0,
|
||||
177,0,179,0,193,0,4,1,33,1,44,1,55,1,65,1,101,1,134,1,167,
|
||||
1,226,1,36,2,114,2,180,2,185,2,205,2,96,3,116,3,167,3,233,3,
|
||||
118,4,4,5,56,5,79,5,158,5,0,0,105,7,0,0,29,11,11,68,104,
|
||||
101,114,101,45,115,116,120,64,108,101,116,42,63,108,101,116,62,111,114,72,112,
|
||||
97,114,97,109,101,116,101,114,105,122,101,66,100,101,102,105,110,101,64,99,111,
|
||||
110,100,63,97,110,100,66,117,110,108,101,115,115,64,119,104,101,110,66,108,101,
|
||||
116,114,101,99,65,113,117,111,116,101,29,94,2,13,68,35,37,107,101,114,110,
|
||||
101,114,101,45,115,116,120,63,108,101,116,64,99,111,110,100,66,117,110,108,101,
|
||||
115,115,72,112,97,114,97,109,101,116,101,114,105,122,101,66,100,101,102,105,110,
|
||||
101,64,119,104,101,110,64,108,101,116,42,63,97,110,100,66,108,101,116,114,101,
|
||||
99,62,111,114,65,113,117,111,116,101,29,94,2,13,68,35,37,107,101,114,110,
|
||||
101,108,11,29,94,2,13,68,35,37,112,97,114,97,109,122,11,62,105,102,65,
|
||||
98,101,103,105,110,63,115,116,120,61,115,70,108,101,116,45,118,97,108,117,101,
|
||||
115,61,120,73,108,101,116,114,101,99,45,118,97,108,117,101,115,66,108,97,109,
|
||||
98,100,97,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,
|
||||
45,107,101,121,61,118,73,100,101,102,105,110,101,45,118,97,108,117,101,115,97,
|
||||
36,11,8,240,47,75,0,0,95,159,2,15,36,36,159,2,14,36,36,159,2,
|
||||
14,36,36,16,20,2,4,2,1,2,5,2,1,2,6,2,1,2,7,2,1,
|
||||
2,3,2,1,2,9,2,1,2,8,2,1,2,10,2,1,2,11,2,1,2,
|
||||
12,2,1,97,37,11,8,240,47,75,0,0,93,159,2,14,36,37,16,2,2,
|
||||
2,161,2,1,37,2,2,2,1,2,2,96,38,11,8,240,47,75,0,0,16,
|
||||
0,96,11,11,8,240,47,75,0,0,16,0,13,16,4,36,29,11,11,2,1,
|
||||
36,11,8,240,115,76,0,0,95,159,2,15,36,36,159,2,14,36,36,159,2,
|
||||
14,36,36,16,20,2,3,2,1,2,5,2,1,2,7,2,1,2,6,2,1,
|
||||
2,8,2,1,2,9,2,1,2,10,2,1,2,4,2,1,2,11,2,1,2,
|
||||
12,2,1,97,37,11,8,240,115,76,0,0,93,159,2,14,36,37,16,2,2,
|
||||
2,161,2,1,37,2,2,2,1,2,2,96,11,11,8,240,115,76,0,0,16,
|
||||
0,96,38,11,8,240,115,76,0,0,16,0,13,16,4,36,29,11,11,2,1,
|
||||
11,18,16,2,99,64,104,101,114,101,8,31,8,30,8,29,8,28,8,27,93,
|
||||
8,224,54,75,0,0,95,9,8,224,54,75,0,0,2,1,27,248,22,143,4,
|
||||
8,224,122,76,0,0,95,9,8,224,122,76,0,0,2,1,27,248,22,143,4,
|
||||
195,249,22,136,4,80,158,39,36,251,22,81,2,16,248,22,96,199,12,249,22,
|
||||
71,2,17,248,22,98,201,27,248,22,143,4,195,249,22,136,4,80,158,39,36,
|
||||
251,22,81,2,16,248,22,96,199,249,22,71,2,17,248,22,98,201,12,27,248,
|
||||
22,73,248,22,143,4,196,28,248,22,79,193,20,15,159,37,36,37,28,248,22,
|
||||
79,248,22,73,194,248,22,72,193,249,22,136,4,80,158,39,36,251,22,81,2,
|
||||
16,248,22,72,199,249,22,71,2,9,248,22,73,201,11,18,16,2,101,10,8,
|
||||
16,248,22,72,199,249,22,71,2,10,248,22,73,201,11,18,16,2,101,10,8,
|
||||
31,8,30,8,29,8,28,8,27,16,4,11,11,2,18,3,1,8,101,110,118,
|
||||
49,50,51,56,49,16,4,11,11,2,19,3,1,8,101,110,118,49,50,51,56,
|
||||
50,93,8,224,55,75,0,0,95,9,8,224,55,75,0,0,2,1,27,248,22,
|
||||
49,50,55,51,54,16,4,11,11,2,19,3,1,8,101,110,118,49,50,55,51,
|
||||
55,93,8,224,123,76,0,0,95,9,8,224,123,76,0,0,2,1,27,248,22,
|
||||
73,248,22,143,4,196,28,248,22,79,193,20,15,159,37,36,37,28,248,22,79,
|
||||
248,22,73,194,248,22,72,193,249,22,136,4,80,158,39,36,250,22,81,2,20,
|
||||
248,22,81,249,22,81,248,22,81,2,21,248,22,72,201,251,22,81,2,16,2,
|
||||
21,2,21,249,22,71,2,5,248,22,73,204,18,16,2,101,11,8,31,8,30,
|
||||
8,29,8,28,8,27,16,4,11,11,2,18,3,1,8,101,110,118,49,50,51,
|
||||
56,52,16,4,11,11,2,19,3,1,8,101,110,118,49,50,51,56,53,93,8,
|
||||
224,56,75,0,0,95,9,8,224,56,75,0,0,2,1,248,22,143,4,193,27,
|
||||
21,2,21,249,22,71,2,12,248,22,73,204,18,16,2,101,11,8,31,8,30,
|
||||
8,29,8,28,8,27,16,4,11,11,2,18,3,1,8,101,110,118,49,50,55,
|
||||
51,57,16,4,11,11,2,19,3,1,8,101,110,118,49,50,55,52,48,93,8,
|
||||
224,124,76,0,0,95,9,8,224,124,76,0,0,2,1,248,22,143,4,193,27,
|
||||
248,22,143,4,194,249,22,71,248,22,81,248,22,72,196,248,22,73,195,27,248,
|
||||
22,73,248,22,143,4,23,197,1,249,22,136,4,80,158,39,36,28,248,22,56,
|
||||
248,22,137,4,248,22,72,23,198,2,27,249,22,2,32,0,89,162,8,44,37,
|
||||
|
@ -51,8 +51,8 @@
|
|||
249,22,2,32,0,89,162,8,44,37,47,9,222,33,42,248,22,143,4,248,22,
|
||||
72,201,248,22,73,198,27,248,22,73,248,22,143,4,196,27,248,22,143,4,248,
|
||||
22,72,195,249,22,136,4,80,158,40,36,28,248,22,79,195,250,22,82,2,20,
|
||||
9,248,22,73,199,250,22,81,2,4,248,22,81,248,22,72,199,250,22,82,2,
|
||||
3,248,22,73,201,248,22,73,202,27,248,22,73,248,22,143,4,23,197,1,27,
|
||||
9,248,22,73,199,250,22,81,2,3,248,22,81,248,22,72,199,250,22,82,2,
|
||||
9,248,22,73,201,248,22,73,202,27,248,22,73,248,22,143,4,23,197,1,27,
|
||||
249,22,1,22,85,249,22,2,22,143,4,248,22,143,4,248,22,72,199,249,22,
|
||||
136,4,80,158,40,36,251,22,81,1,22,119,105,116,104,45,99,111,110,116,105,
|
||||
110,117,97,116,105,111,110,45,109,97,114,107,2,24,250,22,82,1,23,101,120,
|
||||
|
@ -62,14 +62,14 @@
|
|||
22,73,203,27,248,22,73,248,22,143,4,196,28,248,22,79,193,20,15,159,37,
|
||||
36,37,249,22,136,4,80,158,39,36,27,248,22,143,4,248,22,72,197,28,249,
|
||||
22,176,8,62,61,62,248,22,137,4,248,22,96,196,250,22,81,2,20,248,22,
|
||||
81,249,22,81,21,93,2,25,248,22,72,199,250,22,82,2,8,249,22,81,2,
|
||||
81,249,22,81,21,93,2,25,248,22,72,199,250,22,82,2,4,249,22,81,2,
|
||||
25,249,22,81,248,22,105,203,2,25,248,22,73,202,251,22,81,2,16,28,249,
|
||||
22,176,8,248,22,137,4,248,22,72,200,64,101,108,115,101,10,248,22,72,197,
|
||||
250,22,82,2,20,9,248,22,73,200,249,22,71,2,8,248,22,73,202,100,8,
|
||||
250,22,82,2,20,9,248,22,73,200,249,22,71,2,4,248,22,73,202,100,8,
|
||||
31,8,30,8,29,8,28,8,27,16,4,11,11,2,18,3,1,8,101,110,118,
|
||||
49,50,52,48,55,16,4,11,11,2,19,3,1,8,101,110,118,49,50,52,48,
|
||||
56,93,8,224,57,75,0,0,18,16,2,158,94,10,64,118,111,105,100,8,47,
|
||||
95,9,8,224,57,75,0,0,2,1,27,248,22,73,248,22,143,4,196,249,22,
|
||||
49,50,55,54,50,16,4,11,11,2,19,3,1,8,101,110,118,49,50,55,54,
|
||||
51,93,8,224,125,76,0,0,18,16,2,158,94,10,64,118,111,105,100,8,47,
|
||||
95,9,8,224,125,76,0,0,2,1,27,248,22,73,248,22,143,4,196,249,22,
|
||||
136,4,80,158,39,36,28,248,22,56,248,22,137,4,248,22,72,197,250,22,81,
|
||||
2,26,248,22,81,248,22,72,199,248,22,96,198,27,248,22,137,4,248,22,72,
|
||||
197,250,22,81,2,26,248,22,81,248,22,72,197,250,22,82,2,23,248,22,73,
|
||||
|
@ -81,17 +81,17 @@
|
|||
2,3,2,4,2,5,2,6,2,7,2,8,2,9,2,10,2,11,2,12,36,
|
||||
46,37,11,11,11,16,0,16,0,16,0,36,36,11,11,11,11,16,0,16,0,
|
||||
16,0,36,36,16,11,16,5,2,2,20,15,159,36,36,36,36,20,105,159,36,
|
||||
16,0,16,1,33,32,10,16,5,2,10,89,162,8,44,37,53,9,223,0,33,
|
||||
33,36,20,105,159,36,16,1,2,2,16,0,11,16,5,2,11,89,162,8,44,
|
||||
16,0,16,1,33,32,10,16,5,2,5,89,162,8,44,37,53,9,223,0,33,
|
||||
33,36,20,105,159,36,16,1,2,2,16,0,11,16,5,2,8,89,162,8,44,
|
||||
37,53,9,223,0,33,34,36,20,105,159,36,16,1,2,2,16,0,11,16,5,
|
||||
2,9,89,162,8,44,37,53,9,223,0,33,35,36,20,105,159,36,16,1,2,
|
||||
2,16,1,33,36,11,16,5,2,5,89,162,8,44,37,56,9,223,0,33,37,
|
||||
36,20,105,159,36,16,1,2,2,16,1,33,38,11,16,5,2,4,89,162,8,
|
||||
2,10,89,162,8,44,37,53,9,223,0,33,35,36,20,105,159,36,16,1,2,
|
||||
2,16,1,33,36,11,16,5,2,12,89,162,8,44,37,56,9,223,0,33,37,
|
||||
36,20,105,159,36,16,1,2,2,16,1,33,38,11,16,5,2,3,89,162,8,
|
||||
44,37,58,9,223,0,33,41,36,20,105,159,36,16,1,2,2,16,0,11,16,
|
||||
5,2,12,89,162,8,44,37,53,9,223,0,33,43,36,20,105,159,36,16,1,
|
||||
2,2,16,0,11,16,5,2,3,89,162,8,44,37,54,9,223,0,33,44,36,
|
||||
5,2,11,89,162,8,44,37,53,9,223,0,33,43,36,20,105,159,36,16,1,
|
||||
2,2,16,0,11,16,5,2,9,89,162,8,44,37,54,9,223,0,33,44,36,
|
||||
20,105,159,36,16,1,2,2,16,0,11,16,5,2,6,89,162,8,44,37,55,
|
||||
9,223,0,33,45,36,20,105,159,36,16,1,2,2,16,0,11,16,5,2,8,
|
||||
9,223,0,33,45,36,20,105,159,36,16,1,2,2,16,0,11,16,5,2,4,
|
||||
89,162,8,44,37,58,9,223,0,33,46,36,20,105,159,36,16,1,2,2,16,
|
||||
1,33,48,11,16,5,2,7,89,162,8,44,37,54,9,223,0,33,49,36,20,
|
||||
105,159,36,16,1,2,2,16,0,11,16,0,94,2,14,2,15,93,2,14,9,
|
||||
|
@ -99,7 +99,7 @@
|
|||
EVAL_ONE_SIZED_STR((char *)expr, 2018);
|
||||
}
|
||||
{
|
||||
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,53,46,55,64,0,0,0,1,0,0,13,0,18,0,
|
||||
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,53,46,56,64,0,0,0,1,0,0,13,0,18,0,
|
||||
35,0,50,0,68,0,84,0,94,0,112,0,132,0,148,0,166,0,197,0,226,
|
||||
0,248,0,6,1,12,1,26,1,31,1,41,1,49,1,77,1,109,1,115,1,
|
||||
160,1,205,1,229,1,12,2,14,2,180,2,14,4,55,4,128,5,214,5,44,
|
||||
|
@ -400,12 +400,12 @@
|
|||
EVAL_ONE_SIZED_STR((char *)expr, 6239);
|
||||
}
|
||||
{
|
||||
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,53,46,55,8,0,0,0,1,0,0,6,0,19,0,
|
||||
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,53,46,56,8,0,0,0,1,0,0,6,0,19,0,
|
||||
34,0,48,0,62,0,76,0,118,0,0,0,53,1,0,0,65,113,117,111,116,
|
||||
101,29,94,2,1,67,35,37,117,116,105,108,115,11,29,94,2,1,69,35,37,
|
||||
110,101,116,119,111,114,107,11,29,94,2,1,68,35,37,112,97,114,97,109,122,
|
||||
11,29,94,2,1,68,35,37,101,120,112,111,98,115,11,29,94,2,1,68,35,
|
||||
37,107,101,114,110,101,108,11,97,36,11,8,240,181,75,0,0,98,159,2,2,
|
||||
37,107,101,114,110,101,108,11,97,36,11,8,240,249,76,0,0,98,159,2,2,
|
||||
36,36,159,2,3,36,36,159,2,4,36,36,159,2,5,36,36,159,2,6,36,
|
||||
36,159,2,6,36,36,16,0,159,36,20,105,159,36,16,1,11,16,0,83,158,
|
||||
42,20,103,144,69,35,37,98,117,105,108,116,105,110,29,11,11,11,11,11,18,
|
||||
|
@ -420,271 +420,316 @@
|
|||
EVAL_ONE_SIZED_STR((char *)expr, 346);
|
||||
}
|
||||
{
|
||||
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,53,46,55,65,0,0,0,1,0,0,11,0,38,0,
|
||||
SHARED_OK static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,50,46,53,46,56,73,0,0,0,1,0,0,11,0,38,0,
|
||||
44,0,57,0,66,0,73,0,95,0,117,0,143,0,155,0,173,0,193,0,205,
|
||||
0,221,0,244,0,0,1,31,1,38,1,43,1,48,1,53,1,58,1,67,1,
|
||||
72,1,76,1,84,1,93,1,114,1,144,1,175,1,232,1,24,2,64,4,83,
|
||||
4,96,4,254,4,10,5,144,5,186,6,53,7,59,7,73,7,85,7,175,7,
|
||||
188,7,51,8,63,8,153,8,166,8,29,9,56,9,68,9,158,9,171,9,34,
|
||||
10,47,10,166,10,174,10,3,11,5,11,74,11,69,18,121,18,144,18,0,0,
|
||||
49,21,0,0,70,100,108,108,45,115,117,102,102,105,120,1,25,100,101,102,97,
|
||||
117,108,116,45,108,111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,
|
||||
65,113,117,111,116,101,29,94,2,3,67,35,37,117,116,105,108,115,11,68,35,
|
||||
37,112,97,114,97,109,122,29,94,2,3,2,5,11,1,20,112,97,114,97,109,
|
||||
101,116,101,114,105,122,97,116,105,111,110,45,107,101,121,1,20,100,101,102,97,
|
||||
117,108,116,45,114,101,97,100,101,114,45,103,117,97,114,100,1,24,45,109,111,
|
||||
100,117,108,101,45,104,97,115,104,45,116,97,98,108,101,45,116,97,98,108,101,
|
||||
71,45,112,97,116,104,45,99,97,99,104,101,77,45,108,111,97,100,105,110,103,
|
||||
45,102,105,108,101,110,97,109,101,79,45,108,111,97,100,105,110,103,45,112,114,
|
||||
111,109,112,116,45,116,97,103,71,45,112,114,101,118,45,114,101,108,116,111,75,
|
||||
45,112,114,101,118,45,114,101,108,116,111,45,100,105,114,1,21,115,112,108,105,
|
||||
116,45,114,101,108,97,116,105,118,101,45,115,116,114,105,110,103,71,111,114,105,
|
||||
103,45,112,97,114,97,109,122,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,29,94,2,
|
||||
3,2,5,11,64,98,111,111,116,64,115,101,97,108,64,115,97,109,101,5,3,
|
||||
0,221,0,244,0,0,1,31,1,38,1,43,1,48,1,53,1,58,1,63,1,
|
||||
72,1,77,1,81,1,87,1,94,1,100,1,108,1,117,1,138,1,159,1,189,
|
||||
1,219,1,20,2,77,2,125,2,173,2,220,6,239,6,252,6,154,7,166,7,
|
||||
44,8,86,9,209,9,215,9,229,9,241,9,75,10,88,10,207,10,219,10,53,
|
||||
11,66,11,185,11,212,11,225,11,237,11,71,12,84,12,203,12,216,12,79,13,
|
||||
87,13,172,13,174,13,243,13,237,21,33,22,56,22,0,0,217,24,0,0,70,
|
||||
100,108,108,45,115,117,102,102,105,120,1,25,100,101,102,97,117,108,116,45,108,
|
||||
111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,100,65,113,117,111,116,
|
||||
101,29,94,2,3,67,35,37,117,116,105,108,115,11,68,35,37,112,97,114,97,
|
||||
109,122,29,94,2,3,2,5,11,1,20,112,97,114,97,109,101,116,101,114,105,
|
||||
122,97,116,105,111,110,45,107,101,121,1,20,100,101,102,97,117,108,116,45,114,
|
||||
101,97,100,101,114,45,103,117,97,114,100,1,24,45,109,111,100,117,108,101,45,
|
||||
104,97,115,104,45,116,97,98,108,101,45,116,97,98,108,101,71,45,112,97,116,
|
||||
104,45,99,97,99,104,101,77,45,108,111,97,100,105,110,103,45,102,105,108,101,
|
||||
110,97,109,101,79,45,108,111,97,100,105,110,103,45,112,114,111,109,112,116,45,
|
||||
116,97,103,71,45,112,114,101,118,45,114,101,108,116,111,75,45,112,114,101,118,
|
||||
45,114,101,108,116,111,45,100,105,114,1,21,115,112,108,105,116,45,114,101,108,
|
||||
97,116,105,118,101,45,115,116,114,105,110,103,71,111,114,105,103,45,112,97,114,
|
||||
97,109,122,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,29,94,2,3,2,5,11,64,
|
||||
98,111,111,116,64,115,101,97,108,64,115,97,109,101,5,3,46,122,111,5,3,
|
||||
46,122,111,6,6,6,110,97,116,105,118,101,64,108,111,111,112,63,108,105,98,
|
||||
67,105,103,110,111,114,101,100,249,22,14,195,80,159,38,46,38,250,22,187,13,
|
||||
23,197,1,23,199,1,249,80,159,43,39,38,23,198,1,2,22,252,22,187,13,
|
||||
23,199,1,23,201,1,2,23,247,22,190,7,249,80,159,45,39,38,23,200,1,
|
||||
80,159,45,36,38,87,94,23,194,1,27,250,22,140,14,196,11,32,0,89,162,
|
||||
8,44,36,41,9,222,11,28,192,249,22,71,195,194,11,27,252,22,187,13,23,
|
||||
200,1,23,202,1,2,23,247,22,190,7,249,80,159,46,39,38,23,201,1,80,
|
||||
159,46,36,38,27,250,22,140,14,196,11,32,0,89,162,8,44,36,41,9,222,
|
||||
11,28,192,249,22,71,195,194,11,27,250,22,187,13,23,198,1,23,200,1,249,
|
||||
80,159,44,39,38,23,199,1,2,22,27,250,22,140,14,196,11,32,0,89,162,
|
||||
8,44,36,41,9,222,11,28,192,249,22,71,195,194,11,87,94,28,248,80,159,
|
||||
37,38,38,23,195,2,12,250,22,146,9,77,108,111,97,100,47,117,115,101,45,
|
||||
99,111,109,112,105,108,101,100,6,25,25,112,97,116,104,32,111,114,32,118,97,
|
||||
108,105,100,45,112,97,116,104,32,115,116,114,105,110,103,23,197,2,91,159,42,
|
||||
11,90,161,37,36,11,28,248,22,129,14,23,201,2,23,200,1,27,247,22,138,
|
||||
5,28,23,193,2,249,22,130,14,23,203,1,23,195,1,200,90,161,39,37,11,
|
||||
248,22,190,13,23,194,2,87,94,23,196,1,90,161,37,40,11,28,249,22,176,
|
||||
8,23,196,2,68,114,101,108,97,116,105,118,101,87,94,23,194,1,2,21,23,
|
||||
194,1,90,161,37,41,11,247,22,148,14,27,89,162,44,37,50,62,122,111,225,
|
||||
7,5,3,33,28,27,89,162,44,37,52,9,225,8,6,4,33,29,27,249,22,
|
||||
5,89,162,8,44,37,47,9,223,5,33,30,23,203,2,27,28,23,195,1,27,
|
||||
249,22,5,89,162,8,44,37,53,9,225,13,11,9,33,31,23,205,2,27,28,
|
||||
23,196,2,11,193,28,192,192,28,193,28,23,196,2,28,249,22,176,3,248,22,
|
||||
73,196,248,22,73,23,199,2,193,11,11,11,11,28,23,193,2,87,98,23,202,
|
||||
1,23,199,1,23,197,1,23,196,1,23,194,1,20,14,159,80,159,46,40,38,
|
||||
250,80,159,49,41,38,249,22,27,11,80,159,51,40,38,22,138,5,28,248,22,
|
||||
169,13,23,205,2,23,204,1,87,94,23,204,1,247,22,146,14,249,247,22,151,
|
||||
14,248,22,72,195,206,87,94,23,193,1,27,28,23,197,1,27,249,22,5,83,
|
||||
158,40,20,100,94,89,162,8,44,37,51,9,225,14,12,10,33,32,23,203,1,
|
||||
23,206,1,27,28,23,197,2,11,193,28,192,192,28,193,28,196,28,249,22,176,
|
||||
3,248,22,73,196,248,22,73,199,193,11,11,11,87,95,23,203,1,23,200,1,
|
||||
11,28,23,193,2,87,94,23,198,1,20,14,159,80,159,47,40,38,250,80,159,
|
||||
50,41,38,249,22,27,11,80,159,52,40,38,22,138,5,28,248,22,169,13,23,
|
||||
206,2,23,205,1,87,94,23,205,1,247,22,146,14,249,247,22,136,5,248,22,
|
||||
72,195,23,15,87,94,23,193,1,20,14,159,80,159,47,40,38,250,80,159,50,
|
||||
41,38,249,22,27,11,80,159,52,40,38,22,138,5,28,248,22,169,13,23,206,
|
||||
2,23,205,1,87,94,23,205,1,247,22,146,14,249,247,22,136,5,199,23,15,
|
||||
0,17,35,114,120,34,94,40,46,42,63,41,47,40,46,42,41,36,34,32,35,
|
||||
89,162,8,44,37,59,2,24,222,33,36,27,249,22,156,14,2,34,23,196,2,
|
||||
28,23,193,2,87,94,23,194,1,249,22,71,248,22,96,23,196,2,27,248,22,
|
||||
105,23,197,1,27,249,22,156,14,2,34,23,196,2,28,23,193,2,87,94,23,
|
||||
194,1,249,22,71,248,22,96,23,196,2,27,248,22,105,23,197,1,27,249,22,
|
||||
156,14,2,34,23,196,2,28,23,193,2,87,94,23,194,1,249,22,71,248,22,
|
||||
96,23,196,2,27,248,22,105,23,197,1,27,249,22,156,14,2,34,23,196,2,
|
||||
28,23,193,2,87,94,23,194,1,249,22,71,248,22,96,23,196,2,248,2,35,
|
||||
248,22,105,23,197,1,248,22,81,194,248,22,81,194,248,22,81,194,248,22,81,
|
||||
194,32,37,89,162,44,37,55,2,24,222,33,38,28,248,22,79,248,22,73,23,
|
||||
195,2,249,22,7,9,248,22,72,195,91,159,38,11,90,161,38,36,11,27,248,
|
||||
22,73,196,28,248,22,79,248,22,73,23,195,2,249,22,7,9,248,22,72,195,
|
||||
91,159,38,11,90,161,38,36,11,27,248,22,73,196,28,248,22,79,248,22,73,
|
||||
23,195,2,249,22,7,9,248,22,72,195,91,159,38,11,90,161,38,36,11,248,
|
||||
2,37,248,22,73,196,249,22,7,249,22,71,248,22,72,199,196,195,249,22,7,
|
||||
249,22,71,248,22,72,199,196,195,249,22,7,249,22,71,248,22,72,199,196,195,
|
||||
27,27,249,22,156,14,2,34,23,197,2,28,23,193,2,87,94,23,195,1,249,
|
||||
22,71,248,22,96,23,196,2,27,248,22,105,23,197,1,27,249,22,156,14,2,
|
||||
34,23,196,2,28,23,193,2,87,94,23,194,1,249,22,71,248,22,96,23,196,
|
||||
2,27,248,22,105,23,197,1,27,249,22,156,14,2,34,23,196,2,28,23,193,
|
||||
2,87,94,23,194,1,249,22,71,248,22,96,23,196,2,27,248,22,105,23,197,
|
||||
1,27,249,22,156,14,2,34,23,196,2,28,23,193,2,87,94,23,194,1,249,
|
||||
22,71,248,22,96,23,196,2,248,2,35,248,22,105,23,197,1,248,22,81,194,
|
||||
248,22,81,194,248,22,81,194,248,22,81,195,28,23,195,1,192,28,248,22,79,
|
||||
248,22,73,23,195,2,249,22,7,9,248,22,72,195,91,159,38,11,90,161,38,
|
||||
36,11,27,248,22,73,196,28,248,22,79,248,22,73,23,195,2,249,22,7,9,
|
||||
248,22,72,195,91,159,38,11,90,161,38,36,11,27,248,22,73,196,28,248,22,
|
||||
79,248,22,73,23,195,2,249,22,7,9,248,22,72,195,91,159,38,11,90,161,
|
||||
38,36,11,248,2,37,248,22,73,196,249,22,7,249,22,71,248,22,72,199,196,
|
||||
195,249,22,7,249,22,71,248,22,72,199,196,195,249,22,7,249,22,71,248,22,
|
||||
72,199,196,195,87,95,28,248,22,180,4,195,12,250,22,146,9,2,17,6,20,
|
||||
20,114,101,115,111,108,118,101,100,45,109,111,100,117,108,101,45,112,97,116,104,
|
||||
197,28,24,193,2,248,24,194,1,195,87,94,23,193,1,12,27,27,250,22,146,
|
||||
2,80,159,42,43,38,248,22,176,14,247,22,149,12,11,28,23,193,2,192,87,
|
||||
94,23,193,1,27,247,22,130,2,87,94,250,22,144,2,80,159,43,43,38,248,
|
||||
22,176,14,247,22,149,12,195,192,250,22,144,2,195,198,66,97,116,116,97,99,
|
||||
104,251,211,197,198,199,10,28,192,250,22,145,9,11,196,195,248,22,143,9,194,
|
||||
32,43,89,162,44,37,52,2,24,222,33,44,28,248,22,79,248,22,73,23,195,
|
||||
2,249,22,7,9,248,22,72,195,91,159,38,11,90,161,38,36,11,27,248,22,
|
||||
73,196,28,248,22,79,248,22,73,23,195,2,249,22,7,9,248,22,72,195,91,
|
||||
159,38,11,90,161,38,36,11,248,2,43,248,22,73,196,249,22,7,249,22,71,
|
||||
248,22,72,199,196,195,249,22,7,249,22,71,248,22,72,199,196,195,32,45,89,
|
||||
162,8,44,37,55,2,24,222,33,46,27,249,22,156,14,2,34,23,196,2,28,
|
||||
23,193,2,87,94,23,194,1,249,22,71,248,22,96,23,196,2,27,248,22,105,
|
||||
23,197,1,27,249,22,156,14,2,34,23,196,2,28,23,193,2,87,94,23,194,
|
||||
1,249,22,71,248,22,96,23,196,2,27,248,22,105,23,197,1,27,249,22,156,
|
||||
14,2,34,23,196,2,28,23,193,2,87,94,23,194,1,249,22,71,248,22,96,
|
||||
23,196,2,248,2,45,248,22,105,23,197,1,248,22,81,194,248,22,81,194,248,
|
||||
22,81,194,32,47,89,162,44,37,52,2,24,222,33,48,28,248,22,79,248,22,
|
||||
6,3,3,46,115,115,6,4,4,46,114,107,116,5,4,46,114,107,116,67,105,
|
||||
103,110,111,114,101,100,249,22,14,195,80,159,38,46,38,250,22,187,13,23,197,
|
||||
1,23,199,1,249,80,159,43,39,38,23,198,1,2,22,250,22,187,13,23,197,
|
||||
1,23,199,1,249,80,159,43,39,38,23,198,1,2,23,252,22,187,13,23,199,
|
||||
1,23,201,1,2,24,247,22,190,7,249,80,159,45,39,38,23,200,1,80,159,
|
||||
45,36,38,252,22,187,13,23,199,1,23,201,1,2,24,247,22,190,7,249,80,
|
||||
159,45,39,38,23,200,1,80,159,45,36,38,27,252,22,187,13,23,200,1,23,
|
||||
202,1,2,24,247,22,190,7,249,80,159,46,39,38,23,201,1,80,159,46,36,
|
||||
38,27,250,22,140,14,196,11,32,0,89,162,8,44,36,41,9,222,11,28,192,
|
||||
249,22,71,195,194,11,27,252,22,187,13,23,200,1,23,202,1,2,24,247,22,
|
||||
190,7,249,80,159,46,39,38,23,201,1,80,159,46,36,38,27,250,22,140,14,
|
||||
196,11,32,0,89,162,8,44,36,41,9,222,11,28,192,249,22,71,195,194,11,
|
||||
27,250,22,187,13,23,198,1,23,200,1,249,80,159,44,39,38,23,199,1,2,
|
||||
22,27,250,22,140,14,196,11,32,0,89,162,8,44,36,41,9,222,11,28,192,
|
||||
249,22,71,195,194,11,27,250,22,187,13,23,198,1,23,200,1,249,80,159,44,
|
||||
39,38,23,199,1,2,23,27,250,22,140,14,196,11,32,0,89,162,8,44,36,
|
||||
41,9,222,11,28,192,249,22,71,195,194,11,87,94,28,248,80,159,37,38,38,
|
||||
23,195,2,12,250,22,146,9,77,108,111,97,100,47,117,115,101,45,99,111,109,
|
||||
112,105,108,101,100,6,25,25,112,97,116,104,32,111,114,32,118,97,108,105,100,
|
||||
45,112,97,116,104,32,115,116,114,105,110,103,23,197,2,91,159,46,11,90,161,
|
||||
37,36,11,28,248,22,129,14,23,205,2,23,204,2,27,247,22,138,5,28,23,
|
||||
193,2,249,22,130,14,23,207,2,23,195,1,23,205,2,90,161,39,37,11,248,
|
||||
22,190,13,23,205,1,87,94,23,196,1,90,161,38,40,11,28,23,205,2,27,
|
||||
248,22,174,13,23,197,2,27,248,22,161,7,23,195,2,28,28,249,22,176,3,
|
||||
23,195,2,40,249,22,164,7,5,4,46,114,107,116,249,22,167,7,23,198,2,
|
||||
249,22,164,3,23,199,2,40,11,249,22,7,23,199,2,248,22,178,13,249,22,
|
||||
168,7,250,22,167,7,23,202,1,36,249,22,164,3,23,203,1,40,5,3,46,
|
||||
115,115,249,22,7,23,199,2,11,249,22,7,23,197,2,11,90,161,37,42,11,
|
||||
28,249,22,176,8,23,199,2,23,197,2,23,193,2,249,22,187,13,23,196,2,
|
||||
23,199,2,90,161,37,43,11,28,23,198,2,28,249,22,176,8,23,200,2,23,
|
||||
197,1,23,193,1,87,94,23,193,1,249,22,187,13,23,196,2,23,200,2,87,
|
||||
94,23,195,1,11,90,161,37,44,11,28,249,22,176,8,23,196,2,68,114,101,
|
||||
108,97,116,105,118,101,87,94,23,194,1,2,21,23,194,1,90,161,37,45,11,
|
||||
247,22,148,14,27,27,250,22,140,14,23,204,2,11,32,0,89,162,8,44,36,
|
||||
41,9,222,11,28,192,249,22,71,23,203,2,194,11,27,28,23,202,2,28,23,
|
||||
194,2,11,27,250,22,140,14,23,206,2,11,32,0,89,162,8,44,36,41,9,
|
||||
222,11,28,192,249,22,71,23,205,2,194,11,11,27,28,23,195,2,23,195,2,
|
||||
23,194,2,27,89,162,44,37,50,62,122,111,225,14,12,8,33,32,27,89,162,
|
||||
44,37,50,66,97,108,116,45,122,111,225,15,13,10,33,33,27,89,162,44,37,
|
||||
52,9,225,16,14,10,33,34,27,89,162,44,37,52,9,225,17,15,12,33,35,
|
||||
27,28,23,200,2,23,200,2,248,22,174,8,23,200,2,27,28,23,200,2,87,
|
||||
94,23,201,1,23,200,2,248,22,174,8,23,202,1,27,27,28,23,196,2,28,
|
||||
23,198,1,27,249,22,5,89,162,8,44,37,53,9,225,24,22,18,33,36,23,
|
||||
216,2,27,28,23,203,2,11,193,28,192,192,28,193,28,23,203,2,28,249,22,
|
||||
176,3,248,22,73,196,248,22,73,23,206,2,193,11,11,11,11,87,94,23,198,
|
||||
1,11,28,23,193,2,192,87,94,23,193,1,28,23,195,2,28,23,197,1,27,
|
||||
249,22,5,89,162,8,44,37,53,9,225,24,22,19,33,37,23,216,2,27,28,
|
||||
203,11,193,28,192,192,28,193,28,203,28,249,22,176,3,248,22,73,196,248,22,
|
||||
73,206,193,11,11,11,11,11,28,23,193,2,87,103,23,212,1,23,210,1,23,
|
||||
209,1,23,208,1,23,207,1,23,200,1,23,199,1,23,198,1,23,195,1,23,
|
||||
194,1,20,14,159,80,159,56,40,38,250,80,159,59,41,38,249,22,27,11,80,
|
||||
159,8,25,40,38,22,138,5,28,248,22,169,13,23,215,2,23,214,1,87,94,
|
||||
23,214,1,247,22,146,14,249,247,22,151,14,248,22,72,195,23,24,87,94,23,
|
||||
193,1,27,27,28,23,197,2,28,23,201,1,27,249,22,5,83,158,40,20,100,
|
||||
94,89,162,8,44,37,51,9,225,25,23,19,33,38,23,212,1,23,217,2,27,
|
||||
28,23,204,2,11,193,28,192,192,28,193,28,23,204,2,28,249,22,176,3,248,
|
||||
22,73,196,248,22,73,23,207,2,193,11,11,11,87,94,23,209,1,11,87,94,
|
||||
23,201,1,11,28,23,193,2,192,87,94,23,193,1,28,23,196,1,28,23,200,
|
||||
1,27,249,22,5,83,158,40,20,100,94,89,162,8,44,37,51,9,225,25,23,
|
||||
20,33,39,23,213,1,23,217,1,27,28,203,11,193,28,192,192,28,193,28,203,
|
||||
28,249,22,176,3,248,22,73,196,248,22,73,206,193,11,11,11,11,11,28,23,
|
||||
193,2,87,96,23,211,1,23,210,1,23,196,1,20,14,159,80,159,57,40,38,
|
||||
250,80,159,8,24,41,38,249,22,27,11,80,159,8,26,40,38,22,138,5,28,
|
||||
248,22,169,13,23,216,2,23,215,1,87,94,23,215,1,247,22,146,14,249,247,
|
||||
22,136,5,248,22,72,195,23,25,87,94,23,193,1,20,14,159,80,159,57,40,
|
||||
38,250,80,159,8,24,41,38,249,22,27,11,80,159,8,26,40,38,22,138,5,
|
||||
28,248,22,169,13,23,216,2,23,215,1,87,94,23,215,1,247,22,146,14,249,
|
||||
247,22,136,5,28,197,23,19,23,20,23,25,0,17,35,114,120,34,94,40,46,
|
||||
42,63,41,47,40,46,42,41,36,34,32,42,89,162,8,44,37,59,2,25,222,
|
||||
33,43,27,249,22,156,14,2,41,23,196,2,28,23,193,2,87,94,23,194,1,
|
||||
249,22,71,248,22,96,23,196,2,27,248,22,105,23,197,1,27,249,22,156,14,
|
||||
2,41,23,196,2,28,23,193,2,87,94,23,194,1,249,22,71,248,22,96,23,
|
||||
196,2,27,248,22,105,23,197,1,27,249,22,156,14,2,41,23,196,2,28,23,
|
||||
193,2,87,94,23,194,1,249,22,71,248,22,96,23,196,2,27,248,22,105,23,
|
||||
197,1,27,249,22,156,14,2,41,23,196,2,28,23,193,2,87,94,23,194,1,
|
||||
249,22,71,248,22,96,23,196,2,248,2,42,248,22,105,23,197,1,248,22,81,
|
||||
194,248,22,81,194,248,22,81,194,248,22,81,194,32,44,89,162,44,37,55,2,
|
||||
25,222,33,45,28,248,22,79,248,22,73,23,195,2,249,22,7,9,248,22,72,
|
||||
195,91,159,38,11,90,161,38,36,11,27,248,22,73,196,28,248,22,79,248,22,
|
||||
73,23,195,2,249,22,7,9,248,22,72,195,91,159,38,11,90,161,38,36,11,
|
||||
27,248,22,73,196,28,248,22,79,248,22,73,23,195,2,249,22,7,9,248,22,
|
||||
72,195,91,159,38,11,90,161,38,36,11,248,2,47,248,22,73,196,249,22,7,
|
||||
72,195,91,159,38,11,90,161,38,36,11,248,2,44,248,22,73,196,249,22,7,
|
||||
249,22,71,248,22,72,199,196,195,249,22,7,249,22,71,248,22,72,199,196,195,
|
||||
32,49,89,162,8,44,37,55,2,24,222,33,50,27,249,22,156,14,2,34,23,
|
||||
196,2,28,23,193,2,87,94,23,194,1,249,22,71,248,22,96,23,196,2,27,
|
||||
248,22,105,23,197,1,27,249,22,156,14,2,34,23,196,2,28,23,193,2,87,
|
||||
249,22,7,249,22,71,248,22,72,199,196,195,27,27,249,22,156,14,2,41,23,
|
||||
197,2,28,23,193,2,87,94,23,195,1,249,22,71,248,22,96,23,196,2,27,
|
||||
248,22,105,23,197,1,27,249,22,156,14,2,41,23,196,2,28,23,193,2,87,
|
||||
94,23,194,1,249,22,71,248,22,96,23,196,2,27,248,22,105,23,197,1,27,
|
||||
249,22,156,14,2,34,23,196,2,28,23,193,2,87,94,23,194,1,249,22,71,
|
||||
248,22,96,23,196,2,248,2,49,248,22,105,23,197,1,248,22,81,194,248,22,
|
||||
81,194,248,22,81,194,28,249,22,176,6,194,6,1,1,46,2,21,28,249,22,
|
||||
176,6,194,6,2,2,46,46,62,117,112,192,32,52,89,162,44,37,52,2,24,
|
||||
222,33,53,28,248,22,79,248,22,73,23,195,2,249,22,7,9,248,22,72,195,
|
||||
249,22,156,14,2,41,23,196,2,28,23,193,2,87,94,23,194,1,249,22,71,
|
||||
248,22,96,23,196,2,27,248,22,105,23,197,1,27,249,22,156,14,2,41,23,
|
||||
196,2,28,23,193,2,87,94,23,194,1,249,22,71,248,22,96,23,196,2,248,
|
||||
2,42,248,22,105,23,197,1,248,22,81,194,248,22,81,194,248,22,81,194,248,
|
||||
22,81,195,28,23,195,1,192,28,248,22,79,248,22,73,23,195,2,249,22,7,
|
||||
9,248,22,72,195,91,159,38,11,90,161,38,36,11,27,248,22,73,196,28,248,
|
||||
22,79,248,22,73,23,195,2,249,22,7,9,248,22,72,195,91,159,38,11,90,
|
||||
161,38,36,11,27,248,22,73,196,28,248,22,79,248,22,73,23,195,2,249,22,
|
||||
7,9,248,22,72,195,91,159,38,11,90,161,38,36,11,248,2,44,248,22,73,
|
||||
196,249,22,7,249,22,71,248,22,72,199,196,195,249,22,7,249,22,71,248,22,
|
||||
72,199,196,195,249,22,7,249,22,71,248,22,72,199,196,195,87,95,28,248,22,
|
||||
180,4,195,12,250,22,146,9,2,17,6,20,20,114,101,115,111,108,118,101,100,
|
||||
45,109,111,100,117,108,101,45,112,97,116,104,197,28,24,193,2,248,24,194,1,
|
||||
195,87,94,23,193,1,12,27,27,250,22,146,2,80,159,42,43,38,248,22,176,
|
||||
14,247,22,149,12,11,28,23,193,2,192,87,94,23,193,1,27,247,22,130,2,
|
||||
87,94,250,22,144,2,80,159,43,43,38,248,22,176,14,247,22,149,12,195,192,
|
||||
250,22,144,2,195,198,66,97,116,116,97,99,104,251,211,197,198,199,10,28,192,
|
||||
250,22,145,9,11,196,195,248,22,143,9,194,32,50,89,162,44,37,52,2,25,
|
||||
222,33,51,28,248,22,79,248,22,73,23,195,2,249,22,7,9,248,22,72,195,
|
||||
91,159,38,11,90,161,38,36,11,27,248,22,73,196,28,248,22,79,248,22,73,
|
||||
23,195,2,249,22,7,9,248,22,72,195,91,159,38,11,90,161,38,36,11,248,
|
||||
2,52,248,22,73,196,249,22,7,249,22,71,248,22,72,199,196,195,249,22,7,
|
||||
249,22,71,248,22,72,199,196,195,32,54,89,162,8,44,37,55,2,24,222,33,
|
||||
55,27,249,22,156,14,2,34,23,196,2,28,23,193,2,87,94,23,194,1,249,
|
||||
2,50,248,22,73,196,249,22,7,249,22,71,248,22,72,199,196,195,249,22,7,
|
||||
249,22,71,248,22,72,199,196,195,32,52,89,162,8,44,37,55,2,25,222,33,
|
||||
53,27,249,22,156,14,2,41,23,196,2,28,23,193,2,87,94,23,194,1,249,
|
||||
22,71,248,22,96,23,196,2,27,248,22,105,23,197,1,27,249,22,156,14,2,
|
||||
34,23,196,2,28,23,193,2,87,94,23,194,1,249,22,71,248,22,96,23,196,
|
||||
2,27,248,22,105,23,197,1,27,249,22,156,14,2,34,23,196,2,28,23,193,
|
||||
2,87,94,23,194,1,249,22,71,248,22,96,23,196,2,248,2,54,248,22,105,
|
||||
23,197,1,248,22,81,194,248,22,81,194,248,22,81,194,32,56,89,162,8,44,
|
||||
37,55,2,24,222,33,57,27,249,22,156,14,2,34,23,196,2,28,23,193,2,
|
||||
87,94,23,194,1,249,22,71,248,22,96,23,196,2,27,248,22,105,23,197,1,
|
||||
27,249,22,156,14,2,34,23,196,2,28,23,193,2,87,94,23,194,1,249,22,
|
||||
71,248,22,96,23,196,2,27,248,22,105,23,197,1,27,249,22,156,14,2,34,
|
||||
23,196,2,28,23,193,2,87,94,23,194,1,249,22,71,248,22,96,23,196,2,
|
||||
248,2,56,248,22,105,23,197,1,248,22,81,194,248,22,81,194,248,22,81,194,
|
||||
27,248,2,56,23,195,1,192,28,249,22,178,8,248,22,73,23,200,2,23,197,
|
||||
1,28,249,22,176,8,248,22,72,23,200,2,23,196,1,251,22,143,9,2,17,
|
||||
6,26,26,99,121,99,108,101,32,105,110,32,108,111,97,100,105,110,103,32,97,
|
||||
116,32,126,101,58,32,126,101,23,200,1,249,22,2,22,73,248,22,86,249,22,
|
||||
71,23,206,1,23,202,1,12,12,247,192,20,14,159,80,159,40,45,38,249,22,
|
||||
71,248,22,176,14,247,22,149,12,23,197,1,20,14,159,80,159,40,40,38,250,
|
||||
80,159,43,41,38,249,22,27,11,80,159,45,40,38,22,162,4,23,196,1,249,
|
||||
247,22,137,5,23,198,1,248,22,59,248,22,173,13,23,198,1,87,94,28,28,
|
||||
248,22,169,13,23,196,2,10,248,22,188,4,23,196,2,12,28,23,197,2,250,
|
||||
22,145,9,11,6,15,15,98,97,100,32,109,111,100,117,108,101,32,112,97,116,
|
||||
104,23,200,2,250,22,146,9,2,17,6,19,19,109,111,100,117,108,101,45,112,
|
||||
97,116,104,32,111,114,32,112,97,116,104,23,198,2,28,28,248,22,69,23,196,
|
||||
2,249,22,176,8,248,22,72,23,198,2,2,3,11,248,22,181,4,248,22,96,
|
||||
196,28,28,248,22,69,23,196,2,249,22,176,8,248,22,72,23,198,2,66,112,
|
||||
108,97,110,101,116,11,87,94,28,207,12,20,14,159,80,159,37,52,38,80,158,
|
||||
37,50,90,161,37,36,10,249,22,163,4,21,94,2,25,6,18,18,112,108,97,
|
||||
110,101,116,47,114,101,115,111,108,118,101,114,46,115,115,1,27,112,108,97,110,
|
||||
101,116,45,109,111,100,117,108,101,45,110,97,109,101,45,114,101,115,111,108,118,
|
||||
101,114,12,252,212,199,200,201,202,80,158,42,50,87,94,23,193,1,27,89,162,
|
||||
8,44,37,46,79,115,104,111,119,45,99,111,108,108,101,99,116,105,111,110,45,
|
||||
101,114,114,223,5,33,42,27,28,248,22,56,23,198,2,27,250,22,146,2,80,
|
||||
159,43,44,38,249,22,71,23,203,2,247,22,147,14,11,28,23,193,2,192,87,
|
||||
94,23,193,1,91,159,38,11,90,161,38,36,11,27,248,22,62,23,202,2,248,
|
||||
2,43,248,2,45,23,195,1,27,251,80,159,47,53,38,2,17,23,202,1,28,
|
||||
248,22,79,23,199,2,23,199,2,248,22,72,23,199,2,28,248,22,79,23,199,
|
||||
2,9,248,22,73,23,199,2,249,22,187,13,23,195,1,28,248,22,79,23,197,
|
||||
1,87,94,23,197,1,6,7,7,109,97,105,110,46,115,115,249,22,129,7,23,
|
||||
199,1,6,3,3,46,115,115,28,248,22,170,6,23,198,2,87,94,23,194,1,
|
||||
27,27,28,23,200,2,28,249,22,176,8,23,202,2,80,158,43,47,80,158,41,
|
||||
48,27,248,22,182,4,23,202,2,28,248,22,169,13,23,194,2,91,159,39,11,
|
||||
90,161,39,36,11,248,22,190,13,23,197,1,87,95,83,160,38,11,80,158,45,
|
||||
47,23,204,2,83,160,38,11,80,158,45,48,192,192,11,11,28,23,193,2,192,
|
||||
87,94,23,193,1,27,247,22,138,5,28,23,193,2,192,87,94,23,193,1,247,
|
||||
22,146,14,27,250,22,146,2,80,159,44,44,38,249,22,71,23,204,2,23,199,
|
||||
2,11,28,23,193,2,192,87,94,23,193,1,91,159,38,11,90,161,38,36,11,
|
||||
248,2,47,248,2,49,23,203,2,250,22,1,22,187,13,23,199,1,249,22,85,
|
||||
249,22,2,32,0,89,162,8,44,37,44,9,222,33,51,23,200,1,248,22,81,
|
||||
23,200,1,28,248,22,169,13,23,198,2,87,94,23,194,1,28,248,22,128,14,
|
||||
23,198,2,23,197,2,248,22,81,6,26,26,32,40,97,32,112,97,116,104,32,
|
||||
109,117,115,116,32,98,101,32,97,98,115,111,108,117,116,101,41,28,249,22,176,
|
||||
8,248,22,72,23,200,2,2,25,27,250,22,146,2,80,159,43,44,38,249,22,
|
||||
71,23,203,2,247,22,147,14,11,28,23,193,2,192,87,94,23,193,1,91,159,
|
||||
39,11,90,161,38,36,11,27,248,22,96,23,203,2,248,2,52,248,2,54,23,
|
||||
195,1,90,161,37,38,11,28,248,22,79,248,22,98,23,203,2,28,248,22,79,
|
||||
23,194,2,249,22,158,14,0,8,35,114,120,34,91,46,93,34,23,196,2,11,
|
||||
10,27,27,28,23,197,2,249,22,85,28,248,22,79,248,22,98,23,207,2,21,
|
||||
93,6,5,5,109,122,108,105,98,249,22,1,22,85,249,22,2,32,0,89,162,
|
||||
8,44,37,44,9,222,33,58,248,22,98,23,210,2,23,197,2,28,248,22,79,
|
||||
23,196,2,248,22,81,23,197,2,23,195,2,251,80,159,49,53,38,2,17,23,
|
||||
204,1,248,22,72,23,198,2,248,22,73,23,198,1,249,22,187,13,23,195,1,
|
||||
28,23,198,1,87,94,23,196,1,23,197,1,28,248,22,79,23,197,1,87,94,
|
||||
23,197,1,6,7,7,109,97,105,110,46,115,115,28,249,22,158,14,0,8,35,
|
||||
114,120,34,91,46,93,34,23,199,2,23,197,1,249,22,129,7,23,199,1,6,
|
||||
3,3,46,115,115,28,249,22,176,8,248,22,72,23,200,2,64,102,105,108,101,
|
||||
249,22,130,14,248,22,134,14,248,22,96,23,201,2,27,28,23,201,2,28,249,
|
||||
22,176,8,23,203,2,80,158,44,47,80,158,42,48,27,248,22,182,4,23,203,
|
||||
2,28,248,22,169,13,23,194,2,91,159,39,11,90,161,39,36,11,248,22,190,
|
||||
13,23,197,1,87,95,83,160,38,11,80,158,46,47,23,205,2,83,160,38,11,
|
||||
80,158,46,48,192,192,11,11,28,23,193,2,192,87,94,23,193,1,27,247,22,
|
||||
138,5,28,23,193,2,192,87,94,23,193,1,247,22,146,14,12,87,94,28,28,
|
||||
248,22,169,13,23,194,2,10,248,22,128,8,23,194,2,87,94,23,199,1,12,
|
||||
28,23,199,2,250,22,145,9,67,114,101,113,117,105,114,101,249,22,154,7,6,
|
||||
17,17,98,97,100,32,109,111,100,117,108,101,32,112,97,116,104,126,97,28,23,
|
||||
198,2,248,22,72,23,199,2,6,0,0,23,202,1,87,94,23,199,1,250,22,
|
||||
146,9,2,17,249,22,154,7,6,13,13,109,111,100,117,108,101,32,112,97,116,
|
||||
104,126,97,28,23,198,2,248,22,72,23,199,2,6,0,0,23,200,2,27,28,
|
||||
248,22,128,8,23,195,2,249,22,133,8,23,196,2,36,249,22,132,14,248,22,
|
||||
133,14,23,197,2,11,27,28,248,22,128,8,23,196,2,249,22,133,8,23,197,
|
||||
2,37,248,80,159,42,54,38,23,195,2,91,159,39,11,90,161,39,36,11,28,
|
||||
248,22,128,8,23,199,2,250,22,7,2,26,249,22,133,8,23,203,2,38,2,
|
||||
26,248,22,190,13,23,198,2,87,95,23,195,1,23,193,1,27,28,248,22,128,
|
||||
8,23,200,2,249,22,133,8,23,201,2,39,249,80,159,47,55,38,23,197,2,
|
||||
5,0,27,28,248,22,128,8,23,201,2,249,22,133,8,23,202,2,40,248,22,
|
||||
181,4,23,200,2,27,27,250,22,146,2,80,159,51,43,38,248,22,176,14,247,
|
||||
22,149,12,11,28,23,193,2,192,87,94,23,193,1,27,247,22,130,2,87,94,
|
||||
250,22,144,2,80,159,52,43,38,248,22,176,14,247,22,149,12,195,192,87,95,
|
||||
28,23,208,1,27,250,22,146,2,23,197,2,197,11,28,23,193,1,12,87,95,
|
||||
27,27,28,248,22,17,80,159,51,46,38,80,159,50,46,38,247,22,19,250,22,
|
||||
25,248,22,23,23,197,2,80,159,53,45,38,23,196,1,27,248,22,176,14,247,
|
||||
22,149,12,249,22,3,83,158,40,20,100,94,89,162,8,44,37,55,9,226,12,
|
||||
11,2,3,33,59,23,195,1,23,196,1,248,28,248,22,17,80,159,50,46,38,
|
||||
32,0,89,162,44,37,42,9,222,33,60,80,159,49,59,37,89,162,44,36,51,
|
||||
9,227,13,9,8,4,3,33,61,250,22,144,2,23,197,1,197,10,12,28,28,
|
||||
248,22,128,8,23,202,1,11,28,248,22,170,6,23,206,2,10,28,248,22,56,
|
||||
23,206,2,10,28,248,22,69,23,206,2,249,22,176,8,248,22,72,23,208,2,
|
||||
2,25,11,250,22,144,2,80,159,50,44,38,28,248,22,170,6,23,209,2,249,
|
||||
22,71,23,210,1,27,28,23,212,2,28,249,22,176,8,23,214,2,80,158,55,
|
||||
47,87,94,23,212,1,80,158,53,48,27,248,22,182,4,23,214,2,28,248,22,
|
||||
169,13,23,194,2,91,159,39,11,90,161,39,36,11,248,22,190,13,23,197,1,
|
||||
87,95,83,160,38,11,80,158,57,47,23,23,83,160,38,11,80,158,57,48,192,
|
||||
192,11,11,28,23,193,2,192,87,94,23,193,1,27,247,22,138,5,28,23,193,
|
||||
2,192,87,94,23,193,1,247,22,146,14,249,22,71,23,210,1,247,22,147,14,
|
||||
252,22,130,8,23,208,1,23,207,1,23,205,1,23,203,1,201,12,193,87,96,
|
||||
83,160,38,11,80,158,36,50,248,80,159,37,58,38,249,22,27,11,80,159,39,
|
||||
52,38,248,22,161,4,80,159,37,51,38,248,22,137,5,80,159,37,37,37,248,
|
||||
22,140,13,80,159,37,42,37,83,160,38,11,80,158,36,50,248,80,159,37,58,
|
||||
38,249,22,27,11,80,159,39,52,38,159,36,20,105,159,36,16,1,11,16,0,
|
||||
83,158,42,20,103,144,66,35,37,98,111,111,116,29,11,11,11,11,11,10,38,
|
||||
80,158,36,36,20,105,159,37,16,23,2,1,2,2,30,2,4,72,112,97,116,
|
||||
104,45,115,116,114,105,110,103,63,10,30,2,4,75,112,97,116,104,45,97,100,
|
||||
100,45,115,117,102,102,105,120,7,30,2,6,2,7,4,30,2,6,1,23,101,
|
||||
120,116,101,110,100,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,
|
||||
110,3,2,8,2,9,2,10,2,11,2,12,2,13,2,14,2,15,2,16,2,
|
||||
17,30,2,18,2,7,4,30,2,4,69,45,102,105,110,100,45,99,111,108,0,
|
||||
30,2,4,76,110,111,114,109,97,108,45,99,97,115,101,45,112,97,116,104,6,
|
||||
30,2,4,79,112,97,116,104,45,114,101,112,108,97,99,101,45,115,117,102,102,
|
||||
105,120,9,2,19,2,20,30,2,18,74,114,101,112,97,114,97,109,101,116,101,
|
||||
114,105,122,101,5,16,0,16,0,36,16,0,36,16,12,2,11,2,12,2,9,
|
||||
2,10,2,13,2,14,2,2,2,8,2,1,2,16,2,15,2,17,48,11,11,
|
||||
39,36,11,11,11,16,2,2,19,2,20,16,2,11,11,16,2,2,19,2,20,
|
||||
38,38,37,11,11,11,16,0,16,0,16,0,36,36,11,11,11,11,16,0,16,
|
||||
0,16,0,36,36,16,0,16,15,83,158,36,16,2,89,162,44,37,45,9,223,
|
||||
0,33,27,80,159,36,59,37,83,158,36,16,2,248,22,189,7,69,115,111,45,
|
||||
115,117,102,102,105,120,80,159,36,36,37,83,158,36,16,2,89,162,44,38,8,
|
||||
24,2,2,223,0,33,33,80,159,36,37,37,83,158,36,16,2,32,0,89,162,
|
||||
8,44,37,42,2,8,222,192,80,159,36,42,37,83,158,36,16,2,247,22,133,
|
||||
2,80,159,36,43,37,83,158,36,16,2,247,22,132,2,80,159,36,44,37,83,
|
||||
158,36,16,2,247,22,67,80,159,36,45,37,83,158,36,16,2,248,22,18,74,
|
||||
109,111,100,117,108,101,45,108,111,97,100,105,110,103,80,159,36,46,37,83,158,
|
||||
36,16,2,11,80,158,36,47,83,158,36,16,2,11,80,158,36,48,83,158,36,
|
||||
16,2,32,0,89,162,44,38,8,25,2,15,222,33,39,80,159,36,49,37,83,
|
||||
158,36,16,2,11,80,158,36,50,83,158,36,16,2,91,159,38,10,90,161,37,
|
||||
36,10,11,90,161,37,37,10,83,158,39,20,99,96,2,17,89,162,8,44,37,
|
||||
51,9,224,2,0,33,40,89,162,44,39,49,9,223,1,33,41,89,162,44,40,
|
||||
8,32,9,224,2,0,33,62,208,80,159,36,51,37,83,158,36,16,2,89,162,
|
||||
44,36,45,2,19,223,0,33,63,80,159,36,56,37,83,158,36,16,2,89,162,
|
||||
8,44,36,45,2,20,223,0,33,64,80,159,36,57,37,96,29,94,2,3,68,
|
||||
35,37,107,101,114,110,101,108,11,29,94,2,3,69,35,37,109,105,110,45,115,
|
||||
116,120,11,2,4,2,18,9,9,9,36,0};
|
||||
EVAL_ONE_SIZED_STR((char *)expr, 5576);
|
||||
41,23,196,2,28,23,193,2,87,94,23,194,1,249,22,71,248,22,96,23,196,
|
||||
2,27,248,22,105,23,197,1,27,249,22,156,14,2,41,23,196,2,28,23,193,
|
||||
2,87,94,23,194,1,249,22,71,248,22,96,23,196,2,248,2,52,248,22,105,
|
||||
23,197,1,248,22,81,194,248,22,81,194,248,22,81,194,32,54,89,162,44,37,
|
||||
52,2,25,222,33,55,28,248,22,79,248,22,73,23,195,2,249,22,7,9,248,
|
||||
22,72,195,91,159,38,11,90,161,38,36,11,27,248,22,73,196,28,248,22,79,
|
||||
248,22,73,23,195,2,249,22,7,9,248,22,72,195,91,159,38,11,90,161,38,
|
||||
36,11,248,2,54,248,22,73,196,249,22,7,249,22,71,248,22,72,199,196,195,
|
||||
249,22,7,249,22,71,248,22,72,199,196,195,32,56,89,162,8,44,37,55,2,
|
||||
25,222,33,57,27,249,22,156,14,2,41,23,196,2,28,23,193,2,87,94,23,
|
||||
194,1,249,22,71,248,22,96,23,196,2,27,248,22,105,23,197,1,27,249,22,
|
||||
156,14,2,41,23,196,2,28,23,193,2,87,94,23,194,1,249,22,71,248,22,
|
||||
96,23,196,2,27,248,22,105,23,197,1,27,249,22,156,14,2,41,23,196,2,
|
||||
28,23,193,2,87,94,23,194,1,249,22,71,248,22,96,23,196,2,248,2,56,
|
||||
248,22,105,23,197,1,248,22,81,194,248,22,81,194,248,22,81,194,28,249,22,
|
||||
176,6,194,6,1,1,46,2,21,28,249,22,176,6,194,6,2,2,46,46,62,
|
||||
117,112,192,0,11,35,114,120,34,91,46,93,115,115,36,34,32,60,89,162,44,
|
||||
37,52,2,25,222,33,61,28,248,22,79,248,22,73,23,195,2,249,22,7,9,
|
||||
248,22,72,195,91,159,38,11,90,161,38,36,11,27,248,22,73,196,28,248,22,
|
||||
79,248,22,73,23,195,2,249,22,7,9,248,22,72,195,91,159,38,11,90,161,
|
||||
38,36,11,248,2,60,248,22,73,196,249,22,7,249,22,71,248,22,72,199,196,
|
||||
195,249,22,7,249,22,71,248,22,72,199,196,195,32,62,89,162,8,44,37,55,
|
||||
2,25,222,33,63,27,249,22,156,14,2,41,23,196,2,28,23,193,2,87,94,
|
||||
23,194,1,249,22,71,248,22,96,23,196,2,27,248,22,105,23,197,1,27,249,
|
||||
22,156,14,2,41,23,196,2,28,23,193,2,87,94,23,194,1,249,22,71,248,
|
||||
22,96,23,196,2,27,248,22,105,23,197,1,27,249,22,156,14,2,41,23,196,
|
||||
2,28,23,193,2,87,94,23,194,1,249,22,71,248,22,96,23,196,2,248,2,
|
||||
62,248,22,105,23,197,1,248,22,81,194,248,22,81,194,248,22,81,194,32,64,
|
||||
89,162,8,44,37,55,2,25,222,33,65,27,249,22,156,14,2,41,23,196,2,
|
||||
28,23,193,2,87,94,23,194,1,249,22,71,248,22,96,23,196,2,27,248,22,
|
||||
105,23,197,1,27,249,22,156,14,2,41,23,196,2,28,23,193,2,87,94,23,
|
||||
194,1,249,22,71,248,22,96,23,196,2,27,248,22,105,23,197,1,27,249,22,
|
||||
156,14,2,41,23,196,2,28,23,193,2,87,94,23,194,1,249,22,71,248,22,
|
||||
96,23,196,2,248,2,64,248,22,105,23,197,1,248,22,81,194,248,22,81,194,
|
||||
248,22,81,194,27,248,2,64,23,195,1,192,28,249,22,178,8,248,22,73,23,
|
||||
200,2,23,197,1,28,249,22,176,8,248,22,72,23,200,2,23,196,1,251,22,
|
||||
143,9,2,17,6,26,26,99,121,99,108,101,32,105,110,32,108,111,97,100,105,
|
||||
110,103,32,97,116,32,126,101,58,32,126,101,23,200,1,249,22,2,22,73,248,
|
||||
22,86,249,22,71,23,206,1,23,202,1,12,12,247,192,20,14,159,80,159,40,
|
||||
45,38,249,22,71,248,22,176,14,247,22,149,12,23,197,1,20,14,159,80,159,
|
||||
40,40,38,250,80,159,43,41,38,249,22,27,11,80,159,45,40,38,22,162,4,
|
||||
23,196,1,249,247,22,137,5,23,198,1,248,22,59,248,22,173,13,23,198,1,
|
||||
87,94,28,28,248,22,169,13,23,196,2,10,248,22,188,4,23,196,2,12,28,
|
||||
23,197,2,250,22,145,9,11,6,15,15,98,97,100,32,109,111,100,117,108,101,
|
||||
32,112,97,116,104,23,200,2,250,22,146,9,2,17,6,19,19,109,111,100,117,
|
||||
108,101,45,112,97,116,104,32,111,114,32,112,97,116,104,23,198,2,28,28,248,
|
||||
22,69,23,196,2,249,22,176,8,248,22,72,23,198,2,2,3,11,248,22,181,
|
||||
4,248,22,96,196,28,28,248,22,69,23,196,2,249,22,176,8,248,22,72,23,
|
||||
198,2,66,112,108,97,110,101,116,11,87,94,28,207,12,20,14,159,80,159,37,
|
||||
52,38,80,158,37,50,90,161,37,36,10,249,22,163,4,21,94,2,26,6,19,
|
||||
19,112,108,97,110,101,116,47,114,101,115,111,108,118,101,114,46,114,107,116,1,
|
||||
27,112,108,97,110,101,116,45,109,111,100,117,108,101,45,110,97,109,101,45,114,
|
||||
101,115,111,108,118,101,114,12,252,212,199,200,201,202,80,158,42,50,87,94,23,
|
||||
193,1,27,89,162,8,44,37,46,79,115,104,111,119,45,99,111,108,108,101,99,
|
||||
116,105,111,110,45,101,114,114,223,5,33,49,27,28,248,22,56,23,198,2,27,
|
||||
250,22,146,2,80,159,43,44,38,249,22,71,23,203,2,247,22,147,14,11,28,
|
||||
23,193,2,192,87,94,23,193,1,91,159,38,11,90,161,38,36,11,27,248,22,
|
||||
62,23,202,2,248,2,50,248,2,52,23,195,1,27,251,80,159,47,54,38,2,
|
||||
17,23,202,1,28,248,22,79,23,199,2,23,199,2,248,22,72,23,199,2,28,
|
||||
248,22,79,23,199,2,9,248,22,73,23,199,2,249,22,187,13,23,195,1,28,
|
||||
248,22,79,23,197,1,87,94,23,197,1,6,8,8,109,97,105,110,46,114,107,
|
||||
116,249,22,129,7,23,199,1,6,4,4,46,114,107,116,28,248,22,170,6,23,
|
||||
198,2,87,94,23,194,1,27,27,28,23,200,2,28,249,22,176,8,23,202,2,
|
||||
80,158,43,47,80,158,41,48,27,248,22,182,4,23,202,2,28,248,22,169,13,
|
||||
23,194,2,91,159,39,11,90,161,39,36,11,248,22,190,13,23,197,1,87,95,
|
||||
83,160,38,11,80,158,45,47,23,204,2,83,160,38,11,80,158,45,48,192,192,
|
||||
11,11,28,23,193,2,192,87,94,23,193,1,27,247,22,138,5,28,23,193,2,
|
||||
192,87,94,23,193,1,247,22,146,14,27,250,22,146,2,80,159,44,44,38,249,
|
||||
22,71,23,204,2,23,199,2,11,28,23,193,2,192,87,94,23,193,1,91,159,
|
||||
38,11,90,161,38,36,11,248,2,54,248,2,56,23,203,2,250,22,1,22,187,
|
||||
13,23,199,1,249,22,85,249,22,2,32,0,89,162,8,44,37,44,9,222,33,
|
||||
58,23,200,1,248,22,81,27,248,22,173,6,23,202,2,28,249,22,176,3,194,
|
||||
39,28,249,22,176,6,2,27,249,22,128,7,204,249,22,164,3,198,39,249,22,
|
||||
129,7,250,22,128,7,205,36,249,22,164,3,199,39,2,28,200,200,28,248,22,
|
||||
169,13,23,198,2,87,94,23,194,1,28,248,22,128,14,23,198,2,91,159,39,
|
||||
11,90,161,39,36,11,248,22,190,13,23,201,2,87,95,23,195,1,23,193,1,
|
||||
28,249,22,156,14,2,59,248,22,174,13,23,197,1,249,80,159,44,53,38,23,
|
||||
202,2,2,29,23,200,2,248,22,81,6,26,26,32,40,97,32,112,97,116,104,
|
||||
32,109,117,115,116,32,98,101,32,97,98,115,111,108,117,116,101,41,28,249,22,
|
||||
176,8,248,22,72,23,200,2,2,26,27,250,22,146,2,80,159,43,44,38,249,
|
||||
22,71,23,203,2,247,22,147,14,11,28,23,193,2,192,87,94,23,193,1,91,
|
||||
159,39,11,90,161,38,36,11,27,248,22,96,23,203,2,248,2,60,248,2,62,
|
||||
23,195,1,90,161,37,38,11,28,248,22,79,248,22,98,23,203,2,28,248,22,
|
||||
79,23,194,2,249,22,158,14,0,8,35,114,120,34,91,46,93,34,23,196,2,
|
||||
11,10,27,27,28,23,197,2,249,22,85,28,248,22,79,248,22,98,23,207,2,
|
||||
21,93,6,5,5,109,122,108,105,98,249,22,1,22,85,249,22,2,32,0,89,
|
||||
162,8,44,37,44,9,222,33,66,248,22,98,23,210,2,23,197,2,28,248,22,
|
||||
79,23,196,2,248,22,81,23,197,2,23,195,2,251,80,159,49,54,38,2,17,
|
||||
23,204,1,248,22,72,23,198,2,248,22,73,23,198,1,249,22,187,13,23,195,
|
||||
1,28,23,198,1,87,94,23,196,1,27,248,22,173,6,23,199,2,28,249,22,
|
||||
176,3,194,39,28,249,22,176,6,2,27,249,22,128,7,201,249,22,164,3,198,
|
||||
39,249,22,129,7,250,22,128,7,202,36,249,22,164,3,199,39,2,28,197,197,
|
||||
28,248,22,79,23,197,1,87,94,23,197,1,6,8,8,109,97,105,110,46,114,
|
||||
107,116,28,249,22,158,14,0,8,35,114,120,34,91,46,93,34,23,199,2,27,
|
||||
248,22,173,6,23,199,2,28,249,22,176,3,194,39,28,249,22,176,6,2,27,
|
||||
249,22,128,7,201,249,22,164,3,198,39,249,22,129,7,250,22,128,7,202,36,
|
||||
249,22,164,3,199,39,2,28,197,197,249,22,129,7,23,199,1,6,4,4,46,
|
||||
114,107,116,28,249,22,176,8,248,22,72,23,200,2,64,102,105,108,101,27,249,
|
||||
22,130,14,248,22,134,14,248,22,96,23,202,2,27,28,23,202,2,28,249,22,
|
||||
176,8,23,204,2,80,158,45,47,80,158,43,48,27,248,22,182,4,23,204,2,
|
||||
28,248,22,169,13,23,194,2,91,159,39,11,90,161,39,36,11,248,22,190,13,
|
||||
23,197,1,87,95,83,160,38,11,80,158,47,47,23,206,2,83,160,38,11,80,
|
||||
158,47,48,192,192,11,11,28,23,193,2,192,87,94,23,193,1,27,247,22,138,
|
||||
5,28,23,193,2,192,87,94,23,193,1,247,22,146,14,91,159,39,11,90,161,
|
||||
39,36,11,248,22,190,13,23,197,2,87,95,23,195,1,23,193,1,28,249,22,
|
||||
156,14,2,59,248,22,174,13,23,197,1,249,80,159,45,53,38,23,198,1,2,
|
||||
29,195,12,87,94,28,28,248,22,169,13,23,194,2,10,248,22,128,8,23,194,
|
||||
2,87,94,23,199,1,12,28,23,199,2,250,22,145,9,67,114,101,113,117,105,
|
||||
114,101,249,22,154,7,6,17,17,98,97,100,32,109,111,100,117,108,101,32,112,
|
||||
97,116,104,126,97,28,23,198,2,248,22,72,23,199,2,6,0,0,23,202,1,
|
||||
87,94,23,199,1,250,22,146,9,2,17,249,22,154,7,6,13,13,109,111,100,
|
||||
117,108,101,32,112,97,116,104,126,97,28,23,198,2,248,22,72,23,199,2,6,
|
||||
0,0,23,200,2,27,28,248,22,128,8,23,195,2,249,22,133,8,23,196,2,
|
||||
36,249,22,132,14,248,22,133,14,23,197,2,11,27,28,248,22,128,8,23,196,
|
||||
2,249,22,133,8,23,197,2,37,248,80,159,42,55,38,23,195,2,91,159,39,
|
||||
11,90,161,39,36,11,28,248,22,128,8,23,199,2,250,22,7,2,30,249,22,
|
||||
133,8,23,203,2,38,2,30,248,22,190,13,23,198,2,87,95,23,195,1,23,
|
||||
193,1,27,28,248,22,128,8,23,200,2,249,22,133,8,23,201,2,39,249,80,
|
||||
159,47,53,38,23,197,2,5,0,27,28,248,22,128,8,23,201,2,249,22,133,
|
||||
8,23,202,2,40,248,22,181,4,23,200,2,27,27,250,22,146,2,80,159,51,
|
||||
43,38,248,22,176,14,247,22,149,12,11,28,23,193,2,192,87,94,23,193,1,
|
||||
27,247,22,130,2,87,94,250,22,144,2,80,159,52,43,38,248,22,176,14,247,
|
||||
22,149,12,195,192,87,95,28,23,208,1,27,250,22,146,2,23,197,2,197,11,
|
||||
28,23,193,1,12,87,95,27,27,28,248,22,17,80,159,51,46,38,80,159,50,
|
||||
46,38,247,22,19,250,22,25,248,22,23,23,197,2,80,159,53,45,38,23,196,
|
||||
1,27,248,22,176,14,247,22,149,12,249,22,3,83,158,40,20,100,94,89,162,
|
||||
8,44,37,55,9,226,12,11,2,3,33,67,23,195,1,23,196,1,248,28,248,
|
||||
22,17,80,159,50,46,38,32,0,89,162,44,37,42,9,222,33,68,80,159,49,
|
||||
59,37,89,162,44,36,51,9,227,13,9,8,4,3,33,69,250,22,144,2,23,
|
||||
197,1,197,10,12,28,28,248,22,128,8,23,202,1,11,28,248,22,170,6,23,
|
||||
206,2,10,28,248,22,56,23,206,2,10,28,248,22,69,23,206,2,249,22,176,
|
||||
8,248,22,72,23,208,2,2,26,11,250,22,144,2,80,159,50,44,38,28,248,
|
||||
22,170,6,23,209,2,249,22,71,23,210,1,27,28,23,212,2,28,249,22,176,
|
||||
8,23,214,2,80,158,55,47,87,94,23,212,1,80,158,53,48,27,248,22,182,
|
||||
4,23,214,2,28,248,22,169,13,23,194,2,91,159,39,11,90,161,39,36,11,
|
||||
248,22,190,13,23,197,1,87,95,83,160,38,11,80,158,57,47,23,23,83,160,
|
||||
38,11,80,158,57,48,192,192,11,11,28,23,193,2,192,87,94,23,193,1,27,
|
||||
247,22,138,5,28,23,193,2,192,87,94,23,193,1,247,22,146,14,249,22,71,
|
||||
23,210,1,247,22,147,14,252,22,130,8,23,208,1,23,207,1,23,205,1,23,
|
||||
203,1,201,12,193,87,96,83,160,38,11,80,158,36,50,248,80,159,37,58,38,
|
||||
249,22,27,11,80,159,39,52,38,248,22,161,4,80,159,37,51,38,248,22,137,
|
||||
5,80,159,37,37,37,248,22,140,13,80,159,37,42,37,83,160,38,11,80,158,
|
||||
36,50,248,80,159,37,58,38,249,22,27,11,80,159,39,52,38,159,36,20,105,
|
||||
159,36,16,1,11,16,0,83,158,42,20,103,144,66,35,37,98,111,111,116,29,
|
||||
11,11,11,11,11,10,38,80,158,36,36,20,105,159,37,16,23,2,1,2,2,
|
||||
30,2,4,72,112,97,116,104,45,115,116,114,105,110,103,63,10,30,2,4,75,
|
||||
112,97,116,104,45,97,100,100,45,115,117,102,102,105,120,7,30,2,6,2,7,
|
||||
4,30,2,6,1,23,101,120,116,101,110,100,45,112,97,114,97,109,101,116,101,
|
||||
114,105,122,97,116,105,111,110,3,2,8,2,9,2,10,2,11,2,12,2,13,
|
||||
2,14,2,15,2,16,2,17,30,2,18,2,7,4,30,2,4,79,112,97,116,
|
||||
104,45,114,101,112,108,97,99,101,45,115,117,102,102,105,120,9,30,2,4,69,
|
||||
45,102,105,110,100,45,99,111,108,0,30,2,4,76,110,111,114,109,97,108,45,
|
||||
99,97,115,101,45,112,97,116,104,6,2,19,2,20,30,2,18,74,114,101,112,
|
||||
97,114,97,109,101,116,101,114,105,122,101,5,16,0,16,0,36,16,0,36,16,
|
||||
12,2,11,2,12,2,9,2,10,2,13,2,14,2,2,2,8,2,1,2,16,
|
||||
2,15,2,17,48,11,11,39,36,11,11,11,16,2,2,19,2,20,16,2,11,
|
||||
11,16,2,2,19,2,20,38,38,37,11,11,11,16,0,16,0,16,0,36,36,
|
||||
11,11,11,11,16,0,16,0,16,0,36,36,16,0,16,15,83,158,36,16,2,
|
||||
89,162,44,37,45,9,223,0,33,31,80,159,36,59,37,83,158,36,16,2,248,
|
||||
22,189,7,69,115,111,45,115,117,102,102,105,120,80,159,36,36,37,83,158,36,
|
||||
16,2,89,162,44,38,8,35,2,2,223,0,33,40,80,159,36,37,37,83,158,
|
||||
36,16,2,32,0,89,162,8,44,37,42,2,8,222,192,80,159,36,42,37,83,
|
||||
158,36,16,2,247,22,133,2,80,159,36,43,37,83,158,36,16,2,247,22,132,
|
||||
2,80,159,36,44,37,83,158,36,16,2,247,22,67,80,159,36,45,37,83,158,
|
||||
36,16,2,248,22,18,74,109,111,100,117,108,101,45,108,111,97,100,105,110,103,
|
||||
80,159,36,46,37,83,158,36,16,2,11,80,158,36,47,83,158,36,16,2,11,
|
||||
80,158,36,48,83,158,36,16,2,32,0,89,162,44,38,8,25,2,15,222,33,
|
||||
46,80,159,36,49,37,83,158,36,16,2,11,80,158,36,50,83,158,36,16,2,
|
||||
91,159,38,10,90,161,37,36,10,11,90,161,37,37,10,83,158,39,20,99,96,
|
||||
2,17,89,162,8,44,37,51,9,224,2,0,33,47,89,162,44,39,49,9,223,
|
||||
1,33,48,89,162,44,40,8,32,9,224,2,0,33,70,208,80,159,36,51,37,
|
||||
83,158,36,16,2,89,162,44,36,45,2,19,223,0,33,71,80,159,36,56,37,
|
||||
83,158,36,16,2,89,162,8,44,36,45,2,20,223,0,33,72,80,159,36,57,
|
||||
37,96,29,94,2,3,68,35,37,107,101,114,110,101,108,11,29,94,2,3,69,
|
||||
35,37,109,105,110,45,115,116,120,11,2,4,2,18,9,9,9,36,0};
|
||||
EVAL_ONE_SIZED_STR((char *)expr, 6528);
|
||||
}
|
||||
|
|
|
@ -13,12 +13,12 @@
|
|||
consistently.)
|
||||
*/
|
||||
|
||||
#define MZSCHEME_VERSION "4.2.5.7"
|
||||
#define MZSCHEME_VERSION "4.2.5.8"
|
||||
|
||||
#define MZSCHEME_VERSION_X 4
|
||||
#define MZSCHEME_VERSION_Y 2
|
||||
#define MZSCHEME_VERSION_Z 5
|
||||
#define MZSCHEME_VERSION_W 7
|
||||
#define MZSCHEME_VERSION_W 8
|
||||
|
||||
#define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y)
|
||||
#define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W)
|
||||
|
|
|
@ -411,12 +411,14 @@
|
|||
" s"
|
||||
"(let((d(current-load-relative-directory)))"
|
||||
"(if d(path->complete-path s d) s)))))"
|
||||
"(date-of-1(lambda(a)"
|
||||
"(let((v(file-or-directory-modify-seconds a #f(lambda() #f))))"
|
||||
"(and v(cons a v)))))"
|
||||
"(date-of(lambda(a modes)"
|
||||
"(ormap"
|
||||
"(lambda(compiled-dir)"
|
||||
"(let((a(a compiled-dir)))"
|
||||
"(let((v(file-or-directory-modify-seconds a #f(lambda() #f))))"
|
||||
"(and v(cons a v)))))"
|
||||
"(date-of-1 a)))"
|
||||
" modes)))"
|
||||
"(date>=?"
|
||||
"(lambda(modes a bm)"
|
||||
|
@ -427,11 +429,34 @@
|
|||
"(lambda(path expect-module)"
|
||||
"(unless(path-string? path)"
|
||||
" (raise-type-error 'load/use-compiled \"path or valid-path string\" path))"
|
||||
"(let*-values(((path)(resolve path))"
|
||||
"((base file dir?)(split-path path))"
|
||||
"(let*-values(((orig-path)(resolve path))"
|
||||
"((base orig-file dir?)(split-path path))"
|
||||
"((file alt-file)(if expect-module"
|
||||
"(let*((b(path->bytes orig-file))"
|
||||
"(len(bytes-length b)))"
|
||||
"(cond"
|
||||
"((and(len . >= . 4)"
|
||||
" (bytes=? #\".rkt\" (subbytes b (- len 4))))"
|
||||
"(values orig-file"
|
||||
" (bytes->path (bytes-append (subbytes b 0 (- len 4)) #\".ss\"))))"
|
||||
"(else"
|
||||
"(values orig-file #f))))"
|
||||
"(values orig-file #f)))"
|
||||
"((path)(if(eq? file orig-file)"
|
||||
" orig-path"
|
||||
"(build-path base file)))"
|
||||
"((alt-path)(and alt-file"
|
||||
"(if(eq? alt-file orig-file)"
|
||||
" orig-path"
|
||||
"(build-path base alt-file))))"
|
||||
"((base)(if(eq? base 'relative) 'same base))"
|
||||
"((modes)(use-compiled-file-paths)))"
|
||||
"(let*((get-so(lambda(file rep-sfx?)"
|
||||
"(let*((main-path-d(date-of-1 path))"
|
||||
"(alt-path-d(and alt-path "
|
||||
"(not main-path-d)"
|
||||
"(date-of-1 alt-path)))"
|
||||
"(path-d(or main-path-d alt-path-d))"
|
||||
"(get-so(lambda(file rep-sfx?)"
|
||||
"(lambda(compiled-dir)"
|
||||
"(build-path base"
|
||||
" compiled-dir"
|
||||
|
@ -446,23 +471,37 @@
|
|||
"(build-path base"
|
||||
" compiled-dir"
|
||||
" (path-add-suffix file #\".zo\"))))"
|
||||
"(alt-zo(lambda(compiled-dir)"
|
||||
"(build-path base"
|
||||
" compiled-dir"
|
||||
" (path-add-suffix alt-file #\".zo\"))))"
|
||||
"(so(get-so file #t))"
|
||||
"(path-d(date-of(lambda(dir) path) modes))"
|
||||
"(alt-so(get-so alt-file #t))"
|
||||
"(with-dir(lambda(t) "
|
||||
"(parameterize((current-load-relative-directory "
|
||||
"(if(path? base) "
|
||||
" base "
|
||||
"(current-directory))))"
|
||||
"(t)))))"
|
||||
"(t))))"
|
||||
"(try-main?(or main-path-d(not alt-path-d)))"
|
||||
"(try-alt?(or alt-path-d(not main-path-d))))"
|
||||
"(cond"
|
||||
"((date>=? modes so path-d)"
|
||||
"((or(and try-main?"
|
||||
"(date>=? modes so path-d))"
|
||||
"(and try-alt?"
|
||||
"(date>=? modes alt-so alt-path-d)))"
|
||||
" =>(lambda(so-d)"
|
||||
"(with-dir(lambda()((current-load-extension)(car so-d) expect-module)))))"
|
||||
"((date>=? modes zo path-d)"
|
||||
"((or(and try-main?"
|
||||
"(date>=? modes zo path-d))"
|
||||
"(and try-alt?"
|
||||
"(date>=? modes alt-zo path-d)))"
|
||||
" =>(lambda(zo-d)"
|
||||
"(with-dir(lambda()((current-load)(car zo-d) expect-module)))))"
|
||||
"(else"
|
||||
"(with-dir(lambda()((current-load) path expect-module))))))))))"
|
||||
"(with-dir(lambda()((current-load) "
|
||||
"(if try-main? path alt-path)"
|
||||
" expect-module))))))))))"
|
||||
"(define-values(default-reader-guard)"
|
||||
"(lambda(path) path))"
|
||||
"(define-values(-module-hash-table-table)(make-weak-hasheq)) "
|
||||
|
@ -527,7 +566,7 @@
|
|||
"(with-continuation-mark"
|
||||
" parameterization-key"
|
||||
" orig-paramz"
|
||||
" (set! planet-resolver (dynamic-require '(lib \"planet/resolver.ss\") 'planet-module-name-resolver))))"
|
||||
" (set! planet-resolver (dynamic-require '(lib \"planet/resolver.rkt\") 'planet-module-name-resolver))))"
|
||||
"(planet-resolver s relto stx load? orig-paramz))"
|
||||
"(else"
|
||||
"(let((get-dir(lambda()"
|
||||
|
@ -548,7 +587,18 @@
|
|||
" #f"
|
||||
" s"
|
||||
" stx)"
|
||||
"(error s)))))"
|
||||
"(error s))))"
|
||||
"(ss->rkt(lambda(s)"
|
||||
"(let((len(string-length s)))"
|
||||
"(if(and(len . >= . 3)"
|
||||
" (string=? \".ss\" (substring s (- len 3))))"
|
||||
" (string-append (substring s 0 (- len 3)) \".rkt\")"
|
||||
" s))))"
|
||||
"(path-ss->rkt(lambda(p)"
|
||||
"(let-values(((base name dir?)(split-path p)))"
|
||||
" (if (regexp-match #rx\"[.]ss$\" (path->bytes name))"
|
||||
" (path-replace-suffix p #\".rkt\")"
|
||||
" p)))))"
|
||||
"(let((s-parsed"
|
||||
"(cond"
|
||||
"((symbol? s)"
|
||||
|
@ -561,8 +611,8 @@
|
|||
"(if(null? cols) file(car cols))"
|
||||
"(if(null? cols) null(cdr cols)))))"
|
||||
"(build-path p(if(null? cols)"
|
||||
" \"main.ss\""
|
||||
" (string-append file \".ss\")))))))"
|
||||
" \"main.rkt\""
|
||||
" (string-append file \".rkt\")))))))"
|
||||
"((string? s)"
|
||||
"(let*((dir(get-dir)))"
|
||||
"(or(hash-ref -path-cache(cons s dir) #f)"
|
||||
|
@ -576,10 +626,10 @@
|
|||
" ((string=? s \"..\") 'up)"
|
||||
"(else s)))"
|
||||
" cols)"
|
||||
"(list file)))))))"
|
||||
"(list(ss->rkt file))))))))"
|
||||
"((path? s) "
|
||||
"(if(absolute-path? s)"
|
||||
" s"
|
||||
"(path-ss->rkt s)"
|
||||
" (list \" (a path must be absolute)\")))"
|
||||
"((eq?(car s) 'lib)"
|
||||
"(or(hash-ref -path-cache"
|
||||
|
@ -607,14 +657,14 @@
|
|||
"(car cols)"
|
||||
"(cdr cols)))))"
|
||||
"(build-path p(if old-style?"
|
||||
" file"
|
||||
"(ss->rkt file)"
|
||||
"(if(null? cols)"
|
||||
" \"main.ss\""
|
||||
" \"main.rkt\""
|
||||
" (if (regexp-match? #rx\"[.]\" file)"
|
||||
" file"
|
||||
" (string-append file \".ss\")))))))))"
|
||||
"(ss->rkt file)"
|
||||
" (string-append file \".rkt\")))))))))"
|
||||
"((eq?(car s) 'file)"
|
||||
"(path->complete-path(expand-user-path(cadr s))(get-dir))))))"
|
||||
"(path-ss->rkt(path->complete-path(expand-user-path(cadr s))(get-dir)))))))"
|
||||
"(unless(or(path? s-parsed) "
|
||||
"(vector? s-parsed))"
|
||||
"(if stx"
|
||||
|
|
|
@ -490,12 +490,14 @@
|
|||
s
|
||||
(let ([d (current-load-relative-directory)])
|
||||
(if d (path->complete-path s d) s))))]
|
||||
[date-of-1 (lambda (a)
|
||||
(let ([v (file-or-directory-modify-seconds a #f (lambda () #f))])
|
||||
(and v (cons a v))))]
|
||||
[date-of (lambda (a modes)
|
||||
(ormap
|
||||
(lambda (compiled-dir)
|
||||
(let ([a (a compiled-dir)])
|
||||
(let ([v (file-or-directory-modify-seconds a #f (lambda () #f))])
|
||||
(and v (cons a v)))))
|
||||
(date-of-1 a)))
|
||||
modes))]
|
||||
[date>=?
|
||||
(lambda (modes a bm)
|
||||
|
@ -506,11 +508,36 @@
|
|||
(lambda (path expect-module)
|
||||
(unless (path-string? path)
|
||||
(raise-type-error 'load/use-compiled "path or valid-path string" path))
|
||||
(let*-values ([(path) (resolve path)]
|
||||
[(base file dir?) (split-path path)]
|
||||
(let*-values ([(orig-path) (resolve path)]
|
||||
[(base orig-file dir?) (split-path path)]
|
||||
[(file alt-file) (if expect-module
|
||||
(let* ([b (path->bytes orig-file)]
|
||||
[len (bytes-length b)])
|
||||
(cond
|
||||
[(and (len . >= . 4)
|
||||
(bytes=? #".rkt" (subbytes b (- len 4))))
|
||||
;; .rkt => try .rkt then .ss
|
||||
(values orig-file
|
||||
(bytes->path (bytes-append (subbytes b 0 (- len 4)) #".ss")))]
|
||||
[else
|
||||
;; No search path
|
||||
(values orig-file #f)]))
|
||||
(values orig-file #f))]
|
||||
[(path) (if (eq? file orig-file)
|
||||
orig-path
|
||||
(build-path base file))]
|
||||
[(alt-path) (and alt-file
|
||||
(if (eq? alt-file orig-file)
|
||||
orig-path
|
||||
(build-path base alt-file)))]
|
||||
[(base) (if (eq? base 'relative) 'same base)]
|
||||
[(modes) (use-compiled-file-paths)])
|
||||
(let* ([get-so (lambda (file rep-sfx?)
|
||||
(let* ([main-path-d (date-of-1 path)]
|
||||
[alt-path-d (and alt-path
|
||||
(not main-path-d)
|
||||
(date-of-1 alt-path))]
|
||||
[path-d (or main-path-d alt-path-d)]
|
||||
[get-so (lambda (file rep-sfx?)
|
||||
(lambda (compiled-dir)
|
||||
(build-path base
|
||||
compiled-dir
|
||||
|
@ -525,23 +552,37 @@
|
|||
(build-path base
|
||||
compiled-dir
|
||||
(path-add-suffix file #".zo")))]
|
||||
[alt-zo (lambda (compiled-dir)
|
||||
(build-path base
|
||||
compiled-dir
|
||||
(path-add-suffix alt-file #".zo")))]
|
||||
[so (get-so file #t)]
|
||||
[path-d (date-of (lambda (dir) path) modes)]
|
||||
[alt-so (get-so alt-file #t)]
|
||||
[with-dir (lambda (t)
|
||||
(parameterize ([current-load-relative-directory
|
||||
(if (path? base)
|
||||
base
|
||||
(current-directory))])
|
||||
(t)))])
|
||||
(t)))]
|
||||
[try-main? (or main-path-d (not alt-path-d))]
|
||||
[try-alt? (or alt-path-d (not main-path-d))])
|
||||
(cond
|
||||
[(date>=? modes so path-d)
|
||||
[(or (and try-main?
|
||||
(date>=? modes so path-d))
|
||||
(and try-alt?
|
||||
(date>=? modes alt-so alt-path-d)))
|
||||
=> (lambda (so-d)
|
||||
(with-dir (lambda () ((current-load-extension) (car so-d) expect-module))))]
|
||||
[(date>=? modes zo path-d)
|
||||
[(or (and try-main?
|
||||
(date>=? modes zo path-d))
|
||||
(and try-alt?
|
||||
(date>=? modes alt-zo path-d)))
|
||||
=> (lambda (zo-d)
|
||||
(with-dir (lambda () ((current-load) (car zo-d) expect-module))))]
|
||||
[else
|
||||
(with-dir (lambda () ((current-load) path expect-module)))]))))))
|
||||
(with-dir (lambda () ((current-load)
|
||||
(if try-main? path alt-path)
|
||||
expect-module)))]))))))
|
||||
|
||||
(define-values (default-reader-guard)
|
||||
(lambda (path) path))
|
||||
|
@ -616,7 +657,7 @@
|
|||
(with-continuation-mark
|
||||
parameterization-key
|
||||
orig-paramz
|
||||
(set! planet-resolver (dynamic-require '(lib "planet/resolver.ss") 'planet-module-name-resolver))))
|
||||
(set! planet-resolver (dynamic-require '(lib "planet/resolver.rkt") 'planet-module-name-resolver))))
|
||||
(planet-resolver s relto stx load? orig-paramz)]
|
||||
[else
|
||||
(let ([get-dir (lambda ()
|
||||
|
@ -637,7 +678,18 @@
|
|||
#f
|
||||
s
|
||||
stx)
|
||||
(error s)))])
|
||||
(error s)))]
|
||||
[ss->rkt (lambda (s)
|
||||
(let ([len (string-length s)])
|
||||
(if (and (len . >= . 3)
|
||||
(string=? ".ss" (substring s (- len 3))))
|
||||
(string-append (substring s 0 (- len 3)) ".rkt")
|
||||
s)))]
|
||||
[path-ss->rkt (lambda (p)
|
||||
(let-values ([(base name dir?) (split-path p)])
|
||||
(if (regexp-match #rx"[.]ss$" (path->bytes name))
|
||||
(path-replace-suffix p #".rkt")
|
||||
p)))])
|
||||
(let ([s-parsed
|
||||
;; Non-string result represents an error
|
||||
(cond
|
||||
|
@ -651,8 +703,8 @@
|
|||
(if (null? cols) file (car cols))
|
||||
(if (null? cols) null (cdr cols)))])
|
||||
(build-path p (if (null? cols)
|
||||
"main.ss"
|
||||
(string-append file ".ss"))))))]
|
||||
"main.rkt"
|
||||
(string-append file ".rkt"))))))]
|
||||
[(string? s)
|
||||
(let* ([dir (get-dir)])
|
||||
(or (hash-ref -path-cache (cons s dir) #f)
|
||||
|
@ -666,10 +718,10 @@
|
|||
[(string=? s "..") 'up]
|
||||
[else s]))
|
||||
cols)
|
||||
(list file))))))]
|
||||
(list (ss->rkt file)))))))]
|
||||
[(path? s)
|
||||
(if (absolute-path? s)
|
||||
s
|
||||
(path-ss->rkt s)
|
||||
(list " (a path must be absolute)"))]
|
||||
[(eq? (car s) 'lib)
|
||||
(or (hash-ref -path-cache
|
||||
|
@ -697,14 +749,14 @@
|
|||
(car cols)
|
||||
(cdr cols)))])
|
||||
(build-path p (if old-style?
|
||||
file
|
||||
(ss->rkt file)
|
||||
(if (null? cols)
|
||||
"main.ss"
|
||||
"main.rkt"
|
||||
(if (regexp-match? #rx"[.]" file)
|
||||
file
|
||||
(string-append file ".ss"))))))))]
|
||||
(ss->rkt file)
|
||||
(string-append file ".rkt"))))))))]
|
||||
[(eq? (car s) 'file)
|
||||
(path->complete-path (expand-user-path (cadr s)) (get-dir))])])
|
||||
(path-ss->rkt (path->complete-path (expand-user-path (cadr s)) (get-dir)))])])
|
||||
(unless (or (path? s-parsed)
|
||||
(vector? s-parsed))
|
||||
(if stx
|
||||
|
|
Loading…
Reference in New Issue
Block a user