Merged changes from trunk.

svn: r18007
This commit is contained in:
Carl Eastlund 2010-02-06 19:23:24 +00:00
commit fe40d3e888
78 changed files with 376 additions and 325 deletions

View File

@ -1,20 +0,0 @@
#lang scheme/gui
(require 2htdp/universe)
(require 2htdp/image)
(define s "")
(define x 1)
(big-bang 1
(on-tick (lambda (w)
(begin
(set! x (+ x 1))
(if (= x 3) 0 1))))
(stop-when zero?)
(on-draw (lambda (w)
(begin
(set! s (string-append "-" s))
(rectangle 1 1 'solid 'green)))))
(unless (string=? s "---") (error 'world-update-test "failed! ~s" s))

View File

@ -153,7 +153,7 @@
(choice-res-errors result)) (choice-res-errors result))
(fail-type->message (choice-res-errors result)) (fail-type->message (choice-res-errors result))
(make-err (make-err
(format "Found additional content after ~a, begining with '~a'." (format "Found additional content after ~a, beginning with '~a'."
(res-msg (car used-sort)) (res-msg (car used-sort))
(input->output-name (car (res-rest (car used-sort))))) (input->output-name (car (res-rest (car used-sort)))))
(and src? (and src?
@ -166,7 +166,7 @@
[(and (repeat-res? result) (fail-type? (repeat-res-stop result))) [(and (repeat-res? result) (fail-type? (repeat-res-stop result)))
;(printf "repeat-fail~n") ;(printf "repeat-fail~n")
(fail-type->message (repeat-res-stop result))] (fail-type->message (repeat-res-stop result))]
[else (error 'parser (format "Internal error: recieved unexpected input ~a" [else (error 'parser (format "Internal error: received unexpected input ~a"
result))])]) result))])])
(cond (cond
[(err? out) [(err? out)

View File

@ -288,7 +288,7 @@
[(null? (cdr l)) (string-append "or " (car l))] [(null? (cdr l)) (string-append "or " (car l))]
[else (string-append (car l) ", " (formatter (cdr l)))]))]) [else (string-append (car l) ", " (formatter (cdr l)))]))])
(cond (cond
[(null? l) (error 'internal-error "nice-list in combinator-parser/errors.scm recieved null list")] [(null? l) (error 'internal-error "nice-list in combinator-parser/errors.scm received null list")]
[(null? (cdr l)) (car l)] [(null? (cdr l)) (car l)]
[(null? (cddr l)) (string-append (car l) " or " (cadr l))] [(null? (cddr l)) (string-append (car l) " or " (cadr l))]
[else (formatter l)]))) [else (formatter l)])))

View File

@ -3272,7 +3272,7 @@
(define (convert-function-calls e vars &-vars c++-class live-vars complain-not-in memcpy? braces-are-aggregates?) (define (convert-function-calls e vars &-vars c++-class live-vars complain-not-in memcpy? braces-are-aggregates?)
;; e is a single statement ;; e is a single statement
;; Reverse to calculate live vars as we go. ;; Reverse to calculate live vars as we go.
;; Also, it's easier to look for parens and then inspect preceeding ;; Also, it's easier to look for parens and then inspect preceding
;; to find function calls. ;; to find function calls.
;; complain-not-in is ither #f [function calls are ok], a string [not ok, string describes way], ;; complain-not-in is ither #f [function calls are ok], a string [not ok, string describes way],
;; or (list ok-exprs ...)) [in a rator position, only ok-expr calls are allowed, ;; or (list ok-exprs ...)) [in a rator position, only ok-expr calls are allowed,
@ -3608,7 +3608,7 @@
(not (null? (cdr assignee))) (not (null? (cdr assignee)))
;; ok if name starts with "_stk_" ;; ok if name starts with "_stk_"
(not (regexp-match re:_stk_ (symbol->string (tok-n (car assignee))))) (not (regexp-match re:_stk_ (symbol->string (tok-n (car assignee)))))
;; ok if preceeding is else or label terminator ;; ok if preceding is else or label terminator
(not (memq (tok-n (cadr assignee)) '(else |:|))) (not (memq (tok-n (cadr assignee)) '(else |:|)))
;; assignment to field in record is ok ;; assignment to field in record is ok
(not (and (eq? (tok-n (cadr assignee)) '|.|) (not (and (eq? (tok-n (cadr assignee)) '|.|)
@ -3617,7 +3617,7 @@
(null? (cdddr assignee)))) (null? (cdddr assignee))))
;; ok if preceded by XFORM_OK_ASSIGN ;; ok if preceded by XFORM_OK_ASSIGN
(not (eq? (tok-n (cadr assignee)) 'XFORM_OK_ASSIGN)) (not (eq? (tok-n (cadr assignee)) 'XFORM_OK_ASSIGN))
;; ok if preceeding is `if', `until', etc. ;; ok if preceding is `if', `until', etc.
(not (and (parens? (cadr assignee)) (not (and (parens? (cadr assignee))
(pair? (cddr assignee)) (pair? (cddr assignee))
(memq (tok-n (caddr assignee)) '(if while for until)))))) (memq (tok-n (caddr assignee)) '(if while for until))))))

View File

@ -236,7 +236,7 @@ Returns the class of an object (or the meta-class of a class).}
boolean?]{ boolean?]{
Adds a method to a class. The @scheme[type] argument must be a FFI C Adds a method to a class. The @scheme[type] argument must be a FFI C
type (@seeCtype) that matches both @scheme[imp] and and the not type (@seeCtype) that matches both @scheme[imp] and the not
Objective-C type string @scheme[type-encoding].} Objective-C type string @scheme[type-encoding].}
@defproc[(class_addIvar [cls _Class] [name string?] [size exact-nonnegative-integer?] @defproc[(class_addIvar [cls _Class] [name string?] [size exact-nonnegative-integer?]

View File

@ -23,7 +23,7 @@
(error '_sndfile "got a NULL pointer (bad info?)"))))) (error '_sndfile "got a NULL pointer (bad info?)")))))
;; sf_count_t is a count type that depends on the operating system however it ;; sf_count_t is a count type that depends on the operating system however it
;; seems to be a long int for all teh supported ones so in this scase we just ;; seems to be a long int for all the supported ones so in this scase we just
;; define it as two ints. ;; define it as two ints.
(define _sf-count-t _int64) (define _sf-count-t _int64)

View File

@ -543,7 +543,7 @@
;; this flag is specific to this frame ;; this flag is specific to this frame
;; the true state of the info panel is ;; the true state of the info panel is
;; the combination of this flag and the ;; the combination of this flag and the
;; the 'framework:show-status-line preference ;; 'framework:show-status-line preference
;; as shown in update-info-visibility ;; as shown in update-info-visibility
(define info-hidden? #f) (define info-hidden? #f)
(define/public (hide-info) (define/public (hide-info)

View File

@ -316,7 +316,7 @@ careful charlie
[(eq? their-loc 'start) [(eq? their-loc 'start)
(let ([their-enter-spot (get-enter-pos (pawn-color pawn))]) (let ([their-enter-spot (get-enter-pos (pawn-color pawn))])
;; this code assumes that the enter-pos's are not within 6 of ;; this code assumes that the enter-pos's are not within 6 of
;; where the board indicies wrap around. ;; where the board indices wrap around.
(cond (cond
[(= my-loc their-enter-spot) [(= my-loc their-enter-spot)
(add-single-roll-chances 5) (add-single-roll-chances 5)

View File

@ -252,10 +252,10 @@
(define/private (draw-cell draw-i draw-j) (define/private (draw-cell draw-i draw-j)
(let-values ([(xd yd wd hd) (ij->xywh draw-i draw-j)]) (let-values ([(xd yd wd hd) (ij->xywh draw-i draw-j)])
(let* ([dc (get-dc)] (let* ([dc (get-dc)]
[indicies (board-ref board draw-i draw-j)]) [indices (board-ref board draw-i draw-j)])
(if indicies (if indices
(let ([bm-i (loc-x indicies)] (let ([bm-i (loc-x indices)]
[bm-j (loc-y indicies)]) [bm-j (loc-y indices)])
(let-values ([(xs ys ws hs) (ij->xywh bm-i bm-j)]) (let-values ([(xs ys ws hs) (ij->xywh bm-i bm-j)])
(send dc set-pen pict-pen) (send dc set-pen pict-pen)
(send dc set-brush pict-brush) (send dc set-brush pict-brush)

View File

@ -152,7 +152,7 @@ Keywords for configuring @scheme[check:]:
@item{@indexed-scheme[:student-line]---when a submission is converted @item{@indexed-scheme[:student-line]---when a submission is converted
to text, it begins with lines describing the students that have to text, it begins with lines describing the students that have
submitted it; this is used to specify the format of these lines. It submitted it; this is used to specify the format of these lines. It
is a string with holes that that @scheme[user-substs] fills out. is a string with holes that @scheme[user-substs] fills out.
The default is @scheme["Student: {username} ({Full Name} <{Email}>)"], The default is @scheme["Student: {username} ({Full Name} <{Email}>)"],
which requires @scheme["Full Name"] and @scheme["Email"] entries in which requires @scheme["Full Name"] and @scheme["Email"] entries in
the server's extra-fields configuration. These lines are prefixed the server's extra-fields configuration. These lines are prefixed

View File

@ -190,7 +190,7 @@
(provide tree-filter) (provide tree-filter)
;; (string -> any) tree -> tree ;; (string -> any) tree -> tree
;; If the filter returns '+ or '- this qualifies or disqualifies the the ;; If the filter returns '+ or '- this qualifies or disqualifies the
;; current tree immediately, otherwise recurse down directories. If any other ;; current tree immediately, otherwise recurse down directories. If any other
;; result is returned for directories scanning continues, and for files they ;; result is returned for directories scanning continues, and for files they
;; are included if the result is not #f. ;; are included if the result is not #f.

View File

@ -1519,7 +1519,7 @@
(if (and gsnip (if (and gsnip
(has-flag? (snip->flags gsnip) HARD-NEWLINE) (has-flag? (snip->flags gsnip) HARD-NEWLINE)
(eq? (snip->next gsnip) snip)) (eq? (snip->next gsnip) snip))
;; preceeding snip was a newline, so the new slip belongs on the next line: ;; preceding snip was a newline, so the new slip belongs on the next line:
(let* ([oldline (snip->line gsnip)] (let* ([oldline (snip->line gsnip)]
[inserted-new-line? [inserted-new-line?
(if (mline-next oldline) (if (mline-next oldline)
@ -4188,7 +4188,7 @@
(has-flag? (snip->flags gsnip) NEWLINE) (has-flag? (snip->flags gsnip) NEWLINE)
(not (has-flag? (snip->flags gsnip) HARD-NEWLINE))) (not (has-flag? (snip->flags gsnip) HARD-NEWLINE)))
(begin (begin
;; we want the snip on the same line as the preceeding snip: ;; we want the snip on the same line as the preceding snip:
(if (snip->next gsnip) (if (snip->next gsnip)
(insert-snip (snip->next gsnip) snip) (insert-snip (snip->next gsnip) snip)
(append-snip snip)) (append-snip snip))

View File

@ -9,7 +9,7 @@ work right.
Most of the exports are just for use in 2htdp/image Most of the exports are just for use in 2htdp/image
(technically, 2htdp/private/image-more). The main (technically, 2htdp/private/image-more). The main
use of this library is the snip class addition it use of this library is the snip class addition it
does (and any code that that does not depend on does (and any code that does not depend on
has been moved out). has been moved out).

View File

@ -64,7 +64,7 @@
(super-new) (super-new)
(set-snipclass matrix-snip-class))) (set-snipclass matrix-snip-class)))
;; the snip class for matricies ;; the snip class for matrices
(define matrix-snip-class% (define matrix-snip-class%
(class cache-image-snip-class% (class cache-image-snip-class%
(super-new) (super-new)

View File

@ -348,7 +348,7 @@
(with-syntax ([(dom-x ...) (generate-temporaries (syntax (dom ...)))] (with-syntax ([(dom-x ...) (generate-temporaries (syntax (dom ...)))]
[(dom-contract-x ...) (generate-temporaries (syntax (dom ...)))] [(dom-contract-x ...) (generate-temporaries (syntax (dom ...)))]
[(dom-projection-x ...) (generate-temporaries (syntax (dom ...)))] [(dom-projection-x ...) (generate-temporaries (syntax (dom ...)))]
[(dom-length dom-index ...) (generate-indicies (syntax (dom ...)))] [(dom-length dom-index ...) (generate-indices (syntax (dom ...)))]
[(dom-ant-x ...) (generate-temporaries (syntax (dom ...)))] [(dom-ant-x ...) (generate-temporaries (syntax (dom ...)))]
[(arg-x ...) (generate-temporaries (syntax (dom ...)))]) [(arg-x ...) (generate-temporaries (syntax (dom ...)))])
(with-syntax ([(name-dom-contract-x ...) (with-syntax ([(name-dom-contract-x ...)
@ -391,7 +391,7 @@
(with-syntax ([(rng-x ...) (generate-temporaries (syntax (rng ...)))] (with-syntax ([(rng-x ...) (generate-temporaries (syntax (rng ...)))]
[(rng-contract-x ...) (generate-temporaries (syntax (rng ...)))] [(rng-contract-x ...) (generate-temporaries (syntax (rng ...)))]
[(rng-projection-x ...) (generate-temporaries (syntax (rng ...)))] [(rng-projection-x ...) (generate-temporaries (syntax (rng ...)))]
[(rng-length rng-index ...) (generate-indicies (syntax (rng ...)))] [(rng-length rng-index ...) (generate-indices (syntax (rng ...)))]
[(rng-ant-x ...) (generate-temporaries (syntax (rng ...)))] [(rng-ant-x ...) (generate-temporaries (syntax (rng ...)))]
[(res-x ...) (generate-temporaries (syntax (rng ...)))]) [(res-x ...) (generate-temporaries (syntax (rng ...)))])
(values (values
@ -491,7 +491,7 @@
[(dom-contract-x ...) (generate-temporaries (syntax (dom ...)))] [(dom-contract-x ...) (generate-temporaries (syntax (dom ...)))]
[(dom-projection-x ...) (generate-temporaries (syntax (dom ...)))] [(dom-projection-x ...) (generate-temporaries (syntax (dom ...)))]
[(arg-x ...) (generate-temporaries (syntax (dom ...)))] [(arg-x ...) (generate-temporaries (syntax (dom ...)))]
[(dom-length dom-index ...) (generate-indicies (syntax (dom ...)))] [(dom-length dom-index ...) (generate-indices (syntax (dom ...)))]
[(dom-ant-x ...) (generate-temporaries (syntax (dom ...)))] [(dom-ant-x ...) (generate-temporaries (syntax (dom ...)))]
[dom-rest-x (car (generate-temporaries (list (syntax rest))))] [dom-rest-x (car (generate-temporaries (list (syntax rest))))]
[dom-rest-contract-x (car (generate-temporaries (list (syntax rest))))] [dom-rest-contract-x (car (generate-temporaries (list (syntax rest))))]
@ -501,7 +501,7 @@
[(rng-x ...) (generate-temporaries (syntax (rng ...)))] [(rng-x ...) (generate-temporaries (syntax (rng ...)))]
[(rng-contract-x ...) (generate-temporaries (syntax (rng ...)))] [(rng-contract-x ...) (generate-temporaries (syntax (rng ...)))]
[(rng-projection-x ...) (generate-temporaries (syntax (rng ...)))] [(rng-projection-x ...) (generate-temporaries (syntax (rng ...)))]
[(rng-length rng-index ...) (generate-indicies (syntax (rng ...)))] [(rng-length rng-index ...) (generate-indices (syntax (rng ...)))]
[(rng-ant-x ...) (generate-temporaries (syntax (rng ...)))] [(rng-ant-x ...) (generate-temporaries (syntax (rng ...)))]
[(res-x ...) (generate-temporaries (syntax (rng ...)))] [(res-x ...) (generate-temporaries (syntax (rng ...)))]
[arity (length (syntax->list (syntax (dom ...))))]) [arity (length (syntax->list (syntax (dom ...))))])
@ -564,7 +564,7 @@
[(dom-contract-x ...) (generate-temporaries (syntax (dom ...)))] [(dom-contract-x ...) (generate-temporaries (syntax (dom ...)))]
[(dom-projection-x ...) (generate-temporaries (syntax (dom ...)))] [(dom-projection-x ...) (generate-temporaries (syntax (dom ...)))]
[(arg-x ...) (generate-temporaries (syntax (dom ...)))] [(arg-x ...) (generate-temporaries (syntax (dom ...)))]
[(dom-length dom-index ...) (generate-indicies (syntax (dom ...)))] [(dom-length dom-index ...) (generate-indices (syntax (dom ...)))]
[(dom-ant-x ...) (generate-temporaries (syntax (dom ...)))] [(dom-ant-x ...) (generate-temporaries (syntax (dom ...)))]
[dom-rest-x (car (generate-temporaries (list (syntax rest))))] [dom-rest-x (car (generate-temporaries (list (syntax rest))))]
[dom-rest-contract-x (car (generate-temporaries (list (syntax rest))))] [dom-rest-contract-x (car (generate-temporaries (list (syntax rest))))]
@ -682,7 +682,7 @@
(with-syntax ([(dom-x ...) (generate-temporaries (syntax (dom ...)))] (with-syntax ([(dom-x ...) (generate-temporaries (syntax (dom ...)))]
[(dom-contract-x ...) (generate-temporaries (syntax (dom ...)))] [(dom-contract-x ...) (generate-temporaries (syntax (dom ...)))]
[(dom-projection-x ...) (generate-temporaries (syntax (dom ...)))] [(dom-projection-x ...) (generate-temporaries (syntax (dom ...)))]
[(dom-length dom-index ...) (generate-indicies (syntax (dom ...)))] [(dom-length dom-index ...) (generate-indices (syntax (dom ...)))]
[(dom-ant-x ...) (generate-temporaries (syntax (dom ...)))] [(dom-ant-x ...) (generate-temporaries (syntax (dom ...)))]
[(arg-x ...) (generate-temporaries (syntax (dom ...)))]) [(arg-x ...) (generate-temporaries (syntax (dom ...)))])
(values (values
@ -1099,10 +1099,10 @@
(syntax (let ([name rhs]) name)))] (syntax (let ([name rhs]) name)))]
[else to-be-named]))) [else to-be-named])))
;; generate-indicies : syntax[list] -> (cons number (listof number)) ;; generate-indices : syntax[list] -> (cons number (listof number))
;; given a syntax list of length `n', returns a list containing ;; given a syntax list of length `n', returns a list containing
;; the number n followed by th numbers from 0 to n-1 ;; the number n followed by th numbers from 0 to n-1
(define (generate-indicies stx) (define (generate-indices stx)
(let ([n (length (syntax->list stx))]) (let ([n (length (syntax->list stx))])
(cons n (cons n
(let loop ([i n]) (let loop ([i n])

View File

@ -469,7 +469,7 @@ c_plcont(PLFLT **f, PLINT nx, PLINT ny, PLINT kx, PLINT lx,
* The subrange of indices used for contouring is kx to lx in the x * The subrange of indices used for contouring is kx to lx in the x
* direction and from ky to ly in the y direction. The array of contour * direction and from ky to ly in the y direction. The array of contour
* levels is clevel(nlevel), and "pltr" is the name of a function which * levels is clevel(nlevel), and "pltr" is the name of a function which
* transforms array indicies into world coordinates. * transforms array indices into world coordinates.
* *
* Note that the fortran-like minimum and maximum indices (kx, lx, ky, ly) * Note that the fortran-like minimum and maximum indices (kx, lx, ky, ly)
* are translated into more C-like ones. I've only kept them as they are * are translated into more C-like ones. I've only kept them as they are

View File

@ -216,7 +216,7 @@ a version as a sequence of exact, non-negative integers. Roughly, such
a name is converted to a PLT Scheme module pathname (see @secref[#:doc a name is converted to a PLT Scheme module pathname (see @secref[#:doc
guide-src "module-paths"]) by concatenating the symbols with a guide-src "module-paths"]) by concatenating the symbols with a
@litchar{/} separator, and then appending the version integers each @litchar{/} separator, and then appending the version integers each
with a preceeding @litchar{-}. As a special case, when an @|r6rs| path with a preceding @litchar{-}. As a special case, when an @|r6rs| path
contains a single symbol (optionally followed by a version), a contains a single symbol (optionally followed by a version), a
@schemeidfont{main} symbol is effectively inserted after the initial @schemeidfont{main} symbol is effectively inserted after the initial
symbol. See below for further encoding considerations. symbol. See below for further encoding considerations.

View File

@ -191,7 +191,7 @@
(bytes-set! tgt left LF) (bytes-set! tgt left LF)
(set! buffer #f) (set! buffer #f)
(add1 left)]))]))) (add1 left)]))])))
(make-input-port 'readline reader #f close!))) (make-input-port 'readline-input reader #f close!)))
;; -------------------------------------------------------------------------- ;; --------------------------------------------------------------------------
;; Reading functions ;; Reading functions

View File

@ -71,7 +71,7 @@
;; and a 'where' in the second clause ;; and a 'where' in the second clause
(test (render-metafunction T) "metafunction-T.png") (test (render-metafunction T) "metafunction-T.png")
;; in this test, teh `x' is italic and the 'z' is sf, since 'x' is in the grammar, and 'z' is not. ;; in this test, the `x' is italic and the 'z' is sf, since 'x' is in the grammar, and 'z' is not.
(test (render-lw (test (render-lw
lang lang
(to-lw ((λ (x) (x x)) (to-lw ((λ (x) (x x))

View File

@ -1 +1 @@
#lang scheme/base (provide stamp) (define stamp "4feb2010") #lang scheme/base (provide stamp) (define stamp "6feb2010")

View File

@ -76,8 +76,8 @@ it around flattened out.
[struct-maker struct-maker/val] [struct-maker struct-maker/val]
[predicate predicate/val] [predicate predicate/val]
[the-contract (add-suffix "-contract")] [the-contract (add-suffix "-contract")]
[(selector-indicies ...) (nums-up-to field-count/val)] [(selector-indices ...) (nums-up-to field-count/val)]
[(selector-indicies+1 ...) (map add1 (nums-up-to field-count/val))] [(selector-indices+1 ...) (map add1 (nums-up-to field-count/val))]
[(ctc-x ...) (generate-temporaries (syntax (fields ...)))] [(ctc-x ...) (generate-temporaries (syntax (fields ...)))]
[(f-x ...) f-x/vals] [(f-x ...) f-x/vals]
[((f-xs ...) ...) f-xs/vals] [((f-xs ...) ...) f-xs/vals]
@ -113,7 +113,7 @@ it around flattened out.
(lambda (k v) (lambda (k v)
(when (unknown? v) (when (unknown? v)
(let ([proc (unknown-proc v)]) (let ([proc (unknown-proc v)])
(let ([new (proc (wrap-get stct selector-indicies+1) ...)]) (let ([new (proc (wrap-get stct selector-indices+1) ...)])
(cond (cond
[(unknown? new) [(unknown? new)
(set! any-unknown? #t)] (set! any-unknown? #t)]
@ -177,7 +177,7 @@ it around flattened out.
(cond (cond
[(raw-predicate stct) [(raw-predicate stct)
;; found the original value ;; found the original value
(values #f (get stct selector-indicies) ...)] (values #f (get stct selector-indices) ...)]
[(opt-wrap-predicate stct) [(opt-wrap-predicate stct)
(let ((inner (opt-wrap-get stct 0))) (let ((inner (opt-wrap-get stct 0)))
@ -187,11 +187,11 @@ it around flattened out.
(let-values ([(inner-stct fields ...) (loop inner)]) (let-values ([(inner-stct fields ...) (loop inner)])
(let-values ([(fields ...) (enforcer stct fields ...)]) (let-values ([(fields ...) (enforcer stct fields ...)])
(opt-wrap-set stct 0 #f) (opt-wrap-set stct 0 #f)
(opt-wrap-set stct selector-indicies+1 fields) ... (opt-wrap-set stct selector-indices+1 fields) ...
(values stct fields ...)))) (values stct fields ...))))
;; found a cached version ;; found a cached version
(values #f (opt-wrap-get stct selector-indicies+1) ...)))] (values #f (opt-wrap-get stct selector-indices+1) ...)))]
[(wrap-predicate stct) [(wrap-predicate stct)
(let ([inner (wrap-get stct 0)]) (let ([inner (wrap-get stct 0)])
(if inner (if inner
@ -201,19 +201,19 @@ it around flattened out.
(let-values ([(fields ...) (let-values ([(fields ...)
(rewrite-fields stct contract/info fields ...)]) (rewrite-fields stct contract/info fields ...)])
(wrap-set stct 0 #f) (wrap-set stct 0 #f)
(wrap-set stct selector-indicies+1 fields) ... (wrap-set stct selector-indices+1 fields) ...
(evaluate-attrs stct contract/info) (evaluate-attrs stct contract/info)
(values stct fields ...)))) (values stct fields ...))))
;; found a cached version of the value ;; found a cached version of the value
(values #f (wrap-get stct selector-indicies+1) ...)))]))]) (values #f (wrap-get stct selector-indices+1) ...)))]))])
(cond (cond
[(opt-wrap-predicate stct) (opt-wrap-get stct i+1)] [(opt-wrap-predicate stct) (opt-wrap-get stct i+1)]
[(wrap-predicate stct) (wrap-get stct i+1)]))) [(wrap-predicate stct) (wrap-get stct i+1)])))
(define (rewrite-fields parent contract/info ctc-x ...) (define (rewrite-fields parent contract/info ctc-x ...)
(let* ([f-x (let* ([ctc-field (contract-get (contract/info-contract contract/info) (let* ([f-x (let* ([ctc-field (contract-get (contract/info-contract contract/info)
selector-indicies)] selector-indices)]
[ctc (if (contract-struct? ctc-field) [ctc (if (contract-struct? ctc-field)
ctc-field ctc-field
(ctc-field f-xs ...))] (ctc-field f-xs ...))]
@ -229,8 +229,8 @@ it around flattened out.
(define (stronger-lazy-contract? a b) (define (stronger-lazy-contract? a b)
(and (contract-predicate b) (and (contract-predicate b)
(contract-stronger? (contract-stronger?
(contract-get a selector-indicies) (contract-get a selector-indices)
(contract-get b selector-indicies)) ...)) (contract-get b selector-indices)) ...))
(define (lazy-contract-proj ctc) (define (lazy-contract-proj ctc)
(λ (blame) (λ (blame)
@ -279,7 +279,7 @@ it around flattened out.
(contract-maker ctc-x ... #f))) (contract-maker ctc-x ... #f)))
(define (selectors x) (define (selectors x)
(burrow-in x 'selectors selector-indicies)) (burrow-in x 'selectors selector-indices))
... ...
(define (burrow-in struct selector-name i) (define (burrow-in struct selector-name i)
@ -300,7 +300,7 @@ it around flattened out.
(define (lazy-contract-name ctc) (define (lazy-contract-name ctc)
(do-contract-name 'struct/c (do-contract-name 'struct/c
'struct/dc 'struct/dc
(list (contract-get ctc selector-indicies) ...) (list (contract-get ctc selector-indices) ...)
'(fields ...) '(fields ...)
(contract-get ctc field-count))) (contract-get ctc field-count)))
@ -316,7 +316,7 @@ it around flattened out.
#f #f
(+ field-count 1) ;; extra field is for synthesized attribute ctcs (+ field-count 1) ;; extra field is for synthesized attribute ctcs
;; it is a list whose first element is ;; it is a list whose first element is
;; a procedure (called once teh attrs are known) that ;; a procedure (called once the attrs are known) that
;; indicates if the test passes. the rest of the elements are ;; indicates if the test passes. the rest of the elements are
;; procedures that build the attrs ;; procedures that build the attrs
;; this field is #f when there is no synthesized attrs ;; this field is #f when there is no synthesized attrs

View File

@ -4,7 +4,7 @@
scheme/control scheme/control
scheme/stxparam scheme/splicing) scheme/stxparam scheme/splicing)
(provide yield generator in-generator infinite-generator (provide yield generator generator-state in-generator infinite-generator
sequence->generator sequence->repeated-generator) sequence->generator sequence->repeated-generator)
;; (define-syntax-parameter yield ;; (define-syntax-parameter yield
@ -44,25 +44,56 @@
(lambda (v) (lambda (v)
(error 'yield "must be called in the context of a generator")))) (error 'yield "must be called in the context of a generator"))))
(define (yield value) (define yield
((current-yielder) value)) (case-lambda [() ((current-yielder))]
[(v) ((current-yielder) v)]
[vs (apply (current-yielder) vs)]))
(define yield-tag (make-continuation-prompt-tag)) (define yield-tag (make-continuation-prompt-tag))
(define-syntax-rule (generator body0 body ...) (define-syntax-rule (generator body0 body ...)
(let () (let ([state 'fresh])
(define (cont) (define (cont)
(define (yielder value) (define (yielder . vs)
(shift-at yield-tag k (set! cont k) value)) (set! state 'suspended)
(shift-at yield-tag k (set! cont k) (apply values vs)))
(set! state 'running)
(reset-at yield-tag (reset-at yield-tag
(parameterize ([current-yielder yielder]) (parameterize ([current-yielder yielder])
(let ([retval (begin body0 body ...)]) (call-with-values
;; normal return: (lambda () (begin body0 body ...))
(set! cont (lambda () retval)) ;; get here only on at the end of the generator
retval)))) (lambda rs
(define (generator) (cont)) (set! cont (lambda () (set! state 'done) (apply values rs)))
(cont))))))
(define (err [what "send a value to"])
(error 'generator "cannot ~a a ~a generator" what state))
(define generator
(case-lambda
[() (if (eq? state 'running)
(err "call")
(begin (set! state 'running) (cont)))]
;; yield-tag means return the state (see `generator-state' below)
[(x) (cond [(eq? x yield-tag) state]
[(memq state '(suspended running))
(set! state 'running)
(cont x)]
[else (err)])]
[xs (if (memq state '(suspended running))
(begin (set! state 'running) (apply cont xs))
(err))]))
generator)) generator))
;; Get the state -- this is a hack: uses yield-tag as a hidden value that makes
;; the generator return its state. Protect against grabbing this tag (eg, with
;; (generator-state values)) by inspecting the result (so it can still be
;; deceived, but that will be harmless).
(define (generator-state g)
(let ([s (and (procedure? g) (procedure-arity-includes? g 1) (g yield-tag))])
(if (memq s '(fresh running suspended done))
s
(raise-type-error 'generator-state "generator" g))))
(define-syntax-rule (infinite-generator body0 body ...) (define-syntax-rule (infinite-generator body0 body ...)
(generator (let loop () body0 body ... (loop)))) (generator (let loop () body0 body ... (loop))))

View File

@ -5,7 +5,7 @@
(provide split-rows) (provide split-rows)
;; split-rows : Listof[Row] -> Listof[Listof[Row]] ;; split-rows : Listof[Row] -> Listof[Listof[Row]]
;; takes a matrix, and returns a list of matricies ;; takes a matrix, and returns a list of matrices
;; each returned matrix does not require the mixture rule to do compilation of ;; each returned matrix does not require the mixture rule to do compilation of
;; the first column. ;; the first column.
(define (split-rows rows [acc null]) (define (split-rows rows [acc null])

View File

@ -24,16 +24,16 @@ doing these checks.
|# |#
;; This code works with unsafe operations, but don't use it for a while to ;; This code works with unsafe operations, if there are problems, the commented
;; catch potential problems. ;; chunk of code below can be used to run it in safe mode.
;; (#%require (rename '#%unsafe i+ unsafe-fx+) (#%require (rename '#%unsafe i+ unsafe-fx+)
;; (rename '#%unsafe i- unsafe-fx-) (rename '#%unsafe i- unsafe-fx-)
;; (rename '#%unsafe i= unsafe-fx=) (rename '#%unsafe i= unsafe-fx=)
;; (rename '#%unsafe i< unsafe-fx<) (rename '#%unsafe i< unsafe-fx<)
;; (rename '#%unsafe i<= unsafe-fx<=) (rename '#%unsafe i<= unsafe-fx<=)
;; (rename '#%unsafe i>> unsafe-fxrshift) (rename '#%unsafe i>> unsafe-fxrshift)
;; (rename '#%unsafe vref unsafe-vector-ref) (rename '#%unsafe vref unsafe-vector-ref)
;; (rename '#%unsafe vset! unsafe-vector-set!)) (rename '#%unsafe vset! unsafe-vector-set!))
(define sort (let () (define sort (let ()
@ -42,14 +42,15 @@ doing these checks.
[(dr (foo . pattern) template) [(dr (foo . pattern) template)
(define-syntax foo (syntax-rules () [(_ . pattern) template]))])) (define-syntax foo (syntax-rules () [(_ . pattern) template]))]))
(define-syntax-rule (i+ x y) (+ x y)) ;; Use this to make it safe:
(define-syntax-rule (i- x y) (- x y)) ;; (define-syntax-rule (i+ x y) (+ x y))
(define-syntax-rule (i= x y) (= x y)) ;; (define-syntax-rule (i- x y) (- x y))
(define-syntax-rule (i< x y) (< x y)) ;; (define-syntax-rule (i= x y) (= x y))
(define-syntax-rule (i<= x y) (<= x y)) ;; (define-syntax-rule (i< x y) (< x y))
(define-syntax-rule (i>> x y) (arithmetic-shift x (- y))) ;; (define-syntax-rule (i<= x y) (<= x y))
(define-syntax-rule (vref v i) (vector-ref v i)) ;; (define-syntax-rule (i>> x y) (arithmetic-shift x (- y)))
(define-syntax-rule (vset! v i x) (vector-set! v i x)) ;; (define-syntax-rule (vref v i) (vector-ref v i))
;; (define-syntax-rule (vset! v i x) (vector-set! v i x))
(define-syntax-rule (sort-internal-body v *<? n has-getkey? getkey) (define-syntax-rule (sort-internal-body v *<? n has-getkey? getkey)
(let* ([n/2- (i>> n 1)] [n/2+ (i- n n/2-)]) (let* ([n/2- (i>> n 1)] [n/2+ (i- n n/2-)])

View File

@ -98,7 +98,7 @@
(let ([s (read-bytes drop input-port)]) (let ([s (read-bytes drop input-port)])
(when out (when out
(display s out))) (display s out)))
;; Get the matching part, and shift matching indicies ;; Get the matching part, and shift matching indices
(let ([s (read-bytes (- (cdar m) drop) input-port)]) (let ([s (read-bytes (- (cdar m) drop) input-port)])
(cons s (cons s
(map (lambda (p) (map (lambda (p)

View File

@ -430,8 +430,8 @@
(define (input->port inp) (define (input->port inp)
;; returns #f when it can't create a port ;; returns #f when it can't create a port
(cond [(input-port? inp) inp] (cond [(input-port? inp) inp]
[(string? inp) (open-input-string inp)] [(string? inp) (open-input-string inp #f)]
[(bytes? inp) (open-input-bytes inp)] [(bytes? inp) (open-input-bytes inp #f)]
[(path? inp) (open-input-file inp)] [(path? inp) (open-input-file inp)]
[else #f])) [else #f]))
@ -761,28 +761,22 @@
(cond [(eof-object? r) (terminate+kill! #t #t)] (cond [(eof-object? r) (terminate+kill! #t #t)]
[(eq? (car r) 'exn) (raise (cdr r))] [(eq? (car r) 'exn) (raise (cdr r))]
[else (apply values (cdr r))]))])) [else (apply values (cdr r))]))]))
(define get-uncovered (define (get-uncovered [prog? #t] [src 'program])
(case-lambda
[() (get-uncovered #t)]
[(prog?) (get-uncovered prog? 'program)]
[(prog? src)
(unless uncovered (unless uncovered
(error 'get-uncovered-expressions "no coverage information")) (error 'get-uncovered-expressions "no coverage information"))
(let ([uncovered (if prog? (car uncovered) ((cadr uncovered)))]) (let ([uncovered (if prog? (car uncovered) ((cadr uncovered)))])
(if src (if src
(filter (lambda (x) (equal? src (syntax-source x))) uncovered) (filter (lambda (x) (equal? src (syntax-source x))) uncovered)
uncovered))])) uncovered)))
(define (output-getter p) (define (output-getter p)
(if (procedure? p) (user-eval (make-evaluator-message 'thunk (list p))) p)) (if (procedure? p) (user-eval (make-evaluator-message 'thunk (list p))) p))
(define input-putter (define (input-putter [arg input])
(case-lambda (cond [(not input)
[() (input-putter input)]
[(arg) (cond [(not input)
(error 'put-input "evaluator input is not 'pipe")] (error 'put-input "evaluator input is not 'pipe")]
[(or (string? arg) (bytes? arg)) [(or (string? arg) (bytes? arg))
(display arg input) (flush-output input)] (display arg input) (flush-output input)]
[(eof-object? arg) (close-output-port input)] [(eof-object? arg) (close-output-port input)]
[else (error 'put-input "bad argument: ~e" arg)])])) [else (error 'put-input "bad argument: ~e" arg)]))
(define (evaluator expr) (define (evaluator expr)
(if (evaluator-message? expr) (if (evaluator-message? expr)
(let ([msg (evaluator-message-msg expr)]) (let ([msg (evaluator-message-msg expr)])
@ -832,8 +826,7 @@
;; set up the IO context ;; set up the IO context
[current-input-port [current-input-port
(let ([inp (sandbox-input)]) (let ([inp (sandbox-input)])
(cond (cond [(not inp) null-input]
[(not inp) null-input]
[(input->port inp) => values] [(input->port inp) => values]
[(and (procedure? inp) (procedure-arity-includes? inp 0)) (inp)] [(and (procedure? inp) (procedure-arity-includes? inp 0)) (inp)]
[(eq? 'pipe inp) [(eq? 'pipe inp)

View File

@ -285,7 +285,7 @@ and thus used as a contract.
But many other values also play double duty as contracts. But many other values also play double duty as contracts.
For example, if your function accepts a number or @scheme[#f], For example, if your function accepts a number or @scheme[#f],
@scheme[(or/c number? #f)] sufficies. Similarly, the @scheme[result/c] contract @scheme[(or/c number? #f)] suffices. Similarly, the @scheme[result/c] contract
could have been written with a @scheme[0] in place of @scheme[zero?]. could have been written with a @scheme[0] in place of @scheme[zero?].
Even better, if you use a regular expression as a contract, the contract Even better, if you use a regular expression as a contract, the contract

View File

@ -470,7 +470,7 @@ form is evaluated:
3] 3]
] ]
The substition and @tech{location}-generation step of procedure The substitution and @tech{location}-generation step of procedure
application requires that the argument is a @tech{value}. Therefore, application requires that the argument is a @tech{value}. Therefore,
in @scheme[((lambda (x) (+ x 10)) (+ 1 2))], the @scheme[(+ 1 2)] in @scheme[((lambda (x) (+ x 10)) (+ 1 2))], the @scheme[(+ 1 2)]
sub-expression must be simplified to the @tech{value} @scheme[3], and sub-expression must be simplified to the @tech{value} @scheme[3], and

View File

@ -111,7 +111,7 @@ types can generate events (see @scheme[prop:evt]).
@item{@scheme[_choice] --- an event returned by @scheme[choice-evt] is @item{@scheme[_choice] --- an event returned by @scheme[choice-evt] is
ready when one or more of the @scheme[_evt]s supplied to ready when one or more of the @scheme[_evt]s supplied to
@scheme[chocie-evt] are ready. If the choice event is chosen, one of @scheme[choice-evt] are ready. If the choice event is chosen, one of
its ready @scheme[_evt]s is chosen pseudo-randomly, and the result is its ready @scheme[_evt]s is chosen pseudo-randomly, and the result is
the chosen @scheme[_evt]'s result.} the chosen @scheme[_evt]'s result.}

View File

@ -59,8 +59,8 @@ Lrange ::= ^ Lrange contains _^_
| Srange Lrange contains everything in Srange #co | Srange Lrange contains everything in Srange #co
Look ::= (?=Regexp) Match if Regexp matches #mode Look ::= (?=Regexp) Match if Regexp matches #mode
| (?!Regexp) Match if Regexp doesn't match #mode | (?!Regexp) Match if Regexp doesn't match #mode
| (?<=Regexp) Match if Regexp matches preceeding #mode | (?<=Regexp) Match if Regexp matches preceding #mode
| (?<!Regexp) Match if Regexp doesn't match preceeding #mode | (?<!Regexp) Match if Regexp doesn't match preceding #mode
Pred ::= (N) True if Nth _(_ has a match #mode Pred ::= (N) True if Nth _(_ has a match #mode
| Look True if Look matches #mode | Look True if Look matches #mode
Srange ::= ... ... #px Srange ::= ... ... #px

View File

@ -76,7 +76,7 @@ less or equal to @scheme[end] if @scheme[step] is negative.
@defproc[(in-naturals [start exact-nonnegative-integer? 0]) sequence?]{ @defproc[(in-naturals [start exact-nonnegative-integer? 0]) sequence?]{
Returns an infinite sequence of exact integers starting with Returns an infinite sequence of exact integers starting with
@scheme[start], where each element is one more than the preceeding @scheme[start], where each element is one more than the preceding
element. @speed[in-naturals "integer"]} element. @speed[in-naturals "integer"]}
@defproc[(in-list [lst list?]) sequence?]{ @defproc[(in-list [lst list?]) sequence?]{

View File

@ -145,13 +145,13 @@ needed to strip lexical and source-location information recursively.}
(list/c any/c (list/c any/c
(or/c exact-positive-integer? #f) (or/c exact-positive-integer? #f)
(or/c exact-nonnegative-integer? #f) (or/c exact-nonnegative-integer? #f)
(or/c exact-nonnegative-integer? #f) (or/c exact-positive-integer? #f)
(or/c exact-positive-integer? #f)) (or/c exact-nonnegative-integer? #f))
(vector/c any/c (vector/c any/c
(or/c exact-positive-integer? #f) (or/c exact-positive-integer? #f)
(or/c exact-nonnegative-integer? #f) (or/c exact-nonnegative-integer? #f)
(or/c exact-nonnegative-integer? #f) (or/c exact-positive-integer? #f)
(or/c exact-positive-integer? #f))) (or/c exact-nonnegative-integer? #f)))
#f] #f]
[prop (or/c syntax? #f) #f] [prop (or/c syntax? #f) #f]
[cert (or/c syntax? #f) #f]) [cert (or/c syntax? #f) #f])

View File

@ -142,7 +142,7 @@ A syntax object matches a @scheme[pattern] as follows:
@specsubform[const]{ @specsubform[const]{
A @scheme[const] is any datum that does not match one of the A @scheme[const] is any datum that does not match one of the
preceeding forms; a syntax object matches a @scheme[const] pattern preceding forms; a syntax object matches a @scheme[const] pattern
when its datum is @scheme[equal?] to the @scheme[quote]d when its datum is @scheme[equal?] to the @scheme[quote]d
@scheme[const].} @scheme[const].}

View File

@ -43,7 +43,7 @@
;; and tm:julian-day-at-zero-seconds, which refer to the '0' of CURRENT-SECONDS. ;; and tm:julian-day-at-zero-seconds, which refer to the '0' of CURRENT-SECONDS.
;; ;;
;; SRFI-6, String Ports, and SRFI-8, RECEIVE: Binding Multiple Values, ;; SRFI-6, String Ports, and SRFI-8, RECEIVE: Binding Multiple Values,
;; are also used. MzScheme has String Ports built-in. The RECIEVE form ;; are also used. MzScheme has String Ports built-in. The RECEIVE form
;; is copied below. ;; is copied below.
;; ;;
; srfi-8: receive ; srfi-8: receive

View File

@ -285,7 +285,7 @@ please adhere to these guidelines:
(plt:hd:manual-installed-date "(~a installeret)") (plt:hd:manual-installed-date "(~a installeret)")
; Help Desk configuration ; Help Desk configuration
;; refreshing manuals ;; refreshing manuals
(plt:hd:refresh-clearing-indicies "Renser forgemte indekser") (plt:hd:refresh-clearing-indices "Renser forgemte indekser")
;; should not mention `SVN' (plt:hd:refresh-done "Færdig med at opdatere SVN-manualer") ;; should not mention `SVN' (plt:hd:refresh-done "Færdig med at opdatere SVN-manualer")
(plt:hd:refreshing-manuals "Genhenter manualer") (plt:hd:refreshing-manuals "Genhenter manualer")
(plt:hd:refresh-downloading... "Henter ~a...") (plt:hd:refresh-downloading... "Henter ~a...")

View File

@ -312,7 +312,7 @@ please adhere to these guidelines:
(plt:hd:refresh-downloading... "Downloading ~a...") (plt:hd:refresh-downloading... "Downloading ~a...")
(plt:hd:refresh-deleting... "Deleting old version of ~a...") (plt:hd:refresh-deleting... "Deleting old version of ~a...")
(plt:hd:refresh-installing... "Installing new version of ~a...") (plt:hd:refresh-installing... "Installing new version of ~a...")
(plt:hd:refresh-clearing-indicies "Clearing cached indices") (plt:hd:refresh-clearing-indices "Clearing cached indices")
(plt:hd:refreshing-manuals-finished "Finished.") (plt:hd:refreshing-manuals-finished "Finished.")
(plt:hd:about-help-desk "About Help Desk") (plt:hd:about-help-desk "About Help Desk")
(plt:hd:help-desk-about-string (plt:hd:help-desk-about-string
@ -450,7 +450,7 @@ please adhere to these guidelines:
(revert-to-defaults "Revert to Defaults") (revert-to-defaults "Revert to Defaults")
(black-on-white-color-scheme "Black on White") ;; these two appear in the color preferences dialog on butttons (black-on-white-color-scheme "Black on White") ;; these two appear in the color preferences dialog on butttons
(white-on-black-color-scheme "White on Black") ;; clicking the buttons changes teh color schemes to some defaults that've been set up. (white-on-black-color-scheme "White on Black") ;; clicking the buttons changes the color schemes to some defaults that've been set up.
; title of the color choosing dialog ; title of the color choosing dialog

View File

@ -312,7 +312,7 @@
(plt:hd:refresh-downloading... "Téléchargement de ~a...") (plt:hd:refresh-downloading... "Téléchargement de ~a...")
(plt:hd:refresh-deleting... "Effacement de l'ancienne version de ~a...") (plt:hd:refresh-deleting... "Effacement de l'ancienne version de ~a...")
(plt:hd:refresh-installing... "Installation de la nouvelle version de ~a...") (plt:hd:refresh-installing... "Installation de la nouvelle version de ~a...")
(plt:hd:refresh-clearing-indicies "Effacement des indices cachés") (plt:hd:refresh-clearing-indices "Effacement des indices cachés")
(plt:hd:refreshing-manuals-finished "Terminé.") (plt:hd:refreshing-manuals-finished "Terminé.")
(plt:hd:about-help-desk "A propos de l'Aide") (plt:hd:about-help-desk "A propos de l'Aide")
(plt:hd:help-desk-about-string (plt:hd:help-desk-about-string
@ -450,7 +450,7 @@
(revert-to-defaults "Retour aux valeurs par défaut") (revert-to-defaults "Retour aux valeurs par défaut")
(black-on-white-color-scheme "Noir sur blanc") ;; these two appear in the color preferences dialog on butttons (black-on-white-color-scheme "Noir sur blanc") ;; these two appear in the color preferences dialog on butttons
(white-on-black-color-scheme "Blanc sur noir") ;; clicking the buttons changes teh color schemes to some defaults that've been set up. (white-on-black-color-scheme "Blanc sur noir") ;; clicking the buttons changes the color schemes to some defaults that've been set up.
; title of the color choosing dialog ; title of the color choosing dialog

View File

@ -212,7 +212,7 @@
(plt:hd:refresh-downloading... "~a herunterladen...") (plt:hd:refresh-downloading... "~a herunterladen...")
(plt:hd:refresh-deleting... "Alte Version von ~a löschen...") (plt:hd:refresh-deleting... "Alte Version von ~a löschen...")
(plt:hd:refresh-installing... "Neue Version von ~a installieren...") (plt:hd:refresh-installing... "Neue Version von ~a installieren...")
(plt:hd:refresh-clearing-indicies "Gecachte Indizes löschen") (plt:hd:refresh-clearing-indices "Gecachte Indizes löschen")
(plt:hd:refreshing-manuals-finished "Fertig.") (plt:hd:refreshing-manuals-finished "Fertig.")
(plt:hd:about-help-desk "Über das Hilfezentrum") (plt:hd:about-help-desk "Über das Hilfezentrum")
(plt:hd:help-desk-about-string (plt:hd:help-desk-about-string
@ -348,7 +348,7 @@
(revert-to-defaults "Standardeinstellung wiederherstellen") (revert-to-defaults "Standardeinstellung wiederherstellen")
(black-on-white-color-scheme "Schwarz auf Weiß") ;; these two appear in the color preferences dialog on butttons (black-on-white-color-scheme "Schwarz auf Weiß") ;; these two appear in the color preferences dialog on butttons
(white-on-black-color-scheme "Weiß auf Schwarz") ;; clicking the buttons changes teh color schemes to some defaults that've been set up. (white-on-black-color-scheme "Weiß auf Schwarz") ;; clicking the buttons changes the color schemes to some defaults that've been set up.
; title of the color choosing dialog ; title of the color choosing dialog
@ -951,6 +951,7 @@
(initial-language-category "Sprache am Anfang") (initial-language-category "Sprache am Anfang")
(no-language-chosen "Keine Sprache ausgewählt") (no-language-chosen "Keine Sprache ausgewählt")
(module-language-name "Sprache aus Quelltext ermitteln")
(module-language-one-line-summary "List die #lang-Zeile, um die tatsächliche Sprache zu ermitteln.") (module-language-one-line-summary "List die #lang-Zeile, um die tatsächliche Sprache zu ermitteln.")
(module-language-auto-text "Automatisch Zeile mit #lang") ;; shows up in the details section of the module language (module-language-auto-text "Automatisch Zeile mit #lang") ;; shows up in the details section of the module language

View File

@ -307,7 +307,7 @@ please adhere to these guidelines:
(plt:hd:refresh-downloading... "~a をダウンロードしています...") (plt:hd:refresh-downloading... "~a をダウンロードしています...")
(plt:hd:refresh-deleting... "古いバージョンの ~a を削除しています...") (plt:hd:refresh-deleting... "古いバージョンの ~a を削除しています...")
(plt:hd:refresh-installing... "新しいバージョンの ~a をインストールしています...") (plt:hd:refresh-installing... "新しいバージョンの ~a をインストールしています...")
(plt:hd:refresh-clearing-indicies "キャッシュ内の索引を消去しています") (plt:hd:refresh-clearing-indices "キャッシュ内の索引を消去しています")
(plt:hd:refreshing-manuals-finished "完了しました。") (plt:hd:refreshing-manuals-finished "完了しました。")
(plt:hd:about-help-desk "ヘルプデスクについて") (plt:hd:about-help-desk "ヘルプデスクについて")
(plt:hd:help-desk-about-string (plt:hd:help-desk-about-string
@ -445,7 +445,7 @@ please adhere to these guidelines:
(revert-to-defaults "デフォルトに戻す") (revert-to-defaults "デフォルトに戻す")
(black-on-white-color-scheme "白地に黒") ;; these two appear in the color preferences dialog on butttons (black-on-white-color-scheme "白地に黒") ;; these two appear in the color preferences dialog on butttons
(white-on-black-color-scheme "黒地に白") ;; clicking the buttons changes teh color schemes to some defaults that've been set up. (white-on-black-color-scheme "黒地に白") ;; clicking the buttons changes the color schemes to some defaults that've been set up.
; title of the color choosing dialog ; title of the color choosing dialog

View File

@ -289,7 +289,7 @@ please adhere to these guidelines:
(plt:hd:refresh-downloading... "A tirar ~a...") (plt:hd:refresh-downloading... "A tirar ~a...")
(plt:hd:refresh-deleting... "A remover a versão antiga de ~a...") (plt:hd:refresh-deleting... "A remover a versão antiga de ~a...")
(plt:hd:refresh-installing... "A instalar nova versão de ~a...") (plt:hd:refresh-installing... "A instalar nova versão de ~a...")
(plt:hd:refresh-clearing-indicies "A apagar os índices em cache") (plt:hd:refresh-clearing-indices "A apagar os índices em cache")
(plt:hd:refreshing-manuals-finished "Concluído.") (plt:hd:refreshing-manuals-finished "Concluído.")
(plt:hd:about-help-desk "Sobre o Directorio de Ajuda") (plt:hd:about-help-desk "Sobre o Directorio de Ajuda")
(plt:hd:help-desk-about-string (plt:hd:help-desk-about-string

View File

@ -229,7 +229,7 @@
(plt:hd:refresh-downloading... "下载~a...") (plt:hd:refresh-downloading... "下载~a...")
(plt:hd:refresh-deleting... "删除旧版本的~a...") (plt:hd:refresh-deleting... "删除旧版本的~a...")
(plt:hd:refresh-installing... "安装新版本的~a...") (plt:hd:refresh-installing... "安装新版本的~a...")
(plt:hd:refresh-clearing-indicies "清除缓存中的索引") (plt:hd:refresh-clearing-indices "清除缓存中的索引")
(plt:hd:refreshing-manuals-finished "完成。") (plt:hd:refreshing-manuals-finished "完成。")
(plt:hd:about-help-desk "关于Help Desk") (plt:hd:about-help-desk "关于Help Desk")
(plt:hd:help-desk-about-string (plt:hd:help-desk-about-string
@ -367,7 +367,7 @@
(revert-to-defaults "恢复默认") (revert-to-defaults "恢复默认")
(black-on-white-color-scheme "白底黑字") ;; these two appear in the color preferences dialog on butttons (black-on-white-color-scheme "白底黑字") ;; these two appear in the color preferences dialog on butttons
(white-on-black-color-scheme "黑底白字") ;; clicking the buttons changes teh color schemes to some defaults that've been set up. (white-on-black-color-scheme "黑底白字") ;; clicking the buttons changes the color schemes to some defaults that've been set up.
; title of the color choosing dialog ; title of the color choosing dialog

View File

@ -195,11 +195,11 @@
;; Help Desk configuration ;; Help Desk configuration
;; refreshing manuals ;; refreshing manuals
;; should not mention `SVN' (plt:hd:refresh-done "Refresco de los manuales via SVN terminado") ;; should not mention `SVN' (plt:hd:refresh-done "Refresco de los manuales via SVN terminado")
(plt:hd:refresh-clearing-indicies "Eliminando índices guardados") (plt:hd:refresh-clearing-indices "Eliminando índices guardados")
(plt:hd:refresh-deleting... "Borrando la versión vieja de ~a...") (plt:hd:refresh-deleting... "Borrando la versión vieja de ~a...")
(plt:hd:refresh-downloading... "Bajando ~a...") (plt:hd:refresh-downloading... "Bajando ~a...")
(plt:hd:refresh-installing... "Instalando nueva versión de ~a...") (plt:hd:refresh-installing... "Instalando nueva versión de ~a...")
(plt:hd:refresh-clearing-indicies "Eliminando indices almacenados") (plt:hd:refresh-clearing-indices "Eliminando indices almacenados")
(plt:hd:refreshing-manuals "Bajando (nuevamente) los Manuales") (plt:hd:refreshing-manuals "Bajando (nuevamente) los Manuales")
(plt:hd:refreshing-manuals-finished "Terminado.") (plt:hd:refreshing-manuals-finished "Terminado.")
(plt:hd:about-help-desk "Acerca del Módulo de Ayuda") (plt:hd:about-help-desk "Acerca del Módulo de Ayuda")

View File

@ -228,7 +228,7 @@
(plt:hd:refresh-downloading... "下载~a...") (plt:hd:refresh-downloading... "下载~a...")
(plt:hd:refresh-deleting... "删除旧版本的~a...") (plt:hd:refresh-deleting... "删除旧版本的~a...")
(plt:hd:refresh-installing... "安装新版本的~a...") (plt:hd:refresh-installing... "安装新版本的~a...")
(plt:hd:refresh-clearing-indicies "清除缓存中的索引") (plt:hd:refresh-clearing-indices "清除缓存中的索引")
(plt:hd:refreshing-manuals-finished "完成。") (plt:hd:refreshing-manuals-finished "完成。")
(plt:hd:about-help-desk "关于Help Desk") (plt:hd:about-help-desk "关于Help Desk")
(plt:hd:help-desk-about-string (plt:hd:help-desk-about-string
@ -366,7 +366,7 @@
(revert-to-defaults "恢复默认") (revert-to-defaults "恢复默认")
(black-on-white-color-scheme "白底黑字") ;; these two appear in the color preferences dialog on butttons (black-on-white-color-scheme "白底黑字") ;; these two appear in the color preferences dialog on butttons
(white-on-black-color-scheme "黑底白字") ;; clicking the buttons changes teh color schemes to some defaults that've been set up. (white-on-black-color-scheme "黑底白字") ;; clicking the buttons changes the color schemes to some defaults that've been set up.
; title of the color choosing dialog ; title of the color choosing dialog

View File

@ -18,7 +18,7 @@
;; or the other ;; or the other
;; - (vector map) => template portion is a vector, ;; - (vector map) => template portion is a vector,
;; contents like the list in map ;; contents like the list in map
;; - (box map) => template portion is a box with substition ;; - (box map) => template portion is a box with substitution
;; - #s(ellipses elem count map) => template portion is an ellipses-generated list ;; - #s(ellipses elem count map) => template portion is an ellipses-generated list
;; - #s(ellipses-quote map) => template has a quoting ellipses ;; - #s(ellipses-quote map) => template has a quoting ellipses
;; - #s(prefab v map) => template portion is a prefab ;; - #s(prefab v map) => template portion is a prefab

View File

@ -237,7 +237,7 @@ other. The top and bottom pair of angles is @scheme[angle] and the left and righ
Constructs an arbitrary regular star polygon (a generalization of the regular polygons). Constructs an arbitrary regular star polygon (a generalization of the regular polygons).
The polygon is enclosed by a regular polygon with @scheme[side-count] sides each The polygon is enclosed by a regular polygon with @scheme[side-count] sides each
@scheme[side-length] long. The polygon is actually constructed by going from vertex to @scheme[side-length] long. The polygon is actually constructed by going from vertex to
vertex around the regular polgon, but skipping over every @scheme[step-count] verticies. vertex around the regular polgon, but skipping over every @scheme[step-count] vertices.
For examples, if @scheme[side-count] is @scheme[5] and @scheme[step-count] is @scheme[2], For examples, if @scheme[side-count] is @scheme[5] and @scheme[step-count] is @scheme[2],
then this function produces a shape just like @scheme[star]. then this function produces a shape just like @scheme[star].
@ -250,15 +250,15 @@ other. The top and bottom pair of angles is @scheme[angle] and the left and righ
} }
@defproc*[([(polygon [verticies (listof posn?)] @defproc*[([(polygon [vertices (listof posn?)]
[mode mode?] [mode mode?]
[color image-color?]) [color image-color?])
image?] image?]
[(polygon [verticies (listof posn?)] [(polygon [vertices (listof posn?)]
[outline-mode (or/c 'outline "outline")] [outline-mode (or/c 'outline "outline")]
[pen-or-color (or/c pen? image-color?)]) [pen-or-color (or/c pen? image-color?)])
image?])]{ image?])]{
Constructs a polygon connecting the given verticies. Constructs a polygon connecting the given vertices.
@mode/color-text @mode/color-text

View File

@ -11,7 +11,7 @@
[use-get/put-dialog (-> (-> any) path? void?)] [use-get/put-dialog (-> (-> any) path? void?)]
[set-module-language! (->* () (boolean?) void?)]) [set-module-language! (->* () (boolean?) void?)])
(provide fire-up-drscheme (provide fire-up-drscheme-and-run-tests
save-drscheme-window-as save-drscheme-window-as
do-execute do-execute
test-util-error test-util-error
@ -622,13 +622,35 @@
;; but just to print and return. ;; but just to print and return.
(define orig-display-handler (error-display-handler)) (define orig-display-handler (error-display-handler))
(define (fire-up-drscheme) (define (fire-up-drscheme-and-run-tests run-test)
(let ()
;; change the preferences system so that it doesn't write to
;; a file; partly to avoid problems of concurrency in drdr
;; but also to make the test suite easier for everyone to run.
(let ([prefs-table (make-hash)])
(fw:preferences:low-level-put-preferences
(lambda (names vals)
(for-each (lambda (name val) (hash-set! prefs-table name val))
names vals)))
(fw:preferences:low-level-get-preference
(lambda (name [fail (lambda () #f)])
(hash-ref prefs-table name fail))))
(dynamic-require 'drscheme #f) (dynamic-require 'drscheme #f)
;; reset the uncaught exception handler to be sure we kill everything (drscheme sets it) ;; set all preferences to their defaults (some pref values may have
;; been read by this point, but hopefully that won't affect much
;; of the startup of drscheme)
(fw:preferences:restore-defaults)
(thread (λ ()
(let ([orig-display-handler (error-display-handler)])
(uncaught-exception-handler (uncaught-exception-handler
(λ (x) (λ (x)
(if (exn? x) (if (exn? x)
(orig-display-handler (exn-message x) x) (orig-display-handler (exn-message x) x)
(fprintf (current-error-port) "uncaught exception ~s\n" x)) (fprintf (current-error-port) "uncaught exception ~s\n" x))
(exit 1)))) (exit 1))))
(run-test)
(exit)))
(yield (make-semaphore 0))))

View File

@ -183,9 +183,7 @@ add this test:
(define drs-frame #f) (define drs-frame #f)
(define interactions-text #f) (define interactions-text #f)
(let ([s (make-semaphore)]) (fire-up-drscheme-and-run-tests
(fire-up-drscheme)
(thread
(λ () (λ ()
(set! drs-frame (wait-for-drscheme-frame)) (set! drs-frame (wait-for-drscheme-frame))
(set! interactions-text (send drs-frame get-interactions-text)) (set! interactions-text (send drs-frame get-interactions-text))
@ -194,9 +192,6 @@ add this test:
(do-execute drs-frame) (do-execute drs-frame)
(output-err-port-checking) ;; must come first (output-err-port-checking) ;; must come first
;(long-io/execute-test) ;;(long-io/execute-test)
(reading-test) (reading-test)))
(semaphore-post s)))
(yield s)
(exit))

View File

@ -1352,7 +1352,4 @@ the settings above should match r5rs
(go pretty-big) (go pretty-big)
(go r5rs)) (go r5rs))
(let () (fire-up-drscheme-and-run-tests run-test)
(fire-up-drscheme)
(thread (λ () (run-test) (exit)))
(yield (make-semaphore)))

View File

@ -129,7 +129,6 @@
error-ranges-expected error-ranges-expected
(send interactions-text get-error-ranges))))]))))) (send interactions-text get-error-ranges))))])))))
(define drs 'not-yet-drs-frame) (define drs 'not-yet-drs-frame)
(define interactions-text 'not-yet-interactions-text) (define interactions-text 'not-yet-interactions-text)
(define definitions-text 'not-yet-definitions-text) (define definitions-text 'not-yet-definitions-text)

View File

@ -141,7 +141,7 @@
(provide s) (provide s)
(define-syntax (s stx) e))} (define-syntax (s stx) e))}
@t{(require m) s} @t{(require m) s}
@rx{module-lang-test-tmp2.ss:1:[67][90]: compile: bad syntax; @rx{compile: bad syntax;
literal data is not allowed, because no #%datum syntax transformer literal data is not allowed, because no #%datum syntax transformer
is bound in: 1$}) is bound in: 1$})
(test @t{(module tmp mzscheme (test @t{(module tmp mzscheme
@ -247,11 +247,7 @@
f f
(f) (f)
-- --
#t #t)
#:error-ranges
(λ (defs ints)
(list (make-srcloc ints 3 3 107 1)
(make-srcloc ints 3 2 106 3))))
;; test protection against user-code changing the namespace ;; test protection against user-code changing the namespace
(test @t{#lang scheme/base (test @t{#lang scheme/base
@ -265,7 +261,4 @@
(require "drscheme-test-util.ss") (require "drscheme-test-util.ss")
(let () (fire-up-drscheme-and-run-tests run-test)
(fire-up-drscheme)
(thread (λ () (run-test) (exit)))
(yield (make-semaphore 0)))

View File

@ -73,7 +73,7 @@ This produces an ACK message
backtrace-image-string backtrace-image-string
" " " "
file-image-string file-image-string
" ../../mred/private/snipfile.ss:")) " .*mred/private/snipfile.ss:"))
"[0-9]+:[0-9]+: " "[0-9]+:[0-9]+: "
(regexp-quote str)))) (regexp-quote str))))
@ -190,8 +190,8 @@ This produces an ACK message
"{stop-multi.png} {stop-22x22.png} reference to undefined identifier: xx" "{stop-multi.png} {stop-22x22.png} reference to undefined identifier: xx"
"{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:1:0: reference to undefined identifier: xx" "{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:1:0: reference to undefined identifier: xx"
"reference to undefined identifier: xx" "reference to undefined identifier: xx"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: xx" #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: xx"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: xx") #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: xx")
'definitions 'definitions
#f #f
void void
@ -266,8 +266,8 @@ This produces an ACK message
"define-values: cannot change constant identifier: +" "define-values: cannot change constant identifier: +"
"define-values: cannot change constant identifier: +" "define-values: cannot change constant identifier: +"
"define-values: cannot change constant identifier: +" "define-values: cannot change constant identifier: +"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: define-values: cannot change constant identifier: \\+" #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: define-values: cannot change constant identifier: \\+"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: define-values: cannot change constant identifier: \\+") #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: define-values: cannot change constant identifier: \\+")
'interactions 'interactions
#f #f
void void
@ -305,8 +305,8 @@ This produces an ACK message
"{stop-multi.png} {stop-22x22.png} reference to undefined identifier: xx" "{stop-multi.png} {stop-22x22.png} reference to undefined identifier: xx"
"{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:1:7: reference to undefined identifier: xx" "{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:1:7: reference to undefined identifier: xx"
"reference to undefined identifier: xx" "reference to undefined identifier: xx"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: xx" #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: xx"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: xx") #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: xx")
'definitions 'definitions
#f #f
void void
@ -350,8 +350,8 @@ This produces an ACK message
"{stop-multi.png} {stop-22x22.png} reference to undefined identifier: xx" "{stop-multi.png} {stop-22x22.png} reference to undefined identifier: xx"
"{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:2:0: reference to undefined identifier: xx" "{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:2:0: reference to undefined identifier: xx"
"reference to undefined identifier: xx" "reference to undefined identifier: xx"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: xx" #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: xx"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: xx") #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: xx")
'definitions 'definitions
#f #f
void void
@ -417,8 +417,8 @@ This produces an ACK message
"{stop-multi.png} {stop-22x22.png} reference to undefined identifier: x" "{stop-multi.png} {stop-22x22.png} reference to undefined identifier: x"
"{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:1:4: reference to undefined identifier: x" "{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:1:4: reference to undefined identifier: x"
"reference to undefined identifier: x" "reference to undefined identifier: x"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: x" #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: x"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: x") #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: x")
'definitions 'definitions
#f #f
void void
@ -457,8 +457,8 @@ This produces an ACK message
"{stop-multi.png} {stop-22x22.png} expt: expected argument of type <number>; given #<void>" "{stop-multi.png} {stop-22x22.png} expt: expected argument of type <number>; given #<void>"
"{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:1:0: expt: expected argument of type <number>; given #<void>" "{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:1:0: expt: expected argument of type <number>; given #<void>"
"expt: expected argument of type <number>; given #<void>" "expt: expected argument of type <number>; given #<void>"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: expt: expected argument of type <number>; given #<void>" #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: expt: expected argument of type <number>; given #<void>"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: expt: expected argument of type <number>; given #<void>") #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: expt: expected argument of type <number>; given #<void>")
'definitions 'definitions
#f #f
void void
@ -507,8 +507,8 @@ This produces an ACK message
"{stop-multi.png} {stop-22x22.png} reference to undefined identifier: x" "{stop-multi.png} {stop-22x22.png} reference to undefined identifier: x"
"{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:1:4: reference to undefined identifier: x" "{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:1:4: reference to undefined identifier: x"
"1\n2\nreference to undefined identifier: x" "1\n2\nreference to undefined identifier: x"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: x" #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: x"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: x") #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: x")
'definitions 'definitions
#f #f
void void
@ -620,8 +620,8 @@ This produces an ACK message
"{stop-multi.png} {stop-22x22.png} expt: expected argument of type <number>; given #f\n15" "{stop-multi.png} {stop-22x22.png} expt: expected argument of type <number>; given #f\n15"
"{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:5:19: expt: expected argument of type <number>; given #f\n15" "{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:5:19: expt: expected argument of type <number>; given #f\n15"
"expt: expected argument of type <number>; given #f\n15" "expt: expected argument of type <number>; given #f\n15"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: expt: expected argument of type <number>; given #f\n15" #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: expt: expected argument of type <number>; given #f\n15"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: expt: expected argument of type <number>; given #f\n15") #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: expt: expected argument of type <number>; given #f\n15")
'definitions 'definitions
#f #f
void void
@ -644,12 +644,12 @@ This produces an ACK message
;; should produce a syntax object with a turn-down triangle. ;; should produce a syntax object with a turn-down triangle.
(mktest "(write (list (syntax x)))" (mktest "(write (list (syntax x)))"
(#rx"({embedded \".#<syntax:.*/collects/tests/drscheme/repl-test-tmp.ss:1:21.*>\"})" (#rx"({embedded \".#<syntax:.*repl-test-tmp.ss:1:21.*>\"})"
#rx"({embedded \".#<syntax:.*/collects/tests/drscheme/repl-test-tmp.ss:1:21.*>\"})" #rx"({embedded \".#<syntax:.*repl-test-tmp.ss:1:21.*>\"})"
#rx"({embedded \".#<syntax:.*/collects/tests/drscheme/repl-test-tmp3.ss:1:21.*>\"})" #rx"({embedded \".#<syntax:.*repl-test-tmp3.ss:1:21.*>\"})"
#rx"({embedded \".#<syntax:.*/collects/tests/drscheme/repl-test-tmp.ss:1:21.*>\"})" #rx"({embedded \".#<syntax:.*repl-test-tmp.ss:1:21.*>\"})"
#rx"({embedded \".#<syntax:.*/collects/tests/drscheme/repl-test-tmp.ss:1:21.*>\"})" #rx"({embedded \".#<syntax:.*repl-test-tmp.ss:1:21.*>\"})"
#rx"({embedded \".#<syntax:.*/collects/tests/drscheme/repl-test-tmp3.ss:1:21.*>\"})") #rx"({embedded \".#<syntax:.*repl-test-tmp3.ss:1:21.*>\"})")
'interactions 'interactions
#f #f
void void
@ -685,12 +685,12 @@ This produces an ACK message
(mktest "(parameterize ([current-output-port (open-output-string)]) (fprintf (current-error-port) \"~e\" #'foot))" (mktest "(parameterize ([current-output-port (open-output-string)]) (fprintf (current-error-port) \"~e\" #'foot))"
(#rx"#<syntax:.*/collects/tests/drscheme/repl-test-tmp.ss:1:96.*>" (#rx"#<syntax:.*repl-test-tmp.ss:1:96.*>"
#rx"#<syntax:.*/collects/tests/drscheme/repl-test-tmp.ss:1:96.*>" #rx"#<syntax:.*repl-test-tmp.ss:1:96.*>"
#rx"#<syntax:.*/collects/tests/drscheme/repl-test-tmp3.ss:1:96.*>" #rx"#<syntax:.*repl-test-tmp3.ss:1:96.*>"
#rx"#<syntax:.*/collects/tests/drscheme/repl-test-tmp.ss:1:96.*>" #rx"#<syntax:.*repl-test-tmp.ss:1:96.*>"
#rx"#<syntax:.*/collects/tests/drscheme/repl-test-tmp.ss:1:96.*>" #rx"#<syntax:.*repl-test-tmp.ss:1:96.*>"
#rx"#<syntax:.*/collects/tests/drscheme/repl-test-tmp3.ss:1:96.*>") #rx"#<syntax:.*repl-test-tmp3.ss:1:96.*>")
'interactions 'interactions
#f #f
void void
@ -719,8 +719,8 @@ This produces an ACK message
"{stop-multi.png} {stop-22x22.png} expt: expected argument of type <number>; given #f" "{stop-multi.png} {stop-22x22.png} expt: expected argument of type <number>; given #f"
"{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:6:15: expt: expected argument of type <number>; given #f" "{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:6:15: expt: expected argument of type <number>; given #f"
"expt: expected argument of type <number>; given #f" "expt: expected argument of type <number>; given #f"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: expt: expected argument of type <number>; given #f" #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: expt: expected argument of type <number>; given #f"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: expt: expected argument of type <number>; given #f") #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: expt: expected argument of type <number>; given #f")
'definitions 'definitions
#f #f
void void
@ -796,8 +796,8 @@ This produces an ACK message
"{stop-multi.png} {stop-22x22.png} procedure application: expected procedure, given: 3; arguments were: 3" "{stop-multi.png} {stop-22x22.png} procedure application: expected procedure, given: 3; arguments were: 3"
"{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:3:13: procedure application: expected procedure, given: 3; arguments were: 3" "{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:3:13: procedure application: expected procedure, given: 3; arguments were: 3"
"procedure application: expected procedure, given: 3; arguments were: 3" "procedure application: expected procedure, given: 3; arguments were: 3"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: procedure application: expected procedure, given: 3; arguments were: 3" #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: procedure application: expected procedure, given: 3; arguments were: 3"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: procedure application: expected procedure, given: 3; arguments were: 3") #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: procedure application: expected procedure, given: 3; arguments were: 3")
'definitions 'definitions
#f #f
void void
@ -898,8 +898,8 @@ This produces an ACK message
"{stop-multi.png} {stop-22x22.png} reference to undefined identifier: xx" "{stop-multi.png} {stop-22x22.png} reference to undefined identifier: xx"
"{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:1:0: reference to undefined identifier: xx" "{stop-multi.png} {stop-22x22.png} repl-test-tmp3.ss:1:0: reference to undefined identifier: xx"
"reference to undefined identifier: xx" "reference to undefined identifier: xx"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: xx" #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: xx"
#rx"{stop-multi.png} {stop-22x22.png} ../../mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: xx") #rx"{stop-multi.png} {stop-22x22.png} .*mred/private/snipfile.ss:[0-9]+:[0-9]+: reference to undefined identifier: xx")
'definitions 'definitions
#f #f
void void
@ -1069,7 +1069,8 @@ This produces an ACK message
(define backtrace-image-string "{stop-multi.png}") (define backtrace-image-string "{stop-multi.png}")
(define file-image-string "{stop-22x22.png}") (define file-image-string "{stop-22x22.png}")
(define tmp-load-directory (define tmp-load-directory (find-system-path 'temp-dir)
#;
(normal-case-path (normal-case-path
(normalize-path (normalize-path
(collection-path "tests" "drscheme")))) (collection-path "tests" "drscheme"))))
@ -1080,8 +1081,6 @@ This produces an ACK message
(define tmp-load3-short-filename "repl-test-tmp3.ss") (define tmp-load3-short-filename "repl-test-tmp3.ss")
(define tmp-load3-filename (build-path tmp-load-directory tmp-load3-short-filename)) (define tmp-load3-filename (build-path tmp-load-directory tmp-load3-short-filename))
tmp-load-filename
(define (cleanup-tmp-files) (define (cleanup-tmp-files)
(when (file-exists? tmp-load-filename) (delete-file tmp-load-filename)) (when (file-exists? tmp-load-filename) (delete-file tmp-load-filename))
(when (file-exists? tmp-load3-filename) (delete-file tmp-load3-filename))) (when (file-exists? tmp-load3-filename) (delete-file tmp-load3-filename)))
@ -1133,7 +1132,7 @@ tmp-load-filename
; given a filename "foo", we perform two operations on the contents ; given a filename "foo", we perform two operations on the contents
; of the file "foo.ss". First, we insert its contents into the REPL ; of the file "foo.ss". First, we insert its contents into the REPL
; directly, and second, we use the load command. We compare the ; directly, and second, we use the load command. We compare the
; the results of these operations against expected results. ; results of these operations against expected results.
(define ((run-single-test execute-text-start escape language-cust) in-vector) (define ((run-single-test execute-text-start escape language-cust) in-vector)
;(printf "\n>> testing ~s\n" (test-program in-vector)) ;(printf "\n>> testing ~s\n" (test-program in-vector))
(let* ([program (test-program in-vector)] (let* ([program (test-program in-vector)]
@ -1515,13 +1514,10 @@ tmp-load-filename
(string-append a b))) (string-append a b)))
(let () (exit-handler
(fire-up-drscheme)
(wait-for-drscheme-frame) ;; after this point, it is safe to set the exit handler
(exit-handler
(let ([eh (exit-handler)]) (let ([eh (exit-handler)])
(λ (val) (λ (val)
(cleanup-tmp-files) (cleanup-tmp-files)
(eh val)))) (eh val))))
(thread (λ () (run-test) (exit)))
(yield (make-semaphore 0))) (fire-up-drscheme-and-run-tests run-test)

View File

@ -0,0 +1,7 @@
#!/bin/sh -x
mred module-lang-test.ss &&
mred repl-test.ss &&
mred io.ss &&
mred language-test.ss &&
mred syncheck-test.ss &&
mred teachpack.ss

View File

@ -849,8 +849,7 @@ trigger runtime errors in check syntax.
(list '((27 33) (19 26) (36 49) (53 59) (64 66)))))) (list '((27 33) (19 26) (36 49) (53 59) (64 66))))))
(define (main) (define (main)
(let ([s (make-semaphore 0)]) (fire-up-drscheme-and-run-tests
(thread
(λ () (λ ()
(let ([drs (wait-for-drscheme-frame)]) (let ([drs (wait-for-drscheme-frame)])
(set-language-level! (list "Pretty Big")) (set-language-level! (list "Pretty Big"))
@ -864,13 +863,7 @@ trigger runtime errors in check syntax.
(preferences:set 'framework:coloring-active #t) (preferences:set 'framework:coloring-active #t)
(send defs save-file) ;; clear out autosave (send defs save-file) ;; clear out autosave
(send defs set-filename #f) (send defs set-filename #f)
(delete-file filename) (delete-file filename)))))))
;; let the app die.
(semaphore-post s))))))
(fire-up-drscheme)
(yield s)
(printf "Tests complete.\n")
(exit)))
(define ((run-one-test save-dir) test) (define ((run-one-test save-dir) test)
(let* ([drs (wait-for-drscheme-frame)] (let* ([drs (wait-for-drscheme-frame)]

View File

@ -238,7 +238,4 @@
;(bad-tests) ;(bad-tests)
(test-built-in-teachpacks)) (test-built-in-teachpacks))
(let () (fire-up-drscheme-and-run-tests run-test)
(fire-up-drscheme)
(thread (λ () (run-test) (exit)))
(yield (make-semaphore)))

View File

@ -55,7 +55,7 @@
state)))) state))))
; Given the size of a vector and a procedure which ; Given the size of a vector and a procedure which
; sends indicies to desired vector elements, create ; sends indices to desired vector elements, create
; and return the vector. ; and return the vector.
(define proc->vector (define proc->vector
(lambda (size f) (lambda (size f)
@ -278,7 +278,7 @@
; vertex. Each entry is a bool indicating if the edge exists. ; vertex. Each entry is a bool indicating if the edge exists.
; The diagonal of the matrix is never examined. ; The diagonal of the matrix is never examined.
; Make-minimal? returns a procedure which tests if a labelling ; Make-minimal? returns a procedure which tests if a labelling
; of the verticies is such that the matrix is minimal. ; of the vertices is such that the matrix is minimal.
; If it is, then the procedure returns the result of folding over ; If it is, then the procedure returns the result of folding over
; the elements of the automoriphism group. If not, it returns #f. ; the elements of the automoriphism group. If not, it returns #f.
; The folding is done by calling folder via ; The folding is done by calling folder via
@ -382,11 +382,11 @@
; Fold over rooted directed graphs with bounded out-degree. ; Fold over rooted directed graphs with bounded out-degree.
; Size is the number of verticies (including the root). Max-out is the ; Size is the number of vertices (including the root). Max-out is the
; maximum out-degree for any vertex. Folder is called via ; maximum out-degree for any vertex. Folder is called via
; (folder edges state) ; (folder edges state)
; where edges is a list of length size. The ith element of the list is ; where edges is a list of length size. The ith element of the list is
; a list of the verticies j for which there is an edge from i to j. ; a list of the vertices j for which there is an edge from i to j.
; The last vertex is the root. ; The last vertex is the root.
(define fold-over-rdg (define fold-over-rdg
(lambda (size max-out folder state) (lambda (size max-out folder state)
@ -622,7 +622,7 @@
;;; ==== test input ==== ;;; ==== test input ====
; Produces all directed graphs with N verticies, distinguished root, ; Produces all directed graphs with N vertices, distinguished root,
; and out-degree bounded by 2, upto isomorphism (there are 44). ; and out-degree bounded by 2, upto isomorphism (there are 44).
;(define go ;(define go

View File

@ -12,7 +12,7 @@
(module regexmatch mzscheme (module regexmatch mzscheme
(define rx (define rx
(string-append (string-append
"(?:^|[^0-9\\(])" ; (1) preceeding non-digit or bol "(?:^|[^0-9\\(])" ; (1) preceding non-digit or bol
"(" ; (2) area code "(" ; (2) area code
"\\(([0-9][0-9][0-9])\\)" ; (3) is either 3 digits in parens "\\(([0-9][0-9][0-9])\\)" ; (3) is either 3 digits in parens
"|" ; or "|" ; or

View File

@ -235,15 +235,30 @@
(for/list ([x (in-generator (helper 0) (helper 1) (helper 2))]) (for/list ([x (in-generator (helper 0) (helper 1) (helper 2))])
x))) x)))
(let ([g (lambda () (generator (yield 1) (yield 2) (yield 3)))])
(let ([g (g)]) (test '(1 2 3) list (g) (g) (g)))
(let ([g (g)]) (test '(1 2 3 10 10) list (g) (g) (g) (g 10) (g)))
(let ([g (generator (yield (yield (yield 1))))])
(test '(1 2 3 4 4 4) list (g) (g 2) (g 3) (g 4) (g) (g)))
(let ([g (g)])
(test '(fresh 1 suspended 2 suspended 3 suspended last done)
list (generator-state g) (g)
(generator-state g) (g)
(generator-state g) (g)
(generator-state g) (g 'last)
(generator-state g)))
(letrec ([g (generator (yield (generator-state g))
(yield (generator-state g)))])
(test '(fresh running suspended running suspended last done)
list (generator-state g) (g)
(generator-state g) (g)
(generator-state g) (g 'last)
(generator-state g))))
(let* ([helper (lambda (pred num) (let* ([helper (lambda (pred num)
(for ([i (in-range 0 3)]) (for ([i (in-range 0 3)]) (yield (pred (+ i num)))))]
(yield (pred (+ i num)))))] [g1 (generator (helper odd? 1) (yield 'odd))]
[g1 (generator [g2 (generator (helper even? 1) (yield 'even))])
(helper odd? 1)
(yield 'odd))]
[g2 (generator
(helper even? 1)
(yield 'even))])
(test '(#t #f #f #t #t #f odd even) 'yield-helper (test '(#t #f #f #t #t #f odd even) 'yield-helper
(list (g1) (g2) (g1) (g2) (g1) (g2) (g1) (g2)))) (list (g1) (g2) (g1) (g2) (g1) (g2) (g1) (g2))))

View File

@ -14,6 +14,13 @@
#:with ty (syntax-property #'name 'type-label) #:with ty (syntax-property #'name 'type-label)
#:with ann-name #'name)) #:with ann-name #'name))
(define-splicing-syntax-class (param-annotated-name trans)
#:attributes (name ty ann-name)
#:description "type-annotated identifier"
#:literals (:)
(pattern [~seq name:id : ty]
#:with ann-name (syntax-property #'name 'type-label (trans #'ty))))
(define-syntax-class annotated-binding (define-syntax-class annotated-binding
#:attributes (name ty ann-name binding rhs) #:attributes (name ty ann-name binding rhs)
(pattern (~and whole [:annotated-name rhs:expr]) (pattern (~and whole [:annotated-name rhs:expr])

View File

@ -209,6 +209,8 @@
[char-downcase (-> -Char -Char)] [char-downcase (-> -Char -Char)]
[char-titlecase (-> -Char -Char)] [char-titlecase (-> -Char -Char)]
[char-foldcase (-> -Char -Char)] [char-foldcase (-> -Char -Char)]
[char->integer (-> -Char -Nat)]
[integer->char (-> -Nat -Char)]
[string-normalize-nfd (-> -String -String)] [string-normalize-nfd (-> -String -String)]
[string-normalize-nfkd (-> -String -String)] [string-normalize-nfkd (-> -String -String)]
@ -365,11 +367,20 @@
[(-Path) (-lst -Path)])] [(-Path) (-lst -Path)])]
[hash? (make-pred-ty (make-HashtableTop))] [hash? (make-pred-ty (make-HashtableTop))]
[hash-eq? (-> (make-HashtableTop) B)]
[hash-eqv? (-> (make-HashtableTop) B)]
[hash-weak? (-> (make-HashtableTop) B)]
[make-hash (-poly (a b) (-> (-HT a b)))] [make-hash (-poly (a b) (-> (-HT a b)))]
[make-hasheq (-poly (a b) (-> (-HT a b)))] [make-hasheq (-poly (a b) (-> (-HT a b)))]
[make-hasheqv (-poly (a b) (-> (-HT a b)))]
[make-weak-hash (-poly (a b) (-> (-HT a b)))] [make-weak-hash (-poly (a b) (-> (-HT a b)))]
[make-weak-hasheq (-poly (a b) (-> (-HT a b)))] [make-weak-hasheq (-poly (a b) (-> (-HT a b)))]
[make-weak-hasheqv (-poly (a b) (-> (-HT a b)))]
[make-immutable-hash (-poly (a b) (-> (-lst (-pair a b)) (-HT a b)))]
[make-immutable-hasheq (-poly (a b) (-> (-lst (-pair a b)) (-HT a b)))]
[make-immutable-hasheqv (-poly (a b) (-> (-lst (-pair a b)) (-HT a b)))]
[hash-set (-poly (a b) ((-HT a b) a b . -> . (-HT a b)))]
[hash-set! (-poly (a b) ((-HT a b) a b . -> . -Void))] [hash-set! (-poly (a b) ((-HT a b) a b . -> . -Void))]
[hash-map (-poly (a b c) ((-HT a b) (a b . -> . c) . -> . (-lst c)))] [hash-map (-poly (a b c) ((-HT a b) (a b . -> . c) . -> . (-lst c)))]
[hash-ref (-poly (a b c) [hash-ref (-poly (a b c)
@ -379,6 +390,25 @@
[hash-ref! (-poly (a b) [hash-ref! (-poly (a b)
(cl-> [((-HT a b) a (-> b)) b] (cl-> [((-HT a b) a (-> b)) b]
[((-HT a b) a b) b]))] [((-HT a b) a b) b]))]
[hash-has-key? (-poly (a b) (-> (-HT a b) a B))]
[hash-update! (-poly (a b)
(cl-> [((-HT a b) a (-> b b)) -Void]
[((-HT a b) a (-> b b) (-> a)) -Void]
[((-HT a b) a (-> b b) a) -Void]))]
[hash-update (-poly (a b)
(cl-> [((-HT a b) a (-> b b)) (-HT a b)]
[((-HT a b) a (-> b b) (-> a)) (-HT a b)]
[((-HT a b) a (-> b b) a) (-HT a b)]))]
[hash-remove (-poly (a b) ((-HT a b) a . -> . (-HT a b)))]
[hash-remove! (-poly (a b) ((-HT a b) a . -> . -Void))]
[hash-map (-poly (a b c) ((-HT a b) (a b . -> . c) . -> . (-lst c)))]
[hash-for-each (-poly (a b c) (-> (-HT a b) (-> a b c) -Void))]
[hash-count (-poly (a b) (-> (-HT a b) -Nat))]
[hash-copy (-poly (a b) (-> (-HT a b) (-HT a b)))]
[eq-hash-code (-poly (a) (-> a -Integer))]
[eqv-hash-code (-poly (a) (-> a -Integer))]
[equal-hash-code (-poly (a) (-> a -Integer))]
[equal-secondary-hash-code (-poly (a) (-> a -Integer))]
[hash-iterate-first (-poly (a b) [hash-iterate-first (-poly (a b)
((-HT a b) . -> . (Un (-val #f) -Integer)))] ((-HT a b) . -> . (Un (-val #f) -Integer)))]
[hash-iterate-next (-poly (a b) [hash-iterate-next (-poly (a b)
@ -428,9 +458,6 @@
[make-directory (-> -Path -Void)] [make-directory (-> -Path -Void)]
[hash-for-each (-poly (a b c)
(-> (-HT a b) (-> a b c) -Void))]
[delete-file (-> -Pathlike -Void)] [delete-file (-> -Pathlike -Void)]
[make-namespace (->opt [(Un (-val 'empty) (-val 'initial))] -Namespace)] [make-namespace (->opt [(Un (-val 'empty) (-val 'initial))] -Namespace)]
[make-base-namespace (-> -Namespace)] [make-base-namespace (-> -Namespace)]

View File

@ -340,6 +340,6 @@ This file defines two sorts of primitives. All of them are provided into any mod
(let () (let ()
(define ((mk l/c) stx) (define ((mk l/c) stx)
(syntax-parse stx (syntax-parse stx
[(_ k:annotated-name . body) [(_ (~var k (param-annotated-name (lambda (s) #`(#,s -> (U))))) . body)
(quasisyntax/loc stx (#,l/c k.name . body))])) (quasisyntax/loc stx (#,l/c k.ann-name . body))]))
(values (mk #'let/cc) (mk #'let/ec)))) (values (mk #'let/cc) (mk #'let/ec))))

View File

@ -132,7 +132,7 @@ result of @scheme[_loop] (and thus the result of the entire
@deftogether[[ @deftogether[[
@defform[(let/cc: v : t . body)] @defform[(let/cc: v : t . body)]
@defform[(let/ec: v : t . body)]]]{Type-annotated versions of @defform[(let/ec: v : t . body)]]]{Type-annotated versions of
@scheme[let/cc] and @scheme[let/ec].} @scheme[let/cc] and @scheme[let/ec]. @scheme[t] is the type that will be provided to the continuation @scheme[v].}
@subsection{Anonymous Functions} @subsection{Anonymous Functions}

View File

@ -125,7 +125,7 @@
;; substitute many variables ;; substitute many variables
;; substitution = Listof[U List[Name,Type] List[Name,Listof[Type]]] ;; substitution = Listof[U List[Name,Type] List[Name,Listof[Type]]]
;; subst-all : substition Type -> Type ;; subst-all : substitution Type -> Type
(define (subst-all s t) (define (subst-all s t)
(for/fold ([t t]) ([e s]) (for/fold ([t t]) ([e s])
(match e (match e

View File

@ -1188,7 +1188,7 @@ General
- The teaching libraries are now called teachpacks. See the teachpack - The teaching libraries are now called teachpacks. See the teachpack
release notes for more information. release notes for more information.
- DrScheme's languages have changed (again). The langauges are now: - DrScheme's languages have changed (again). The languages are now:
- Beginning Student - Beginning Student
- Intermediate Student - Intermediate Student

View File

@ -1360,7 +1360,7 @@ System:
is just the right height to display one line of text. is just the right height to display one line of text.
inherits from mred:wrapping-canvas% inherits from mred:wrapping-canvas%
mred:frame-title-canvas% mred:frame-title-canvas%
updates the title of the frame when it recieves focus updates the title of the frame when it receives focus
events. inherits from mred:wrapping-canvas% events. inherits from mred:wrapping-canvas%
- all of the "connection maintenence" ie edits that know which canvses - all of the "connection maintenence" ie edits that know which canvses
they are in, frames that know which canvas is the most recently they are in, frames that know which canvas is the most recently

View File

@ -178,7 +178,7 @@ v4.1 (this is the first version that was included in the PLT
- handling of non-terminals uses that have underscores in - handling of non-terminals uses that have underscores in
them now works properly (only showed up when using them them now works properly (only showed up when using them
in the definition of a langauge) in the definition of a language)
- an extended language can now define multiple non-terminals - an extended language can now define multiple non-terminals
together together

View File

@ -299,7 +299,7 @@ size_t CORD_rchr(CORD x, size_t i, int c);
/* the correct buffer size. */ /* the correct buffer size. */
/* 4. Most of the conversions are implement through the native */ /* 4. Most of the conversions are implement through the native */
/* vsprintf. Hence they are usually no faster, and */ /* vsprintf. Hence they are usually no faster, and */
/* idiosyncracies of the native printf are preserved. However, */ /* idiosyncrasies of the native printf are preserved. However, */
/* CORD arguments to CORD_sprintf and CORD_vsprintf are NOT copied; */ /* CORD arguments to CORD_sprintf and CORD_vsprintf are NOT copied; */
/* the result shares the original structure. This may make them */ /* the result shares the original structure. This may make them */
/* very efficient in some unusual applications. */ /* very efficient in some unusual applications. */

View File

@ -1866,6 +1866,7 @@ static void Master_collect() {
} }
else { else {
printf("%i SIGNALED BUT NOT COLLECTED\n", i); printf("%i SIGNALED BUT NOT COLLECTED\n", i);
children_ready = 0;
} }
} }
if (children_ready) { if (children_ready) {

View File

@ -2,7 +2,7 @@ SenoraGC is a relatively portable conservative GC for a slightly
cooperative environment. cooperative environment.
The collector is intended mainly for debugging and memory tracing, but The collector is intended mainly for debugging and memory tracing, but
it can also act as a reasonbaly effecient, general-purpose, it can also act as a reasonbaly efficient, general-purpose,
conservative collector. The standard MzScheme build uses SGC for conservative collector. The standard MzScheme build uses SGC for
certain platforms where Boehm's GC hasn't been ported, yet (notably, certain platforms where Boehm's GC hasn't been ported, yet (notably,
OSKit and BeOS). OSKit and BeOS).

View File

@ -3335,7 +3335,7 @@ static void register_transitive_use(Optimize_Info *info, int pos, int j)
void scheme_env_make_closure_map(Optimize_Info *info, mzshort *_size, mzshort **_map) void scheme_env_make_closure_map(Optimize_Info *info, mzshort *_size, mzshort **_map)
{ {
/* A closure map lists the captured variables for a closure; the /* A closure map lists the captured variables for a closure; the
indices are resolved two new indicies in the second phase of indices are resolved two new indices in the second phase of
compilation. */ compilation. */
Optimize_Info *frame; Optimize_Info *frame;
int i, j, pos = 0, lpos = 0, tu; int i, j, pos = 0, lpos = 0, tu;

View File

@ -2643,7 +2643,7 @@ static Scheme_Object *do_build_path(int argc, Scheme_Object **argv, int idelta,
/* Originally, it made sense to just perform build operations /* Originally, it made sense to just perform build operations
directly on string representations, because it was simple enough. directly on string representations, because it was simple enough.
Over the years, though, as we refined the path syntax for Windows Over the years, though, as we refined the path syntax for Windows
to deal with all of its idiosyncracies, this has gotten completely to deal with all of its idiosyncrasies, this has gotten completely
out of hand. */ out of hand. */
{ {
#define PN_BUF_LEN 256 #define PN_BUF_LEN 256

View File

@ -548,9 +548,11 @@ scheme_init_fun (Scheme_Env *env)
REGISTER_SO(is_method_symbol); REGISTER_SO(is_method_symbol);
REGISTER_SO(scheme_inferred_name_symbol); REGISTER_SO(scheme_inferred_name_symbol);
REGISTER_SO(cont_key); REGISTER_SO(cont_key);
REGISTER_SO(barrier_prompt_key);
is_method_symbol = scheme_intern_symbol("method-arity-error"); is_method_symbol = scheme_intern_symbol("method-arity-error");
scheme_inferred_name_symbol = scheme_intern_symbol("inferred-name"); scheme_inferred_name_symbol = scheme_intern_symbol("inferred-name");
cont_key = scheme_make_symbol("k"); /* uninterned */ cont_key = scheme_make_symbol("k"); /* uninterned */
barrier_prompt_key = scheme_make_symbol("bar"); /* uninterned */
REGISTER_SO(scheme_default_prompt_tag); REGISTER_SO(scheme_default_prompt_tag);
{ {
@ -2150,11 +2152,6 @@ void *scheme_top_level_do_worker(void *(*k)(void), int eb, int new_thread, Schem
if (!new_thread) { if (!new_thread) {
prompt->is_barrier = 1; prompt->is_barrier = 1;
} }
if (!barrier_prompt_key) {
REGISTER_SO(barrier_prompt_key);
barrier_prompt_key = scheme_make_symbol("bar"); /* uninterned */
}
} }
#ifdef MZ_PRECISE_GC #ifdef MZ_PRECISE_GC
@ -5061,9 +5058,9 @@ call_cc (int argc, Scheme_Object *argv[])
static Scheme_Cont *grab_continuation(Scheme_Thread *p, int for_prompt, int composable, static Scheme_Cont *grab_continuation(Scheme_Thread *p, int for_prompt, int composable,
Scheme_Object *prompt_tag, Scheme_Object *prompt_tag,
Scheme_Cont *sub_cont, Scheme_Prompt *prompt, Scheme_Cont *sub_cont, Scheme_Prompt *prompt,
Scheme_Meta_Continuation *prompt_cont, MZ_MARK_POS_TYPE prompt_pos, Scheme_Meta_Continuation *prompt_cont,
Scheme_Prompt *barrier_prompt, Scheme_Prompt *effective_barrier_prompt, Scheme_Prompt *effective_barrier_prompt
Scheme_Meta_Continuation *barrier_cont, MZ_MARK_POS_TYPE barrier_pos) )
{ {
Scheme_Cont *cont; Scheme_Cont *cont;
@ -5700,8 +5697,7 @@ internal_call_cc (int argc, Scheme_Object *argv[])
} }
cont = grab_continuation(p, 0, composable, prompt_tag, sub_cont, cont = grab_continuation(p, 0, composable, prompt_tag, sub_cont,
prompt, prompt_cont, prompt_pos, prompt, prompt_cont, effective_barrier_prompt);
barrier_prompt, effective_barrier_prompt, barrier_cont, barrier_pos);
scheme_zero_unneeded_rands(p); scheme_zero_unneeded_rands(p);
@ -6107,7 +6103,7 @@ static Scheme_Object *compose_continuation(Scheme_Cont *cont, int exec_chain,
/* Grab a continuation so that we capture the current Scheme stack, /* Grab a continuation so that we capture the current Scheme stack,
etc.: */ etc.: */
saved = grab_continuation(p, 1, 0, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 0); saved = grab_continuation(p, 1, 0, NULL, NULL, NULL, NULL, NULL);
if (p->meta_prompt) if (p->meta_prompt)
saved->prompt_stack_start = p->meta_prompt->stack_boundary; saved->prompt_stack_start = p->meta_prompt->stack_boundary;

View File

@ -2832,7 +2832,7 @@ typedef struct Scheme_Module_Phase_Exports
Scheme_Object *kernel_exclusion; /* we allow up to two exns, but they must be shadowed */ Scheme_Object *kernel_exclusion; /* we allow up to two exns, but they must be shadowed */
Scheme_Object *kernel_exclusion2; Scheme_Object *kernel_exclusion2;
Scheme_Hash_Table *ht; /* maps external names to array indicies; created lazily */ Scheme_Hash_Table *ht; /* maps external names to array indices; created lazily */
} Scheme_Module_Phase_Exports; } Scheme_Module_Phase_Exports;
typedef struct Scheme_Module_Exports typedef struct Scheme_Module_Exports

View File

@ -606,7 +606,7 @@ wxCursor::wxCursor(wxBitmap *mask, wxBitmap *bm, int hotSpotX, int hotSpotY)
} }
} }
c = new WXGC_PTRS wxColour(); /* to recieve bit values */ c = new WXGC_PTRS wxColour(); /* to receive bit values */
cMacCustomCursor = new WXGC_ATOMIC Cursor; cMacCustomCursor = new WXGC_ATOMIC Cursor;

View File

@ -401,7 +401,7 @@ typedef struct { byte *pic; /* image data */
#endif #endif
#endif #endif
/* indicies into conv24MB */ /* indices into conv24MB */
#define CONV24_8BIT 0 #define CONV24_8BIT 0
#define CONV24_24BIT 1 #define CONV24_24BIT 1
#define CONV24_SEP1 2 #define CONV24_SEP1 2

View File

@ -1377,7 +1377,7 @@ wxCursor::wxCursor(wxBitmap *bm, wxBitmap *mask, int hotSpotX, int hotSpotY)
mask_dc = temp_mask_mdc; mask_dc = temp_mask_mdc;
} }
c = new wxColour(); /* to recieve bit values */ c = new wxColour(); /* to receive bit values */
/* Windows wants cursor data in terms of an "and" bit array and /* Windows wants cursor data in terms of an "and" bit array and
"xor" bit array. */ "xor" bit array. */

View File

@ -222,7 +222,7 @@ to define them here. They will end up in the private(!) header file.
@ A private variable is used to track the keyboard focus, but only @ A private variable is used to track the keyboard focus, but only
while traversal is on. If |traversal_focus| is |True|, it means that while traversal is on. If |traversal_focus| is |True|, it means that
the widget has keyboard focus and that that focus is a result of the widget has keyboard focus and that focus is a result of
keyboard traversal. It also means that the widget's border is keyboard traversal. It also means that the widget's border is
highlighted, although that is only visible if the |highlightThickness| highlighted, although that is only visible if the |highlightThickness|
is positive. is positive.

View File

@ -886,7 +886,7 @@ int wxImage::QuickCheck(byte *pic24, int w, int h, int maxcol)
finds more than 'maxcol' colors, it returns '0'. If it DOESN'T, it does finds more than 'maxcol' colors, it returns '0'. If it DOESN'T, it does
the 24-to-8 conversion by simply sticking the colors it found into the 24-to-8 conversion by simply sticking the colors it found into
a colormap, and changing instances of a color in pic24 into colormap a colormap, and changing instances of a color in pic24 into colormap
indicies (in pic) */ indices (in pic) */
unsigned long colors[256],col; unsigned long colors[256],col;
int i, nc, low, high, mid; int i, nc, low, high, mid;

View File

@ -382,7 +382,7 @@ typedef struct { byte *pic; /* image data */
#endif #endif
#endif #endif
/* indicies into conv24MB */ /* indices into conv24MB */
#define CONV24_8BIT 0 #define CONV24_8BIT 0
#define CONV24_24BIT 1 #define CONV24_24BIT 1
#define CONV24_SEP1 2 #define CONV24_SEP1 2