sync to trunk
svn: r14861
This commit is contained in:
commit
676f827ab0
|
@ -505,6 +505,7 @@
|
||||||
(define-form-struct wrap ())
|
(define-form-struct wrap ())
|
||||||
(define-form-struct (lexical-rename wrap) (alist))
|
(define-form-struct (lexical-rename wrap) (alist))
|
||||||
(define-form-struct (phase-shift wrap) (amt src dest))
|
(define-form-struct (phase-shift wrap) (amt src dest))
|
||||||
|
(define-form-struct (prune wrap) (sym))
|
||||||
(define-form-struct (module-rename wrap) (phase kind set-id unmarshals renames mark-renames plus-kern?))
|
(define-form-struct (module-rename wrap) (phase kind set-id unmarshals renames mark-renames plus-kern?))
|
||||||
|
|
||||||
(define-form-struct all-from-module (path phase src-phase exceptions prefix))
|
(define-form-struct all-from-module (path phase src-phase exceptions prefix))
|
||||||
|
@ -691,6 +692,7 @@
|
||||||
'(#%mark-barrier)]
|
'(#%mark-barrier)]
|
||||||
[(box? a)
|
[(box? a)
|
||||||
(match (unbox a)
|
(match (unbox a)
|
||||||
|
[(list (? symbol?) ...) (make-prune (unbox a))]
|
||||||
[`#(,amt ,src ,dest #f)
|
[`#(,amt ,src ,dest #f)
|
||||||
(make-phase-shift amt
|
(make-phase-shift amt
|
||||||
(parse-module-path-index cp src)
|
(parse-module-path-index cp src)
|
||||||
|
|
|
@ -80,7 +80,7 @@
|
||||||
;; expressions with test suite coverage information. Returning the
|
;; expressions with test suite coverage information. Returning the
|
||||||
;; first argument means no tests coverage information is collected.
|
;; first argument means no tests coverage information is collected.
|
||||||
|
|
||||||
;; test-coverage-point : syntax syntax -> syntax
|
;; test-coverage-point : syntax syntax phase -> syntax
|
||||||
;; sets a test coverage point for a single expression
|
;; sets a test coverage point for a single expression
|
||||||
(define (test-coverage-point body expr phase)
|
(define (test-coverage-point body expr phase)
|
||||||
(if (and (test-coverage-enabled)
|
(if (and (test-coverage-enabled)
|
||||||
|
@ -353,14 +353,29 @@
|
||||||
[(define-values names rhs)
|
[(define-values names rhs)
|
||||||
top?
|
top?
|
||||||
;; Can't put annotation on the outside
|
;; Can't put annotation on the outside
|
||||||
(let ([marked (with-mark expr
|
(let* ([marked
|
||||||
|
(with-mark expr
|
||||||
(annotate-named
|
(annotate-named
|
||||||
(one-name #'names)
|
(one-name #'names)
|
||||||
(syntax rhs)
|
(syntax rhs)
|
||||||
phase))])
|
phase))]
|
||||||
|
[with-coverage
|
||||||
|
(let loop ([stx #'names]
|
||||||
|
[obj marked])
|
||||||
|
(cond
|
||||||
|
[(not (syntax? stx)) obj]
|
||||||
|
[(identifier? stx)
|
||||||
|
(test-coverage-point obj stx phase)]
|
||||||
|
[(pair? (syntax-e stx))
|
||||||
|
(loop (car (syntax-e stx))
|
||||||
|
(loop (cdr (syntax-e stx))
|
||||||
|
obj))]
|
||||||
|
[else obj]))])
|
||||||
(certify
|
(certify
|
||||||
expr
|
expr
|
||||||
(rebuild expr (list (cons #'rhs marked)))))]
|
(rebuild
|
||||||
|
expr
|
||||||
|
(list (cons #'rhs with-coverage)))))]
|
||||||
[(begin . exprs)
|
[(begin . exprs)
|
||||||
top?
|
top?
|
||||||
(certify
|
(certify
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
;; about the language level of this file in a form that our tools can easily process.
|
;; about the language level of this file in a form that our tools can easily process.
|
||||||
#reader(lib "htdp-intermediate-lambda-reader.ss" "lang")((modname matrix-test) (read-case-sensitive #t) (teachpacks ()) (htdp-settings #(#t constructor repeating-decimal #f #t none #f ())))
|
#reader(lib "htdp-intermediate-lambda-reader.ss" "lang")((modname matrix-test) (read-case-sensitive #t) (teachpacks ()) (htdp-settings #(#t constructor repeating-decimal #f #t none #f ())))
|
||||||
;(require htdp/matrix-invisible)
|
;(require htdp/matrix-invisible)
|
||||||
(require htdp/matrix)
|
(require (lib "matrix.ss" "htdp"))
|
||||||
|
|
||||||
(define r1 '((a00 a01 a02)
|
(define r1 '((a00 a01 a02)
|
||||||
(a10 a11 a12)))
|
(a10 a11 a12)))
|
||||||
|
@ -52,5 +52,5 @@
|
||||||
|
|
||||||
;; --- IMPERATIVE ---
|
;; --- IMPERATIVE ---
|
||||||
(check-expect (matrix-ref m1 0 0) 'a00)
|
(check-expect (matrix-ref m1 0 0) 'a00)
|
||||||
(define m1-modified (matrix-set! m1 0 0 'xxx)) ;; <-------- uncomment this and the test engine breaks
|
;(define m1-modified (matrix-set! m1 0 0 'xxx)) ;; <-------- uncomment this and the test engine breaks
|
||||||
(check-expect (matrix-ref m1 0 0) 'xxx)
|
;(check-expect (matrix-ref m1 0 0) 'xxx)
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
;; The first three lines of this file were inserted by DrScheme. They record metadata
|
;; The first three lines of this file were inserted by DrScheme. They record metadata
|
||||||
;; about the language level of this file in a form that our tools can easily process.
|
;; about the language level of this file in a form that our tools can easily process.
|
||||||
#reader(lib "htdp-beginner-reader.ss" "lang")((modname world-add-line) (read-case-sensitive #t) (teachpacks ((lib "world.ss" "teachpack" "htdp"))) (htdp-settings #(#t constructor repeating-decimal #f #t none #f ((lib "world.ss" "teachpack" "htdp")))))
|
#reader(lib "htdp-beginner-reader.ss" "lang")((modname world-add-line) (read-case-sensitive #t) (teachpacks ((lib "world.ss" "teachpack" "htdp"))) (htdp-settings #(#t constructor repeating-decimal #f #t none #f ((lib "world.ss" "teachpack" "htdp")))))
|
||||||
|
(require (lib "world.ss" "htdp"))
|
||||||
;(require htdp/world)
|
;(require htdp/world)
|
||||||
|
|
||||||
(define plain (empty-scene 100 100))
|
(define plain (empty-scene 100 100))
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
;; The first three lines of this file were inserted by DrScheme. They record metadata
|
;; The first three lines of this file were inserted by DrScheme. They record metadata
|
||||||
;; about the language level of this file in a form that our tools can easily process.
|
;; about the language level of this file in a form that our tools can easily process.
|
||||||
#reader(lib "htdp-intermediate-lambda-reader.ss" "lang")((modname world) (read-case-sensitive #t) (teachpacks ((lib "world.ss" "teachpack" "htdp"))) (htdp-settings #(#t constructor repeating-decimal #f #t none #f ((lib "world.ss" "teachpack" "htdp")))))
|
#reader(lib "htdp-intermediate-lambda-reader.ss" "lang")((modname world) (read-case-sensitive #t) (teachpacks ((lib "universe.ss" "teachpack" "2htdp") (lib "foo.ss" "installed-teachpacks"))) (htdp-settings #(#t constructor repeating-decimal #f #t none #f ((lib "universe.ss" "teachpack" "2htdp") (lib "foo.ss" "installed-teachpacks")))))
|
||||||
;; testing world
|
;; testing world
|
||||||
;; World = Nat
|
;; World = Nat
|
||||||
|
|
||||||
|
@ -27,14 +27,15 @@
|
||||||
(check-expect (key=? 'a #\a) false)
|
(check-expect (key=? 'a #\a) false)
|
||||||
(check-expect (key=? 'left 'left) true)
|
(check-expect (key=? 'left 'left) true)
|
||||||
|
|
||||||
(check-error (key=? 'a 0) "key=?: expected <KeyEvent> as first argument, given: 0")
|
(check-error (key=? 'a 0) "key=?: expected <KeyEvent> as second argument, given: 0")
|
||||||
|
|
||||||
|
|
||||||
;; run world run
|
;; run world run
|
||||||
|
|
||||||
(big-bang 100 100 .01 world0 true) ;; get ready to create images
|
xxx
|
||||||
|
|
||||||
(on-redraw world->image)
|
(big-bang world0
|
||||||
(on-tick-event world->next)
|
(on-draw world->image)
|
||||||
(on-key-event world->steer)
|
(on-tick world->next)
|
||||||
(stop-when zero?)
|
(on-key world->steer)
|
||||||
|
(stop-when zero?))
|
||||||
|
|
|
@ -34,7 +34,9 @@
|
||||||
(define-struct (tp-exn exn) ())
|
(define-struct (tp-exn exn) ())
|
||||||
|
|
||||||
(define (tp-error name fmt . args)
|
(define (tp-error name fmt . args)
|
||||||
(raise (make-tp-exn (string-append (format "~a: " name) (apply format fmt args))
|
(raise
|
||||||
|
(make-exn:fail:contract #; make-tp-exn
|
||||||
|
(string-append (format "~a: " name) (apply format fmt args))
|
||||||
(current-continuation-marks))))
|
(current-continuation-marks))))
|
||||||
|
|
||||||
(define (number->ord i)
|
(define (number->ord i)
|
||||||
|
|
|
@ -358,11 +358,36 @@
|
||||||
(char->integer (char -> integer)
|
(char->integer (char -> integer)
|
||||||
"to lookup the number that corresponds to the"
|
"to lookup the number that corresponds to the"
|
||||||
" given character in the ASCII table (if any)"))
|
" given character in the ASCII table (if any)"))
|
||||||
|
|
||||||
("Strings"
|
("Strings"
|
||||||
(string? (any -> boolean)
|
(string? (any -> boolean)
|
||||||
"to determine whether a value is a string")
|
"to determine whether a value is a string")
|
||||||
(string-length (string -> nat)
|
(string-length (string -> nat)
|
||||||
"to determine the length of a string")
|
"to determine the length of a string")
|
||||||
|
|
||||||
|
((beginner-string-ith string-ith) (string -> string)
|
||||||
|
"to extract the ith 1-letter substring from the given one")
|
||||||
|
((beginner-replicate replicate) (string nat -> string)
|
||||||
|
"to replicate the given string")
|
||||||
|
((beginner-int->string int->string) (integer -> string)
|
||||||
|
"to convert an integer in [0,55295] or [57344 1114111] to a 1-letter string")
|
||||||
|
((beginner-string->int string->int) (string -> integer)
|
||||||
|
"to convert a 1-letter string to an integer in [0,55295] or [57344 1114111]")
|
||||||
|
((beginner-explode explode) (string -> (listof string))
|
||||||
|
"to translate a string into a list of 1-letter strings")
|
||||||
|
((beginner-implode implode) ((listof string) -> string)
|
||||||
|
"to concatenate the list of 1-letter strings into one string")
|
||||||
|
((beginner-string-numeric? string-numeric?) (string -> boolean)
|
||||||
|
"to determine whether all 'letters' in the string are numeric")
|
||||||
|
((beginner-string-alphabetic? string-alphabetic?) (string -> boolean)
|
||||||
|
"to determine whether all 'letters' in the string are alphabetic")
|
||||||
|
((beginner-string-whitespace? string-whitespace?) (string -> boolean)
|
||||||
|
"to determine whether all 'letters' in the string are white space")
|
||||||
|
((beginner-string-upper-case? string-upper-case?) (string -> boolean)
|
||||||
|
"to determine whether all 'letters' in the string are upper case")
|
||||||
|
((beginner-string-lower-case? string-lower-case?) (string -> boolean)
|
||||||
|
"to determine whether all 'letters' in the string are lower case")
|
||||||
|
|
||||||
(string (char ... -> string)
|
(string (char ... -> string)
|
||||||
"(string c1 c2 ...) builds a string")
|
"(string c1 c2 ...) builds a string")
|
||||||
(make-string (nat char -> string)
|
(make-string (nat char -> string)
|
||||||
|
|
|
@ -7,8 +7,16 @@
|
||||||
|
|
||||||
(provide-and-document
|
(provide-and-document
|
||||||
procedures
|
procedures
|
||||||
(all-from beginner: lang/private/beginner-funs procedures)
|
(all-from-except beginner: lang/private/beginner-funs procedures
|
||||||
|
+ * - /)
|
||||||
|
|
||||||
|
("Numbers (relaxed conditions)"
|
||||||
|
|
||||||
|
(+ (number ... -> number) "to add all given numbers")
|
||||||
|
(* (number ... -> number) "to multiply all given numbers")
|
||||||
|
(- (number ... -> number) "to subtract from the first all remaining numbers")
|
||||||
|
(/ (number ... -> number) "to divide the first by all remaining numbers")
|
||||||
|
)
|
||||||
("Higher-Order Functions"
|
("Higher-Order Functions"
|
||||||
(map ((X ... -> Z) (listof X) ... -> (listof Z))
|
(map ((X ... -> Z) (listof X) ... -> (listof Z))
|
||||||
"to construct a new list by applying a function to each item on one or more existing lists")
|
"to construct a new list by applying a function to each item on one or more existing lists")
|
||||||
|
|
|
@ -8,7 +8,11 @@ collects/tests/mzscheme/beginner.ss
|
||||||
Each one has to run separately, since they mangle the top-level
|
Each one has to run separately, since they mangle the top-level
|
||||||
namespace.
|
namespace.
|
||||||
|#
|
|#
|
||||||
(module teachprims mzscheme
|
|
||||||
|
;; MF: switched from
|
||||||
|
;; module teachprims mzscheme
|
||||||
|
;; to
|
||||||
|
#lang scheme
|
||||||
|
|
||||||
(require mzlib/list
|
(require mzlib/list
|
||||||
mzlib/math
|
mzlib/math
|
||||||
|
@ -17,12 +21,12 @@ namespace.
|
||||||
(define-syntax (define-teach stx)
|
(define-syntax (define-teach stx)
|
||||||
(syntax-case stx ()
|
(syntax-case stx ()
|
||||||
[(_ level id expr)
|
[(_ level id expr)
|
||||||
(with-syntax ([level-id (datum->syntax-object
|
(with-syntax ([level-id (datum->syntax
|
||||||
(syntax id)
|
(syntax id)
|
||||||
(string->symbol
|
(string->symbol
|
||||||
(format "~a-~a"
|
(format "~a-~a"
|
||||||
(syntax-object->datum (syntax level))
|
(syntax->datum (syntax level))
|
||||||
(syntax-object->datum (syntax id))))
|
(syntax->datum (syntax id))))
|
||||||
(syntax id))])
|
(syntax id))])
|
||||||
(syntax (define level-id
|
(syntax (define level-id
|
||||||
(let ([id expr])
|
(let ([id expr])
|
||||||
|
@ -201,18 +205,18 @@ namespace.
|
||||||
(lambda () (exit)))
|
(lambda () (exit)))
|
||||||
|
|
||||||
(define (tequal? a b epsilon)
|
(define (tequal? a b epsilon)
|
||||||
(let* ([ht (make-hash-table)]
|
(let* ([ht (make-hash)] ;; make-hash
|
||||||
[union-find (lambda (a)
|
[union-find (lambda (a)
|
||||||
(let loop ([prev a]
|
(let loop ([prev a]
|
||||||
[prev-prev a])
|
[prev-prev a])
|
||||||
(let ([v (hash-table-get ht prev #f)])
|
(let ([v (hash-ref ht prev #f)])
|
||||||
(if v
|
(if v
|
||||||
(loop v prev)
|
(loop v prev)
|
||||||
(begin
|
(begin
|
||||||
(let loop ([a a])
|
(let loop ([a a])
|
||||||
(unless (eq? a prev-prev)
|
(unless (eq? a prev-prev)
|
||||||
(let ([v (hash-table-get ht a)])
|
(let ([v (hash-ref ht a)])
|
||||||
(hash-table-put! ht a prev)
|
(hash-set! ht a prev)
|
||||||
(loop v))))
|
(loop v))))
|
||||||
prev)))))]
|
prev)))))]
|
||||||
[union-equal!? (lambda (a b)
|
[union-equal!? (lambda (a b)
|
||||||
|
@ -221,7 +225,7 @@ namespace.
|
||||||
(if (eq? a b)
|
(if (eq? a b)
|
||||||
#t
|
#t
|
||||||
(begin
|
(begin
|
||||||
(hash-table-put! ht b a)
|
(hash-set! ht b a)
|
||||||
#f))))])
|
#f))))])
|
||||||
(let ? ([a a][b b])
|
(let ? ([a a][b b])
|
||||||
(cond
|
(cond
|
||||||
|
@ -342,4 +346,147 @@ namespace.
|
||||||
advanced-cons
|
advanced-cons
|
||||||
advanced-list*
|
advanced-list*
|
||||||
advanced-append
|
advanced-append
|
||||||
cyclic-list?))
|
cyclic-list?)
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
;; auxiliary stuff, ignore
|
||||||
|
|
||||||
|
(define 1-LET "1-letter string")
|
||||||
|
(define 1-LETTER (format "<~a>" 1-LET))
|
||||||
|
(define 1-LETTER* (format "<list of ~as>" 1-LET))
|
||||||
|
(define NAT "<natural number>")
|
||||||
|
|
||||||
|
;; Symbol Any -> Boolean
|
||||||
|
;; is this a 1-letter string?
|
||||||
|
(define (1-letter? tag s)
|
||||||
|
(unless (string? s) (err tag "~a expected, not a string: ~e" 1-LETTER s))
|
||||||
|
(= (string-length s) 1))
|
||||||
|
|
||||||
|
;; Symbol Any -> Boolean
|
||||||
|
;; is s a list of 1-letter strings
|
||||||
|
;; effect: not a list, not a list of strings
|
||||||
|
(define (1-letter*? tag s)
|
||||||
|
(unless (list? s) (err tag "~a expected, not a <list>: ~e" 1-LETTER* s))
|
||||||
|
(for-each
|
||||||
|
(lambda (c)
|
||||||
|
(unless (string? c) (err tag "~a expected, not a <string>: ~e" 1-LETTER* c)))
|
||||||
|
s)
|
||||||
|
(andmap (compose (curry = 1) string-length) s))
|
||||||
|
|
||||||
|
(define (err tag msg-format . args)
|
||||||
|
(raise
|
||||||
|
(make-exn:fail:contract
|
||||||
|
(apply format (string-append (symbol->string tag) ": " msg-format) args)
|
||||||
|
(current-continuation-marks))))
|
||||||
|
|
||||||
|
(define cerr
|
||||||
|
(case-lambda
|
||||||
|
[(tag check-result format-msg actual)
|
||||||
|
(unless check-result
|
||||||
|
(err tag (string-append format-msg " expected, given ~e") actual))]
|
||||||
|
[(tag check-result format-msg actual snd)
|
||||||
|
(unless check-result
|
||||||
|
(err tag (string-append format-msg " for ~a argument expected, given ~e")
|
||||||
|
snd actual))]))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(define-teach beginner string-ith
|
||||||
|
(lambda (s n)
|
||||||
|
(define f "<exact integer in [0, length of the given string (~s)]>")
|
||||||
|
(cerr 'string-ith (string? s) "<string>" s "first")
|
||||||
|
(cerr 'string-ith (and (number? n) (integer? n) (>= n 0)) NAT n "second")
|
||||||
|
(let ([l (string-length s)])
|
||||||
|
(cerr 'string-ith (< n l) (format f l) n "second"))
|
||||||
|
(string (string-ref s n))))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(define-teach beginner replicate
|
||||||
|
(lambda (n s1)
|
||||||
|
(cerr 'replicate (and (number? n) (exact-integer? n) (>= n 0)) NAT n)
|
||||||
|
(cerr 'replicate (string? s1) "<string>" s1)
|
||||||
|
(apply string-append (build-list n (lambda (i) s1)))))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(define-teach beginner int->string
|
||||||
|
(lambda (i)
|
||||||
|
(cerr 'int->string
|
||||||
|
(and (exact-integer? i) (or (<= 0 i 55295) (<= 57344 i 1114111)))
|
||||||
|
"<exact integer in [0,55295] or [57344 1114111]>"
|
||||||
|
i)
|
||||||
|
(string (integer->char i))))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(define-teach beginner string->int
|
||||||
|
(lambda (s)
|
||||||
|
(cerr 'string->int (1-letter? 'string->int s) 1-LETTER s)
|
||||||
|
(char->integer (string-ref s 0))))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(define-teach beginner explode
|
||||||
|
(lambda (s)
|
||||||
|
(cerr 'explode (string? s) "<string>" s)
|
||||||
|
(map string (string->list s))))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(define-teach beginner implode
|
||||||
|
(lambda (los)
|
||||||
|
(cerr 'implode (1-letter*? 'implode los) 1-LETTER* los)
|
||||||
|
(apply string-append los)))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(define-teach beginner string-numeric?
|
||||||
|
;; is this: (number? (string->number s)) enough?
|
||||||
|
(lambda (s1)
|
||||||
|
(cerr 'string-numeric? (string? s1) "<string>" s1)
|
||||||
|
(andmap char-numeric? (string->list s1))))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
;; I used copying here and I feel awful.
|
||||||
|
|
||||||
|
(define-teach beginner string-alphabetic?
|
||||||
|
(lambda (s1)
|
||||||
|
(cerr 'string-alphabetic? (string? s1) "<string>" s1)
|
||||||
|
(andmap char-alphabetic? (string->list s1))))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(define-teach beginner string-whitespace?
|
||||||
|
(lambda (s)
|
||||||
|
(cerr 'string-upper-case? (string? s) "<string>" s)
|
||||||
|
(andmap char-whitespace? (string->list s))))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
;; I copied the next two, and I feel awful, too.
|
||||||
|
|
||||||
|
(define-teach beginner string-upper-case?
|
||||||
|
(lambda (s)
|
||||||
|
(cerr 'string-upper-case? (string? s) "<string>" s)
|
||||||
|
(andmap char-upper-case? (string->list s))))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(define-teach beginner string-lower-case?
|
||||||
|
(lambda (s)
|
||||||
|
(cerr 'string-lower-case? (string? s) "<string>" s)
|
||||||
|
(andmap char-lower-case? (string->list s))))
|
||||||
|
|
||||||
|
(provide
|
||||||
|
beginner-string-ith
|
||||||
|
beginner-replicate
|
||||||
|
beginner-int->string
|
||||||
|
beginner-string->int
|
||||||
|
beginner-explode
|
||||||
|
beginner-implode
|
||||||
|
beginner-string-numeric?
|
||||||
|
beginner-string-alphabetic?
|
||||||
|
beginner-string-whitespace?
|
||||||
|
beginner-string-upper-case?
|
||||||
|
beginner-string-lower-case?)
|
|
@ -10,35 +10,6 @@ string: use string-append instead
|
||||||
substring consumes 2 or 3 arguments
|
substring consumes 2 or 3 arguments
|
||||||
|#
|
|#
|
||||||
|
|
||||||
;; -----------------------------------------------------------------------------
|
|
||||||
;; auxiliary stuff, ignore
|
|
||||||
(require test-engine/scheme-tests)
|
|
||||||
|
|
||||||
(define 1-letter "1-letter string")
|
|
||||||
(define 1-letter* (format "~as" 1-letter))
|
|
||||||
|
|
||||||
;; Symbol Any -> Boolean
|
|
||||||
;; is this a 1-letter string?
|
|
||||||
(define (1-letter? tag s)
|
|
||||||
(unless (string? s)
|
|
||||||
(error tag "~a expected, not a string: ~e" 1-letter s))
|
|
||||||
(= (string-length s) 1))
|
|
||||||
|
|
||||||
|
|
||||||
;; Symbol Any -> Boolean
|
|
||||||
;; is s a list of 1-letter strings
|
|
||||||
;; effect: not a list, not a list of strings
|
|
||||||
(define (1-letter*? tag s)
|
|
||||||
(unless (list? s)
|
|
||||||
(error tag "list of ~a expected, not a list: ~e" 1-letter* s))
|
|
||||||
(for-each
|
|
||||||
(lambda (c)
|
|
||||||
(unless (string? c)
|
|
||||||
(error tag "list of ~a expected, not a string: ~e" 1-letter* c)))
|
|
||||||
s)
|
|
||||||
#; (lambda (s) (= 1 (string-length s)))
|
|
||||||
(andmap (compose (curry = 1) string-length) s))
|
|
||||||
|
|
||||||
(define-syntax (define-teach stx)
|
(define-syntax (define-teach stx)
|
||||||
(syntax-case stx ()
|
(syntax-case stx ()
|
||||||
[(_ level id expr)
|
[(_ level id expr)
|
||||||
|
@ -54,175 +25,223 @@ substring consumes 2 or 3 arguments
|
||||||
id))))]))
|
id))))]))
|
||||||
|
|
||||||
;; -----------------------------------------------------------------------------
|
;; -----------------------------------------------------------------------------
|
||||||
|
;; auxiliary stuff, ignore
|
||||||
|
|
||||||
|
(define 1-LET "1-letter string")
|
||||||
|
(define 1-LETTER (format "<~a>" 1-LET))
|
||||||
|
(define 1-LETTER* (format "<list of ~as>" 1-LET))
|
||||||
|
(define NAT "<natural number>")
|
||||||
|
|
||||||
|
;; Symbol Any -> Boolean
|
||||||
|
;; is this a 1-letter string?
|
||||||
|
(define (1-letter? tag s)
|
||||||
|
(unless (string? s) (err tag "~a expected, not a string: ~e" 1-LETTER s))
|
||||||
|
(= (string-length s) 1))
|
||||||
|
|
||||||
|
;; Symbol Any -> Boolean
|
||||||
|
;; is s a list of 1-letter strings
|
||||||
|
;; effect: not a list, not a list of strings
|
||||||
|
(define (1-letter*? tag s)
|
||||||
|
(unless (list? s) (err tag "~a expected, not a <list>: ~e" 1-LETTER* s))
|
||||||
|
(for-each
|
||||||
|
(lambda (c)
|
||||||
|
(unless (string? c) (err tag "~a expected, not a <string>: ~e" 1-LETTER* c)))
|
||||||
|
s)
|
||||||
|
(andmap (compose (curry = 1) string-length) s))
|
||||||
|
|
||||||
|
(define (err tag msg-format . args)
|
||||||
|
(raise
|
||||||
|
(make-exn:fail:contract
|
||||||
|
(apply format (string-append (symbol->string tag) ": " msg-format) args)
|
||||||
|
(current-continuation-marks))))
|
||||||
|
|
||||||
|
(define cerr
|
||||||
|
(case-lambda
|
||||||
|
[(tag check-result format-msg actual)
|
||||||
|
(unless check-result
|
||||||
|
(err tag (string-append format-msg " expected, given ~e") actual))]
|
||||||
|
[(tag check-result format-msg actual snd)
|
||||||
|
(unless check-result
|
||||||
|
(err tag (string-append format-msg " for ~a argument expected, given ~e")
|
||||||
|
snd actual))]))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(define-teach beginner string-ith
|
||||||
|
(lambda (s n)
|
||||||
|
(define f "<exact integer in [0, length of the given string (~s)]>")
|
||||||
|
(cerr 'string-ith (string? s) "<string>" s "first")
|
||||||
|
(cerr 'string-ith (and (number? n) (integer? n) (>= n 0)) NAT n "second")
|
||||||
|
(let ([l (string-length s)])
|
||||||
|
(cerr 'string-ith (< n l) (format f l) n "second"))
|
||||||
|
(string (string-ref s n))))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(define-teach beginner replicate
|
||||||
|
(lambda (n s1)
|
||||||
|
(cerr 'replicate (and (number? n) (exact-integer? n) (>= n 0)) NAT n)
|
||||||
|
(cerr 'replicate (string? s1) "<string>" s1)
|
||||||
|
(apply string-append (build-list n (lambda (i) s1)))))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(define-teach beginner int->string
|
||||||
|
(lambda (i)
|
||||||
|
(cerr 'int->string
|
||||||
|
(and (exact-integer? i) (or (<= 0 i 55295) (<= 57344 i 1114111)))
|
||||||
|
"<exact integer in [0,55295] or [57344 1114111]>"
|
||||||
|
i)
|
||||||
|
(string (integer->char i))))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(define-teach beginner string->int
|
||||||
|
(lambda (s)
|
||||||
|
(cerr 'string->int (1-letter? 'string->int s) 1-LETTER s)
|
||||||
|
(char->integer (string-ref s 0))))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(define-teach beginner explode
|
||||||
|
(lambda (s)
|
||||||
|
(cerr 'explode (string? s) "<string>" s)
|
||||||
|
(map string (string->list s))))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(define-teach beginner implode
|
||||||
|
(lambda (los)
|
||||||
|
(cerr 'implode (1-letter*? 'implode los) 1-LETTER* los)
|
||||||
|
(apply string-append los)))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(define-teach beginner string-numeric?
|
||||||
|
;; is this: (number? (string->number s)) enough?
|
||||||
|
(lambda (s1)
|
||||||
|
(cerr 'string-numeric? (string? s1) "<string>" s1)
|
||||||
|
(andmap char-numeric? (string->list s1))))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
;; I used copying here and I feel awful.
|
||||||
|
|
||||||
|
(define-teach beginner string-alphabetic?
|
||||||
|
(lambda (s1)
|
||||||
|
(cerr 'string-alphabetic? (string? s1) "<string>" s1)
|
||||||
|
(andmap char-alphabetic? (string->list s1))))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(define-teach beginner string-whitespace?
|
||||||
|
(lambda (s)
|
||||||
|
(cerr 'string-upper-case? (string? s) "<string>" s)
|
||||||
|
(andmap char-whitespace? (string->list s))))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
;; I copied the next two, and I feel awful, too.
|
||||||
|
|
||||||
|
(define-teach beginner string-upper-case?
|
||||||
|
(lambda (s)
|
||||||
|
(cerr 'string-upper-case? (string? s) "<string>" s)
|
||||||
|
(andmap char-upper-case? (string->list s))))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(define-teach beginner string-lower-case?
|
||||||
|
(lambda (s)
|
||||||
|
(cerr 'string-lower-case? (string? s) "<string>" s)
|
||||||
|
(andmap char-lower-case? (string->list s))))
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
(require test-engine/scheme-tests)
|
||||||
|
|
||||||
(check-expect (beginner-string-ith "hell" 0) "h")
|
(check-expect (beginner-string-ith "hell" 0) "h")
|
||||||
(check-error
|
(check-error
|
||||||
(beginner-string-ith "hell" 4)
|
(beginner-string-ith "hell" 4)
|
||||||
(string-append
|
(string-append
|
||||||
"string-ith:"
|
"string-ith:"
|
||||||
" second argument must be between 0 and the length of the given string (4), given "
|
" <exact integer in [0, length of the given string (4)]>"
|
||||||
|
" for second argument expected, given "
|
||||||
"4"))
|
"4"))
|
||||||
|
|
||||||
(define-teach beginner string-ith
|
(check-error
|
||||||
(lambda (s n)
|
(beginner-string-ith 10 4)
|
||||||
(unless (string? s)
|
(string-append "string-ith: <string> for first argument expected, given "
|
||||||
(error 'string-ith "first argument must be of type <string>, given ~e" s))
|
"10"))
|
||||||
(unless (and (number? n) (integer? n) (>= n 0))
|
|
||||||
(error 'string-ith
|
(check-error
|
||||||
"second argument must be of type <natural number>, given ~e"
|
(beginner-string-ith "10" 'a)
|
||||||
n))
|
(string-append "string-ith: <natural number> for second argument expected, given "
|
||||||
(unless (< n (string-length s))
|
"a"))
|
||||||
(error 'string-ith
|
|
||||||
"second argument must be between 0 and the length of the given string (~s), given ~a"
|
|
||||||
(string-length s) n))
|
|
||||||
(string (string-ref s n))))
|
|
||||||
|
|
||||||
;; -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
(check-expect (beginner-replicate 3 "a") "aaa")
|
(check-expect (beginner-replicate 3 "a") "aaa")
|
||||||
(check-expect (beginner-replicate 3 "ab") "ababab")
|
(check-expect (beginner-replicate 3 "ab") "ababab")
|
||||||
(check-error (beginner-replicate 3 10) "replicate: string expected, given 10")
|
(check-error (beginner-replicate 3 10) "replicate: <string> expected, given 10")
|
||||||
|
|
||||||
(define-teach beginner replicate
|
|
||||||
(lambda (n s1)
|
|
||||||
(unless (and (number? n) (exact-integer? n) (>= n 0))
|
|
||||||
(error 'replicate "(exact) natural number expected, given ~e" n))
|
|
||||||
(unless (string? s1)
|
|
||||||
(error 'replicate "string expected, given ~e" s1))
|
|
||||||
(apply string-append (build-list n (lambda (i) s1)))))
|
|
||||||
|
|
||||||
;; -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
(check-expect (beginner-int->string 10) "\n")
|
(check-expect (beginner-int->string 10) "\n")
|
||||||
(check-error
|
(check-error
|
||||||
(beginner-int->string 56555)
|
(beginner-int->string 56555)
|
||||||
(string-append
|
(string-append
|
||||||
"int->string: exact integer in [0,55295] or [57344 1114111] expected, given "
|
"int->string: <exact integer in [0,55295] or [57344 1114111]> expected, given "
|
||||||
"56555"))
|
"56555"))
|
||||||
(check-error
|
(check-error
|
||||||
(beginner-int->string "A")
|
(beginner-int->string "A")
|
||||||
(string-append
|
(string-append
|
||||||
"int->string: exact integer in [0,55295] or [57344 1114111] expected, given "
|
"int->string: <exact integer in [0,55295] or [57344 1114111]> expected, given "
|
||||||
"A"))
|
(format "~s" "A")))
|
||||||
|
|
||||||
(define-teach beginner int->string
|
|
||||||
(lambda (i)
|
|
||||||
(unless (and (exact-integer? i) (or (<= 0 i 55295) (<= 57344 i 1114111)))
|
|
||||||
(error 'int->string
|
|
||||||
"exact integer in [0,55295] or [57344 1114111] expected, given ~a"
|
|
||||||
i))
|
|
||||||
(string (integer->char i))))
|
|
||||||
|
|
||||||
;; -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
(check-expect (beginner-string->int "A") 65)
|
(check-expect (beginner-string->int "A") 65)
|
||||||
(check-error
|
(check-error
|
||||||
(beginner-string->int 10)
|
(beginner-string->int 10)
|
||||||
(string-append "string->int: " 1-letter " expected, not a string: 10"))
|
(string-append "string->int: " 1-LETTER " expected, not a string: 10"))
|
||||||
(check-error
|
(check-error
|
||||||
(beginner-string->int "AB")
|
(beginner-string->int "AB")
|
||||||
(string-append "string->int: " 1-letter " expected, given " (format "~s" "AB")))
|
(string-append
|
||||||
|
"string->int: " 1-LETTER " expected, given " (format "~s" "AB")))
|
||||||
(define-teach beginner string->int
|
|
||||||
(lambda (s)
|
|
||||||
(unless (1-letter? 'string->int s)
|
|
||||||
(error 'string->int "~a expected, given ~e" 1-letter s))
|
|
||||||
(char->integer (string-ref s 0))))
|
|
||||||
|
|
||||||
;; -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
(check-expect (beginner-explode "hello") (list "h" "e" "l" "l" "o"))
|
(check-expect (beginner-explode "hello") (list "h" "e" "l" "l" "o"))
|
||||||
(check-error (beginner-explode 10)
|
(check-error (beginner-explode 10)
|
||||||
(string-append "explode: string expected, given " "10"))
|
(string-append "explode: <string> expected, given " "10"))
|
||||||
|
|
||||||
(define-teach beginner explode
|
|
||||||
(lambda (s)
|
|
||||||
(unless (string? s)
|
|
||||||
(error 'explode "string expected, given ~e" s))
|
|
||||||
(map string (string->list s))))
|
|
||||||
|
|
||||||
;; -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
(check-expect (beginner-implode (list "h" "e" "l" "l" "o")) "hello")
|
(check-expect (beginner-implode (list "h" "e" "l" "l" "o")) "hello")
|
||||||
(check-error (beginner-implode 10)
|
(check-error (beginner-implode 10)
|
||||||
(string-append "implode: list of " 1-letter*
|
(string-append "implode: " 1-LETTER*
|
||||||
" expected, not a list: 10"))
|
" expected, not a <list>: 10"))
|
||||||
(check-error (beginner-implode '("he" "l"))
|
(check-error (beginner-implode '("he" "l"))
|
||||||
(string-append "implode: list of " 1-letter* " expected, given "
|
(string-append "implode: " 1-LETTER* " expected, given "
|
||||||
(format "~s" '("he" "l"))))
|
(format "~s" '("he" "l"))))
|
||||||
|
|
||||||
(define-teach beginner implode
|
|
||||||
(lambda (los)
|
|
||||||
(unless (1-letter*? 'implode los)
|
|
||||||
(error 'implode "list of ~a expected, given ~e" 1-letter* los))
|
|
||||||
(apply string-append los)))
|
|
||||||
|
|
||||||
;; -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
(check-expect (beginner-string-numeric? "0") true)
|
(check-expect (beginner-string-numeric? "0") true)
|
||||||
(check-expect (beginner-string-numeric? "10") true)
|
(check-expect (beginner-string-numeric? "10") true)
|
||||||
(check-expect (beginner-string-numeric? "a") false)
|
(check-expect (beginner-string-numeric? "a") false)
|
||||||
(check-expect (beginner-string-numeric? "ab") false)
|
(check-expect (beginner-string-numeric? "ab") false)
|
||||||
(check-error (beginner-string-numeric? 10)
|
(check-error (beginner-string-numeric? 10)
|
||||||
(string-append "string-numeric?: string expected, given 10"))
|
(string-append "string-numeric?: <string> expected, given 10"))
|
||||||
|
|
||||||
(define-teach beginner string-numeric?
|
|
||||||
;; is this: (number? (string->number s)) enough?
|
|
||||||
(lambda (s1)
|
|
||||||
(unless (string? s1)
|
|
||||||
(error 'string-numeric? "string expected, given ~e" s1))
|
|
||||||
(andmap char-numeric? (string->list s1))))
|
|
||||||
|
|
||||||
;; -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
;; I used copying here and I feel awful.
|
|
||||||
(check-expect (beginner-string-alphabetic? "a0") false)
|
(check-expect (beginner-string-alphabetic? "a0") false)
|
||||||
(check-expect (beginner-string-alphabetic? "a") true)
|
(check-expect (beginner-string-alphabetic? "a") true)
|
||||||
(check-expect (beginner-string-alphabetic? "ba") true)
|
(check-expect (beginner-string-alphabetic? "ba") true)
|
||||||
(check-expect (beginner-string-alphabetic? "ab") true)
|
(check-expect (beginner-string-alphabetic? "ab") true)
|
||||||
|
|
||||||
(define-teach beginner string-alphabetic?
|
|
||||||
(lambda (s1)
|
|
||||||
(unless (string? s1)
|
|
||||||
(error 'string-alphabetic? "string expected, given ~e" s1))
|
|
||||||
(andmap char-alphabetic? (string->list s1))))
|
|
||||||
|
|
||||||
;; -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
(check-expect (beginner-string-whitespace? " ") true)
|
(check-expect (beginner-string-whitespace? " ") true)
|
||||||
(check-expect (beginner-string-whitespace? " \t") true)
|
(check-expect (beginner-string-whitespace? " \t") true)
|
||||||
(check-expect (beginner-string-whitespace? "ABC") false)
|
(check-expect (beginner-string-whitespace? "ABC") false)
|
||||||
|
|
||||||
(define-teach beginner string-whitespace?
|
|
||||||
(lambda (s)
|
|
||||||
(unless (string? s)
|
|
||||||
(error 'string-upper-case? "string expected, given ~e" s))
|
|
||||||
(andmap char-whitespace? (string->list s))))
|
|
||||||
|
|
||||||
;; -----------------------------------------------------------------------------
|
|
||||||
;; I copied the next two, and I feel awful, too.
|
|
||||||
(check-expect (beginner-string-upper-case? " ") false)
|
(check-expect (beginner-string-upper-case? " ") false)
|
||||||
(check-expect (beginner-string-upper-case? "AB\t") false)
|
(check-expect (beginner-string-upper-case? "AB\t") false)
|
||||||
(check-expect (beginner-string-upper-case? "ABC") true)
|
(check-expect (beginner-string-upper-case? "ABC") true)
|
||||||
|
|
||||||
(define-teach beginner string-upper-case?
|
|
||||||
(lambda (s)
|
|
||||||
(unless (string? s)
|
|
||||||
(error 'string-upper-case? "string expected, given ~e" s))
|
|
||||||
(andmap char-upper-case? (string->list s))))
|
|
||||||
|
|
||||||
;; -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
(check-expect (beginner-string-lower-case? " ") false)
|
(check-expect (beginner-string-lower-case? " ") false)
|
||||||
(check-expect (beginner-string-lower-case? "ab\t") false)
|
(check-expect (beginner-string-lower-case? "ab\t") false)
|
||||||
(check-expect (beginner-string-lower-case? "abc") true)
|
(check-expect (beginner-string-lower-case? "abc") true)
|
||||||
|
|
||||||
(define-teach beginner string-lower-case?
|
|
||||||
(lambda (s)
|
|
||||||
(unless (string? s)
|
|
||||||
(error 'string-lower-case? "string expected, given ~e" s))
|
|
||||||
(andmap char-lower-case? (string->list s))))
|
|
||||||
|
|
||||||
;; -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
(test)
|
(test)
|
|
@ -166,8 +166,8 @@
|
||||||
|
|
||||||
(define/private (rubber-band x y w h)
|
(define/private (rubber-band x y w h)
|
||||||
(when (and s-admin
|
(when (and s-admin
|
||||||
(positive? w)
|
(not (zero? w))
|
||||||
(positive? h))
|
(not (zero? h)))
|
||||||
(let-values ([(x w)
|
(let-values ([(x w)
|
||||||
(if (w . < . 0)
|
(if (w . < . 0)
|
||||||
(values (+ x w) (- w))
|
(values (+ x w) (- w))
|
||||||
|
|
|
@ -56,6 +56,10 @@
|
||||||
[alternate-bitmap bitmap]
|
[alternate-bitmap bitmap]
|
||||||
[vertical-tight? #f])
|
[vertical-tight? #f])
|
||||||
|
|
||||||
|
(when (and (is-a? label bitmap%)
|
||||||
|
(not (send label ok?)))
|
||||||
|
(error 'switchable-button% "label bitmap is not ok?"))
|
||||||
|
|
||||||
(define/override (get-label) label)
|
(define/override (get-label) label)
|
||||||
|
|
||||||
(define disable-bitmap (make-dull-mask bitmap))
|
(define disable-bitmap (make-dull-mask bitmap))
|
||||||
|
|
|
@ -38,7 +38,7 @@ how to use PLaneT by example.
|
||||||
|
|
||||||
@subsection[#:tag "finding-a-package"]{Finding a Package}
|
@subsection[#:tag "finding-a-package"]{Finding a Package}
|
||||||
|
|
||||||
If you are new to PLaneT, the first thing to to is visit
|
If you are new to PLaneT, the first thing to do is visit
|
||||||
@link["http://planet.plt-scheme.org/"]{the PLaneT repository web site}
|
@link["http://planet.plt-scheme.org/"]{the PLaneT repository web site}
|
||||||
and see what packages are available. People contribute new PLaneT
|
and see what packages are available. People contribute new PLaneT
|
||||||
packages all the time --- if you want to be notified whenever a new or
|
packages all the time --- if you want to be notified whenever a new or
|
||||||
|
|
|
@ -4,64 +4,10 @@
|
||||||
|
|
||||||
(provide analyze-samples)
|
(provide analyze-samples)
|
||||||
|
|
||||||
(require scheme/list)
|
(require "structs.ss" "utils.ss" scheme/list)
|
||||||
|
|
||||||
;; An encapsulation of an analyzed profile call graph:
|
|
||||||
;; - total-time: the total time observed in msec (this is generally different
|
|
||||||
;; than the time it took to run the profile).
|
|
||||||
;; - sample-number: the number of samples taken.
|
|
||||||
;; - thread-times: a list of (<thread-id> . msec) for the time spent in
|
|
||||||
;; observed threads.
|
|
||||||
;; - nodes: the list of call-graph nodes sorted by their total time.
|
|
||||||
;; - *-node: a special node that is connected as a "caller" for all toplevel
|
|
||||||
;; functions and a "callee" for all leaf functions. It will also be
|
|
||||||
;; identifiable by having both id and src fields being #f. Can be used to
|
|
||||||
;; start a graph traversal from the top or the bottom.
|
|
||||||
(provide (struct-out profile))
|
|
||||||
(define-struct profile
|
|
||||||
(total-time cpu-time sample-number thread-times nodes *-node))
|
|
||||||
|
|
||||||
;; An entry for a single profiled function:
|
|
||||||
;; - id, src: the corresponding values from `continuation-mark-set->context'.
|
|
||||||
;; - thread-ids: the list of thread identifiers this function has been seen in.
|
|
||||||
;; - total: total msecs it participated in (= time in it, including callees).
|
|
||||||
;; - self: msecs where it was at the top of the stack (= time in its own code).
|
|
||||||
;; - callers, callees: a list of `edge' values for the time spent while it was
|
|
||||||
;; called by the repective <node>, or it called it, sorted in decreasing msec
|
|
||||||
;; time.
|
|
||||||
;; Note that the sum of caller/callee edges including the special `*-node'
|
|
||||||
;; should be equal to the `total' time. So the edge from/to the `*-node' can
|
|
||||||
;; be used to get the time spent as a leaf or as a root divided by the number
|
|
||||||
;; of time the function appeared on the stack: so this value can be displayed
|
|
||||||
;; in the call-graph and the numbers will sum up nicely to a 100%.
|
|
||||||
(provide (struct-out node))
|
|
||||||
(define-struct node (id src thread-ids total self callers callees)
|
|
||||||
#:mutable
|
|
||||||
#:property prop:custom-write
|
|
||||||
(lambda (node o w?) (fprintf o "#<node:~s>" (or (node-id node) '???))))
|
|
||||||
|
|
||||||
;; An edge representing function calls between two nodes:
|
|
||||||
;; - time: the total time spent while the call was somewhere on the stack.
|
|
||||||
;; - caller, callee: the two relevant `node' values.
|
|
||||||
;; - caller-time, callee-time: the time that the caller/callee spent in this
|
|
||||||
;; call (different from the above time because each stack sample's time is
|
|
||||||
;; divided by the number of times the caller/callee appears in that slice).
|
|
||||||
(provide (struct-out edge))
|
|
||||||
(define-struct edge (total caller caller-time callee callee-time)
|
|
||||||
#:mutable
|
|
||||||
#:property prop:custom-write
|
|
||||||
(lambda (edge o w?)
|
|
||||||
(fprintf o "#<edge:~s-~s>"
|
|
||||||
(or (node-id (edge-caller edge)) '???)
|
|
||||||
(or (node-id (edge-callee edge)) '???))))
|
|
||||||
|
|
||||||
(define with-hash:not-found (gensym))
|
|
||||||
(define-syntax-rule (with-hash <hash> <key> <expr>)
|
(define-syntax-rule (with-hash <hash> <key> <expr>)
|
||||||
(let ([t <hash>] [k <key>])
|
(hash-ref! <hash> <key> (lambda () <expr>)))
|
||||||
(let ([v (hash-ref t k with-hash:not-found)])
|
|
||||||
(if (eq? v with-hash:not-found)
|
|
||||||
(let ([v <expr>]) (hash-set! t k v) v)
|
|
||||||
v))))
|
|
||||||
|
|
||||||
;; This function analyzes the output of the sampler. Returns a `profile'
|
;; This function analyzes the output of the sampler. Returns a `profile'
|
||||||
;; struct holding a list of `node' values, each one representing a node in the
|
;; struct holding a list of `node' values, each one representing a node in the
|
||||||
|
@ -132,10 +78,8 @@
|
||||||
(set-node-total! *-node total-time)
|
(set-node-total! *-node total-time)
|
||||||
;; convert the nodes from the hash to a list, do a topological sort, and then
|
;; convert the nodes from the hash to a list, do a topological sort, and then
|
||||||
;; sort by total time (combining both guarantees(?) sensible order)
|
;; sort by total time (combining both guarantees(?) sensible order)
|
||||||
(let ([nodes (remq *-node (topological-sort
|
(let ([nodes (append-map (lambda (nodes) (sort nodes > #:key node-total))
|
||||||
*-node
|
(topological-sort *-node))])
|
||||||
(lambda (nodes)
|
|
||||||
(sort nodes > #:key node-total))))])
|
|
||||||
;; sort all the edges in the nodes according to total time
|
;; sort all the edges in the nodes according to total time
|
||||||
(for ([n (in-list nodes)])
|
(for ([n (in-list nodes)])
|
||||||
(set-node-callees! n (sort (node-callees n) > #:key edge-callee-time))
|
(set-node-callees! n (sort (node-callees n) > #:key edge-callee-time))
|
||||||
|
@ -149,32 +93,6 @@
|
||||||
nodes
|
nodes
|
||||||
*-node)))
|
*-node)))
|
||||||
|
|
||||||
;; A simple topological sort of nodes using BFS, starting from node `x' which
|
|
||||||
;; will be the special *-node. `subsort' is a `resolver' function to sort
|
|
||||||
;; nodes on the same level.
|
|
||||||
(define (topological-sort x subsort)
|
|
||||||
(let loop ([todo (list x)] [seen (list x)])
|
|
||||||
(if (null? todo)
|
|
||||||
'()
|
|
||||||
(let* ([next (append-map (lambda (x)
|
|
||||||
(subsort (map edge-callee (node-callees x))))
|
|
||||||
todo)]
|
|
||||||
[next (remq* seen (remove-duplicates next))])
|
|
||||||
(append todo (loop next (append next seen)))))))
|
|
||||||
#|
|
|
||||||
(define (node id) (make-node id #f '() 0 0 '() '()))
|
|
||||||
(define (X . -> . Y)
|
|
||||||
(let ([e (make-edge 0 X 0 Y 0)])
|
|
||||||
(set-node-callers! Y (cons e (node-callers Y)))
|
|
||||||
(set-node-callees! X (cons e (node-callees X)))))
|
|
||||||
(define A (node 'A))
|
|
||||||
(define B (node 'B))
|
|
||||||
(define C (node 'C))
|
|
||||||
(A . -> . B)
|
|
||||||
(B . -> . C)
|
|
||||||
(topological-sort A 3)
|
|
||||||
|#
|
|
||||||
|
|
||||||
;; Groups raw samples by their thread-id, returns a vector with a field for
|
;; Groups raw samples by their thread-id, returns a vector with a field for
|
||||||
;; each thread id holding the sample data for that thread. The samples in
|
;; each thread id holding the sample data for that thread. The samples in
|
||||||
;; these are reversed (so they'll be sorted going forward in time).
|
;; these are reversed (so they'll be sorted going forward in time).
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
(provide profile-thunk profile)
|
(provide profile-thunk profile)
|
||||||
|
|
||||||
(require "sampler.ss" (except-in "analyzer.ss" profile)
|
(require "sampler.ss" "analyzer.ss"
|
||||||
(prefix-in text: "render-text.ss")
|
(prefix-in text: "render-text.ss")
|
||||||
(for-syntax scheme/base))
|
(for-syntax scheme/base))
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
(provide render)
|
(provide render)
|
||||||
|
|
||||||
(require "analyzer.ss" "utils.ss")
|
(require "structs.ss" "analyzer.ss" "utils.ss")
|
||||||
|
|
||||||
(define (render profile
|
(define (render profile
|
||||||
#:hide-self [hide-self% 1/100]
|
#:hide-self [hide-self% 1/100]
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
(provide render)
|
(provide render)
|
||||||
|
|
||||||
(require "analyzer.ss" "utils.ss" scheme/list)
|
(require "structs.ss" "analyzer.ss" "utils.ss" scheme/list)
|
||||||
|
|
||||||
(define (f:msec msec)
|
(define (f:msec msec)
|
||||||
(number->string (round (inexact->exact msec))))
|
(number->string (round (inexact->exact msec))))
|
||||||
|
|
54
collects/profile/structs.ss
Normal file
54
collects/profile/structs.ss
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
#lang scheme/base
|
||||||
|
|
||||||
|
;; Struct definitions for the profiler
|
||||||
|
|
||||||
|
;; An encapsulation of an analyzed profile call graph:
|
||||||
|
;; - total-time: the total time observed in msec (this is generally different
|
||||||
|
;; than the time it took to run the profile).
|
||||||
|
;; - sample-number: the number of samples taken.
|
||||||
|
;; - thread-times: a list of (<thread-id> . msec) for the time spent in
|
||||||
|
;; observed threads.
|
||||||
|
;; - nodes: the list of call-graph nodes sorted by their total time.
|
||||||
|
;; - *-node: a special node that is connected as a "caller" for all toplevel
|
||||||
|
;; functions and a "callee" for all leaf functions. It will also be
|
||||||
|
;; identifiable by having both id and src fields being #f. Can be used to
|
||||||
|
;; start a graph traversal from the top or the bottom.
|
||||||
|
(provide (struct-out profile))
|
||||||
|
(define-struct profile
|
||||||
|
(total-time cpu-time sample-number thread-times nodes *-node))
|
||||||
|
|
||||||
|
;; An entry for a single profiled function:
|
||||||
|
;; - id, src: the corresponding values from `continuation-mark-set->context'.
|
||||||
|
;; - thread-ids: the list of thread identifiers this function has been seen in.
|
||||||
|
;; - total: total msecs it participated in (= time in it, including callees).
|
||||||
|
;; - self: msecs where it was at the top of the stack (= time in its own code).
|
||||||
|
;; - callers, callees: a list of `edge' values for the time spent while it was
|
||||||
|
;; called by the repective <node>, or it called it, sorted in decreasing msec
|
||||||
|
;; time.
|
||||||
|
;; Note that the sum of caller/callee edges including the special `*-node'
|
||||||
|
;; should be equal to the `total' time. So the edge from/to the `*-node' can
|
||||||
|
;; be used to get the time spent as a leaf or as a root divided by the number
|
||||||
|
;; of time the function appeared on the stack: so this value can be displayed
|
||||||
|
;; in the call-graph and the numbers will sum up nicely to a 100%.
|
||||||
|
(provide (struct-out node))
|
||||||
|
(define-struct node (id src thread-ids total self callers callees)
|
||||||
|
#:mutable
|
||||||
|
#:property prop:custom-write
|
||||||
|
(lambda (node o w?)
|
||||||
|
(fprintf o "#<node:~s>"
|
||||||
|
(or (node-id node) (if (node-src node) '??? 'ROOT)))))
|
||||||
|
|
||||||
|
;; An edge representing function calls between two nodes:
|
||||||
|
;; - total: the total time spent while the call was anywhere on the stack.
|
||||||
|
;; - caller, callee: the two relevant `node' values.
|
||||||
|
;; - caller-time, callee-time: the time that the caller/callee spent in this
|
||||||
|
;; call (different from the above time because each stack sample's time is
|
||||||
|
;; divided by the number of times the caller/callee appears in that slice).
|
||||||
|
(provide (struct-out edge))
|
||||||
|
(define-struct edge (total caller caller-time callee callee-time)
|
||||||
|
#:mutable
|
||||||
|
#:property prop:custom-write
|
||||||
|
(lambda (edge o w?)
|
||||||
|
(fprintf o "#<edge:~s-~s>"
|
||||||
|
(or (node-id (edge-caller edge)) '???)
|
||||||
|
(or (node-id (edge-callee edge)) '???))))
|
|
@ -1,13 +1,13 @@
|
||||||
#lang scheme/base
|
#lang scheme/base
|
||||||
|
|
||||||
(provide format-percent format-source get-hidden)
|
(require "structs.ss" scheme/list)
|
||||||
(require "analyzer.ss")
|
|
||||||
|
|
||||||
;; Format a percent number, possibly doing the division too. If we do the
|
;; Format a percent number, possibly doing the division too. If we do the
|
||||||
;; division, then be careful: if we're dividing by zero, then make the result
|
;; division, then be careful: if we're dividing by zero, then make the result
|
||||||
;; zero. This is useful if the total time is zero because we didn't see any
|
;; zero. This is useful if the total time is zero because we didn't see any
|
||||||
;; activity (for example, the profiled code is just doing a `sleep'), in which
|
;; activity (for example, the profiled code is just doing a `sleep'), in which
|
||||||
;; case all times will be 0.
|
;; case all times will be 0.
|
||||||
|
(provide format-percent)
|
||||||
(define format-percent
|
(define format-percent
|
||||||
(case-lambda
|
(case-lambda
|
||||||
[(percent)
|
[(percent)
|
||||||
|
@ -15,6 +15,7 @@
|
||||||
(format "~a.~a%" (quotient percent 10) (modulo percent 10)))]
|
(format "~a.~a%" (quotient percent 10) (modulo percent 10)))]
|
||||||
[(x y) (format-percent (if (zero? y) 0 (/ x y)))]))
|
[(x y) (format-percent (if (zero? y) 0 (/ x y)))]))
|
||||||
|
|
||||||
|
(provide format-source)
|
||||||
(define (format-source src)
|
(define (format-source src)
|
||||||
(if src
|
(if src
|
||||||
(format "~a:~a"
|
(format "~a:~a"
|
||||||
|
@ -27,6 +28,7 @@
|
||||||
;; Hide a node if its self time is smaller than the self threshold *and* all of
|
;; Hide a node if its self time is smaller than the self threshold *and* all of
|
||||||
;; its edges are below the sub-node threshold too -- this avoids confusing
|
;; its edges are below the sub-node threshold too -- this avoids confusing
|
||||||
;; output where a node does not have an entry but appears as a caller/callee.
|
;; output where a node does not have an entry but appears as a caller/callee.
|
||||||
|
(provide get-hidden)
|
||||||
(define (get-hidden profile hide-self% hide-subs%)
|
(define (get-hidden profile hide-self% hide-subs%)
|
||||||
(define self% (or hide-self% 0))
|
(define self% (or hide-self% 0))
|
||||||
(define subs% (or hide-subs% 0))
|
(define subs% (or hide-subs% 0))
|
||||||
|
@ -45,3 +47,28 @@
|
||||||
(cond [(and (<= self% 0) (<= subs% 0)) '()]
|
(cond [(and (<= self% 0) (<= subs% 0)) '()]
|
||||||
[(zero? total-time) (profile-nodes profile)]
|
[(zero? total-time) (profile-nodes profile)]
|
||||||
[else (filter hide? (profile-nodes profile))]))
|
[else (filter hide? (profile-nodes profile))]))
|
||||||
|
|
||||||
|
;; A simple topological sort of nodes using the Khan method, starting from node
|
||||||
|
;; `x' (which will be given as the special *-node). The result is a list of
|
||||||
|
;; node lists, each one corresponds to one level. Conceptually, the input node
|
||||||
|
;; is always only item in the first level, so it is not included in the result.
|
||||||
|
(provide topological-sort)
|
||||||
|
(define (topological-sort x)
|
||||||
|
(let loop ([todo (list x)] [sorted '()] [seen (list x)])
|
||||||
|
(let* (;; take the next level of nodes
|
||||||
|
[next (append-map (lambda (x) (map edge-callee (node-callees x)))
|
||||||
|
todo)]
|
||||||
|
;; remove visited and duplicates
|
||||||
|
[next (remove-duplicates (remq* seen next))]
|
||||||
|
;; leave only nodes with no other incoming edges
|
||||||
|
[seen* (append next seen)] ; important for cycles
|
||||||
|
[next* (filter (lambda (node)
|
||||||
|
(andmap (lambda (e) (memq (edge-caller e) seen*))
|
||||||
|
(node-callers node)))
|
||||||
|
next)]
|
||||||
|
;; but if all nodes have other incoming edges, then there must be a
|
||||||
|
;; cycle, so just do them now (instead of dropping them)
|
||||||
|
[next (if (null? next*) next next*)])
|
||||||
|
(if (null? next)
|
||||||
|
(reverse sorted)
|
||||||
|
(loop next (cons next sorted) (append next seen))))))
|
||||||
|
|
|
@ -266,10 +266,13 @@
|
||||||
(let* ([exports-renamed (bound-identifier-mapping-map tmp (lambda (k v) k))]
|
(let* ([exports-renamed (bound-identifier-mapping-map tmp (lambda (k v) k))]
|
||||||
[exports (map (lambda (id) (pre-package-id id def-ctxes))
|
[exports (map (lambda (id) (pre-package-id id def-ctxes))
|
||||||
exports-renamed)])
|
exports-renamed)])
|
||||||
(values exports exports-renamed)))))])
|
(values exports exports-renamed)))))]
|
||||||
(with-syntax ([(export ...) exports]
|
[(prune)
|
||||||
[(renamed ...) exports-renamed]
|
(lambda (stx)
|
||||||
[(hidden ...) (complement new-bindings exports-renamed)])
|
(identifier-prune-lexical-context stx (list (syntax-e stx) '#%top)))])
|
||||||
|
(with-syntax ([(export ...) (map prune exports)]
|
||||||
|
[(renamed ...) (map prune exports-renamed)]
|
||||||
|
[(hidden ...) (map prune (complement new-bindings exports-renamed))])
|
||||||
(let ([body (map (fixup-sub-package exports-renamed defined-renamed def-ctxes)
|
(let ([body (map (fixup-sub-package exports-renamed defined-renamed def-ctxes)
|
||||||
(reverse rev-forms))])
|
(reverse rev-forms))])
|
||||||
(if (eq? mode '#:begin)
|
(if (eq? mode '#:begin)
|
||||||
|
|
|
@ -369,7 +369,9 @@
|
||||||
stx
|
stx
|
||||||
super-id))
|
super-id))
|
||||||
(and super-expr
|
(and super-expr
|
||||||
#`(check-struct-type 'fm #,super-expr)))])
|
#`(check-struct-type 'fm #,super-expr)))]
|
||||||
|
[prune (lambda (stx) (identifier-prune-lexical-context stx
|
||||||
|
(list (syntax-e stx) '#%top)))])
|
||||||
(let ([run-time-defns
|
(let ([run-time-defns
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(quasisyntax/loc stx
|
(quasisyntax/loc stx
|
||||||
|
@ -424,7 +426,7 @@
|
||||||
(let ([protect (lambda (sel)
|
(let ([protect (lambda (sel)
|
||||||
(and sel
|
(and sel
|
||||||
(if (syntax-e sel)
|
(if (syntax-e sel)
|
||||||
#`(quote-syntax #,sel)
|
#`(quote-syntax #,(prune sel))
|
||||||
sel)))]
|
sel)))]
|
||||||
[mk-info (if super-info-checked?
|
[mk-info (if super-info-checked?
|
||||||
#'make-checked-struct-info
|
#'make-checked-struct-info
|
||||||
|
@ -434,9 +436,9 @@
|
||||||
(#,mk-info
|
(#,mk-info
|
||||||
(lambda ()
|
(lambda ()
|
||||||
(list
|
(list
|
||||||
(quote-syntax #,struct:)
|
(quote-syntax #,(prune struct:))
|
||||||
(quote-syntax #,make-)
|
(quote-syntax #,(prune make-))
|
||||||
(quote-syntax #,?)
|
(quote-syntax #,(prune ?))
|
||||||
(list
|
(list
|
||||||
#,@(map protect (reverse sels))
|
#,@(map protect (reverse sels))
|
||||||
#,@(if super-info
|
#,@(if super-info
|
||||||
|
|
|
@ -43,4 +43,24 @@
|
||||||
(syntax (syntax pattern))
|
(syntax (syntax pattern))
|
||||||
(syntax (relocate loc (syntax pattern))))])))
|
(syntax (relocate loc (syntax pattern))))])))
|
||||||
|
|
||||||
(#%provide syntax/loc syntax-case* syntax-case ... _))
|
(-define-syntax quote-syntax/prune
|
||||||
|
(lambda (stx)
|
||||||
|
(syntax-case** #f #t stx () free-identifier=?
|
||||||
|
[(_ id)
|
||||||
|
(if (symbol? (syntax-e #'id))
|
||||||
|
(datum->syntax #'here
|
||||||
|
(list (quote-syntax quote-syntax)
|
||||||
|
(identifier-prune-lexical-context (syntax id)
|
||||||
|
(list
|
||||||
|
(syntax-e (syntax id))
|
||||||
|
'#%top)))
|
||||||
|
stx
|
||||||
|
#f
|
||||||
|
stx)
|
||||||
|
(raise-syntax-error
|
||||||
|
#f
|
||||||
|
"expected an identifier"
|
||||||
|
stx
|
||||||
|
#'id))])))
|
||||||
|
|
||||||
|
(#%provide syntax/loc quote-syntax/prune syntax-case* syntax-case ... _))
|
||||||
|
|
|
@ -125,7 +125,7 @@ Returns @scheme[#f] if the bitmap is monochrome, @scheme[#t] otherwise.
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@defmethod[(load-file [name pat-string?]
|
@defmethod[(load-file [name path-string?]
|
||||||
[kind (one-of/c 'unknown 'unknown/mask
|
[kind (one-of/c 'unknown 'unknown/mask
|
||||||
'gif 'gif/mask 'jpeg 'png 'png/mask
|
'gif 'gif/mask 'jpeg 'png 'png/mask
|
||||||
'xbm 'xpm 'bmp 'pict)
|
'xbm 'xpm 'bmp 'pict)
|
||||||
|
@ -188,7 +188,7 @@ Returns @scheme[#t] if the bitmap is usable (created or changed
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@defmethod[(save-file [name pat-string?]
|
@defmethod[(save-file [name path-string?]
|
||||||
[kind (one-of/c 'png 'jpeg 'xbm 'xpm 'bmp)]
|
[kind (one-of/c 'png 'jpeg 'xbm 'xpm 'bmp)]
|
||||||
[quality (integer-in 0 100) 75])
|
[quality (integer-in 0 100) 75])
|
||||||
boolean?]{
|
boolean?]{
|
||||||
|
|
|
@ -1117,8 +1117,8 @@ Returns an accessor procedure that takes an instance of the class
|
||||||
produced by @scheme[class-expr] and returns the value of the object's
|
produced by @scheme[class-expr] and returns the value of the object's
|
||||||
field with (external) name @scheme[field-id].
|
field with (external) name @scheme[field-id].
|
||||||
|
|
||||||
If @scheme[obj-expr] does not produce an object, the
|
If @scheme[class-expr] does not produce a class, the
|
||||||
@exnraise[exn:fail:contract]. If the object has no @scheme[field-id]
|
@exnraise[exn:fail:contract]. If the class has no @scheme[field-id]
|
||||||
field, the @exnraise[exn:fail:object].}
|
field, the @exnraise[exn:fail:object].}
|
||||||
|
|
||||||
@defform[(class-field-mutator class-expr field-id)]{
|
@defform[(class-field-mutator class-expr field-id)]{
|
||||||
|
@ -1128,8 +1128,8 @@ produced by @scheme[class-expr] and a value, and sets the value of the
|
||||||
object's field with (external) name @scheme[field-id] to the given
|
object's field with (external) name @scheme[field-id] to the given
|
||||||
value. The result is @|void-const|.
|
value. The result is @|void-const|.
|
||||||
|
|
||||||
If @scheme[obj-expr] does not produce an object, the
|
If @scheme[class-expr] does not produce a class, the
|
||||||
@exnraise[exn:fail:contract]. If the object has no @scheme[field-id]
|
@exnraise[exn:fail:contract]. If the class has no @scheme[field-id]
|
||||||
field, the @exnraise[exn:fail:object].}
|
field, the @exnraise[exn:fail:object].}
|
||||||
|
|
||||||
@; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
@; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
|
@ -224,3 +224,18 @@ in the corresponding generated name, which is useful for debugging
|
||||||
purposes. The generated identifiers are built with interned symbols
|
purposes. The generated identifiers are built with interned symbols
|
||||||
(not @scheme[gensym]s), so the limitations described with
|
(not @scheme[gensym]s), so the limitations described with
|
||||||
@scheme[current-compile] do not apply.}
|
@scheme[current-compile] do not apply.}
|
||||||
|
|
||||||
|
|
||||||
|
@defproc[(identifier-prune-lexical-context [id-stx identifier?]
|
||||||
|
[syms (listof symbol?) (list (syntax-e id-stx))])
|
||||||
|
identifier?]{
|
||||||
|
|
||||||
|
Returns an identifier with the same binding as @scheme[id-stx], but
|
||||||
|
without lexical information from @scheme[id-stx] that does not apply
|
||||||
|
to the symbols in @scheme[syms], where even further extension of the
|
||||||
|
lexical information drops information for other symbols. In
|
||||||
|
particular, transferring the lexical context via
|
||||||
|
@scheme[datum->syntax] from the result of this function to a symbol
|
||||||
|
other than one in @scheme[syms] produces a identifier with no binding.
|
||||||
|
|
||||||
|
See also @scheme[quote-syntax/prune].}
|
||||||
|
|
|
@ -358,6 +358,16 @@ Like @scheme[quasisyntax], but with source-location assignment like
|
||||||
@scheme[syntax/loc].}
|
@scheme[syntax/loc].}
|
||||||
|
|
||||||
|
|
||||||
|
@defform[(quote-syntax/prune id)]{
|
||||||
|
|
||||||
|
Like @scheme[quote-syntax], but the lexical context of @scheme[id] is
|
||||||
|
pruned via @scheme[identifier-prune-lexical-context] to including
|
||||||
|
binding only for the symbolic name of @scheme[id] and for
|
||||||
|
@scheme['#%top]. Use this form to quote an identifier when its lexical
|
||||||
|
information will not be transferred to other syntax objects (except
|
||||||
|
maybe to @scheme['#%top] for a top-level binding).}
|
||||||
|
|
||||||
|
|
||||||
@defform[(syntax-rules (literal-id ...)
|
@defform[(syntax-rules (literal-id ...)
|
||||||
[(id . pattern) template] ...)]{
|
[(id . pattern) template] ...)]{
|
||||||
|
|
||||||
|
|
|
@ -199,7 +199,9 @@ Returns a @tech{synchronizable event} (see @secref["sync"]) that is
|
||||||
ready if and only if @scheme[thd] has terminated. Unlike using
|
ready if and only if @scheme[thd] has terminated. Unlike using
|
||||||
@scheme[thd] directly, however, a reference to the event does not
|
@scheme[thd] directly, however, a reference to the event does not
|
||||||
prevent @scheme[thd] from being garbage collected (see
|
prevent @scheme[thd] from being garbage collected (see
|
||||||
@secref["gc-model"]).}
|
@secref["gc-model"]). For a given @scheme[thd],
|
||||||
|
@scheme[thread-dead-evt] always returns the same (i.e., @scheme[eq?])
|
||||||
|
result.}
|
||||||
|
|
||||||
@defproc[(thread-resume-evt [thd thread?]) evt?]{
|
@defproc[(thread-resume-evt [thd thread?]) evt?]{
|
||||||
|
|
||||||
|
|
|
@ -89,7 +89,7 @@
|
||||||
#:under? [under? #f]
|
#:under? [under? #f]
|
||||||
#:solid? [solid? #t]
|
#:solid? [solid? #t]
|
||||||
#:hide-arrowhead? [hide-arrowhead? #f])
|
#:hide-arrowhead? [hide-arrowhead? #f])
|
||||||
(if (not sa ea)
|
(if (not (or sa ea))
|
||||||
(finish-pin (launder (t:pin-arrows-line sz (ghost p)
|
(finish-pin (launder (t:pin-arrows-line sz (ghost p)
|
||||||
src src-find
|
src src-find
|
||||||
dest dest-find
|
dest dest-find
|
||||||
|
|
|
@ -426,7 +426,7 @@ please adhere to these guidelines:
|
||||||
(show-status-line "Show status-line")
|
(show-status-line "Show status-line")
|
||||||
(count-columns-from-one "Count column numbers from one")
|
(count-columns-from-one "Count column numbers from one")
|
||||||
(display-line-numbers "Display line numbers in buffer; not character offsets")
|
(display-line-numbers "Display line numbers in buffer; not character offsets")
|
||||||
(show-line-and-column-numbers "Show line & column numbers") ; used for popup menu; right click on line/column box in bottom of drs window
|
(show-line-and-column-numbers "Show line && column numbers") ; used for popup menu; right click on line/column box in bottom of drs window
|
||||||
(show-character-offsets "Show character offsets") ; used for popup menu; right click on line/column box in bottom of drs window
|
(show-character-offsets "Show character offsets") ; used for popup menu; right click on line/column box in bottom of drs window
|
||||||
(enable-keybindings-in-menus "Enable keybindings in menus")
|
(enable-keybindings-in-menus "Enable keybindings in menus")
|
||||||
(automatically-to-ps "Automatically print to PostScript file")
|
(automatically-to-ps "Automatically print to PostScript file")
|
||||||
|
|
|
@ -133,14 +133,6 @@
|
||||||
(htdp-test #t 'eq? (eq? #t true))
|
(htdp-test #t 'eq? (eq? #t true))
|
||||||
(htdp-test #t 'eq? (eq? #f false))
|
(htdp-test #t 'eq? (eq? #f false))
|
||||||
|
|
||||||
(htdp-err/rt-test (+) exn:application:arity?)
|
|
||||||
(htdp-err/rt-test (+ 1) exn:application:arity?)
|
|
||||||
(htdp-err/rt-test (*) exn:application:arity?)
|
|
||||||
(htdp-err/rt-test (* 1) exn:application:arity?)
|
|
||||||
(htdp-err/rt-test (-) exn:application:arity?)
|
|
||||||
(htdp-err/rt-test (/) exn:application:arity?)
|
|
||||||
(htdp-err/rt-test (/ 1) exn:application:arity?)
|
|
||||||
|
|
||||||
(htdp-test -9 '- (- 9))
|
(htdp-test -9 '- (- 9))
|
||||||
|
|
||||||
(htdp-top (define-struct an-example-structure (first-field second-field)))
|
(htdp-top (define-struct an-example-structure (first-field second-field)))
|
||||||
|
@ -294,3 +286,104 @@
|
||||||
(htdp-top (check-within 1 2 3))
|
(htdp-top (check-within 1 2 3))
|
||||||
(htdp-test 2 'two 2)
|
(htdp-test 2 'two 2)
|
||||||
(htdp-top-pop 1)
|
(htdp-top-pop 1)
|
||||||
|
|
||||||
|
;; -----------------------------------------------------------------------------
|
||||||
|
;; mf's tests for string functions replacing chars
|
||||||
|
|
||||||
|
(htdp-test "h" 'string-ith (string-ith "hell" 0))
|
||||||
|
|
||||||
|
(htdp-err/rt-test (string-ith "hell" 4) exn:fail:contract?
|
||||||
|
#;
|
||||||
|
(string-append
|
||||||
|
"string-ith:"
|
||||||
|
" <exact integer in [0, length of the given string (4)]>"
|
||||||
|
" for second argument expected, given "
|
||||||
|
"4"))
|
||||||
|
|
||||||
|
(htdp-err/rt-test (string-ith 10 4) exn:fail:contract?
|
||||||
|
#;
|
||||||
|
(string-append "string-ith: <string> for first argument expected, given "
|
||||||
|
"10"))
|
||||||
|
|
||||||
|
(htdp-err/rt-test (string-ith "10" 'a) exn:fail:contract?
|
||||||
|
#;
|
||||||
|
(string-append "string-ith: <natural number> for second argument expected, given "
|
||||||
|
"a"))
|
||||||
|
|
||||||
|
(htdp-test "aaa" 'replicate (replicate 3 "a"))
|
||||||
|
|
||||||
|
(htdp-test "ababab" 'replicate (replicate 3 "ab"))
|
||||||
|
|
||||||
|
(htdp-err/rt-test (replicate 3 10) exn:fail:contract?
|
||||||
|
#;
|
||||||
|
"replicate: <string> expected, given 10")
|
||||||
|
|
||||||
|
(htdp-test "\n" 'int->string (int->string 10))
|
||||||
|
|
||||||
|
(htdp-err/rt-test (int->string 56555) exn:fail:contract?
|
||||||
|
#;
|
||||||
|
(string-append
|
||||||
|
"int->string: <exact integer in [0,55295] or [57344 1114111]> expected, given "
|
||||||
|
"56555"))
|
||||||
|
|
||||||
|
(htdp-err/rt-test (int->string "A") exn:fail:contract?
|
||||||
|
#;
|
||||||
|
(string-append
|
||||||
|
"int->string: <exact integer in [0,55295] or [57344 1114111]> expected, given "
|
||||||
|
(format "~s" "A")))
|
||||||
|
|
||||||
|
(htdp-test 65 'string->int (string->int "A"))
|
||||||
|
|
||||||
|
(htdp-err/rt-test (string->int 10) exn:fail:contract?
|
||||||
|
#;
|
||||||
|
(string-append "string->int: " 1-LETTER " expected, not a string: 10"))
|
||||||
|
|
||||||
|
(htdp-err/rt-test (string->int "AB") exn:fail:contract?
|
||||||
|
#;
|
||||||
|
(string-append
|
||||||
|
"string->int: " 1-LETTER " expected, given " (format "~s" "AB")))
|
||||||
|
|
||||||
|
(htdp-test (list "h" "e" "l" "l" "o") 'explode (explode "hello"))
|
||||||
|
|
||||||
|
(htdp-err/rt-test (explode 10) exn:fail:contract?
|
||||||
|
#;
|
||||||
|
(string-append "explode: <string> expected, given " "10"))
|
||||||
|
|
||||||
|
(htdp-test "hello" 'implode (implode (list "h" "e" "l" "l" "o")))
|
||||||
|
|
||||||
|
(htdp-err/rt-test (implode 10) exn:fail:contract?
|
||||||
|
#;
|
||||||
|
(string-append "implode: " 1-LETTER* " expected, not a <list>: 10"))
|
||||||
|
|
||||||
|
(htdp-err/rt-test (implode (list "he" "l")) exn:fail:contract?
|
||||||
|
#;
|
||||||
|
(string-append "implode: " 1-LETTER* " expected, given "
|
||||||
|
(format "~s" (list "he" "l"))))
|
||||||
|
|
||||||
|
(htdp-test true 'string-numeric? (string-numeric? "0"))
|
||||||
|
(htdp-test true 'string-numeric? (string-numeric? "10"))
|
||||||
|
(htdp-test false 'string-numeric? (string-numeric? "a"))
|
||||||
|
(htdp-test false 'string-numeric? (string-numeric? "ab"))
|
||||||
|
|
||||||
|
(htdp-err/rt-test (string-numeric? 10) exn:fail:contract?
|
||||||
|
#;
|
||||||
|
(string-append "string-numeric?: <string> expected, given 10"))
|
||||||
|
|
||||||
|
|
||||||
|
(htdp-test false 'string-alphabetic? (string-alphabetic? "a0"))
|
||||||
|
(htdp-test true 'string-alphabetic? (string-alphabetic? "a"))
|
||||||
|
(htdp-test true 'string-alphabetic? (string-alphabetic? "ba"))
|
||||||
|
(htdp-test true 'string-alphabetic? (string-alphabetic? "ab"))
|
||||||
|
|
||||||
|
(htdp-test true 'string-whitespace? (string-whitespace? " "))
|
||||||
|
(htdp-test true 'string-whitespace? (string-whitespace? " \t"))
|
||||||
|
(htdp-test false 'string-whitespace? (string-whitespace? "ABC"))
|
||||||
|
|
||||||
|
(htdp-test false 'string-upper-case? (string-upper-case? " "))
|
||||||
|
(htdp-test false 'string-upper-case? (string-upper-case? "AB\t"))
|
||||||
|
(htdp-test true 'string-upper-case? (string-upper-case? "ABC"))
|
||||||
|
|
||||||
|
(htdp-test false 'string-lower-case? (string-lower-case? " "))
|
||||||
|
(htdp-test false 'string-lower-case? (string-lower-case? "ab\t"))
|
||||||
|
(htdp-test true 'string-lower-case? (string-lower-case? "abc"))
|
||||||
|
|
||||||
|
|
|
@ -44,3 +44,15 @@
|
||||||
|
|
||||||
(htdp-top-pop 1)
|
(htdp-top-pop 1)
|
||||||
(htdp-teachpack-pop)
|
(htdp-teachpack-pop)
|
||||||
|
|
||||||
|
(htdp-err/rt-test (+) exn:application:arity?)
|
||||||
|
(htdp-err/rt-test (+ 1) exn:application:arity?)
|
||||||
|
(htdp-err/rt-test (*) exn:application:arity?)
|
||||||
|
(htdp-err/rt-test (* 1) exn:application:arity?)
|
||||||
|
(htdp-err/rt-test (-) exn:application:arity?)
|
||||||
|
(htdp-err/rt-test (/) exn:application:arity?)
|
||||||
|
(htdp-err/rt-test (/ 1) exn:application:arity?)
|
||||||
|
|
||||||
|
(err/rt-test (+) exn:application:arity?)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -9,3 +9,4 @@
|
||||||
(htdp-syntax-test #'(lambda (x) 10))
|
(htdp-syntax-test #'(lambda (x) 10))
|
||||||
|
|
||||||
(htdp-syntax-test #'(lambda (f) (f f)))
|
(htdp-syntax-test #'(lambda (f) (f f)))
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,6 @@
|
||||||
|
|
||||||
;; These are true for beginner, but the operators are syntax, so
|
;; These are true for beginner, but the operators are syntax, so
|
||||||
;; arity-test doesn't work.
|
;; arity-test doesn't work.
|
||||||
(arity-test + 2 -1)
|
|
||||||
(arity-test * 2 -1)
|
|
||||||
(arity-test / 2 -1)
|
|
||||||
(arity-test - 1 -1)
|
|
||||||
|
|
||||||
(htdp-syntax-test #'local)
|
(htdp-syntax-test #'local)
|
||||||
(htdp-syntax-test #'(local))
|
(htdp-syntax-test #'(local))
|
||||||
|
@ -108,3 +104,11 @@
|
||||||
|
|
||||||
(htdp-err/rt-test (build-string 2 add1)
|
(htdp-err/rt-test (build-string 2 add1)
|
||||||
"build-string : second argument must be a <procedure> that produces a <char>, given #<procedure:add1>, which produced 1 for 0")
|
"build-string : second argument must be a <procedure> that produces a <char>, given #<procedure:add1>, which produced 1 for 0")
|
||||||
|
|
||||||
|
(htdp-test 0 '+ (+))
|
||||||
|
(htdp-test 1 '+ (+ 1))
|
||||||
|
(htdp-test 1 '* (*))
|
||||||
|
(htdp-test 1 '* (* 1))
|
||||||
|
;(htdp-test (-) exn:application:arity?)
|
||||||
|
;(htdp-err/rt-test (/) exn:application:arity?)
|
||||||
|
;(htdp-test 1 (/ 1) exn:application:arity?)
|
||||||
|
|
|
@ -11,6 +11,6 @@
|
||||||
(test 'id f11 'id)
|
(test 'id f11 'id)
|
||||||
|
|
||||||
(err/rt-test (1 2 3))
|
(err/rt-test (1 2 3))
|
||||||
(err/rt-test (+) exn:application:arity?)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#lang scheme/base
|
#lang scheme/base
|
||||||
|
|
||||||
(require tests/eli-tester profile/analyzer scheme/match scheme/list)
|
(require tests/eli-tester profile/structs profile/analyzer
|
||||||
|
scheme/match scheme/list "topsort.ss")
|
||||||
|
|
||||||
(define A '(A . #f))
|
(define A '(A . #f))
|
||||||
(define B '(B . #f))
|
(define B '(B . #f))
|
||||||
|
@ -36,6 +37,8 @@
|
||||||
|
|
||||||
(test
|
(test
|
||||||
|
|
||||||
|
do (topological-sort-tests)
|
||||||
|
|
||||||
(match (analyze `(10
|
(match (analyze `(10
|
||||||
[0 0 ,A]
|
[0 0 ,A]
|
||||||
[0 1 ,A]))
|
[0 1 ,A]))
|
||||||
|
|
57
collects/tests/profile/topsort.ss
Normal file
57
collects/tests/profile/topsort.ss
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
#lang scheme/base
|
||||||
|
|
||||||
|
(require tests/eli-tester profile/structs profile/utils
|
||||||
|
scheme/list scheme/match)
|
||||||
|
|
||||||
|
(define (connect! from to)
|
||||||
|
(define edge (make-edge 0 from 0 to 0))
|
||||||
|
(set-node-callers! to (cons edge (node-callers to )))
|
||||||
|
(set-node-callees! from (cons edge (node-callees from))))
|
||||||
|
|
||||||
|
(define (sort-graph . edges)
|
||||||
|
(define names (remove-duplicates (remq* '(->) (append* edges))))
|
||||||
|
(define nodes (map (lambda (sym) (make-node sym #f '() 0 0 '() '())) names))
|
||||||
|
(define ->node (make-immutable-hasheq (map cons names nodes)))
|
||||||
|
(for ([edges edges])
|
||||||
|
(let loop ([xs edges])
|
||||||
|
(match xs
|
||||||
|
[(list from '-> to '-> _ ...)
|
||||||
|
(connect! (hash-ref ->node from) (hash-ref ->node to))
|
||||||
|
(loop (cddr xs))]
|
||||||
|
[(list from '-> to _ ...)
|
||||||
|
(connect! (hash-ref ->node from) (hash-ref ->node to))
|
||||||
|
(loop (cdddr xs))]
|
||||||
|
['() (void)])))
|
||||||
|
(map (lambda (nodes) (map node-id nodes)) (topological-sort (car nodes))))
|
||||||
|
|
||||||
|
(define (same-levels graph levels)
|
||||||
|
(define sorted (sort-graph graph))
|
||||||
|
(define (set=? l1 l2) (null? (append (remq* l1 l2) (remq* l2 l1))))
|
||||||
|
(andmap set=? sorted levels))
|
||||||
|
|
||||||
|
(provide topological-sort-tests)
|
||||||
|
(define (topological-sort-tests)
|
||||||
|
(test
|
||||||
|
|
||||||
|
(same-levels '(* -> A -> B)
|
||||||
|
'((A) (B)))
|
||||||
|
|
||||||
|
(same-levels '(* -> A -> B -> *
|
||||||
|
* -> B -> A -> *)
|
||||||
|
'((A B)))
|
||||||
|
|
||||||
|
(same-levels '(* -> A -> B -> C
|
||||||
|
* -> C)
|
||||||
|
'((A) (B) (C)))
|
||||||
|
|
||||||
|
(same-levels '(* -> A
|
||||||
|
* -> B
|
||||||
|
B -> B)
|
||||||
|
'((A B)))
|
||||||
|
|
||||||
|
(same-levels '(* -> A
|
||||||
|
* -> B -> C
|
||||||
|
* -> C -> B)
|
||||||
|
'((A B C)))
|
||||||
|
|
||||||
|
))
|
|
@ -100,6 +100,8 @@
|
||||||
[(All (a ...) (a ... -> Number))
|
[(All (a ...) (a ... -> Number))
|
||||||
(-polydots (a) ((list) [a a] . ->... . N))]
|
(-polydots (a) ((list) [a a] . ->... . N))]
|
||||||
|
|
||||||
|
[(Any -> Boolean : Number) (make-pred-ty -Number)]
|
||||||
|
|
||||||
))
|
))
|
||||||
|
|
||||||
;; FIXME - add tests for parse-values-type, parse-tc-results
|
;; FIXME - add tests for parse-values-type, parse-tc-results
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
|
|
||||||
#lang scheme/unit
|
#lang scheme/unit
|
||||||
|
|
||||||
(require mzlib/etc)
|
(require scheme/gui/base
|
||||||
|
scheme/class)
|
||||||
|
|
||||||
(require "common-sig.ss")
|
(require "common-sig.ss")
|
||||||
|
|
||||||
|
@ -445,7 +446,7 @@
|
||||||
(let ([make-append-boxes
|
(let ([make-append-boxes
|
||||||
(lambda (wcomb hcomb fxoffset fyoffset rxoffset ryoffset
|
(lambda (wcomb hcomb fxoffset fyoffset rxoffset ryoffset
|
||||||
combine-ascent combine-descent)
|
combine-ascent combine-descent)
|
||||||
(rec *-append
|
(letrec ([*-append
|
||||||
(lambda (sep . args)
|
(lambda (sep . args)
|
||||||
(unless (number? sep)
|
(unless (number? sep)
|
||||||
(set! args (cons sep args))
|
(set! args (cons sep args))
|
||||||
|
@ -486,7 +487,8 @@
|
||||||
(list (make-child first dx1 dy1 1 1)
|
(list (make-child first dx1 dy1 1 1)
|
||||||
(make-child rest dx2 dy2 1 1))
|
(make-child rest dx2 dy2 1 1))
|
||||||
#f
|
#f
|
||||||
(or (pict-last rest) rest)))])))))]
|
(or (pict-last rest) rest)))])))])
|
||||||
|
*-append))]
|
||||||
[2max (lambda (a b c . rest) (max a b))]
|
[2max (lambda (a b c . rest) (max a b))]
|
||||||
[zero (lambda (fw fh rw rh sep fd1 fd2 rd1 rd2 . args) 0)]
|
[zero (lambda (fw fh rw rh sep fd1 fd2 rd1 rd2 . args) 0)]
|
||||||
[fv (lambda (a b . args) a)]
|
[fv (lambda (a b . args) a)]
|
||||||
|
@ -895,14 +897,15 @@
|
||||||
(lambda (x)
|
(lambda (x)
|
||||||
(and x #t))))
|
(and x #t))))
|
||||||
|
|
||||||
(define colorize
|
(define (colorize p color)
|
||||||
(case-lambda
|
(unless (or (string? color)
|
||||||
[(p color)
|
(is-a? color color%))
|
||||||
|
(error 'colorize "expected a color, given ~e" color))
|
||||||
(if (black-and-white)
|
(if (black-and-white)
|
||||||
p
|
p
|
||||||
(extend-pict
|
(extend-pict
|
||||||
p 0 0 0 0 0
|
p 0 0 0 0 0
|
||||||
`(color ,color ,(pict-draw p))))]))
|
`(color ,color ,(pict-draw p)))))
|
||||||
|
|
||||||
(define (optimize s)
|
(define (optimize s)
|
||||||
(let o-loop ([s s][dx 0][dy 0])
|
(let o-loop ([s s][dx 0][dy 0])
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
Version 4.1.5.6
|
||||||
|
Added identifier-prune-lexical-context and quote-syntax/prune
|
||||||
|
|
||||||
|
Version 4.1.5.4
|
||||||
|
Changed visiting of modules at phase N to happen only when compilation
|
||||||
|
at phase N starts
|
||||||
|
|
||||||
Version 4.1.5.3
|
Version 4.1.5.3
|
||||||
Changed provide to convert an exported rename transformer to its
|
Changed provide to convert an exported rename transformer to its
|
||||||
free-identifier=? target
|
free-identifier=? target
|
||||||
|
|
2
src/configure
vendored
2
src/configure
vendored
|
@ -5787,7 +5787,7 @@ case $OS in
|
||||||
DYN_CFLAGS="-fPIC"
|
DYN_CFLAGS="-fPIC"
|
||||||
;;
|
;;
|
||||||
OpenBSD)
|
OpenBSD)
|
||||||
LIBS="$LIBS -rdynamic"
|
LIBS="$LIBS -rdynamic -Wl,--export-dynamic"
|
||||||
;;
|
;;
|
||||||
NetBSD)
|
NetBSD)
|
||||||
LIBS="$LIBS -rdynamic"
|
LIBS="$LIBS -rdynamic"
|
||||||
|
|
|
@ -521,7 +521,7 @@ case $OS in
|
||||||
DYN_CFLAGS="-fPIC"
|
DYN_CFLAGS="-fPIC"
|
||||||
;;
|
;;
|
||||||
OpenBSD)
|
OpenBSD)
|
||||||
LIBS="$LIBS -rdynamic"
|
LIBS="$LIBS -rdynamic -Wl,--export-dynamic"
|
||||||
;;
|
;;
|
||||||
NetBSD)
|
NetBSD)
|
||||||
LIBS="$LIBS -rdynamic"
|
LIBS="$LIBS -rdynamic"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,53,46,53,50,0,0,0,1,0,0,3,0,12,0,
|
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,53,46,54,50,0,0,0,1,0,0,3,0,12,0,
|
||||||
17,0,20,0,27,0,40,0,47,0,51,0,58,0,63,0,68,0,72,0,78,
|
17,0,20,0,27,0,40,0,47,0,51,0,58,0,63,0,68,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,
|
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,1,1,27,1,35,1,43,1,53,1,89,1,128,1,167,
|
177,0,179,0,193,0,1,1,27,1,35,1,43,1,53,1,89,1,128,1,167,
|
||||||
|
@ -14,13 +14,13 @@
|
||||||
115,61,120,73,108,101,116,114,101,99,45,118,97,108,117,101,115,66,108,97,109,
|
115,61,120,73,108,101,116,114,101,99,45,118,97,108,117,101,115,66,108,97,109,
|
||||||
98,100,97,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,
|
98,100,97,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,
|
||||||
45,107,101,121,61,118,73,100,101,102,105,110,101,45,118,97,108,117,101,115,97,
|
45,107,101,121,61,118,73,100,101,102,105,110,101,45,118,97,108,117,101,115,97,
|
||||||
35,11,8,168,228,95,159,2,15,35,35,159,2,14,35,35,159,2,14,35,35,
|
35,11,8,136,232,95,159,2,15,35,35,159,2,14,35,35,159,2,14,35,35,
|
||||||
16,20,2,3,2,1,2,5,2,1,2,6,2,1,2,7,2,1,2,8,2,
|
16,20,2,3,2,1,2,5,2,1,2,6,2,1,2,7,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,
|
1,2,9,2,1,2,10,2,1,2,4,2,1,2,11,2,1,2,12,2,1,
|
||||||
97,36,11,8,168,228,93,159,2,14,35,36,16,2,2,2,161,2,1,36,2,
|
97,36,11,8,136,232,93,159,2,14,35,36,16,2,2,2,161,2,1,36,2,
|
||||||
2,2,1,2,2,96,11,11,8,168,228,16,0,96,37,11,8,168,228,16,0,
|
2,2,1,2,2,96,11,11,8,136,232,16,0,96,37,11,8,136,232,16,0,
|
||||||
13,16,4,35,29,11,11,2,1,11,18,16,2,99,64,104,101,114,101,8,31,
|
13,16,4,35,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,47,57,0,0,95,9,8,224,47,57,
|
8,30,8,29,8,28,8,27,93,8,224,15,58,0,0,95,9,8,224,15,58,
|
||||||
0,0,2,1,27,248,22,135,4,23,196,1,249,22,128,4,80,158,38,35,251,
|
0,0,2,1,27,248,22,135,4,23,196,1,249,22,128,4,80,158,38,35,251,
|
||||||
22,75,2,16,248,22,90,23,200,2,12,249,22,65,2,17,248,22,92,23,202,
|
22,75,2,16,248,22,90,23,200,2,12,249,22,65,2,17,248,22,92,23,202,
|
||||||
1,27,248,22,135,4,23,196,1,249,22,128,4,80,158,38,35,251,22,75,2,
|
1,27,248,22,135,4,23,196,1,249,22,128,4,80,158,38,35,251,22,75,2,
|
||||||
|
@ -29,16 +29,16 @@
|
||||||
36,28,248,22,73,248,22,67,23,195,2,248,22,66,193,249,22,128,4,80,158,
|
36,28,248,22,73,248,22,67,23,195,2,248,22,66,193,249,22,128,4,80,158,
|
||||||
38,35,251,22,75,2,16,248,22,66,23,200,2,249,22,65,2,12,248,22,67,
|
38,35,251,22,75,2,16,248,22,66,23,200,2,249,22,65,2,12,248,22,67,
|
||||||
23,202,1,11,18,16,2,101,10,8,31,8,30,8,29,8,28,8,27,16,4,
|
23,202,1,11,18,16,2,101,10,8,31,8,30,8,29,8,28,8,27,16,4,
|
||||||
11,11,2,18,3,1,7,101,110,118,57,56,49,54,16,4,11,11,2,19,3,
|
11,11,2,18,3,1,7,101,110,118,57,56,51,50,16,4,11,11,2,19,3,
|
||||||
1,7,101,110,118,57,56,49,55,93,8,224,48,57,0,0,95,9,8,224,48,
|
1,7,101,110,118,57,56,51,51,93,8,224,16,58,0,0,95,9,8,224,16,
|
||||||
57,0,0,2,1,27,248,22,67,248,22,135,4,23,197,1,28,248,22,73,23,
|
58,0,0,2,1,27,248,22,67,248,22,135,4,23,197,1,28,248,22,73,23,
|
||||||
194,2,20,15,159,36,35,36,28,248,22,73,248,22,67,23,195,2,248,22,66,
|
194,2,20,15,159,36,35,36,28,248,22,73,248,22,67,23,195,2,248,22,66,
|
||||||
193,249,22,128,4,80,158,38,35,250,22,75,2,20,248,22,75,249,22,75,248,
|
193,249,22,128,4,80,158,38,35,250,22,75,2,20,248,22,75,249,22,75,248,
|
||||||
22,75,2,21,248,22,66,23,202,2,251,22,75,2,16,2,21,2,21,249,22,
|
22,75,2,21,248,22,66,23,202,2,251,22,75,2,16,2,21,2,21,249,22,
|
||||||
65,2,4,248,22,67,23,205,1,18,16,2,101,11,8,31,8,30,8,29,8,
|
65,2,4,248,22,67,23,205,1,18,16,2,101,11,8,31,8,30,8,29,8,
|
||||||
28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,57,56,49,57,16,4,
|
28,8,27,16,4,11,11,2,18,3,1,7,101,110,118,57,56,51,53,16,4,
|
||||||
11,11,2,19,3,1,7,101,110,118,57,56,50,48,93,8,224,49,57,0,0,
|
11,11,2,19,3,1,7,101,110,118,57,56,51,54,93,8,224,17,58,0,0,
|
||||||
95,9,8,224,49,57,0,0,2,1,248,22,135,4,193,27,248,22,135,4,194,
|
95,9,8,224,17,58,0,0,2,1,248,22,135,4,193,27,248,22,135,4,194,
|
||||||
249,22,65,248,22,75,248,22,66,196,248,22,67,195,27,248,22,67,248,22,135,
|
249,22,65,248,22,75,248,22,66,196,248,22,67,195,27,248,22,67,248,22,135,
|
||||||
4,23,197,1,249,22,128,4,80,158,38,35,28,248,22,53,248,22,129,4,248,
|
4,23,197,1,249,22,128,4,80,158,38,35,28,248,22,53,248,22,129,4,248,
|
||||||
22,66,23,198,2,27,249,22,2,32,0,89,162,8,44,36,42,9,222,33,39,
|
22,66,23,198,2,27,249,22,2,32,0,89,162,8,44,36,42,9,222,33,39,
|
||||||
|
@ -62,15 +62,15 @@
|
||||||
102,105,114,115,116,11,2,24,201,250,22,76,2,20,9,248,22,67,203,27,248,
|
102,105,114,115,116,11,2,24,201,250,22,76,2,20,9,248,22,67,203,27,248,
|
||||||
22,67,248,22,135,4,23,197,1,28,248,22,73,23,194,2,20,15,159,36,35,
|
22,67,248,22,135,4,23,197,1,28,248,22,73,23,194,2,20,15,159,36,35,
|
||||||
36,249,22,128,4,80,158,38,35,27,248,22,135,4,248,22,66,23,198,2,28,
|
36,249,22,128,4,80,158,38,35,27,248,22,135,4,248,22,66,23,198,2,28,
|
||||||
249,22,164,8,62,61,62,248,22,129,4,248,22,90,23,197,2,250,22,75,2,
|
249,22,165,8,62,61,62,248,22,129,4,248,22,90,23,197,2,250,22,75,2,
|
||||||
20,248,22,75,249,22,75,21,93,2,25,248,22,66,199,250,22,76,2,3,249,
|
20,248,22,75,249,22,75,21,93,2,25,248,22,66,199,250,22,76,2,3,249,
|
||||||
22,75,2,25,249,22,75,248,22,99,203,2,25,248,22,67,202,251,22,75,2,
|
22,75,2,25,249,22,75,248,22,99,203,2,25,248,22,67,202,251,22,75,2,
|
||||||
16,28,249,22,164,8,248,22,129,4,248,22,66,23,201,2,64,101,108,115,101,
|
16,28,249,22,165,8,248,22,129,4,248,22,66,23,201,2,64,101,108,115,101,
|
||||||
10,248,22,66,23,198,2,250,22,76,2,20,9,248,22,67,23,201,1,249,22,
|
10,248,22,66,23,198,2,250,22,76,2,20,9,248,22,67,23,201,1,249,22,
|
||||||
65,2,3,248,22,67,23,203,1,100,8,31,8,30,8,29,8,28,8,27,16,
|
65,2,3,248,22,67,23,203,1,100,8,31,8,30,8,29,8,28,8,27,16,
|
||||||
4,11,11,2,18,3,1,7,101,110,118,57,56,52,50,16,4,11,11,2,19,
|
4,11,11,2,18,3,1,7,101,110,118,57,56,53,56,16,4,11,11,2,19,
|
||||||
3,1,7,101,110,118,57,56,52,51,93,8,224,50,57,0,0,18,16,2,158,
|
3,1,7,101,110,118,57,56,53,57,93,8,224,18,58,0,0,18,16,2,158,
|
||||||
94,10,64,118,111,105,100,8,47,95,9,8,224,50,57,0,0,2,1,27,248,
|
94,10,64,118,111,105,100,8,47,95,9,8,224,18,58,0,0,2,1,27,248,
|
||||||
22,67,248,22,135,4,196,249,22,128,4,80,158,38,35,28,248,22,53,248,22,
|
22,67,248,22,135,4,196,249,22,128,4,80,158,38,35,28,248,22,53,248,22,
|
||||||
129,4,248,22,66,197,250,22,75,2,26,248,22,75,248,22,66,199,248,22,90,
|
129,4,248,22,66,197,250,22,75,2,26,248,22,75,248,22,66,199,248,22,90,
|
||||||
198,27,248,22,129,4,248,22,66,197,250,22,75,2,26,248,22,75,248,22,66,
|
198,27,248,22,129,4,248,22,66,197,250,22,75,2,26,248,22,75,248,22,66,
|
||||||
|
@ -100,13 +100,13 @@
|
||||||
EVAL_ONE_SIZED_STR((char *)expr, 2048);
|
EVAL_ONE_SIZED_STR((char *)expr, 2048);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,53,46,53,59,0,0,0,1,0,0,13,0,18,0,
|
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,53,46,54,59,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,
|
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,154,1,
|
0,248,0,6,1,12,1,26,1,31,1,41,1,49,1,77,1,109,1,154,1,
|
||||||
199,1,223,1,6,2,8,2,65,2,155,3,196,3,31,5,135,5,239,5,100,
|
199,1,223,1,6,2,8,2,65,2,155,3,196,3,31,5,135,5,239,5,100,
|
||||||
6,114,6,148,6,164,6,14,8,28,8,191,8,194,9,194,10,201,10,208,10,
|
6,114,6,148,6,164,6,14,8,28,8,191,8,194,9,194,10,201,10,209,10,
|
||||||
215,10,90,11,103,11,58,12,160,12,173,12,195,12,147,13,51,14,123,15,131,
|
217,10,92,11,105,11,60,12,162,12,175,12,197,12,149,13,53,14,125,15,134,
|
||||||
15,139,15,165,15,20,16,0,0,9,19,0,0,72,112,97,116,104,45,115,116,
|
15,143,15,169,15,24,16,0,0,13,19,0,0,72,112,97,116,104,45,115,116,
|
||||||
114,105,110,103,63,64,98,115,98,115,76,110,111,114,109,97,108,45,99,97,115,
|
114,105,110,103,63,64,98,115,98,115,76,110,111,114,109,97,108,45,99,97,115,
|
||||||
101,45,112,97,116,104,74,45,99,104,101,99,107,45,114,101,108,112,97,116,104,
|
101,45,112,97,116,104,74,45,99,104,101,99,107,45,114,101,108,112,97,116,104,
|
||||||
77,45,99,104,101,99,107,45,99,111,108,108,101,99,116,105,111,110,75,99,111,
|
77,45,99,104,101,99,107,45,99,111,108,108,101,99,116,105,111,110,75,99,111,
|
||||||
|
@ -132,222 +132,222 @@
|
||||||
116,101,32,115,116,114,105,110,103,6,36,36,99,97,110,110,111,116,32,97,100,
|
116,101,32,115,116,114,105,110,103,6,36,36,99,97,110,110,111,116,32,97,100,
|
||||||
100,32,97,32,115,117,102,102,105,120,32,116,111,32,97,32,114,111,111,116,32,
|
100,32,97,32,115,117,102,102,105,120,32,116,111,32,97,32,114,111,111,116,32,
|
||||||
112,97,116,104,58,32,5,0,27,20,14,159,80,158,36,50,250,80,158,39,51,
|
112,97,116,104,58,32,5,0,27,20,14,159,80,158,36,50,250,80,158,39,51,
|
||||||
249,22,27,11,80,158,41,50,22,184,12,10,248,22,157,5,23,196,2,28,248,
|
249,22,27,11,80,158,41,50,22,185,12,10,248,22,158,5,23,196,2,28,248,
|
||||||
22,154,6,23,194,2,12,87,94,248,22,168,8,23,194,1,248,80,159,37,53,
|
22,155,6,23,194,2,12,87,94,248,22,169,8,23,194,1,248,80,159,37,53,
|
||||||
36,195,28,248,22,73,23,195,2,9,27,248,22,66,23,196,2,27,28,248,22,
|
36,195,28,248,22,73,23,195,2,9,27,248,22,66,23,196,2,27,28,248,22,
|
||||||
165,13,23,195,2,23,194,1,28,248,22,164,13,23,195,2,249,22,166,13,23,
|
166,13,23,195,2,23,194,1,28,248,22,165,13,23,195,2,249,22,167,13,23,
|
||||||
196,1,250,80,158,42,48,248,22,180,13,2,19,11,10,250,80,158,40,48,248,
|
196,1,250,80,158,42,48,248,22,181,13,2,19,11,10,250,80,158,40,48,248,
|
||||||
22,180,13,2,19,23,197,1,10,28,23,193,2,249,22,65,248,22,168,13,249,
|
22,181,13,2,19,23,197,1,10,28,23,193,2,249,22,65,248,22,169,13,249,
|
||||||
22,166,13,23,198,1,247,22,181,13,27,248,22,67,23,200,1,28,248,22,73,
|
22,167,13,23,198,1,247,22,182,13,27,248,22,67,23,200,1,28,248,22,73,
|
||||||
23,194,2,9,27,248,22,66,23,195,2,27,28,248,22,165,13,23,195,2,23,
|
23,194,2,9,27,248,22,66,23,195,2,27,28,248,22,166,13,23,195,2,23,
|
||||||
194,1,28,248,22,164,13,23,195,2,249,22,166,13,23,196,1,250,80,158,47,
|
194,1,28,248,22,165,13,23,195,2,249,22,167,13,23,196,1,250,80,158,47,
|
||||||
48,248,22,180,13,2,19,11,10,250,80,158,45,48,248,22,180,13,2,19,23,
|
48,248,22,181,13,2,19,11,10,250,80,158,45,48,248,22,181,13,2,19,23,
|
||||||
197,1,10,28,23,193,2,249,22,65,248,22,168,13,249,22,166,13,23,198,1,
|
197,1,10,28,23,193,2,249,22,65,248,22,169,13,249,22,167,13,23,198,1,
|
||||||
247,22,181,13,248,80,159,45,52,36,248,22,67,23,199,1,87,94,23,193,1,
|
247,22,182,13,248,80,159,45,52,36,248,22,67,23,199,1,87,94,23,193,1,
|
||||||
248,80,159,43,52,36,248,22,67,23,197,1,87,94,23,193,1,27,248,22,67,
|
248,80,159,43,52,36,248,22,67,23,197,1,87,94,23,193,1,27,248,22,67,
|
||||||
23,198,1,28,248,22,73,23,194,2,9,27,248,22,66,23,195,2,27,28,248,
|
23,198,1,28,248,22,73,23,194,2,9,27,248,22,66,23,195,2,27,28,248,
|
||||||
22,165,13,23,195,2,23,194,1,28,248,22,164,13,23,195,2,249,22,166,13,
|
22,166,13,23,195,2,23,194,1,28,248,22,165,13,23,195,2,249,22,167,13,
|
||||||
23,196,1,250,80,158,45,48,248,22,180,13,2,19,11,10,250,80,158,43,48,
|
23,196,1,250,80,158,45,48,248,22,181,13,2,19,11,10,250,80,158,43,48,
|
||||||
248,22,180,13,2,19,23,197,1,10,28,23,193,2,249,22,65,248,22,168,13,
|
248,22,181,13,2,19,23,197,1,10,28,23,193,2,249,22,65,248,22,169,13,
|
||||||
249,22,166,13,23,198,1,247,22,181,13,248,80,159,43,52,36,248,22,67,23,
|
249,22,167,13,23,198,1,247,22,182,13,248,80,159,43,52,36,248,22,67,23,
|
||||||
199,1,248,80,159,41,52,36,248,22,67,196,27,248,22,141,13,23,195,2,28,
|
199,1,248,80,159,41,52,36,248,22,67,196,27,248,22,142,13,23,195,2,28,
|
||||||
23,193,2,192,87,94,23,193,1,28,248,22,159,6,23,195,2,27,248,22,163,
|
23,193,2,192,87,94,23,193,1,28,248,22,160,6,23,195,2,27,248,22,164,
|
||||||
13,195,28,192,192,248,22,164,13,195,11,87,94,28,28,248,22,142,13,23,195,
|
13,195,28,192,192,248,22,165,13,195,11,87,94,28,28,248,22,143,13,23,195,
|
||||||
2,10,27,248,22,141,13,23,196,2,28,23,193,2,192,87,94,23,193,1,28,
|
2,10,27,248,22,142,13,23,196,2,28,23,193,2,192,87,94,23,193,1,28,
|
||||||
248,22,159,6,23,196,2,27,248,22,163,13,23,197,2,28,23,193,2,192,87,
|
248,22,160,6,23,196,2,27,248,22,164,13,23,197,2,28,23,193,2,192,87,
|
||||||
94,23,193,1,248,22,164,13,23,197,2,11,12,250,22,132,9,76,110,111,114,
|
94,23,193,1,248,22,165,13,23,197,2,11,12,250,22,133,9,76,110,111,114,
|
||||||
109,97,108,45,112,97,116,104,45,99,97,115,101,6,42,42,112,97,116,104,32,
|
109,97,108,45,112,97,116,104,45,99,97,115,101,6,42,42,112,97,116,104,32,
|
||||||
40,102,111,114,32,97,110,121,32,115,121,115,116,101,109,41,32,111,114,32,118,
|
40,102,111,114,32,97,110,121,32,115,121,115,116,101,109,41,32,111,114,32,118,
|
||||||
97,108,105,100,45,112,97,116,104,32,115,116,114,105,110,103,23,197,2,28,28,
|
97,108,105,100,45,112,97,116,104,32,115,116,114,105,110,103,23,197,2,28,28,
|
||||||
248,22,142,13,23,195,2,249,22,164,8,248,22,143,13,23,197,2,2,20,249,
|
248,22,143,13,23,195,2,249,22,165,8,248,22,144,13,23,197,2,2,20,249,
|
||||||
22,164,8,247,22,178,7,2,20,27,28,248,22,159,6,23,196,2,23,195,2,
|
22,165,8,247,22,179,7,2,20,27,28,248,22,160,6,23,196,2,23,195,2,
|
||||||
248,22,168,7,248,22,146,13,23,197,2,28,249,22,129,14,0,21,35,114,120,
|
248,22,169,7,248,22,147,13,23,197,2,28,249,22,130,14,0,21,35,114,120,
|
||||||
34,94,91,92,92,93,91,92,92,93,91,63,93,91,92,92,93,34,23,195,2,
|
34,94,91,92,92,93,91,92,92,93,91,63,93,91,92,92,93,34,23,195,2,
|
||||||
28,248,22,159,6,195,248,22,149,13,195,194,27,248,22,134,7,23,195,1,249,
|
28,248,22,160,6,195,248,22,150,13,195,194,27,248,22,135,7,23,195,1,249,
|
||||||
22,150,13,248,22,171,7,250,22,135,14,0,6,35,114,120,34,47,34,28,249,
|
22,151,13,248,22,172,7,250,22,136,14,0,6,35,114,120,34,47,34,28,249,
|
||||||
22,129,14,0,22,35,114,120,34,91,47,92,92,93,91,46,32,93,43,91,47,
|
22,130,14,0,22,35,114,120,34,91,47,92,92,93,91,46,32,93,43,91,47,
|
||||||
92,92,93,42,36,34,23,201,2,23,199,1,250,22,135,14,0,19,35,114,120,
|
92,92,93,42,36,34,23,201,2,23,199,1,250,22,136,14,0,19,35,114,120,
|
||||||
34,91,32,46,93,43,40,91,47,92,92,93,42,41,36,34,23,202,1,6,2,
|
34,91,32,46,93,43,40,91,47,92,92,93,42,41,36,34,23,202,1,6,2,
|
||||||
2,92,49,80,159,43,36,37,2,20,28,248,22,159,6,194,248,22,149,13,194,
|
2,92,49,80,159,43,36,37,2,20,28,248,22,160,6,194,248,22,150,13,194,
|
||||||
193,87,94,28,27,248,22,141,13,23,196,2,28,23,193,2,192,87,94,23,193,
|
193,87,94,28,27,248,22,142,13,23,196,2,28,23,193,2,192,87,94,23,193,
|
||||||
1,28,248,22,159,6,23,196,2,27,248,22,163,13,23,197,2,28,23,193,2,
|
1,28,248,22,160,6,23,196,2,27,248,22,164,13,23,197,2,28,23,193,2,
|
||||||
192,87,94,23,193,1,248,22,164,13,23,197,2,11,12,250,22,132,9,23,196,
|
192,87,94,23,193,1,248,22,165,13,23,197,2,11,12,250,22,133,9,23,196,
|
||||||
2,2,21,23,197,2,28,248,22,163,13,23,195,2,12,248,22,160,11,249,22,
|
2,2,21,23,197,2,28,248,22,164,13,23,195,2,12,248,22,161,11,249,22,
|
||||||
169,10,248,22,188,6,250,22,143,7,2,22,23,200,1,23,201,1,247,22,23,
|
170,10,248,22,189,6,250,22,144,7,2,22,23,200,1,23,201,1,247,22,23,
|
||||||
87,94,28,27,248,22,141,13,23,196,2,28,23,193,2,192,87,94,23,193,1,
|
87,94,28,27,248,22,142,13,23,196,2,28,23,193,2,192,87,94,23,193,1,
|
||||||
28,248,22,159,6,23,196,2,27,248,22,163,13,23,197,2,28,23,193,2,192,
|
28,248,22,160,6,23,196,2,27,248,22,164,13,23,197,2,28,23,193,2,192,
|
||||||
87,94,23,193,1,248,22,164,13,23,197,2,11,12,250,22,132,9,23,196,2,
|
87,94,23,193,1,248,22,165,13,23,197,2,11,12,250,22,133,9,23,196,2,
|
||||||
2,21,23,197,2,28,248,22,163,13,23,195,2,12,248,22,160,11,249,22,169,
|
2,21,23,197,2,28,248,22,164,13,23,195,2,12,248,22,161,11,249,22,170,
|
||||||
10,248,22,188,6,250,22,143,7,2,22,23,200,1,23,201,1,247,22,23,87,
|
10,248,22,189,6,250,22,144,7,2,22,23,200,1,23,201,1,247,22,23,87,
|
||||||
94,87,94,28,27,248,22,141,13,23,196,2,28,23,193,2,192,87,94,23,193,
|
94,87,94,28,27,248,22,142,13,23,196,2,28,23,193,2,192,87,94,23,193,
|
||||||
1,28,248,22,159,6,23,196,2,27,248,22,163,13,23,197,2,28,23,193,2,
|
1,28,248,22,160,6,23,196,2,27,248,22,164,13,23,197,2,28,23,193,2,
|
||||||
192,87,94,23,193,1,248,22,164,13,23,197,2,11,12,250,22,132,9,195,2,
|
192,87,94,23,193,1,248,22,165,13,23,197,2,11,12,250,22,133,9,195,2,
|
||||||
21,23,197,2,28,248,22,163,13,23,195,2,12,248,22,160,11,249,22,169,10,
|
21,23,197,2,28,248,22,164,13,23,195,2,12,248,22,161,11,249,22,170,10,
|
||||||
248,22,188,6,250,22,143,7,2,22,199,23,201,1,247,22,23,249,22,3,89,
|
248,22,189,6,250,22,144,7,2,22,199,23,201,1,247,22,23,249,22,3,89,
|
||||||
162,8,44,36,49,9,223,2,33,33,196,248,22,160,11,249,22,135,11,23,196,
|
162,8,44,36,49,9,223,2,33,33,196,248,22,161,11,249,22,136,11,23,196,
|
||||||
1,247,22,23,87,94,250,80,159,38,39,36,2,6,196,197,251,80,159,39,41,
|
1,247,22,23,87,94,250,80,159,38,39,36,2,6,196,197,251,80,159,39,41,
|
||||||
36,2,6,32,0,89,162,8,44,36,44,9,222,33,35,197,198,32,37,89,162,
|
36,2,6,32,0,89,162,8,44,36,44,9,222,33,35,197,198,32,37,89,162,
|
||||||
43,41,58,65,99,108,111,111,112,222,33,38,28,248,22,73,23,199,2,87,94,
|
43,41,58,65,99,108,111,111,112,222,33,38,28,248,22,73,23,199,2,87,94,
|
||||||
23,198,1,248,23,196,1,251,22,143,7,2,23,23,199,1,28,248,22,73,23,
|
23,198,1,248,23,196,1,251,22,144,7,2,23,23,199,1,28,248,22,73,23,
|
||||||
203,2,87,94,23,202,1,23,201,1,250,22,1,22,159,13,23,204,1,23,205,
|
203,2,87,94,23,202,1,23,201,1,250,22,1,22,160,13,23,204,1,23,205,
|
||||||
1,23,198,1,27,249,22,159,13,248,22,66,23,202,2,23,199,2,28,248,22,
|
1,23,198,1,27,249,22,160,13,248,22,66,23,202,2,23,199,2,28,248,22,
|
||||||
154,13,23,194,2,27,250,22,1,22,159,13,23,197,1,23,202,2,28,248,22,
|
155,13,23,194,2,27,250,22,1,22,160,13,23,197,1,23,202,2,28,248,22,
|
||||||
154,13,23,194,2,192,87,94,23,193,1,27,248,22,67,23,202,1,28,248,22,
|
155,13,23,194,2,192,87,94,23,193,1,27,248,22,67,23,202,1,28,248,22,
|
||||||
73,23,194,2,87,94,23,193,1,248,23,199,1,251,22,143,7,2,23,23,202,
|
73,23,194,2,87,94,23,193,1,248,23,199,1,251,22,144,7,2,23,23,202,
|
||||||
1,28,248,22,73,23,206,2,87,94,23,205,1,23,204,1,250,22,1,22,159,
|
1,28,248,22,73,23,206,2,87,94,23,205,1,23,204,1,250,22,1,22,160,
|
||||||
13,23,207,1,23,208,1,23,201,1,27,249,22,159,13,248,22,66,23,197,2,
|
13,23,207,1,23,208,1,23,201,1,27,249,22,160,13,248,22,66,23,197,2,
|
||||||
23,202,2,28,248,22,154,13,23,194,2,27,250,22,1,22,159,13,23,197,1,
|
23,202,2,28,248,22,155,13,23,194,2,27,250,22,1,22,160,13,23,197,1,
|
||||||
204,28,248,22,154,13,193,192,253,2,37,203,204,205,206,23,15,248,22,67,201,
|
204,28,248,22,155,13,193,192,253,2,37,203,204,205,206,23,15,248,22,67,201,
|
||||||
253,2,37,202,203,204,205,206,248,22,67,200,87,94,23,193,1,27,248,22,67,
|
253,2,37,202,203,204,205,206,248,22,67,200,87,94,23,193,1,27,248,22,67,
|
||||||
23,201,1,28,248,22,73,23,194,2,87,94,23,193,1,248,23,198,1,251,22,
|
23,201,1,28,248,22,73,23,194,2,87,94,23,193,1,248,23,198,1,251,22,
|
||||||
143,7,2,23,23,201,1,28,248,22,73,23,205,2,87,94,23,204,1,23,203,
|
144,7,2,23,23,201,1,28,248,22,73,23,205,2,87,94,23,204,1,23,203,
|
||||||
1,250,22,1,22,159,13,23,206,1,23,207,1,23,200,1,27,249,22,159,13,
|
1,250,22,1,22,160,13,23,206,1,23,207,1,23,200,1,27,249,22,160,13,
|
||||||
248,22,66,23,197,2,23,201,2,28,248,22,154,13,23,194,2,27,250,22,1,
|
248,22,66,23,197,2,23,201,2,28,248,22,155,13,23,194,2,27,250,22,1,
|
||||||
22,159,13,23,197,1,203,28,248,22,154,13,193,192,253,2,37,202,203,204,205,
|
22,160,13,23,197,1,203,28,248,22,155,13,193,192,253,2,37,202,203,204,205,
|
||||||
206,248,22,67,201,253,2,37,201,202,203,204,205,248,22,67,200,27,247,22,182,
|
206,248,22,67,201,253,2,37,201,202,203,204,205,248,22,67,200,27,247,22,183,
|
||||||
13,253,2,37,198,199,200,201,202,198,87,95,28,28,248,22,142,13,23,194,2,
|
13,253,2,37,198,199,200,201,202,198,87,95,28,28,248,22,143,13,23,194,2,
|
||||||
10,27,248,22,141,13,23,195,2,28,23,193,2,192,87,94,23,193,1,28,248,
|
10,27,248,22,142,13,23,195,2,28,23,193,2,192,87,94,23,193,1,28,248,
|
||||||
22,159,6,23,195,2,27,248,22,163,13,23,196,2,28,23,193,2,192,87,94,
|
22,160,6,23,195,2,27,248,22,164,13,23,196,2,28,23,193,2,192,87,94,
|
||||||
23,193,1,248,22,164,13,23,196,2,11,12,252,22,132,9,23,200,2,2,24,
|
23,193,1,248,22,165,13,23,196,2,11,12,252,22,133,9,23,200,2,2,24,
|
||||||
35,23,198,2,23,199,2,28,28,248,22,159,6,23,195,2,10,248,22,147,7,
|
35,23,198,2,23,199,2,28,28,248,22,160,6,23,195,2,10,248,22,148,7,
|
||||||
23,195,2,87,94,23,194,1,12,252,22,132,9,23,200,2,2,25,36,23,198,
|
23,195,2,87,94,23,194,1,12,252,22,133,9,23,200,2,2,25,36,23,198,
|
||||||
2,23,199,1,91,159,38,11,90,161,38,35,11,248,22,162,13,23,197,2,87,
|
2,23,199,1,91,159,38,11,90,161,38,35,11,248,22,163,13,23,197,2,87,
|
||||||
94,23,195,1,87,94,28,192,12,250,22,133,9,23,201,1,2,26,23,199,1,
|
94,23,195,1,87,94,28,192,12,250,22,134,9,23,201,1,2,26,23,199,1,
|
||||||
249,22,7,194,195,91,159,37,11,90,161,37,35,11,87,95,28,28,248,22,142,
|
249,22,7,194,195,91,159,37,11,90,161,37,35,11,87,95,28,28,248,22,143,
|
||||||
13,23,196,2,10,27,248,22,141,13,23,197,2,28,23,193,2,192,87,94,23,
|
13,23,196,2,10,27,248,22,142,13,23,197,2,28,23,193,2,192,87,94,23,
|
||||||
193,1,28,248,22,159,6,23,197,2,27,248,22,163,13,23,198,2,28,23,193,
|
193,1,28,248,22,160,6,23,197,2,27,248,22,164,13,23,198,2,28,23,193,
|
||||||
2,192,87,94,23,193,1,248,22,164,13,23,198,2,11,12,252,22,132,9,2,
|
2,192,87,94,23,193,1,248,22,165,13,23,198,2,11,12,252,22,133,9,2,
|
||||||
9,2,24,35,23,200,2,23,201,2,28,28,248,22,159,6,23,197,2,10,248,
|
9,2,24,35,23,200,2,23,201,2,28,28,248,22,160,6,23,197,2,10,248,
|
||||||
22,147,7,23,197,2,12,252,22,132,9,2,9,2,25,36,23,200,2,23,201,
|
22,148,7,23,197,2,12,252,22,133,9,2,9,2,25,36,23,200,2,23,201,
|
||||||
2,91,159,38,11,90,161,38,35,11,248,22,162,13,23,199,2,87,94,23,195,
|
2,91,159,38,11,90,161,38,35,11,248,22,163,13,23,199,2,87,94,23,195,
|
||||||
1,87,94,28,192,12,250,22,133,9,2,9,2,26,23,201,2,249,22,7,194,
|
1,87,94,28,192,12,250,22,134,9,2,9,2,26,23,201,2,249,22,7,194,
|
||||||
195,27,249,22,151,13,250,22,134,14,0,20,35,114,120,35,34,40,63,58,91,
|
195,27,249,22,152,13,250,22,135,14,0,20,35,114,120,35,34,40,63,58,91,
|
||||||
46,93,91,94,46,93,42,124,41,36,34,248,22,147,13,23,201,1,28,248,22,
|
46,93,91,94,46,93,42,124,41,36,34,248,22,148,13,23,201,1,28,248,22,
|
||||||
159,6,23,203,2,249,22,171,7,23,204,1,8,63,23,202,1,28,248,22,142,
|
160,6,23,203,2,249,22,172,7,23,204,1,8,63,23,202,1,28,248,22,143,
|
||||||
13,23,199,2,248,22,143,13,23,199,1,87,94,23,198,1,247,22,144,13,28,
|
13,23,199,2,248,22,144,13,23,199,1,87,94,23,198,1,247,22,145,13,28,
|
||||||
248,22,141,13,194,249,22,159,13,195,194,192,91,159,37,11,90,161,37,35,11,
|
248,22,142,13,194,249,22,160,13,195,194,192,91,159,37,11,90,161,37,35,11,
|
||||||
87,95,28,28,248,22,142,13,23,196,2,10,27,248,22,141,13,23,197,2,28,
|
87,95,28,28,248,22,143,13,23,196,2,10,27,248,22,142,13,23,197,2,28,
|
||||||
23,193,2,192,87,94,23,193,1,28,248,22,159,6,23,197,2,27,248,22,163,
|
23,193,2,192,87,94,23,193,1,28,248,22,160,6,23,197,2,27,248,22,164,
|
||||||
13,23,198,2,28,23,193,2,192,87,94,23,193,1,248,22,164,13,23,198,2,
|
13,23,198,2,28,23,193,2,192,87,94,23,193,1,248,22,165,13,23,198,2,
|
||||||
11,12,252,22,132,9,2,10,2,24,35,23,200,2,23,201,2,28,28,248,22,
|
11,12,252,22,133,9,2,10,2,24,35,23,200,2,23,201,2,28,28,248,22,
|
||||||
159,6,23,197,2,10,248,22,147,7,23,197,2,12,252,22,132,9,2,10,2,
|
160,6,23,197,2,10,248,22,148,7,23,197,2,12,252,22,133,9,2,10,2,
|
||||||
25,36,23,200,2,23,201,2,91,159,38,11,90,161,38,35,11,248,22,162,13,
|
25,36,23,200,2,23,201,2,91,159,38,11,90,161,38,35,11,248,22,163,13,
|
||||||
23,199,2,87,94,23,195,1,87,94,28,192,12,250,22,133,9,2,10,2,26,
|
23,199,2,87,94,23,195,1,87,94,28,192,12,250,22,134,9,2,10,2,26,
|
||||||
23,201,2,249,22,7,194,195,27,249,22,151,13,249,22,157,7,250,22,135,14,
|
23,201,2,249,22,7,194,195,27,249,22,152,13,249,22,158,7,250,22,136,14,
|
||||||
0,9,35,114,120,35,34,91,46,93,34,248,22,147,13,23,203,1,6,1,1,
|
0,9,35,114,120,35,34,91,46,93,34,248,22,148,13,23,203,1,6,1,1,
|
||||||
95,28,248,22,159,6,23,202,2,249,22,171,7,23,203,1,8,63,23,201,1,
|
95,28,248,22,160,6,23,202,2,249,22,172,7,23,203,1,8,63,23,201,1,
|
||||||
28,248,22,142,13,23,199,2,248,22,143,13,23,199,1,87,94,23,198,1,247,
|
28,248,22,143,13,23,199,2,248,22,144,13,23,199,1,87,94,23,198,1,247,
|
||||||
22,144,13,28,248,22,141,13,194,249,22,159,13,195,194,192,249,247,22,190,4,
|
22,145,13,28,248,22,142,13,194,249,22,160,13,195,194,192,249,247,22,191,4,
|
||||||
194,11,249,80,158,37,46,9,9,249,80,158,37,46,195,9,27,247,22,184,13,
|
194,11,249,80,159,37,46,36,9,9,249,80,159,37,46,36,195,9,27,247,22,
|
||||||
249,80,158,38,47,28,23,195,2,27,248,22,176,7,6,11,11,80,76,84,67,
|
185,13,249,80,158,38,47,28,23,195,2,27,248,22,177,7,6,11,11,80,76,
|
||||||
79,76,76,69,67,84,83,28,192,192,6,0,0,6,0,0,27,28,23,196,1,
|
84,67,79,76,76,69,67,84,83,28,192,192,6,0,0,6,0,0,27,28,23,
|
||||||
250,22,159,13,248,22,180,13,69,97,100,100,111,110,45,100,105,114,247,22,174,
|
196,1,250,22,160,13,248,22,181,13,69,97,100,100,111,110,45,100,105,114,247,
|
||||||
7,6,8,8,99,111,108,108,101,99,116,115,11,27,248,80,159,41,52,36,250,
|
22,175,7,6,8,8,99,111,108,108,101,99,116,115,11,27,248,80,159,41,52,
|
||||||
22,79,23,203,1,248,22,75,248,22,180,13,72,99,111,108,108,101,99,116,115,
|
36,250,22,79,23,203,1,248,22,75,248,22,181,13,72,99,111,108,108,101,99,
|
||||||
45,100,105,114,23,204,1,28,23,194,2,249,22,65,23,196,1,23,195,1,192,
|
116,115,45,100,105,114,23,204,1,28,23,194,2,249,22,65,23,196,1,23,195,
|
||||||
32,47,89,162,8,44,38,54,2,18,222,33,48,27,249,22,191,13,23,197,2,
|
1,192,32,47,89,162,8,44,38,54,2,18,222,33,48,27,249,22,128,14,23,
|
||||||
23,198,2,28,23,193,2,87,94,23,196,1,27,248,22,90,23,195,2,27,27,
|
197,2,23,198,2,28,23,193,2,87,94,23,196,1,27,248,22,90,23,195,2,
|
||||||
248,22,99,23,197,1,27,249,22,191,13,23,201,2,23,196,2,28,23,193,2,
|
27,27,248,22,99,23,197,1,27,249,22,128,14,23,201,2,23,196,2,28,23,
|
||||||
87,94,23,194,1,27,248,22,90,23,195,2,27,250,2,47,23,203,2,23,204,
|
193,2,87,94,23,194,1,27,248,22,90,23,195,2,27,250,2,47,23,203,2,
|
||||||
1,248,22,99,23,199,1,28,249,22,153,7,23,196,2,2,27,249,22,79,23,
|
23,204,1,248,22,99,23,199,1,28,249,22,154,7,23,196,2,2,27,249,22,
|
||||||
202,2,194,249,22,65,248,22,150,13,23,197,1,23,195,1,87,95,23,199,1,
|
79,23,202,2,194,249,22,65,248,22,151,13,23,197,1,23,195,1,87,95,23,
|
||||||
23,193,1,28,249,22,153,7,23,196,2,2,27,249,22,79,23,200,2,9,249,
|
199,1,23,193,1,28,249,22,154,7,23,196,2,2,27,249,22,79,23,200,2,
|
||||||
22,65,248,22,150,13,23,197,1,9,28,249,22,153,7,23,196,2,2,27,249,
|
9,249,22,65,248,22,151,13,23,197,1,9,28,249,22,154,7,23,196,2,2,
|
||||||
22,79,197,194,87,94,23,196,1,249,22,65,248,22,150,13,23,197,1,194,87,
|
27,249,22,79,197,194,87,94,23,196,1,249,22,65,248,22,151,13,23,197,1,
|
||||||
94,23,193,1,28,249,22,153,7,23,198,2,2,27,249,22,79,195,9,87,94,
|
194,87,94,23,193,1,28,249,22,154,7,23,198,2,2,27,249,22,79,195,9,
|
||||||
23,194,1,249,22,65,248,22,150,13,23,199,1,9,87,95,28,28,248,22,147,
|
87,94,23,194,1,249,22,65,248,22,151,13,23,199,1,9,87,95,28,28,248,
|
||||||
7,194,10,248,22,159,6,194,12,250,22,132,9,2,13,6,21,21,98,121,116,
|
22,148,7,194,10,248,22,160,6,194,12,250,22,133,9,2,13,6,21,21,98,
|
||||||
101,32,115,116,114,105,110,103,32,111,114,32,115,116,114,105,110,103,196,28,28,
|
121,116,101,32,115,116,114,105,110,103,32,111,114,32,115,116,114,105,110,103,196,
|
||||||
248,22,74,195,249,22,4,22,141,13,196,11,12,250,22,132,9,2,13,6,13,
|
28,28,248,22,74,195,249,22,4,22,142,13,196,11,12,250,22,133,9,2,13,
|
||||||
13,108,105,115,116,32,111,102,32,112,97,116,104,115,197,250,2,47,197,195,28,
|
6,13,13,108,105,115,116,32,111,102,32,112,97,116,104,115,197,250,2,47,197,
|
||||||
248,22,159,6,197,248,22,170,7,197,196,32,50,89,162,8,44,39,57,2,18,
|
195,28,248,22,160,6,197,248,22,171,7,197,196,32,50,89,162,8,44,39,57,
|
||||||
222,33,53,32,51,89,162,8,44,38,54,70,102,111,117,110,100,45,101,120,101,
|
2,18,222,33,53,32,51,89,162,8,44,38,54,70,102,111,117,110,100,45,101,
|
||||||
99,222,33,52,28,23,193,2,91,159,38,11,90,161,38,35,11,248,22,162,13,
|
120,101,99,222,33,52,28,23,193,2,91,159,38,11,90,161,38,35,11,248,22,
|
||||||
23,199,2,87,95,23,195,1,23,194,1,27,28,23,198,2,27,248,22,167,13,
|
163,13,23,199,2,87,95,23,195,1,23,194,1,27,28,23,198,2,27,248,22,
|
||||||
23,201,2,28,249,22,166,8,23,195,2,23,202,2,11,28,248,22,163,13,23,
|
168,13,23,201,2,28,249,22,167,8,23,195,2,23,202,2,11,28,248,22,164,
|
||||||
194,2,250,2,51,23,201,2,23,202,2,249,22,159,13,23,200,2,23,198,1,
|
13,23,194,2,250,2,51,23,201,2,23,202,2,249,22,160,13,23,200,2,23,
|
||||||
250,2,51,23,201,2,23,202,2,23,196,1,11,28,23,193,2,192,87,94,23,
|
198,1,250,2,51,23,201,2,23,202,2,23,196,1,11,28,23,193,2,192,87,
|
||||||
193,1,27,28,248,22,141,13,23,196,2,27,249,22,159,13,23,198,2,23,201,
|
94,23,193,1,27,28,248,22,142,13,23,196,2,27,249,22,160,13,23,198,2,
|
||||||
2,28,28,248,22,154,13,193,10,248,22,153,13,193,192,11,11,28,23,193,2,
|
23,201,2,28,28,248,22,155,13,193,10,248,22,154,13,193,192,11,11,28,23,
|
||||||
192,87,94,23,193,1,28,23,199,2,11,27,248,22,167,13,23,202,2,28,249,
|
193,2,192,87,94,23,193,1,28,23,199,2,11,27,248,22,168,13,23,202,2,
|
||||||
22,166,8,23,195,2,23,203,1,11,28,248,22,163,13,23,194,2,250,2,51,
|
28,249,22,167,8,23,195,2,23,203,1,11,28,248,22,164,13,23,194,2,250,
|
||||||
23,202,1,23,203,1,249,22,159,13,23,201,1,23,198,1,250,2,51,201,202,
|
2,51,23,202,1,23,203,1,249,22,160,13,23,201,1,23,198,1,250,2,51,
|
||||||
195,194,28,248,22,73,23,197,2,11,27,248,22,166,13,248,22,66,23,199,2,
|
201,202,195,194,28,248,22,73,23,197,2,11,27,248,22,167,13,248,22,66,23,
|
||||||
27,249,22,159,13,23,196,1,23,197,2,28,248,22,153,13,23,194,2,250,2,
|
199,2,27,249,22,160,13,23,196,1,23,197,2,28,248,22,154,13,23,194,2,
|
||||||
51,198,199,195,87,94,23,193,1,27,248,22,67,23,200,1,28,248,22,73,23,
|
250,2,51,198,199,195,87,94,23,193,1,27,248,22,67,23,200,1,28,248,22,
|
||||||
194,2,11,27,248,22,166,13,248,22,66,23,196,2,27,249,22,159,13,23,196,
|
73,23,194,2,11,27,248,22,167,13,248,22,66,23,196,2,27,249,22,160,13,
|
||||||
1,23,200,2,28,248,22,153,13,23,194,2,250,2,51,201,202,195,87,94,23,
|
23,196,1,23,200,2,28,248,22,154,13,23,194,2,250,2,51,201,202,195,87,
|
||||||
193,1,27,248,22,67,23,197,1,28,248,22,73,23,194,2,11,27,248,22,166,
|
94,23,193,1,27,248,22,67,23,197,1,28,248,22,73,23,194,2,11,27,248,
|
||||||
13,248,22,66,195,27,249,22,159,13,23,196,1,202,28,248,22,153,13,193,250,
|
22,167,13,248,22,66,195,27,249,22,160,13,23,196,1,202,28,248,22,154,13,
|
||||||
2,51,204,205,195,251,2,50,204,205,206,248,22,67,199,87,95,28,27,248,22,
|
193,250,2,51,204,205,195,251,2,50,204,205,206,248,22,67,199,87,95,28,27,
|
||||||
141,13,23,196,2,28,23,193,2,192,87,94,23,193,1,28,248,22,159,6,23,
|
248,22,142,13,23,196,2,28,23,193,2,192,87,94,23,193,1,28,248,22,160,
|
||||||
196,2,27,248,22,163,13,23,197,2,28,23,193,2,192,87,94,23,193,1,248,
|
6,23,196,2,27,248,22,164,13,23,197,2,28,23,193,2,192,87,94,23,193,
|
||||||
22,164,13,23,197,2,11,12,250,22,132,9,2,14,6,25,25,112,97,116,104,
|
1,248,22,165,13,23,197,2,11,12,250,22,133,9,2,14,6,25,25,112,97,
|
||||||
32,111,114,32,115,116,114,105,110,103,32,40,115,97,110,115,32,110,117,108,41,
|
116,104,32,111,114,32,115,116,114,105,110,103,32,40,115,97,110,115,32,110,117,
|
||||||
23,197,2,28,28,23,195,2,28,27,248,22,141,13,23,197,2,28,23,193,2,
|
108,41,23,197,2,28,28,23,195,2,28,27,248,22,142,13,23,197,2,28,23,
|
||||||
192,87,94,23,193,1,28,248,22,159,6,23,197,2,27,248,22,163,13,23,198,
|
193,2,192,87,94,23,193,1,28,248,22,160,6,23,197,2,27,248,22,164,13,
|
||||||
2,28,23,193,2,192,87,94,23,193,1,248,22,164,13,23,198,2,11,248,22,
|
23,198,2,28,23,193,2,192,87,94,23,193,1,248,22,165,13,23,198,2,11,
|
||||||
163,13,23,196,2,11,10,12,250,22,132,9,2,14,6,29,29,35,102,32,111,
|
248,22,164,13,23,196,2,11,10,12,250,22,133,9,2,14,6,29,29,35,102,
|
||||||
114,32,114,101,108,97,116,105,118,101,32,112,97,116,104,32,111,114,32,115,116,
|
32,111,114,32,114,101,108,97,116,105,118,101,32,112,97,116,104,32,111,114,32,
|
||||||
114,105,110,103,23,198,2,28,28,248,22,163,13,23,195,2,91,159,38,11,90,
|
115,116,114,105,110,103,23,198,2,28,28,248,22,164,13,23,195,2,91,159,38,
|
||||||
161,38,35,11,248,22,162,13,23,198,2,249,22,164,8,194,68,114,101,108,97,
|
11,90,161,38,35,11,248,22,163,13,23,198,2,249,22,165,8,194,68,114,101,
|
||||||
116,105,118,101,11,27,248,22,176,7,6,4,4,80,65,84,72,251,2,50,23,
|
108,97,116,105,118,101,11,27,248,22,177,7,6,4,4,80,65,84,72,251,2,
|
||||||
199,1,23,200,1,23,201,1,28,23,197,2,27,249,80,159,43,47,37,23,200,
|
50,23,199,1,23,200,1,23,201,1,28,23,197,2,27,249,80,159,43,47,37,
|
||||||
1,9,28,249,22,164,8,247,22,178,7,2,20,249,22,65,248,22,150,13,5,
|
23,200,1,9,28,249,22,165,8,247,22,179,7,2,20,249,22,65,248,22,151,
|
||||||
1,46,23,195,1,192,9,27,248,22,166,13,23,196,1,28,248,22,153,13,193,
|
13,5,1,46,23,195,1,192,9,27,248,22,167,13,23,196,1,28,248,22,154,
|
||||||
250,2,51,198,199,195,11,250,80,158,38,48,196,197,11,250,80,158,38,48,196,
|
13,193,250,2,51,198,199,195,11,250,80,159,38,48,36,196,197,11,250,80,159,
|
||||||
11,11,87,94,249,22,150,6,247,22,186,4,195,248,22,176,5,249,22,172,3,
|
38,48,36,196,11,11,87,94,249,22,151,6,247,22,187,4,195,248,22,177,5,
|
||||||
35,249,22,156,3,197,198,27,28,23,197,2,87,95,23,196,1,23,195,1,23,
|
249,22,172,3,35,249,22,156,3,197,198,27,28,23,197,2,87,95,23,196,1,
|
||||||
197,1,87,94,23,197,1,27,248,22,180,13,2,19,27,249,80,159,40,48,37,
|
23,195,1,23,197,1,87,94,23,197,1,27,248,22,181,13,2,19,27,249,80,
|
||||||
23,196,1,11,27,27,248,22,175,3,23,200,1,28,192,192,35,27,27,248,22,
|
159,40,48,36,23,196,1,11,27,27,248,22,175,3,23,200,1,28,192,192,35,
|
||||||
175,3,23,202,1,28,192,192,35,249,22,153,5,23,197,1,83,158,39,20,97,
|
27,27,248,22,175,3,23,202,1,28,192,192,35,249,22,154,5,23,197,1,83,
|
||||||
95,89,162,8,44,35,47,9,224,3,2,33,57,23,195,1,23,196,1,27,248,
|
158,39,20,97,95,89,162,8,44,35,47,9,224,3,2,33,57,23,195,1,23,
|
||||||
22,138,5,23,195,1,248,80,159,38,53,36,193,159,35,20,103,159,35,16,1,
|
196,1,27,248,22,139,5,23,195,1,248,80,159,38,53,36,193,159,35,20,103,
|
||||||
11,16,0,83,158,41,20,100,144,67,35,37,117,116,105,108,115,29,11,11,11,
|
159,35,16,1,11,16,0,83,158,41,20,100,144,67,35,37,117,116,105,108,115,
|
||||||
11,11,10,42,80,158,35,35,20,103,159,37,16,17,2,1,2,2,2,3,2,
|
29,11,11,11,11,11,10,42,80,158,35,35,20,103,159,37,16,17,2,1,2,
|
||||||
4,2,5,2,6,2,7,2,8,2,9,2,10,2,11,2,12,2,13,2,14,
|
2,2,3,2,4,2,5,2,6,2,7,2,8,2,9,2,10,2,11,2,12,
|
||||||
2,15,30,2,17,1,20,112,97,114,97,109,101,116,101,114,105,122,97,116,105,
|
2,13,2,14,2,15,30,2,17,1,20,112,97,114,97,109,101,116,101,114,105,
|
||||||
111,110,45,107,101,121,4,30,2,17,1,23,101,120,116,101,110,100,45,112,97,
|
122,97,116,105,111,110,45,107,101,121,4,30,2,17,1,23,101,120,116,101,110,
|
||||||
114,97,109,101,116,101,114,105,122,97,116,105,111,110,3,16,0,16,0,35,16,
|
100,45,112,97,114,97,109,101,116,101,114,105,122,97,116,105,111,110,3,16,0,
|
||||||
0,35,16,4,2,5,2,4,2,2,2,8,39,11,11,38,35,11,11,11,16,
|
16,0,35,16,0,35,16,4,2,5,2,4,2,2,2,8,39,11,11,38,35,
|
||||||
11,2,7,2,6,2,15,2,14,2,12,2,11,2,3,2,10,2,13,2,9,
|
11,11,11,16,11,2,7,2,6,2,15,2,14,2,12,2,11,2,3,2,10,
|
||||||
2,1,16,11,11,11,11,11,11,11,11,11,11,11,11,16,11,2,7,2,6,
|
2,13,2,9,2,1,16,11,11,11,11,11,11,11,11,11,11,11,11,16,11,
|
||||||
2,15,2,14,2,12,2,11,2,3,2,10,2,13,2,9,2,1,46,46,36,
|
2,7,2,6,2,15,2,14,2,12,2,11,2,3,2,10,2,13,2,9,2,
|
||||||
11,11,11,16,0,16,0,16,0,35,35,11,11,11,11,16,0,16,0,16,0,
|
1,46,46,36,11,11,11,16,0,16,0,16,0,35,35,11,11,11,11,16,0,
|
||||||
35,35,16,0,16,17,83,158,35,16,2,89,162,43,36,48,2,18,223,0,33,
|
16,0,16,0,35,35,16,0,16,17,83,158,35,16,2,89,162,43,36,48,2,
|
||||||
28,80,159,35,53,36,83,158,35,16,2,89,162,8,44,36,55,2,18,223,0,
|
18,223,0,33,28,80,159,35,53,36,83,158,35,16,2,89,162,8,44,36,55,
|
||||||
33,29,80,159,35,52,36,83,158,35,16,2,32,0,89,162,43,36,44,2,1,
|
2,18,223,0,33,29,80,159,35,52,36,83,158,35,16,2,32,0,89,162,43,
|
||||||
222,33,30,80,159,35,35,36,83,158,35,16,2,249,22,161,6,7,92,7,92,
|
36,44,2,1,222,33,30,80,159,35,35,36,83,158,35,16,2,249,22,162,6,
|
||||||
80,159,35,36,36,83,158,35,16,2,89,162,43,36,53,2,3,223,0,33,31,
|
7,92,7,92,80,159,35,36,36,83,158,35,16,2,89,162,43,36,53,2,3,
|
||||||
80,159,35,37,36,83,158,35,16,2,32,0,89,162,8,44,37,49,2,4,222,
|
223,0,33,31,80,159,35,37,36,83,158,35,16,2,32,0,89,162,8,44,37,
|
||||||
33,32,80,159,35,38,36,83,158,35,16,2,32,0,89,162,8,44,38,50,2,
|
49,2,4,222,33,32,80,159,35,38,36,83,158,35,16,2,32,0,89,162,8,
|
||||||
5,222,33,34,80,159,35,39,36,83,158,35,16,2,89,162,8,45,37,47,2,
|
44,38,50,2,5,222,33,34,80,159,35,39,36,83,158,35,16,2,89,162,8,
|
||||||
6,223,0,33,36,80,159,35,40,36,83,158,35,16,2,32,0,89,162,43,39,
|
45,37,47,2,6,223,0,33,36,80,159,35,40,36,83,158,35,16,2,32,0,
|
||||||
51,2,7,222,33,39,80,159,35,41,36,83,158,35,16,2,32,0,89,162,43,
|
89,162,43,39,51,2,7,222,33,39,80,159,35,41,36,83,158,35,16,2,32,
|
||||||
38,49,2,8,222,33,40,80,159,35,42,36,83,158,35,16,2,32,0,89,162,
|
0,89,162,43,38,49,2,8,222,33,40,80,159,35,42,36,83,158,35,16,2,
|
||||||
43,37,52,2,9,222,33,41,80,159,35,43,36,83,158,35,16,2,32,0,89,
|
32,0,89,162,43,37,52,2,9,222,33,41,80,159,35,43,36,83,158,35,16,
|
||||||
162,43,37,53,2,10,222,33,42,80,159,35,44,36,83,158,35,16,2,32,0,
|
2,32,0,89,162,43,37,53,2,10,222,33,42,80,159,35,44,36,83,158,35,
|
||||||
89,162,43,36,43,2,11,222,33,43,80,159,35,45,36,83,158,35,16,2,83,
|
16,2,32,0,89,162,43,36,43,2,11,222,33,43,80,159,35,45,36,83,158,
|
||||||
158,38,20,96,96,2,12,89,162,43,35,43,9,223,0,33,44,89,162,43,36,
|
35,16,2,83,158,38,20,96,96,2,12,89,162,43,35,43,9,223,0,33,44,
|
||||||
44,9,223,0,33,45,89,162,43,37,54,9,223,0,33,46,80,159,35,46,36,
|
89,162,43,36,44,9,223,0,33,45,89,162,43,37,54,9,223,0,33,46,80,
|
||||||
83,158,35,16,2,27,248,22,187,13,248,22,170,7,27,28,249,22,164,8,247,
|
159,35,46,36,83,158,35,16,2,27,248,22,188,13,248,22,171,7,27,28,249,
|
||||||
22,178,7,2,20,6,1,1,59,6,1,1,58,250,22,143,7,6,14,14,40,
|
22,165,8,247,22,179,7,2,20,6,1,1,59,6,1,1,58,250,22,144,7,
|
||||||
91,94,126,97,93,42,41,126,97,40,46,42,41,23,196,2,23,196,1,89,162,
|
6,14,14,40,91,94,126,97,93,42,41,126,97,40,46,42,41,23,196,2,23,
|
||||||
8,44,37,47,2,13,223,0,33,49,80,159,35,47,36,83,158,35,16,2,83,
|
196,1,89,162,8,44,37,47,2,13,223,0,33,49,80,159,35,47,36,83,158,
|
||||||
158,38,20,96,96,2,14,89,162,8,44,38,53,9,223,0,33,54,89,162,43,
|
35,16,2,83,158,38,20,96,96,2,14,89,162,8,44,38,53,9,223,0,33,
|
||||||
37,46,9,223,0,33,55,89,162,43,36,45,9,223,0,33,56,80,159,35,48,
|
54,89,162,43,37,46,9,223,0,33,55,89,162,43,36,45,9,223,0,33,56,
|
||||||
36,83,158,35,16,2,89,162,43,38,51,2,15,223,0,33,58,80,159,35,49,
|
80,159,35,48,36,83,158,35,16,2,89,162,43,38,51,2,15,223,0,33,58,
|
||||||
36,94,29,94,2,16,68,35,37,107,101,114,110,101,108,11,29,94,2,16,69,
|
80,159,35,49,36,94,29,94,2,16,68,35,37,107,101,114,110,101,108,11,29,
|
||||||
35,37,109,105,110,45,115,116,120,11,9,9,9,35,0};
|
94,2,16,69,35,37,109,105,110,45,115,116,120,11,9,9,9,35,0};
|
||||||
EVAL_ONE_SIZED_STR((char *)expr, 5012);
|
EVAL_ONE_SIZED_STR((char *)expr, 5016);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,53,46,53,8,0,0,0,1,0,0,6,0,19,0,
|
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,53,46,54,8,0,0,0,1,0,0,6,0,19,0,
|
||||||
34,0,48,0,62,0,76,0,115,0,0,0,6,1,0,0,65,113,117,111,116,
|
34,0,48,0,62,0,76,0,115,0,0,0,6,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,
|
101,29,94,2,1,67,35,37,117,116,105,108,115,11,29,94,2,1,69,35,37,
|
||||||
110,101,116,119,111,114,107,11,29,94,2,1,68,35,37,112,97,114,97,109,122,
|
110,101,116,119,111,114,107,11,29,94,2,1,68,35,37,112,97,114,97,109,122,
|
||||||
11,29,94,2,1,68,35,37,101,120,112,111,98,115,11,29,94,2,1,68,35,
|
11,29,94,2,1,68,35,37,101,120,112,111,98,115,11,29,94,2,1,68,35,
|
||||||
37,107,101,114,110,101,108,11,97,35,11,8,174,230,98,159,2,2,35,35,159,
|
37,107,101,114,110,101,108,11,97,35,11,8,142,234,98,159,2,2,35,35,159,
|
||||||
2,3,35,35,159,2,4,35,35,159,2,5,35,35,159,2,6,35,35,159,2,
|
2,3,35,35,159,2,4,35,35,159,2,5,35,35,159,2,6,35,35,159,2,
|
||||||
6,35,35,16,0,159,35,20,103,159,35,16,1,11,16,0,83,158,41,20,100,
|
6,35,35,16,0,159,35,20,103,159,35,16,1,11,16,0,83,158,41,20,100,
|
||||||
144,69,35,37,98,117,105,108,116,105,110,29,11,11,11,11,11,18,96,11,42,
|
144,69,35,37,98,117,105,108,116,105,110,29,11,11,11,11,11,18,96,11,42,
|
||||||
|
@ -360,7 +360,7 @@
|
||||||
EVAL_ONE_SIZED_STR((char *)expr, 299);
|
EVAL_ONE_SIZED_STR((char *)expr, 299);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,53,46,53,52,0,0,0,1,0,0,11,0,38,0,
|
static MZCOMPILED_STRING_FAR unsigned char expr[] = {35,126,7,52,46,49,46,53,46,54,52,0,0,0,1,0,0,11,0,38,0,
|
||||||
44,0,57,0,71,0,93,0,119,0,131,0,149,0,169,0,181,0,197,0,220,
|
44,0,57,0,71,0,93,0,119,0,131,0,149,0,169,0,181,0,197,0,220,
|
||||||
0,0,1,5,1,10,1,15,1,24,1,29,1,60,1,64,1,72,1,81,1,
|
0,0,1,5,1,10,1,15,1,24,1,29,1,60,1,64,1,72,1,81,1,
|
||||||
89,1,192,1,237,1,1,2,30,2,61,2,117,2,127,2,174,2,184,2,191,
|
89,1,192,1,237,1,1,2,30,2,61,2,117,2,127,2,174,2,184,2,191,
|
||||||
|
@ -382,32 +382,32 @@
|
||||||
110,97,116,105,118,101,64,108,111,111,112,1,29,115,116,97,110,100,97,114,100,
|
110,97,116,105,118,101,64,108,111,111,112,1,29,115,116,97,110,100,97,114,100,
|
||||||
45,109,111,100,117,108,101,45,110,97,109,101,45,114,101,115,111,108,118,101,114,
|
45,109,111,100,117,108,101,45,110,97,109,101,45,114,101,115,111,108,118,101,114,
|
||||||
63,108,105,98,67,105,103,110,111,114,101,100,249,22,14,195,80,159,37,45,37,
|
63,108,105,98,67,105,103,110,111,114,101,100,249,22,14,195,80,159,37,45,37,
|
||||||
249,80,159,37,48,36,195,10,27,28,23,195,2,28,249,22,164,8,23,197,2,
|
249,80,159,37,48,36,195,10,27,28,23,195,2,28,249,22,165,8,23,197,2,
|
||||||
80,158,38,46,87,94,23,195,1,80,158,36,47,27,248,22,173,4,23,197,2,
|
80,158,38,46,87,94,23,195,1,80,158,36,47,27,248,22,174,4,23,197,2,
|
||||||
28,248,22,141,13,23,194,2,91,159,38,11,90,161,38,35,11,248,22,162,13,
|
28,248,22,142,13,23,194,2,91,159,38,11,90,161,38,35,11,248,22,163,13,
|
||||||
23,197,1,87,95,83,160,37,11,80,158,40,46,198,83,160,37,11,80,158,40,
|
23,197,1,87,95,83,160,37,11,80,158,40,46,198,83,160,37,11,80,158,40,
|
||||||
47,192,192,11,11,28,23,193,2,192,87,94,23,193,1,27,247,22,191,4,28,
|
47,192,192,11,11,28,23,193,2,192,87,94,23,193,1,27,247,22,128,5,28,
|
||||||
192,192,247,22,181,13,20,14,159,80,158,35,39,250,80,158,38,40,249,22,27,
|
192,192,247,22,182,13,20,14,159,80,158,35,39,250,80,158,38,40,249,22,27,
|
||||||
11,80,158,40,39,22,191,4,28,248,22,141,13,23,198,2,23,197,1,87,94,
|
11,80,158,40,39,22,128,5,28,248,22,142,13,23,198,2,23,197,1,87,94,
|
||||||
23,197,1,247,22,181,13,247,194,250,22,159,13,23,197,1,23,199,1,249,80,
|
23,197,1,247,22,182,13,247,194,250,22,160,13,23,197,1,23,199,1,249,80,
|
||||||
158,42,38,23,198,1,2,17,252,22,159,13,23,199,1,23,201,1,2,18,247,
|
158,42,38,23,198,1,2,17,252,22,160,13,23,199,1,23,201,1,2,18,247,
|
||||||
22,179,7,249,80,158,44,38,23,200,1,80,159,44,35,37,87,94,23,194,1,
|
22,180,7,249,80,158,44,38,23,200,1,80,159,44,35,37,87,94,23,194,1,
|
||||||
27,250,22,176,13,196,11,32,0,89,162,8,44,35,40,9,222,11,28,192,249,
|
27,250,22,177,13,196,11,32,0,89,162,8,44,35,40,9,222,11,28,192,249,
|
||||||
22,65,195,194,11,27,252,22,159,13,23,200,1,23,202,1,2,18,247,22,179,
|
22,65,195,194,11,27,252,22,160,13,23,200,1,23,202,1,2,18,247,22,180,
|
||||||
7,249,80,158,45,38,23,201,1,80,159,45,35,37,27,250,22,176,13,196,11,
|
7,249,80,158,45,38,23,201,1,80,159,45,35,37,27,250,22,177,13,196,11,
|
||||||
32,0,89,162,8,44,35,40,9,222,11,28,192,249,22,65,195,194,11,249,247,
|
32,0,89,162,8,44,35,40,9,222,11,28,192,249,22,65,195,194,11,249,247,
|
||||||
22,186,13,248,22,66,195,195,27,250,22,159,13,23,198,1,23,200,1,249,80,
|
22,187,13,248,22,66,195,195,27,250,22,160,13,23,198,1,23,200,1,249,80,
|
||||||
158,43,38,23,199,1,2,17,27,250,22,176,13,196,11,32,0,89,162,8,44,
|
158,43,38,23,199,1,2,17,27,250,22,177,13,196,11,32,0,89,162,8,44,
|
||||||
35,40,9,222,11,28,192,249,22,65,195,194,11,249,247,22,189,4,248,22,66,
|
35,40,9,222,11,28,192,249,22,65,195,194,11,249,247,22,190,4,248,22,66,
|
||||||
195,195,249,247,22,189,4,194,195,87,94,28,248,80,158,36,37,23,195,2,12,
|
195,195,249,247,22,190,4,194,195,87,94,28,248,80,158,36,37,23,195,2,12,
|
||||||
250,22,132,9,77,108,111,97,100,47,117,115,101,45,99,111,109,112,105,108,101,
|
250,22,133,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,
|
100,6,25,25,112,97,116,104,32,111,114,32,118,97,108,105,100,45,112,97,116,
|
||||||
104,32,115,116,114,105,110,103,23,197,2,91,159,41,11,90,161,36,35,11,28,
|
104,32,115,116,114,105,110,103,23,197,2,91,159,41,11,90,161,36,35,11,28,
|
||||||
248,22,165,13,23,201,2,23,200,1,27,247,22,191,4,28,23,193,2,249,22,
|
248,22,166,13,23,201,2,23,200,1,27,247,22,128,5,28,23,193,2,249,22,
|
||||||
166,13,23,203,1,23,195,1,200,90,161,38,36,11,248,22,162,13,23,194,2,
|
167,13,23,203,1,23,195,1,200,90,161,38,36,11,248,22,163,13,23,194,2,
|
||||||
87,94,23,196,1,90,161,36,39,11,28,249,22,164,8,23,196,2,68,114,101,
|
87,94,23,196,1,90,161,36,39,11,28,249,22,165,8,23,196,2,68,114,101,
|
||||||
108,97,116,105,118,101,87,94,23,194,1,2,16,23,194,1,90,161,36,40,11,
|
108,97,116,105,118,101,87,94,23,194,1,2,16,23,194,1,90,161,36,40,11,
|
||||||
247,22,183,13,27,89,162,43,36,49,62,122,111,225,7,5,3,33,27,27,89,
|
247,22,184,13,27,89,162,43,36,49,62,122,111,225,7,5,3,33,27,27,89,
|
||||||
162,43,36,51,9,225,8,6,4,33,28,27,249,22,5,89,162,8,44,36,46,
|
162,43,36,51,9,225,8,6,4,33,28,27,249,22,5,89,162,8,44,36,46,
|
||||||
9,223,5,33,29,23,203,2,27,28,23,195,1,27,249,22,5,89,162,8,44,
|
9,223,5,33,29,23,203,2,27,28,23,195,1,27,249,22,5,89,162,8,44,
|
||||||
36,52,9,225,13,11,9,33,30,23,205,2,27,28,23,196,2,11,193,28,192,
|
36,52,9,225,13,11,9,33,30,23,205,2,27,28,23,196,2,11,193,28,192,
|
||||||
|
@ -420,10 +420,10 @@
|
||||||
203,89,162,43,35,45,9,224,15,2,33,33,249,80,159,48,54,36,203,89,162,
|
203,89,162,43,35,45,9,224,15,2,33,33,249,80,159,48,54,36,203,89,162,
|
||||||
43,35,44,9,224,15,7,33,34,32,36,89,162,8,44,36,54,2,19,222,33,
|
43,35,44,9,224,15,7,33,34,32,36,89,162,8,44,36,54,2,19,222,33,
|
||||||
38,0,17,35,114,120,34,94,40,46,42,63,41,47,40,46,42,41,36,34,27,
|
38,0,17,35,114,120,34,94,40,46,42,63,41,47,40,46,42,41,36,34,27,
|
||||||
249,22,191,13,2,37,23,196,2,28,23,193,2,87,94,23,194,1,249,22,65,
|
249,22,128,14,2,37,23,196,2,28,23,193,2,87,94,23,194,1,249,22,65,
|
||||||
248,22,90,23,196,2,27,248,22,99,23,197,1,27,249,22,191,13,2,37,23,
|
248,22,90,23,196,2,27,248,22,99,23,197,1,27,249,22,128,14,2,37,23,
|
||||||
196,2,28,23,193,2,87,94,23,194,1,249,22,65,248,22,90,23,196,2,27,
|
196,2,28,23,193,2,87,94,23,194,1,249,22,65,248,22,90,23,196,2,27,
|
||||||
248,22,99,23,197,1,27,249,22,191,13,2,37,23,196,2,28,23,193,2,87,
|
248,22,99,23,197,1,27,249,22,128,14,2,37,23,196,2,28,23,193,2,87,
|
||||||
94,23,194,1,249,22,65,248,22,90,23,196,2,248,2,36,248,22,99,23,197,
|
94,23,194,1,249,22,65,248,22,90,23,196,2,248,2,36,248,22,99,23,197,
|
||||||
1,248,22,75,194,248,22,75,194,248,22,75,194,32,39,89,162,43,36,54,2,
|
1,248,22,75,194,248,22,75,194,248,22,75,194,32,39,89,162,43,36,54,2,
|
||||||
19,222,33,40,28,248,22,73,248,22,67,23,195,2,249,22,7,9,248,22,66,
|
19,222,33,40,28,248,22,73,248,22,67,23,195,2,249,22,7,9,248,22,66,
|
||||||
|
@ -434,97 +434,97 @@
|
||||||
23,197,2,249,22,7,249,22,65,248,22,66,23,200,1,23,197,1,195,249,22,
|
23,197,2,249,22,7,249,22,65,248,22,66,23,200,1,23,197,1,195,249,22,
|
||||||
7,249,22,65,248,22,66,23,200,1,23,197,1,195,249,22,7,249,22,65,248,
|
7,249,22,65,248,22,66,23,200,1,23,197,1,195,249,22,7,249,22,65,248,
|
||||||
22,66,23,200,1,23,197,1,195,27,248,2,36,23,195,1,28,194,192,248,2,
|
22,66,23,200,1,23,197,1,195,27,248,2,36,23,195,1,28,194,192,248,2,
|
||||||
39,193,87,95,28,248,22,171,4,195,12,250,22,132,9,2,20,6,20,20,114,
|
39,193,87,95,28,248,22,172,4,195,12,250,22,133,9,2,20,6,20,20,114,
|
||||||
101,115,111,108,118,101,100,45,109,111,100,117,108,101,45,112,97,116,104,197,28,
|
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,139,2,80,
|
24,193,2,248,24,194,1,195,87,94,23,193,1,12,27,27,250,22,139,2,80,
|
||||||
159,41,42,37,248,22,147,14,247,22,188,11,11,28,23,193,2,192,87,94,23,
|
159,41,42,37,248,22,148,14,247,22,189,11,11,28,23,193,2,192,87,94,23,
|
||||||
193,1,27,247,22,123,87,94,250,22,137,2,80,159,42,42,37,248,22,147,14,
|
193,1,27,247,22,123,87,94,250,22,137,2,80,159,42,42,37,248,22,148,14,
|
||||||
247,22,188,11,195,192,250,22,137,2,195,198,66,97,116,116,97,99,104,251,211,
|
247,22,189,11,195,192,250,22,137,2,195,198,66,97,116,116,97,99,104,251,211,
|
||||||
197,198,199,10,28,192,250,22,131,9,11,196,195,248,22,129,9,194,28,249,22,
|
197,198,199,10,28,192,250,22,132,9,11,196,195,248,22,130,9,194,28,249,22,
|
||||||
165,6,194,6,1,1,46,2,16,28,249,22,165,6,194,6,2,2,46,46,62,
|
166,6,194,6,1,1,46,2,16,28,249,22,166,6,194,6,2,2,46,46,62,
|
||||||
117,112,192,28,249,22,166,8,248,22,67,23,200,2,23,197,1,28,249,22,164,
|
117,112,192,28,249,22,167,8,248,22,67,23,200,2,23,197,1,28,249,22,165,
|
||||||
8,248,22,66,23,200,2,23,196,1,251,22,129,9,2,20,6,26,26,99,121,
|
8,248,22,66,23,200,2,23,196,1,251,22,130,9,2,20,6,26,26,99,121,
|
||||||
99,108,101,32,105,110,32,108,111,97,100,105,110,103,32,97,116,32,126,101,58,
|
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,67,248,22,80,249,22,65,23,206,1,23,
|
32,126,101,23,200,1,249,22,2,22,67,248,22,80,249,22,65,23,206,1,23,
|
||||||
202,1,12,12,247,192,20,14,159,80,159,39,44,37,249,22,65,248,22,147,14,
|
202,1,12,12,247,192,20,14,159,80,159,39,44,37,249,22,65,248,22,148,14,
|
||||||
247,22,188,11,23,197,1,20,14,159,80,158,39,39,250,80,158,42,40,249,22,
|
247,22,189,11,23,197,1,20,14,159,80,158,39,39,250,80,158,42,40,249,22,
|
||||||
27,11,80,158,44,39,22,153,4,23,196,1,249,247,22,190,4,23,198,1,248,
|
27,11,80,158,44,39,22,154,4,23,196,1,249,247,22,191,4,23,198,1,248,
|
||||||
22,54,248,22,145,13,23,198,1,87,94,28,28,248,22,141,13,23,197,2,10,
|
22,54,248,22,146,13,23,198,1,87,94,28,28,248,22,142,13,23,197,2,10,
|
||||||
248,22,177,4,23,197,2,12,28,23,198,2,250,22,131,9,11,6,15,15,98,
|
248,22,178,4,23,197,2,12,28,23,198,2,250,22,132,9,11,6,15,15,98,
|
||||||
97,100,32,109,111,100,117,108,101,32,112,97,116,104,23,201,2,250,22,132,9,
|
97,100,32,109,111,100,117,108,101,32,112,97,116,104,23,201,2,250,22,133,9,
|
||||||
2,20,6,19,19,109,111,100,117,108,101,45,112,97,116,104,32,111,114,32,112,
|
2,20,6,19,19,109,111,100,117,108,101,45,112,97,116,104,32,111,114,32,112,
|
||||||
97,116,104,23,199,2,28,28,248,22,63,23,197,2,249,22,164,8,248,22,66,
|
97,116,104,23,199,2,28,28,248,22,63,23,197,2,249,22,165,8,248,22,66,
|
||||||
23,199,2,2,3,11,248,22,172,4,248,22,90,197,28,28,248,22,63,23,197,
|
23,199,2,2,3,11,248,22,173,4,248,22,90,197,28,28,248,22,63,23,197,
|
||||||
2,249,22,164,8,248,22,66,23,199,2,66,112,108,97,110,101,116,11,87,94,
|
2,249,22,165,8,248,22,66,23,199,2,66,112,108,97,110,101,116,11,87,94,
|
||||||
28,207,12,20,14,159,80,158,37,39,250,80,158,40,40,249,22,27,11,80,158,
|
28,207,12,20,14,159,80,158,37,39,250,80,158,40,40,249,22,27,11,80,158,
|
||||||
42,39,22,188,11,23,197,1,90,161,36,35,10,249,22,154,4,21,94,2,21,
|
42,39,22,189,11,23,197,1,90,161,36,35,10,249,22,155,4,21,94,2,21,
|
||||||
6,18,18,112,108,97,110,101,116,47,114,101,115,111,108,118,101,114,46,115,115,
|
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,
|
1,27,112,108,97,110,101,116,45,109,111,100,117,108,101,45,110,97,109,101,45,
|
||||||
114,101,115,111,108,118,101,114,12,251,211,199,200,201,202,87,94,23,193,1,27,
|
114,101,115,111,108,118,101,114,12,251,211,199,200,201,202,87,94,23,193,1,27,
|
||||||
89,162,8,44,36,45,79,115,104,111,119,45,99,111,108,108,101,99,116,105,111,
|
89,162,8,44,36,45,79,115,104,111,119,45,99,111,108,108,101,99,116,105,111,
|
||||||
110,45,101,114,114,223,6,33,44,27,28,248,22,53,23,199,2,27,250,22,139,
|
110,45,101,114,114,223,6,33,44,27,28,248,22,53,23,199,2,27,250,22,139,
|
||||||
2,80,159,43,43,37,249,22,65,23,204,2,247,22,182,13,11,28,23,193,2,
|
2,80,159,43,43,37,249,22,65,23,204,2,247,22,183,13,11,28,23,193,2,
|
||||||
192,87,94,23,193,1,91,159,37,11,90,161,37,35,11,249,80,159,44,48,36,
|
192,87,94,23,193,1,91,159,37,11,90,161,37,35,11,249,80,159,44,48,36,
|
||||||
248,22,56,23,204,2,11,27,251,80,158,47,50,2,20,23,202,1,28,248,22,
|
248,22,56,23,204,2,11,27,251,80,158,47,50,2,20,23,202,1,28,248,22,
|
||||||
73,23,199,2,23,199,2,248,22,66,23,199,2,28,248,22,73,23,199,2,9,
|
73,23,199,2,23,199,2,248,22,66,23,199,2,28,248,22,73,23,199,2,9,
|
||||||
248,22,67,23,199,2,249,22,159,13,23,195,1,28,248,22,73,23,197,1,87,
|
248,22,67,23,199,2,249,22,160,13,23,195,1,28,248,22,73,23,197,1,87,
|
||||||
94,23,197,1,6,7,7,109,97,105,110,46,115,115,249,22,182,6,23,199,1,
|
94,23,197,1,6,7,7,109,97,105,110,46,115,115,249,22,183,6,23,199,1,
|
||||||
6,3,3,46,115,115,28,248,22,159,6,23,199,2,87,94,23,194,1,27,248,
|
6,3,3,46,115,115,28,248,22,160,6,23,199,2,87,94,23,194,1,27,248,
|
||||||
80,159,41,55,36,23,201,2,27,250,22,139,2,80,159,44,43,37,249,22,65,
|
80,159,41,55,36,23,201,2,27,250,22,139,2,80,159,44,43,37,249,22,65,
|
||||||
23,205,2,23,199,2,11,28,23,193,2,192,87,94,23,193,1,91,159,37,11,
|
23,205,2,23,199,2,11,28,23,193,2,192,87,94,23,193,1,91,159,37,11,
|
||||||
90,161,37,35,11,249,80,159,45,48,36,23,204,2,11,250,22,1,22,159,13,
|
90,161,37,35,11,249,80,159,45,48,36,23,204,2,11,250,22,1,22,160,13,
|
||||||
23,199,1,249,22,79,249,22,2,32,0,89,162,8,44,36,43,9,222,33,45,
|
23,199,1,249,22,79,249,22,2,32,0,89,162,8,44,36,43,9,222,33,45,
|
||||||
23,200,1,248,22,75,23,200,1,28,248,22,141,13,23,199,2,87,94,23,194,
|
23,200,1,248,22,75,23,200,1,28,248,22,142,13,23,199,2,87,94,23,194,
|
||||||
1,28,248,22,164,13,23,199,2,23,198,2,248,22,75,6,26,26,32,40,97,
|
1,28,248,22,165,13,23,199,2,23,198,2,248,22,75,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,
|
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,164,8,248,22,66,23,201,2,2,21,27,250,22,139,2,80,
|
101,41,28,249,22,165,8,248,22,66,23,201,2,2,21,27,250,22,139,2,80,
|
||||||
159,43,43,37,249,22,65,23,204,2,247,22,182,13,11,28,23,193,2,192,87,
|
159,43,43,37,249,22,65,23,204,2,247,22,183,13,11,28,23,193,2,192,87,
|
||||||
94,23,193,1,91,159,38,11,90,161,37,35,11,249,80,159,45,48,36,248,22,
|
94,23,193,1,91,159,38,11,90,161,37,35,11,249,80,159,45,48,36,248,22,
|
||||||
90,23,205,2,11,90,161,36,37,11,28,248,22,73,248,22,92,23,204,2,28,
|
90,23,205,2,11,90,161,36,37,11,28,248,22,73,248,22,92,23,204,2,28,
|
||||||
248,22,73,23,194,2,249,22,129,14,0,8,35,114,120,34,91,46,93,34,23,
|
248,22,73,23,194,2,249,22,130,14,0,8,35,114,120,34,91,46,93,34,23,
|
||||||
196,2,11,10,27,27,28,23,197,2,249,22,79,28,248,22,73,248,22,92,23,
|
196,2,11,10,27,27,28,23,197,2,249,22,79,28,248,22,73,248,22,92,23,
|
||||||
208,2,21,93,6,5,5,109,122,108,105,98,249,22,1,22,79,249,22,2,80,
|
208,2,21,93,6,5,5,109,122,108,105,98,249,22,1,22,79,249,22,2,80,
|
||||||
159,51,56,36,248,22,92,23,211,2,23,197,2,28,248,22,73,23,196,2,248,
|
159,51,56,36,248,22,92,23,211,2,23,197,2,28,248,22,73,23,196,2,248,
|
||||||
22,75,23,197,2,23,195,2,251,80,158,49,50,2,20,23,204,1,248,22,66,
|
22,75,23,197,2,23,195,2,251,80,158,49,50,2,20,23,204,1,248,22,66,
|
||||||
23,198,2,248,22,67,23,198,1,249,22,159,13,23,195,1,28,23,198,1,87,
|
23,198,2,248,22,67,23,198,1,249,22,160,13,23,195,1,28,23,198,1,87,
|
||||||
94,23,196,1,23,197,1,28,248,22,73,23,197,1,87,94,23,197,1,6,7,
|
94,23,196,1,23,197,1,28,248,22,73,23,197,1,87,94,23,197,1,6,7,
|
||||||
7,109,97,105,110,46,115,115,28,249,22,129,14,0,8,35,114,120,34,91,46,
|
7,109,97,105,110,46,115,115,28,249,22,130,14,0,8,35,114,120,34,91,46,
|
||||||
93,34,23,199,2,23,197,1,249,22,182,6,23,199,1,6,3,3,46,115,115,
|
93,34,23,199,2,23,197,1,249,22,183,6,23,199,1,6,3,3,46,115,115,
|
||||||
28,249,22,164,8,248,22,66,23,201,2,64,102,105,108,101,249,22,166,13,248,
|
28,249,22,165,8,248,22,66,23,201,2,64,102,105,108,101,249,22,167,13,248,
|
||||||
22,170,13,248,22,90,23,202,2,248,80,159,42,55,36,23,202,2,12,87,94,
|
22,171,13,248,22,90,23,202,2,248,80,159,42,55,36,23,202,2,12,87,94,
|
||||||
28,28,248,22,141,13,23,194,2,10,248,22,181,7,23,194,2,87,94,23,200,
|
28,28,248,22,142,13,23,194,2,10,248,22,182,7,23,194,2,87,94,23,200,
|
||||||
1,12,28,23,200,2,250,22,131,9,67,114,101,113,117,105,114,101,249,22,143,
|
1,12,28,23,200,2,250,22,132,9,67,114,101,113,117,105,114,101,249,22,144,
|
||||||
7,6,17,17,98,97,100,32,109,111,100,117,108,101,32,112,97,116,104,126,97,
|
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,66,23,199,2,6,0,0,23,203,1,87,94,23,200,1,
|
28,23,198,2,248,22,66,23,199,2,6,0,0,23,203,1,87,94,23,200,1,
|
||||||
250,22,132,9,2,20,249,22,143,7,6,13,13,109,111,100,117,108,101,32,112,
|
250,22,133,9,2,20,249,22,144,7,6,13,13,109,111,100,117,108,101,32,112,
|
||||||
97,116,104,126,97,28,23,198,2,248,22,66,23,199,2,6,0,0,23,201,2,
|
97,116,104,126,97,28,23,198,2,248,22,66,23,199,2,6,0,0,23,201,2,
|
||||||
27,28,248,22,181,7,23,195,2,249,22,186,7,23,196,2,35,249,22,168,13,
|
27,28,248,22,182,7,23,195,2,249,22,187,7,23,196,2,35,249,22,169,13,
|
||||||
248,22,169,13,23,197,2,11,27,28,248,22,181,7,23,196,2,249,22,186,7,
|
248,22,170,13,23,197,2,11,27,28,248,22,182,7,23,196,2,249,22,187,7,
|
||||||
23,197,2,36,248,80,158,42,51,23,195,2,91,159,38,11,90,161,38,35,11,
|
23,197,2,36,248,80,158,42,51,23,195,2,91,159,38,11,90,161,38,35,11,
|
||||||
28,248,22,181,7,23,199,2,250,22,7,2,22,249,22,186,7,23,203,2,37,
|
28,248,22,182,7,23,199,2,250,22,7,2,22,249,22,187,7,23,203,2,37,
|
||||||
2,22,248,22,162,13,23,198,2,87,95,23,195,1,23,193,1,27,28,248,22,
|
2,22,248,22,163,13,23,198,2,87,95,23,195,1,23,193,1,27,28,248,22,
|
||||||
181,7,23,200,2,249,22,186,7,23,201,2,38,249,80,158,47,52,23,197,2,
|
182,7,23,200,2,249,22,187,7,23,201,2,38,249,80,158,47,52,23,197,2,
|
||||||
5,0,27,28,248,22,181,7,23,201,2,249,22,186,7,23,202,2,39,248,22,
|
5,0,27,28,248,22,182,7,23,201,2,249,22,187,7,23,202,2,39,248,22,
|
||||||
172,4,23,200,2,27,27,250,22,139,2,80,159,51,42,37,248,22,147,14,247,
|
173,4,23,200,2,27,27,250,22,139,2,80,159,51,42,37,248,22,148,14,247,
|
||||||
22,188,11,11,28,23,193,2,192,87,94,23,193,1,27,247,22,123,87,94,250,
|
22,189,11,11,28,23,193,2,192,87,94,23,193,1,27,247,22,123,87,94,250,
|
||||||
22,137,2,80,159,52,42,37,248,22,147,14,247,22,188,11,195,192,87,95,28,
|
22,137,2,80,159,52,42,37,248,22,148,14,247,22,189,11,195,192,87,95,28,
|
||||||
23,209,1,27,250,22,139,2,23,197,2,197,11,28,23,193,1,12,87,95,27,
|
23,209,1,27,250,22,139,2,23,197,2,197,11,28,23,193,1,12,87,95,27,
|
||||||
27,28,248,22,17,80,159,51,45,37,80,159,50,45,37,247,22,19,250,22,25,
|
27,28,248,22,17,80,159,51,45,37,80,159,50,45,37,247,22,19,250,22,25,
|
||||||
248,22,23,23,197,2,80,159,53,44,37,23,196,1,27,248,22,147,14,247,22,
|
248,22,23,23,197,2,80,159,53,44,37,23,196,1,27,248,22,148,14,247,22,
|
||||||
188,11,249,22,3,83,158,39,20,97,94,89,162,8,44,36,54,9,226,12,11,
|
189,11,249,22,3,83,158,39,20,97,94,89,162,8,44,36,54,9,226,12,11,
|
||||||
2,3,33,46,23,195,1,23,196,1,248,28,248,22,17,80,159,50,45,37,32,
|
2,3,33,46,23,195,1,23,196,1,248,28,248,22,17,80,159,50,45,37,32,
|
||||||
0,89,162,43,36,41,9,222,33,47,80,159,49,57,36,89,162,43,35,50,9,
|
0,89,162,43,36,41,9,222,33,47,80,159,49,57,36,89,162,43,35,50,9,
|
||||||
227,14,9,8,4,3,33,48,250,22,137,2,23,197,1,197,10,12,28,28,248,
|
227,14,9,8,4,3,33,48,250,22,137,2,23,197,1,197,10,12,28,28,248,
|
||||||
22,181,7,23,202,1,11,27,248,22,159,6,23,208,2,28,192,192,27,248,22,
|
22,182,7,23,202,1,11,27,248,22,160,6,23,208,2,28,192,192,27,248,22,
|
||||||
53,23,209,2,28,192,192,28,248,22,63,23,209,2,249,22,164,8,248,22,66,
|
53,23,209,2,28,192,192,28,248,22,63,23,209,2,249,22,165,8,248,22,66,
|
||||||
23,211,2,2,21,11,250,22,137,2,80,159,50,43,37,28,248,22,159,6,23,
|
23,211,2,2,21,11,250,22,137,2,80,159,50,43,37,28,248,22,160,6,23,
|
||||||
210,2,249,22,65,23,211,1,248,80,159,53,55,36,23,213,1,87,94,23,210,
|
210,2,249,22,65,23,211,1,248,80,159,53,55,36,23,213,1,87,94,23,210,
|
||||||
1,249,22,65,23,211,1,247,22,182,13,252,22,183,7,23,208,1,23,207,1,
|
1,249,22,65,23,211,1,247,22,183,13,252,22,184,7,23,208,1,23,207,1,
|
||||||
23,205,1,23,203,1,201,12,193,91,159,37,10,90,161,36,35,10,11,90,161,
|
23,205,1,23,203,1,201,12,193,91,159,37,10,90,161,36,35,10,11,90,161,
|
||||||
36,36,10,83,158,38,20,96,96,2,20,89,162,8,44,36,50,9,224,2,0,
|
36,36,10,83,158,38,20,96,96,2,20,89,162,8,44,36,50,9,224,2,0,
|
||||||
33,42,89,162,43,38,48,9,223,1,33,43,89,162,43,39,8,30,9,225,2,
|
33,42,89,162,43,38,48,9,223,1,33,43,89,162,43,39,8,30,9,225,2,
|
||||||
3,0,33,49,208,87,95,248,22,152,4,248,80,159,37,49,37,247,22,188,11,
|
3,0,33,49,208,87,95,248,22,153,4,248,80,159,37,49,36,247,22,189,11,
|
||||||
248,22,190,4,80,159,36,36,37,248,22,179,12,80,159,36,41,36,159,35,20,
|
248,22,191,4,80,159,36,36,36,248,22,180,12,80,159,36,41,36,159,35,20,
|
||||||
103,159,35,16,1,11,16,0,83,158,41,20,100,144,66,35,37,98,111,111,116,
|
103,159,35,16,1,11,16,0,83,158,41,20,100,144,66,35,37,98,111,111,116,
|
||||||
29,11,11,11,11,11,10,36,80,158,35,35,20,103,159,39,16,19,2,1,2,
|
29,11,11,11,11,11,10,36,80,158,35,35,20,103,159,39,16,19,2,1,2,
|
||||||
2,30,2,4,72,112,97,116,104,45,115,116,114,105,110,103,63,10,30,2,4,
|
2,30,2,4,72,112,97,116,104,45,115,116,114,105,110,103,63,10,30,2,4,
|
||||||
|
@ -543,7 +543,7 @@
|
||||||
83,158,35,16,2,89,162,43,36,44,9,223,0,33,24,80,159,35,56,36,83,
|
83,158,35,16,2,89,162,43,36,44,9,223,0,33,24,80,159,35,56,36,83,
|
||||||
158,35,16,2,89,162,43,36,48,67,103,101,116,45,100,105,114,223,0,33,25,
|
158,35,16,2,89,162,43,36,48,67,103,101,116,45,100,105,114,223,0,33,25,
|
||||||
80,159,35,55,36,83,158,35,16,2,89,162,43,37,48,68,119,105,116,104,45,
|
80,159,35,55,36,83,158,35,16,2,89,162,43,37,48,68,119,105,116,104,45,
|
||||||
100,105,114,223,0,33,26,80,159,35,54,36,83,158,35,16,2,248,22,178,7,
|
100,105,114,223,0,33,26,80,159,35,54,36,83,158,35,16,2,248,22,179,7,
|
||||||
69,115,111,45,115,117,102,102,105,120,80,159,35,35,36,83,158,35,16,2,89,
|
69,115,111,45,115,117,102,102,105,120,80,159,35,35,36,83,158,35,16,2,89,
|
||||||
162,43,37,59,2,2,223,0,33,35,80,159,35,36,36,83,158,35,16,2,32,
|
162,43,37,59,2,2,223,0,33,35,80,159,35,36,36,83,158,35,16,2,32,
|
||||||
0,89,162,8,44,36,41,2,6,222,192,80,159,35,41,36,83,158,35,16,2,
|
0,89,162,8,44,36,41,2,6,222,192,80,159,35,41,36,83,158,35,16,2,
|
||||||
|
|
|
@ -9366,11 +9366,15 @@ static Scheme_Object *add_intdef_renamings(Scheme_Object *l, Scheme_Object *rena
|
||||||
Scheme_Object *rl = renaming;
|
Scheme_Object *rl = renaming;
|
||||||
|
|
||||||
if (SCHEME_PAIRP(renaming)) {
|
if (SCHEME_PAIRP(renaming)) {
|
||||||
|
int need_delim;
|
||||||
|
need_delim = !SCHEME_NULLP(SCHEME_CDR(rl));
|
||||||
|
if (need_delim)
|
||||||
l = scheme_add_rib_delimiter(l, scheme_null);
|
l = scheme_add_rib_delimiter(l, scheme_null);
|
||||||
while (!SCHEME_NULLP(rl)) {
|
while (!SCHEME_NULLP(rl)) {
|
||||||
l = scheme_add_rename(l, SCHEME_CAR(rl));
|
l = scheme_add_rename(l, SCHEME_CAR(rl));
|
||||||
rl = SCHEME_CDR(rl);
|
rl = SCHEME_CDR(rl);
|
||||||
}
|
}
|
||||||
|
if (need_delim)
|
||||||
l = scheme_add_rib_delimiter(l, renaming);
|
l = scheme_add_rib_delimiter(l, renaming);
|
||||||
} else {
|
} else {
|
||||||
l = scheme_add_rename(l, renaming);
|
l = scheme_add_rename(l, renaming);
|
||||||
|
|
|
@ -2734,7 +2734,9 @@ Scheme_Object *scheme_intern_resolved_module_path_worker(Scheme_Object *o)
|
||||||
rmp->type = scheme_resolved_module_path_type;
|
rmp->type = scheme_resolved_module_path_type;
|
||||||
SCHEME_PTR_VAL(rmp) = o;
|
SCHEME_PTR_VAL(rmp) = o;
|
||||||
|
|
||||||
|
scheme_start_atomic();
|
||||||
b = scheme_bucket_from_table(modpath_table, (const char *)rmp);
|
b = scheme_bucket_from_table(modpath_table, (const char *)rmp);
|
||||||
|
scheme_end_atomic_no_swap();
|
||||||
if (!b->val)
|
if (!b->val)
|
||||||
b->val = scheme_true;
|
b->val = scheme_true;
|
||||||
|
|
||||||
|
@ -9151,6 +9153,7 @@ top_level_require_execute(Scheme_Object *data)
|
||||||
{
|
{
|
||||||
do_require_execute(scheme_environment_from_dummy(SCHEME_CAR(data)),
|
do_require_execute(scheme_environment_from_dummy(SCHEME_CAR(data)),
|
||||||
SCHEME_CDR(data));
|
SCHEME_CDR(data));
|
||||||
|
return scheme_void;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Scheme_Object *
|
static Scheme_Object *
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
#define USE_COMPILED_STARTUP 1
|
#define USE_COMPILED_STARTUP 1
|
||||||
|
|
||||||
#define EXPECTED_PRIM_COUNT 950
|
#define EXPECTED_PRIM_COUNT 951
|
||||||
|
|
||||||
#ifdef MZSCHEME_SOMETHING_OMITTED
|
#ifdef MZSCHEME_SOMETHING_OMITTED
|
||||||
# undef USE_COMPILED_STARTUP
|
# undef USE_COMPILED_STARTUP
|
||||||
|
|
|
@ -13,12 +13,12 @@
|
||||||
consistently.)
|
consistently.)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define MZSCHEME_VERSION "4.1.5.5"
|
#define MZSCHEME_VERSION "4.2.0.2"
|
||||||
|
|
||||||
#define MZSCHEME_VERSION_X 4
|
#define MZSCHEME_VERSION_X 4
|
||||||
#define MZSCHEME_VERSION_Y 1
|
#define MZSCHEME_VERSION_Y 2
|
||||||
#define MZSCHEME_VERSION_Z 5
|
#define MZSCHEME_VERSION_Z 0
|
||||||
#define MZSCHEME_VERSION_W 5
|
#define MZSCHEME_VERSION_W 2
|
||||||
|
|
||||||
#define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y)
|
#define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y)
|
||||||
#define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W)
|
#define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W)
|
||||||
|
|
|
@ -65,6 +65,7 @@ static Scheme_Object *module_binding(int argc, Scheme_Object **argv);
|
||||||
static Scheme_Object *module_trans_binding(int argc, Scheme_Object **argv);
|
static Scheme_Object *module_trans_binding(int argc, Scheme_Object **argv);
|
||||||
static Scheme_Object *module_templ_binding(int argc, Scheme_Object **argv);
|
static Scheme_Object *module_templ_binding(int argc, Scheme_Object **argv);
|
||||||
static Scheme_Object *module_label_binding(int argc, Scheme_Object **argv);
|
static Scheme_Object *module_label_binding(int argc, Scheme_Object **argv);
|
||||||
|
static Scheme_Object *identifier_prune(int argc, Scheme_Object **argv);
|
||||||
static Scheme_Object *syntax_src_module(int argc, Scheme_Object **argv);
|
static Scheme_Object *syntax_src_module(int argc, Scheme_Object **argv);
|
||||||
|
|
||||||
static Scheme_Object *syntax_recertify(int argc, Scheme_Object **argv);
|
static Scheme_Object *syntax_recertify(int argc, Scheme_Object **argv);
|
||||||
|
@ -100,6 +101,8 @@ static THREAD_LOCAL Scheme_Object *unsealed_dependencies;
|
||||||
static THREAD_LOCAL Scheme_Hash_Table *id_marks_ht; /* a cache */
|
static THREAD_LOCAL Scheme_Hash_Table *id_marks_ht; /* a cache */
|
||||||
static THREAD_LOCAL Scheme_Hash_Table *than_id_marks_ht; /* a cache */
|
static THREAD_LOCAL Scheme_Hash_Table *than_id_marks_ht; /* a cache */
|
||||||
|
|
||||||
|
static Scheme_Bucket_Table *interned_skip_ribs; /* FIXME: shared among threads */
|
||||||
|
|
||||||
static Scheme_Object *no_nested_inactive_certs;
|
static Scheme_Object *no_nested_inactive_certs;
|
||||||
|
|
||||||
#ifdef MZ_PRECISE_GC
|
#ifdef MZ_PRECISE_GC
|
||||||
|
@ -222,6 +225,18 @@ static Module_Renames *krn;
|
||||||
#define SCHEME_MODIDXP(obj) (SAME_TYPE(SCHEME_TYPE(obj), scheme_module_index_type))
|
#define SCHEME_MODIDXP(obj) (SAME_TYPE(SCHEME_TYPE(obj), scheme_module_index_type))
|
||||||
#define SCHEME_RIB_DELIMP(obj) (SAME_TYPE(SCHEME_TYPE(obj), scheme_rib_delimiter_type))
|
#define SCHEME_RIB_DELIMP(obj) (SAME_TYPE(SCHEME_TYPE(obj), scheme_rib_delimiter_type))
|
||||||
|
|
||||||
|
#define SCHEME_PRUNEP(obj) (SAME_TYPE(SCHEME_TYPE(obj), scheme_prune_context_type))
|
||||||
|
|
||||||
|
XFORM_NONGCING static int is_member(Scheme_Object *a, Scheme_Object *l)
|
||||||
|
{
|
||||||
|
while (SCHEME_PAIRP(l)) {
|
||||||
|
if (SAME_OBJ(a, SCHEME_CAR(l)))
|
||||||
|
return 1;
|
||||||
|
l = SCHEME_CDR(l);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int is_rename_inspector_info(Scheme_Object *v)
|
static int is_rename_inspector_info(Scheme_Object *v)
|
||||||
{
|
{
|
||||||
return (SAME_TYPE(SCHEME_TYPE(v), scheme_inspector_type)
|
return (SAME_TYPE(SCHEME_TYPE(v), scheme_inspector_type)
|
||||||
|
@ -277,6 +292,10 @@ static int is_rename_inspector_info(Scheme_Object *v)
|
||||||
when given a list of ribs, and simplifcation eliminates
|
when given a list of ribs, and simplifcation eliminates
|
||||||
rib delimiters
|
rib delimiters
|
||||||
|
|
||||||
|
- A wrap-elem (make-prune <sym>)
|
||||||
|
restricts binding information to that relevant for <sym>
|
||||||
|
as a datum
|
||||||
|
|
||||||
- A wrap-elem <rename-table> is a module rename set
|
- A wrap-elem <rename-table> is a module rename set
|
||||||
the hash table maps renamed syms to modname-srcname pairs
|
the hash table maps renamed syms to modname-srcname pairs
|
||||||
|
|
||||||
|
@ -548,6 +567,11 @@ void scheme_init_stx(Scheme_Env *env)
|
||||||
"identifier-label-binding",
|
"identifier-label-binding",
|
||||||
1, 1),
|
1, 1),
|
||||||
env);
|
env);
|
||||||
|
scheme_add_global_constant("identifier-prune-lexical-context",
|
||||||
|
scheme_make_immed_prim(identifier_prune,
|
||||||
|
"identifier-prune-lexical-context",
|
||||||
|
1, 2),
|
||||||
|
env);
|
||||||
|
|
||||||
|
|
||||||
scheme_add_global_constant("syntax-source-module",
|
scheme_add_global_constant("syntax-source-module",
|
||||||
|
@ -610,6 +634,9 @@ void scheme_init_stx(Scheme_Env *env)
|
||||||
|
|
||||||
scheme_install_type_writer(scheme_free_id_info_type, write_free_id_info_prefix);
|
scheme_install_type_writer(scheme_free_id_info_type, write_free_id_info_prefix);
|
||||||
scheme_install_type_reader(scheme_free_id_info_type, read_free_id_info_prefix);
|
scheme_install_type_reader(scheme_free_id_info_type, read_free_id_info_prefix);
|
||||||
|
|
||||||
|
REGISTER_SO(interned_skip_ribs);
|
||||||
|
interned_skip_ribs = scheme_make_weak_equal_table();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*========================================================================*/
|
/*========================================================================*/
|
||||||
|
@ -1215,6 +1242,17 @@ Scheme_Object *scheme_stx_id_remove_rib(Scheme_Object *stx, Scheme_Object *ro)
|
||||||
return stx;
|
return stx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *make_prune_context(Scheme_Object *a)
|
||||||
|
{
|
||||||
|
Scheme_Object *p;
|
||||||
|
|
||||||
|
p = scheme_alloc_small_object();
|
||||||
|
p->type = scheme_prune_context_type;
|
||||||
|
SCHEME_BOX_VAL(p) = a;
|
||||||
|
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
/******************** module renames ********************/
|
/******************** module renames ********************/
|
||||||
|
|
||||||
static int same_phase(Scheme_Object *a, Scheme_Object *b)
|
static int same_phase(Scheme_Object *a, Scheme_Object *b)
|
||||||
|
@ -1855,7 +1893,8 @@ static void unmarshal_rename(Module_Renames *mrn,
|
||||||
if (sealed)
|
if (sealed)
|
||||||
mrn->sealed = 0;
|
mrn->sealed = 0;
|
||||||
|
|
||||||
for (l = mrn->unmarshal_info; SCHEME_PAIRP(l); l = SCHEME_CDR(l)) {
|
l = scheme_reverse(mrn->unmarshal_info);
|
||||||
|
for (; SCHEME_PAIRP(l); l = SCHEME_CDR(l)) {
|
||||||
scheme_do_module_rename_unmarshal((Scheme_Object *)mrn, SCHEME_CAR(l),
|
scheme_do_module_rename_unmarshal((Scheme_Object *)mrn, SCHEME_CAR(l),
|
||||||
modidx_shift_from, modidx_shift_to,
|
modidx_shift_from, modidx_shift_to,
|
||||||
export_registry);
|
export_registry);
|
||||||
|
@ -3866,11 +3905,11 @@ static int nonempty_rib(Scheme_Lexical_Rib *rib)
|
||||||
|
|
||||||
static int in_skip_set(Scheme_Object *timestamp, Scheme_Object *skip_ribs)
|
static int in_skip_set(Scheme_Object *timestamp, Scheme_Object *skip_ribs)
|
||||||
{
|
{
|
||||||
while (skip_ribs) {
|
if (!skip_ribs)
|
||||||
if (SAME_OBJ(SCHEME_CAR(skip_ribs), timestamp))
|
return 0;
|
||||||
|
|
||||||
|
if (scheme_hash_tree_get((Scheme_Hash_Tree *)skip_ribs, timestamp))
|
||||||
return 1;
|
return 1;
|
||||||
skip_ribs = SCHEME_CDR(skip_ribs);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -3879,20 +3918,29 @@ static Scheme_Object *add_skip_set(Scheme_Object *timestamp, Scheme_Object *skip
|
||||||
{
|
{
|
||||||
if (in_skip_set(timestamp, skip_ribs))
|
if (in_skip_set(timestamp, skip_ribs))
|
||||||
return skip_ribs;
|
return skip_ribs;
|
||||||
else
|
|
||||||
return scheme_make_raw_pair(timestamp, skip_ribs);
|
if (!skip_ribs)
|
||||||
|
skip_ribs = (Scheme_Object *)scheme_make_hash_tree(1);
|
||||||
|
|
||||||
|
skip_ribs = (Scheme_Object *)scheme_hash_tree_set((Scheme_Hash_Tree *)skip_ribs, timestamp, scheme_true);
|
||||||
|
|
||||||
|
{
|
||||||
|
Scheme_Bucket *b;
|
||||||
|
scheme_start_atomic();
|
||||||
|
b = scheme_bucket_from_table(interned_skip_ribs, (const char *)skip_ribs);
|
||||||
|
scheme_end_atomic_no_swap();
|
||||||
|
if (!b->val)
|
||||||
|
b->val = scheme_true;
|
||||||
|
|
||||||
|
skip_ribs = (Scheme_Object *)HT_EXTRACT_WEAK(b->key);
|
||||||
|
}
|
||||||
|
|
||||||
|
return skip_ribs;
|
||||||
}
|
}
|
||||||
|
|
||||||
XFORM_NONGCING static int same_skipped_ribs(Scheme_Object *a, Scheme_Object *b)
|
XFORM_NONGCING static int same_skipped_ribs(Scheme_Object *a, Scheme_Object *b)
|
||||||
{
|
{
|
||||||
while (a) {
|
return SAME_OBJ(a, b);
|
||||||
if (!b) return 0;
|
|
||||||
if (!SAME_OBJ(SCHEME_CAR(a), SCHEME_CAR(b)))
|
|
||||||
return 0;
|
|
||||||
a = SCHEME_CDR(a);
|
|
||||||
b = SCHEME_CDR(b);
|
|
||||||
}
|
|
||||||
return !b;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
XFORM_NONGCING static Scheme_Object *filter_cached_env(Scheme_Object *other_env, Scheme_Object *skip_ribs)
|
XFORM_NONGCING static Scheme_Object *filter_cached_env(Scheme_Object *other_env, Scheme_Object *skip_ribs)
|
||||||
|
@ -3913,8 +3961,9 @@ XFORM_NONGCING static Scheme_Object *filter_cached_env(Scheme_Object *other_env,
|
||||||
if (SCHEME_RPAIRP(other_env)) {
|
if (SCHEME_RPAIRP(other_env)) {
|
||||||
while (other_env) {
|
while (other_env) {
|
||||||
p = SCHEME_CAR(other_env);
|
p = SCHEME_CAR(other_env);
|
||||||
if (same_skipped_ribs(SCHEME_CAR(p), skip_ribs))
|
if (same_skipped_ribs(SCHEME_CAR(p), skip_ribs)) {
|
||||||
return SCHEME_CDR(p);
|
return SCHEME_CDR(p);
|
||||||
|
}
|
||||||
other_env = SCHEME_CDR(other_env);
|
other_env = SCHEME_CDR(other_env);
|
||||||
}
|
}
|
||||||
return scheme_void;
|
return scheme_void;
|
||||||
|
@ -3978,6 +4027,36 @@ static Scheme_Object *extend_cached_env(Scheme_Object *orig, Scheme_Object *othe
|
||||||
return orig;
|
return orig;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void extract_lex_range(Scheme_Object *rename, Scheme_Object *a, int *_istart, int *_iend)
|
||||||
|
{
|
||||||
|
int istart, iend, c;
|
||||||
|
|
||||||
|
c = SCHEME_RENAME_LEN(rename);
|
||||||
|
|
||||||
|
if (!SCHEME_FALSEP(SCHEME_VEC_ELS(rename)[1])) {
|
||||||
|
void *pos;
|
||||||
|
pos = scheme_hash_get((Scheme_Hash_Table *)(SCHEME_VEC_ELS(rename)[1]), a);
|
||||||
|
if (pos) {
|
||||||
|
istart = SCHEME_INT_VAL(pos);
|
||||||
|
if (istart < 0) {
|
||||||
|
/* -1 indicates multiple slots matching this name. */
|
||||||
|
istart = 0;
|
||||||
|
iend = c;
|
||||||
|
} else
|
||||||
|
iend = istart + 1;
|
||||||
|
} else {
|
||||||
|
istart = 0;
|
||||||
|
iend = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
istart = 0;
|
||||||
|
iend = c;
|
||||||
|
}
|
||||||
|
|
||||||
|
*_istart = istart;
|
||||||
|
*_iend = iend;
|
||||||
|
}
|
||||||
|
|
||||||
/* This needs to be a multiple of 4: */
|
/* This needs to be a multiple of 4: */
|
||||||
#define QUICK_STACK_SIZE 16
|
#define QUICK_STACK_SIZE 16
|
||||||
|
|
||||||
|
@ -4426,6 +4505,7 @@ static Scheme_Object *resolve_env(WRAP_POS *_wraps,
|
||||||
} else {
|
} else {
|
||||||
rename = WRAP_POS_FIRST(wraps);
|
rename = WRAP_POS_FIRST(wraps);
|
||||||
is_rib = NULL;
|
is_rib = NULL;
|
||||||
|
did_rib = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPLAIN(fprintf(stderr, "%d lexical rename (%d) %d %s%s\n", depth, is_rib ? 1 : 0,
|
EXPLAIN(fprintf(stderr, "%d lexical rename (%d) %d %s%s\n", depth, is_rib ? 1 : 0,
|
||||||
|
@ -4436,25 +4516,7 @@ static Scheme_Object *resolve_env(WRAP_POS *_wraps,
|
||||||
c = SCHEME_RENAME_LEN(rename);
|
c = SCHEME_RENAME_LEN(rename);
|
||||||
|
|
||||||
/* Get index from hash table, if there is one: */
|
/* Get index from hash table, if there is one: */
|
||||||
if (!SCHEME_FALSEP(SCHEME_VEC_ELS(rename)[1])) {
|
extract_lex_range(rename, SCHEME_STX_VAL(a), &istart, &iend);
|
||||||
void *pos;
|
|
||||||
pos = scheme_hash_get((Scheme_Hash_Table *)(SCHEME_VEC_ELS(rename)[1]), SCHEME_STX_VAL(a));
|
|
||||||
if (pos) {
|
|
||||||
istart = SCHEME_INT_VAL(pos);
|
|
||||||
if (istart < 0) {
|
|
||||||
/* -1 indicates multiple slots matching this name. */
|
|
||||||
istart = 0;
|
|
||||||
iend = c;
|
|
||||||
} else
|
|
||||||
iend = istart + 1;
|
|
||||||
} else {
|
|
||||||
istart = 0;
|
|
||||||
iend = 0;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
istart = 0;
|
|
||||||
iend = c;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (ri = istart; ri < iend; ri++) {
|
for (ri = istart; ri < iend; ri++) {
|
||||||
renamed = SCHEME_VEC_ELS(rename)[2+ri];
|
renamed = SCHEME_VEC_ELS(rename)[2+ri];
|
||||||
|
@ -4591,6 +4653,7 @@ static Scheme_Object *resolve_env(WRAP_POS *_wraps,
|
||||||
rib_delim = WRAP_POS_FIRST(wraps);
|
rib_delim = WRAP_POS_FIRST(wraps);
|
||||||
if (SCHEME_NULLP(SCHEME_BOX_VAL(rib_delim)))
|
if (SCHEME_NULLP(SCHEME_BOX_VAL(rib_delim)))
|
||||||
rib_delim = scheme_false;
|
rib_delim = scheme_false;
|
||||||
|
did_rib = NULL;
|
||||||
} else if (SCHEME_NUMBERP(WRAP_POS_FIRST(wraps))) {
|
} else if (SCHEME_NUMBERP(WRAP_POS_FIRST(wraps))) {
|
||||||
EXPLAIN(fprintf(stderr, "%d mark %p\n", depth, WRAP_POS_FIRST(wraps)));
|
EXPLAIN(fprintf(stderr, "%d mark %p\n", depth, WRAP_POS_FIRST(wraps)));
|
||||||
did_rib = NULL;
|
did_rib = NULL;
|
||||||
|
@ -4613,6 +4676,11 @@ static Scheme_Object *resolve_env(WRAP_POS *_wraps,
|
||||||
|
|
||||||
continue; /* <<<<< ------ */
|
continue; /* <<<<< ------ */
|
||||||
}
|
}
|
||||||
|
} else if (SCHEME_PRUNEP(WRAP_POS_FIRST(wraps))) {
|
||||||
|
if (!is_member(SCHEME_STX_VAL(a), SCHEME_BOX_VAL(WRAP_POS_FIRST(wraps)))) {
|
||||||
|
/* Doesn't match pruned-to sym; already produce #f */
|
||||||
|
return scheme_false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!rib)
|
if (!rib)
|
||||||
|
@ -4859,6 +4927,11 @@ static Scheme_Object *get_module_src_name(Scheme_Object *a, Scheme_Object *orig_
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} while (rib);
|
} while (rib);
|
||||||
|
} else if (SCHEME_PRUNEP(WRAP_POS_FIRST(wraps))) {
|
||||||
|
if (!is_member(SCHEME_STX_VAL(a), SCHEME_BOX_VAL(WRAP_POS_FIRST(wraps)))) {
|
||||||
|
/* Doesn't match pruned-to sym, so no binding */
|
||||||
|
return SCHEME_STX_VAL(a);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Keep looking: */
|
/* Keep looking: */
|
||||||
|
@ -5001,7 +5074,7 @@ int scheme_stx_ribs_matter(Scheme_Object *a, Scheme_Object *skip_ribs)
|
||||||
Scheme_Object *m1, *m2, *skips = NULL;
|
Scheme_Object *m1, *m2, *skips = NULL;
|
||||||
|
|
||||||
while (SCHEME_PAIRP(skip_ribs)) {
|
while (SCHEME_PAIRP(skip_ribs)) {
|
||||||
skips = scheme_make_raw_pair(((Scheme_Lexical_Rib *)SCHEME_CAR(skip_ribs))->timestamp,
|
skips = add_skip_set(((Scheme_Lexical_Rib *)SCHEME_CAR(skip_ribs))->timestamp,
|
||||||
skips);
|
skips);
|
||||||
skip_ribs = SCHEME_CDR(skip_ribs);
|
skip_ribs = SCHEME_CDR(skip_ribs);
|
||||||
}
|
}
|
||||||
|
@ -5521,15 +5594,49 @@ static Scheme_Object *extract_free_id_info(Scheme_Object *id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static Scheme_Object *simplify_lex_renames(Scheme_Object *wraps, Scheme_Hash_Table *lex_cache)
|
static int not_in_rename(Scheme_Object *constrain_to_syms, Scheme_Object *rename)
|
||||||
|
{
|
||||||
|
int istart, iend, ri;
|
||||||
|
Scheme_Object *renamed, *s;
|
||||||
|
|
||||||
|
while (SCHEME_PAIRP(constrain_to_syms)) {
|
||||||
|
|
||||||
|
s = SCHEME_CAR(constrain_to_syms);
|
||||||
|
extract_lex_range(rename, s, &istart, &iend);
|
||||||
|
|
||||||
|
for (ri = istart; ri < iend; ri++) {
|
||||||
|
renamed = SCHEME_VEC_ELS(rename)[2+ri];
|
||||||
|
if (SAME_OBJ(renamed, s))
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
constrain_to_syms = SCHEME_CDR(constrain_to_syms);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int not_in_rib(Scheme_Object *constrain_to_syms, Scheme_Lexical_Rib *rib)
|
||||||
|
{
|
||||||
|
for (rib = rib->next; rib; rib = rib->next) {
|
||||||
|
if (!not_in_rename(constrain_to_syms, rib->rename))
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define EXPLAIN_R(x) /* empty */
|
||||||
|
|
||||||
|
static Scheme_Object *simplify_lex_renames(Scheme_Object *wraps, Scheme_Hash_Table *lex_cache,
|
||||||
|
Scheme_Object *stx_datum)
|
||||||
{
|
{
|
||||||
WRAP_POS w, prev, w2;
|
WRAP_POS w, prev, w2;
|
||||||
Scheme_Object *stack = scheme_null, *key, *old_key, *prec_ribs = NULL, *prev_prec_ribs;
|
Scheme_Object *stack = scheme_null, *key, *old_key, *prec_ribs, *prev_prec_ribs;
|
||||||
Scheme_Object *ribs_stack = scheme_null, *rib_delim = scheme_false;
|
Scheme_Object *ribs_stack = scheme_null, *rib_delim = scheme_false, *constrain_to_syms = NULL;
|
||||||
Scheme_Object *v, *v2, *v2l, *v2rdl, *stx, *name, *svl, *end_mutable = NULL, **v2_rib_delims = NULL, *svrdl;
|
Scheme_Object *v, *v2, *v2l, *v2rdl, *stx, *name, *svl, *end_mutable = NULL, **v2_rib_delims = NULL, *svrdl;
|
||||||
Scheme_Lexical_Rib *did_rib = NULL;
|
Scheme_Lexical_Rib *did_rib = NULL;
|
||||||
Scheme_Hash_Table *skip_ribs_ht = NULL, *prev_skip_ribs_ht;
|
Scheme_Hash_Table *skip_ribs_ht = NULL, *prev_skip_ribs_ht;
|
||||||
int copy_on_write, no_rib_mutation = 1;
|
int copy_on_write, no_rib_mutation = 1, rib_count = 0;
|
||||||
long size, vsize, psize, i, j, pos;
|
long size, vsize, psize, i, j, pos;
|
||||||
|
|
||||||
/* Although it makes no sense to simplify the rename table itself,
|
/* Although it makes no sense to simplify the rename table itself,
|
||||||
|
@ -5563,25 +5670,81 @@ static Scheme_Object *simplify_lex_renames(Scheme_Object *wraps, Scheme_Hash_Tab
|
||||||
the symbol and marks. So, we have to compute that summary as we
|
the symbol and marks. So, we have to compute that summary as we
|
||||||
go in. */
|
go in. */
|
||||||
|
|
||||||
|
if (SCHEME_SYMBOLP(stx_datum)) {
|
||||||
|
/* Search for prunings */
|
||||||
|
WRAP_POS_INIT(w, wraps);
|
||||||
|
old_key = NULL;
|
||||||
|
prec_ribs = NULL;
|
||||||
|
while (!WRAP_POS_END_P(w)) {
|
||||||
|
if (SCHEME_VECTORP(WRAP_POS_FIRST(w))
|
||||||
|
|| SCHEME_RIBP(WRAP_POS_FIRST(w))) {
|
||||||
|
/* Lexical rename --- maybe an already-simplified point */
|
||||||
|
key = WRAP_POS_KEY(w);
|
||||||
|
if (!SAME_OBJ(key, old_key)) {
|
||||||
|
v = scheme_hash_get(lex_cache, key);
|
||||||
|
if (v && SCHEME_HASHTP(v)) {
|
||||||
|
v = scheme_hash_get((Scheme_Hash_Table *)v, prec_ribs ? prec_ribs : scheme_false);
|
||||||
|
} else if (prec_ribs)
|
||||||
|
v = NULL;
|
||||||
|
} else
|
||||||
|
v = NULL;
|
||||||
|
old_key = key;
|
||||||
|
|
||||||
|
if (v) {
|
||||||
|
/* Tables here are already simplified. */
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (SCHEME_RIBP(WRAP_POS_FIRST(w))) {
|
||||||
|
Scheme_Lexical_Rib *rib = (Scheme_Lexical_Rib *)WRAP_POS_FIRST(w);
|
||||||
|
if (!nonempty_rib(rib))
|
||||||
|
prec_ribs = add_skip_set(rib->timestamp, prec_ribs);
|
||||||
|
}
|
||||||
|
} else if (SCHEME_PRUNEP(WRAP_POS_FIRST(w))) {
|
||||||
|
v = SCHEME_BOX_VAL(WRAP_POS_FIRST(w));
|
||||||
|
if (is_member(stx_datum, v)) {
|
||||||
|
if (!constrain_to_syms)
|
||||||
|
constrain_to_syms = v;
|
||||||
|
else {
|
||||||
|
v2 = scheme_null;
|
||||||
|
while (SCHEME_PAIRP(v)) {
|
||||||
|
if (is_member(SCHEME_CAR(v), constrain_to_syms))
|
||||||
|
v2 = scheme_make_pair(SCHEME_CAR(v), v2);
|
||||||
|
v = SCHEME_CDR(v);
|
||||||
|
}
|
||||||
|
constrain_to_syms = v2;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
constrain_to_syms = scheme_null;
|
||||||
|
}
|
||||||
|
WRAP_POS_INC(w);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
WRAP_POS_INIT(w, wraps);
|
WRAP_POS_INIT(w, wraps);
|
||||||
WRAP_POS_INIT_END(prev);
|
WRAP_POS_INIT_END(prev);
|
||||||
|
|
||||||
old_key = NULL;
|
old_key = NULL;
|
||||||
|
prec_ribs = NULL;
|
||||||
|
|
||||||
v2l = scheme_null;
|
v2l = scheme_null;
|
||||||
v2rdl = NULL;
|
v2rdl = NULL;
|
||||||
|
|
||||||
EXPLAIN_S(fprintf(stderr, "[in simplify]\n"));
|
EXPLAIN_S(fprintf(stderr, "[in simplify]\n"));
|
||||||
|
|
||||||
|
EXPLAIN_R(printf("Simplifying %p\n", lex_cache));
|
||||||
|
|
||||||
while (!WRAP_POS_END_P(w)) {
|
while (!WRAP_POS_END_P(w)) {
|
||||||
if (SCHEME_VECTORP(WRAP_POS_FIRST(w))
|
if (SCHEME_VECTORP(WRAP_POS_FIRST(w))
|
||||||
|| SCHEME_RIBP(WRAP_POS_FIRST(w))) {
|
|| SCHEME_RIBP(WRAP_POS_FIRST(w))) {
|
||||||
/* Lexical rename */
|
/* Lexical rename */
|
||||||
key = WRAP_POS_KEY(w);
|
key = WRAP_POS_KEY(w);
|
||||||
|
EXPLAIN_R(printf(" key %p\n", key));
|
||||||
if (!SAME_OBJ(key, old_key)) {
|
if (!SAME_OBJ(key, old_key)) {
|
||||||
if (!prec_ribs)
|
|
||||||
v = scheme_hash_get(lex_cache, key);
|
v = scheme_hash_get(lex_cache, key);
|
||||||
else
|
if (v && SCHEME_HASHTP(v)) {
|
||||||
|
v = scheme_hash_get((Scheme_Hash_Table *)v, prec_ribs ? prec_ribs : scheme_false);
|
||||||
|
} else if (prec_ribs)
|
||||||
v = NULL;
|
v = NULL;
|
||||||
} else
|
} else
|
||||||
v = NULL;
|
v = NULL;
|
||||||
|
@ -5609,11 +5772,15 @@ static Scheme_Object *simplify_lex_renames(Scheme_Object *wraps, Scheme_Hash_Tab
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if (SAME_OBJ(did_rib, rib)
|
if (SAME_OBJ(did_rib, rib)
|
||||||
|| !nonempty_rib(rib)) {
|
|| !nonempty_rib(rib)
|
||||||
|
|| (constrain_to_syms && !not_in_rib(constrain_to_syms, rib))) {
|
||||||
skip_this = 1;
|
skip_this = 1;
|
||||||
|
if (!nonempty_rib(rib))
|
||||||
|
prec_ribs = add_skip_set(rib->timestamp, prec_ribs);
|
||||||
EXPLAIN_S(fprintf(stderr, " to skip %p=%s\n", rib,
|
EXPLAIN_S(fprintf(stderr, " to skip %p=%s\n", rib,
|
||||||
scheme_write_to_string(rib->timestamp, NULL)));
|
scheme_write_to_string(rib->timestamp, NULL)));
|
||||||
} else {
|
} else {
|
||||||
|
rib_count++;
|
||||||
did_rib = rib;
|
did_rib = rib;
|
||||||
prec_ribs = add_skip_set(rib->timestamp, prec_ribs);
|
prec_ribs = add_skip_set(rib->timestamp, prec_ribs);
|
||||||
|
|
||||||
|
@ -5623,6 +5790,8 @@ static Scheme_Object *simplify_lex_renames(Scheme_Object *wraps, Scheme_Hash_Tab
|
||||||
|
|
||||||
copy_on_write = 1;
|
copy_on_write = 1;
|
||||||
|
|
||||||
|
EXPLAIN_R(printf(" rib %p\n", rib->timestamp));
|
||||||
|
|
||||||
/* Compute, per id, whether to skip later instances of rib: */
|
/* Compute, per id, whether to skip later instances of rib: */
|
||||||
for (rib = rib->next; rib; rib = rib->next) {
|
for (rib = rib->next; rib; rib = rib->next) {
|
||||||
vsize = SCHEME_RENAME_LEN(rib->rename);
|
vsize = SCHEME_RENAME_LEN(rib->rename);
|
||||||
|
@ -5636,8 +5805,9 @@ static Scheme_Object *simplify_lex_renames(Scheme_Object *wraps, Scheme_Hash_Tab
|
||||||
scheme_write_to_string(SCHEME_VEC_ELS(rib->rename)[0], NULL)));
|
scheme_write_to_string(SCHEME_VEC_ELS(rib->rename)[0], NULL)));
|
||||||
|
|
||||||
/* already skipped? */
|
/* already skipped? */
|
||||||
if (!skip_ribs_ht
|
if ((!constrain_to_syms || is_member(SCHEME_STX_VAL(stx), constrain_to_syms))
|
||||||
|| !scheme_hash_get(skip_ribs_ht, scheme_make_pair(SCHEME_STX_VAL(stx), rib->timestamp))) {
|
&& (!skip_ribs_ht
|
||||||
|
|| !scheme_hash_get(skip_ribs_ht, scheme_make_pair(SCHEME_STX_VAL(stx), rib->timestamp)))) {
|
||||||
/* No. Should we skip? */
|
/* No. Should we skip? */
|
||||||
Scheme_Object *other_env;
|
Scheme_Object *other_env;
|
||||||
other_env = SCHEME_VEC_ELS(rib->rename)[2+vsize+i];
|
other_env = SCHEME_VEC_ELS(rib->rename)[2+vsize+i];
|
||||||
|
@ -5649,6 +5819,11 @@ static Scheme_Object *simplify_lex_renames(Scheme_Object *wraps, Scheme_Hash_Tab
|
||||||
scheme_signal_error("compile: unsealed local-definition context found in fully expanded form");
|
scheme_signal_error("compile: unsealed local-definition context found in fully expanded form");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
Scheme_Object *e;
|
||||||
|
e = extend_cached_env(SCHEME_VEC_ELS(rib->rename)[2+vsize+i], other_env, prec_ribs, 0);
|
||||||
|
SCHEME_VEC_ELS(rib->rename)[2+vsize+i] = e;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
WRAP_POS_INIT(w2, ((Scheme_Stx *)stx)->wraps);
|
WRAP_POS_INIT(w2, ((Scheme_Stx *)stx)->wraps);
|
||||||
if (same_marks(&w2, &w, other_env)) {
|
if (same_marks(&w2, &w, other_env)) {
|
||||||
|
@ -5678,8 +5853,16 @@ static Scheme_Object *simplify_lex_renames(Scheme_Object *wraps, Scheme_Hash_Tab
|
||||||
if ((SCHEME_VEC_SIZE(v) > 2) /* a simplified vec can be empty */
|
if ((SCHEME_VEC_SIZE(v) > 2) /* a simplified vec can be empty */
|
||||||
&& !SCHEME_SYMBOLP(SCHEME_VEC_ELS(v)[2])) {
|
&& !SCHEME_SYMBOLP(SCHEME_VEC_ELS(v)[2])) {
|
||||||
add = 1;
|
add = 1;
|
||||||
|
|
||||||
|
if (constrain_to_syms) {
|
||||||
|
/* Maybe pruned so that we don't need to resolve: */
|
||||||
|
if (not_in_rename(constrain_to_syms, v))
|
||||||
|
skip_this = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
EXPLAIN_R(printf(" lex reset\n"));
|
||||||
|
did_rib = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (add) {
|
if (add) {
|
||||||
if (skip_this) {
|
if (skip_this) {
|
||||||
|
@ -5709,11 +5892,31 @@ static Scheme_Object *simplify_lex_renames(Scheme_Object *wraps, Scheme_Hash_Tab
|
||||||
rib_delim = WRAP_POS_FIRST(w);
|
rib_delim = WRAP_POS_FIRST(w);
|
||||||
if (SCHEME_NULLP(SCHEME_BOX_VAL(rib_delim)))
|
if (SCHEME_NULLP(SCHEME_BOX_VAL(rib_delim)))
|
||||||
rib_delim = scheme_false;
|
rib_delim = scheme_false;
|
||||||
|
if (rib_count > 1) {
|
||||||
|
EXPLAIN_R(if (did_rib) printf(" reset delim %d\n", rib_count));
|
||||||
|
did_rib = NULL;
|
||||||
|
}
|
||||||
|
rib_count = 0;
|
||||||
|
} else if (SCHEME_NUMBERP(WRAP_POS_FIRST(w))) {
|
||||||
|
v = WRAP_POS_FIRST(w);
|
||||||
|
WRAP_POS_COPY(w2, w);
|
||||||
|
WRAP_POS_INC(w2);
|
||||||
|
if (!WRAP_POS_END_P(w2) && SAME_OBJ(v, WRAP_POS_FIRST(w2))) {
|
||||||
|
WRAP_POS_INC(w);
|
||||||
|
} else {
|
||||||
|
EXPLAIN_R(printf(" reset by mark\n"));
|
||||||
|
did_rib = NULL;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
EXPLAIN_R(if (did_rib) printf(" reset %d\n", SCHEME_TYPE(WRAP_POS_FIRST(w))));
|
||||||
|
did_rib = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
WRAP_POS_INC(w);
|
WRAP_POS_INC(w);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EXPLAIN_R(printf(" ... phase2\n"));
|
||||||
|
|
||||||
while (!SCHEME_NULLP(stack)) {
|
while (!SCHEME_NULLP(stack)) {
|
||||||
key = SCHEME_CAR(stack);
|
key = SCHEME_CAR(stack);
|
||||||
prev_prec_ribs = SCHEME_VEC_ELS(key)[1];
|
prev_prec_ribs = SCHEME_VEC_ELS(key)[1];
|
||||||
|
@ -5803,9 +6006,10 @@ static Scheme_Object *simplify_lex_renames(Scheme_Object *wraps, Scheme_Hash_Tab
|
||||||
name = SCHEME_STX_VAL(stx);
|
name = SCHEME_STX_VAL(stx);
|
||||||
SCHEME_VEC_ELS(v2)[2+pos] = name;
|
SCHEME_VEC_ELS(v2)[2+pos] = name;
|
||||||
|
|
||||||
if (!rib
|
if ((!constrain_to_syms || is_member(name, constrain_to_syms))
|
||||||
|
&& (!rib
|
||||||
|| !skip_ribs_ht
|
|| !skip_ribs_ht
|
||||||
|| !scheme_hash_get(skip_ribs_ht, scheme_make_pair(name, rib->timestamp))) {
|
|| !scheme_hash_get(skip_ribs_ht, scheme_make_pair(name, rib->timestamp)))) {
|
||||||
/* Either this name is in prev, in which case the answer
|
/* Either this name is in prev, in which case the answer
|
||||||
must match this rename's target, or this rename's
|
must match this rename's target, or this rename's
|
||||||
answer applies. */
|
answer applies. */
|
||||||
|
@ -5840,6 +6044,10 @@ static Scheme_Object *simplify_lex_renames(Scheme_Object *wraps, Scheme_Hash_Tab
|
||||||
ok = other_env;
|
ok = other_env;
|
||||||
SCHEME_VEC_ELS(v)[2+vvsize+ii] = ok;
|
SCHEME_VEC_ELS(v)[2+vvsize+ii] = ok;
|
||||||
ok = NULL;
|
ok = NULL;
|
||||||
|
} else {
|
||||||
|
ok = extend_cached_env(SCHEME_VEC_ELS(v)[2+vvsize+ii], other_env, prec_ribs, 0);
|
||||||
|
SCHEME_VEC_ELS(v)[2+vvsize+ii] = ok;
|
||||||
|
ok = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6044,19 +6252,36 @@ static Scheme_Object *simplify_lex_renames(Scheme_Object *wraps, Scheme_Hash_Tab
|
||||||
WRAP_POS_DEC(w);
|
WRAP_POS_DEC(w);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!prev_prec_ribs) {
|
if (!constrain_to_syms) {
|
||||||
/* no dependency on ribs, so we can globally cache this result */
|
v = scheme_hash_get(lex_cache, key);
|
||||||
|
if (!v && !prev_prec_ribs) {
|
||||||
|
/* no dependency on ribs, so we can simply cache this result: */
|
||||||
scheme_hash_set(lex_cache, key, v2l);
|
scheme_hash_set(lex_cache, key, v2l);
|
||||||
|
} else {
|
||||||
|
Scheme_Hash_Table *ht;
|
||||||
|
if (v && SCHEME_HASHTP(v))
|
||||||
|
ht = (Scheme_Hash_Table *)v;
|
||||||
|
else {
|
||||||
|
ht = scheme_make_hash_table(SCHEME_hash_ptr);
|
||||||
|
}
|
||||||
|
if (v && !SCHEME_HASHTP(v))
|
||||||
|
scheme_hash_set(ht, scheme_false, v);
|
||||||
|
scheme_hash_set(ht, prev_prec_ribs ? prev_prec_ribs : scheme_false, v2l);
|
||||||
|
scheme_hash_set(lex_cache, key, (Scheme_Object *)ht);
|
||||||
|
}
|
||||||
end_mutable = v2l;
|
end_mutable = v2l;
|
||||||
}
|
}
|
||||||
|
|
||||||
stack = SCHEME_CDR(stack);
|
stack = SCHEME_CDR(stack);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EXPLAIN_R(printf(" ... done\n"));
|
||||||
|
|
||||||
return v2l;
|
return v2l;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Scheme_Object *wraps_to_datum(Scheme_Object *w_in,
|
static Scheme_Object *wraps_to_datum(Scheme_Object *stx_datum,
|
||||||
|
Scheme_Object *w_in,
|
||||||
Scheme_Marshal_Tables *mt,
|
Scheme_Marshal_Tables *mt,
|
||||||
Scheme_Hash_Table *rns,
|
Scheme_Hash_Table *rns,
|
||||||
int just_simplify)
|
int just_simplify)
|
||||||
|
@ -6064,7 +6289,7 @@ static Scheme_Object *wraps_to_datum(Scheme_Object *w_in,
|
||||||
Scheme_Object *stack, *a, *old_key, *simplifies = scheme_null, *prec_ribs = scheme_null;
|
Scheme_Object *stack, *a, *old_key, *simplifies = scheme_null, *prec_ribs = scheme_null;
|
||||||
WRAP_POS w;
|
WRAP_POS w;
|
||||||
Scheme_Hash_Table *lex_cache, *reverse_map;
|
Scheme_Hash_Table *lex_cache, *reverse_map;
|
||||||
int stack_size = 0;
|
int stack_size = 0, specific_to_datum = 0;
|
||||||
|
|
||||||
if (!rns)
|
if (!rns)
|
||||||
rns = mt->rns;
|
rns = mt->rns;
|
||||||
|
@ -6098,8 +6323,11 @@ static Scheme_Object *wraps_to_datum(Scheme_Object *w_in,
|
||||||
scheme_hash_set(rns, scheme_void, (Scheme_Object *)lex_cache);
|
scheme_hash_set(rns, scheme_void, (Scheme_Object *)lex_cache);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!just_simplify)
|
||||||
|
stx_datum = scheme_false;
|
||||||
|
|
||||||
/* Ensures that all lexical tables in w have been simplified */
|
/* Ensures that all lexical tables in w have been simplified */
|
||||||
simplifies = simplify_lex_renames(w_in, lex_cache);
|
simplifies = simplify_lex_renames(w_in, lex_cache, stx_datum);
|
||||||
|
|
||||||
if (mt)
|
if (mt)
|
||||||
scheme_marshal_push_refs(mt);
|
scheme_marshal_push_refs(mt);
|
||||||
|
@ -6382,6 +6610,16 @@ static Scheme_Object *wraps_to_datum(Scheme_Object *w_in,
|
||||||
stack_size++;
|
stack_size++;
|
||||||
} else if (SCHEME_HASHTP(a)) {
|
} else if (SCHEME_HASHTP(a)) {
|
||||||
/* chain-specific cache; drop it */
|
/* chain-specific cache; drop it */
|
||||||
|
} else if (SCHEME_PRUNEP(a)) {
|
||||||
|
if (SCHEME_SYMBOLP(stx_datum)) {
|
||||||
|
/* Assuming that there are lex renames later, then this chain is
|
||||||
|
specific to this wrap. */
|
||||||
|
specific_to_datum = 1;
|
||||||
|
}
|
||||||
|
if (!just_simplify)
|
||||||
|
a = scheme_box(SCHEME_BOX_VAL(a));
|
||||||
|
stack = CONS(a, stack);
|
||||||
|
stack_size++;
|
||||||
} else {
|
} else {
|
||||||
/* box, a phase shift */
|
/* box, a phase shift */
|
||||||
/* We used to drop a phase shift if there are no following
|
/* We used to drop a phase shift if there are no following
|
||||||
|
@ -6460,6 +6698,7 @@ static Scheme_Object *wraps_to_datum(Scheme_Object *w_in,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!specific_to_datum)
|
||||||
scheme_hash_set(reverse_map, stack, w_in);
|
scheme_hash_set(reverse_map, stack, w_in);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6487,6 +6726,7 @@ static Scheme_Object *wraps_to_datum(Scheme_Object *w_in,
|
||||||
|
|
||||||
/* Remember this wrap set: */
|
/* Remember this wrap set: */
|
||||||
if (just_simplify) {
|
if (just_simplify) {
|
||||||
|
if (!specific_to_datum)
|
||||||
scheme_hash_set(rns, w_in, stack);
|
scheme_hash_set(rns, w_in, stack);
|
||||||
return stack;
|
return stack;
|
||||||
} else {
|
} else {
|
||||||
|
@ -6670,7 +6910,7 @@ static Scheme_Object *syntax_to_datum_inner(Scheme_Object *o,
|
||||||
if (with_marks) {
|
if (with_marks) {
|
||||||
v = extract_for_common_wrap(v, 1, 0);
|
v = extract_for_common_wrap(v, 1, 0);
|
||||||
if (v && SAME_OBJ(common_wraps, v)) {
|
if (v && SAME_OBJ(common_wraps, v)) {
|
||||||
converted_wraps = wraps_to_datum(stx->wraps, mt, NULL, 0);
|
converted_wraps = wraps_to_datum(scheme_false, stx->wraps, mt, NULL, 0);
|
||||||
if (SAME_OBJ(common_wraps, converted_wraps))
|
if (SAME_OBJ(common_wraps, converted_wraps))
|
||||||
lift_common_wraps(first, common_wraps, cnt, 1);
|
lift_common_wraps(first, common_wraps, cnt, 1);
|
||||||
else
|
else
|
||||||
|
@ -6688,7 +6928,7 @@ static Scheme_Object *syntax_to_datum_inner(Scheme_Object *o,
|
||||||
first = scheme_make_pair(scheme_make_integer(cnt), first);
|
first = scheme_make_pair(scheme_make_integer(cnt), first);
|
||||||
}
|
}
|
||||||
} else if (with_marks && SCHEME_TRUEP(common_wraps)) {
|
} else if (with_marks && SCHEME_TRUEP(common_wraps)) {
|
||||||
converted_wraps = wraps_to_datum(stx->wraps, mt, NULL, 0);
|
converted_wraps = wraps_to_datum(scheme_false, stx->wraps, mt, NULL, 0);
|
||||||
if (SAME_OBJ(common_wraps, converted_wraps))
|
if (SAME_OBJ(common_wraps, converted_wraps))
|
||||||
lift_common_wraps(first, common_wraps, cnt, 0);
|
lift_common_wraps(first, common_wraps, cnt, 0);
|
||||||
else
|
else
|
||||||
|
@ -6750,7 +6990,7 @@ static Scheme_Object *syntax_to_datum_inner(Scheme_Object *o,
|
||||||
|
|
||||||
if (with_marks > 1) {
|
if (with_marks > 1) {
|
||||||
if (!converted_wraps)
|
if (!converted_wraps)
|
||||||
converted_wraps = wraps_to_datum(stx->wraps, mt, NULL, 0);
|
converted_wraps = wraps_to_datum(stx->val, stx->wraps, mt, NULL, 0);
|
||||||
result = CONS(result, converted_wraps);
|
result = CONS(result, converted_wraps);
|
||||||
if (stx->certs) {
|
if (stx->certs) {
|
||||||
Scheme_Object *cert_marks = scheme_null, *icert_marks = scheme_null;
|
Scheme_Object *cert_marks = scheme_null, *icert_marks = scheme_null;
|
||||||
|
@ -7348,9 +7588,19 @@ static Scheme_Object *datum_to_wraps(Scheme_Object *w,
|
||||||
1);
|
1);
|
||||||
} else if (SCHEME_SYMBOLP(a)) {
|
} else if (SCHEME_SYMBOLP(a)) {
|
||||||
/* mark barrier */
|
/* mark barrier */
|
||||||
|
} else if (SCHEME_BOXP(a)) {
|
||||||
|
if (SCHEME_PAIRP(SCHEME_BOX_VAL(a))) {
|
||||||
|
/* prune context */
|
||||||
|
a = make_prune_context(SCHEME_BOX_VAL(a));
|
||||||
} else {
|
} else {
|
||||||
/* must be a box for a phase shift */
|
/* must be a phase shift */
|
||||||
/* (or garbage due to a bad .zo, and we'll ignore it) */
|
Scheme_Object *vec;
|
||||||
|
vec = SCHEME_BOX_VAL(a);
|
||||||
|
if (!SCHEME_VECTORP(vec)) return_NULL;
|
||||||
|
if (SCHEME_VEC_SIZE(vec) != 4) return_NULL;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return_NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wc)
|
if (wc)
|
||||||
|
@ -7827,7 +8077,7 @@ static void simplify_syntax_inner(Scheme_Object *o,
|
||||||
scheme_stx_content((Scheme_Object *)stx);
|
scheme_stx_content((Scheme_Object *)stx);
|
||||||
|
|
||||||
if (rns) {
|
if (rns) {
|
||||||
v = wraps_to_datum(stx->wraps, NULL, rns, 1);
|
v = wraps_to_datum(stx->val, stx->wraps, NULL, rns, 1);
|
||||||
stx->wraps = v;
|
stx->wraps = v;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8638,6 +8888,32 @@ static Scheme_Object *module_label_binding(int argc, Scheme_Object **argv)
|
||||||
return do_module_binding("identifier-label-binding", argc, argv, scheme_false);
|
return do_module_binding("identifier-label-binding", argc, argv, scheme_false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Scheme_Object *identifier_prune(int argc, Scheme_Object **argv)
|
||||||
|
{
|
||||||
|
Scheme_Object *a = argv[0], *p, *l;
|
||||||
|
|
||||||
|
if (!SCHEME_STXP(a) || !SCHEME_STX_SYMBOLP(a))
|
||||||
|
scheme_wrong_type("identifier-prune-lexical-context", "identifier syntax", 0, argc, argv);
|
||||||
|
|
||||||
|
if (argc > 1) {
|
||||||
|
l = argv[1];
|
||||||
|
while (SCHEME_PAIRP(l)) {
|
||||||
|
if (!SCHEME_SYMBOLP(SCHEME_CAR(l)))
|
||||||
|
break;
|
||||||
|
l = SCHEME_CDR(l);
|
||||||
|
}
|
||||||
|
if (!SCHEME_NULLP(l))
|
||||||
|
scheme_wrong_type("identifier-prune-lexical-context", "list of symbols", 1, argc, argv);
|
||||||
|
l = argv[1];
|
||||||
|
} else {
|
||||||
|
l = scheme_make_pair(SCHEME_STX_VAL(a), scheme_null);
|
||||||
|
}
|
||||||
|
|
||||||
|
p = make_prune_context(l);
|
||||||
|
|
||||||
|
return scheme_add_rename(a, p);
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *syntax_src_module(int argc, Scheme_Object **argv)
|
static Scheme_Object *syntax_src_module(int argc, Scheme_Object **argv)
|
||||||
{
|
{
|
||||||
if (!SCHEME_STXP(argv[0]))
|
if (!SCHEME_STXP(argv[0]))
|
||||||
|
|
|
@ -170,84 +170,85 @@ enum {
|
||||||
scheme_free_id_info_type, /* 152 */
|
scheme_free_id_info_type, /* 152 */
|
||||||
scheme_rib_delimiter_type, /* 153 */
|
scheme_rib_delimiter_type, /* 153 */
|
||||||
scheme_noninline_proc_type, /* 154 */
|
scheme_noninline_proc_type, /* 154 */
|
||||||
|
scheme_prune_context_type, /* 155 */
|
||||||
|
|
||||||
#ifdef MZTAG_REQUIRED
|
#ifdef MZTAG_REQUIRED
|
||||||
_scheme_last_normal_type_, /* 155 */
|
_scheme_last_normal_type_, /* 156 */
|
||||||
|
|
||||||
scheme_rt_weak_array, /* 156 */
|
scheme_rt_weak_array, /* 157 */
|
||||||
|
|
||||||
scheme_rt_comp_env, /* 157 */
|
scheme_rt_comp_env, /* 158 */
|
||||||
scheme_rt_constant_binding, /* 158 */
|
scheme_rt_constant_binding, /* 159 */
|
||||||
scheme_rt_resolve_info, /* 159 */
|
scheme_rt_resolve_info, /* 160 */
|
||||||
scheme_rt_optimize_info, /* 160 */
|
scheme_rt_optimize_info, /* 161 */
|
||||||
scheme_rt_compile_info, /* 161 */
|
scheme_rt_compile_info, /* 162 */
|
||||||
scheme_rt_cont_mark, /* 162 */
|
scheme_rt_cont_mark, /* 163 */
|
||||||
scheme_rt_saved_stack, /* 163 */
|
scheme_rt_saved_stack, /* 164 */
|
||||||
scheme_rt_reply_item, /* 164 */
|
scheme_rt_reply_item, /* 165 */
|
||||||
scheme_rt_closure_info, /* 165 */
|
scheme_rt_closure_info, /* 166 */
|
||||||
scheme_rt_overflow, /* 166 */
|
scheme_rt_overflow, /* 167 */
|
||||||
scheme_rt_overflow_jmp, /* 167 */
|
scheme_rt_overflow_jmp, /* 168 */
|
||||||
scheme_rt_meta_cont, /* 168 */
|
scheme_rt_meta_cont, /* 169 */
|
||||||
scheme_rt_dyn_wind_cell, /* 169 */
|
scheme_rt_dyn_wind_cell, /* 170 */
|
||||||
scheme_rt_dyn_wind_info, /* 170 */
|
scheme_rt_dyn_wind_info, /* 171 */
|
||||||
scheme_rt_dyn_wind, /* 171 */
|
scheme_rt_dyn_wind, /* 172 */
|
||||||
scheme_rt_dup_check, /* 172 */
|
scheme_rt_dup_check, /* 173 */
|
||||||
scheme_rt_thread_memory, /* 173 */
|
scheme_rt_thread_memory, /* 174 */
|
||||||
scheme_rt_input_file, /* 174 */
|
scheme_rt_input_file, /* 175 */
|
||||||
scheme_rt_input_fd, /* 175 */
|
scheme_rt_input_fd, /* 176 */
|
||||||
scheme_rt_oskit_console_input, /* 176 */
|
scheme_rt_oskit_console_input, /* 177 */
|
||||||
scheme_rt_tested_input_file, /* 177 */
|
scheme_rt_tested_input_file, /* 178 */
|
||||||
scheme_rt_tested_output_file, /* 178 */
|
scheme_rt_tested_output_file, /* 179 */
|
||||||
scheme_rt_indexed_string, /* 179 */
|
scheme_rt_indexed_string, /* 180 */
|
||||||
scheme_rt_output_file, /* 180 */
|
scheme_rt_output_file, /* 181 */
|
||||||
scheme_rt_load_handler_data, /* 181 */
|
scheme_rt_load_handler_data, /* 182 */
|
||||||
scheme_rt_pipe, /* 182 */
|
scheme_rt_pipe, /* 183 */
|
||||||
scheme_rt_beos_process, /* 183 */
|
scheme_rt_beos_process, /* 184 */
|
||||||
scheme_rt_system_child, /* 184 */
|
scheme_rt_system_child, /* 185 */
|
||||||
scheme_rt_tcp, /* 185 */
|
scheme_rt_tcp, /* 186 */
|
||||||
scheme_rt_write_data, /* 186 */
|
scheme_rt_write_data, /* 187 */
|
||||||
scheme_rt_tcp_select_info, /* 187 */
|
scheme_rt_tcp_select_info, /* 188 */
|
||||||
scheme_rt_namespace_option, /* 188 */
|
scheme_rt_namespace_option, /* 189 */
|
||||||
scheme_rt_param_data, /* 189 */
|
scheme_rt_param_data, /* 190 */
|
||||||
scheme_rt_will, /* 190 */
|
scheme_rt_will, /* 191 */
|
||||||
scheme_rt_struct_proc_info, /* 191 */
|
scheme_rt_struct_proc_info, /* 192 */
|
||||||
scheme_rt_linker_name, /* 192 */
|
scheme_rt_linker_name, /* 193 */
|
||||||
scheme_rt_param_map, /* 193 */
|
scheme_rt_param_map, /* 194 */
|
||||||
scheme_rt_finalization, /* 194 */
|
scheme_rt_finalization, /* 195 */
|
||||||
scheme_rt_finalizations, /* 195 */
|
scheme_rt_finalizations, /* 196 */
|
||||||
scheme_rt_cpp_object, /* 196 */
|
scheme_rt_cpp_object, /* 197 */
|
||||||
scheme_rt_cpp_array_object, /* 197 */
|
scheme_rt_cpp_array_object, /* 198 */
|
||||||
scheme_rt_stack_object, /* 198 */
|
scheme_rt_stack_object, /* 199 */
|
||||||
scheme_rt_preallocated_object, /* 199 */
|
scheme_rt_preallocated_object, /* 200 */
|
||||||
scheme_thread_hop_type, /* 200 */
|
scheme_thread_hop_type, /* 201 */
|
||||||
scheme_rt_srcloc, /* 201 */
|
scheme_rt_srcloc, /* 202 */
|
||||||
scheme_rt_evt, /* 202 */
|
scheme_rt_evt, /* 203 */
|
||||||
scheme_rt_syncing, /* 203 */
|
scheme_rt_syncing, /* 204 */
|
||||||
scheme_rt_comp_prefix, /* 204 */
|
scheme_rt_comp_prefix, /* 205 */
|
||||||
scheme_rt_user_input, /* 205 */
|
scheme_rt_user_input, /* 206 */
|
||||||
scheme_rt_user_output, /* 206 */
|
scheme_rt_user_output, /* 207 */
|
||||||
scheme_rt_compact_port, /* 207 */
|
scheme_rt_compact_port, /* 208 */
|
||||||
scheme_rt_read_special_dw, /* 208 */
|
scheme_rt_read_special_dw, /* 209 */
|
||||||
scheme_rt_regwork, /* 209 */
|
scheme_rt_regwork, /* 210 */
|
||||||
scheme_rt_buf_holder, /* 210 */
|
scheme_rt_buf_holder, /* 211 */
|
||||||
scheme_rt_parameterization, /* 211 */
|
scheme_rt_parameterization, /* 212 */
|
||||||
scheme_rt_print_params, /* 212 */
|
scheme_rt_print_params, /* 213 */
|
||||||
scheme_rt_read_params, /* 213 */
|
scheme_rt_read_params, /* 214 */
|
||||||
scheme_rt_native_code, /* 214 */
|
scheme_rt_native_code, /* 215 */
|
||||||
scheme_rt_native_code_plus_case, /* 215 */
|
scheme_rt_native_code_plus_case, /* 216 */
|
||||||
scheme_rt_jitter_data, /* 216 */
|
scheme_rt_jitter_data, /* 217 */
|
||||||
scheme_rt_module_exports, /* 217 */
|
scheme_rt_module_exports, /* 218 */
|
||||||
scheme_rt_delay_load_info, /* 218 */
|
scheme_rt_delay_load_info, /* 219 */
|
||||||
scheme_rt_marshal_info, /* 219 */
|
scheme_rt_marshal_info, /* 220 */
|
||||||
scheme_rt_unmarshal_info, /* 220 */
|
scheme_rt_unmarshal_info, /* 221 */
|
||||||
scheme_rt_runstack, /* 221 */
|
scheme_rt_runstack, /* 222 */
|
||||||
scheme_rt_sfs_info, /* 222 */
|
scheme_rt_sfs_info, /* 223 */
|
||||||
scheme_rt_validate_clearing, /* 223 */
|
scheme_rt_validate_clearing, /* 224 */
|
||||||
scheme_rt_rb_node, /* 224 */
|
scheme_rt_rb_node, /* 225 */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
scheme_place_type, /* 225 */
|
scheme_place_type, /* 226 */
|
||||||
scheme_engine_type, /* 226 */
|
scheme_engine_type, /* 227 */
|
||||||
|
|
||||||
_scheme_last_type_
|
_scheme_last_type_
|
||||||
};
|
};
|
||||||
|
|
|
@ -622,6 +622,7 @@ void scheme_register_traversers(void)
|
||||||
|
|
||||||
GC_REG_TRAV(scheme_rib_delimiter_type, small_object);
|
GC_REG_TRAV(scheme_rib_delimiter_type, small_object);
|
||||||
GC_REG_TRAV(scheme_noninline_proc_type, small_object);
|
GC_REG_TRAV(scheme_noninline_proc_type, small_object);
|
||||||
|
GC_REG_TRAV(scheme_prune_context_type, small_object);
|
||||||
}
|
}
|
||||||
|
|
||||||
END_XFORM_SKIP;
|
END_XFORM_SKIP;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
|
||||||
<assemblyIdentity
|
<assemblyIdentity
|
||||||
version="4.1.5.5"
|
version="4.2.0.2"
|
||||||
processorArchitecture="X86"
|
processorArchitecture="X86"
|
||||||
name="Org.PLT-Scheme.MrEd"
|
name="Org.PLT-Scheme.MrEd"
|
||||||
type="win32"
|
type="win32"
|
||||||
|
|
|
@ -20,8 +20,8 @@ APPLICATION ICON DISCARDABLE "mred.ico"
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 4,1,5,5
|
FILEVERSION 4,2,0,2
|
||||||
PRODUCTVERSION 4,1,5,5
|
PRODUCTVERSION 4,2,0,2
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
@ -39,11 +39,11 @@ BEGIN
|
||||||
VALUE "CompanyName", "PLT Scheme Inc.\0"
|
VALUE "CompanyName", "PLT Scheme Inc.\0"
|
||||||
VALUE "FileDescription", "PLT Scheme GUI application\0"
|
VALUE "FileDescription", "PLT Scheme GUI application\0"
|
||||||
VALUE "InternalName", "MrEd\0"
|
VALUE "InternalName", "MrEd\0"
|
||||||
VALUE "FileVersion", "4, 1, 5, 5\0"
|
VALUE "FileVersion", "4, 2, 0, 2\0"
|
||||||
VALUE "LegalCopyright", "Copyright © 1995-2009\0"
|
VALUE "LegalCopyright", "Copyright © 1995-2009\0"
|
||||||
VALUE "OriginalFilename", "MrEd.exe\0"
|
VALUE "OriginalFilename", "MrEd.exe\0"
|
||||||
VALUE "ProductName", "PLT Scheme\0"
|
VALUE "ProductName", "PLT Scheme\0"
|
||||||
VALUE "ProductVersion", "4, 1, 5, 5\0"
|
VALUE "ProductVersion", "4, 2, 0, 2\0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|
|
@ -53,8 +53,8 @@ END
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 4,1,5,5
|
FILEVERSION 4,2,0,2
|
||||||
PRODUCTVERSION 4,1,5,5
|
PRODUCTVERSION 4,2,0,2
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
@ -70,12 +70,12 @@ BEGIN
|
||||||
BLOCK "040904b0"
|
BLOCK "040904b0"
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "FileDescription", "MzCOM Module"
|
VALUE "FileDescription", "MzCOM Module"
|
||||||
VALUE "FileVersion", "4, 1, 5, 5"
|
VALUE "FileVersion", "4, 2, 0, 2"
|
||||||
VALUE "InternalName", "MzCOM"
|
VALUE "InternalName", "MzCOM"
|
||||||
VALUE "LegalCopyright", "Copyright 2000-2009 PLT (Paul Steckler)"
|
VALUE "LegalCopyright", "Copyright 2000-2009 PLT (Paul Steckler)"
|
||||||
VALUE "OriginalFilename", "MzCOM.EXE"
|
VALUE "OriginalFilename", "MzCOM.EXE"
|
||||||
VALUE "ProductName", "MzCOM Module"
|
VALUE "ProductName", "MzCOM Module"
|
||||||
VALUE "ProductVersion", "4, 1, 5, 5"
|
VALUE "ProductVersion", "4, 2, 0, 2"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
@ -105,10 +105,10 @@ CAPTION "MzCOM"
|
||||||
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
FONT 8, "MS Sans Serif", 0, 0, 0x0
|
||||||
BEGIN
|
BEGIN
|
||||||
DEFPUSHBUTTON "OK",IDOK,76,69,50,14,BS_CENTER
|
DEFPUSHBUTTON "OK",IDOK,76,69,50,14,BS_CENTER
|
||||||
CTEXT "MzCOM v. 4.1",IDC_STATIC,71,8,61,8
|
CTEXT "MzCOM v. 4.2",IDC_STATIC,71,8,61,8
|
||||||
CTEXT "Copyright (c) 2000-2009 PLT (Paul Steckler)",IDC_STATIC,
|
CTEXT "Copyright (c) 2000-2009 PLT (Paul Steckler)",IDC_STATIC,
|
||||||
41,20,146,9
|
41,20,146,9
|
||||||
CTEXT "MzScheme v. 4.1",IDC_STATIC,64,35,75,8
|
CTEXT "MzScheme v. 4.2",IDC_STATIC,64,35,75,8
|
||||||
CTEXT "Copyright (c) 1995-2009 PLT Inc.",IDC_STATIC,
|
CTEXT "Copyright (c) 1995-2009 PLT Inc.",IDC_STATIC,
|
||||||
30,47,143,8
|
30,47,143,8
|
||||||
ICON MZICON,IDC_STATIC,11,16,20,20
|
ICON MZICON,IDC_STATIC,11,16,20,20
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
HKCR
|
HKCR
|
||||||
{
|
{
|
||||||
MzCOM.MzObj.4.1.5.5 = s 'MzObj Class'
|
MzCOM.MzObj.4.2.0.2 = s 'MzObj Class'
|
||||||
{
|
{
|
||||||
CLSID = s '{A3B0AF9E-2AB0-11D4-B6D2-0060089002FE}'
|
CLSID = s '{A3B0AF9E-2AB0-11D4-B6D2-0060089002FE}'
|
||||||
}
|
}
|
||||||
MzCOM.MzObj = s 'MzObj Class'
|
MzCOM.MzObj = s 'MzObj Class'
|
||||||
{
|
{
|
||||||
CLSID = s '{A3B0AF9E-2AB0-11D4-B6D2-0060089002FE}'
|
CLSID = s '{A3B0AF9E-2AB0-11D4-B6D2-0060089002FE}'
|
||||||
CurVer = s 'MzCOM.MzObj.4.1.5.5'
|
CurVer = s 'MzCOM.MzObj.4.2.0.2'
|
||||||
}
|
}
|
||||||
NoRemove CLSID
|
NoRemove CLSID
|
||||||
{
|
{
|
||||||
ForceRemove {A3B0AF9E-2AB0-11D4-B6D2-0060089002FE} = s 'MzObj Class'
|
ForceRemove {A3B0AF9E-2AB0-11D4-B6D2-0060089002FE} = s 'MzObj Class'
|
||||||
{
|
{
|
||||||
ProgID = s 'MzCOM.MzObj.4.1.5.5'
|
ProgID = s 'MzCOM.MzObj.4.2.0.2'
|
||||||
VersionIndependentProgID = s 'MzCOM.MzObj'
|
VersionIndependentProgID = s 'MzCOM.MzObj'
|
||||||
ForceRemove 'Programmable'
|
ForceRemove 'Programmable'
|
||||||
LocalServer32 = s '%MODULE%'
|
LocalServer32 = s '%MODULE%'
|
||||||
|
|
|
@ -29,8 +29,8 @@ APPLICATION ICON DISCARDABLE "mzscheme.ico"
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 4,1,5,5
|
FILEVERSION 4,2,0,2
|
||||||
PRODUCTVERSION 4,1,5,5
|
PRODUCTVERSION 4,2,0,2
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
@ -48,11 +48,11 @@ BEGIN
|
||||||
VALUE "CompanyName", "PLT Scheme Inc.\0"
|
VALUE "CompanyName", "PLT Scheme Inc.\0"
|
||||||
VALUE "FileDescription", "PLT Scheme application\0"
|
VALUE "FileDescription", "PLT Scheme application\0"
|
||||||
VALUE "InternalName", "MzScheme\0"
|
VALUE "InternalName", "MzScheme\0"
|
||||||
VALUE "FileVersion", "4, 1, 5, 5\0"
|
VALUE "FileVersion", "4, 2, 0, 2\0"
|
||||||
VALUE "LegalCopyright", "Copyright <20>© 1995-2009\0"
|
VALUE "LegalCopyright", "Copyright <20>© 1995-2009\0"
|
||||||
VALUE "OriginalFilename", "mzscheme.exe\0"
|
VALUE "OriginalFilename", "mzscheme.exe\0"
|
||||||
VALUE "ProductName", "PLT Scheme\0"
|
VALUE "ProductName", "PLT Scheme\0"
|
||||||
VALUE "ProductVersion", "4, 1, 5, 5\0"
|
VALUE "ProductVersion", "4, 2, 0, 2\0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|
|
@ -22,8 +22,8 @@ APPLICATION ICON DISCARDABLE "mzstart.ico"
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 4,1,5,5
|
FILEVERSION 4,2,0,2
|
||||||
PRODUCTVERSION 4,1,5,5
|
PRODUCTVERSION 4,2,0,2
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
@ -45,7 +45,7 @@ BEGIN
|
||||||
#ifdef MZSTART
|
#ifdef MZSTART
|
||||||
VALUE "FileDescription", "PLT Scheme Launcher\0"
|
VALUE "FileDescription", "PLT Scheme Launcher\0"
|
||||||
#endif
|
#endif
|
||||||
VALUE "FileVersion", "4, 1, 5, 5\0"
|
VALUE "FileVersion", "4, 2, 0, 2\0"
|
||||||
#ifdef MRSTART
|
#ifdef MRSTART
|
||||||
VALUE "InternalName", "mrstart\0"
|
VALUE "InternalName", "mrstart\0"
|
||||||
#endif
|
#endif
|
||||||
|
@ -60,7 +60,7 @@ BEGIN
|
||||||
VALUE "OriginalFilename", "MzStart.exe\0"
|
VALUE "OriginalFilename", "MzStart.exe\0"
|
||||||
#endif
|
#endif
|
||||||
VALUE "ProductName", "PLT Scheme\0"
|
VALUE "ProductName", "PLT Scheme\0"
|
||||||
VALUE "ProductVersion", "4, 1, 5, 5\0"
|
VALUE "ProductVersion", "4, 2, 0, 2\0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user