+
(provide/contract
[substring1 (case->
(string? . -> . string?)
@@ -510,17 +260,220 @@ In the case of @scheme[substring1], we also know that the indices
(>=/c a)
(
- Here we used @scheme[->r] to name the parameters and express the
+
+ Here we used @racket[->r] to name the parameters and express the
numeric constraints on them.
}
+@ctc-section[#:tag "arrow-d"]{Argument and Result Dependencies}
+
+The following is an excerpt from an imaginary numerics module:
+
+@racketblock[
+(provide/contract
+ [real-sqrt (->d ([argument (>=/c 1)])
+ ()
+ [result (<=/c argument)])])
+]
+
+The contract for the exported function @racket[real-sqrt] uses the
+@racket[->d] rather than @racket[->*] function contract. The ``d''
+stands for a @italic{dependent} contract, meaning the contract for the
+function range depends on the value of the argument. In this
+particular case, the argument of @racket[real-sqrt] is greater or
+equal to 1, so a very basic correctness check is that the result is
+smaller than the argument.
+
+In general, a dependent function contract looks just like
+the more general @racket[->*] contract, but with names added
+that can be used elsewhere in the contract.
+
+@;{
+Yes, there are many other contract combinators such as @racket[<=/c]
+and @racket[>=/c], and it pays off to look them up in the contract
+section of the reference manual. They simplify contracts tremendously
+and make them more accessible to potential clients.
+}
+
+Going back to the back-account example, suppose that we generalize the
+module to support multiple accounts and that we also include a
+withdrawal operation. The improved bank-account module includes a
+@racket[account] structure type and the following functions:
+
+@racketblock[
+(provide/contract
+ [balance (-> account? amount/c)]
+ [withdraw (-> account? amount/c account?)]
+ [deposit (-> account? amount/c account?)])
+]
+
+Besides requiring that a client provide a valid amount for a
+withdrawal, however, the amount should be less than the specified
+account's balance, and the resulting account will have less money than
+it started with. Similarly, the module might promise that a deposit
+produces an account with money added to the account. The following
+implementation enforces those constraints and guarantees through
+contracts:
+
+@racketmod[
+racket
+
+(code:comment "section 1: the contract definitions")
+(struct account (balance))
+(define amount/c natural-number/c)
+
+(code:comment "section 2: the exports")
+(provide/contract
+ [create (amount/c . -> . account?)]
+ [balance (account? . -> . amount/c)]
+ [withdraw (->d ([acc account?]
+ [amt (and/c amount/c (<=/c (balance acc)))])
+ ()
+ [result (and/c account?
+ (lambda (res)
+ (>= (balance res)
+ (- (balance acc) amt))))])]
+ [deposit (->d ([acc account?]
+ [amt amount/c])
+ ()
+ [result (and/c account?
+ (lambda (res)
+ (>= (balance res)
+ (+ (balance acc) amt))))])])
+
+(code:comment "section 3: the function definitions")
+(define balance account-balance)
+
+(define (create amt) (account amt))
+
+(define (withdraw a amt)
+ (account (- (account-balance a) amt)))
+
+(define (deposit a amt)
+ (account (+ (account-balance a) amt)))
+]
+
+The contracts in section 2 provide typical type-like guarantees for
+@racket[create] and @racket[balance]. For @racket[withdraw] and
+@racket[deposit], however, the contracts check and guarantee the more
+complicated constraints on @racket[balance] and @racket[deposit]. The
+contract on the second argument to @racket[withdraw] uses
+@racket[(balance acc)] to check whether the supplied withdrawal amount
+is small enough, where @racket[acc] is the name given within
+@racket[->d] to the function's first argument. The contract on the
+result of @racket[withdraw] uses both @racket[acc] and @racket[amt] to
+guarantee that no more than that requested amount was withdrawn. The
+contract on @racket[deposit] similarly uses @racket[acc] and
+@racket[amount] in the result contract to guarantee that at least as
+much money as provided was deposited into the account.
+
+As written above, when a contract check fails, the error message is
+not great. The following revision uses @racket[flat-named-contract]
+within a helper function @racket[mk-account-contract] to provide
+better error messages.
+
+@racketmod[
+racket
+
+(code:comment "section 1: the contract definitions")
+(struct account (balance))
+(define amount/c natural-number/c)
+
+(define msg> "account a with balance larger than ~a expected")
+(define msg< "account a with balance less than ~a expected")
+
+(define (mk-account-contract acc amt op msg)
+ (define balance0 (balance acc))
+ (define (ctr a)
+ (and (account? a) (op balance0 (balance a))))
+ (flat-named-contract (format msg balance0) ctr))
+
+(code:comment "section 2: the exports")
+(provide/contract
+ [create (amount/c . -> . account?)]
+ [balance (account? . -> . amount/c)]
+ [withdraw (->d ([acc account?]
+ [amt (and/c amount/c (<=/c (balance acc)))])
+ ()
+ [result (mk-account-contract acc amt >= msg>)])]
+ [deposit (->d ([acc account?]
+ [amt amount/c])
+ ()
+ [result (mk-account-contract acc amt <= msg<)])])
+
+(code:comment "section 3: the function definitions")
+(define balance account-balance)
+
+(define (create amt) (account amt))
+
+(define (withdraw a amt)
+ (account (- (account-balance a) amt)))
+
+(define (deposit a amt)
+ (account (+ (account-balance a) amt)))
+]
+
+@ctc-section[#:tag "arrow-d-eval-order"]{Checking State Changes}
+
+The @racket[->d] contract combinator can also ensure that a
+function only modifies state according to certain
+constraints. For example, consider this contract
+(it is a slightly simplified from the function
+@racket[preferences:add-panel] in the framework):
+@racketblock[
+(->d ([parent (is-a?/c area-container-window<%>)])
+ ()
+ [_
+ (let ([old-children (send parent get-children)])
+ (λ (child)
+ (andmap eq?
+ (append old-children (list child))
+ (send parent get-children))))])
+]
+It says that the function accepts a single argument, named
+@racket[parent], and that @racket[parent] must be
+an object matching the interface @racket[area-container-window<%>].
+
+The range contract ensures that the function only modifies
+the children of @racket[parent] by adding a new child to the
+front of the list. It accomplishes this by using the
+@racket[_] instead of a normal identifier, which tells the
+contract library that the range contract does not depend on
+the values of any of the results, and thus the contract
+library evaluates the expression following the @racket[_]
+when the function is called, instead of when it
+returns. Therefore the call to the @racket[get-children] method
+happens before the function under the contract is called.
+When the function under contract returns, its result is
+passed in as @racket[child], and the contract ensures that
+the children after the function return are the same as the
+children before the function called, but with one more
+child, at the front of the list.
+
+To see the difference in a toy example that focuses
+on this point, consider this program
+@racketmod[
+racket
+(define x '())
+(define (get-x) x)
+(define (f) (set! x (cons 'f x)))
+(provide/contract
+ [f (->d () () [_ (begin (set! x (cons 'ctc x)) any/c)])]
+ [get-x (-> (listof symbol?))])
+]
+If you were to require this module, call @racket[f], then
+the result of @racket[get-x] would be @racket['(f ctc)]. In
+contrast, if the contract for @racket[f] were
+@racketblock[(->d () () [res (begin (set! x (cons 'ctc x)) any/c)])]
+(only changing the underscore to @racket[res]), then
+the result of @racket[get-x] would be @racket['(ctc f)].
+
@ctc-section[#:tag "multiple"]{Multiple Result Values}
-The function @scheme[split] consumes a list of @scheme[char]s
+The function @racket[split] consumes a list of @racket[char]s
and delivers the string that occurs before the first occurrence of
- @scheme[#\newline] (if any) and the rest of the list:
-@schemeblock[
+ @racket[#\newline] (if any) and the rest of the list:
+@racketblock[
(define (split l)
(define (split l w)
(cond
@@ -534,34 +487,34 @@ The function @scheme[split] consumes a list of @scheme[char]s
traversing a single list.
The contract for such a function can use the ordinary
-function arrow @scheme[->], since it
-treats @scheme[values] specially, when it appears as the
+function arrow @racket[->], since @racket[->]
+treats @racket[values] specially when it appears as the
last result:
-@schemeblock[
+@racketblock[
(provide/contract
[split (-> (listof char?)
(values string? (listof char?)))])
]
The contract for such a function can also be written
-using @scheme[->*], just like @scheme[plus]:
-@schemeblock[
+using @racket[->*]:
+@racketblock[
(provide/contract
[split (->* ((listof char?))
()
(values string? (listof char?)))])
]
- As before the contract for the argument is wrapped in an
+ As before, the contract for the argument with @racket[->*] is wrapped in an
extra pair of parentheses (and must always be wrapped like
that) and the empty pair of parentheses indicates that
- there are no optoinal arguments. The contracts for the
- results are inside @scheme[values]: a string and a list of
+ there are no optional arguments. The contracts for the
+ results are inside @racket[values]: a string and a list of
characters.
-Now suppose we also want to ensure that the first result of
- @scheme[split] is a prefix of the given word in list format. In that
- case, we need to use the @scheme[->d] contract combinator:
-@schemeblock[
+Now, suppose that we also want to ensure that the first result of
+ @racket[split] is a prefix of the given word in list format. In that
+ case, we need to use the @racket[->d] contract combinator:
+@racketblock[
(define (substring-of? s)
(flat-named-contract
(format "substring of ~s" s)
@@ -576,34 +529,34 @@ Now suppose we also want to ensure that the first result of
(values [s (substring-of (list->string fl))]
[c (listof char?)]))])
]
- Like @scheme[->*], the @scheme[->d] combinator uses a function over the
+ Like @racket[->*], the @racket[->d] combinator uses a function over the
argument to create the range contracts. Yes, it doesn't just return one
contract but as many as the function produces values: one contract per
value. In this case, the second contract is the same as before, ensuring
- that the second result is a list of @scheme[char]s. In contrast, the
+ that the second result is a list of @racket[char]s. In contrast, the
first contract strengthens the old one so that the result is a prefix of
the given word.
-This contract is expensive to check of course. Here is a slightly
+This contract is expensive to check, of course. Here is a slightly
cheaper version:
-@schemeblock[
+@racketblock[
(provide/contract
[split (->d ([fl (listof char?)])
()
(values [s (string-len/c (length fl))]
[c (listof char?)]))])
]
- Click on @scheme[string-len/c] to see what it does.
-@ctc-section[#:tag "no-domain"]{Procedures of Some Fixed, but Statically Unknown Arity}
+
+@ctc-section[#:tag "no-domain"]{Fixed but Statically Unknown Arities}
Imagine yourself writing a contract for a function that accepts some other
function and a list of numbers that eventually applies the former to the
latter. Unless the arity of the given function matches the length of the
given list, your procedure is in trouble.
-Consider this @scheme[n-step] function:
-@schemeblock[
+Consider this @racket[n-step] function:
+@racketblock[
(code:comment "(number ... -> (union #f number?)) (listof number) -> void")
(define (n-step proc inits)
(let ([inc (apply proc inits)])
@@ -611,15 +564,15 @@ Consider this @scheme[n-step] function:
(n-step proc (map (λ (x) (+ x inc)) inits)))))
]
-The argument of @scheme[n-step] is @scheme[proc], a function
-@scheme[proc] whose results are either numbers or false, and a list. It
-then applies @scheme[proc] to the list @scheme[inits]. As long as
-@scheme[proc] returns a number, @scheme[n-step] treats that number
-as an increment for each of the numbers in @scheme[inits] and
-recurs. When @scheme[proc] returns @scheme[false], the loop stops.
+The argument of @racket[n-step] is @racket[proc], a function
+@racket[proc] whose results are either numbers or false, and a list. It
+then applies @racket[proc] to the list @racket[inits]. As long as
+@racket[proc] returns a number, @racket[n-step] treats that number
+as an increment for each of the numbers in @racket[inits] and
+recurs. When @racket[proc] returns @racket[false], the loop stops.
Here are two uses:
-@schemeblock[
+@racketblock[
(code:comment "nat -> nat")
(define (f x)
(printf "~s\n" x)
@@ -635,28 +588,28 @@ Here are two uses:
(n-step g '(1 1))
]
-A contract for @scheme[n-step] must specify two aspects of
-@scheme[proc]'s behavior: its arity must include the number of elements
-in @scheme[inits], and it must return either a number or
-@scheme[#f]. The latter is easy, the former is difficult. At first
+A contract for @racket[n-step] must specify two aspects of
+@racket[proc]'s behavior: its arity must include the number of elements
+in @racket[inits], and it must return either a number or
+@racket[#f]. The latter is easy, the former is difficult. At first
glance, this appears to suggest a contract that assigns a
-@italic{variable-arity} to @scheme[proc]:
-@schemeblock[
+@italic{variable-arity} to @racket[proc]:
+@racketblock[
(->* ()
(listof any/c)
(or/c number? false/c))
]
This contract, however, says that the function must accept @emph{any}
number of arguments, not a @emph{specific} but
-@emph{undetermined} number. Thus, applying @scheme[n-step] to
-@scheme[(lambda (x) x)] and @scheme[(list 1)] breaks the contract
+@emph{undetermined} number. Thus, applying @racket[n-step] to
+@racket[(lambda (x) x)] and @racket[(list 1)] breaks the contract
because the given function accepts only one argument.
- The correct contract uses the @scheme[unconstrained-domain->]
+ The correct contract uses the @racket[unconstrained-domain->]
combinator, which specifies only the range of a function, not its
domain. It is then possible to combine this contract with an arity test to
- specify the correct @scheme[n-step]'s contract:
-@schemeblock[
+ specify the correct @racket[n-step]'s contract:
+@racketblock[
(provide/contract
[n-step
(->d ([proc
diff --git a/collects/scribblings/guide/contracts-gotchas.scrbl b/collects/scribblings/guide/contracts-gotchas.scrbl
index de84d5ad48..8fa34345c8 100644
--- a/collects/scribblings/guide/contracts-gotchas.scrbl
+++ b/collects/scribblings/guide/contracts-gotchas.scrbl
@@ -1,33 +1,33 @@
#lang scribble/doc
@(require scribble/manual
scribble/eval
- scheme/sandbox
+ racket/sandbox
"guide-utils.ss"
"contracts-utils.ss"
- (for-label scheme/contract))
+ (for-label racket/contract))
@title[#:tag "contracts-gotchas"]{Gotchas}
-@ctc-section{Contracts and @scheme[eq?]}
+@ctc-section{Contracts and @racket[eq?]}
As a general rule, adding a contract to a program should
either leave the behavior of the program unchanged, or
should signal a contract violation. And this is almost true
-for PLT Scheme contracts, with one exception: @scheme[eq?].
+for Racket contracts, with one exception: @racket[eq?].
-The @scheme[eq?] procedure is designed to be fast and does
+The @racket[eq?] procedure is designed to be fast and does
not provide much in the way of guarantees, except that if it
returns true, it means that the two values behave
identically in all respects. Internally, this is implemented
as pointer equality at a low-level so it exposes information
-about how PLT Scheme is implemented (and how contracts are
+about how Racket is implemented (and how contracts are
implemented).
-Contracts interact poorly with @scheme[eq?] because function
+Contracts interact poorly with @racket[eq?] because function
contract checking is implemented internally as wrapper
functions. For example, consider this module:
-@schememod[
-scheme
+@racketmod[
+racket
(define (make-adder x)
(if (= 1 x)
@@ -36,51 +36,51 @@ scheme
(provide/contract [make-adder (-> number? (-> number? number?))])
]
-It exports the @scheme[make-adder] function that is the usual curried
-addition function, except that it returns Scheme's @scheme[add1] when
-its input is @scheme[1].
+It exports the @racket[make-adder] function that is the usual curried
+addition function, except that it returns Racket's @racket[add1] when
+its input is @racket[1].
You might expect that
-@schemeblock[
+@racketblock[
(eq? (make-adder 1)
(make-adder 1))
]
-would return @scheme[#t], but it does not. If the contract were
-changed to @scheme[any/c] (or even @scheme[(-> number? any/c)]), then
-the @scheme[eq?] call would return @scheme[#t].
+would return @racket[#t], but it does not. If the contract were
+changed to @racket[any/c] (or even @racket[(-> number? any/c)]), then
+the @racket[eq?] call would return @racket[#t].
-Moral: do not use @scheme[eq?] on values that have contracts.
+Moral: Do not use @racket[eq?] on values that have contracts.
@ctc-section[#:tag "exists-gotcha"]{Exists Contracts and Predicates}
-Much like the @scheme[eq?] example above, @scheme[#:∃] contracts
+Much like the @racket[eq?] example above, @racket[#:∃] contracts
can change the behavior of a program.
Specifically,
-the @scheme[null?] predicate (and many other predicates) return @scheme[#f]
-for @scheme[#:∃] contracts, and changing one of those contracts to @scheme[any/c]
-means that @scheme[null?] might now return @scheme[#t] instead, resulting in
+the @racket[null?] predicate (and many other predicates) return @racket[#f]
+for @racket[#:∃] contracts, and changing one of those contracts to @racket[any/c]
+means that @racket[null?] might now return @racket[#t] instead, resulting in
arbitrarily different behavior depending on this boolean might flow around
in the program.
-@defmodulelang[scheme/exists]
+@defmodulelang[racket/exists]
To work around the above problem, the
-@schememodname[scheme/exists] library behaves just like the @schememodname[scheme],
-but where predicates signal errors when given @scheme[#:∃] contracts.
+@racketmodname[racket/exists] library behaves just like the @racketmodname[racket],
+but where predicates signal errors when given @racket[#:∃] contracts.
-Moral: do not use predicates on @scheme[#:∃] contracts, but if you're not sure, use
-@schememodname[scheme/exists] to be safe.
+Moral: Do not use predicates on @racket[#:∃] contracts, but if you're not sure, use
+@racketmodname[racket/exists] to be safe.
@ctc-section{Defining Recursive Contracts}
When defining a self-referential contract, it is natural to use
-@scheme[define]. For example, one might try to write a contract on
+@racket[define]. For example, one might try to write a contract on
streams like this:
@(define e (make-base-eval))
-@(interaction-eval #:eval e (require scheme/contract))
+@(interaction-eval #:eval e (require racket/contract))
@interaction[
#:eval e
(define stream/c
@@ -92,12 +92,12 @@ streams like this:
@close-eval[e]
Unfortunately, this does not work because the value of
-@scheme[stream/c] is needed before it is defined. Put another way, all
+@racket[stream/c] is needed before it is defined. Put another way, all
of the combinators evaluate their arguments eagerly, even thought the
values that they accept do not.
Instead, use
-@schemeblock[
+@racketblock[
(define stream/c
(promise/c
(or/c
@@ -106,27 +106,27 @@ Instead, use
(recursive-contract stream/c)))))
]
-The use of @scheme[recursive-contract] delays the evaluation of the
-identifier @scheme[stream/c] until after the contract is first
-checked, long enough to ensure that @scheme[stream/c] is defined.
+The use of @racket[recursive-contract] delays the evaluation of the
+identifier @racket[stream/c] until after the contract is first
+checked, long enough to ensure that @racket[stream/c] is defined.
See also @ctc-link["lazy-contracts"].
-@ctc-section{Using @scheme[set!] to Assign to Variables Provided via @scheme[provide/contract]}
+@ctc-section{Mixing @racket[set!] and @racket[provide/contract]}
The contract library assumes that variables exported via
-@scheme[provide/contract] are not assigned to, but does not enforce
-it. Accordingly, if you try to @scheme[set!] those variables, you
+@racket[provide/contract] are not assigned to, but does not enforce
+it. Accordingly, if you try to @racket[set!] those variables, you
may be surprised. Consider the following example:
@interaction[
-(module server scheme
+(module server racket
(define (inc-x!) (set! x (+ x 1)))
(define x 0)
(provide/contract [inc-x! (-> void?)]
[x integer?]))
-(module client scheme
+(module client racket
(require 'server)
(define (print-latest) (printf "x is ~s\n" x))
@@ -138,15 +138,15 @@ may be surprised. Consider the following example:
(require 'client)
]
-Both calls to @scheme[print-latest] print @scheme[0], even though the
-value of @scheme[x] has been incremented (and the change is visible
-inside the module @scheme[x]).
+Both calls to @racket[print-latest] print @racket[0], even though the
+value of @racket[x] has been incremented (and the change is visible
+inside the module @racket[x]).
To work around this, export accessor functions, rather than
exporting the variable directly, like this:
-@schememod[
-scheme
+@racketmod[
+racket
(define (get-x) x)
(define (inc-x!) (set! x (+ x 1)))
@@ -155,5 +155,5 @@ scheme
[get-x (-> integer?)])
]
-Moral: This is a bug we hope to address in a future release.
+Moral: This is a bug that we will address in a future release.
diff --git a/collects/scribblings/guide/contracts-intro.scrbl b/collects/scribblings/guide/contracts-intro.scrbl
index 84bf05e6ac..ddeaf3b0eb 100644
--- a/collects/scribblings/guide/contracts-intro.scrbl
+++ b/collects/scribblings/guide/contracts-intro.scrbl
@@ -3,7 +3,7 @@
scribble/eval
"guide-utils.ss"
"contracts-utils.ss"
- (for-label scheme/contract))
+ (for-label racket/contract))
@title[#:tag "contract-boundaries"]{Contracts and Boundaries}
@@ -16,72 +16,73 @@ A contract thus establishes a boundary between the two parties. Whenever a
value crosses this boundary, the contract monitoring system performs contract
checks, making sure the partners abide by the established contract.
-In this spirit, PLT Scheme supports contracts only at module
+In this spirit, Racket encourages contracts mainly at module
boundaries. Specifically, programmers may attach contracts to
-@scheme[provide] clauses and thus impose constraints and promises on the use
+@racket[provide] clauses and thus impose constraints and promises on the use
of exported values. For example, the export specification
-@schememod[
-scheme
+@racketmod[
+racket
(provide/contract
[amount positive?])
(define amount ...)
]
-promises to all clients of the above module that amount will
+promises to all clients of the above module that the value of @racket[amount] will
always be a positive number. The contract system monitors
the module's obligation carefully. Every time a client
-refers to @scheme[amount], the monitor checks that the value
-of @scheme[amount] is indeed a positive number.
+refers to @racket[amount], the monitor checks that the value
+of @racket[amount] is indeed a positive number.
-The contracts library is built into the Scheme language, but
-if you wish to use @scheme[scheme/base], you can explicitly
+The contracts library is built into the Racket language, but
+if you wish to use @racket[racket/base], you can explicitly
require the contracts library like this:
-@schememod[
-scheme/base
-(require scheme/contract) (code:comment "now we can write contracts")
+@racketmod[
+racket/base
+(require racket/contract) (code:comment "now we can write contracts")
(provide/contract
[amount positive?])
(define amount ...)
]
-@ctc-section[#:tag "amount0"]{A First Contract Violation}
+@ctc-section[#:tag "amount0"]{Contract Violations}
-Suppose the creator of the module had written
-@schememod[
-scheme
+If we bind @scheme[amount] to a number that is not positive,
+
+@racketmod[
+racket
(provide/contract
- [amount positive?])
-
+ [amount positive?])
(define amount 0)]
-When this module is required, the monitoring
+then, when the module is required, the monitoring
system signals a violation of the contract and
blames the module for breaking its promises.
-@ctc-section[#:tag "qamount"]{A Subtle Contract Violation}
+@; @ctc-section[#:tag "qamount"]{A Subtle Contract Violation}
-Suppose we write this module
-@schememod[
-scheme
+An even bigger mistake would be to bind @racket[amount]
+to a non-number value:
+
+@racketmod[
+racket
(provide/contract
- [amount positive?])
-
+ [amount positive?])
(define amount 'amount)
]
-In that case, the monitoring system applies
-@scheme[positive?] to a symbol, but @scheme[positive?]
+In this case, the monitoring system will apply
+@racket[positive?] to a symbol, but @racket[positive?]
reports an error, because its domain is only numbers. To
-make the contract capture our intentions for all Scheme
+make the contract capture our intentions for all Racket
values, we can ensure that the value is both a number and is
-positive, combining the two contracts with @scheme[and/c]:
+positive, combining the two contracts with @racket[and/c]:
-@schemeblock[
+@racketblock[
(provide/contract
[amount (and/c number? positive?)])
]
@@ -95,13 +96,13 @@ provide/contract'd. This is currently buggy so this
discussion is elided. Here's the expansion of
the requiring module, just to give an idea:
-(module m mzscheme
+(module m racket
(require mzlib/contract)
(provide/contract [x x-ctc]))
-(module n mzscheme (require m) (define (f) ... x ...))
+(module n racket (require m) (define (f) ... x ...))
==>
-(module n mzscheme
+(module n racket
(require (rename m x x-real))
(define x (apply-contract x-real x-ctc ...))
(define (f) ... x ...))
@@ -122,9 +123,9 @@ Of course, this breaks assignment to the provided variable.
-
+
;; Language: Pretty Big
-(module a mzscheme
+(module a racket
(require mzlib/contract)
(provide/contract
@@ -139,7 +140,7 @@ Of course, this breaks assignment to the provided variable.
(define (do-it) (set! amount -4)))
-(module b mzscheme
+(module b racket
(require a)
(printf "~s~n" amount)
@@ -147,17 +148,17 @@ Of course, this breaks assignment to the provided variable.
(printf "~s~n" amount))
(require b)
-
+
|
the "server" module
this allows us to write contracts
-export @scheme[amount] with a contract
+export @racket[amount] with a contract
-export @scheme[do-it] without contract
+export @racket[do-it] without contract
@@ -168,65 +169,71 @@ set amount to 4,
the "client" module
requires functionality from a
-first reference to @scheme[amount] (okay)
-a call to @scheme[do-it],
-second reference to @scheme[amount] (fail)
+first reference to @racket[amount] (okay)
+a call to @racket[do-it],
+second reference to @racket[amount] (fail)
|
Note: The above example is mostly self-explanatory. Take a
-look at the lines in red, however. Even though the call to @scheme[do-it]
-sets @scheme[amount] to -4, this action is not a contract
+look at the lines in red, however. Even though the call to @racket[do-it]
+sets @racket[amount] to -4, this action is not a contract
violation. The contract violation takes place only when the client module
-(@scheme[b]) refers to @scheme[amount] again and the value flows across
+(@racket[b]) refers to @racket[amount] again and the value flows across
the module boundary for a second time.
}
+@;{
+
@ctc-section[#:tag "obligations"]{Imposing Obligations on a Module's Clients}
On occasion, a module may want to enter a contract with
another module only if the other module abides by certain
rules. In other words, the module isn't just promising some
services, it also demands the client to deliver
-something. This kind of thing happens when a module exports
-a function, an object, a class or other values that enable
+something. That situation may happen when a module exports
+a function, an object, a class, or some other construct that enables
values to flow in both directions.
-@ctc-section{Experimenting with Examples}
+}
+
+@ctc-section{Experimenting with Contracts and Modules}
All of the contracts and module in this chapter (excluding those just
following) are written using the standard @tt{#lang} syntax for
-describing modules. Thus, if you extract examples from this chapter in
-order to experiment with the behavior of the contract system, you
-would have to make multiple files.
+describing modules. Since modules serve as the boundary between
+parties in a contract, examples involve multiple modules.
-To rectify this, PLT Scheme provides a special language, called
-@schememodname[scheme/load]. The contents of such a module is other modules (and
-@scheme[require] statements), using the parenthesized syntax for a
-module. For example, to try the example earlier in this section, you
-would write:
-@schememod[
-scheme/load
+To experiment with multiple modules within a single module or within
+DrRacket's @tech{definitions area}, use the
+@racketmodname[racket/load] language. The contents of such a module
+can be other modules (and @racket[require] statements), using the
+longhand parenthesized syntax for a module (see
+@secref["module-syntax"]). For example, try the example earlier in
+this section as follows:
-(module m scheme
- (define amount 150)
- (provide/contract [amount (and/c number? positive?)]))
+@racketmod[
+racket/load
-(module n scheme
+(module m racket
+ (provide/contract [amount (and/c number? positive?)])
+ (define amount 150))
+
+(module n racket
(require 'm)
(+ amount 10))
(require 'n)]
Each of the modules and their contracts are wrapped in parentheses
-with the @scheme[module] keyword at the front. The first argument to
-@scheme[module] should be the name of the module, so it can be used in
-a subsequent @scheme[require] statement (note that in the
-@scheme[require], the name of the module must be prefixed with a
-quote). The second argument to @scheme[module] is the language (what
-would have come after @tt{#lang} in the usual notation), and the
-remaining arguments are the body of the module. After all of the
-modules, there must a @scheme[require] to kick things off.
+with the @racket[module] keyword at the front. The first form after
+@racket[module] is the name of the module to be used in a subsequent
+@racket[require] statement (where each reference through a
+@racket[require] prefixes the name with a quote). The second form
+after @racket[module] is the language, and the remaining forms are the
+body of the module. After all of the modules, a @racket[require]
+starts one of the modules plus anything that is @racket[require]s.
+
diff --git a/collects/scribblings/guide/contracts-simple-function.scrbl b/collects/scribblings/guide/contracts-simple-function.scrbl
index 23e8381d0b..128d5988ec 100644
--- a/collects/scribblings/guide/contracts-simple-function.scrbl
+++ b/collects/scribblings/guide/contracts-simple-function.scrbl
@@ -3,136 +3,161 @@
scribble/eval
"guide-utils.ss"
"contracts-utils.ss"
- (for-label scheme/contract))
+ (for-label racket/contract))
@title[#:tag "contract-func"]{Simple Contracts on Functions}
-When a module exports a function, it establishes two
-channels of communication between itself and the client
-module that imports the function. If the client module calls
-the function, it sends a value into the ``server''
-module. Conversely, if such a function call ends and the
-function returns a value, the ``server'' module sends a
-value back to the ``client'' module.
+A mathematical function has a @deftech{domain} and a
+@deftech{range}. The domain indicates the kind of values that the
+function can accept as arguments, and the range indicates the kind of
+values that it produces. The conventional notation for a describing a
+function with its domain and range is
-It is important to keep this picture in mind when you read the explanations
-of the various ways of imposing contracts on functions.
-
-@ctc-section[#:tag "argcontract"]{Restricting the Arguments of a Function}
-
-Functions usually don't work on all possible Scheme values but only on a
-select subset such as numbers, booleans, etc. Here is a module that may
-represent a bank account:
-
-@schememod[
-scheme
-
-(provide/contract
- [create (-> string? number? any)]
- [deposit (-> number? any)])
-
-(define amount 0)
-(define (create name initial-deposit) ...)
-(define (deposit a) (set! amount (+ amount a)))
-]
-
-It exports two functions:
-@itemize[
-
-@item{@scheme[create]: The function's contract says that it consumes two
-arguments, a string and a number, and it promises nothing about the return value. }
-
-@item{@scheme[deposit]: The function's contract demands from the client modules
-that they apply it to numbers. It promises nothing about the return value. }]
-
-If a ``client'' module were to apply @scheme[deposit] to
-@scheme['silly], it would violate the contract. The
-contract monitoring system would catch this violation and
-blame ``client'' for breaking the contract with the above
-module.
-
-@bold{Note:} Instead of @scheme[any] you could also use the
-more specific contract @scheme[void?], which says that the function will
-always return the @scheme[(void)] value. This contract, however, would require
-the contract monitoring system to check the return value every time the function
-is called, even though the ``client'' module can't do much with this value
-anyway. In contrast, @scheme[any] tells the monitoring system @italic{not}
-to check the return value. Additionally, it tells a potential client that the
-``server'' module @italic{makes no promises at all} about the function's return
-value.
-
-@ctc-section[#:tag "arrow"]{Arrows}
-
-It is natural to use an arrow to say that an exported value is a
-function. In decent high schools, you learn that a function has a domain
-and a range, and that you write this fact down like this:
-@schemeblock[
+@racketblock[
f : A -> B
]
-Here the @scheme[A] and @scheme[B] are sets; @scheme[A] is the
-domain and @scheme[B] is the range.
-Functions in a programming language have domains and ranges, too. In
-statically typed languages, you write down the names of types for each
-argument and for the result. When all you have, however, is a Scheme name,
-such as @scheme[create] or @scheme[deposit], you want to tell the
-reader what the name represents (a function) and, if it is a function (or
-some other complex value) what the pieces are supposed to be. This is why
-we use a @scheme[->] to say ``hey, expect this to be a function.''
+where @racket[A] is the domain of the function and @racket[B] is the
+range.
-So @scheme[->] says ``this is a contract for a function.'' What follows
-in a function contracts are contracts (sub-contracts if you wish) that tell
-the reader what kind of arguments to expect and what kind of a result the
-function produces. For example,
-@schemeblock[
+Functions in a programming language have domains and ranges, too, and
+a contract can ensure that a function receives only values in its
+range and produces only values in its domain. A @racket[->] creates
+such a contract for a function. The forms after a @racket[->] specify
+contracts for the domains and finally a contract for the range.
+
+Here is a module that might represent a bank account:
+
+@racketmod[
+racket
+
+(provide/contract
+ [deposit (-> number? any)]
+ [balance (-> number?)])
+
+(define amount 0)
+(define (deposit a) (set! amount (+ amount a)))
+(define (balance) amount)
+]
+
+The module exports two functions:
+
+@itemize[
+
+@item{@racket[deposit], which accepts a number and returns some value
+ that is not specified in the contract, and}
+
+@item{@racket[balance], which returns a number indicating the current
+ balance of the account.}
+
+]
+
+When a module exports a function, it establishes two channels of
+communication between itself as a ``server'' and the ``client'' module
+that imports the function. If the client module calls the function, it
+sends a value into the server module. Conversely, if such a function
+call ends and the function returns a value, the server module sends a
+value back to the client module. This client--server distinction is
+important, because when something goes wrong, one or the other of the
+parties is to blame.
+
+If a client module were to apply @racket[deposit] to @racket['millions],
+it would violate the contract. The contract-monitoring system would
+catch this violation and blame client for breaking the contract with
+the above module. In contrast, if the @racket[balance] function were
+to return @racket['broke], the contract-monitoring system
+would blame the server module.
+
+A @racket[->] by itself is not a contract; it is a @deftech{contract
+combinator}, which combines other contracts to form a contract.
+
+@; ------------------------------------------------------------------------
+
+@section{Styles of @racket[->]}
+
+If you are used to mathematical function, you may prefer a contract
+ arrow to appear between the domain and the range of a function, not
+ at the beginning. If you have read @|HtDP|, you have seen this many
+ times. Indeed, you may have seen contracts such as these in other
+ people's code:
+
+@racketblock[
(provide/contract
- [create (-> string? number? boolean? account?)])
-]
-says that @scheme[create] is a function of three arguments: a string, a
-number, and a boolean. Its result is an account.
-
-In short, the arrow @scheme[->] is a @italic{contract
-combinator}. Its purpose is to combine other contracts into a contract
-that says ``this is a function @italic{and} its arguments and its result
-are like that.''
-
-@ctc-section[#:tag "dots"]{Infix Contract Notation}
-
-If you are used to mathematics, you like the arrow in between the
- domain and the range of a function, not at the beginning. If you
- have read @|HtDP|, you have seen this many times. Indeed, you may
- have seen contracts such as these in other people's code:
-
-@schemeblock[
-(provide/contract
- [create (string? number? boolean? . -> . account?)])
+ [deposit (number? . -> . any)])
]
-If a PLT Scheme S-expression contains two dots with a symbol in the middle,
-the reader re-arranges the S-expression and place the symbol at the front. Thus,
-@schemeblock[
-(string? number? boolean? . -> . account?)
+If a Racket S-expression contains two dots with a symbol in the middle,
+the reader re-arranges the S-expression and place the symbol at the front,
+as described in @secref["lists-and-syntax"]. Thus,
+
+@racketblock[
+(number? . -> . any)
]
-is really just a short-hand for
-@schemeblock[
-(-> string? number? boolean? account?)
+
+is just another way of writing
+
+@racketblock[
+(-> number? any)
]
-Of course, placing the arrow to the left of the range follows not only
-mathematical tradition but also that of typed functional languages.
-@ctc-section[#:tag "own"]{Rolling Your Own Contracts for Function Arguments}
+@; ----------------------------------------------------------------------
+@section{@racket[any] and @racket[any/c]}
-The @scheme[deposit] function adds the given number to the value of
-@scheme[amount]. While the function's contract prevents clients from
-applying it to non-numbers, the contract still allows them to apply the function
-to complex numbers, negative numbers, or inexact numbers, all of which do not
-represent amounts of money.
+The @racket[any] contract used for @racket[deposit] matches any kind
+of result, and it can only be used in the range position of a function
+contract. Instead of @racket[any] above, we could use the more
+specific contract @racket[void?], which says that the function will
+always return the @racket[(void)] value. The @racket[void?] contract,
+however, would require the contract monitoring system to check the
+return value every time the function is called, even though the
+``client'' module can't do much with the value. In contrast,
+@racket[any] tells the monitoring system @italic{not} to check the
+return value, it tells a potential client that the ``server'' module
+@italic{makes no promises at all} about the function's return value,
+even whether it is a single value or multiple values.
-To this end, the contract system allows programmers to define their own
-contracts:
+The @racket[any/c] contract is similar to @racket[any], in that it
+makes no demands on a value. Unlike @scheme[any], @racket[any/c]
+indicates a single value, and it is suitable for use as an argument
+contract. Using @racket[any/c] as a range contract imposes a check
+that the function produces a single value. That is,
-@schememod[
-scheme
+@racketblock[(-> integer? any)]
+
+describes a function that accepts and integer and returns any number of
+values, while
+
+@racketblock[(-> integer? any/c)]
+
+describes a function that accepts an integer and produces a single
+result (but does not say anything more about the result). The function
+
+@racketblock[
+(define (f x) (values (+ x 1) (- x 1)))
+]
+
+matches @racket[(-> integer? any)], but not @racket[(-> integer? any/c)].
+
+Use @racket[any/c] as a result contract when it is particularly
+important to promise a single result from a function. Use @racket[any]
+when you want to promise as little as possible (and incur as little
+checking as possible) for a function's result.
+
+@; ------------------------------------------------------------------------
+
+@ctc-section[#:tag "own"]{Rolling Your Own Contracts}
+
+The @racket[deposit] function adds the given number to the value of
+@racket[amount]. While the function's contract prevents clients from
+applying it to non-numbers, the contract still allows them to apply
+the function to complex numbers, negative numbers, or inexact numbers,
+none of which sensibly represent amounts of money.
+
+The contract system allows programmers to define their own contracts
+as functions:
+
+@racketmod[
+racket
(define (amount? a)
(and (number? a) (integer? a) (exact? a) (>= a 0)))
@@ -141,80 +166,66 @@ scheme
(code:comment "an amount is a natural number of cents")
(code:comment "is the given number an amount?")
[deposit (-> amount? any)]
- [amount? (-> any/c boolean?)])
+ [amount? (-> any/c boolean?)]
+ [balance (-> amount?)])
-(define this 0)
-(define (deposit a) (set! this (+ this a)))
+(define amount 0)
+(define (deposit a) (set! amount (+ amount a)))
+(define (balance) amount)
]
-The module introduces a
-predicate, @scheme[amount?]. The @scheme[provide]
-clause refers to this predicate, as a contract, for its
-specification of the contract of
-@scheme[deposit].
+This module define an @racket[amount?] function as uses it as a
+contract within @racket[->] contracts. When a client calls the
+@racket[deposit] function as exported with the contract @racket[(->
+amount? any)], it must supply an exact, nonnegative integer, otherwise
+the @racket[amount?] function applied to the argument will return
+@racket[#f], which will cause the contract-monitoring system to blame
+the client. Similarly, the server module must provide an exact,
+nonnegative integer as the result of @racket[balance] to remain
+blameless.
-Of course it makes no sense to restrict a channel of
-communication to values that the client doesn't
-understand. Therefore the module also exports
-the @scheme[amount?] predicate itself, with a contract
-saying that it accepts an arbitrary value and returns a
-boolean.
+Of course, it makes no sense to restrict a channel of communication to
+values that the client doesn't understand. Therefore the module also
+exports the @racket[amount?] predicate itself, with a contract saying
+that it accepts an arbitrary value and returns a boolean.
-In this case, we could also have used @scheme[natural-number/c], which
-is a contract defined in @schememodname[scheme/contract] that is
-equivalent to @scheme[amount] (modulo the name):
-
-@schememod[
-scheme
+In this case, we could also have used @racket[natural-number/c] in
+place of @racket[amount?], since it implies exactly the same check:
+@racketblock[
(provide/contract
- (code:comment "an amount is a natural number of cents")
- [deposit (-> natural-number/c any)])
-
-(define this 0)
-(define (deposit a) (set! this (+ this a)))
+ [deposit (-> natural-number/c any)]
+ [balance (-> natural-number/c)])
]
-Lesson: learn about the built-in contracts in @schememodname[scheme/contract].
+Every function that accepts one argument can be treated as a predicate
+and thus used as a contract. For combining existing checks into a new
+one, however, contract combinators such as @racket[and/c] and
+@racket[or/c] are often useful. For example, here is yet another way
+to write the contracts above:
-@ctc-section[#:tag "and-or"]{The @scheme[and/c], @scheme[or/c], and @scheme[listof] Contract Combinators}
-
-Both @scheme[and/c] and @scheme[or/c] combine contracts and
-they do what you expect them to do.
-
-For example, if we didn't have @scheme[natural-number/c], the
-@scheme[amount?] contract is a bit opaque. Instead, we would define it
-as follows:
-
-@schememod[
-scheme
-
-(define amount
+@racketblock[
+(define amount/c
(and/c number? integer? exact? (or/c positive? zero?)))
(provide/contract
- (code:comment "an amount is a natural number of cents")
- (code:comment "is the given number an amount?")
- [deposit (-> amount any)])
-
-(define this 0)
-(define (deposit a) (set! this (+ this a)))
+ [deposit (-> amount/c any)]
+ [balance (-> amount/c)])
]
-That is, amount is a contract that enforces the following conditions: the
-value satisfies @scheme[number?] and @scheme[integer?] and
-@scheme[exact?] and is either @scheme[positive?] or
-@scheme[zero?].
+Other values also serve double duty as contracts. For example, if a
+function accepts a number or @racket[#f], @racket[(or/c number? #f)]
+suffices. Similarly, the @racket[amount/c] contract could have been
+written with a @racket[0] in place of @racket[zero?]. If you use a
+regular expression as a contract, the contract accepts strings and
+byte strings that match the regular expression.
-Oh, we almost forgot. What do you think @scheme[(listof char?)]
-means? Hint: it is a contract!
+Naturally, you can mix your own contract-implementing functions with
+combinators like @racket[and/c]. Here is a module for creating strings
+from banking records:
-@ctc-section[#:tag "range"]{Restricting the Range of a Function}
-
-Consider a utility module for creating strings from banking records:
-
-@schememod[
-scheme
+@racketmod[
+racket
(define (has-decimal? str)
(define L (string-length str))
@@ -230,22 +241,19 @@ scheme
[format-nat (-> natural-number/c
(and/c string? has-decimal?))])
]
-The contract of the exported function @scheme[format-number] specifies that
-the function consumes a number and produces a string.
-
-The contract of the exported function @scheme[format-nat] is more
-interesting than the one of @scheme[format-number]. It consumes only
+The contract of the exported function @racket[format-number] specifies
+that the function consumes a number and produces a string. The
+contract of the exported function @racket[format-nat] is more
+interesting than the one of @racket[format-number]. It consumes only
natural numbers. Its range contract promises a string that has a
@litchar{.} in the third position from the right.
-@(exercise) Strengthen the promise of the range contract for
-@scheme[format-nat] so that it admits only strings with digits and a single
-dot.
+If we want to strengthen the promise of the range contract for
+@racket[format-nat] so that it admits only strings with digits and a single
+dot, we could write it like this:
-@(solution)
-
-@schememod[
-scheme
+@racketmod[
+racket
(define (digit-char? x)
(member x '(#\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9 #\0)))
@@ -263,11 +271,10 @@ scheme
(andmap digit-char?
(string->list (substring str (- L 2) L)))))
+....
+
(provide/contract
- ...
- (code:comment "convert a number to a string")
- [format-number (-> number? string?)]
-
+ ....
(code:comment "convert an amount (natural number) of cents")
(code:comment "into a dollar based string")
[format-nat (-> natural-number/c
@@ -275,23 +282,22 @@ scheme
is-decimal-string?))])
]
+Alternately, in this case, we could use a regular expression as a
+contract:
-@ctc-section[#:tag "coercion"]{Contracts Coerced from Other Values}
+@racketmod[
+racket
-The contract library treats a number of Scheme values as if they are
-contracts directly. We've already seen one main use of that: predicates. Every
-function that accepts one argument can be treated as a predicate
-and thus used as a contract.
+(provide/contract
+ ....
+ (code:comment "convert an amount (natural number) of cents")
+ (code:comment "into a dollar based string")
+ [format-nat (-> natural-number/c
+ (and/c string?
+ #rx"[0-9]*\\.[0-9][0-9][0-9]"))])
+]
-But many other values also play double duty as contracts.
-For example, if your function accepts a number or @scheme[#f],
-@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?].
-
-Even better, if you use a regular expression as a contract, the contract
-accepts strings that match the regular expression. For example,
-the @scheme[is-decimal-string?] predicate could have been written
-@scheme[#rx"[0-9]*\\.[0-9][0-9][0-9]"].
+@; ------------------------------------------------------------------------
@ctc-section{Contracts on Higher-order Functions}
@@ -302,35 +308,84 @@ themselves, can be used as contracts on the arguments and
results of a function.
For example,
-@schemeblock[(-> integer? (-> integer? integer?))]
-is a contract that describes a curried function. It matches
-functions that accept one argument and then return another
-function accepting a second argument before finally
-returning an integer.
-This contract
-@schemeblock[(-> (-> integer? integer?) integer?)]
-describes functions that accept other functions as inputs.
+@racketblock[(-> integer? (-> integer? integer?))]
-@ctc-section{The Difference Between @scheme[any] and @scheme[any/c]}
+is a contract that describes a curried function. It matches functions
+that accept one argument and then return another function accepting a
+second argument before finally returning an integer. If a server
+exports a function @racket[make-adder] with this contract, and if
+@racket[make-adder] returns a value other than a function, then the
+server is to blame. If @racket[make-adder] does return a function, but
+the resulting function is applied to a value other than an integer,
+then the client is to blame.
-The contract @scheme[any/c] accepts any value, and
-@scheme[any] is a keyword that can appear in the range of
-the function contracts (@scheme[->], @scheme[->*], and
-@scheme[->d]), so it is natural to wonder what the
-difference between these two contracts is:
-@schemeblock[
-(-> integer? any)
-(-> integer? any/c)
+Similarly, the contract
+
+@racketblock[(-> (-> integer? integer?) integer?)]
+
+describes functions that accept other functions as its input. If a
+server exports a function @racket[twice] with this contract and the
+@racket[twice] is applied to a value other than a function of one
+argument, then the client is to blame. If @racket[twice] is applied to
+a function of one argument and @racket[twice] calls the give function
+on a value other than an integer, then the server is to blame.
+
+@; ----------------------------------------------------------------------
+
+@ctc-section[#:tag "flat-named-contracts"]{Contract Messages with ``???''}
+
+You wrote your module. You added contracts. You put them into the interface
+so that client programmers have all the information from interfaces. It's a
+piece of art:
+@racketmod[
+racket
+
+(provide/contract
+ [deposit (-> (lambda (x)
+ (and (number? x) (integer? x) (>= x 0)))
+ any)])
+
+(define this 0)
+(define (deposit a) ...)
]
-Both allow any result, right? There is one important difference:
-in the first case, the function may return anything at
-all, including multiple values. In the second case, the
-function may return any value, but not more than one. For
-example, this function:
-@schemeblock[
-(define (f x) (values (+ x 1) (- x 1)))
-]
-meets the first contract, but not the second one.}
+Several clients used your module. Others used their
+modules in turn. And all of a sudden one of them sees this error
+message:
+
+@inset-flow{@racketerror{bank-client broke the contract (-> ??? any)
+it had with myaccount on deposit; expected ??>, given: -10}}
+
+Clearly, @racket[bank-client] is a module that uses @racket[myaccount]
+but what is the @racketerror{???} doing there? Wouldn't it be nice if
+we had a name for this class of data much like we have string, number,
+and so on?
+
+For this situation, Racket provides @deftech{flat named
+contracts}. The use of ``contract'' in this term shows that contracts
+are first-class values. The ``flat'' means that the collection of data
+is a subset of the built-in atomic classes of data; they are described
+by a predicate that consumes all Racket values and produces a
+boolean. The ``named'' part says what we want to do, which is to name
+the contract so that error messages become intelligible:
+
+@racketmod[
+racket
+
+(define (amount? x) (and (number? x) (integer? x) (>= x 0)))
+(define amount (flat-named-contract 'amount amount?))
+
+(provide/contract
+ [deposit (amount . -> . any)])
+
+(define this 0)
+(define (deposit a) ...)
+]
+
+With this little change, the error message becomes all of the
+sudden quite readable:
+
+@inset-flow{@racketerror{bank-client broke the contract (-> amount
+any) it had with myaccount on deposit; expected , given: -10}}
diff --git a/collects/scribblings/guide/contracts-structure.scrbl b/collects/scribblings/guide/contracts-structure.scrbl
index 21a56763a3..87ecd8d374 100644
--- a/collects/scribblings/guide/contracts-structure.scrbl
+++ b/collects/scribblings/guide/contracts-structure.scrbl
@@ -3,12 +3,12 @@
scribble/eval
"guide-utils.ss"
"contracts-utils.ss"
- (for-label scheme/contract))
+ (for-label racket/contract))
@title[#:tag "contracts-struct"]{Contracts on Structures}
Modules deal with structures in two ways. First they export
-@scheme[struct] definitions, i.e., the ability to create
+@racket[struct] definitions, i.e., the ability to create
structs of a certain kind, to access their fields, to modify
them, and to distinguish structs of this kind against every
other kind of value in the world. Second, on occasion a
@@ -17,12 +17,14 @@ its fields contain values of a certain kind. This section
explains how to protect structs with contracts for both
uses.
-@ctc-section[#:tag "single-struct"]{Promising Something About a Specific Structure}
+@; ----------------------------------------------------------------------
+@ctc-section[#:tag "single-struct"]{Guarantees for a Specific Value}
-Yes. If your module defines a variable to be a structure, then on export you
-can specify the structures shape:
-@schememod[
-scheme
+If your module defines a variable to be a structure, then you can
+specify the structure's shape using @racket[struct/c]:
+
+@racketmod[
+racket
(require lang/posn)
(define origin (make-posn 0 0))
@@ -32,105 +34,98 @@ scheme
]
In this example, the module imports a library for representing positions, which
-exports a @scheme[posn] structure. One of the @scheme[posn]s it creates
+exports a @racket[posn] structure. One of the @racket[posn]s it creates
and exports stands for the origin, i.e., @tt{(0,0)}, of the grid.
-@ctc-section[#:tag "single-vector"]{Promising Something About a Specific Vector}
+@margin-note{See also @racket[vector/c] and similar contract
+combinators for (flat) compound data.}
-Yes, again. See the help desk for information on @scheme[vector/c] and
-similar contract combinators for (flat) compound data.
+@; ----------------------------------------------------------------------
+@ctc-section[#:tag "define-struct"]{Guarantees for All Values}
-@ctc-section[#:tag "define-struct"]{Ensuring that All Structs are Well-Formed}
+The book @|HtDP| teaches that @racket[posn]s should contain only
+numbers in their two fields. With contracts we would enforce this
+informal data definition as follows:
-The book @link["http://www.htdp.org/"]{@italic{How to Design
-Programs}} teaches that @scheme[posn]s should contain only
-numbers in their two fields. With contracts we would enforce
-this informal data definition as follows:
-
-@schememod[
-scheme
-(define-struct posn (x y))
+@racketmod[
+racket
+(struct posn (x y))
(provide/contract
[struct posn ((x number?) (y number?))]
[p-okay posn?]
[p-sick posn?])
-(define p-okay (make-posn 10 20))
-(define p-sick (make-posn 'a 'b))
+(define p-okay (posn 10 20))
+(define p-sick (posn 'a 'b))
]
-This module exports the entire structure definition: @scheme[make-posn],
-@scheme[posn?], @scheme[posn-x], @scheme[posn-y],
-@scheme[set-posn-x!], and @scheme[set-posn-y!]. Each function enforces
-or promises that the two fields of a @scheme[posn] structure are
-numbers---when the values flow across the module boundary.
+This module exports the entire structure definition: @racket[posn],
+@racket[posn?], @racket[posn-x], @racket[posn-y],
+@racket[set-posn-x!], and @racket[set-posn-y!]. Each function enforces
+or promises that the two fields of a @racket[posn] structure are
+numbers --- when the values flow across the module boundary. Thus, if
+a client calls @racket[posn] on @racket[10] and @racket['a], the
+contract system signals a contract violation.
-Thus, if a client calls @scheme[make-posn] on @scheme[10] and
-@scheme['a], the contract system signals a contract
-violation.
-
-The creation of @scheme[p-sick] inside of the @scheme[posn] module,
-however, does not violate the contracts. The function @scheme[make-posn] is
-used internally so @scheme['a] and @scheme['b] don't cross the module
-boundary. Similarly, when @scheme[p-sick] crosses the boundary of
-@scheme[posn], the contract promises a @scheme[posn?] and nothing
-else. In particular, this check does @italic{not} require that the fields of
-@scheme[p-sick] are numbers.
+The creation of @racket[p-sick] inside of the @racket[posn] module,
+however, does not violate the contracts. The function @racket[posn] is
+used internally, so @racket['a] and @racket['b] don't cross the module
+boundary. Similarly, when @racket[p-sick] crosses the boundary of
+@racket[posn], the contract promises a @racket[posn?] and nothing
+else. In particular, this check does @italic{not} require that the
+fields of @racket[p-sick] are numbers.
The association of contract checking with module boundaries implies that
-@scheme[p-okay] and @scheme[p-sick] look alike from a client's
+@racket[p-okay] and @racket[p-sick] look alike from a client's
perspective until the client extracts the pieces:
-@schememod[
-scheme
+@racketmod[
+racket
(require lang/posn)
... (posn-x p-sick) ...
]
-Using @scheme[posn-x] is the only way the client can find out what
-a @scheme[posn] contains in the @scheme[x] field. The application of
-@scheme[posn-x] sends @scheme[p-sick] back into the
-@scheme[posn] module and the result value -- @scheme['a] here -- back to
+Using @racket[posn-x] is the only way the client can find out what
+a @racket[posn] contains in the @racket[x] field. The application of
+@racket[posn-x] sends @racket[p-sick] back into the
+@racket[posn] module and the result value -- @racket['a] here -- back to
the client, again across the module boundary. At this very point, the contract
-system discovers that a promise is broken. Specifically, @scheme[posn-x]
+system discovers that a promise is broken. Specifically, @racket[posn-x]
doesn't return a number but a symbol and is therefore blamed.
This specific example shows that the explanation for a contract violation
doesn't always pinpoint the source of the error. The good news is that the
-error is located in the @scheme[posn] module. The bad news is that the
-explanation is misleading. Although it is true that @scheme[posn-x]
+error is located in the @racket[posn] module. The bad news is that the
+explanation is misleading. Although it is true that @racket[posn-x]
produced a symbol instead of a number, it is the fault of the programmer who
-created a @scheme[posn] from symbols, i.e., the programmer who added
+created a @racket[posn] from symbols, i.e., the programmer who added
-@schemeblock[
-(define p-sick (make-posn 'a 'b))
+@racketblock[
+(define p-sick (posn 'a 'b))
]
- to the module. So, when you are looking for bugs based on contract violations,
- keep this example in mind.
-@(exercise) Use your knowledge from the
-@ctc-link["single-struct"] section on exporting specific
-structs and change the contract for @scheme[p-sick] so that
-the error is caught when @scheme[sick] is exported.
+ to the module. So, when you are looking for bugs based on contract
+ violations, keep this example in mind.
-@(solution)
+If we want to fix the contract for @racket[p-sick] so that the error
+is caught when @racket[sick] is exported, a single change suffices:
-A single change suffices:
-
-@schemeblock[
+@racketblock[
(provide/contract
...
[p-sick (struct/c posn number? number?)])
]
-Instead of exporting @scheme[p-sick] as a plain @scheme[posn?], we use a
-@scheme[struct/c] contract to enforce constraints on its components.
+That is, instead of exporting @racket[p-sick] as a plain
+@racket[posn?], we use a @racket[struct/c] contract to enforce
+constraints on its components.
+@; ----------------------------------------------------------------------
@ctc-section[#:tag "lazy-contracts"]{Checking Properties of Data Structures}
-Contracts written using @scheme[struct/c] immediately
+Contracts written using @racket[struct/c] immediately
check the fields of the data structure, but sometimes this
can have disastrous effects on the performance of a program
that does not, itself, inspect the entire data structure.
@@ -144,12 +139,12 @@ subtree are smaller than the number in the node, and all of
the numbers in the right subtree are larger than the number
in the node.
-We can implement a search function @scheme[in?] that takes
+We can implement a search function @racket[in?] that takes
advantage of the structure of the binary search tree.
-@schememod[
-scheme
+@racketmod[
+racket
-(define-struct node (val left right))
+(struct node (val left right))
(code:comment "determines if `n' is in the binary search tree `b',")
(code:comment "exploiting the binary search tree invariant")
@@ -180,48 +175,47 @@ scheme
]
In a full binary search tree, this means that
-the @scheme[in?] function only has to explore a
+the @racket[in?] function only has to explore a
logarithmic number of nodes.
-The contract on @scheme[in?] guarantees that its input
+The contract on @racket[in?] guarantees that its input
is a binary search tree. But a little careful thought
reveals that this contract defeats the purpose of the binary
search tree algorithm. In particular, consider the
-inner @scheme[cond] in the @scheme[in?]
-function. This is where the @scheme[in?] function gets
+inner @racket[cond] in the @racket[in?]
+function. This is where the @racket[in?] function gets
its speed: it avoids searching an entire subtree at each
-recursive call. Now compare that to the @scheme[bst-between?]
-function. In the case that it returns @scheme[#t], it
+recursive call. Now compare that to the @racket[bst-between?]
+function. In the case that it returns @racket[#t], it
traverses the entire tree, meaning that the speedup
-of @scheme[in?] is lost.
+of @racket[in?] is lost.
In order to fix that, we can employ a new strategy for
checking the binary search tree contract. In particular, if
we only checked the contract on the nodes
-that @scheme[in?] looks at, we can still guarantee that
+that @racket[in?] looks at, we can still guarantee that
the tree is at least partially well-formed, but without
changing the complexity.
-To do that, we need to
-use @scheme[define-contract-struct] in place
-of @scheme[define-struct]. Like @scheme[define-struct],
-@scheme[define-contract-struct] defines a maker,
-predicate, and selectors for a new
-structure. Unlike @scheme[define-struct], it also
-defines contract combinators, in this
-case @scheme[node/c] and @scheme[node/dc]. Also unlike
-@scheme[define-struct], it does not allow mutators, making
-its structs always immutable.
+To do that, we need to use @racket[define-contract-struct] in place of
+@racket[struct]. Like @racket[struct] (and more like
+@racket[define-struct]), @racket[define-contract-struct] defines a
+maker, predicate, and selectors for a new structure. Unlike
+@racket[define-struct], it also defines contract combinators, in this
+case @racket[node/c] and @racket[node/dc]. Also unlike
+@racket[define-struct], it does not allow mutators, making its structs
+always immutable.
-The @scheme[node/c] function accepts a contract for each
+The @racket[node/c] function accepts a contract for each
field of the struct and returns a contract on the
struct. More interestingly, the syntactic
-form @scheme[node/dc] allows us to write dependent
+form @racket[node/dc] allows us to write dependent
contracts, i.e., contracts where some of the contracts on
the fields depend on the values of other fields. We can use
this to define the binary search tree contract:
-@schememod[
-scheme
+
+@racketmod[
+racket
(define-contract-struct node (val left right))
@@ -245,30 +239,30 @@ scheme
[in? (number? bst/c . -> . boolean?)])
]
-In general, each use of @scheme[node/dc] must name the
+In general, each use of @racket[node/dc] must name the
fields and then specify contracts for each field. In the
-above, the @scheme[val] field is a contract that accepts
-values between @scheme[low] and @scheme[high].
-The @scheme[left] and @scheme[right] fields are
-dependent on the value of the @scheme[val] field,
+above, the @racket[val] field is a contract that accepts
+values between @racket[low] and @racket[high].
+The @racket[left] and @racket[right] fields are
+dependent on the value of the @racket[val] field,
indicated by their second sub-expressions. Their contracts
are built by recursive calls to
-the @scheme[bst-between/c] function. Taken together,
+the @racket[bst-between/c] function. Taken together,
this contract ensures the same thing that
-the @scheme[bst-between?] function checked in the
+the @racket[bst-between?] function checked in the
original example, but here the checking only happens
-as @scheme[in?] explores the tree.
+as @racket[in?] explores the tree.
Although this contract improves the performance
-of @scheme[in?], restoring it to the logarithmic
+of @racket[in?], restoring it to the logarithmic
behavior that the contract-less version had, it is still
imposes a fairly large constant overhead. So, the contract
-library also provides @scheme[define-opt/c] that brings
+library also provides @racket[define-opt/c] that brings
down that constant factor by optimizing its body. Its shape
-is just like the @scheme[define] above. It expects its
+is just like the @racket[define] above. It expects its
body to be a contract and then optimizes that contract.
-@schemeblock[
+@racketblock[
(define-opt/c (bst-between/c low high)
(or/c null?
(node/dc [val (between/c low high)]
diff --git a/collects/scribblings/guide/contracts-utils.ss b/collects/scribblings/guide/contracts-utils.rkt
similarity index 95%
rename from collects/scribblings/guide/contracts-utils.ss
rename to collects/scribblings/guide/contracts-utils.rkt
index e7bd978b73..992e01c8f6 100644
--- a/collects/scribblings/guide/contracts-utils.ss
+++ b/collects/scribblings/guide/contracts-utils.rkt
@@ -33,7 +33,7 @@
(define-syntax (external-file stx)
(syntax-case stx ()
[(_ filename)
- (call-with-input-file (build-path "contracts-examples" (format "~a.ss" (syntax-e #'filename)))
+ (call-with-input-file (build-path "contracts-examples" (format "~a.rkt" (syntax-e #'filename)))
(λ (port)
(define prefix "#reader scribble/comment-reader\n[schememod\nscheme\n")
(define suffix "]")
@@ -67,5 +67,5 @@
(define-syntax (external-file stx)
(syntax-case stx ()
[(_ filename)
- #`(include/reader #,(format "contracts-examples/~a.ss" (syntax-e #'filename))
+ #`(include/reader #,(format "contracts-examples/~a.rkt" (syntax-e #'filename))
comment-schememod-reader)]))
diff --git a/collects/scribblings/guide/contracts.scrbl b/collects/scribblings/guide/contracts.scrbl
index 27c0851f4b..fd6fee40e5 100644
--- a/collects/scribblings/guide/contracts.scrbl
+++ b/collects/scribblings/guide/contracts.scrbl
@@ -5,7 +5,7 @@
@title[#:tag "contracts" #:style 'toc]{Contracts}
-This chapter provides a gentle introduction to PLT Scheme's
+This chapter provides a gentle introduction to Racket's
contract system.
@refdetails["contracts"]{contracts}
diff --git a/collects/scribblings/guide/data.scrbl b/collects/scribblings/guide/data.scrbl
index 7568a2e0ca..670d2a5f3e 100644
--- a/collects/scribblings/guide/data.scrbl
+++ b/collects/scribblings/guide/data.scrbl
@@ -6,7 +6,7 @@
@title[#:tag "datatypes" #:style 'toc]{Built-In Datatypes}
The @seclink["to-scheme"]{previous chapter} introduced some of
-Scheme's built-in datatypes: numbers, booleans, strings, lists, and
+Racket's built-in datatypes: numbers, booleans, strings, lists, and
procedures. This section provides a more complete coverage of the
built-in datatypes for simple forms of data.
diff --git a/collects/scribblings/guide/define-struct.scrbl b/collects/scribblings/guide/define-struct.scrbl
index 875b5d9004..02ed148a4b 100644
--- a/collects/scribblings/guide/define-struct.scrbl
+++ b/collects/scribblings/guide/define-struct.scrbl
@@ -2,7 +2,8 @@
@(require scribble/manual
scribble/eval
scribble/bnf
- "guide-utils.ss")
+ "guide-utils.ss"
+ (for-label racket/serialize))
@(define posn-eval (make-base-eval))
@@ -10,55 +11,46 @@
@refalso["structures"]{structure types}
-New datatypes are normally created with the @scheme[define-struct]
+New datatypes are normally created with the @scheme[struct]
form, which is the topic of this chapter. The class-based object
system, which we defer to @secref["classes"], offers an alternate
mechanism for creating new datatypes, but even classes and objects are
implemented in terms of structure types.
@; ------------------------------------------------------------
-@section{Simple Structure Types: @scheme[define-struct]}
+@section{Simple Structure Types: @scheme[struct]}
-@refalso["define-struct"]{@scheme[define-struct]}
+@refalso["define-struct"]{@scheme[struct]}
-To a first approximation, the syntax of @scheme[define-struct] is
+To a first approximation, the syntax of @scheme[struct] is
@specform[
-(define-struct struct-id (field-id ...))
+(struct struct-id (field-id ...))
]{}
-A @scheme[define-struct] declaration binds @scheme[_struct-id], but
-only to static information about the structure type that cannot be
-used directly:
-
-@def+int[
+@as-examples[@schemeblock+eval[
#:eval posn-eval
-(define-struct posn (x y))
-posn
-]
+(struct posn (x y))
+]]
-We show two uses of the @scheme[_struct-id] binding below in
-@secref["struct-copy"] and @secref["struct-subtypes"].
-
-Meanwhile, in addition to defining @scheme[_struct-id],
-@scheme[define-struct] also defines a number of identifiers that are
-built from @scheme[_struct-id] and the @scheme[_field-id]s:
+The @scheme[struct] form binds @scheme[_struct-id] and a number of
+identifiers that are built from @scheme[_struct-id] and the
+@scheme[_field-id]s:
@itemize[
- @item{@schemeidfont{make-}@scheme[_struct-id] : a
- @deftech{constructor} function that takes as many arguments as
- the number of @scheme[_field-id]s, and returns an instance of
- the structure type.
+ @item{@scheme[_struct-id] : a @deftech{constructor} function that
+ takes as many arguments as the number of @scheme[_field-id]s,
+ and returns an instance of the structure type.
- @examples[#:eval posn-eval (make-posn 1 2)]}
+ @examples[#:eval posn-eval (posn 1 2)]}
@item{@scheme[_struct-id]@schemeidfont{?} : a @deftech{predicate}
function that takes a single argument and returns @scheme[#t]
if it is an instance of the structure type, @scheme[#f]
otherwise.
- @examples[#:eval posn-eval (posn? 3) (posn? (make-posn 1 2))]}
+ @examples[#:eval posn-eval (posn? 3) (posn? (posn 1 2))]}
@item{@scheme[_struct-id]@schemeidfont{-}@scheme[_field-id] : for
each @scheme[_field-id], an @deftech{accessor} that extracts
@@ -66,7 +58,7 @@ built from @scheme[_struct-id] and the @scheme[_field-id]s:
structure type.
@examples[#:eval posn-eval
- (posn-x (make-posn 1 2)) (posn-y (make-posn 1 2))]}
+ (posn-x (posn 1 2)) (posn-y (posn 1 2))]}
@item{@schemeidfont{struct:}@scheme[_struct-id] : a
@deftech{structure type descriptor}, which is a value that
@@ -76,9 +68,9 @@ built from @scheme[_struct-id] and the @scheme[_field-id]s:
]
-A @scheme[define-struct] form places no constraints on the kinds of
+A @scheme[struct] form places no constraints on the kinds of
values that can appear for fields in an instance of the structure
-type. For example, @scheme[(make-posn "apple" #f)] produces an
+type. For example, @scheme[(posn "apple" #f)] produces an
instance of @scheme[posn], even though @scheme["apple"] and
@scheme[#f] are not valid coordinates for the obvious uses of
@scheme[posn] instances. Enforcing constraints on field values, such
@@ -99,7 +91,7 @@ modified.
]
The @scheme[_struct-id] that appears after @scheme[struct-copy] must
-be a structure type name bound by @scheme[define-struct] (i.e., the
+be a structure type name bound by @scheme[struct] (i.e., the
name that cannot be used directly as an expression). The
@scheme[_struct-expr] must produce an instance of the structure type.
The result is a new instance of the structure tpe that is like the old
@@ -108,7 +100,7 @@ the value of the corresponding @scheme[_expr].
@examples[
#:eval posn-eval
-(define p1 (make-posn 1 2))
+(define p1 (posn 1 2))
(define p2 (struct-copy posn p1 [x 3]))
(list (posn-x p2) (posn-y p2))
(list (posn-x p1) (posn-x p2))
@@ -118,22 +110,22 @@ the value of the corresponding @scheme[_expr].
@; ------------------------------------------------------------
@section[#:tag "struct-subtypes"]{Structure Subtypes}
-An extended form of @scheme[define-struct] can be used to define a
+An extended form of @scheme[struct] can be used to define a
@defterm{structure subtype}, which is a structure type that extends an
existing structure type:
@specform[
-(define-struct (struct-id super-id) (field-id ...))
+(struct struct-id super-id (field-id ...))
]
The @scheme[_super-id] must be a structure type name bound by
-@scheme[define-struct] (i.e., the name that cannot be used directly as
+@scheme[struct] (i.e., the name that cannot be used directly as
an expression).
@as-examples[@schemeblock+eval[
#:eval posn-eval
-(define-struct posn (x y))
-(define-struct (3d-posn posn) (z))
+(struct posn (x y))
+(struct 3d-posn posn (z))
]]
A structure subtype inherits the fields of its supertype, and the
@@ -144,7 +136,7 @@ supertype.
@examples[
#:eval posn-eval
-(define p (make-3d-posn 1 2 3))
+(define p (3d-posn 1 2 3))
p
(posn? p)
(posn-x p)
@@ -157,7 +149,7 @@ p
With a structure type definition like
@schemeblock[
-(define-struct posn (x y))
+(struct posn (x y))
]
an instance of the structure type prints in a way that does not show
@@ -171,14 +163,14 @@ To make a structure type @deftech{transparent}, use the
@def+int[
#:eval posn-eval
-(define-struct posn (x y)
- #:transparent)
-(make-posn 1 2)
+(struct posn (x y)
+ #:transparent)
+(posn 1 2)
]
-An instance of a transparent structure type prints like a vector, and
-it shows the content of the structure's fields. A transparent
-structure type also allows reflective operations, such as
+An instance of a transparent structure type prints like a call to the
+constructor, so that it shows the structures field values. A
+transparent structure type also allows reflective operations, such as
@scheme[struct?] and @scheme[struct-info], to be used on its instances
(see @secref["reflection"]).
@@ -197,15 +189,15 @@ to mere instance identity for opaque structure types:
@def+int[
#:eval posn-eval
-(define-struct glass (width height) #:transparent)
-(equal? (make-glass 1 2) (make-glass 1 2))
+(struct glass (width height) #:transparent)
+(equal? (glass 1 2) (glass 1 2))
]
@def+int[
#:eval posn-eval
-(define-struct lead (width height))
-(define slab (make-lead 1 2))
+(struct lead (width height))
+(define slab (lead 1 2))
(equal? slab slab)
-(equal? slab (make-lead 1 2))
+(equal? slab (lead 1 2))
]
To support instances comparisons via @scheme[equal?] without making
@@ -214,7 +206,7 @@ keyword, @scheme[prop:equal+hash], and then a list of three functions:
@def+int[
#:eval posn-eval
-(define-struct lead (width height)
+(struct lead (width height)
#:property
prop:equal+hash
(list (lambda (a b equal?-recur)
@@ -229,7 +221,7 @@ keyword, @scheme[prop:equal+hash], and then a list of three functions:
(code:comment @#,t{compute secondary hash code of @scheme[a]})
(+ (hash2-recur (lead-width a))
(hash2-recur (lead-height a))))))
-(equal? (make-lead 1 2) (make-lead 1 2))
+(equal? (lead 1 2) (lead 1 2))
]
The first function in the list implements the @scheme[equal?] test on
@@ -241,9 +233,9 @@ secondary hash codes for use with @tech{hash tables}:
@interaction[
#:eval posn-eval
(define h (make-hash))
-(hash-set! h (make-lead 1 2) 3)
-(hash-ref h (make-lead 1 2))
-(hash-ref h (make-lead 2 1))
+(hash-set! h (lead 1 2) 3)
+(hash-ref h (lead 1 2))
+(hash-ref h (lead 2 1))
]
The first function provided with @scheme[prop:equal+hash] is not
@@ -257,33 +249,33 @@ types that are supposed to be equivalent.
@; ------------------------------------------------------------
@section{Structure Type Generativity}
-Each time that a @scheme[define-struct] form is evaluated, it
+Each time that a @scheme[struct] form is evaluated, it
generates a structure type that is distinct from all existing
structure types, even if some other structure type has the same name
and fields.
This generativity is useful for enforcing abstractions and
implementing programs such as interpreters, but beware of placing a
-@scheme[define-struct] form in positions that are evaluated multiple
+@scheme[struct] form in positions that are evaluated multiple
times.
@defexamples[
(define (add-bigger-fish lst)
- (define-struct fish (size) #:transparent) (code:comment #,(t "new every time"))
+ (struct fish (size) #:transparent) (code:comment #,(t "new every time"))
(cond
- [(null? lst) (list (make-fish 1))]
- [else (cons (make-fish (* 2 (fish-size (car lst))))
+ [(null? lst) (list (fish 1))]
+ [else (cons (fish (* 2 (fish-size (car lst))))
lst)]))
(add-bigger-fish null)
(add-bigger-fish (add-bigger-fish null))
]
@defs+int[
-[(define-struct fish (size) #:transparent)
+[(struct fish (size) #:transparent)
(define (add-bigger-fish lst)
(cond
- [(null? lst) (list (make-fish 1))]
- [else (cons (make-fish (* 2 (fish-size (car lst))))
+ [(null? lst) (list (fish 1))]
+ [else (cons (fish (* 2 (fish-size (car lst))))
lst)]))]
(add-bigger-fish (add-bigger-fish null))
]
@@ -322,16 +314,16 @@ the quotes above are optional:
]
When you use the @scheme[#:prefab] keyword with
-@scheme[define-struct], instead of generating a new structure type,
+@scheme[struct], instead of generating a new structure type,
you obtain bindings that work with the existing prefab structure type:
@interaction[
#:eval posn-eval
(define lunch '#s(sprout bean))
-(define-struct sprout (kind) #:prefab)
+(struct sprout (kind) #:prefab)
(sprout? lunch)
(sprout-kind lunch)
-(make-sprout 'garlic)
+(sprout 'garlic)
]
The field name @schemeidfont{kind} above does not matter for finding
@@ -343,7 +335,7 @@ than the one with a single field:
@interaction[
#:eval posn-eval
(sprout? #s(sprout bean #f 17))
-(code:line (define-struct sprout (kind yummy? count) #:prefab) (code:comment @#,t{redefine}))
+(code:line (struct sprout (kind yummy? count) #:prefab) (code:comment @#,t{redefine}))
(sprout? #s(sprout bean #f 17))
(sprout? lunch)
]
@@ -355,10 +347,10 @@ prefab structure types, and the printed form of the structure type's
name encodes all of the relevant details.
@interaction[
-(define-struct building (rooms [location #:mutable]) #:prefab)
-(define-struct (house building) ([occupied #:auto]) #:prefab
+(struct building (rooms [location #:mutable]) #:prefab)
+(struct house building ([occupied #:auto]) #:prefab
#:auto-value 'no)
-(make-house 5 'factory)
+(house 5 'factory)
]
Every @tech{prefab} structure type is @tech{transparent}---but even
@@ -406,13 +398,13 @@ be serialized, however, if they are defined with
@; ------------------------------------------------------------
@section[#:tag "struct-options"]{More Structure Type Options}
-The full syntax of @scheme[define-struct] supports many options, both
+The full syntax of @scheme[struct] supports many options, both
at the structure-type level and at the level of individual fields:
-@specform/subs[(define-struct id-maybe-super (field ...)
- struct-option ...)
- ([id-maybe-super struct-id
- (struct-id super-id)]
+@specform/subs[(struct struct-id maybe-super (field ...)
+ struct-option ...)
+ ([maybe-super code:blank
+ super-id]
[field field-id
[field-id field-option ...]])]
@@ -426,8 +418,8 @@ A @scheme[_struct-option] always starts with a keyword:
that sets the value of the corresponding field in an instance of
the structure type.
- @defexamples[(define-struct dot (x y) #:mutable)
- (define d (make-dot 1 2))
+ @defexamples[(struct dot (x y) #:mutable)
+ (define d (dot 1 2))
(dot-x d)
(set-dot-x! d 10)
(dot-x d)]
@@ -437,8 +429,8 @@ A @scheme[_struct-option] always starts with a keyword:
mutable.
@defexamples[
- (define-struct person (name [age #:mutable]))
- (define friend (make-person "Barney" 5))
+ (struct person (name [age #:mutable]))
+ (define friend (person "Barney" 5))
(set-person-age! friend 6)
(set-person-name! friend "Mary")]}
@@ -464,10 +456,10 @@ A @scheme[_struct-option] always starts with a keyword:
functions are bound only if @scheme[#:mutator] is also specified.
@defexamples[
- (define-struct posn (x y [z #:auto])
- #:transparent
- #:auto-value 0)
- (make-posn 1 2)
+ (struct posn (x y [z #:auto])
+ #:transparent
+ #:auto-value 0)
+ (posn 1 2)
]}
@;-- FIXME:
@@ -486,18 +478,18 @@ A @scheme[_struct-option] always starts with a keyword:
@defexamples[
#:eval posn-eval
- (define-struct thing (name)
- #:transparent
- #:guard (lambda (name type-name)
- (cond
- [(string? name) name]
- [(symbol? name) (symbol->string name)]
- [else (error type-name
- "bad name: ~e"
- name)])))
- (make-thing "apple")
- (make-thing 'apple)
- (make-thing 1/2)
+ (struct thing (name)
+ #:transparent
+ #:guard (lambda (name type-name)
+ (cond
+ [(string? name) name]
+ [(symbol? name) (symbol->string name)]
+ [else (error type-name
+ "bad name: ~e"
+ name)])))
+ (thing "apple")
+ (thing 'apple)
+ (thing 1/2)
]
The guard is called even when subtype instances are created. In that
@@ -507,15 +499,15 @@ A @scheme[_struct-option] always starts with a keyword:
@defexamples[
#:eval posn-eval
- (define-struct (person thing) (age)
- #:transparent
- #:guard (lambda (name age type-name)
- (if (negative? age)
- (error type-name "bad age: ~e" age)
- (values name age))))
- (make-person "John" 10)
- (make-person "Mary" -1)
- (make-person 10 10)]}
+ (struct person thing (age)
+ #:transparent
+ #:guard (lambda (name age type-name)
+ (if (negative? age)
+ (error type-name "bad age: ~e" age)
+ (values name age))))
+ (person "John" 10)
+ (person "Mary" -1)
+ (person 10 10)]}
@specspecsubform[(code:line #:property prop-expr val-expr)]{
Associates a @deftech{property} and value with the structure type.
@@ -525,13 +517,13 @@ A @scheme[_struct-option] always starts with a keyword:
function.
@defexamples[
- (define-struct greeter (name)
- #:property prop:procedure
- (lambda (self other)
- (string-append
- "Hi " other
- ", I'm " (greeter-name self))))
- (define joe-greet (make-greeter "Joe"))
+ (struct greeter (name)
+ #:property prop:procedure
+ (lambda (self other)
+ (string-append
+ "Hi " other
+ ", I'm " (greeter-name self))))
+ (define joe-greet (greeter "Joe"))
(greeter-name joe-greet)
(joe-greet "Mary")
(joe-greet "John")]}
@@ -547,16 +539,16 @@ A @scheme[_struct-option] always starts with a keyword:
@defexamples[
#:eval posn-eval
- (define (make-raven-constructor super-type)
- (define-struct raven ()
- #:super super-type
- #:transparent
- #:property prop:procedure (lambda (self)
- 'nevermore))
- make-raven)
- (let ([r ((make-raven-constructor struct:posn) 1 2)])
+ (define (raven-constructor super-type)
+ (struct raven ()
+ #:super super-type
+ #:transparent
+ #:property prop:procedure (lambda (self)
+ 'nevermore))
+ raven)
+ (let ([r ((raven-constructor struct:posn) 1 2)])
(list r (r)))
- (let ([r ((make-raven-constructor struct:thing) "apple")])
+ (let ([r ((raven-constructor struct:thing) "apple")])
(list r (r)))]}
@; ----------------------------------------
diff --git a/collects/scribblings/guide/define.scrbl b/collects/scribblings/guide/define.scrbl
index 6f8339bd9c..95c5402aa7 100644
--- a/collects/scribblings/guide/define.scrbl
+++ b/collects/scribblings/guide/define.scrbl
@@ -5,14 +5,14 @@
@(define def-eval (make-base-eval))
-@title[#:tag "define"]{Definitions: @scheme[define]}
+@title[#:tag "define"]{Definitions: @racket[define]}
A basic definition has the form
@specform[(define id expr)]{}
-in which case @scheme[_id] is bound to the result of
-@scheme[_expr].
+in which case @racket[_id] is bound to the result of
+@racket[_expr].
@defexamples[
#:eval def-eval
@@ -23,14 +23,14 @@ salutation
@;------------------------------------------------------------------------
@section{Function Shorthand}
-The @scheme[define] form also supports a shorthand for function
+The @racket[define] form also supports a shorthand for function
definitions:
@specform[(define (id arg ...) body ...+)]{}
which is a shorthand for
-@schemeblock[
+@racketblock[
(define _id (lambda (_arg ...) _body ...+))
]
@@ -50,7 +50,7 @@ which is a shorthand for
(greet "John" "Doe")
]
-The function shorthand via @scheme[define] also supports a ``rest''
+The function shorthand via @racket[define] also supports a ``rest''
argument (i.e., a final argument to collect extra arguments in a
list):
@@ -58,7 +58,7 @@ list):
which is a shorthand
-@schemeblock[
+@racketblock[
(define _id (lambda (_arg ... . _rest-id) _body ...+))
]
@@ -72,7 +72,7 @@ which is a shorthand
@;------------------------------------------------------------------------
@section{Curried Function Shorthand}
-Consider the following @scheme[make-add-suffix] function that takes a
+Consider the following @racket[make-add-suffix] function that takes a
string and returns another function that takes a string:
@def+int[
@@ -82,7 +82,7 @@ string and returns another function that takes a string:
(lambda (s) (string-append s s2))))
]
-Although it's not common, result of @scheme[make-add-suffix] could be
+Although it's not common, result of @racket[make-add-suffix] could be
called directly, like this:
@interaction[
@@ -90,21 +90,21 @@ called directly, like this:
((make-add-suffix "!") "hello")
]
-In a sense, @scheme[make-add-suffix] is a function takes two
+In a sense, @racket[make-add-suffix] is a function takes two
arguments, but it takes them one at a time. A function that takes some
of its arguments and returns a function to consume more is sometimes
called a @defterm{curried function}.
-Using the function-shorthand form of @scheme[define],
-@scheme[make-add-suffix] can be written equivalently as
+Using the function-shorthand form of @racket[define],
+@racket[make-add-suffix] can be written equivalently as
-@schemeblock[
+@racketblock[
(define (make-add-suffix s2)
(lambda (s) (string-append s s2)))
]
This shorthand reflects the shape of the function call
-@scheme[(make-add-suffix "!")]. The @scheme[define] form further
+@racket[(make-add-suffix "!")]. The @racket[define] form further
supports a shorthand for defining curried functions that reflects
nested function calls:
@@ -122,26 +122,26 @@ nested function calls:
(louder "really")
]
-The full syntax of the function shorthand for @scheme[define] is as follows:
+The full syntax of the function shorthand for @racket[define] is as follows:
@specform/subs[(define (head args) body ...+)
([head id
(head args)]
[args (code:line arg ...)
- (code:line arg ... @#,schemeparenfont{.} rest-id)])]{}
+ (code:line arg ... @#,racketparenfont{.} rest-id)])]{}
-The expansion of this shorthand has one nested @scheme[lambda] form
-for each @scheme[_head] in the definition, where the innermost
-@scheme[_head] corresponds to the outermost @scheme[lambda].
+The expansion of this shorthand has one nested @racket[lambda] form
+for each @racket[_head] in the definition, where the innermost
+@racket[_head] corresponds to the outermost @racket[lambda].
@;------------------------------------------------------------------------
-@section[#:tag "multiple-values"]{Multiple Values and @scheme[define-values]}
+@section[#:tag "multiple-values"]{Multiple Values and @racket[define-values]}
-A Scheme expression normally produces a single result, but some
+A Racket expression normally produces a single result, but some
expressions can produce multiple results. For example,
-@scheme[quotient] and @scheme[remainder] each produce a single value,
-but @scheme[quotient/remainder] produces the same two values at once:
+@racket[quotient] and @racket[remainder] each produce a single value,
+but @racket[quotient/remainder] produces the same two values at once:
@interaction[
#:eval def-eval
@@ -154,7 +154,7 @@ As shown above, the @tech{REPL} prints each result value on its own
line.
Multiple-valued functions can be implemented in terms of the
-@scheme[values] function, which takes any number of values and
+@racket[values] function, which takes any number of values and
returns them as the results:
@interaction[
@@ -171,13 +171,13 @@ returns them as the results:
(split-name "Adam Smith")
]
-The @scheme[define-values] form binds multiple identifiers at once to
+The @racket[define-values] form binds multiple identifiers at once to
multiple results produced from a single expression:
@specform[(define-values (id ...) expr)]{}
-The number of results produced by the @scheme[_expr] must match the
-number of @scheme[_id]s.
+The number of results produced by the @racket[_expr] must match the
+number of @racket[_id]s.
@defexamples[
#:eval def-eval
@@ -186,23 +186,23 @@ given
surname
]
-A @scheme[define] form (that is not a function shorthand) is
-equivalent to a @scheme[define-values] form with a single @scheme[_id].
+A @racket[define] form (that is not a function shorthand) is
+equivalent to a @racket[define-values] form with a single @racket[_id].
@refdetails["define"]{definitions}
@;------------------------------------------------------------------------
@section[#:tag "intdefs"]{Internal Definitions}
-When the grammar for a syntactic form specifies @scheme[_body], then
+When the grammar for a syntactic form specifies @racket[_body], then
the corresponding form can be either a definition or an expression.
-A definition as a @scheme[_body] is an @defterm{internal definition}.
+A definition as a @racket[_body] is an @defterm{internal definition}.
-All internal definitions in a @scheme[_body] sequence must appear
-before any expression, and the last @scheme[_body] must be an
+All internal definitions in a @racket[_body] sequence must appear
+before any expression, and the last @racket[_body] must be an
expression.
-For example, the syntax of @scheme[lambda] is
+For example, the syntax of @racket[lambda] is
@specform[
(lambda gen-formals
@@ -211,7 +211,7 @@ For example, the syntax of @scheme[lambda] is
so the following are valid instances of the grammar:
-@schemeblock[
+@racketblock[
(lambda (f) (code:comment @#,elem{no definitions})
(printf "running\n")
(f 0))
@@ -236,7 +236,7 @@ so the following are valid instances of the grammar:
(call f n))
]
-Internal definitions in a particular @scheme[_body] sequence are
+Internal definitions in a particular @racket[_body] sequence are
mutually recursive; that is, any definition can refer to any other
definition---as long as the reference isn't actually evaluated before
its definition takes place. If a definition is referenced too early,
@@ -249,11 +249,11 @@ the result is a special value @|undefined-const|.
(weird)
]
-A sequence of internal definitions using just @scheme[define] is
-easily translated to an equivalent @scheme[letrec] form (as introduced
+A sequence of internal definitions using just @racket[define] is
+easily translated to an equivalent @racket[letrec] form (as introduced
in the next section). However, other definition forms can appear as a
-@scheme[_body], including @scheme[define-values], @scheme[define-struct] (see
-@secref["define-struct"]) or @scheme[define-syntax] (see
+@racket[_body], including @racket[define-values], @racket[struct] (see
+@secref["define-struct"]) or @racket[define-syntax] (see
@secref["macros"]).
@refdetails/gory["intdef-body"]{internal definitions}
diff --git a/collects/scribblings/guide/forms.scrbl b/collects/scribblings/guide/forms.scrbl
index c2b24b2339..4218c69418 100644
--- a/collects/scribblings/guide/forms.scrbl
+++ b/collects/scribblings/guide/forms.scrbl
@@ -5,7 +5,7 @@
@title[#:tag "scheme-forms" #:style 'toc]{Expressions and Definitions}
-The @secref["to-scheme"] chapter introduced some of Scheme's syntactic
+The @secref["to-scheme"] chapter introduced some of Racket's syntactic
forms: definitions, procedure applications, conditionals, and so
on. This section provides more details on those forms, plus a few
additional basic forms.
@@ -17,32 +17,32 @@ additional basic forms.
This chapter (and the rest of the documentation) uses a slightly
different notation than the character-based grammars of the
@secref["to-scheme"] chapter. The grammar for a use of a syntactic
-form @schemekeywordfont{something} is shown like this:
+form @racketkeywordfont{something} is shown like this:
-@specform[(#,(schemekeywordfont "something") [id ...+] an-expr ...)]
+@specform[(#,(racketkeywordfont "something") [id ...+] an-expr ...)]
The italicized meta-variables in this specification, such as
-@scheme[_id] and @scheme[_an-expr], use the syntax of Scheme
-identifiers, so @scheme[_an-expr] is one meta-variable. A naming
+@racket[_id] and @racket[_an-expr], use the syntax of Racket
+identifiers, so @racket[_an-expr] is one meta-variable. A naming
convention implicitly defines the meaning of many meta-variables:
@itemize[
- @item{A meta-variable that ends in @scheme[_id] stands for an
- identifier, such as @schemeidfont{x} or
- @schemeidfont{my-favorite-martian}.}
+ @item{A meta-variable that ends in @racket[_id] stands for an
+ identifier, such as @racketidfont{x} or
+ @racketidfont{my-favorite-martian}.}
- @item{A meta-identifier that ends in @scheme[_keyword] stands
- for a keyword, such as @scheme[#:tag].}
+ @item{A meta-identifier that ends in @racket[_keyword] stands
+ for a keyword, such as @racket[#:tag].}
- @item{A meta-identifier that ends with @scheme[_expr] stands for any
+ @item{A meta-identifier that ends with @racket[_expr] stands for any
sub-form, and it will be parsed as an expression.}
- @item{A meta-identifier that ends with @scheme[_body] stands for any
+ @item{A meta-identifier that ends with @racket[_body] stands for any
sub-form; it will be parsed as either a local definition or an
- expression. A @scheme[_body] can parse as a definition only if
+ expression. A @racket[_body] can parse as a definition only if
it is not preceded by any expression, and the last
- @scheme[_body] must be an expression; see also @secref["intdefs"].}
+ @racket[_body] must be an expression; see also @secref["intdefs"].}
]
@@ -51,18 +51,18 @@ forms, where square brackets are normally used (by convention). That
is, square brackets @italic{do not} mean optional parts of the
syntactic form.
-A @schememetafont{...} indicates zero or more repetitions of the
-preceding form, and @schememetafont{...+} indicates one or more
+A @racketmetafont{...} indicates zero or more repetitions of the
+preceding form, and @racketmetafont{...+} indicates one or more
repetitions of the preceding datum. Otherwise, non-italicized
identifiers stand for themselves.
Based on the above grammar, then, here are a few conforming uses of
-@schemekeywordfont{something}:
+@racketkeywordfont{something}:
-@schemeblock[
-(#,(schemekeywordfont "something") [x])
-(#,(schemekeywordfont "something") [x] (+ 1 2))
-(#,(schemekeywordfont "something") [x my-favorite-martian x] (+ 1 2) #f)
+@racketblock[
+(#,(racketkeywordfont "something") [x])
+(#,(racketkeywordfont "something") [x] (+ 1 2))
+(#,(racketkeywordfont "something") [x my-favorite-martian x] (+ 1 2) #f)
]
Some syntactic-form specifications refer to meta-variables that are
@@ -70,12 +70,12 @@ not implicitly defined and not previously defined. Such meta-variables
are defined after the main form, using a BNF-like format for
alternatives:
-@specform/subs[(#,(schemekeywordfont "something-else") [thing ...+] an-expr ...)
+@specform/subs[(#,(racketkeywordfont "something-else") [thing ...+] an-expr ...)
([thing thing-id
thing-keyword])]
-The above example says that, within a @schemekeywordfont{something-else}
-form, a @scheme[_thing] is either an identifier or a keyword.
+The above example says that, within a @racketkeywordfont{something-else}
+form, a @racket[_thing] is either an identifier or a keyword.
@;------------------------------------------------------------------------
diff --git a/collects/scribblings/guide/guide-utils.ss b/collects/scribblings/guide/guide-utils.rkt
similarity index 93%
rename from collects/scribblings/guide/guide-utils.ss
rename to collects/scribblings/guide/guide-utils.rkt
index 66728a4567..d4f82e9457 100644
--- a/collects/scribblings/guide/guide-utils.ss
+++ b/collects/scribblings/guide/guide-utils.rkt
@@ -1,12 +1,12 @@
-(module guide-utils scheme/base
+(module guide-utils racket/base
(require scribble/manual
scribble/struct
scribble/decode
scribble/eval
"../icons.ss")
- (require (for-label scheme/base))
- (provide (for-label (all-from-out scheme/base)))
+ (require (for-label racket/base))
+ (provide (for-label (all-from-out racket/base)))
(provide Quick MzScheme HtDP
tool
diff --git a/collects/scribblings/guide/guide.scrbl b/collects/scribblings/guide/guide.scrbl
index a180cd03fc..c0f41600dc 100644
--- a/collects/scribblings/guide/guide.scrbl
+++ b/collects/scribblings/guide/guide.scrbl
@@ -2,19 +2,18 @@
@(require scribble/eval
"guide-utils.ss")
-@title{@bold{Guide}: PLT Scheme}
+@title{@bold{Guide}: Racket}
@author["Matthew Flatt" "Robert Bruce Findler" "PLT"]
-This guide is intended for programmers who are new to Scheme, new to PLT
-Scheme, or new to some part of PLT Scheme. It assumes
-programming experience, so if you are new to programming, consider
-instead reading @|HtDP|. If you want a brief introduction to PLT
-Scheme, start with @|Quick|.
+This guide is intended for programmers who are new to Racket or new to
+some part of Racket. It assumes programming experience, so if you are
+new to programming, consider instead reading @|HtDP|. If you want an
+especially quick introduction to Racket, start with @|Quick|.
@seclink["to-scheme"]{Chapter 2} provides a brief introduction to
-Scheme. From @seclink["datatypes"]{Chapter 3} on, this guide dives
-into details---covering much of the PLT Scheme toolbox, but leaving
+Racket. From @seclink["datatypes"]{Chapter 3} on, this guide dives
+into details---covering much of the Racket toolbox, but leaving
precise details to @|MzScheme| and other reference manuals.
@table-of-contents[]
diff --git a/collects/scribblings/guide/info.ss b/collects/scribblings/guide/info.rkt
similarity index 100%
rename from collects/scribblings/guide/info.ss
rename to collects/scribblings/guide/info.rkt
diff --git a/collects/scribblings/guide/keywords.scrbl b/collects/scribblings/guide/keywords.scrbl
index 606c9e2f25..20b8b89ef7 100644
--- a/collects/scribblings/guide/keywords.scrbl
+++ b/collects/scribblings/guide/keywords.scrbl
@@ -22,7 +22,7 @@ way that an identifier can be quoted to produce a symbol, a keyword
can be quoted to produce a value. The same term ``keyword'' is used in
both cases, but we sometimes use @defterm{keyword value} to refer more
specifically to the result of a quote-keyword expression or of
-@scheme[string->keyword]. An unquoted keyword is not an expression,
+@racket[string->keyword]. An unquoted keyword is not an expression,
just as an unquoted identifier does not produce a symbol:
@examples[
@@ -37,12 +37,12 @@ run-time flags and enumerations, use symbols instead of keywords. The
example below illustrates the distinct roles of keywords and symbols.
@examples[
-(code:line (define dir (find-system-path 'temp-dir)) (code:comment @#,t{not @scheme['#:temp-dir]}))
+(code:line (define dir (find-system-path 'temp-dir)) (code:comment @#,t{not @racket['#:temp-dir]}))
(with-output-to-file (build-path dir "stuff.txt")
(lambda () (printf "example\n"))
- (code:comment @#,t{optional @scheme[#:mode] argument can be @scheme['text] or @scheme['binary]})
+ (code:comment @#,t{optional @racket[#:mode] argument can be @racket['text] or @racket['binary]})
#:mode 'text
- (code:comment @#,t{optional @scheme[#:exists] argument can be @scheme['replace], @scheme['truncate], ...})
+ (code:comment @#,t{optional @racket[#:exists] argument can be @racket['replace], @racket['truncate], ...})
#:exists 'replace)
]
diff --git a/collects/scribblings/guide/lambda.scrbl b/collects/scribblings/guide/lambda.scrbl
index 1431cb32a5..625e74e12d 100644
--- a/collects/scribblings/guide/lambda.scrbl
+++ b/collects/scribblings/guide/lambda.scrbl
@@ -5,17 +5,17 @@
@(define greet-eval (make-base-eval))
-@title[#:tag "lambda"]{Functions@aux-elem{ (Procedures)}: @scheme[lambda]}
+@title[#:tag "lambda"]{Functions@aux-elem{ (Procedures)}: @racket[lambda]}
-A @scheme[lambda] expression creates a function. In the simplest
-case, a @scheme[lambda] expression has the form
+A @racket[lambda] expression creates a function. In the simplest
+case, a @racket[lambda] expression has the form
@specform[
(lambda (arg-id ...)
body ...+)
]
-A @scheme[lambda] form with @math{n} @scheme[_arg-id]s accepts
+A @racket[lambda] form with @math{n} @racket[_arg-id]s accepts
@math{n} arguments:
@interaction[
@@ -28,19 +28,19 @@ A @scheme[lambda] form with @math{n} @scheme[_arg-id]s accepts
]
@;------------------------------------------------------------------------
-@section{Declaring a Rest Argument}
+@section[#:tag "rest-args"]{Declaring a Rest Argument}
-A @scheme[lambda] expression can also have the form
+A @racket[lambda] expression can also have the form
@specform[
(lambda rest-id
body ...+)
]
-That is, a @scheme[lambda] expression can have a single
-@scheme[_rest-id] that is not surrounded by parentheses. The resulting
+That is, a @racket[lambda] expression can have a single
+@racket[_rest-id] that is not surrounded by parentheses. The resulting
function accepts any number of arguments, and the arguments are put
-into a list bound to @scheme[_rest-id].
+into a list bound to @racket[_rest-id].
@examples[
((lambda x x)
@@ -50,10 +50,10 @@ into a list bound to @scheme[_rest-id].
1 2 3)
]
-Functions with a @scheme[_rest-id] often use @scheme[apply] to call
+Functions with a @racket[_rest-id] often use @racket[apply] to call
another function that accepts any number of arguments.
-@guideother{@secref["apply"] describes @scheme[apply].}
+@guideother{@secref["apply"] describes @racket[apply].}
@defexamples[
(define max-mag
@@ -64,8 +64,8 @@ another function that accepts any number of arguments.
(max-mag 1 -2 0)
]
-The @scheme[lambda] form also supports required arguments combined
-with a @scheme[_rest-id]:
+The @racket[lambda] form also supports required arguments combined
+with a @racket[_rest-id]:
@specform[
(lambda (arg-id ...+ . rest-id)
@@ -73,7 +73,7 @@ with a @scheme[_rest-id]:
]
The result of this form is a function that requires at least as many
-arguments as @scheme[_arg-id]s, and also accepts any number of
+arguments as @racket[_arg-id]s, and also accepts any number of
additional arguments.
@defexamples[
@@ -85,14 +85,14 @@ additional arguments.
(max-mag)
]
-A @scheme[_rest-id] variable is sometimes called a @defterm{rest
+A @racket[_rest-id] variable is sometimes called a @defterm{rest
argument}, because it accepts the ``rest'' of the function arguments.
@;------------------------------------------------------------------------
@section{Declaring Optional Arguments}
Instead of just an identifier, an argument (other than a rest
-argument) in a @scheme[lambda] form can be specified with an
+argument) in a @racket[lambda] form can be specified with an
identifier and a default value:
@specform/subs[
@@ -105,11 +105,11 @@ identifier and a default value:
[arg-id default-expr]])
]{}
-A argument of the form @scheme[[arg-id default-expr]] is
+A argument of the form @racket[[arg-id default-expr]] is
optional. When the argument is not supplied in an application,
-@scheme[_default-expr] produces the default value. The
-@scheme[_default-expr] can refer to any preceding @scheme[_arg-id],
-and every following @scheme[_arg-id] must have a default as well.
+@racket[_default-expr] produces the default value. The
+@racket[_default-expr] can refer to any preceding @racket[_arg-id],
+and every following @racket[_arg-id] must have a default as well.
@defexamples[
(define greet
@@ -133,7 +133,7 @@ and every following @scheme[_arg-id] must have a default as well.
@section[#:tag "lambda-keywords"]{Declaring Keyword Arguments}
-A @scheme[lambda] form can declare an argument to be passed by
+A @racket[lambda] form can declare an argument to be passed by
keyword, instead of position. Keyword arguments can be mixed with
by-position arguments, and default-value expressions can be supplied
for either kind of argument:
@@ -153,8 +153,8 @@ calls with keywords.}
(code:line arg-keyword [arg-id default-expr])])
]{}
-An argument specified as @scheme[(code:line _arg-keyword _arg-id)] is
-supplied by an application using the same @scheme[_arg-keyword]. The
+An argument specified as @racket[(code:line _arg-keyword _arg-id)] is
+supplied by an application using the same @racket[_arg-keyword]. The
position of the keyword--identifier pair in the argument list does not
matter for matching with arguments in an application, because it will
be matched to an argument value by keyword instead of by position.
@@ -168,7 +168,7 @@ be matched to an argument value by keyword instead of by position.
(greet #:last "Doe" "John")
]
-An @scheme[(code:line _arg-keyword [_arg-id _default-expr])] argument
+An @racket[(code:line _arg-keyword [_arg-id _default-expr])] argument
specifies a keyword-based argument with a default value.
@defexamples[
@@ -183,16 +183,16 @@ specifies a keyword-based argument with a default value.
(greet "Karl" #:last "Marx" #:hi "Guten Tag")
]
-The @scheme[lambda] form does not directly support the creation
+The @racket[lambda] form does not directly support the creation
of a function that accepts ``rest'' keywords. To construct a
function that accepts all keyword arguments, use
-@scheme[make-keyword-procedure]. The function supplied to
-@scheme[make-keyword-procedure] receives keyword arguments
+@racket[make-keyword-procedure]. The function supplied to
+@racket[make-keyword-procedure] receives keyword arguments
through parallel lists in the first two (by-position) arguments,
and then all by-position arguments from an application as the
remaining by-position arguments.
-@guideother{@secref["apply"] introduces @scheme[keyword-apply].}
+@guideother{@secref["apply"] introduces @racket[keyword-apply].}
@defexamples[
#:eval greet-eval
@@ -207,9 +207,9 @@ remaining by-position arguments.
@refdetails["lambda"]{function expressions}
@;------------------------------------------------------------------------
-@section{Arity-Sensitive Functions: @scheme[case-lambda]}
+@section[#:tag "case-lambda"]{Arity-Sensitive Functions: @racket[case-lambda]}
-The @scheme[case-lambda] form creates a function that can have
+The @racket[case-lambda] form creates a function that can have
completely different behaviors depending on the number of arguments
that are supplied. A case-lambda expression has the form
@@ -222,9 +222,9 @@ that are supplied. A case-lambda expression has the form
(arg-id ...+ . rest-id)])
]
-where each @scheme[[_formals _body ...+]] is analogous to @scheme[(lambda
+where each @racket[[_formals _body ...+]] is analogous to @racket[(lambda
_formals _body ...+)]. Applying a function produced by
-@scheme[case-lambda] is like applying a @scheme[lambda] for the first
+@racket[case-lambda] is like applying a @racket[lambda] for the first
case that matches the number of given arguments.
@defexamples[
@@ -238,7 +238,7 @@ case that matches the number of given arguments.
(greet)
]
-A @scheme[case-lambda] function cannot directly support optional or
+A @racket[case-lambda] function cannot directly support optional or
keyword arguments.
@; ----------------------------------------------------------------------
diff --git a/collects/scribblings/guide/let.scrbl b/collects/scribblings/guide/let.scrbl
index 1fad25b702..221e6a6457 100644
--- a/collects/scribblings/guide/let.scrbl
+++ b/collects/scribblings/guide/let.scrbl
@@ -5,24 +5,24 @@
@title[#:tag "let"]{Local Binding}
-Although internal @scheme[define]s can be used for local binding,
-Scheme provides three forms that give the programmer more
-control over bindings: @scheme[let], @scheme[let*], and
-@scheme[letrec].
+Although internal @racket[define]s can be used for local binding,
+Racket provides three forms that give the programmer more
+control over bindings: @racket[let], @racket[let*], and
+@racket[letrec].
@;------------------------------------------------------------------------
-@section{Parallel Binding: @scheme[let]}
+@section{Parallel Binding: @racket[let]}
-@refalso["let"]{@scheme[let]}
+@refalso["let"]{@racket[let]}
-A @scheme[let] form binds a set of identifiers, each to the result of
-some expression, for use in the @scheme[let] body:
+A @racket[let] form binds a set of identifiers, each to the result of
+some expression, for use in the @racket[let] body:
@specform[(let ([id expr] ...) body ...+)]{}
-The @scheme[_id]s are bound ``in parallel.'' That is, no @scheme[_id]
-is bound in the right-hand side @scheme[_expr] for any @scheme[_id],
-but all are available in the @scheme[_body]. The @scheme[_id]s must be
+The @racket[_id]s are bound ``in parallel.'' That is, no @racket[_id]
+is bound in the right-hand side @racket[_expr] for any @racket[_id],
+but all are available in the @racket[_body]. The @racket[_id]s must be
different from each other.
@examples[
@@ -37,7 +37,7 @@ different from each other.
me)
]
-The fact that an @scheme[_id]'s @scheme[_expr] does not see its own
+The fact that an @racket[_id]'s @racket[_expr] does not see its own
binding is often useful for wrappers that must refer back to the old
value:
@@ -45,12 +45,12 @@ value:
(let ([+ (lambda (x y)
(if (string? x)
(string-append x y)
- (+ x y)))]) (code:comment @#,t{use original @scheme[+]})
+ (+ x y)))]) (code:comment @#,t{use original @racket[+]})
(list (+ 1 2)
(+ "see" "saw")))
]
-Occasionally, the parallel nature of @scheme[let] bindings is
+Occasionally, the parallel nature of @racket[let] bindings is
convenient for swapping or rearranging a set of bindings:
@interaction[
@@ -61,23 +61,23 @@ convenient for swapping or rearranging a set of bindings:
(list me you)))
]
-The characterization of @scheme[let] bindings as ``parallel'' is not
-meant to imply concurrent evaluation. The @scheme[_expr]s are
+The characterization of @racket[let] bindings as ``parallel'' is not
+meant to imply concurrent evaluation. The @racket[_expr]s are
evaluated in order, even though the bindings are delayed until all
-@scheme[_expr]s are evaluated.
+@racket[_expr]s are evaluated.
@;------------------------------------------------------------------------
-@section{Sequential Binding: @scheme[let*]}
+@section{Sequential Binding: @racket[let*]}
-@refalso["let"]{@scheme[let*]}
+@refalso["let"]{@racket[let*]}
-The syntax of @scheme[let*] is the same as @scheme[let]:
+The syntax of @racket[let*] is the same as @racket[let]:
@specform[(let* ([id expr] ...) body ...+)]{}
-The difference is that each @scheme[_id] is available for use in later
-@scheme[_expr]s, as well as in the @scheme[_body]. Furthermore, the
-@scheme[_id]s need not be distinct, and the most recent binding is the
+The difference is that each @racket[_id] is available for use in later
+@racket[_expr]s, as well as in the @racket[_body]. Furthermore, the
+@racket[_id]s need not be distinct, and the most recent binding is the
visible one.
@examples[
@@ -91,8 +91,8 @@ visible one.
name)
]
-In other words, a @scheme[let*] form is equivalent to nested
-@scheme[let] forms, each with a single binding:
+In other words, a @racket[let*] form is equivalent to nested
+@racket[let] forms, each with a single binding:
@interaction[
(let ([name (list "Borroughs")])
@@ -102,22 +102,22 @@ In other words, a @scheme[let*] form is equivalent to nested
]
@;------------------------------------------------------------------------
-@section{Recursive Binding: @scheme[letrec]}
+@section{Recursive Binding: @racket[letrec]}
-@refalso["let"]{@scheme[letrec]}
+@refalso["let"]{@racket[letrec]}
-The syntax of @scheme[letrec] is also the same as @scheme[let]:
+The syntax of @racket[letrec] is also the same as @racket[let]:
@specform[(letrec ([id expr] ...) body ...+)]{}
-While @scheme[let] makes its bindings available only in the
-@scheme[_body]s, and @scheme[let*] makes its bindings available to any
-later binding @scheme[_expr], @scheme[letrec] makes its bindings
-available to all other @scheme[_expr]s---even earlier ones. In other
-words, @scheme[letrec] bindings are recursive.
+While @racket[let] makes its bindings available only in the
+@racket[_body]s, and @racket[let*] makes its bindings available to any
+later binding @racket[_expr], @racket[letrec] makes its bindings
+available to all other @racket[_expr]s---even earlier ones. In other
+words, @racket[letrec] bindings are recursive.
-The @scheme[_expr]s in a @scheme[letrec] form are most often
-@scheme[lambda] forms for recursive and mutually recursive functions:
+The @racket[_expr]s in a @racket[letrec] form are most often
+@racket[lambda] forms for recursive and mutually recursive functions:
@interaction[
(letrec ([swing
@@ -145,11 +145,11 @@ The @scheme[_expr]s in a @scheme[letrec] form are most often
(tarzan-in-tree? "tmp" (find-system-path 'temp-dir)))
]
-While the @scheme[_expr]s of a @scheme[letrec] form are typically
-@scheme[lambda] expressions, they can be any expression. The
+While the @racket[_expr]s of a @racket[letrec] form are typically
+@racket[lambda] expressions, they can be any expression. The
expressions are evaluated in order, and after each value is obtained,
-it is immediately associated with its corresponding @scheme[_id]. If
-an @scheme[_id] is referenced before its value is ready, the result is
+it is immediately associated with its corresponding @racket[_id]. If
+an @racket[_id] is referenced before its value is ready, the result is
@|undefined-const|, as just as for internal definitions.
@interaction[
@@ -161,14 +161,14 @@ an @scheme[_id] is referenced before its value is ready, the result is
@include-section["named-let.scrbl"]
@; ----------------------------------------
-@section{Multiple Values: @scheme[let-values], @scheme[let*-values], @scheme[letrec-values]}
+@section{Multiple Values: @racket[let-values], @racket[let*-values], @racket[letrec-values]}
@refalso["let"]{multiple-value binding forms}
-In the same way that @scheme[define-values] binds multiple
+In the same way that @racket[define-values] binds multiple
results in a definition (see @secref["multiple-values"]),
-@scheme[let-values], @scheme[let*-values], and
-@scheme[letrec-values] bind multiple results locally.
+@racket[let-values], @racket[let*-values], and
+@racket[letrec-values] bind multiple results locally.
@specform[(let-values ([(id ...) expr] ...)
body ...+)]
@@ -177,13 +177,13 @@ results in a definition (see @secref["multiple-values"]),
@specform[(letrec-values ([(id ...) expr] ...)
body ...+)]
-Each @scheme[_expr] must produce as many values as corresponding
-@scheme[_id]s. The binding rules are the same for the forms
-without @schemekeywordfont{-values} forms: the @scheme[_id]s of
-@scheme[let-values] are bound only in the @scheme[_body]s, the
-@scheme[_id]s of @scheme[let*-values]s are bound in
-@scheme[_expr]s of later clauses, and the @scheme[_id]s of
-@scheme[letrec-value]s are bound for all @scheme[_expr]s.
+Each @racket[_expr] must produce as many values as corresponding
+@racket[_id]s. The binding rules are the same for the forms
+without @racketkeywordfont{-values} forms: the @racket[_id]s of
+@racket[let-values] are bound only in the @racket[_body]s, the
+@racket[_id]s of @racket[let*-values]s are bound in
+@racket[_expr]s of later clauses, and the @racket[_id]s of
+@racket[letrec-value]s are bound for all @racket[_expr]s.
@examples[
(let-values ([(q r) (quotient/remainder 14 3)])
diff --git a/collects/scribblings/guide/lists.scrbl b/collects/scribblings/guide/lists.scrbl
index 627d9549ad..8400bc0ece 100644
--- a/collects/scribblings/guide/lists.scrbl
+++ b/collects/scribblings/guide/lists.scrbl
@@ -2,35 +2,35 @@
@(require scribble/manual
scribble/eval
scribble/bnf
- scheme/list
- (for-label scheme/list)
+ racket/list
+ (for-label racket/list)
"guide-utils.ss")
@(define step @elem{=})
@(define list-eval (make-base-eval))
-@(interaction-eval #:eval list-eval (require scheme/list))
+@(interaction-eval #:eval list-eval (require racket/list))
@title{Lists, Iteration, and Recursion}
-Scheme is a dialect of the language Lisp, whose name originally stood
+Racket is a dialect of the language Lisp, whose name originally stood
for ``LISt Processor.'' The built-in list datatype remains a prominent
feature of the language.
-The @scheme[list] function takes any number of values and returns
+The @racket[list] function takes any number of values and returns
a list containing the values:
@interaction[(list "red" "green" "blue")
(list 1 2 3 4 5)]
-As you can see, a list result prints in the @tech{REPL} as a pair of
-parentheses wrapped around the printed form of the list
-elements. There's an opportunity for confusion here, because
-parentheses are used for both expressions, such as @scheme[(list "red"
-"green" "blue")], and printed results, such as @schemeresult[("red"
-"green" "blue")]. Remember that, in the documentation and in
-DrScheme, parentheses for results are printed in blue, whereas
-parentheses for expressions are brown.
+As you can see, a list result prints in the @tech{REPL} as a backquote
+@litchar{`} and then a pair of parentheses wrapped around the printed
+form of the list elements. There's an opportunity for confusion here,
+because parentheses are used for both expressions, such as
+@racket[(list "red" "green" "blue")], and printed results, such as
+@racketresult['("red" "green" "blue")]. In addition to the backquote,
+parentheses for results are printed in blue in the documentation and
+in DrRacket, whereas parentheses for expressions are brown.
Many predefined functions operate on lists. Here are a few examples:
@@ -46,15 +46,15 @@ Many predefined functions operate on lists. Here are a few examples:
@;------------------------------------------------------------------------
@section{Predefined List Loops}
-In addition to simple operations like @scheme[append], Scheme includes
+In addition to simple operations like @racket[append], Racket includes
functions that iterate over the elements of a list. These iteration
-functions play much the same role as @tt{for} in Java and other
-languages. The body of a Scheme iteration is packaged into a function
-to be applied to each element, so the @scheme[lambda] form becomes
+functions play a role similar to @racket[for] in Java, Racket, and other
+languages. The body of a Racket iteration is packaged into a function
+to be applied to each element, so the @racket[lambda] form becomes
particularly handy in combination with iteration functions.
Different list-iteration functions combine iteration results in
-different ways. The @scheme[map] function uses the per-element
+different ways. The @racket[map] function uses the per-element
results to create a new list:
@interaction[
@@ -64,8 +64,8 @@ results to create a new list:
(list "peanuts" "popcorn" "crackerjack"))
]
-The @scheme[andmap] and @scheme[ormap] functions combine the results
-by @scheme[and]ing or @scheme[or]ing:
+The @racket[andmap] and @racket[ormap] functions combine the results
+by @racket[and]ing or @racket[or]ing:
@interaction[
(andmap string? (list "a" "b" "c"))
@@ -73,15 +73,15 @@ by @scheme[and]ing or @scheme[or]ing:
(ormap number? (list "a" "b" 6))
]
-The @scheme[filter] function keeps elements for which the body result
-is true, and discards elements for which it is @scheme[#f]:
+The @racket[filter] function keeps elements for which the body result
+is true, and discards elements for which it is @racket[#f]:
@interaction[
(filter string? (list "a" "b" 6))
(filter positive? (list 1 -2 6 7 0))
]
-The @scheme[map], @scheme[andmap], @scheme[ormap], and @scheme[filter]
+The @racket[map], @racket[andmap], @racket[ormap], and @racket[filter]
functions can all handle multiple lists, instead of just a single
list. The lists must all have the same length, and the given function
must accept one argument for each list:
@@ -92,7 +92,7 @@ must accept one argument for each list:
(list 6 3 7))
]
-The @scheme[foldl] function generalizes some iteration functions. It
+The @racket[foldl] function generalizes some iteration functions. It
uses the per-element function to both process an element and combine
it with the ``current'' value, so the per-element function takes an
extra first argument. Also, a starting ``current'' value must be
@@ -105,31 +105,31 @@ provided before the lists:
'(1 2 3))
]
-Despite its generality, @scheme[foldl] is not as popular as the other
-functions. One reason is that @scheme[map], @scheme[ormap],
-@scheme[andmap], and @scheme[filter] cover the most common kinds of
+Despite its generality, @racket[foldl] is not as popular as the other
+functions. One reason is that @racket[map], @racket[ormap],
+@racket[andmap], and @racket[filter] cover the most common kinds of
list loops.
-Scheme provides a general @defterm{list comprehension} form
-@scheme[for/list], which builds a list by iterating through
+Racket provides a general @defterm{list comprehension} form
+@racket[for/list], which builds a list by iterating through
@defterm{sequences}. List comprehensions and related iteration forms
are described in see @secref["for"].
@;------------------------------------------------------------------------
@section{List Iteration from Scratch}
-Although @scheme[map] and other iteration functions predefined, they
+Although @racket[map] and other iteration functions predefined, they
are not primitive in any interesting sense. You can write equivalent
iterations using a handful of list primitives.
-Since a Scheme list is a linked list, the two core operations on a
+Since a Racket list is a linked list, the two core operations on a
non-empty list are
@itemize[
- @item{@scheme[first]: get the first thing in the list; and}
+ @item{@racket[first]: get the first thing in the list; and}
- @item{@scheme[rest]: get the rest of the list.}
+ @item{@racket[rest]: get the rest of the list.}
]
@@ -140,9 +140,9 @@ non-empty list are
]
To create a new node for a linked list---that is, to add to the front
-of the list---use the @scheme[cons] function, which is short for
+of the list---use the @racket[cons] function, which is short for
``construct.'' To get an empty list to start with, use the
-@scheme[empty] constant:
+@racket[empty] constant:
@interaction[
#:eval list-eval
@@ -152,9 +152,9 @@ empty
]
To process a list, you need to be able to distinguish empty lists from
-non-empty lists, because @scheme[first] and @scheme[rest] work only on
-non-empty lists. The @scheme[empty?] function detects empty lists,
-and @scheme[cons?] detects non-empty lists:
+non-empty lists, because @racket[first] and @racket[rest] work only on
+non-empty lists. The @racket[empty?] function detects empty lists,
+and @racket[cons?] detects non-empty lists:
@interaction[
#:eval list-eval
@@ -165,7 +165,7 @@ and @scheme[cons?] detects non-empty lists:
]
With these pieces, you can write your own versions of the
-@scheme[length] function, @scheme[map] function, and more.
+@racket[length] function, @racket[map] function, and more.
@defexamples[
#:eval list-eval
@@ -193,11 +193,11 @@ of recursive calls instead of a looping construct, then read on.
@;------------------------------------------------------------------------
@section[#:tag "tail-recursion"]{Tail Recursion}
-Both the @scheme[my-length] and @scheme[my-map] functions run in
+Both the @racket[my-length] and @racket[my-map] functions run in
@math{O(n)} time for a list of length @math{n}. This is easy to see by
-imagining how @scheme[(my-length (list "a" "b" "c"))] must evaluate:
+imagining how @racket[(my-length (list "a" "b" "c"))] must evaluate:
-@schemeblock[
+@racketblock[
#||# (my-length (list "a" "b" "c"))
#,step (+ 1 (my-length (list "b" "c")))
#,step (+ 1 (+ 1 (my-length (list "c"))))
@@ -209,29 +209,29 @@ imagining how @scheme[(my-length (list "a" "b" "c"))] must evaluate:
]
For a list with @math{n} elements, evaluation will stack up @math{n}
-@scheme[(+ 1 ...)] additions, and then finally add them up when the
+@racket[(+ 1 ...)] additions, and then finally add them up when the
list is exhausted.
You can avoid piling up additions by adding along the way. To
accumulate a length this way, we need a function that takes both a
list and the length of the list seem so far; the code below uses a
-local function @scheme[iter] that accumulates the length in an
-argument @scheme[len]:
+local function @racket[iter] that accumulates the length in an
+argument @racket[len]:
-@schemeblock[
+@racketblock[
(define (my-length lst)
- (code:comment @#,t{local function @scheme[iter]:})
+ (code:comment @#,t{local function @racket[iter]:})
(define (iter lst len)
(cond
[(empty? lst) len]
[else (iter (rest lst) (+ len 1))]))
- (code:comment @#,t{body of @scheme[my-length] calls @scheme[iter]:})
+ (code:comment @#,t{body of @racket[my-length] calls @racket[iter]:})
(iter lst 0))
]
Now evaluation looks like this:
-@schemeblock[
+@racketblock[
#||# (my-length (list "a" "b" "c"))
#,step (iter (list "a" "b" "c") 0)
#,step (iter (list "b" "c") 1)
@@ -240,21 +240,21 @@ Now evaluation looks like this:
3
]
-The revised @scheme[my-length] runs in constant space, just as the
+The revised @racket[my-length] runs in constant space, just as the
evaluation steps above suggest. That is, when the result of a
-function call, like @scheme[(iter (list "b" "c") 1)], is exactly the
-result of some other function call, like @scheme[(iter (list "c")
+function call, like @racket[(iter (list "b" "c") 1)], is exactly the
+result of some other function call, like @racket[(iter (list "c")
2)], then the first one doesn't have to wait around for the second
one, because that takes up space for no good reason.
This evaluation behavior is sometimes called @idefterm{tail-call
-optimization}, but it's not merely an ``optimization'' in Scheme; it's
+optimization}, but it's not merely an ``optimization'' in Racket; it's
a guarantee about the way the code will run. More precisely, an
-expression in @idefterm{tail position} with respect to another
+expression in @deftech{tail position} with respect to another
expression does not take extra computation space over the other
expression.
-In the case of @scheme[my-map], @math{O(n)} space complexity is
+In the case of @racket[my-map], @math{O(n)} space complexity is
reasonable, since it has to generate a result of size
@math{O(n)}. Nevertheless, you can reduce the constant factor by
accumulating the result list. The only catch is that the accumulated
@@ -263,7 +263,7 @@ list will be backwards, so you'll have to reverse it at the very end:
@margin-note{Attempting to reduce a constant factor like this is
usually not worthwhile, as discussed below.}
-@schemeblock[
+@racketblock[
(define (my-map f lst)
(define (iter lst backward-result)
(cond
@@ -276,40 +276,40 @@ usually not worthwhile, as discussed below.}
It turns out that if you write
-@schemeblock[
+@racketblock[
(define (my-map f lst)
(for/list ([i lst])
(f i)))
]
-then the @scheme[for/list] form in the function both is expanded to
-essentially the same code as the @scheme[iter] local definition and
+then the @racket[for/list] form in the function both is expanded to
+essentially the same code as the @racket[iter] local definition and
use. The difference is merely syntactic convenience.
@;------------------------------------------------------------------------
@section{Recursion versus Iteration}
-The @scheme[my-length] and @scheme[my-map] examples demonstrate that
+The @racket[my-length] and @racket[my-map] examples demonstrate that
iteration is just a special case of recursion. In many languages, it's
important to try to fit as many computations as possible into
iteration form. Otherwise, performance will be bad, and moderately
-large inputs can lead to stack overflow. Similarly, in Scheme, it is
+large inputs can lead to stack overflow. Similarly, in Racket, it is
sometimes important to make sure that tail recursion is used to avoid
@math{O(n)} space consumption when the computation is easily performed
in constant space.
At the same time, recursion does not lead to particularly bad
-performance in Scheme, and there is no such thing as stack overflow;
+performance in Racket, and there is no such thing as stack overflow;
you can run out of memory if a computation involves too much context,
but exhausting memory typically requires orders of magnitude deeper
recursion than would trigger a stack overflow in other
languages. These considerations, combined with the fact that
tail-recursive programs automatically run the same as a loop, lead
-Scheme programmers to embrace recursive forms rather than avoid them.
+Racket programmers to embrace recursive forms rather than avoid them.
Suppose, for example, that you want to remove consecutive duplicates
from a list. While such a function can be written as a loop that
-remembers the previous element for each iteration, a Scheme programmer
+remembers the previous element for each iteration, a Racket programmer
would more likely just write the following:
@def+int[
@@ -330,12 +330,12 @@ In general, this function consumes @math{O(n)} space for an input
list of length @math{n}, but that's fine, since it produces an
@math{O(n)} result. If the input list happens to be mostly consecutive
duplicates, then the resulting list can be much smaller than
-@math{O(n)}---and @scheme[remove-dups] will also use much less than
+@math{O(n)}---and @racket[remove-dups] will also use much less than
@math{O(n)} space! The reason is that when the function discards
-duplicates, it returns the result of a @scheme[remove-dups] call
+duplicates, it returns the result of a @racket[remove-dups] call
directly, so the tail-call ``optimization'' kicks in:
-@schemeblock[
+@racketblock[
#||# (remove-dups (list "a" "b" "b" "b" "b" "b"))
#,step (cons "a" (remove-dups (list "b" "b" "b" "b" "b")))
#,step (cons "a" (remove-dups (list "b" "b" "b" "b")))
diff --git a/collects/scribblings/guide/module-basics.scrbl b/collects/scribblings/guide/module-basics.scrbl
index 20f069a30d..23a868b2ee 100644
--- a/collects/scribblings/guide/module-basics.scrbl
+++ b/collects/scribblings/guide/module-basics.scrbl
@@ -6,17 +6,17 @@
@title[#:tag "module-basics"]{Module Basics}
-The space of module names is distinct from the space of normal Scheme
+The space of module names is distinct from the space of normal Racket
definitions. Indeed, since modules typically reside in files, the
space of module names is explicitly tied to the filesystem at run
-time. For example, if the file @filepath{/home/molly/cake.ss} contains
+time. For example, if the file @filepath{/home/molly/cake.rkt} contains
-@schememod[
-scheme
+@racketmod[
+racket
(provide print-cake)
-(code:comment @#,t{draws a cake with @scheme[n] candles})
+(code:comment @#,t{draws a cake with @racket[n] candles})
(define (print-cake n)
(printf " ~a \n" (make-string n #\.))
(printf " .-~a-.\n" (make-string n #\|))
@@ -25,40 +25,40 @@ scheme
]
then it can be used as the source of a module whose full name is based
-on the path @filepath{/home/molly/cake.ss}. The @scheme[provide] line
-exports the definition @scheme[print-cake] so that it can be used
+on the path @filepath{/home/molly/cake.rkt}. The @racket[provide] line
+exports the definition @racket[print-cake] so that it can be used
outside the module.
Instead of using its full path, a module is more likely to be
referenced by a relative path. For example, a file
-@filepath{/home/molly/random-cake.ss} could use the @filepath{cake.ss} module
+@filepath{/home/molly/random-cake.rkt} could use the @filepath{cake.rkt} module
like this:
-@schememod[
-scheme
+@racketmod[
+racket
-(require "cake.ss")
+(require "cake.rkt")
(print-cake (random 30))
]
-The relative reference @scheme["cake.ss"] in the import
-@scheme[(require "cake.ss")] works because the @filepath{cake.ss} module
-source is in the same directory as the @filepath{random-cake.ss}
+The relative reference @racket["cake.rkt"] in the import
+@racket[(require "cake.rkt")] works because the @filepath{cake.rkt} module
+source is in the same directory as the @filepath{random-cake.rkt}
file. (Unix-style relative paths are used for relative module
references on all platforms, much like relative URLs.)
-Library modules that are distributed with PLT Scheme are usually
+Library modules that are distributed with Racket are usually
referenced through an unquoted, suffixless path. The path is relative
to the library installation directory, which contains directories for
individual library @deftech{collections}. The module below refers to
-the @filepath{date.ss} library that is part of the @filepath{scheme}
+the @filepath{date.rkt} library that is part of the @filepath{racket}
@tech{collection}.
-@schememod[
-scheme
+@racketmod[
+racket
-(require scheme/date)
+(require racket/date)
(printf "Today is ~s\n"
(date->string (seconds->date (current-seconds))))
@@ -71,8 +71,8 @@ collection directories can be specified in configuration files or
through the @envvar{PLTCOLLECTS} search path. Try running the
following program to find out where your collections are:
-@schememod[
-scheme
+@racketmod[
+racket
(require setup/dirs)
diff --git a/collects/scribblings/guide/module-paths.scrbl b/collects/scribblings/guide/module-paths.scrbl
index 9d22ad3b38..249b7473d2 100644
--- a/collects/scribblings/guide/module-paths.scrbl
+++ b/collects/scribblings/guide/module-paths.scrbl
@@ -6,92 +6,104 @@
@title[#:tag "module-paths"]{Module Paths}
A @deftech{module path} is a reference to a module, as used with
-@scheme[require] or as the @scheme[_initial-module-path] in a
-@scheme[module] form. It can be any of several forms:
+@racket[require] or as the @racket[_initial-module-path] in a
+@racket[module] form. It can be any of several forms:
@; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-@specsubform[#:literals (quote) (#,(scheme quote) id)]{
+@specsubform[#:literals (quote) (#,(racket quote) id)]{
A @tech{module path} that is a quoted identifier refers to a non-file
-@scheme[module] declaration using the identifier. This form of module
+@racket[module] declaration using the identifier. This form of module
reference makes the most sense in a @tech{REPL}.
@examples[
-(module m scheme
+(module m racket
(provide color)
(define color "blue"))
-(module n scheme
+(module n racket
(require 'm)
(printf "my favorite color is ~a\n" color))
(require 'n)
]}
-@; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-@specsubform[id]{
-
-A @tech{module path} that is an unquoted identifier refers to an
-installed library. The @scheme[id] is constrained to contain only
-ASCII letters, ASCII numbers, @litchar{+}, @litchar{-}, @litchar{_},
-and @litchar{/}, where @litchar{/} separates path elements within the
-identifier. The elements refer to @tech{collection}s and
-sub-@tech{collections}, instead of directories and sub-directories.
-
-An example of this form is @scheme[scheme/date]. It refers to the
-module whose source is the @filepath{date.ss} file in the
-@filepath{scheme} collection, which is installed as part of PLT
-Scheme. The @filepath{.ss} suffix is added automatically.
-
-Another example of this form is @scheme[scheme], which is commonly
-used at the initial import. The path @scheme[scheme] is shorthand for
-@scheme[scheme/main]; when an @scheme[id] has no @litchar{/}, then
-@scheme[/main] is automatically added to the end. Thus,
-@scheme[scheme] or @scheme[scheme/main] refers to the module whose
-source is the @filepath{main.ss} file in the @filepath{scheme}
-collection.
-
-@examples[
-(module m scheme
- (require scheme/date)
-
- (printf "Today is ~s\n"
- (date->string (seconds->date (current-seconds)))))
-(require 'm)
-]}
-
@; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@specsubform[rel-string]{
A string @tech{module path} is a relative path using Unix-style
conventions: @litchar{/} is the path separator, @litchar{..} refers to
the parent directory, and @litchar{.} refers to the same
-directory. The @scheme[rel-string] must not start or end with a path
-separator.
+directory. The @racket[rel-string] must not start or end with a path
+separator. If the path has no suffix, @filepath{.rkt} is added
+automatically.
The path is relative to the enclosing file, if any, or it is relative
to the current directory. (More precisely, the path is relative to the
-value of @scheme[(current-load-relative-directory)], which is set
+value of @racket[(current-load-relative-directory)], which is set
while loading a file.)
@secref["module-basics"] shows examples using relative paths.
-}
+
+If a relative path ends with a @filepath{.ss} suffix, it is converted
+to @filepath{.rkt}. If the file that implements the referenced module
+actually ends in @filepath{.ss}, the suffix will be changed back when
+attempting to load the file (but a @filepath{.rkt} suffix takes
+precedence). This two-way conversion provides compatibility with older
+versions of Racket.}
+
+@; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+@specsubform[id]{
+
+A @tech{module path} that is an unquoted identifier refers to an
+installed library. The @racket[id] is constrained to contain only
+ASCII letters, ASCII numbers, @litchar{+}, @litchar{-}, @litchar{_},
+and @litchar{/}, where @litchar{/} separates path elements within the
+identifier. The elements refer to @tech{collection}s and
+sub-@tech{collections}, instead of directories and sub-directories.
+
+An example of this form is @racket[racket/date]. It refers to the
+module whose source is the @filepath{date.rkt} file in the
+@filepath{racket} collection, which is installed as part of
+Racket. The @filepath{.rkt} suffix is added automatically.
+
+Another example of this form is @racketmodname[racket], which is commonly
+used at the initial import. The path @racketmodname[racket] is shorthand for
+@racket[racket/main]; when an @racket[id] has no @litchar{/}, then
+@racket[/main] is automatically added to the end. Thus,
+@racketmodname[racket] or @racket[racket/main] refers to the module whose
+source is the @filepath{main.rkt} file in the @filepath{racket}
+collection.
+
+@examples[
+(module m racket
+ (require racket/date)
+
+ (printf "Today is ~s\n"
+ (date->string (seconds->date (current-seconds)))))
+(require 'm)
+]
+
+When the full path of a module ends with @filepath{.rkt}, if no such
+file exists but one does exist with the @filepath{.ss} suffix, then
+the @filepath{.ss} suffix is substituted automatically. This
+transformation provides compatibility with older versions of Racket.}
@; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@specsubform[#:literals (lib)
(lib rel-string)]{
Like an unquoted-identifier path, but expressed as a string instead of
-an identifier. Also, the @scheme[rel-string] can end with a file
-suffix, in case the relevant suffix is not @filepath{.ss}.
+an identifier. Also, the @racket[rel-string] can end with a file
+suffix, in which case @filepath{.rkt} is not automatically added.
-Example of this form include @scheme[(lib "scheme/date.ss")] and
-@scheme[(lib "scheme/date")], which are equivalent to
-@scheme[scheme/date]. Other examples include @scheme[(lib "scheme")],
-@scheme[(lib "scheme/main")], and @scheme[(lib "scheme/main.ss")],
-which are all equivalent to @scheme[scheme].
+Example of this form include @racket[(lib "racket/date.rkt")] and
+@racket[(lib "racket/date")], which are equivalent to
+@racket[racket/date]. Other examples include @racket[(lib "racket")],
+@racket[(lib "racket/main")], and @racket[(lib "racket/main.rkt")],
+which are all equivalent to @racketmodname[racket].
@examples[
-(module m (lib "scheme")
- (require (lib "scheme/date.ss"))
+(module m (lib "racket")
+ (require (lib "racket/date.rkt"))
(printf "Today is ~s\n"
(date->string (seconds->date (current-seconds)))))
@@ -106,17 +118,17 @@ Accesses a third-party library that is distributed through the
@|PLaneT| server. The library is downloaded the first time that it is
needed, and then the local copy is used afterward.
-The @scheme[id] encodes several pieces of information separated by a
+The @racket[id] encodes several pieces of information separated by a
@litchar{/}: the package owner, then package name with optional
version information, and an optional path to a specific library with
-the package. Like @scheme[id] as shorthand for a @scheme[lib] path, a
-@filepath{.ss} suffix is added automatically, and @schemeidfont{/main}
+the package. Like @racket[id] as shorthand for a @racket[lib] path, a
+@filepath{.rkt} suffix is added automatically, and @racketidfont{/main}
is used as the path if no sub-path element is supplied.
@examples[
(eval:alts
- (module m (lib "scheme")
- (code:comment @#,t{Use @filepath{schematics}'s @filepath{random.plt} 1.0, file @filepath{random.ss}:})
+ (module m (lib "racket")
+ (code:comment @#,t{Use @filepath{schematics}'s @filepath{random.plt} 1.0, file @filepath{random.rkt}:})
(require (planet schematics/random:1/random))
(display (random-gaussian)))
(void))
@@ -124,16 +136,23 @@ is used as the path if no sub-path element is supplied.
(require 'm)
(display 0.9050686838895684))
]
-}
+
+As with other forms, an implementation file ending with @filepath{.ss}
+can be substituted automatically if no implementation file ending with
+@filepath{.rkt} exists.}
@; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@specsubform[#:literals (planet)
(planet package-string)]{
-Like the symbol form of a @scheme[planet], but using a string instead
-of an identifier. Also, the @scheme[package-string] can end with a
-file suffix, in case the relevant suffix is not @filepath{.ss}.
-}
+Like the symbol form of a @racket[planet], but using a string instead
+of an identifier. Also, the @racket[package-string] can end with a
+file suffix, in which case @filepath{.rkt} is not added.
+
+As with other forms, an @filepath{.ss} extension is converted to
+@filepath{.rkt}, while an implementation file ending with
+@filepath{.ss} can be substituted automatically if no implementation
+file ending with @filepath{.rkt} exists.}
@; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@specsubform/subs[#:literals (planet = + -)
@@ -145,45 +164,48 @@ file suffix, in case the relevant suffix is not @filepath{.ss}.
(- nat)])]{
A more general form to access a library from the @|PLaneT| server. In
-this general form, a @|PLaneT| reference starts like a @scheme[lib]
+this general form, a @|PLaneT| reference starts like a @racket[lib]
reference with a relative path, but the path is followed by
information about the producer, package, and version of the
library. The specified package is downloaded and installed on demand.
-The @scheme[vers]es specify a constraint on the acceptable version of
+The @racket[vers]es specify a constraint on the acceptable version of
the package, where a version number is a sequence of non-negative
integers, and the constraints determine the allowable values for each
element in the sequence. If no constraint is provided for a particular
element, then any version is allowed; in particular, omitting all
-@scheme[vers]es means that any version is acceptable. Specifying at
-least one @scheme[vers] is strongly recommended.
+@racket[vers]es means that any version is acceptable. Specifying at
+least one @racket[vers] is strongly recommended.
-For a version constraint, a plain @scheme[nat] is the same as
-@scheme[(+ nat)], which matches @scheme[nat] or higher for the
-corresponding element of the version number. A @scheme[(_start-nat
-_end-nat)] matches any number in the range @scheme[_start-nat] to
-@scheme[_end-nat], inclusive. A @scheme[(= nat)] matches only exactly
-@scheme[nat]. A @scheme[(- nat)] matches @scheme[nat] or lower.
+For a version constraint, a plain @racket[nat] is the same as
+@racket[(+ nat)], which matches @racket[nat] or higher for the
+corresponding element of the version number. A @racket[(_start-nat
+_end-nat)] matches any number in the range @racket[_start-nat] to
+@racket[_end-nat], inclusive. A @racket[(= nat)] matches only exactly
+@racket[nat]. A @racket[(- nat)] matches @racket[nat] or lower.
@examples[
(eval:alts
- (module m (lib "scheme")
- (require (planet "random.ss" ("schematics" "random.plt" 1 0)))
+ (module m (lib "racket")
+ (require (planet "random.rkt" ("schematics" "random.plt" 1 0)))
(display (random-gaussian)))
(void))
(eval:alts
(require 'm)
(display 0.9050686838895684))
]
-}
+
+The automatic @filepath{.ss} and @filepath{.rkt} conversions apply as
+with other forms.}
@; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@specsubform[#:literals (file)
(file string)]{
-Refers to a file, where @scheme[string] is a relative or absolute path
+Refers to a file, where @racket[string] is a relative or absolute path
using the current platform's conventions. This form is not portable,
and it should @italic{not} be used when a plain, portable
-@scheme[rel-string] suffices.
+@racket[rel-string] suffices.
-}
+The automatic @filepath{.ss} and @filepath{.rkt} conversions apply as
+with other forms.}
diff --git a/collects/scribblings/guide/module-provide.scrbl b/collects/scribblings/guide/module-provide.scrbl
index 489238a936..e2dfc22bf3 100644
--- a/collects/scribblings/guide/module-provide.scrbl
+++ b/collects/scribblings/guide/module-provide.scrbl
@@ -3,31 +3,31 @@
scribble/eval
"guide-utils.ss")
-@title[#:tag "module-provide"]{Exports: @scheme[provide]}
+@title[#:tag "module-provide"]{Exports: @racket[provide]}
By default, all of a module's definitions are private to the
-module. The @scheme[provide] form specifies definitions to be made
-available where the module is @scheme[require]d.
+module. The @racket[provide] form specifies definitions to be made
+available where the module is @racket[require]d.
@specform[(provide provide-spec ...)]{}
-A @scheme[provide] form can only appear at module level (i.e., in the
-immediate body of a @scheme[module]). Specifying multiple
-@scheme[_provide-spec]s in a single @scheme[provide] is exactly the
-same as using multiple @scheme[provide]s each with a single
-@scheme[_provide-spec].
+A @racket[provide] form can only appear at module level (i.e., in the
+immediate body of a @racket[module]). Specifying multiple
+@racket[_provide-spec]s in a single @racket[provide] is exactly the
+same as using multiple @racket[provide]s each with a single
+@racket[_provide-spec].
Each identifier can be exported at most once from a module across all
-@scheme[provide]s within the module. More precisely, the external name
+@racket[provide]s within the module. More precisely, the external name
for each export must be distinct; the same internal binding can be
exported multiple times with different external names.
-The allowed shape of a @scheme[_provide-spec] is defined recursively:
+The allowed shape of a @racket[_provide-spec] is defined recursively:
@;------------------------------------------------------------------------
@specspecsubform[identifier]{
-In its simplest form, a @scheme[_provide-spec] indicates a binding
+In its simplest form, a @racket[_provide-spec] indicates a binding
within its module to be exported. The binding can be from either a
local definition, or from an import.
@@ -37,9 +37,9 @@ local definition, or from an import.
@specspecsubform[#:literals(rename-out)
(rename-out [orig-id export-id] ...)]{
-A @scheme[rename-out] form is similar to just specifying an identifier,
-but the exported binding @scheme[orig-id] is given a different name,
-@scheme[export-id], to importing modules.
+A @racket[rename-out] form is similar to just specifying an identifier,
+but the exported binding @racket[orig-id] is given a different name,
+@racket[export-id], to importing modules.
}
@@ -48,11 +48,11 @@ but the exported binding @scheme[orig-id] is given a different name,
@specspecsubform[#:literals(struct-out)
(struct-out struct-id)]{
-A @scheme[struct-out] form exports the bindings created by
-@scheme[(define-struct struct-id ....)].
+A @racket[struct-out] form exports the bindings created by
+@racket[(struct struct-id ....)].
@guideother{See @secref["define-struct"] for information on
-@scheme[define-struct].}
+@racket[define-struct].}
}
@@ -61,15 +61,15 @@ A @scheme[struct-out] form exports the bindings created by
@specspecsubform[#:literals (all-defined-out)
(all-defined-out)]{
-The @scheme[all-defined-out] shorthand exports all bindings that are
+The @racket[all-defined-out] shorthand exports all bindings that are
defined within the exporting module (as opposed to imported).
-Use of the @scheme[all-defined-out] shorthand is generally
+Use of the @racket[all-defined-out] shorthand is generally
discouraged, because it makes less clear the actual exports for a
-module, and because PLT Scheme programmers get into the habit of
+module, and because Racket programmers get into the habit of
thinking that definitions can be added freely to a module without
affecting its public interface (which is not the case when
-@scheme[all-defined-out] is used).
+@racket[all-defined-out] is used).
}
@@ -77,13 +77,13 @@ affecting its public interface (which is not the case when
@specspecsubform[#:literals (all-from-out)
(all-from-out module-path)]{
-The @scheme[all-from-out] shorthand exports all bindings in the module
-that were imported using a @scheme[_require-spec] that is based on
-@scheme[module-path].
+The @racket[all-from-out] shorthand exports all bindings in the module
+that were imported using a @racket[_require-spec] that is based on
+@racket[module-path].
-Although different @scheme[module-path]s could refer to the same
-file-based module, re-exporting with @scheme[all-from-out] is based
-specifically on the @scheme[module-path] reference, and not the module
+Although different @racket[module-path]s could refer to the same
+file-based module, re-exporting with @racket[all-from-out] is based
+specifically on the @racket[module-path] reference, and not the module
that is actually referenced.
}
@@ -92,8 +92,8 @@ that is actually referenced.
@specspecsubform[#:literals (except-out)
(except-out provide-spec id ...)]{
-Like @scheme[provide-spec], but omitting the export of each
-@scheme[id], where @scheme[id] is the external name of the binding to
+Like @racket[provide-spec], but omitting the export of each
+@racket[id], where @racket[id] is the external name of the binding to
omit.
}
@@ -103,7 +103,7 @@ omit.
@specspecsubform[#:literals (prefix-out)
(prefix-out prefix-id provide-spec)]{
-Like @scheme[provide-spec], but adding @scheme[prefix-id] to the
+Like @racket[provide-spec], but adding @racket[prefix-id] to the
beginning of the external name for each exported binding.
}
diff --git a/collects/scribblings/guide/module-require.scrbl b/collects/scribblings/guide/module-require.scrbl
index c571e14224..eca4be59b3 100644
--- a/collects/scribblings/guide/module-require.scrbl
+++ b/collects/scribblings/guide/module-require.scrbl
@@ -3,44 +3,44 @@
scribble/eval
"guide-utils.ss")
-@title[#:tag "module-require"]{Imports: @scheme[require]}
+@title[#:tag "module-require"]{Imports: @racket[require]}
-The @scheme[require] form imports from another module. A
-@scheme[require] form can appear within a module, in which case it
+The @racket[require] form imports from another module. A
+@racket[require] form can appear within a module, in which case it
introduces bindings from the specified module into importing module. A
-@scheme[require] form can also appear at the top level, in which case
+@racket[require] form can also appear at the top level, in which case
it both imports bindings and @deftech{instantiates} the specified
module; that is, it evaluates the body definitions and expressions of
the specified module, if they have not been evaluated already.
-A single @scheme[require] can specify multiple imports at once:
+A single @racket[require] can specify multiple imports at once:
@specform[(require require-spec ...)]{}
-Specifying multiple @scheme[_require-spec]s in a single
-@scheme[require] is essentially the same as using multiple
-@scheme[require]s, each with a single @scheme[_require-spec]. The
+Specifying multiple @racket[_require-spec]s in a single
+@racket[require] is essentially the same as using multiple
+@racket[require]s, each with a single @racket[_require-spec]. The
difference is minor, and confined to the top-level: a single
-@scheme[require] can import a given identifier at most once, whereas a
-separate @scheme[require] can replace the bindings of a previous
-@scheme[require] (both only at the top level, outside of a module).
+@racket[require] can import a given identifier at most once, whereas a
+separate @racket[require] can replace the bindings of a previous
+@racket[require] (both only at the top level, outside of a module).
-The allowed shape of a @scheme[_require-spec] is defined recursively:
+The allowed shape of a @racket[_require-spec] is defined recursively:
@;------------------------------------------------------------------------
@specspecsubform[module-path]{
-In its simplest form, a @scheme[_require-spec] is a
-@scheme[module-path] (as defined in the previous section,
+In its simplest form, a @racket[_require-spec] is a
+@racket[module-path] (as defined in the previous section,
@secref["module-paths"]). In this case, the bindings introduced
-by @scheme[require] are determined by @scheme[provide] declarations
-within each module referenced by each @scheme[module-path].
+by @racket[require] are determined by @racket[provide] declarations
+within each module referenced by each @racket[module-path].
@examples[
-(module m scheme
+(module m racket
(provide color)
(define color "blue"))
-(module n scheme
+(module n racket
(provide size)
(define size 17))
(require 'm 'n)
@@ -55,15 +55,15 @@ within each module referenced by each @scheme[module-path].
([id-maybe-renamed id
[orig-id bind-id]])]{
-An @scheme[only-in] form limits the set of bindings that would be introduced
-by a base @scheme[require-spec]. Also, @scheme[only-in] optionally
-renames each binding that is preserved: in a @scheme[[orig-id
-bind-id]] form, the @scheme[orig-id] refers to a binding implied by
-@scheme[require-spec], and @scheme[bind-id] is the name that will be
-bound in the importing context instead of @scheme[bind-id].
+An @racket[only-in] form limits the set of bindings that would be introduced
+by a base @racket[require-spec]. Also, @racket[only-in] optionally
+renames each binding that is preserved: in a @racket[[orig-id
+bind-id]] form, the @racket[orig-id] refers to a binding implied by
+@racket[require-spec], and @racket[bind-id] is the name that will be
+bound in the importing context instead of @racket[bind-id].
@examples[
-(module m (lib "scheme")
+(module m (lib "racket")
(provide tastes-great?
less-filling?)
(define tastes-great? #t)
@@ -79,8 +79,8 @@ less-filling?
@specspecsubform[#:literals (except-in)
(except-in require-spec id ...)]{
-This form is the complement of @scheme[only]: it excludes specific
-bindings from the set specified by @scheme[require-spec].
+This form is the complement of @racket[only]: it excludes specific
+bindings from the set specified by @racket[require-spec].
}
@@ -88,31 +88,31 @@ bindings from the set specified by @scheme[require-spec].
@specspecsubform[#:literals (rename-in)
(rename-in require-spec [orig-id bind-id] ...)]{
-This form supports renaming like @scheme[only-in], but leaving alone
-identifiers from @scheme[require-spec] that are not mentioned as an
-@scheme[orig-id]. }
+This form supports renaming like @racket[only-in], but leaving alone
+identifiers from @racket[require-spec] that are not mentioned as an
+@racket[orig-id]. }
@;------------------------------------------------------------------------
@specspecsubform[#:literals (prefix-in)
(prefix-in prefix-id require-spec)]{
-This is a shorthand for renaming, where @scheme[prefix-id] is added to
-the front of each identifier specified by @scheme[require-spec].
+This is a shorthand for renaming, where @racket[prefix-id] is added to
+the front of each identifier specified by @racket[require-spec].
}
-The @scheme[only-in], @scheme[except-in], @scheme[rename-in], and
-@scheme[prefix-in] forms can be nested to implement more complex
+The @racket[only-in], @racket[except-in], @racket[rename-in], and
+@racket[prefix-in] forms can be nested to implement more complex
manipulations of imported bindings. For example,
-@schemeblock[(require (prefix-in m: (except-in 'm ghost)))]
+@racketblock[(require (prefix-in m: (except-in 'm ghost)))]
-imports all bindings that @scheme[m]
-exports, except for the @scheme[ghost] binding, and with local names
-that are prefixed with @scheme[m:].
+imports all bindings that @racket[m]
+exports, except for the @racket[ghost] binding, and with local names
+that are prefixed with @racket[m:].
-Equivalently, the @scheme[prefix-in] could be applied before
-@scheme[except-in], as long as the omission with @scheme[except-in] is
-specified using the @scheme[m:] prefix:
+Equivalently, the @racket[prefix-in] could be applied before
+@racket[except-in], as long as the omission with @racket[except-in] is
+specified using the @racket[m:] prefix:
-@schemeblock[(require (except-in (prefix m: 'm) m:ghost))]
+@racketblock[(require (except-in (prefix m: 'm) m:ghost))]
diff --git a/collects/scribblings/guide/module-set.scrbl b/collects/scribblings/guide/module-set.scrbl
index 07f0de5b14..329b36f37b 100644
--- a/collects/scribblings/guide/module-set.scrbl
+++ b/collects/scribblings/guide/module-set.scrbl
@@ -5,14 +5,14 @@
@title[#:tag "module-set"]{Assignment and Redefinition}
-The use of @scheme[set!] on variables defined within a module is
+The use of @racket[set!] on variables defined within a module is
limited to the body of the defining module. That is, a module is
allowed to change the value of its own definitions, and such changes
are visible to importing modules. However, an importing context is not
allowed to change the value of an imported binding.
@examples[
-(module m scheme
+(module m racket
(provide counter increment!)
(define counter 0)
(define (increment!)
@@ -26,26 +26,26 @@ allowed to change the value of an imported binding.
As the above example illustrates, a module can always grant others the
ability to change its exports by providing a mutator function, such as
-@scheme[increment!].
+@racket[increment!].
The prohibition on assignment of imported variables helps support
modular reasoning about programs. For example, in the module,
-@schemeblock[
-(module m scheme
+@racketblock[
+(module m racket
(provide rx:fish fishy-string?)
(define rx:fish #rx"fish")
(define (fishy-string? s)
(regexp-match? s rx:fish)))
]
-the function @scheme[fishy-string?] will always match strings that
-contain ``fish'', no matter how other modules use the @scheme[rx:fish]
+the function @racket[fishy-string?] will always match strings that
+contain ``fish'', no matter how other modules use the @racket[rx:fish]
binding. For essentially the same reason that it helps programmers,
the prohibition on assignment to imports also allows many programs to
be executed more efficiently.
-Along the same lines, when a module contains no @scheme[set!] of a
+Along the same lines, when a module contains no @racket[set!] of a
particular identifier that is defined within the module, then the
identifier is considered a @defterm{constant} that cannot be
changed---not even by re-declaring the module.
@@ -54,30 +54,30 @@ Consequently, re-declaration of a module is not generally allowed.
For file-based modules, simply changing the file does not lead to a
re-declaration in any case, because file-based modules are loaded on
demand, and the previously loaded declarations satisfy future
-requests. It is possible to use Scheme's reflection support to
+requests. It is possible to use Racket's reflection support to
re-declare a module, however, and non-file modules can be re-declared
in the @tech{REPL}; in such cases, the re-declaration may fail if it
involves the re-definition of a previously constant binding.
@interaction[
-(module m scheme
+(module m racket
(define pie 3.141597))
(require 'm)
-(module m scheme
+(module m racket
(define pie 3))
]
-For exploration and debugging purposes, the Scheme reflective layer
-provides a @scheme[compile-enforce-module-constants] parameter
+For exploration and debugging purposes, the Racket reflective layer
+provides a @racket[compile-enforce-module-constants] parameter
to disable the enforcement of constants.
@interaction[
(compile-enforce-module-constants #f)
-(module m2 scheme
+(module m2 racket
(provide pie)
(define pie 3.141597))
(require 'm2)
-(module m2 scheme
+(module m2 racket
(provide pie)
(define pie 3))
(compile-enforce-module-constants #t)
diff --git a/collects/scribblings/guide/module-syntax.scrbl b/collects/scribblings/guide/module-syntax.scrbl
index 4c614fbb59..3ffa3f8da6 100644
--- a/collects/scribblings/guide/module-syntax.scrbl
+++ b/collects/scribblings/guide/module-syntax.scrbl
@@ -8,14 +8,14 @@
@title{Module Syntax}
The @litchar{#lang} at the start of a module file begins a shorthand
-for a @scheme[module] form, much like @litchar{'} is a shorthand for a
-@scheme[quote] form. Unlike @litchar{'}, the @litchar{#lang}
+for a @racket[module] form, much like @litchar{'} is a shorthand for a
+@racket[quote] form. Unlike @litchar{'}, the @litchar{#lang}
shorthand does not work well in a @tech{REPL}, in part because it must be
terminated by an end-of-file, but also because the longhand expansion
of @litchar{#lang} depends on the name of the enclosing file.
@;------------------------------------------------------------------------
-@section[#:tag "module-syntax"]{The @scheme[module] Form}
+@section[#:tag "module-syntax"]{The @racket[module] Form}
The longhand form of a module declaration, which works in a
@tech{REPL} as well as a file, is
@@ -25,29 +25,29 @@ The longhand form of a module declaration, which works in a
decl ...)
]
-where the @scheme[_name-id] is a name for the module,
-@scheme[_initial-module-path] is an initial import, and each
-@scheme[_decl] is an import, export, definition, or expression. In
-the case of a file, @scheme[_name-id] must match the name of the
+where the @racket[_name-id] is a name for the module,
+@racket[_initial-module-path] is an initial import, and each
+@racket[_decl] is an import, export, definition, or expression. In
+the case of a file, @racket[_name-id] must match the name of the
containing file, minus its directory path or file extension.
-The @scheme[_initial-module-path] is needed because even the
-@scheme[require] form must be imported for further use in the module
-body. In other words, the @scheme[_initial-module-path] import
+The @racket[_initial-module-path] is needed because even the
+@racket[require] form must be imported for further use in the module
+body. In other words, the @racket[_initial-module-path] import
bootstraps the syntax available in the body. The most commonly used
-@scheme[_initial-module-path] is @scheme[scheme], which supplies most
-of the bindings described in this guide, including @scheme[require],
-@scheme[define], and @scheme[provide]. Another commonly used
-@scheme[_initial-module-path] is @scheme[scheme/base], which provides
+@racket[_initial-module-path] is @racketmodname[racket], which supplies most
+of the bindings described in this guide, including @racket[require],
+@racket[define], and @racket[provide]. Another commonly used
+@racket[_initial-module-path] is @racketmodname[racket/base], which provides
less functionality, but still much of the most commonly needed
functions and syntax.
-For example, the @filepath{cake.ss} example of the
+For example, the @filepath{cake.rkt} example of the
@seclink["module-basics"]{previous section} could be written as
-@schemeblock+eval[
+@racketblock+eval[
#:eval cake-eval
-(module cake scheme
+(module cake racket
(provide print-cake)
(define (print-cake n)
@@ -57,8 +57,8 @@ For example, the @filepath{cake.ss} example of the
(printf "---~a---\n" (make-string n #\-))))
]
-Furthermore, this @scheme[module] form can be evaluated in a
-@tech{REPL} to declare a @scheme[cake] module that is not associated
+Furthermore, this @racket[module] form can be evaluated in a
+@tech{REPL} to declare a @racket[cake] module that is not associated
with any file. To refer to such an unassociated module, quote the
module name:
@@ -70,53 +70,53 @@ module name:
Declaring a module does not immediately evaluate the body definitions
and expressions of the module. The module must be explicitly
-@scheme[require]d at the top level to trigger evaluation. After
-evaluation is triggered once, later @scheme[require]s do not
+@racket[require]d at the top level to trigger evaluation. After
+evaluation is triggered once, later @racket[require]s do not
re-evaluate the module body.
@examples[
-(module hi scheme
+(module hi racket
(printf "Hello\n"))
(require 'hi)
(require 'hi)
]
@;------------------------------------------------------------------------
-@section[#:tag "hash-lang"]{The @schememodfont{#lang} Shorthand}
+@section[#:tag "hash-lang"]{The @racketmodfont{#lang} Shorthand}
-The body of a @schememodfont{#lang} shorthand has no specific syntax,
+The body of a @racketmodfont{#lang} shorthand has no specific syntax,
because the syntax is determined by the language name that follows
-@schememodfont{#lang}.
+@racketmodfont{#lang}.
-In the case of @schememodfont{#lang} @schememodname[scheme], the syntax
+In the case of @racketmodfont{#lang} @racketmodname[racket], the syntax
is
-@schememod[
-scheme
+@racketmod[
+racket
_decl ...]
which reads the same as
-@schemeblock[
-(module _name scheme
+@racketblock[
+(module _name racket
_decl ...)
]
-where @scheme[_name] is derived from the name of the file that
-contains the @schememodfont{#lang} form.
+where @racket[_name] is derived from the name of the file that
+contains the @racketmodfont{#lang} form.
-The @schememodfont{#lang} @scheme[scheme/base] form has the same
-syntax as @schememodfont{#lang} @schememodname[scheme], except that
-the longhand expansion uses @scheme[scheme/base] instead of
-@scheme[scheme]. The @schememodfont{#lang} @scheme[honu] form, in
+The @racketmodfont{#lang} @racketmodname[racket/base] form has the same
+syntax as @racketmodfont{#lang} @racketmodname[racket], except that
+the longhand expansion uses @racketmodname[racket/base] instead of
+@racketmodname[racket]. The @racketmodfont{#lang} @racket[honu] form, in
contrast, has a completely different syntax that doesn't even look
-like Scheme, and which we do not attempt to describe in this guide.
+like Racket, and which we do not attempt to describe in this guide.
Unless otherwise specified, a module that is documented as a
-``language'' using the @schememodfont{#lang} notation will expand to
-@scheme[module] in the same way as @schememodfont{#lang}
-@schememodname[scheme]. The documented language name can be used
-directly with @scheme[module] or @scheme[require], too.
+``language'' using the @racketmodfont{#lang} notation will expand to
+@racket[module] in the same way as @racketmodfont{#lang}
+@racketmodname[racket]. The documented language name can be used
+directly with @racket[module] or @racket[require], too.
@; ----------------------------------------------------------------------
diff --git a/collects/scribblings/guide/modules.scrbl b/collects/scribblings/guide/modules.scrbl
index f5212c8893..0b43330b48 100644
--- a/collects/scribblings/guide/modules.scrbl
+++ b/collects/scribblings/guide/modules.scrbl
@@ -6,7 +6,7 @@
@title[#:tag "modules" #:style 'toc]{Modules}
-Modules let you organize Scheme code into multiple files and reusable
+Modules let you organize Racket code into multiple files and reusable
libraries.
@local-table-of-contents[]
diff --git a/collects/scribblings/guide/numbers.scrbl b/collects/scribblings/guide/numbers.scrbl
index 72702da535..d7528937ab 100644
--- a/collects/scribblings/guide/numbers.scrbl
+++ b/collects/scribblings/guide/numbers.scrbl
@@ -5,7 +5,7 @@
@title[#:tag "numbers"]{Numbers}
-A Scheme @deftech{number} is either exact or inexact:
+A Racket @deftech{number} is either exact or inexact:
@itemize[
@@ -13,16 +13,16 @@ A Scheme @deftech{number} is either exact or inexact:
@itemize[
- @item{an arbitrarily large or small integer, such as @scheme[5],
- @scheme[99999999999999999], or @scheme[-17];}
+ @item{an arbitrarily large or small integer, such as @racket[5],
+ @racket[99999999999999999], or @racket[-17];}
@item{a rational that is exactly the ratio of two arbitrarily
- small or large integers, such as @scheme[1/2],
- @scheme[99999999999999999/2], or @scheme[-3/4]; or}
+ small or large integers, such as @racket[1/2],
+ @racket[99999999999999999/2], or @racket[-3/4]; or}
@item{a complex number with exact real and imaginary parts
- (where the imaginary part is not zero), such as @scheme[1+2i] or
- @scheme[1/2+3/4i].}
+ (where the imaginary part is not zero), such as @racket[1+2i] or
+ @racket[1/2+3/4i].}
]}
@@ -31,14 +31,14 @@ A Scheme @deftech{number} is either exact or inexact:
@itemize[
@item{an IEEE floating-point representation of a number, such
- as @scheme[2.0] or @scheme[3.14e87], where the IEEE
+ as @racket[2.0] or @racket[3.14e87], where the IEEE
infinities and not-a-number are written
- @scheme[+inf.0], @scheme[-inf.0], and @scheme[+nan.0]
- (or @schemevalfont{-nan.0}); or}
+ @racket[+inf.0], @racket[-inf.0], and @racket[+nan.0]
+ (or @racketvalfont{-nan.0}); or}
@item{a complex number with real and imaginary parts that are
IEEE floating-point representations, such as
- @scheme[2.0+3.0i] or @scheme[-inf.0+nan.0i]; as a
+ @racket[2.0+3.0i] or @racket[-inf.0+nan.0i]; as a
special case, an inexact complex number can have an
exact zero real part with an inexact imaginary part.}
@@ -57,16 +57,16 @@ interpretation of digits.
@examples[
0.5
-(eval:alts @#,schemevalfont{#e0.5} 1/2)
-(eval:alts @#,schemevalfont{#x03BB} #x03BB)
+(eval:alts @#,racketvalfont{#e0.5} 1/2)
+(eval:alts @#,racketvalfont{#x03BB} #x03BB)
]
Computations that involve an inexact number produce inexact results,
so that inexactness acts as a kind of taint on numbers. Beware,
-however, that Scheme offers no ``inexact booleans'', so computations
+however, that Racket offers no ``inexact booleans,'' so computations
that branch on the comparison of inexact numbers can nevertheless
-produce exact results. The procedures @scheme[exact->inexact] and
-@scheme[inexact->exact] convert between the two
+produce exact results. The procedures @racket[exact->inexact] and
+@racket[inexact->exact] convert between the two
types of numbers.
@examples[
@@ -76,9 +76,9 @@ types of numbers.
(inexact->exact 0.1)
]
-Inexact results are also produced by procedures such as @scheme[sqrt],
-@scheme[log], and @scheme[sin] when an exact result would require
-representing real numbers that are not rational. Scheme can represent
+Inexact results are also produced by procedures such as @racket[sqrt],
+@racket[log], and @racket[sin] when an exact result would require
+representing real numbers that are not rational. Racket can represent
only rational numbers and complex numbers with rational parts.
@examples[
@@ -105,9 +105,9 @@ with inexact numbers.
The number categories @deftech{integer}, @deftech{rational},
@deftech{real} (always rational), and @deftech{complex} are defined in
-the usual way, and are recognized by the procedures @scheme[integer?],
-@scheme[rational?], @scheme[real?], and @scheme[complex?], in addition
-to the generic @scheme[number?]. A few mathematical procedures accept
+the usual way, and are recognized by the procedures @racket[integer?],
+@racket[rational?], @racket[real?], and @racket[complex?], in addition
+to the generic @racket[number?]. A few mathematical procedures accept
only real numbers, but most implement standard extensions to complex
numbers.
@@ -123,10 +123,10 @@ numbers.
(sin -5+2i)
]
-The @scheme[=] procedure compares numbers for numerical equality. If
+The @racket[=] procedure compares numbers for numerical equality. If
it is given both inexact and exact numbers to compare, it essentially
converts the inexact numbers to exact before comparing. The
-@scheme[eqv?] (and therefore @scheme[equal?]) procedure, in contrast,
+@racket[eqv?] (and therefore @racket[equal?]) procedure, in contrast,
compares numbers considering both exactness and numerical equality.
@examples[
@@ -137,8 +137,8 @@ compares numbers considering both exactness and numerical equality.
Beware of comparisons involving inexact numbers, which by their nature
can have surprising behavior. Even apparently simple inexact numbers
may not mean what you think they mean; for example, while a base-2
-IEEE floating-point number can represent @scheme[1/2] exactly, it
-can only approximate @scheme[1/10]:
+IEEE floating-point number can represent @racket[1/2] exactly, it
+can only approximate @racket[1/10]:
@examples[
(= 1/2 0.5)
diff --git a/collects/scribblings/guide/pairs.scrbl b/collects/scribblings/guide/pairs.scrbl
index 40e96cedc4..0fe53119d7 100644
--- a/collects/scribblings/guide/pairs.scrbl
+++ b/collects/scribblings/guide/pairs.scrbl
@@ -11,7 +11,8 @@ procedures extract the first and second elements of the pair,
respectively. The @scheme[pair?] predicate recognizes pairs.
Some pairs print by wrapping parentheses around the printed forms of
-the two pair elements, putting a @litchar{.} between them.
+the two pair elements, putting a @litchar{`} at the beginning and a
+@litchar{.} between the elements.
@examples[
(cons 1 2)
@@ -27,8 +28,8 @@ or it is a pair whose first element is a list element and whose second
element is a list. The @scheme[list?] predicate recognizes lists. The
@scheme[null?] predicate recognizes the empty list.
-A list prints as a pair of parentheses wrapped around the list
-elements.
+A list prints as a @litchar{`} followed by a pair of parentheses
+wrapped around the list elements.
@examples[
null
@@ -38,13 +39,13 @@ null
(list? (cons 1 2))
]
-An expression with @litchar{'} followed by the printed form of a pair
-or list produces a pair or list constant.
+The @scheme[display] function prints a pair or list without a leading
+@litchar{`}:
@examples[
-'()
-'(1 . 2)
-'(1 2 3)
+(display (cons 1 2))
+(display null)
+(display (list 1 2 3))
]
Pairs are immutable (contrary to Lisp tradition), and @scheme[pair?]
diff --git a/collects/scribblings/guide/parameterize.scrbl b/collects/scribblings/guide/parameterize.scrbl
index 7a2df29589..8e29081a8a 100644
--- a/collects/scribblings/guide/parameterize.scrbl
+++ b/collects/scribblings/guide/parameterize.scrbl
@@ -4,140 +4,160 @@
"guide-utils.ss"
(for-label (only-in mzscheme fluid-let)))
-@title[#:tag "parameterize"]{Dynamic Binding: @scheme[parameterize]}
+@(define param-eval (make-base-eval))
-@scheme[parameterize] is used to have values that are ``dynamically scoped''.
-You get a parameter with @scheme[make-parameter]. The parameter itself
-behaves as a function: call it with no inputs and you get its value,
-call it with one value and it will set the value. The settings that are
-adjusted by a @scheme[parameterize] form are called @deftech{parameters}.
-For example:
+@title[#:tag "parameterize"]{Dynamic Binding: @racket[parameterize]}
-@margin-note{The term ``parameter'' is sometimes used to refer to the
- arguments of a function, but ``parameter'' in PLT Scheme
- has the more specific meaning described here.}
+@refalso["parameters"]{@racket[parameterize]}
-
-@examples[
-(define p (make-parameter "blah"))
-(p)
-(p "meh")
-(p)]
-
-Many functions (including many primitive ones) use parameters as a way
-to customize their behavior. For example @scheme[printf] will print text
-using the port that is the value of the @scheme[current-output-port]
-parameter. Now, say that you have some function that prints
-something:
-
-@examples[
-(define (foo x) (printf "the value of x is ~s\n"))
-]
-
-You usually call this function and see something printed on the screen
--- but in some cases you want to use it to print something to a file
-or whatever. You could do this:
-
-@examples[
-(define (bar)
- (let ([old-stdout (current-output-port)])
- (current-output-port my-own-port)
- (foo some-value)
- (current-output-port old-stdout)))
-]
-
-One problem with this is that it is tedious to do -- but that's easily
-solved with a macro. (In fact, PLT still has a construct that does
-that in some languages: @scheme[fluid-let].) But there are more problems
-here: what happens if the call to @scheme[foo] results in a runtime error?
-This might leave the system in a bad state, where all output goes to
-your port (and you won't even see a problem, since it won't print
-anything). A solution for that (which @scheme[fluid-let] uses too) is to
-protect the saving/restoring of the parameter with @scheme[dynamic-wind],
-which makes sure that if there's an error (and more, if you know about
-continuations) then the value is still restored.
-
-So the question is what's the point of having parameters instead of
-just using globals and @scheme[fluid-let]? There are two more problems that
-you cannot solve with just globals. One is what happens when you have
-multiple threads -- in this case, setting the value temporarily will
-affect other threads, which may still want to print to the standard
-output. Parameters solve this by having a specific value per-thread.
-What happens is that each thread ``inherits'' the value from the thread
-that created it, and changes in one thread are visible only in that
-thread.
-
-The other problem is more subtle. Say that you have a parameter with
-a numeric value, and you want to do the following:
-
-@examples[
-(define (foo)
- (parameterize ([p 'any-expression-goes-here])
- (foo)))
-]
-
-In Scheme, ``tail calls'' are important -- they are the basic tool for
-creating loops and much more. @scheme[parameterize] does some magic that
-allows it to change the parameter value temporarily but still preserve
-these tail calls. For example, in the above case, you @bold{will} get an
-infinite loop, rather than get a stack overflow error -- what happens
-is that each of these @scheme[parameterize] expressions can somehow detect
-when there's an earlier @scheme[parameterize] that no longer needs to do its
-cleanup.
-
-Finally, @scheme[parameterize] actually uses two important parts of PLT to do
-its job: it uses thread cells to implement per-thread values, and it
-uses continuation marks to be able to preserve tail-calls. Each of
-these features is useful in itself.
+The @racket[parameterize] form associates a new value with a
+@deftech{parameter} during the evaluation of @racket[_body]
+expressions:
@specform[(parameterize ([parameter-expr value-expr] ...)
body ...+)]
-The result of a @scheme[parameterize] form is the result of the last
-@scheme[_body] expression. While the @scheme[_body] expressions are
-evaluated, the parameter produced by each @scheme[_parameter-expr] is
-set to the result of the corresponding @scheme[_value-expr].
+@margin-note{The term ``parameter'' is sometimes used to refer to the
+ arguments of a function, but ``parameter'' in Racket
+ has the more specific meaning described here.}
-Many parameters are built in. For example, the
-@scheme[error-print-width] parameter controls how many characters of a
-value are printed in an error message (in case the printed form of the
-value is very large):
+For example, the @racket[error-print-width] parameter controls how
+many characters of a value are printed in an error message:
@interaction[
-(parameterize ([error-print-width 10])
+(parameterize ([error-print-width 5])
(car (expt 10 1024)))
-(parameterize ([error-print-width 5])
+(parameterize ([error-print-width 10])
(car (expt 10 1024)))
]
-The @scheme[error-print-width] parameter acts like a kind of default
-argument to the function that formats error messages. This
-parameter-based argument can be configured far from the actual call to
-the error-formatting function, which in this case is called deep
-within the implementation of @scheme[car].
-
-The @scheme[parameterize] form adjusts the value of a parameter only
-while evaluating its body expressions. After the body produces a
-value, the parameter reverts to its previous value. If control escapes
-from the body due to an exception, as in the above example, then the
-parameter value is restored in that case, too. Finally, parameter
-values are thread-specific, so that multiple threads do not interfere
-with each others' settings.
-
-Use @scheme[make-parameter] to create a new parameter that works with
-@scheme[parameterize]. The argument to @scheme[make-parameter] is the
-value of the parameter when it is not otherwise set by
-@scheme[parameterize]. To access the current value of the parameter,
-call it like a function.
+More generally, parameters implement a kind of dynamic binding. The
+@racket[make-parameter] function takes any value and returns a new
+parameter that is initialized to the given value. Applying the
+parameter as a function returns its current value:
@interaction[
-(define favorite-flavor (make-parameter 'chocolate))
-(favorite-flavor)
-(define (scoop)
- `(scoop of ,(favorite-flavor)))
-(define (ice-cream n)
- (list (scoop) (scoop) (scoop)))
-(parameterize ([favorite-flavor 'strawberry])
- (ice-cream 3))
-(ice-cream 3)
+#:eval param-eval
+(define location (make-parameter "here"))
+(location)
]
+
+In a @scheme[parameterize] form, each @racket[_parameter-expr] must
+produce a parameter. During the evaluation of the @scheme[body]s, each
+specified parameter is given the result of the corresponding
+@scheme[_value-expr]. When control leaves the @racket[parameterize]
+form---either through a normal return, an exception, or some other
+escape---the parameter reverts to its earlier value:
+
+@interaction[
+#:eval param-eval
+(parameterize ([location "there"])
+ (location))
+(location)
+(parameterize ([location "in a house"])
+ (list (location)
+ (parameterize ([location "with a mouse"])
+ (location))
+ (location)))
+(parameterize ([location "in a box"])
+ (car (location)))
+(location)
+]
+
+The @scheme[parameterize] form is not a binding form like
+@scheme[let]; each use of @racket[location] above refers directly to
+the original definition. A @scheme[parameterize] form adjusts the
+value of a parameter during the whole time that the
+@scheme[parameterize] body is evaluated, even for uses of the
+parameter that are textually outside of the @racket[parameterize]
+body:
+
+@interaction[
+#:eval param-eval
+(define (would-you-could-you?)
+ (and (not (equal? (location) "here"))
+ (not (equal? (location) "there"))))
+
+(would-you-could-you?)
+(parameterize ([location "on a bus"])
+ (would-you-could-you?))
+]
+
+If a use of a parameter is textually inside the body of a
+@racket[parameterize] but not evaluated before the
+@racket[parameterize] form produces a value, then the use does not see
+the value installed by the @racket[parameterize] form:
+
+@interaction[
+#:eval param-eval
+(let ([get (parameterize ([location "with a fox"])
+ (lambda () (location)))])
+ (get))
+]
+
+The current binding of a parameter can be adjusted imperatively by
+calling the parameter as a function with a value. If a
+@racket[parameterize] has adjusted the value of the parameter, then
+directly applying the parameter procedure affects only the value
+associated with the active @racket[parameterize]:
+
+@interaction[
+#:eval param-eval
+(define (try-again! where)
+ (location where))
+
+(location)
+(parameterize ([location "on a train"])
+ (list (location)
+ (begin (try-again! "in a boat")
+ (location))))
+(location)
+]
+
+Using @racket[parameterize] is generally preferable to updating a
+parameter value imperatively---for much the same reasons that binding
+a fresh variable with @scheme[let] is preferable to using
+@scheme[set!] (see @secref["set!"]).
+
+It may seem that variables and @racket[set!] can solve many of the
+same problems that parameters solve. For example, @racket[lokation]
+could be defined as a string, and @racket[set!] could be used
+to adjust its value:
+
+@interaction[
+#:eval param-eval
+(define lokation "here")
+
+(define (would-ya-could-ya?)
+ (and (not (equal? lokation "here"))
+ (not (equal? lokation "there"))))
+
+(set! location "on a bus")
+(would-ya-could-ya?)
+]
+
+Parameters, however, offer several crucial advantages over
+@scheme[set!]:
+
+@itemlist[
+
+ @item{The @racket[parameterize] form helps automatically reset the
+ value of a parameter when control escapes due to an exception.
+ Adding exception handlers and other forms to rewind a
+ @scheme[set!] is relatively tedious.}
+
+ @item{Parameters work nicely with tail calls (see
+ @secref["tail-recursion"]). The last @racket[_body] in a
+ @racket[parameterize] form is in @tech{tail position} with
+ respect to the @racket[parameterize] form.}
+
+ @item{Parameters work properly with threads (see
+ @refsecref["threads"]). The @scheme[parameterize] form adjusts
+ the value of a parameter only for evaluation in the current
+ thread, which avoids race conditions with other threads.}
+
+]
+
+@; ----------------------------------------
+
+@close-eval[param-eval]
diff --git a/collects/scribblings/guide/qq.scrbl b/collects/scribblings/guide/qq.scrbl
index 6abc9183a9..f9fa41dc49 100644
--- a/collects/scribblings/guide/qq.scrbl
+++ b/collects/scribblings/guide/qq.scrbl
@@ -3,41 +3,43 @@
scribble/eval
"guide-utils.ss")
-@(define qq (scheme quasiquote))
-@(define uq (scheme unquote))
+@(define qq (racket quasiquote))
+@(define uq (racket unquote))
-@title{Quasiquoting: @scheme[quasiquote] and @schemevalfont{`}}
+@title[#:tag "qq"]{Quasiquoting: @racket[quasiquote] and @racketvalfont{`}}
-The @scheme[quasiquote] form is similar to @scheme[quote]:
+@refalso["quasiquote"]{@racket[quasiquote]}
+
+The @racket[quasiquote] form is similar to @racket[quote]:
@specform[(#,qq datum)]
-However, for each @scheme[(#,uq _expr)]
-that appears within the @scheme[_datum], the @scheme[_expr] is
+However, for each @racket[(#,uq _expr)]
+that appears within the @racket[_datum], the @racket[_expr] is
evaluated to produce a value that takes the place of the
-@scheme[unquote] sub-form.
+@racket[unquote] sub-form.
@examples[
(eval:alts (#,qq (1 2 (#,uq (+ 1 2)) (#,uq (- 5 1))))
`(1 2 ,(+ 1 2), (- 5 1)))
]
-The @scheme[unquote-splicing] form is similar to @scheme[unquote], but
-its @scheme[_expr] must produce a list, and the
-@scheme[unquote-splicing] form must appear in a context that produces
+The @racket[unquote-splicing] form is similar to @racket[unquote], but
+its @racket[_expr] must produce a list, and the
+@racket[unquote-splicing] form must appear in a context that produces
either a list or a vector. As the name suggests, the resulting list
is spliced into the context of its use.
@examples[
-(eval:alts (#,qq (1 2 (#,(scheme unquote-splicing) (list (+ 1 2) (- 5 1))) 5))
+(eval:alts (#,qq (1 2 (#,(racket unquote-splicing) (list (+ 1 2) (- 5 1))) 5))
`(1 2 ,@(list (+ 1 2) (- 5 1)) 5))
]
-If a @scheme[quasiquote] form appears within an enclosing
-@scheme[quasiquote] form, then the inner @scheme[quasiquote]
-effectively cancels one layer of @scheme[unquote] and
-@scheme[unquote-splicing] forms, so that a second @scheme[unquote]
-or @scheme[unquote-splicing] is needed.
+If a @racket[quasiquote] form appears within an enclosing
+@racket[quasiquote] form, then the inner @racket[quasiquote]
+effectively cancels one layer of @racket[unquote] and
+@racket[unquote-splicing] forms, so that a second @racket[unquote]
+or @racket[unquote-splicing] is needed.
@examples[
(eval:alts (#,qq (1 2 (#,qq (#,uq (+ 1 2)
@@ -48,7 +50,7 @@ or @scheme[unquote-splicing] is needed.
]
The evaluation above will not actually print as shown. Instead, the
-shorthand form of @scheme[quasiquote] and @scheme[unquote] will be
+shorthand form of @racket[quasiquote] and @racket[unquote] will be
used: @litchar{`} (i.e., a backquote) and @litchar{,} (i.e., a comma).
The same shorthands can be used in expressions:
@@ -56,7 +58,7 @@ The same shorthands can be used in expressions:
`(1 2 `(,(+ 1 2) ,,(- 5 1)))
]
-The shorthand for of @scheme[unquote-splicing] is @litchar[",@"]:
+The shorthand for of @racket[unquote-splicing] is @litchar[",@"]:
@examples[
`(1 2 ,@(list (+ 1 2) (- 5 1)))
diff --git a/collects/scribblings/guide/quote.scrbl b/collects/scribblings/guide/quote.scrbl
index d4e51bcc88..ae7facca94 100644
--- a/collects/scribblings/guide/quote.scrbl
+++ b/collects/scribblings/guide/quote.scrbl
@@ -3,63 +3,61 @@
scribble/eval
"guide-utils.ss")
-@title[#:tag "quote"]{Quoting: @scheme[quote] and @schemevalfont{'}}
+@title[#:tag "quote"]{Quoting: @racket[quote] and @racketvalfont{'}}
-@refalso["quote"]{@scheme[quote]}
+@refalso["quote"]{@racket[quote]}
-The @scheme[quote] form produces a constant:
+The @racket[quote] form produces a constant:
-@specform[(#,(schemekeywordfont "quote") datum)]
+@specform[(#,(racketkeywordfont "quote") datum)]
-The syntax of a @scheme[datum] is technically specified as anything
-that the @scheme[read] function parses as a single element. The value
-of the @scheme[quote] form is the same value that @scheme[read] would
-produce given @scheme[_datum].
+The syntax of a @racket[datum] is technically specified as anything
+that the @racket[read] function parses as a single element. The value
+of the @racket[quote] form is the same value that @racket[read] would
+produce given @racket[_datum].
-To a good approximation, the resulting value is such that
-@scheme[_datum] is the value's printed representation. Thus, it can be
-a symbol, a boolean, a number, a (character or byte) string, a
-character, a keyword, an empty list, a pair (or list) containing more
-such values, a vector containing more such values, a hash table
-containing more such values, or a box containing another such value.
+The @racket[_datum] can be a symbol, a boolean, a number, a (character
+or byte) string, a character, a keyword, an empty list, a pair (or
+list) containing more such values, a vector containing more such
+values, a hash table containing more such values, or a box containing
+another such value.
@examples[
-(eval:alts (#,(schemekeywordfont "quote") apple) 'apple)
-(eval:alts (#,(schemekeywordfont "quote") #t) #t)
-(eval:alts (#,(schemekeywordfont "quote") 42) 42)
-(eval:alts (#,(schemekeywordfont "quote") "hello") "hello")
-(eval:alts (#,(schemekeywordfont "quote") ()) '())
-(eval:alts (#,(schemekeywordfont "quote") ((1 2 3) #2("z" x) . the-end)) '((1 2 3) #2("z" x) . the-end))
-(eval:alts (#,(schemekeywordfont "quote") (1 2 #,(schemeparenfont ".") (3))) '(1 2 . (3)))
+(eval:alts (#,(racketkeywordfont "quote") apple) 'apple)
+(eval:alts (#,(racketkeywordfont "quote") #t) #t)
+(eval:alts (#,(racketkeywordfont "quote") 42) 42)
+(eval:alts (#,(racketkeywordfont "quote") "hello") "hello")
+(eval:alts (#,(racketkeywordfont "quote") ()) '())
+(eval:alts (#,(racketkeywordfont "quote") ((1 2 3) #2("z" x) . the-end)) '((1 2 3) #2("z" x) . the-end))
+(eval:alts (#,(racketkeywordfont "quote") (1 2 #,(racketparenfont ".") (3))) '(1 2 . (3)))
]
-As the last example above shows, the @scheme[_datum] does not have to
-be the normalized printed form of a value. A
-@scheme[_datum] cannot be a printed representation that starts with
-@litchar{#<}, however, so it cannot be @|void-const|,
-@|undefined-const|, or a procedure.
+As the last example above shows, the @racket[_datum] does not have to
+match the normalized printed form of a value. A @racket[_datum] cannot
+be a printed representation that starts with @litchar{#<}, so it
+cannot be @|void-const|, @|undefined-const|, or a procedure.
-The @scheme[quote] form is rarely used for a @scheme[_datum] that is a
+The @racket[quote] form is rarely used for a @racket[_datum] that is a
boolean, number, or string by itself, since the printed forms of those
-values can already be used as constants. The @scheme[quote] form is
+values can already be used as constants. The @racket[quote] form is
more typically used for symbols and lists, which have other meanings
(identifiers, function calls, etc.) when not quoted.
An expression
-@specform[(quote @#,schemevarfont{datum})]
+@specform[(quote @#,racketvarfont{datum})]
is a shorthand for
-@schemeblock[
-(#,(schemekeywordfont "quote") #,(scheme _datum))
+@racketblock[
+(#,(racketkeywordfont "quote") #,(racket _datum))
]
and this shorthand is almost always used instead of
-@scheme[quote]. The shorthand applies even within the @scheme[_datum],
-so it can produce a list containing @scheme[quote].
+@racket[quote]. The shorthand applies even within the @racket[_datum],
+so it can produce a list containing @racket[quote].
-@refdetails["parse-quote"]{the @schemevalfont{'} shorthand}
+@refdetails["parse-quote"]{the @racketvalfont{'} shorthand}
@examples[
'apple
diff --git a/collects/scribblings/guide/set.scrbl b/collects/scribblings/guide/set.scrbl
index c1f1ba450a..b2e84423be 100644
--- a/collects/scribblings/guide/set.scrbl
+++ b/collects/scribblings/guide/set.scrbl
@@ -5,17 +5,17 @@
@(interaction-eval (require (lib "mzlib/for.ss")))
-@title[#:tag "set!"]{Assignment: @scheme[set!]}
+@title[#:tag "set!"]{Assignment: @racket[set!]}
-@refalso["set!"]{@scheme[set!]}
+@refalso["set!"]{@racket[set!]}
-Assign to a variable using @scheme[set!]:
+Assign to a variable using @racket[set!]:
@specform[(set! id expr)]
-A @scheme[set!] expression evaluates @scheme[_expr] and changes
-@scheme[_id] (which must be bound in the enclosing environment) to the
-resulting value. The result of the @scheme[set!] expression itself is
+A @racket[set!] expression evaluates @racket[_expr] and changes
+@racket[_id] (which must be bound in the enclosing environment) to the
+resulting value. The result of the @racket[set!] expression itself is
@|void-const|.
@defexamples[
@@ -47,9 +47,9 @@ greeted
@;------------------------------------------------------------------------
@section[#:tag "using-set!"]{Guidelines for Using Assignment}
-Although using @scheme[set!] is sometimes appropriate, Scheme style
-generally discourages the use of @scheme[set!]. The following
-guidelines may help explain when using @scheme[set!] is appropriate.
+Although using @racket[set!] is sometimes appropriate, Racket style
+generally discourages the use of @racket[set!]. The following
+guidelines may help explain when using @racket[set!] is appropriate.
@itemize[
@@ -136,7 +136,7 @@ guidelines may help explain when using @scheme[set!] is appropriate.
]] }
@item{For cases where stateful objects are necessary or appropriate,
- then implementing the object's state with @scheme[set!] is
+ then implementing the object's state with @racket[set!] is
fine.
@as-examples[@t{Ok example:}
@@ -159,24 +159,24 @@ resulting code is significantly more readable or if it implements a
significantly better algorithm.
The use of mutable values, such as vectors and hash tables, raises
-fewer suspicions about the style of a program than using @scheme[set!]
-directly. Nevertheless, simply replacing @scheme[set!]s in a program
-with a @scheme[vector-set!]s obviously does not improve the style of
+fewer suspicions about the style of a program than using @racket[set!]
+directly. Nevertheless, simply replacing @racket[set!]s in a program
+with a @racket[vector-set!]s obviously does not improve the style of
the program.
@;------------------------------------------------------------------------
-@section{Multiple Values: @scheme[set!-values]}
+@section{Multiple Values: @racket[set!-values]}
-@refalso["set!"]{@scheme[set!-values]}
+@refalso["set!"]{@racket[set!-values]}
-The @scheme[set!-values] form assigns to multiple variables at once,
+The @racket[set!-values] form assigns to multiple variables at once,
given an expression that produces an appropriate number of values:
@specform[(set!-values (id ...) expr)]
-This form is equivalent to using @scheme[let-values] to receive
-multiple results from @scheme[_expr], and then assigning the results
-individually to the @scheme[_id]s using @scheme[set!].
+This form is equivalent to using @racket[let-values] to receive
+multiple results from @racket[_expr], and then assigning the results
+individually to the @racket[_id]s using @racket[set!].
@defexamples[
(define game
diff --git a/collects/scribblings/guide/simple-data.scrbl b/collects/scribblings/guide/simple-data.scrbl
index 933debcfdf..9eef1cd2ae 100644
--- a/collects/scribblings/guide/simple-data.scrbl
+++ b/collects/scribblings/guide/simple-data.scrbl
@@ -5,8 +5,8 @@
@title{Simple Values}
-Scheme values include numbers, booleans, strings, and byte strings. In
-DrScheme and documentation examples (when you read the documentation
+Racket values include numbers, booleans, strings, and byte strings. In
+DrRacket and documentation examples (when you read the documentation
in color), value expressions are shown in green.
@defterm{Numbers} are written in the usual way, including fractions
@@ -14,14 +14,14 @@ and imaginary numbers:
@moreguide["numbers"]{numbers}
-@schemeblock[
+@racketblock[
1 3.14
1/2 6.02e+23
1+2i 9999999999999999999999
]
-@defterm{Booleans} are @scheme[#t] for true and @scheme[#f] for
-false. In conditionals, however, all non-@scheme[#f] values are
+@defterm{Booleans} are @racket[#t] for true and @racket[#f] for
+false. In conditionals, however, all non-@racket[#f] values are
treated as true.
@moreguide["booleans"]{booleans}
@@ -34,7 +34,7 @@ appear in a string constant.
@moreguide["strings"]{strings}
-@schemeblock[
+@racketblock[
"Hello, world!"
"Benjamin \"Bugsy\" Siegel"
"\u03BBx:(\u03BC\u03B1.\u03B1\u2192\u03B1).xx"
@@ -42,11 +42,11 @@ appear in a string constant.
When a constant is evaluated in the @tech{REPL}, it typically prints the same
as its input syntax. In some cases, the printed form is a normalized
-version of the input syntax. In documentation and in DrScheme's @tech{REPL},
+version of the input syntax. In documentation and in DrRacket's @tech{REPL},
results are printed in blue instead of green to highlight the
difference between an input expression and a printed result.
@examples[
-(eval:alts (unsyntax (schemevalfont "1.0000")) 1.0000)
-(eval:alts (unsyntax (schemevalfont "\"Bugs \\u0022Figaro\\u0022 Bunny\"")) "Bugs \u0022Figaro\u0022 Bunny")
+(eval:alts (unsyntax (racketvalfont "1.0000")) 1.0000)
+(eval:alts (unsyntax (racketvalfont "\"Bugs \\u0022Figaro\\u0022 Bunny\"")) "Bugs \u0022Figaro\u0022 Bunny")
]
diff --git a/collects/scribblings/guide/simple-syntax.scrbl b/collects/scribblings/guide/simple-syntax.scrbl
index ea8150a5db..085f5ef5cc 100644
--- a/collects/scribblings/guide/simple-syntax.scrbl
+++ b/collects/scribblings/guide/simple-syntax.scrbl
@@ -10,7 +10,7 @@
A program module is written as
-@schemeblock[
+@racketblock[
@#,BNF-seq[@litchar{#lang} @nonterm{langname} @kleenestar{@nonterm{topform}}]
]
@@ -67,11 +67,11 @@ A definition of the form
@moreguide["define"]{definitions}
-@schemeblock[@#,val-defn-stx]
+@racketblock[@#,val-defn-stx]
binds @nonterm{id} to the result of @nonterm{expr}, while
-@schemeblock[@#,fun-defn-stx]
+@racketblock[@#,fun-defn-stx]
binds the first @nonterm{id} to a function (also called a
@defterm{procedure}) that takes arguments as named by the remaining
@@ -81,8 +81,8 @@ the last @nonterm{expr}.
@defexamples[
#:eval ex-eval
-(code:line (define pie 3) (code:comment @#,t{defines @scheme[pie] to be @scheme[3]}))
-(code:line (define (piece str) (code:comment @#,t{defines @scheme[piece] as a function})
+(code:line (define pie 3) (code:comment @#,t{defines @racket[pie] to be @racket[3]}))
+(code:line (define (piece str) (code:comment @#,t{defines @racket[piece] as a function})
(substring str 0 pie)) (code:comment @#,t{ of one argument}))
pie
(piece "key lime")
@@ -113,11 +113,11 @@ evaluated only for some side-effect, such as printing.
(bake "apple")
]
-Scheme programmers prefer to avoid side-effects, so a definition usually
+Racket programmers prefer to avoid side-effects, so a definition usually
has just one expression in its body. It's
important, though, to understand that multiple expressions are allowed
in a definition body, because it explains why the following
-@scheme[nobake] function simply returns its argument:
+@racket[nobake] function simply returns its argument:
@def+int[
#:eval ex-eval
@@ -126,53 +126,53 @@ in a definition body, because it explains why the following
(nobake "green")
]
-Within @scheme[nobake], there are no parentheses around
-@scheme[string-append flavor "jello"], so they are three separate
+Within @racket[nobake], there are no parentheses around
+@racket[string-append flavor "jello"], so they are three separate
expressions instead of one function-call expression. The expressions
-@scheme[string-append] and @scheme[flavor] are evaluated, but the
+@racket[string-append] and @racket[flavor] are evaluated, but the
results are never used. Instead, the result of the function is just
-the result of the final expression, @scheme["jello"].
+the result of the final expression, @racket["jello"].
@; ----------------------------------------------------------------------
@section[#:tag "indentation"]{An Aside on Indenting Code}
-Line breaks and indentation are not significant for parsing Scheme
-programs, but most Scheme programmers use a standard set of conventions
+Line breaks and indentation are not significant for parsing Racket
+programs, but most Racket programmers use a standard set of conventions
to make code more readable. For example, the body of a definition is
typically indented under the first line of the definition. Identifiers
are written immediately after an open parenthesis with no extra space,
and closing parentheses never go on their own line.
-DrScheme automatically indents according to the standard style when
+DrRacket automatically indents according to the standard style when
you type Enter in a program or @tech{REPL} expression. For example, if you
-hit Enter after typing @litchar{(define (greet name)}, then DrScheme
+hit Enter after typing @litchar{(define (greet name)}, then DrRacket
automatically inserts two spaces for the next line. If you change a
-region of code, you can select it in DrScheme and hit Tab, and
-DrScheme will re-indent the code (without inserting any line breaks).
-Editors like Emacs offer a Scheme mode with similar indentation
+region of code, you can select it in DrRacket and hit Tab, and
+DrRacket will re-indent the code (without inserting any line breaks).
+Editors like Emacs offer a Racket or Scheme mode with similar indentation
support.
Re-indenting not only makes the code easier to read, it gives you
-extra feedback that your parentheses are matched in the way that you
+extra feedback that your parentheses match in the way that you
intended. For example, if you leave out a closing parenthesis after
the last argument to a function, automatic indentation starts the
next line under the first argument, instead of under the
-@scheme[define] keyword:
+@racket[define] keyword:
-@schemeblock[
+@racketblock[
(define (halfbake flavor
(string-append flavor " creme brulee")))
]
In this case, indentation helps highlight the mistake. In other cases,
where the indentation may be normal while an open parenthesis has no
-matching close parenthesis, both @exec{mzscheme} and DrScheme use the
+matching close parenthesis, both @exec{racket} and DrRacket use the
source's indentation to suggest where a parenthesis might be missing.
@;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@section{Identifiers}
-Scheme's syntax for identifiers is especially liberal. Excluding the
+Racket's syntax for identifiers is especially liberal. Excluding the
special characters
@moreguide["binding"]{identifiers}
@@ -186,41 +186,41 @@ special characters
and except for the sequences of characters that make number constants,
almost any sequence of non-whitespace characters forms an
-@nonterm{id}. For example @schemeid[substring] is an
-identifier. Also, @schemeid[string-append] and @schemeid[a+b] are
+@nonterm{id}. For example @racketid[substring] is an
+identifier. Also, @racketid[string-append] and @racketid[a+b] are
identifiers, as opposed to arithmetic expressions. Here are several
more examples:
-@schemeblock[
-@#,schemeid[+]
-@#,schemeid[Hfuhruhurr]
-@#,schemeid[integer?]
-@#,schemeid[pass/fail]
-@#,schemeid[john-jacob-jingleheimer-schmidt]
-@#,schemeid[a-b-c+1-2-3]
+@racketblock[
+@#,racketid[+]
+@#,racketid[Hfuhruhurr]
+@#,racketid[integer?]
+@#,racketid[pass/fail]
+@#,racketid[john-jacob-jingleheimer-schmidt]
+@#,racketid[a-b-c+1-2-3]
]
@;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@section{Function Calls@aux-elem{ (Procedure Applications)}}
We have already seen many function calls, which are called
-@defterm{procedure applications} in more traditional Scheme
+@defterm{procedure applications} in more traditional
terminology. The syntax of a function call is
@moreguide["application"]{function calls}
-@schemeblock[
+@racketblock[
#,app-expr-stx
]
where the number of @nonterm{expr}s determines the number of
arguments supplied to the function named by @nonterm{id}.
-The @schememodname[scheme] language pre-defines many function
-identifiers, such as @scheme[substring] and
-@scheme[string-append]. More examples are below.
+The @racketmodname[racket] language pre-defines many function
+identifiers, such as @racket[substring] and
+@racket[string-append]. More examples are below.
-In example Scheme code throughout the documentation, uses of
+In example Racket code throughout the documentation, uses of
pre-defined names are hyperlinked to the reference manual. So, you can
click on an identifier to get full details about its use.
@@ -244,19 +244,19 @@ click on an identifier to get full details about its use.
]
@;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-@section{Conditionals with @scheme[if], @scheme[and], @scheme[or], and @scheme[cond]}
+@section{Conditionals with @racket[if], @racket[and], @racket[or], and @racket[cond]}
-The next simplest kind of expression is an @scheme[if] conditional:
+The next simplest kind of expression is an @racket[if] conditional:
-@schemeblock[
+@racketblock[
#,if-expr-stx
]
@moreguide["conditionals"]{conditionals}
The first @nonterm{expr} is always evaluated. If it produces a
-non-@scheme[#f] value, then the second @nonterm{expr} is
-evaluated for the result of the whole @scheme[if] expression, otherwise
+non-@racket[#f] value, then the second @nonterm{expr} is
+evaluated for the result of the whole @racket[if] expression, otherwise
the third @nonterm{expr} is evaluated for the result.
@examples[
@@ -270,15 +270,15 @@ the third @nonterm{expr} is evaluated for the result.
(if (equal? "hello" (substring s 0 5))
"hi!"
"huh?"))
-(reply "hello scheme")
+(reply "hello racket")
(reply "\u03BBx:(\u03BC\u03B1.\u03B1\u2192\u03B1).xx")
]
-Complex conditionals can be formed by nesting @scheme[if]
-expressions. For example, you could make the @scheme[reply] function
+Complex conditionals can be formed by nesting @racket[if]
+expressions. For example, you could make the @racket[reply] function
work when given non-strings:
-@schemeblock[
+@racketblock[
(define (reply s)
(if (string? s)
(if (equal? "hello" (substring s 0 5))
@@ -287,10 +287,10 @@ work when given non-strings:
"huh?"))
]
-Instead of duplicating the @scheme["huh?"] case, this function is
+Instead of duplicating the @racket["huh?"] case, this function is
better written as
-@schemeblock[
+@racketblock[
(define (reply s)
(if (if (string? s)
(equal? "hello" (substring s 0 5))
@@ -299,20 +299,20 @@ better written as
"huh?"))
]
-but these kinds of nested @scheme[if]s are difficult to read. Scheme
-provides more readable shortcuts through the @scheme[and] and
-@scheme[or] forms, which work with any number of expressions:
+but these kinds of nested @racket[if]s are difficult to read. Racket
+provides more readable shortcuts through the @racket[and] and
+@racket[or] forms, which work with any number of expressions:
-@moreguide["and+or"]{@scheme[and] and @scheme[or]}
+@moreguide["and+or"]{@racket[and] and @racket[or]}
-@schemeblock[
+@racketblock[
#,and-expr-stx
#,or-expr-stx
]
-The @scheme[and] form short-circuits: it stops and returns @scheme[#f]
-when an expression produces @scheme[#f], otherwise it keeps
-going. The @scheme[or] form similarly short-circuits when it
+The @racket[and] form short-circuits: it stops and returns @racket[#f]
+when an expression produces @racket[#f], otherwise it keeps
+going. The @racket[or] form similarly short-circuits when it
encounters a true result.
@defexamples[
@@ -322,14 +322,14 @@ encounters a true result.
(equal? "hello" (substring s 0 5)))
"hi!"
"huh?"))
-(reply "hello scheme")
+(reply "hello racket")
(reply 17)
]
-Another common pattern of nested @scheme[if]s involves a sequence of
+Another common pattern of nested @racket[if]s involves a sequence of
tests, each with its own result:
-@schemeblock[
+@racketblock[
(define (reply-more s)
(if (equal? "hello" (substring s 0 5))
"hi!"
@@ -340,25 +340,25 @@ tests, each with its own result:
"huh?"))))
]
-The shorthand for a sequence of tests is the @scheme[cond] form:
+The shorthand for a sequence of tests is the @racket[cond] form:
-@moreguide["cond"]{@scheme[cond]}
+@moreguide["cond"]{@racket[cond]}
-@schemeblock[
+@racketblock[
#,cond-expr-stx
]
-A @scheme[cond] form contains a sequence of clauses between square
+A @racket[cond] form contains a sequence of clauses between square
brackets. In each clause, the first @nonterm{expr} is a test
expression. If it produces true, then the clause's remaining
@nonterm{expr}s are evaluated, and the last one in the clause provides
-the answer for the entire @scheme[cond] expression; the rest of the
-clauses are ignored. If the test @nonterm{expr} produces @scheme[#f],
+the answer for the entire @racket[cond] expression; the rest of the
+clauses are ignored. If the test @nonterm{expr} produces @racket[#f],
then the clause's remaining @nonterm{expr}s are ignored, and
evaluation continues with the next clause. The last clause can use
-@scheme[else] as a synonym for a @scheme[#t] test expression.
+@racket[else] as a synonym for a @racket[#t] test expression.
-Using @scheme[cond], the @scheme[reply-more] function can be more
+Using @racket[cond], the @racket[reply-more] function can be more
clearly written as follows:
@def+int[
@@ -371,17 +371,17 @@ clearly written as follows:
[(equal? "?" (substring s (- (string-length s) 1)))
"I don't know"]
[else "huh?"]))
-(reply-more "hello scheme")
+(reply-more "hello racket")
(reply-more "goodbye cruel world")
(reply-more "what is your favorite color?")
(reply-more "mine is lime green")
]
-The use of square brackets for @scheme[cond] clauses is a
-convention. In Scheme, parentheses and square brackets are actually
+The use of square brackets for @racket[cond] clauses is a
+convention. In Racket, parentheses and square brackets are actually
interchangable, as long as @litchar{(} is matched with @litchar{)} and
@litchar{[} is matched with @litchar{]}. Using square brackets in a
-few key places makes Scheme code even more readable.
+few key places makes Racket code even more readable.
@;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@section{Function Calls, Again}
@@ -392,12 +392,12 @@ expression for the function, instead of just an @nonterm{id}:
@moreguide["application"]{function calls}
-@schemeblock[
+@racketblock[
#,app2-expr-stx
]
The first @nonterm{expr} is often an @nonterm{id}, such
-as @scheme[string-append] or @scheme[+], but it can be anything that
+as @racket[string-append] or @racket[+], but it can be anything that
evaluates to a function. For example, it can be a conditional
expression:
@@ -419,12 +419,12 @@ parentheses around an expression, you'll most often get an ``expected
a procedure'' error like this one.
@;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-@section{Anonymous Functions with @scheme[lambda]}
+@section{Anonymous Functions with @racket[lambda]}
-Programming in Scheme would be tedious if you had to name all of your
-numbers. Instead of writing @scheme[(+ 1 2)], you'd have to write
+Programming in Racket would be tedious if you had to name all of your
+numbers. Instead of writing @racket[(+ 1 2)], you'd have to write
-@moreguide["lambda"]{@scheme[lambda]}
+@moreguide["lambda"]{@racket[lambda]}
@interaction[
(define a 1)
@@ -433,9 +433,9 @@ numbers. Instead of writing @scheme[(+ 1 2)], you'd have to write
]
It turns out that having to name all your functions can be tedious,
-too. For example, you might have a function @scheme[twice] that takes
-a function and an argument. Using @scheme[twice] is convenient if you
-already have a name for the function, such as @scheme[sqrt]:
+too. For example, you might have a function @racket[twice] that takes
+a function and an argument. Using @racket[twice] is convenient if you
+already have a name for the function, such as @racket[sqrt]:
@def+int[
#:eval ex-eval
@@ -445,7 +445,7 @@ already have a name for the function, such as @scheme[sqrt]:
]
If you want to call a function that is not yet defined, you could
-define it, and then pass it to @scheme[twice]:
+define it, and then pass it to @racket[twice]:
@def+int[
#:eval ex-eval
@@ -454,22 +454,22 @@ define it, and then pass it to @scheme[twice]:
(twice louder "hello")
]
-But if the call to @scheme[twice] is the only place where
-@scheme[louder] is used, it's a shame to have to write a whole
-definition. In Scheme, you can use a @scheme[lambda] expression to
-produce a function directly. The @scheme[lambda] form is followed by
+But if the call to @racket[twice] is the only place where
+@racket[louder] is used, it's a shame to have to write a whole
+definition. In Racket, you can use a @racket[lambda] expression to
+produce a function directly. The @racket[lambda] form is followed by
identifiers for the function's arguments, and then the function's
body expressions:
-@schemeblock[
+@racketblock[
#,lambda-expr-stx
]
-Evaluating a @scheme[lambda] form by itself produces a function:
+Evaluating a @racket[lambda] form by itself produces a function:
@interaction[(lambda (s) (string-append s "!"))]
-Using @scheme[lambda], the above call to @scheme[twice] can be
+Using @racket[lambda], the above call to @racket[twice] can be
re-written as
@interaction[
@@ -480,7 +480,7 @@ re-written as
"hello")
]
-Another use of @scheme[lambda] is as a result for a function that
+Another use of @racket[lambda] is as a result for a function that
generates functions:
@def+int[
@@ -492,11 +492,11 @@ generates functions:
(twice (make-add-suffix "...") "hello")
]
-Scheme is a @defterm{lexically scoped} language, which means that
-@scheme[s2] in the function returned by @scheme[make-add-suffix]
+Racket is a @defterm{lexically scoped} language, which means that
+@racket[s2] in the function returned by @racket[make-add-suffix]
always refers to the argument for the call that created the
-function. In other words, the @scheme[lambda]-generated function
-``remembers'' the right @scheme[s2]:
+function. In other words, the @racket[lambda]-generated function
+``remembers'' the right @racket[s2]:
@interaction[
#:eval ex-eval
@@ -506,12 +506,12 @@ function. In other words, the @scheme[lambda]-generated function
(twice louder "really")
]
-We have so far referred to definitions of the form @scheme[(define
+We have so far referred to definitions of the form @racket[(define
@#,nonterm{id} @#,nonterm{expr})] as ``non-function
definitions.'' This characterization is misleading, because the
-@nonterm{expr} could be a @scheme[lambda] form, in which case
+@nonterm{expr} could be a @racket[lambda] form, in which case
the definition is equivalent to using the ``function'' definition
-form. For example, the following two definitions of @scheme[louder]
+form. For example, the following two definitions of @racket[louder]
are equivalent:
@defs+int[
@@ -525,22 +525,22 @@ are equivalent:
louder
]
-Note that the expression for @scheme[louder] in the second case is an
-``anonymous'' function written with @scheme[lambda], but, if
+Note that the expression for @racket[louder] in the second case is an
+``anonymous'' function written with @racket[lambda], but, if
possible, the compiler infers a name, anyway, to make printing and
error reporting as informative as possible.
@;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
@section[#:tag "local-binding-intro"]{Local Binding with
- @scheme[define], @scheme[let], and @scheme[let*]}
+ @racket[define], @racket[let], and @racket[let*]}
It's time to retract another simplification in our grammar of
-Scheme. In the body of a function, definitions can appear before the
+Racket. In the body of a function, definitions can appear before the
body expressions:
@moreguide["intdefs"]{local (internal) definitions}
-@schemeblock[
+@racketblock[
#,fun-defn2-stx
#,lambda2-expr-stx
]
@@ -550,8 +550,8 @@ function body.
@defexamples[
(define (converse s)
- (define (starts? s2) (code:comment @#,t{local to @scheme[converse]})
- (define len2 (string-length s2)) (code:comment @#,t{local to @scheme[starts?]})
+ (define (starts? s2) (code:comment @#,t{local to @racket[converse]})
+ (define len2 (string-length s2)) (code:comment @#,t{local to @racket[starts?]})
(and (>= (string-length s) len2)
(equal? s2 (substring s 0 len2))))
(cond
@@ -560,24 +560,24 @@ function body.
[else "huh?"]))
(converse "hello!")
(converse "urp")
-(eval:alts (code:line starts? (code:comment @#,t{outside of @scheme[converse], so...}))
+(eval:alts (code:line starts? (code:comment @#,t{outside of @racket[converse], so...}))
(parameterize ([current-namespace (make-base-namespace)]) (eval 'starts?)))
]
-Another way to create local bindings is the @scheme[let] form. An
-advantage of @scheme[let] is that it can be used in any expression
-position. Also, @scheme[let] binds many identifiers at once, instead
-of requiring a separate @scheme[define] for each identifier.
+Another way to create local bindings is the @racket[let] form. An
+advantage of @racket[let] is that it can be used in any expression
+position. Also, @racket[let] binds many identifiers at once, instead
+of requiring a separate @racket[define] for each identifier.
-@moreguide["intdefs"]{@scheme[let] and @scheme[let*]}
+@moreguide["intdefs"]{@racket[let] and @racket[let*]}
-@schemeblock[
+@racketblock[
#,let-expr-stx
]
Each binding clause is an @nonterm{id} and a
@nonterm{expr} surrounded by square brackets, and the
-expressions after the clauses are the body of the @scheme[let]. In
+expressions after the clauses are the body of the @racket[let]. In
each clause, the @nonterm{id} is bound to the result of the
@nonterm{expr} for use in the body.
@@ -590,9 +590,9 @@ each clause, the @nonterm{id} is bound to the result of the
[else "cat's game"]))
]
-The bindings of a @scheme[let] form are available only in the body of
-the @scheme[let], so the binding clauses cannot refer to each
-other. The @scheme[let*] form, in contrast, allows later clauses to
+The bindings of a @racket[let] form are available only in the body of
+the @racket[let], so the binding clauses cannot refer to each
+other. The @racket[let*] form, in contrast, allows later clauses to
use earlier bindings:
@interaction[
diff --git a/collects/scribblings/guide/symbols.scrbl b/collects/scribblings/guide/symbols.scrbl
index 0463aa4fa1..f2f9859163 100644
--- a/collects/scribblings/guide/symbols.scrbl
+++ b/collects/scribblings/guide/symbols.scrbl
@@ -5,9 +5,9 @@
@title[#:tag "symbols"]{Symbols}
-A @deftech{symbol} is an atomic value that prints like an identifier.
-An expression that starts with @litchar{'} and continues with an
-identifier produces a symbol value.
+A @deftech{symbol} is an atomic value that prints like an identifier
+preceded with @litchar{'}. An expression that starts with @litchar{'}
+and continues with an identifier produces a symbol value.
@examples[
'a
@@ -15,13 +15,13 @@ identifier produces a symbol value.
]
For any sequence of characters, exactly one corresponding symbol is
-@defterm{interned}; calling the @scheme[string->symbol] procedure, or
-@scheme[read]ing a syntactic identifier, produces an interned
+@defterm{interned}; calling the @racket[string->symbol] procedure, or
+@racket[read]ing a syntactic identifier, produces an interned
symbol. Since interned symbols can be cheaply compared with
-@scheme[eq?] (and thus @scheme[eqv?] or @scheme[equal?]), they serves
+@racket[eq?] (and thus @racket[eqv?] or @racket[equal?]), they serves
as a convenient values to use for tags and enumerations.
-Symbols are case-sensitive. By using a @schemefont{#ci} prefix or in
+Symbols are case-sensitive. By using a @racketfont{#ci} prefix or in
other ways, the reader can be made to case-fold character sequences to
arrive at a symbol, but the reader preserves case by default.
@@ -30,11 +30,11 @@ arrive at a symbol, but the reader preserves case by default.
(eq? 'a (string->symbol "a"))
(eq? 'a 'b)
(eq? 'a 'A)
-(eval:alts @#,elem{@schemefont{#ci}@schemevalfont{'A}} #ci'A)
+(eval:alts @#,elem{@racketfont{#ci}@racketvalfont{'A}} #ci'A)
]
Any string (i.e., any character sequence) can be supplied to
-@scheme[string->symbol] to obtain the corresponding symbol. For reader
+@racket[string->symbol] to obtain the corresponding symbol. For reader
input, any character can appear directly in an identifier, except for
whitespace and the following special characters:
@@ -61,7 +61,7 @@ special characters or that might otherwise look like numbers.
@refdetails/gory["parse-symbol"]{the syntax of symbols}
-The @scheme[display] form of a symbol is the same as the corresponding
+The @racket[display] form of a symbol is the same as the corresponding
string.
@examples[
@@ -69,9 +69,9 @@ string.
(display '|6|)
]
-The @scheme[gensym] and @scheme[string->uninterned-symbol] procedures
+The @racket[gensym] and @racket[string->uninterned-symbol] procedures
generate fresh @defterm{uninterned} symbols that are not equal
-(according to @scheme[eq?]) to any previously interned or uninterned
+(according to @racket[eq?]) to any previously interned or uninterned
symbol. Uninterned symbols are useful as fresh tags that cannot be
confused with any other value.
diff --git a/collects/scribblings/guide/to-scheme.scrbl b/collects/scribblings/guide/to-scheme.scrbl
index 79b66e42e4..9e23c539e1 100644
--- a/collects/scribblings/guide/to-scheme.scrbl
+++ b/collects/scribblings/guide/to-scheme.scrbl
@@ -3,10 +3,10 @@
scribble/eval
"guide-utils.ss")
-@title[#:tag "to-scheme" #:style 'toc]{Scheme Essentials}
+@title[#:tag "to-scheme" #:style 'toc]{Racket Essentials}
-This chapter provides a quick introduction to Scheme as background for
-the rest of the guide. Readers with some Scheme experience can safely
+This chapter provides a quick introduction to Racket as background for
+the rest of the guide. Readers with some Racket experience can safely
skip to @secref["datatypes"].
@local-table-of-contents[]
diff --git a/collects/scribblings/guide/truth.scrbl b/collects/scribblings/guide/truth.scrbl
index 585e5e04f6..967f6d6868 100644
--- a/collects/scribblings/guide/truth.scrbl
+++ b/collects/scribblings/guide/truth.scrbl
@@ -1,35 +1,36 @@
#lang scribble/doc
@(require scribble/manual
scribble/eval
- scheme/list
+ racket/list
"guide-utils.ss"
- (for-label scheme/list))
+ (for-label racket/list
+ (only-in racket/class is-a?)))
@(define list-eval (make-base-eval))
-@(interaction-eval #:eval list-eval (require scheme/list))
+@(interaction-eval #:eval list-eval (require racket/list))
-@title{Pairs, Lists, and Scheme Syntax}
+@title{Pairs, Lists, and Racket Syntax}
-The @scheme[cons] function actually accepts any two values, not just
+The @racket[cons] function actually accepts any two values, not just
a list for the second argument. When the second argument is not
-@scheme[empty] and not itself produced by @scheme[cons], the result prints
-in a special way. The two values joined with @scheme[cons] are printed
+@racket[empty] and not itself produced by @racket[cons], the result prints
+in a special way. The two values joined with @racket[cons] are printed
between parentheses, but with a dot (i.e., a period surrounded by
whitespace) in between:
@interaction[(cons 1 2) (cons "banana" "split")]
-Thus, a value produced by @scheme[cons] is not always a list. In
-general, the result of @scheme[cons] is a @defterm{pair}. The more
-traditional name for the @scheme[cons?] function is @scheme[pair?],
+Thus, a value produced by @racket[cons] is not always a list. In
+general, the result of @racket[cons] is a @defterm{pair}. The more
+traditional name for the @racket[cons?] function is @racket[pair?],
and we'll use the traditional name from now on.
-The name @scheme[rest] also makes less sense for non-list pairs; the
-more traditional names for @scheme[first] and @scheme[rest] are
-@scheme[car] and @scheme[cdr], respectively. (Granted, the traditional
+The name @racket[rest] also makes less sense for non-list pairs; the
+more traditional names for @racket[first] and @racket[rest] are
+@racket[car] and @racket[cdr], respectively. (Granted, the traditional
names are also nonsense. Just remember that ``a'' comes before ``d,''
-and @scheme[cdr] is pronounced ``could-er.'')
+and @racket[cdr] is pronounced ``could-er.'')
@examples[
#:eval list-eval
@@ -42,24 +43,24 @@ and @scheme[cdr] is pronounced ``could-er.'')
@close-eval[list-eval]
-Scheme's pair datatype and its relation to lists is essentially a
+Racket's pair datatype and its relation to lists is essentially a
historical curiosity, along with the dot notation for printing and the
-funny names @scheme[car] and @scheme[cdr]. Pairs are deeply wired into
-to the culture, specification, and implementation of Scheme, however,
+funny names @racket[car] and @racket[cdr]. Pairs are deeply wired into
+to the culture, specification, and implementation of Racket, however,
so they survive in the language.
You are perhaps most likely to encounter a non-list pair when making a
mistake, such as accidentally reversing the arguments to
-@scheme[cons]:
+@racket[cons]:
@interaction[(cons (list 2 3) 1) (cons 1 (list 2 3))]
Non-list pairs are used intentionally, sometimes. For example, the
-@scheme[make-immutable-hash] function takes a list of pairs, where the
-@scheme[car] of each pair is a key and the @scheme[cdr] is an
+@racket[make-hash] function takes a list of pairs, where the
+@racket[car] of each pair is a key and the @racket[cdr] is an
arbitrary value.
-The only thing more confusing to new Schemers than non-list pairs is
+The only thing more confusing to new Racketeers than non-list pairs is
the printing convention for pairs where the second element @italic{is}
a pair, but @italic{is not} a list:
@@ -68,12 +69,12 @@ a pair, but @italic{is not} a list:
In general, the rule for printing a pair is as follows: use the dot
notation always, but if the dot is immediately followed by an open
parenthesis, then remove the dot, the open parenthesis, and the
-matching close parenthesis. Thus, @schemeresultfont{(0 . (1 . 2))}
-becomes @schemeresult[(0 1 . 2)], and
-@schemeresultfont{(1 . (2 . (3 . ())))} becomes @schemeresult[(1 2 3)].
+matching close parenthesis. Thus, @racketresultfont{`(0 . (1 . 2))}
+becomes @racketresult[`(0 1 . 2)], and
+@racketresultfont{`(1 . (2 . (3 . ())))} becomes @racketresult[`(1 2 3)].
@;------------------------------------------------------------------------
-@section[#:tag "quoting-lists"]{Quoting Pairs and Symbols with @scheme[quote]}
+@section[#:tag "quoting-lists"]{Quoting Pairs and Symbols with @racket[quote]}
After you see
@@ -82,79 +83,86 @@ After you see
]
enough times, you'll wish (or you're already wishing) that there was a
-way to write just @scheme[((1) (2) (3))] and have it mean the list of
-lists that prints as @schemeresult[((1) (2) (3))]. The @scheme[quote]
+way to write just @racket[((1) (2) (3))] and have it mean the list of
+lists that prints as @racketresult[`((1) (2) (3))]. The @racket[quote]
form does exactly that:
@interaction[
-(eval:alts (@#,scheme[quote] ((1) (2) (3))) '((1) (2) (3)))
-(eval:alts (@#,scheme[quote] ("red" "green" "blue")) '("red" "green" "blue"))
-(eval:alts (@#,scheme[quote] ()) '())
+(eval:alts (@#,racket[quote] ((1) (2) (3))) '((1) (2) (3)))
+(eval:alts (@#,racket[quote] ("red" "green" "blue")) '("red" "green" "blue"))
+(eval:alts (@#,racket[quote] ()) '())
]
-The @scheme[quote] form works with the dot notation, too, whether the
+The @racket[quote] form works with the dot notation, too, whether the
quoted form is normalized by the dot-parenthesis elimination rule or
not:
@interaction[
-(eval:alts (@#,scheme[quote] (1 . 2)) '(1 . 2))
-(eval:alts (@#,scheme[quote] (0 @#,schemeparenfont{.} (1 . 2))) '(0 . (1 . 2)))
+(eval:alts (@#,racket[quote] (1 . 2)) '(1 . 2))
+(eval:alts (@#,racket[quote] (0 @#,racketparenfont{.} (1 . 2))) '(0 . (1 . 2)))
]
Naturally, lists of any kind can be nested:
@interaction[
(list (list 1 2 3) 5 (list "a" "b" "c"))
-(eval:alts (@#,scheme[quote] ((1 2 3) 5 ("a" "b" "c"))) '((1 2 3) 5 ("a" "b" "c")))
+(eval:alts (@#,racket[quote] ((1 2 3) 5 ("a" "b" "c"))) '((1 2 3) 5 ("a" "b" "c")))
]
-If you wrap an identifier with @scheme[quote], then you get output
-that looks like an identifier:
+If you wrap an identifier with @racket[quote], then you get output
+that looks like an identifier, but with a @litchar{'} prefix:
@interaction[
-(eval:alts (@#,scheme[quote] jane-doe) 'jane-doe)
+(eval:alts (@#,racket[quote] jane-doe) 'jane-doe)
]
A value that prints like an identifier is a @defterm{symbol}. In the
same way that parenthesized output should not be confused with
expressions, a printed symbol should not be confused with an
-identifier. In particular, the symbol @scheme[(@#,scheme[quote]
-@#,schemeidfont{map})] has nothing to do with the @schemeidfont{map}
+identifier. In particular, the symbol @racket[(@#,racket[quote]
+@#,racketidfont{map})] has nothing to do with the @racketidfont{map}
identifier or the predefined function that is bound to
-@scheme[map], except that the symbol and the identifier happen
+@racket[map], except that the symbol and the identifier happen
to be made up of the same letters.
Indeed, the intrinsic value of a symbol is nothing more than its
character content. In this sense, symbols and strings are almost the
same thing, and the main difference is how they print. The functions
-@scheme[symbol->string] and @scheme[string->symbol] convert between
+@racket[symbol->string] and @racket[string->symbol] convert between
them.
@examples[
map
-(eval:alts (@#,scheme[quote] @#,schemeidfont{map}) 'map)
-(eval:alts (symbol? (@#,scheme[quote] @#,schemeidfont{map})) (symbol? 'map))
+(eval:alts (@#,racket[quote] @#,racketidfont{map}) 'map)
+(eval:alts (symbol? (@#,racket[quote] @#,racketidfont{map})) (symbol? 'map))
(symbol? map)
(procedure? map)
(string->symbol "map")
-(eval:alts (symbol->string (@#,scheme[quote] @#,schemeidfont{map})) (symbol->string 'map))
+(eval:alts (symbol->string (@#,racket[quote] @#,racketidfont{map})) (symbol->string 'map))
]
-When @scheme[quote] is used on a parenthesized sequence of
+When @racket[quote] is used on a parenthesized sequence of
identifiers, it creates a list of symbols:
@interaction[
-(eval:alts (@#,scheme[quote] (@#,schemeidfont{road} @#,schemeidfont{map})) '(road map))
-(eval:alts (car (@#,scheme[quote] (@#,schemeidfont{road} @#,schemeidfont{map}))) (car '(road map)))
-(eval:alts (symbol? (car (@#,scheme[quote] (@#,schemeidfont{road} @#,schemeidfont{map})))) (symbol? (car '(road map))))
+(eval:alts (car (@#,racket[quote] (@#,racketidfont{road} @#,racketidfont{map}))) (car '(road map)))
+(eval:alts (symbol? (car (@#,racket[quote] (@#,racketidfont{road} @#,racketidfont{map})))) (symbol? (car '(road map))))
+]
+
+When a symbol is inside a
+list that is printed with @litchar{`}, the @litchar{'} on the symbol
+is omitted, since @litchar{`} is doing the job already:
+
+@interaction[
+(eval:alts (@#,racket[quote] (@#,racketidfont{road} @#,racketidfont{map})) '(road map))
]
@;------------------------------------------------------------------------
-@section{Abbreviating @scheme[quote] with @schemevalfont{'}}
+@section{Abbreviating @racket[quote] with @racketvalfont{'}}
-If @scheme[(@#,scheme[quote] (1 2 3))] still seems like too much
+If @racket[(@#,racket[quote] (1 2 3))] still seems like too much
typing, you can abbreviate by just putting @litchar{'} in front of
-@scheme[(1 2 3)]:
+@racket[(1 2 3)]:
@interaction[
'(1 2 3)
@@ -162,31 +170,30 @@ typing, you can abbreviate by just putting @litchar{'} in front of
'((1 2 3) road ("a" "b" "c"))
]
-In the documentation, @litchar{'} is printed in green along with the
+In the documentation, @litchar{'} within an expression is printed in green along with the
form after it, since the combination is an expression that is a
-constant. In DrScheme, only the @litchar{'} is colored green. DrScheme
-is more precisely correct, because the meaning of @scheme[quote] can
+constant. In DrRacket, only the @litchar{'} is colored green. DrRacket
+is more precisely correct, because the meaning of @racket[quote] can
vary depending on the context of an expression. In the documentation,
however, we routinely assume that standard bindings are in scope, and
so we paint quoted forms in green for extra clarity.
-A @litchar{'} expands to a @scheme[quote] form in quite a literal
+A @litchar{'} expands to a @racket[quote] form in quite a literal
way. You can see this if you put a @litchar{'} in front of a form that has a
@litchar{'}:
@interaction[
-(eval:alts (car '(@#,schemevalfont{quote} @#,schemevalfont{road})) 'quote)
+(eval:alts (car '(@#,racketvalfont{quote} @#,racketvalfont{road})) 'quote)
(car ''road)
]
Beware, however, that the @tech{REPL}'s printer recognizes the symbol
-@schemeidfont{quote} when printing output, and then it uses
-@schemeidfont{'} in the output:
+@racketidfont{quote} when printing output, and then it uses
+@racketidfont{'} in the output:
@interaction[
-'road
-''road
-(eval:alts '(@#,schemevalfont{quote} @#,schemevalfont{road}) ''road)
+(eval:alts (list (@#,racketvalfont{quote} (@#,racketvalfont{quote} @#,racketvalfont{road}))) '('road))
+(list ''road)
]
@; FIXME:
@@ -194,13 +201,48 @@ Beware, however, that the @tech{REPL}'s printer recognizes the symbol
@; different than what "list" creates
@;------------------------------------------------------------------------
-@section[#:tag "lists-and-syntax"]{Lists and Scheme Syntax}
+@section{Quasiquoting with @racketvalfont{`}}
+
+At this point, you may wonder why a symbol that is written with
+@litchar{'} prints back with @litchar{'}, while a list that is written
+with @litchar{'} prints back with @litchar{`}:
+
+@interaction[
+'road
+'(left right)
+]
+
+The @litchar{`} character is a shorthand for @racket[quasiquote] in
+the same way that @litchar{'} is short for @racket[quote]. The
+@racket[quasiquote] form is like @scheme[quote], except that the
+content of a @scheme[quasiquote]d form can escape back to a Racket
+expression using @racket[unquote], which is abbreviated @litchar{,}:
+
+@moreguide["qq"]{@racket[quasiquote]}
+
+@interaction[
+`(1 ,(+ 1 1) "buckle my shoe")
+]
+
+The value printer in Racket uses @litchar{`} for a lists in case it
+must escape to print certain kinds of values that cannot be written
+directly under @scheme[quote]. For example, a source-location record
+is created with the @racket[srcloc] function, and it prints like an
+equivalent call to @racket[srcloc]:
+
+@interaction[
+(srcloc "file.rkt" 1 0 1 (+ 4 4))
+(list 'here (srcloc "file.rkt" 1 0 1 8) 'there)
+]
+
+@;------------------------------------------------------------------------
+@section[#:tag "lists-and-syntax"]{Lists and Racket Syntax}
Now that you know the truth about pairs and lists, and now that you've
-seen @scheme[quote], you're ready to understand the main way in which
-we have been simplifying Scheme's true syntax.
+seen @racket[quote], you're ready to understand the main way in which
+we have been simplifying Racket's true syntax.
-The syntax of Scheme is not defined directly in terms of character
+The syntax of Racket is not defined directly in terms of character
streams. Instead, the syntax is determined by two layers:
@itemize[
@@ -223,13 +265,13 @@ One consequence of the read layer for expressions is that you can use
the dot notation in expressions that are not quoted forms:
@interaction[
-(eval:alts (+ 1 . @#,scheme[(2)]) (+ 1 2))
+(eval:alts (+ 1 . @#,racket[(2)]) (+ 1 2))
]
-This works because @scheme[(+ 1 . @#,scheme[(2)])] is just another
-way of writing @scheme[(+ 1 2)]. It is practically never a good idea
+This works because @racket[(+ 1 . @#,racket[(2)])] is just another
+way of writing @racket[(+ 1 2)]. It is practically never a good idea
to write application expressions using this dot notation; it's just a
-consequence of the way Scheme's syntax is defined.
+consequence of the way Racket's syntax is defined.
Normally, @litchar{.} is allowed by the reader only with a
parenthesized sequence, and only before the last element of the
@@ -245,6 +287,6 @@ conversion enables a kind of general infix notation:
]
This two-dot convention is non-traditional, and it has essentially
-nothing to do with the dot notation for non-list pairs. PLT Scheme
+nothing to do with the dot notation for non-list pairs. Racket
programmers use the infix convention sparingly---mostly for asymmetric
-binary operators such as @scheme[<] and @scheme[is-a?].
+binary operators such as @racket[<] and @racket[is-a?].
diff --git a/collects/scribblings/guide/unit.scrbl b/collects/scribblings/guide/unit.scrbl
index 4b409a6365..7ca25c67ce 100644
--- a/collects/scribblings/guide/unit.scrbl
+++ b/collects/scribblings/guide/unit.scrbl
@@ -3,16 +3,16 @@
scribble/eval
"guide-utils.ss"
- (for-label scheme/unit
- scheme/class))
+ (for-label racket/unit
+ racket/class))
@(define toy-eval (make-base-eval))
-@(interaction-eval #:eval toy-eval (require scheme/unit))
+@(interaction-eval #:eval toy-eval (require racket/unit))
-@(define-syntax-rule (schememod/eval [pre ...] form more ...)
+@(define-syntax-rule (racketmod/eval [pre ...] form more ...)
(begin
- (schememod pre ... form more ...)
+ (racketmod pre ... form more ...)
(interaction-eval #:eval toy-eval form)))
@title[#:tag "units" #:style 'toc]{Units@aux-elem{ (Components)}}
@@ -40,15 +40,15 @@ re-exports some variables from the linked units for further linking.
The interface of a unit is described in terms of
@deftech{signatures}. Each signature is defined (normally within a
-@scheme[module]) using @scheme[define-signature]. For example, the
+@racket[module]) using @racket[define-signature]. For example, the
following signature, placed in a @filepath{toy-factory-sig.ss} file,
describes the exports of a component that implements a toy factory:
@margin-note{By convention, signature names with @litchar{^}.}
-@schememod/eval[[#:file
+@racketmod/eval[[#:file
"toy-factory-sig.ss"
-scheme]
+racket]
(define-signature toy-factory^
(build-toys (code:comment #, @tt{(integer? -> (listof toy?))})
@@ -59,15 +59,15 @@ scheme]
(provide toy-factory^)
]
-An implementation of the @scheme[toy-factory^] signature is written
-using @scheme[define-unit] with an @scheme[export] clause that names
-@scheme[toy-factory^]:
+An implementation of the @racket[toy-factory^] signature is written
+using @racket[define-unit] with an @racket[export] clause that names
+@racket[toy-factory^]:
@margin-note{By convention, unit names with @litchar["@"].}
-@schememod/eval[[#:file
+@racketmod/eval[[#:file
"simple-factory-unit.ss"
-scheme
+racket
(require "toy-factory-sig.ss")]
@@ -89,16 +89,16 @@ scheme
(provide simple-factory@)
]
-The @scheme[toy-factory^] signature also could be referenced by a unit
+The @racket[toy-factory^] signature also could be referenced by a unit
that needs a toy factory to implement something else. In that case,
-@scheme[toy-factory^] would be named in an @scheme[import] clause.
+@racket[toy-factory^] would be named in an @racket[import] clause.
For example, a toy store would get toys from a toy factory. (Suppose,
for the sake of an example with interesting features, that the store
is willing to sell only toys in a particular color.)
-@schememod/eval[[#:file
+@racketmod/eval[[#:file
"toy-store-sig.ss"
-scheme]
+racket]
(define-signature toy-store^
(store-color (code:comment #, @tt{(-> symbol?)})
@@ -108,9 +108,9 @@ scheme]
(provide toy-store^)
]
-@schememod/eval[[#:file
+@racketmod/eval[[#:file
"toy-store-unit.ss"
-scheme
+racket
(require "toy-store-sig.ss"
"toy-factory-sig.ss")]
@@ -142,15 +142,15 @@ scheme
Note that @filepath{toy-store-unit.ss} imports
@filepath{toy-factory-sig.ss}, but not
@filepath{simple-factory-unit.ss}. Consequently, the
-@scheme[toy-store@] unit relies only on the specification of a toy
+@racket[toy-store@] unit relies only on the specification of a toy
factory, not on a specific implementation.
@; ----------------------------------------
@section{Invoking Units}
-The @scheme[simple-factory@] unit has no imports, so it can be
-@tech{invoked} directly using @scheme[invoke-unit]:
+The @racket[simple-factory@] unit has no imports, so it can be
+@tech{invoked} directly using @racket[invoke-unit]:
@interaction[
#:eval toy-eval
@@ -158,9 +158,9 @@ The @scheme[simple-factory@] unit has no imports, so it can be
(invoke-unit simple-factory@)
]
-The @scheme[invoke-unit] form does not make the body definitions
+The @racket[invoke-unit] form does not make the body definitions
available, however, so we cannot build any toys with this factory. The
-@scheme[define-values/invoke-unit] form binds the identifiers of a
+@racket[define-values/invoke-unit] form binds the identifiers of a
signature to the values supplied by a unit (to be @tech{invoked}) that
implements the signature:
@@ -170,16 +170,16 @@ implements the signature:
(build-toys 3)
]
-Since @scheme[simple-factory@] exports the @scheme[toy-factory^]
-signature, each identifier in @scheme[toy-factory^] is defined by the
-@scheme[define-values/invoke-unit/infer] form. The
-@schemeidfont{/infer} part of the form name indicates that the
+Since @racket[simple-factory@] exports the @racket[toy-factory^]
+signature, each identifier in @racket[toy-factory^] is defined by the
+@racket[define-values/invoke-unit/infer] form. The
+@racketidfont{/infer} part of the form name indicates that the
identifiers bound by the declaration are inferred from
-@scheme[simple-factory@].
+@racket[simple-factory@].
-Now that the identifiers in @scheme[toy-factory^] are defined, we can
-also invoke @scheme[toy-store@], which imports @scheme[toy-factory^]
-to produce @scheme[toy-store^]:
+Now that the identifiers in @racket[toy-factory^] are defined, we can
+also invoke @racket[toy-store@], which imports @racket[toy-factory^]
+to produce @racket[toy-store^]:
@interaction[
#:eval toy-eval
@@ -190,11 +190,11 @@ to produce @scheme[toy-store^]:
(get-inventory)
]
-Again, the @schemeidfont{/infer} part
-@scheme[define-values/invoke-unit/infer] determines that
-@scheme[toy-store@] imports @scheme[toy-factory^], and so it supplies
-the top-level bindings that match the names in @scheme[toy-factory^]
-as imports to @scheme[toy-store@].
+Again, the @racketidfont{/infer} part
+@racket[define-values/invoke-unit/infer] determines that
+@racket[toy-store@] imports @racket[toy-factory^], and so it supplies
+the top-level bindings that match the names in @racket[toy-factory^]
+as imports to @racket[toy-store@].
@; ----------------------------------------
@@ -203,11 +203,11 @@ as imports to @scheme[toy-store@].
We can make our toy economy more efficient by having toy factories
that cooperate with stores, creating toys that do not have to be
repainted. Instead, the toys are always created using the store's
-color, which the factory gets by importing @scheme[toy-store^]:
+color, which the factory gets by importing @racket[toy-store^]:
-@schememod/eval[[#:file
+@racketmod/eval[[#:file
"store-specific-factory-unit.ss"
-scheme
+racket
(require "toy-factory-sig.ss")]
@@ -229,14 +229,14 @@ scheme
(provide store-specific-factory@)
]
-To invoke @scheme[store-specific-factory@], we need
-@scheme[toy-store^] bindings to supply to the unit. But to get
-@scheme[toy-store^] bindings by invoking @scheme[toy-store@], we will
+To invoke @racket[store-specific-factory@], we need
+@racket[toy-store^] bindings to supply to the unit. But to get
+@racket[toy-store^] bindings by invoking @racket[toy-store@], we will
need a toy factory! The unit implementations are mutually dependent,
and we cannot invoke either before the other.
The solution is to @deftech{link} the units together, and then we can
-invoke the combined units. The @scheme[define-compound-unit/infer] form
+invoke the combined units. The @racket[define-compound-unit/infer] form
links any number of units to form a combined unit. It can propagate
imports and exports from the linked units, and it can satisfy each
unit's imports using the exports of other linked units.
@@ -251,10 +251,10 @@ unit's imports using the exports of other linked units.
toy-store@))
]
-The overall result above is a unit @scheme[toy-store+factory@] that
-exports both @scheme[toy-factory^] and @scheme[toy-store^]. The
-connection between @scheme[store-specific-factory@] and
-@scheme[toy-store@] is inferred from the signatures that each imports
+The overall result above is a unit @racket[toy-store+factory@] that
+exports both @racket[toy-factory^] and @racket[toy-store^]. The
+connection between @racket[store-specific-factory@] and
+@racket[toy-store@] is inferred from the signatures that each imports
and exports.
This unit has no imports, so we can always invoke it:
@@ -271,15 +271,15 @@ This unit has no imports, so we can always invoke it:
@section[#:tag "firstclassunits"]{First-Class Units}
-The @scheme[define-unit] form combines @scheme[define] with a
-@scheme[unit] form, similar to the way that @scheme[(define (f x)
-....)] combines @scheme[define] followed by an identifier with an
-implicit @scheme[lambda].
+The @racket[define-unit] form combines @racket[define] with a
+@racket[unit] form, similar to the way that @racket[(define (f x)
+....)] combines @racket[define] followed by an identifier with an
+implicit @racket[lambda].
-Expanding the shorthand, the definition of @scheme[toy-store@] could
+Expanding the shorthand, the definition of @racket[toy-store@] could
almost be written as
-@schemeblock[
+@racketblock[
(define toy-store@
(unit
(import toy-factory^)
@@ -291,23 +291,23 @@ almost be written as
....))
]
-A difference between this expansion and @scheme[define-unit] is that
-the imports and exports of @scheme[toy-store@] cannot be
-inferred. That is, besides combining @scheme[define] and
-@scheme[unit], @scheme[define-unit] attaches static information to the
+A difference between this expansion and @racket[define-unit] is that
+the imports and exports of @racket[toy-store@] cannot be
+inferred. That is, besides combining @racket[define] and
+@racket[unit], @racket[define-unit] attaches static information to the
defined identifier so that its signature information is available
-statically to @scheme[define-values/invoke-unit/infer] and other
+statically to @racket[define-values/invoke-unit/infer] and other
forms.
Despite the drawback of losing static signature information,
-@scheme[unit] can be useful in combination with other forms that work
-with first-class values. For example, we could wrap a @scheme[unit]
-that creates a toy store in a @scheme[lambda] to supply the store's
+@racket[unit] can be useful in combination with other forms that work
+with first-class values. For example, we could wrap a @racket[unit]
+that creates a toy store in a @racket[lambda] to supply the store's
color:
-@schememod/eval[[#:file
+@racketmod/eval[[#:file
"toy-store-maker.ss"
-scheme
+racket
(require "toy-store-sig.ss"
"toy-factory-sig.ss")]
@@ -340,9 +340,9 @@ scheme
(provide toy-store@-maker)
]
-To invoke a unit created by @scheme[toy-store@-maker], we must use
-@scheme[define-values/invoke-unit], instead of the
-@schemeidfont{/infer} variant:
+To invoke a unit created by @racket[toy-store@-maker], we must use
+@racket[define-values/invoke-unit], instead of the
+@racketidfont{/infer} variant:
@interaction[
#:eval toy-eval
@@ -356,17 +356,17 @@ To invoke a unit created by @scheme[toy-store@-maker], we must use
(get-inventory)
]
-In the @scheme[define-values/invoke-unit] form, the @scheme[(import
+In the @racket[define-values/invoke-unit] form, the @racket[(import
toy-factory^)] line takes bindings from the current context that match
-the names in @scheme[toy-factory^] (the ones that we created by
-invoking @scheme[simple-factory@]), and it supplies them as imports to
-@scheme[toy-store@]. The @scheme[(export toy-store^)] clause indicates
-that the unit produced by @scheme[toy-store@-maker] will export
-@scheme[toy-store^], and the names from that signature are defined
+the names in @racket[toy-factory^] (the ones that we created by
+invoking @racket[simple-factory@]), and it supplies them as imports to
+@racket[toy-store@]. The @racket[(export toy-store^)] clause indicates
+that the unit produced by @racket[toy-store@-maker] will export
+@racket[toy-store^], and the names from that signature are defined
after invoking the unit.
-To link a unit from @scheme[toy-store@-maker], we can use the
-@scheme[compound-unit] form:
+To link a unit from @racket[toy-store@-maker], we can use the
+@racket[compound-unit] form:
@interaction[
#:eval toy-eval
@@ -379,27 +379,27 @@ To link a unit from @scheme[toy-store@-maker], we can use the
[((TS : toy-store^)) toy-store@ TF])))
]
-This @scheme[compound-unit] form packs a lot of information into one
-place. The left-hand-side @scheme[TF] and @scheme[TS] in the
-@scheme[link] clause are binding identifiers. The identifier
-@scheme[TF] is essentially bound to the elements of
-@scheme[toy-factory^] as implemented by
-@scheme[store-specific-factory@]. The identifier @scheme[TS] is
-similarly bound to the elements of @scheme[toy-store^] as implemented
-by @scheme[toy-store@]. Meanwhile, the elements bound to @scheme[TS]
-are supplied as imports for @scheme[store-specific-factory@], since
-@scheme[TS] follows @scheme[store-specific-factory@]. The elements
-bound to @scheme[TF] are similarly supplied to
-@scheme[toy-store@]. Finally, @scheme[(export TF TS)] indicates that
-the elements bound to @scheme[TF] and @scheme[TS] are exported from
+This @racket[compound-unit] form packs a lot of information into one
+place. The left-hand-side @racket[TF] and @racket[TS] in the
+@racket[link] clause are binding identifiers. The identifier
+@racket[TF] is essentially bound to the elements of
+@racket[toy-factory^] as implemented by
+@racket[store-specific-factory@]. The identifier @racket[TS] is
+similarly bound to the elements of @racket[toy-store^] as implemented
+by @racket[toy-store@]. Meanwhile, the elements bound to @racket[TS]
+are supplied as imports for @racket[store-specific-factory@], since
+@racket[TS] follows @racket[store-specific-factory@]. The elements
+bound to @racket[TF] are similarly supplied to
+@racket[toy-store@]. Finally, @racket[(export TF TS)] indicates that
+the elements bound to @racket[TF] and @racket[TS] are exported from
the compound unit.
-The above @scheme[compound-unit] form uses
-@scheme[store-specific-factory@] as a first-class unit, even though
+The above @racket[compound-unit] form uses
+@racket[store-specific-factory@] as a first-class unit, even though
its information could be inferred. Every unit can be used as a
first-class unit, in addition to its use in inference contexts. Also,
various forms let a programmer bridge the gap between inferred and
-first-class worlds. For example, @scheme[define-unit-binding] binds a
+first-class worlds. For example, @racket[define-unit-binding] binds a
new identifier to the unit produced by an arbitrary expression; it
statically associates signature information to the identifier, and it
dynamically checks the signatures against the first-class unit
@@ -407,18 +407,18 @@ produced by the expression.
@; ----------------------------------------
-@section{Whole-@scheme[module] Signatures and Units}
+@section{Whole-@racket[module] Signatures and Units}
In programs that use units, modules like @filepath{toy-factory-sig.ss}
and @filepath{simple-factory-unit.ss} are common. The
-@scheme[scheme/signature] and @scheme[scheme/unit] module names can be
+@racket[racket/signature] and @racket[racket/unit] module names can be
used as languages to avoid much of the boilerplate module, signature,
and unit declaration text.
For example, @filepath{toy-factory-sig.ss} can be written as
-@schememod[
-scheme/signature
+@racketmod[
+racket/signature
build-toys (code:comment #, @tt{(integer? -> (listof toy?))})
repaint (code:comment #, @tt{(toy? symbol? -> toy?)})
@@ -426,14 +426,14 @@ toy? (code:comment #, @tt{(any/c -> boolean?)})
toy-color (code:comment #, @tt{(toy? -> symbol?)})
]
-The signature @scheme[toy-factory^] is automatically provided from the
+The signature @racket[toy-factory^] is automatically provided from the
module, inferred from the filename @filepath{toy-factory-sig.ss} by
-replacing the @filepath{-sig.ss} suffix with @schemeidfont{^}.
+replacing the @filepath{-sig.ss} suffix with @racketidfont{^}.
Similarly, @filepath{simple-factory-unit.ss} module can be written
-@schememod[
-scheme/unit
+@racketmod[
+racket/unit
(require "toy-factory-sig.ss")
@@ -452,13 +452,13 @@ scheme/unit
(make-toy col))
]
-The unit @scheme[simple-factory@] is automatically provided from the
+The unit @racket[simple-factory@] is automatically provided from the
module, inferred from the filename @filepath{simple-factory-unit.ss} by
-replacing the @filepath{-unit.ss} suffix with @schemeidfont["@"].
+replacing the @filepath{-unit.ss} suffix with @racketidfont["@"].
@; ----------------------------------------
-@(interaction-eval #:eval toy-eval (require scheme/contract))
+@(interaction-eval #:eval toy-eval (require racket/contract))
@section{Contracts for Units}
@@ -470,12 +470,12 @@ when a unit must conform to an already existing signature.
When contracts are added to a signature, then all units which implement
that signature are protected by those contracts. The following version
-of the @scheme[toy-factory^] signature adds the contracts previously
+of the @racket[toy-factory^] signature adds the contracts previously
written in comments:
-@schememod/eval[[#:file
+@racketmod/eval[[#:file
"contracted-toy-factory-sig.ss"
-scheme]
+racket]
(define-signature contracted-toy-factory^
((contracted
@@ -486,12 +486,12 @@ scheme]
(provide contracted-toy-factory^)]
-Now we take the previous implementation of @scheme[simple-factory@] and
-implement this version of @scheme[toy-factory^] instead:
+Now we take the previous implementation of @racket[simple-factory@] and
+implement this version of @racket[toy-factory^] instead:
-@schememod/eval[[#:file
+@racketmod/eval[[#:file
"contracted-simple-factory-unit.ss"
-scheme
+racket
(require "contracted-toy-factory-sig.ss")]
@@ -530,17 +530,17 @@ causes the appropriate contract errors.
However, sometimes we may have a unit that must conform to an
already existing signature that is not contracted. In this case,
-we can create a unit contract with @scheme[unit/c] or use
-the @scheme[define-unit/contract] form, which defines a unit which
+we can create a unit contract with @racket[unit/c] or use
+the @racket[define-unit/contract] form, which defines a unit which
has been wrapped with a unit contract.
-For example, here's a version of @scheme[toy-factory@] which still
-implements the regular @scheme[toy-factory^], but whose exports
+For example, here's a version of @racket[toy-factory@] which still
+implements the regular @racket[toy-factory^], but whose exports
have been protected with an appropriate unit contract.
-@schememod/eval[[#:file
+@racketmod/eval[[#:file
"wrapped-simple-factory-unit.ss"
-scheme
+racket
(require "toy-factory-sig.ss")]
@@ -578,32 +578,32 @@ scheme
@; ----------------------------------------
-@section{@scheme[unit] versus @scheme[module]}
+@section{@racket[unit] versus @racket[module]}
-As a form for modularity, @scheme[unit] complements @scheme[module]:
+As a form for modularity, @racket[unit] complements @racket[module]:
@itemize[
- @item{The @scheme[module] form is primarily for managing a universal
+ @item{The @racket[module] form is primarily for managing a universal
namespace. For example, it allows a code fragment to refer
- specifically to the @scheme[car] operation from
- @schememodname[scheme/base]---the one that extracts the first
+ specifically to the @racket[car] operation from
+ @racketmodname[racket/base]---the one that extracts the first
element of an instance of the built-in pair datatype---as
opposed to any number of other functions with the name
- @scheme[car]. In other word, the @scheme[module] construct lets
+ @racket[car]. In other word, the @racket[module] construct lets
you refer to @emph{the} binding that you want.}
- @item{The @scheme[unit] form is for parameterizing a code fragment
+ @item{The @racket[unit] form is for parameterizing a code fragment
with respect to most any kind of run-time value. For example,
- it allows a code fragement for work with a @scheme[car]
+ it allows a code fragement for work with a @racket[car]
function that accepts a single argument, where the specific
function is determined later by linking the fragment to
- another. In other words, the @scheme[unit] construct lets you
+ another. In other words, the @racket[unit] construct lets you
refer to @emph{a} binding that meets some specification.}
]
-The @scheme[lambda] and @scheme[class] forms, among others, also allow
+The @racket[lambda] and @racket[class] forms, among others, also allow
paremetrization of code with respect to values that are chosen
later. In principle, any of those could be implemented in terms of any
of the others. In practice, each form offers certain
@@ -611,22 +611,22 @@ conveniences---such as allowing overriding of methods or especially
simple application to values---that make them suitable for different
purposes.
-The @scheme[module] form is more fundamental than the others, in a
+The @racket[module] form is more fundamental than the others, in a
sense. After all, a program fragment cannot reliably refer to
-@scheme[lambda], @scheme[class], or @scheme[unit] form without the
-namespace management provided by @scheme[module]. At the same time,
+@racket[lambda], @racket[class], or @racket[unit] form without the
+namespace management provided by @racket[module]. At the same time,
because namespace management is closely related to separate expansion
-and compilation, @scheme[module] boundaries end up as
+and compilation, @racket[module] boundaries end up as
separate-compilation boundaries in a way that prohibits mutual
-dependencies among fragments. For similar reasons, @scheme[module]
+dependencies among fragments. For similar reasons, @racket[module]
does not separate interface from implementation.
-Use @scheme[unit] when @scheme[module] by itself almost works, but
+Use @racket[unit] when @racket[module] by itself almost works, but
when separately compiled pieces must refer to each other, or when you
want a stronger separation between @defterm{interface} (i.e., the
parts that need to be known at expansion and compilation time) and
@defterm{implementation} (i.e., the run-time parts). More generally,
-use @scheme[unit] when you need to parameterize code over functions,
+use @racket[unit] when you need to parameterize code over functions,
datatypes, and classes, and when the parameterized code itself
provides definitions to be linked with other parameterized code.
diff --git a/collects/scribblings/guide/vectors.scrbl b/collects/scribblings/guide/vectors.scrbl
index 9b38b2d2cd..0bdb0c77e2 100644
--- a/collects/scribblings/guide/vectors.scrbl
+++ b/collects/scribblings/guide/vectors.scrbl
@@ -19,8 +19,8 @@ represent symbols and lists.
@refdetails/gory["parse-vector"]{the syntax of vectors}
@examples[
-(eval:alts @#,schemevalfont{#("a" "b" "c")} #("a" "b" "c"))
-(eval:alts @#,schemevalfont{#(name (that tune))} #(name (that tune)))
+(eval:alts @#,racketvalfont{#("a" "b" "c")} #("a" "b" "c"))
+(eval:alts @#,racketvalfont{#(name (that tune))} #(name (that tune)))
(vector-ref #("a" "b" "c") 1)
(vector-ref #(name (that tune)) 1)
]
@@ -29,10 +29,10 @@ Like strings, a vector is either mutable or immutable, and vectors
written directly as expressions are immutable.
Vector can be converted to lists and vice-versa via
-@scheme[list->vector] and @scheme[vector->list]; such conversions are
+@racket[list->vector] and @racket[vector->list]; such conversions are
particularly useful in combination with predefined procedures on
lists. When allocating extra lists seems too expensive, consider
-using looping forms like @scheme[fold-for], which recognize vectors as
+using looping forms like @racket[fold-for], which recognize vectors as
well as lists.
@examples[
diff --git a/collects/scribblings/guide/void-and-undef.scrbl b/collects/scribblings/guide/void-and-undef.scrbl
index 24853b6ac0..7624ac9b8d 100644
--- a/collects/scribblings/guide/void-and-undef.scrbl
+++ b/collects/scribblings/guide/void-and-undef.scrbl
@@ -6,14 +6,14 @@
@title[#:tag "void+undefined"]{Void and Undefined}
Some procedures or expression forms have no need for a result
-value. For example, the @scheme[display] procedure is called only for
+value. For example, the @racket[display] procedure is called only for
the side-effect of writing output. In such cases the result value is
normally a special constant that prints as @|void-const|. When the
result of an expression is simply @|void-const|, the REPL does not
print anything.
-The @scheme[void] procedure takes any number of arguments and returns
-@|void-const|. (That is, the identifier @schemeidfont{void} is bound
+The @racket[void] procedure takes any number of arguments and returns
+@|void-const|. (That is, the identifier @racketidfont{void} is bound
to a procedure that returns @|void-const|, instead of being bound
directly to @|void-const|.)
@@ -26,9 +26,9 @@ directly to @|void-const|.)
A constant that prints as @undefined-const is used as the result of a
reference to a local binding when the binding is not yet
initialized. Such early references are not possible for bindings that
-correspond to procedure arguments, @scheme[let] bindings, or
-@scheme[let*] bindings; early reference requires a recursive binding
-context, such as @scheme[letrec] or local @scheme[define]s in a
+correspond to procedure arguments, @racket[let] bindings, or
+@racket[let*] bindings; early reference requires a recursive binding
+context, such as @racket[letrec] or local @racket[define]s in a
procedure body. Also, early references to top-level and module-level
bindings raise an exception, instead of producing
@|undefined-const|. For these reasons, @undefined-const rarely
diff --git a/collects/scribblings/guide/welcome.scrbl b/collects/scribblings/guide/welcome.scrbl
index 32a5231e30..f6321872cc 100644
--- a/collects/scribblings/guide/welcome.scrbl
+++ b/collects/scribblings/guide/welcome.scrbl
@@ -3,79 +3,80 @@
scribble/eval
scribble/bnf
"guide-utils.ss"
- (for-label scheme/enter))
+ (for-label racket/enter))
@(define piece-eval (make-base-eval))
-@title[#:tag "intro"]{Welcome to PLT Scheme}
+@title[#:tag "intro"]{Welcome to Racket}
-Depending on how you look at it, @bold{PLT Scheme} is
+Depending on how you look at it, @bold{Racket} is
@itemize[
- @item{a @defterm{programming language}---a descendant of Scheme, which
- is a dialect of Lisp;
+ @item{a @defterm{programming language}---a dialect of Lisp and a
+ descendant of Scheme;
@margin-note{See @secref["dialects"] for more information on
- other dialects of Scheme and how they relate to PLT Scheme.}}
+ other dialects of Lisp and how they relate to Racket.}}
@item{a @defterm{family} of programming languages---variants of
- Scheme, and more; or}
+ Racket, and more; or}
@item{a set of @defterm{tools}---for using a family of programming languages.}
]
-Where there is no room for confusion, we use simply @defterm{Scheme}
-to refer to any of these facets of PLT Scheme.
+Where there is no room for confusion, we use simply @defterm{Racket}.
-PLT Scheme's two main tools are
+Racket's main tools are
@itemize[
- @tool["MzScheme"]{the core compiler, interpreter, and run-time
- system; and}
+ @tool[@exec{racket}]{the core compiler, interpreter, and run-time system;}
- @tool["DrScheme"]{the programming environment (which runs on top of
- MzScheme).}
+ @tool["DrRacket"]{the programming environment; and}
+
+ @tool[@exec{raco}]{a command-line tool for executing @bold{Ra}cket
+ @bold{co}mmands that install packages, build libraries, and more.}
]
-Most likely, you'll want to explore PLT Scheme using DrScheme,
+Most likely, you'll want to explore the Racket language using DrRacket,
especially at the beginning. If you prefer, you can also work with the
-command-line @exec{mzscheme} interpreter and your favorite text
+command-line @exec{racket} interpreter and your favorite text
editor. The rest of this guide presents the language mostly
independent of your choice of editor.
-If you're using DrScheme, you'll need to choose the proper language,
-because DrScheme accommodates many different variants of
-Scheme. Assuming that you've never used DrScheme before, start it up,
-type the line
+If you're using DrRacket, you'll need to choose the proper language,
+because DrRacket accommodates many different variants of Racket, as
+well as other languages. Assuming that you've never used DrRacket
+before, start it up, type the line
-@schememod[scheme]
+@racketmod[racket]
-in DrScheme's top text area, and then click the @onscreen{Run} button
-that's above the text area. DrScheme then understands that you mean to
-work in the normal variant of Scheme (as opposed to the smaller
-@schememodname[scheme/base], or many other possibilities).
+in DrRacket's top text area, and then click the @onscreen{Run} button
+that's above the text area. DrRacket then understands that you mean to
+work in the normal variant of Racket (as opposed to the smaller
+@racketmodname[racket/base] or many other possibilities).
@margin-note{@secref["more-hash-lang"] describes some of the other
possibilities.}
-If you've used DrScheme before with something other than a program
-that starts @hash-lang[], DrScheme will remember the last language
+If you've used DrRacket before with something other than a program
+that starts @hash-lang[], DrRacket will remember the last language
that you used, instead of inferring the language from the @hash-lang[]
line. In that case, use the @menuitem["Language" "Choose Language..."]
-menu item. In the dialog that appears, select the first item,
-which is @onscreen{Module}. Put the @hash-lang[] line above in the top
+menu item. In the dialog that appears, select the first item, which
+tells DrRacket to use the language that is declared in a source
+program via @hash-lang[]. Put the @hash-lang[] line above in the top
text area, still.
@; ----------------------------------------------------------------------
-@section{Interacting with Scheme}
+@section{Interacting with Racket}
-DrScheme's bottom text area and the @exec{mzscheme} command-line
-program (when started with no options) both act as a kind of
-calculator. You type a Scheme expression, hit return, and the answer
-is printed. In the terminology of Scheme, this kind of calculator is
+DrRacket's bottom text area and the @exec{racket} command-line program
+(when started with no options) both act as a kind of calculator. You
+type a Racket expression, hit the Return key, and the answer is
+printed. In the terminology of Racket, this kind of calculator is
called a @idefterm{read-eval-print loop} or @deftech{REPL}.
A number by itself is an expression, and the answer is just the
@@ -88,20 +89,20 @@ written with double quotes at the start and end of the string:
@interaction["Hello, world!"]
-Scheme uses parentheses to wrap larger expressions---almost any kind
+Racket uses parentheses to wrap larger expressions---almost any kind
of expression, other than simple constants. For example, a function
call is written: open parenthesis, function name, argument
expression, and closing parenthesis. The following expression calls
-the built-in function @scheme[substring] with the arguments
-@scheme["the boy out of the country"], @scheme[4], and @scheme[7]:
+the built-in function @racket[substring] with the arguments
+@racket["the boy out of the country"], @racket[4], and @racket[7]:
@interaction[(substring "the boy out of the country" 4 7)]
@; ----------------------------------------------------------------------
@section{Definitions and Interactions}
-You can define your own functions that work like @scheme[substring] by
-using the @scheme[define] form, like this:
+You can define your own functions that work like @racket[substring] by
+using the @racket[define] form, like this:
@def+int[
#:eval piece-eval
@@ -111,48 +112,48 @@ using the @scheme[define] form, like this:
(extract "the country out of the boy")
]
-Although you can evaluate the @scheme[define] form in the @tech{REPL},
+Although you can evaluate the @racket[define] form in the @tech{REPL},
definitions are normally a part of a program that you want to keep and
-use later. So, in DrScheme, you'd normally put the definition in the
+use later. So, in DrRacket, you'd normally put the definition in the
top text area---called the @deftech{definitions area}---along with the
@hash-lang[] prefix:
-@schememod[
-scheme
+@racketmod[
+racket
code:blank
(define (extract str)
(substring str 4 7))
]
-If calling @scheme[(extract "the boy")] is part of the main action of
+If calling @racket[(extract "the boy")] is part of the main action of
your program, that would go in the @tech{definitions area}, too. But
if it was just an example expression that you were using to explore
-@scheme[extract], then you'd more likely leave the @tech{definitions
+@racket[extract], then you'd more likely leave the @tech{definitions
area} as above, click @onscreen{Run}, and then evaluate
-@scheme[(extract "the boy")] in the @tech{REPL}.
+@racket[(extract "the boy")] in the @tech{REPL}.
-With @exec{mzscheme}, you'd save the above text in a file using your
-favorite editor. If you save it as @filepath{extract.ss}, then after starting
-@exec{mzscheme} in the same directory, you'd evaluate the following
+With @exec{racket}, you'd save the above text in a file using your
+favorite editor. If you save it as @filepath{extract.rkt}, then after starting
+@exec{racket} in the same directory, you'd evaluate the following
sequence:
@interaction[
#:eval piece-eval
-(eval:alts (enter! "extract.ss") (void))
+(eval:alts (enter! "extract.rkt") (void))
(extract "the gal out of the city")
]
-The @scheme[enter!] form both loads the code and switches the
-evaluation context to the inside of the module, just like DrScheme's
+The @racket[enter!] form both loads the code and switches the
+evaluation context to the inside of the module, just like DrRacket's
@onscreen{Run} button.
@; ----------------------------------------------------------------------
@section{Creating Executables}
-If your file (or @tech{definitions area} in DrScheme) contains
+If your file (or @tech{definitions area} in DrRacket) contains
-@schememod[
-scheme
+@racketmod[
+racket
(define (extract str)
(substring str 4 7))
@@ -166,14 +167,13 @@ options:
@itemize[
- @item{In DrScheme, you can select the @menuitem["Scheme" "Create
+ @item{In DrRacket, you can select the @menuitem["Racket" "Create
Executable..."] menu item.}
- @item{From a command-line prompt, run @exec{mzc --exe
- @nonterm{dest-filename} @nonterm{src-filename}}, where
- @nonterm{src-filename} contains the program. See @secref[#:doc
- '(lib "scribblings/mzc/mzc.scrbl") "exe"] for more
- information.}
+ @item{From a command-line prompt, run @exec{raco exe
+ @nonterm{src-filename}}, where @nonterm{src-filename} contains
+ the program. See @secref[#:doc '(lib
+ "scribblings/mzc/mzc.scrbl") "exe"] for more information.}
@item{With Unix or Mac OS X, you can turn the program file into an
executable script by inserting the line
@@ -181,32 +181,32 @@ options:
@margin-note{See @secref["scripts"] for more information on
script files.}
- @verbatim[#:indent 2]{#! /usr/bin/env mzscheme}
+ @verbatim[#:indent 2]{#! /usr/bin/env racket}
at the very beginning of the file. Also, change the file
permissions to executable using @exec{chmod +x
@nonterm{filename}} on the command line.
- The script works as long as @exec{mzscheme} is in the user's
+ The script works as long as @exec{racket} is in the user's
executable search path. Alternately, use a full path to
- @exec{mzscheme} after @tt{#!} (with a space between @tt{#!}
+ @exec{racket} after @tt{#!} (with a space between @tt{#!}
and the path), in which case the user's executable search path
does not matter.}
]
@; ----------------------------------------------------------------------
-@section[#:tag "use-module"]{A Note to Readers with Scheme/Lisp Experience}
+@section[#:tag "use-module"]{A Note to Readers with Lisp/Scheme Experience}
-If you already know something about Scheme or Lisp, you might be
+If you already know something about Racket or Lisp, you might be
tempted to put just
-@schemeblock[
+@racketblock[
(define (extract str)
(substring str 4 7))
]
-into @filepath{extract.scm} and run @exec{mzscheme} with
+into @filepath{extract.scm} and run @exec{racket} with
@interaction[
#:eval piece-eval
@@ -214,18 +214,18 @@ into @filepath{extract.scm} and run @exec{mzscheme} with
(extract "the dog out")
]
-That will work, because @exec{mzscheme} is willing to imitate a
+That will work, because @exec{racket} is willing to imitate a
traditional Scheme environment, but we strongly recommend against using
-@scheme[load] or writing programs outside of a module.
+@racket[load] or writing programs outside of a module.
Writing definitions outside of a module leads to bad error messages,
bad performance, and awkward scripting to combine and run
-programs. The problems are not specific to @exec{mzscheme}; they're
+programs. The problems are not specific to @exec{racket}; they're
fundamental limitations of the traditional top-level environment,
which Scheme and Lisp implementations have historically fought with ad
hoc command-line flags, compiler directives, and build tools. The
module system is to designed to avoid the problems, so start with
-@hash-lang[], and you'll be happier with PLT Scheme in the long run.
+@hash-lang[], and you'll be happier with Racket in the long run.
@; ----------------------------------------------------------------------
diff --git a/collects/scribblings/honu/info.ss b/collects/scribblings/honu/info.rkt
similarity index 100%
rename from collects/scribblings/honu/info.ss
rename to collects/scribblings/honu/info.rkt
diff --git a/collects/scribblings/htdp-langs/common.ss b/collects/scribblings/htdp-langs/common.rkt
similarity index 100%
rename from collects/scribblings/htdp-langs/common.ss
rename to collects/scribblings/htdp-langs/common.rkt
diff --git a/collects/scribblings/htdp-langs/info.ss b/collects/scribblings/htdp-langs/info.rkt
similarity index 100%
rename from collects/scribblings/htdp-langs/info.ss
rename to collects/scribblings/htdp-langs/info.rkt
diff --git a/collects/scribblings/htdp-langs/prim-ops.ss b/collects/scribblings/htdp-langs/prim-ops.rkt
similarity index 100%
rename from collects/scribblings/htdp-langs/prim-ops.ss
rename to collects/scribblings/htdp-langs/prim-ops.rkt
diff --git a/collects/scribblings/htdp-langs/std-grammar.ss b/collects/scribblings/htdp-langs/std-grammar.rkt
similarity index 100%
rename from collects/scribblings/htdp-langs/std-grammar.ss
rename to collects/scribblings/htdp-langs/std-grammar.rkt
diff --git a/collects/scribblings/icons.ss b/collects/scribblings/icons.rkt
similarity index 100%
rename from collects/scribblings/icons.ss
rename to collects/scribblings/icons.rkt
diff --git a/collects/scribblings/info.ss b/collects/scribblings/info.rkt
similarity index 100%
rename from collects/scribblings/info.ss
rename to collects/scribblings/info.rkt
diff --git a/collects/scribblings/inside/info.ss b/collects/scribblings/inside/info.rkt
similarity index 100%
rename from collects/scribblings/inside/info.ss
rename to collects/scribblings/inside/info.rkt
diff --git a/collects/scribblings/inside/utils.ss b/collects/scribblings/inside/utils.rkt
similarity index 100%
rename from collects/scribblings/inside/utils.ss
rename to collects/scribblings/inside/utils.rkt
diff --git a/collects/scribblings/main/config.ss b/collects/scribblings/main/config.rkt
similarity index 100%
rename from collects/scribblings/main/config.ss
rename to collects/scribblings/main/config.rkt
diff --git a/collects/scribblings/main/info.ss b/collects/scribblings/main/info.rkt
similarity index 100%
rename from collects/scribblings/main/info.ss
rename to collects/scribblings/main/info.rkt
diff --git a/collects/scribblings/main/private/make-search.ss b/collects/scribblings/main/private/make-search.rkt
similarity index 100%
rename from collects/scribblings/main/private/make-search.ss
rename to collects/scribblings/main/private/make-search.rkt
diff --git a/collects/scribblings/main/private/manuals.ss b/collects/scribblings/main/private/manuals.rkt
similarity index 100%
rename from collects/scribblings/main/private/manuals.ss
rename to collects/scribblings/main/private/manuals.rkt
diff --git a/collects/scribblings/main/private/utils.ss b/collects/scribblings/main/private/utils.rkt
similarity index 100%
rename from collects/scribblings/main/private/utils.ss
rename to collects/scribblings/main/private/utils.rkt
diff --git a/collects/scribblings/main/start.scrbl b/collects/scribblings/main/start.scrbl
index ede0c2c811..474550346f 100644
--- a/collects/scribblings/main/start.scrbl
+++ b/collects/scribblings/main/start.scrbl
@@ -9,7 +9,7 @@
@margin-note{
@not-on-the-web{
- This is an installation-specific listing. Running @exec{racket-tool docs}
+ This is an installation-specific listing. Running @exec{raco docs}
may open a different page with local and user-specific
documentation, including documentation for installed
@link["http://planet.plt-scheme.org/"]{@|PLaneT|} packages.}}
diff --git a/collects/scribblings/main/user/info.ss b/collects/scribblings/main/user/info.rkt
similarity index 100%
rename from collects/scribblings/main/user/info.ss
rename to collects/scribblings/main/user/info.rkt
diff --git a/collects/scribblings/more/info.ss b/collects/scribblings/more/info.rkt
similarity index 100%
rename from collects/scribblings/more/info.ss
rename to collects/scribblings/more/info.rkt
diff --git a/collects/scribblings/more/more.scrbl b/collects/scribblings/more/more.scrbl
index 0cb6539140..720d286bd7 100644
--- a/collects/scribblings/more/more.scrbl
+++ b/collects/scribblings/more/more.scrbl
@@ -2,13 +2,13 @@
@(require scribble/manual
scribble/urls
scribble/eval
- "../quick/keep.ss"
+ "../quick/keep.rkt"
(for-label scheme
- scheme/enter
+ racket/enter
readline
net/url
xml
- scheme/control))
+ racket/control))
@(define quick @other-manual['(lib "quick.scrbl" "scribblings/quick")])
@(define guide @other-manual['(lib "guide.scrbl" "scribblings/guide")])
@@ -16,7 +16,7 @@
@(define more-eval (make-base-eval))
@(interaction-eval #:eval more-eval
(define (show-load re?)
- (fprintf (current-error-port) " [~aloading serve.ss]\n" (if re? "re-" ""))))
+ (fprintf (current-error-port) " [~aloading serve.rkt]\n" (if re? "re-" ""))))
@(interaction-eval #:eval more-eval
(define (serve n) void))
@(interaction-eval #:eval more-eval
@@ -39,13 +39,13 @@
" in plain text: "
(link file "step " which) ".")))
-@title{@bold{More}: Systems Programming with PLT Scheme}
+@title{@bold{More}: Systems Programming with Racket}
@author["Matthew Flatt"]
-In contrast to the impression that @|quick| may give, PLT Scheme is
+In contrast to the impression that @|quick| may give, Racket is
not just another pretty face. Underneath the graphical facade of
-DrScheme lies a sophisticated toolbox for managing threads and
+DrRacket lies a sophisticated toolbox for managing threads and
processes, which is the subject of this tutorial.
Specifically, we show how to build a secure, multi-threaded,
@@ -54,39 +54,39 @@ the language than in @|quick|, and we expect you to click on syntax or
function names that you don't recognize (which will take you to the
relevant documentation). Beware that the last couple of sections
present material that is normally considered difficult. If you're
-still new to Scheme and have relatively little programming experience,
+still new to Racket and have relatively little programming experience,
you may want to skip to @|guide|.
To get into the spirit of this tutorial, we suggest that you set
-DrScheme aside for a moment, and switch to raw @exec{mzscheme} in a
+DrRacket aside for a moment, and switch to raw @exec{racket} in a
terminal. You'll also need a text editor, such as @exec{emacs} or
@exec{vi}. Finally, you'll need a web client, perhaps @exec{lynx} or
@exec{firefox}.
@margin-note{Of course, if you're already spoiled, you can keep using
-DrScheme.}
+DrRacket.}
@; ----------------------------------------------------------------------
@section{Ready...}
-@link[url:download-drscheme]{Download PLT Scheme}, install, and then
-start @exec{mzscheme} with no command-line arguments:
+@link[url:download-drracket]{Download Racket}, install, and then
+start @exec{racket} with no command-line arguments:
@verbatim[#:indent 2]{
- $ mzscheme
- Welcome to MzScheme
+ $ racket
+ Welcome to Racket
>
}
If you're using a plain terminal, if you have GNU Readline installed
-on your system, and if you'd like Readline support in @exec{mzscheme},
-then evaluate @scheme[(require readline)]. If you also evaluate
-@scheme[(install-readline!)], then your @filepath{~/.mzschemerc} is
-updated to load Readline whenever you start @exec{mzscheme} for
+on your system, and if you'd like Readline support in @exec{racket},
+then evaluate @racket[(require readline)]. If you also evaluate
+@racket[(install-readline!)], then your @filepath{~/.racketrc} is
+updated to load Readline whenever you start @exec{racket} for
interactive evaluation.
@margin-note{Unfortunately, for legal reasons related to GPL vs. LGPL,
- @exec{mzscheme} cannot provide Readline automatically.}
+ @exec{racket} cannot provide Readline automatically.}
@interaction[
(eval:alts (require readline) (void))
@@ -96,11 +96,11 @@ interactive evaluation.
@; ----------------------------------------------------------------------
@section{Set...}
-In the same directory where you started @exec{mzscheme}, create a text
-file @filepath{serve.ss}, and start it like this:
+In the same directory where you started @exec{racket}, create a text
+file @filepath{serve.rkt}, and start it like this:
-@schememod[
-scheme
+@racketmod[
+racket
(define (go)
'yep-it-works)
@@ -111,35 +111,35 @@ scheme
@; ----------------------------------------------------------------------
@section{Go!}
-Back in @exec{mzscheme}, try loading the file and running @scheme[go]:
+Back in @exec{racket}, try loading the file and running @racket[go]:
@interaction[
#:eval more-eval
-(eval:alts (enter! "serve.ss") (show-load #f))
+(eval:alts (enter! "serve.rkt") (show-load #f))
(eval:alts (go) 'yep-it-works)
]
-Try modifying @filepath{serve.ss}, and then run @scheme[(enter!
-"serve.ss")] again to re-load the module, and then check your changes.
+Try modifying @filepath{serve.rkt}, and then run @racket[(enter!
+"serve.rkt")] again to re-load the module, and then check your changes.
@; ----------------------------------------------------------------------
@section{``Hello World'' Server}
-We'll implement the web server through a @scheme[serve] function that
+We'll implement the web server through a @racket[serve] function that
takes a IP port number for client connections:
-@schemeblock[
+@racketblock[
(define (serve port-no)
...)
]
The server accepts TCP connections through a @defterm{listener}, which
-we create with @scheme[tcp-listen]. To make interactive development
-easier, we supply @scheme[#t] as the third argument to
-@scheme[tcp-listen], which lets us re-use the port number without
+we create with @racket[tcp-listen]. To make interactive development
+easier, we supply @racket[#t] as the third argument to
+@racket[tcp-listen], which lets us re-use the port number without
waiting on TCP timeouts.
-@schemeblock[
+@racketblock[
(define (serve port-no)
(define listener (tcp-listen port-no 5 #t))
...)
@@ -147,7 +147,7 @@ waiting on TCP timeouts.
The server must loop to accept connections from the listener:
-@schemeblock[
+@racketblock[
(define (serve port-no)
(define listener (tcp-listen port-no 5 #t))
(define (loop)
@@ -156,11 +156,11 @@ The server must loop to accept connections from the listener:
(loop))
]
-Our @scheme[accept-and-handle] function accepts a connection using
-@scheme[tcp-accept], which returns two values: a stream for input from
+Our @racket[accept-and-handle] function accepts a connection using
+@racket[tcp-accept], which returns two values: a stream for input from
the client, and a stream for output to the client.
-@schemeblock[
+@racketblock[
(define (accept-and-handle listener)
(define-values (in out) (tcp-accept listener))
(handle in out)
@@ -171,7 +171,7 @@ the client, and a stream for output to the client.
To handle a connection, for now, we'll read and discard the request
header, and then write a ``Hello, world!'' web page as the result:
-@schemeblock[
+@racketblock[
(define (handle in out)
(code:comment @#,t{Discard the request header (up to blank line):})
(regexp-match #rx"(\r\n|^)\r\n" in)
@@ -181,23 +181,23 @@ header, and then write a ``Hello, world!'' web page as the result:
(display "Hello, world!" out))
]
-Note that @scheme[regexp-match] operates directly on the input stream,
+Note that @racket[regexp-match] operates directly on the input stream,
which is easier than bothering with individual lines.
@whole-prog["1"]
-Copy the above three definitions---@scheme[serve],
-@scheme[accept-and-handle], and @scheme[handle]---into
-@filepath{serve.ss} and re-load:
+Copy the above three definitions---@racket[serve],
+@racket[accept-and-handle], and @racket[handle]---into
+@filepath{serve.rkt} and re-load:
@interaction[
#:eval more-eval
-(eval:alts (enter! "serve.ss") (show-load #t))
+(eval:alts (enter! "serve.rkt") (show-load #t))
(eval:alts (serve 8080) (void))
]
Now point your browser to @tt{http://localhost:8080} (assuming that
-you used @scheme[8080] as the port number, and that the browser is
+you used @racket[8080] as the port number, and that the browser is
running on the same machine) to receive a friendly greeting from your
web server.
@@ -205,10 +205,10 @@ web server.
@section{Server Thread}
Before we can make the web server respond in more interesting ways, we
-need to get a Scheme prompt back. Typing Ctl-C in your terminal window
+need to get a Racket prompt back. Typing Ctl-C in your terminal window
interrupts the server loop:
-@margin-note{In DrScheme, instead of typing Ctl-C, click the
+@margin-note{In DrRacket, instead of typing Ctl-C, click the
@onscreen{Stop} button once.}
@interaction[
@@ -225,15 +225,15 @@ number:
(eval:alts (serve 8080) (show-fail 8080))
]
-The problem is that the listener that we created with @scheme[serve]
+The problem is that the listener that we created with @racket[serve]
is still listening on the original port number.
To avoid this problem, let's put the listener loop in its own thread,
-and have @scheme[serve] return immediately. Furthermore, we'll have
-@scheme[serve] return a function that can be used to shut down the
+and have @racket[serve] return immediately. Furthermore, we'll have
+@racket[serve] return a function that can be used to shut down the
server thread and TCP listener:
-@schemeblock[
+@racketblock[
(define (serve port-no)
(define listener (tcp-listen port-no 5 #t))
(define (loop)
@@ -251,7 +251,7 @@ Try the new one:
@interaction[
#:eval more-eval
-(eval:alts (enter! "serve.ss") (show-load #t))
+(eval:alts (enter! "serve.rkt") (show-load #t))
(define stop (serve 8081))
]
@@ -274,7 +274,7 @@ as you like:
In the same way that we put the main server loop into a background
thread, we can put each individual connection into its own thread:
-@schemeblock[
+@racketblock[
(define (accept-and-handle listener)
(define-values (in out) (tcp-accept listener))
(thread
@@ -288,8 +288,8 @@ thread, we can put each individual connection into its own thread:
With this change, our server can now handle multiple threads at
once. The handler is so fast that this fact will be difficult to
-detect, however, so try inserting @scheme[(sleep (random 10))] before
-the @scheme[handle] call above. If you make multiple connections from
+detect, however, so try inserting @racket[(sleep (random 10))] before
+the @racket[handle] call above. If you make multiple connections from
the web browser at roughly the same time, some will return soon, and
some will take up to 10 seconds. The random delays will be independent
of the order in which you started the connections.
@@ -304,10 +304,10 @@ like to implement a timeout for each connection thread.
One way to implement the timeout is to create a second thread that
waits for 10 seconds, and then kills the thread that calls
-@scheme[handle]. Threads are lightweight enough in Scheme that this
+@racket[handle]. Threads are lightweight enough in Racket that this
watcher-thread strategy works well:
-@schemeblock[
+@racketblock[
(define (accept-and-handle listener)
(define-values (in out) (tcp-accept listener))
(define t (thread
@@ -322,22 +322,25 @@ watcher-thread strategy works well:
]
This first attempt isn't quite right, because when the thread is
-killed, its @scheme[in] and @scheme[out] streams remain open. We
+killed, its @racket[in] and @racket[out] streams remain open. We
could add code to the watcher thread to close the streams as well as
-kill the thread, but Scheme offers a more general shutdown mechanism:
+kill the thread, but Racket offers a more general shutdown mechanism:
@defterm{custodians}. A custodian is a kind of container for all
resources other than memory, and it supports a
-@scheme[custodian-shutdown-all] operation that terminates and closes
+@racket[custodian-shutdown-all] operation that terminates and closes
all resources within the container, whether they're threads, streams,
or other kinds of limited resources.
Whenever a thread or stream is created, it is placed into the current
-custodian as determined by the @scheme[current-custodian]
+custodian as determined by the @racket[current-custodian]
parameter. To place everything about a connection into a custodian, we
-@scheme[parameterize] all the resource creations to go into a new
+@racket[parameterize] all the resource creations to go into a new
custodian:
-@schemeblock[
+@margin-note{See @secref[#:doc '(lib "scribblings/guide/guide.scrbl") "parameterize"]
+ for an introduction to parameters.}
+
+@racketblock[
(define (accept-and-handle listener)
(define cust (make-custodian))
(parameterize ([current-custodian cust])
@@ -352,16 +355,16 @@ custodian:
(custodian-shutdown-all cust))))
]
-With this implementation, @scheme[in], @scheme[out], and the thread
-that calls @scheme[handle] all belong to @scheme[cust]. In addition,
-if we later change @scheme[handle] so that it, say, opens a file, then
-the file handles will also belong to @scheme[cust], so they will be
-reliably closed when @scheme[cust] is shut down.
+With this implementation, @racket[in], @racket[out], and the thread
+that calls @racket[handle] all belong to @racket[cust]. In addition,
+if we later change @racket[handle] so that it, say, opens a file, then
+the file handles will also belong to @racket[cust], so they will be
+reliably closed when @racket[cust] is shut down.
-In fact, it's a good idea to change @scheme[serve] so that it uses a
+In fact, it's a good idea to change @racket[serve] so that it uses a
custodian, too:
-@schemeblock[
+@racketblock[
(define (serve port-no)
(define main-cust (make-custodian))
(parameterize ([current-custodian main-cust])
@@ -374,7 +377,7 @@ custodian, too:
(custodian-shutdown-all main-cust)))
]
-That way, the @scheme[main-cust] created in @scheme[serve] not only
+That way, the @racket[main-cust] created in @racket[serve] not only
owns the TCP listener and the main server thread, it also owns every
custodian created for a connection. Consequently, the revised shutdown
procedure for the server immediately terminates all active connections,
@@ -382,17 +385,17 @@ in addition to the main server loop.
@whole-prog["4"]
-After updating the @scheme[serve] and @scheme[accept-and-handle]
+After updating the @racket[serve] and @racket[accept-and-handle]
functions as above, here's how you can simulate a malicious client:
@interaction[
#:eval more-eval
-(eval:alts (enter! "serve.ss") (show-load #t))
+(eval:alts (enter! "serve.rkt") (show-load #t))
(define stop (serve 8081))
(eval:alts (define-values (cin cout) (tcp-connect "localhost" 8081)) (void))
]
-Now wait 10 seconds. If you try reading from @scheme[cin], which is
+Now wait 10 seconds. If you try reading from @racket[cin], which is
the stream that sends data from the server back to the client, you'll
find that the server has shut down the connection:
@@ -422,12 +425,12 @@ URLs.
To parse the incoming URL and to more easily format HTML output, we'll
require two extra libraries:
-@schemeblock[
+@racketblock[
(require xml net/url)
]
-The @schememodname[xml] library gives us @scheme[xexpr->string], which
-takes a Scheme value that looks like HTML and turns it into actual
+The @racketmodname[xml] library gives us @racket[xexpr->string], which
+takes a Racket value that looks like HTML and turns it into actual
HTML:
@interaction[
@@ -435,11 +438,11 @@ HTML:
(xexpr->string '(html (head (title "Hello")) (body "Hi!")))
]
-We'll assume that our new @scheme[dispatch] function (to be written)
+We'll assume that our new @racket[dispatch] function (to be written)
takes a requested URL and produces a result value suitable to use with
-@scheme[xexpr->string] to send back to the client:
+@racket[xexpr->string] to send back to the client:
-@schemeblock[
+@racketblock[
(define (handle in out)
(define req
(code:comment @#,t{Match the first line to extract the request:})
@@ -456,8 +459,8 @@ takes a requested URL and produces a result value suitable to use with
(display (xexpr->string xexpr) out))))
]
-The @schememodname[net/url] library gives us @scheme[string->url],
-@scheme[url-path], @scheme[path/param-path], and @scheme[url-query]
+The @racketmodname[net/url] library gives us @racket[string->url],
+@racket[url-path], @racket[path/param-path], and @racket[url-query]
for getting from a string to parts of the URL that it represents:
@interaction[
@@ -468,11 +471,11 @@ for getting from a string to parts of the URL that it represents:
(url-query u)
]
-We use these pieces to implement @scheme[dispatch]. The
-@scheme[dispatch] function consults a hash table that maps an initial
-path element, like @scheme["foo"], to a handler function:
+We use these pieces to implement @racket[dispatch]. The
+@racket[dispatch] function consults a hash table that maps an initial
+path element, like @racket["foo"], to a handler function:
-@schemeblock[
+@racketblock[
(define (dispatch str-path)
(code:comment @#,t{Parse the request as a URL:})
(define url (string->url str-path))
@@ -493,17 +496,17 @@ path element, like @scheme["foo"], to a handler function:
(define dispatch-table (make-hash))
]
-With the new @scheme[require] import and new @scheme[handle],
-@scheme[dispatch], and @scheme[dispatch-table] definitions, our
+With the new @racket[require] import and new @racket[handle],
+@racket[dispatch], and @racket[dispatch-table] definitions, our
``Hello World!'' server has turned into an error server. You don't have
-to stop the server to try it out. After modifying @filepath{serve.ss}
-with the new pieces, evaluate @scheme[(enter! "serve.ss")] and then
+to stop the server to try it out. After modifying @filepath{serve.rkt}
+with the new pieces, evaluate @racket[(enter! "serve.rkt")] and then
try again to connect to the server. The web browser should show an
``Unknown page'' error in red.
-We can register a handler for the @scheme["hello"] path like this:
+We can register a handler for the @racket["hello"] path like this:
-@schemeblock[
+@racketblock[
(hash-set! dispatch-table "hello"
(lambda (query)
`(html (body "Hello, World!"))))
@@ -511,25 +514,25 @@ We can register a handler for the @scheme["hello"] path like this:
@whole-prog["5"]
-After adding these lines and evaluating @scheme[(enter! "serve.ss")],
+After adding these lines and evaluating @racket[(enter! "serve.rkt")],
opening @tt{http://localhost:8081/hello} should produce the old
greeting.
@; ----------------------------------------------------------------------
@section{Servlets and Sessions}
-Using the @scheme[query] argument that is passed to a handler by
-@scheme[dispatch], a handler can respond to values that a user
+Using the @racket[query] argument that is passed to a handler by
+@racket[dispatch], a handler can respond to values that a user
supplies through a form.
The following helper function constructs an HTML form. The
-@scheme[label] argument is a string to show the user. The
-@scheme[next-url] argument is a destination for the form results. The
-@scheme[hidden] argument is a value to propagate through the form as a
-hidden field. When the user responds, the @scheme["number"] field in
+@racket[label] argument is a string to show the user. The
+@racket[next-url] argument is a destination for the form results. The
+@racket[hidden] argument is a value to propagate through the form as a
+hidden field. When the user responds, the @racket["number"] field in
the form holds the user's value:
-@schemeblock[
+@racketblock[
(define (build-request-page label next-url hidden)
`(html
(head (title "Enter a Number to Add"))
@@ -547,7 +550,10 @@ the form holds the user's value:
Using this helper function, we can create a servlet that generates as
many ``hello''s as a user wants:
-@schemeblock[
+@margin-note{See @secref[#:doc '(lib "scribblings/guide/guide.scrbl") "for"]
+ for an introduction to forms like @racket[for/list].}
+
+@racketblock[
(define (many query)
(build-request-page "Number of greetings:" "/reply" ""))
@@ -563,23 +569,23 @@ many ``hello''s as a user wants:
@whole-prog["6"]
As usual, once you have added these to your program, update with
-@scheme[(enter! "serve.ss")], and then visit
+@racket[(enter! "serve.rkt")], and then visit
@tt{http://localhost:8081/many}. Provide a number, and you'll receive
a new page with that many ``hello''s.
@; ----------------------------------------------------------------------
@section{Limiting Memory Use}
-With our latest @scheme["many"] servlet, we seem to have a new
+With our latest @racket["many"] servlet, we seem to have a new
problem: a malicious client could request so many ``hello''s that the
server runs out of memory. Actually, a malicious client could also
supply an HTTP request whose first line is arbitrarily long.
The solution to this class of problems is to limit the memory use of a
-connection. Inside @scheme[accept-and-handle], after the definition of
-@scheme[cust], add the line
+connection. Inside @racket[accept-and-handle], after the definition of
+@racket[cust], add the line
-@schemeblock[(custodian-limit-memory cust (* 50 1024 1024))]
+@racketblock[(custodian-limit-memory cust (* 50 1024 1024))]
@whole-prog["7"]
@@ -591,15 +597,15 @@ for each other's memory use, so one misbehaving connection will not
interfere with a different one.
So, with the new line above, and assuming that you have a couple of
-hundred megabytes available for the @exec{mzscheme} process to use,
+hundred megabytes available for the @exec{racket} process to use,
you shouldn't be able to crash the web server by requesting a
ridiculously large number of ``hello''s.
-Given the @scheme["many"] example, it's a small step to a web server
-that accepts arbitrary Scheme code to execute on the server. In that
+Given the @racket["many"] example, it's a small step to a web server
+that accepts arbitrary Racket code to execute on the server. In that
case, there are many additional security issues besides limiting
processor time and memory consumption. The
-@schememodname[scheme/sandbox] library provides support to managing
+@racketmodname[racket/sandbox] library provides support to managing
all those other issues.
@; ----------------------------------------------------------------------
@@ -607,9 +613,9 @@ all those other issues.
As a systems example, the problem of implementing a web server exposes
many system and security issues where a programming language can
-help. The web-server example also leads to a classic, advanced Scheme
+help. The web-server example also leads to a classic, advanced Racket
topic: @defterm{continuations}. In fact, this facet of a web server
-needs @defterm{delimited continuations}, which PLT Scheme provides.
+needs @defterm{delimited continuations}, which Racket provides.
The problem solved by continuations is related to servlet sessions and
user input, where a computation spans multiple client connections
@@ -619,11 +625,11 @@ a mixture of techniques (e.g., to take advantage of the browser's
``back'' button).
As the multi-connection computation becomes more complex, propagating
-arguments through @scheme[query] becomes increasingly tedious. For
+arguments through @racket[query] becomes increasingly tedious. For
example, we can implement a servlet that takes two numbers to add by
using the hidden field in the form to remember the first number:
-@schemeblock[
+@racketblock[
(define (sum query)
(build-request-page "First number:" "/one" ""))
@@ -647,7 +653,7 @@ using the hidden field in the form to remember the first number:
While the above works, we would much rather write such computations in
a direct style:
-@schemeblock[
+@racketblock[
(define (sum2 query)
(define m (get-number "First number:"))
(define n (get-number "Second number:"))
@@ -656,32 +662,32 @@ a direct style:
(hash-set! dispatch-table "sum2" sum2)
]
-The problem is that @scheme[get-number] needs to send an HTML response
+The problem is that @racket[get-number] needs to send an HTML response
back for the current connection, and then it must obtain a response
through a new connection. That is, somehow it needs to convert the
-page generated by @scheme[build-request-page] into a @scheme[query]
+page generated by @racket[build-request-page] into a @racket[query]
result:
-@schemeblock[
+@racketblock[
(define (get-number label)
(define query
... (build-request-page label ...) ...)
(number->string (cdr (assq 'number query))))
]
-Continuations let us implement a @scheme[send/suspend] operation that
-performs exactly that operation. The @scheme[send/suspend] procedure
+Continuations let us implement a @racket[send/suspend] operation that
+performs exactly that operation. The @racket[send/suspend] procedure
generates a URL that represents the current connection's computation,
capturing it as a continuation. It passes the generated URL to a
procedure that creates the query page; this query page is used as the
result of the current connection, and the surrounding computation
-(i.e., the continuation) is aborted. Finally, @scheme[send/suspend]
+(i.e., the continuation) is aborted. Finally, @racket[send/suspend]
arranges for a request to the generated URL (in a new connection) to
restore the aborted computation.
-Thus, @scheme[get-number] is implemented as follows:
+Thus, @racket[get-number] is implemented as follows:
-@schemeblock[
+@racketblock[
(define (get-number label)
(define query
(code:comment @#,t{Generate a URL for the current computation:})
@@ -695,40 +701,39 @@ Thus, @scheme[get-number] is implemented as follows:
(string->number (cdr (assq 'number query))))
]
-We still have to implement @scheme[send/suspend]. Plain Scheme's
-@scheme[call/cc] is not quite enough, so we import a library of
-control operators:
+We still have to implement @racket[send/suspend]. For that task, we
+import a library of control operators:
-@schemeblock[(require scheme/control)]
+@racketblock[(require racket/control)]
-Specifically, we need @scheme[prompt] and @scheme[abort] from
-@schememodname[scheme/control]. We use @scheme[prompt] to mark the
+Specifically, we need @racket[prompt] and @racket[abort] from
+@racketmodname[racket/control]. We use @racket[prompt] to mark the
place where a servlet is started, so that we can abort a computation
-to that point. Change @scheme[handle] by wrapping an @scheme[prompt]
-around the call to @scheme[dispatch]:
+to that point. Change @racket[handle] by wrapping an @racket[prompt]
+around the call to @racket[dispatch]:
-@schemeblock[
+@racketblock[
(define (handle in out)
....
(let ([xexpr (prompt (dispatch (list-ref req 1)))])
....))
]
-Now, we can implement @scheme[send/suspend]. We use @scheme[call/cc]
-in the guise of @scheme[let/cc], which captures the current
-computation up to an enclosing @scheme[prompt] and binds that
-computation to an identifier---@scheme[k], in this case:
+Now, we can implement @racket[send/suspend]. We use @racket[call/cc]
+in the guise of @racket[let/cc], which captures the current
+computation up to an enclosing @racket[prompt] and binds that
+computation to an identifier---@racket[k], in this case:
-@schemeblock[
+@racketblock[
(define (send/suspend mk-page)
(let/cc k
...))
]
Next, we generate a new dispatch tag, and we record the mapping from
-the tag to @scheme[k]:
+the tag to @racket[k]:
-@schemeblock[
+@racketblock[
(define (send/suspend mk-page)
(let/cc k
(define tag (format "k~a" (current-inexact-milliseconds)))
@@ -737,10 +742,10 @@ the tag to @scheme[k]:
]
Finally, we abort the current computation, supplying instead the page
-that is built by applying the given @scheme[mk-page] to a URL for the
+that is built by applying the given @racket[mk-page] to a URL for the
generated tag:
-@schemeblock[
+@racketblock[
(define (send/suspend mk-page)
(let/cc k
(define tag (format "k~a" (current-inexact-milliseconds)))
@@ -751,21 +756,21 @@ generated tag:
When the user submits the form, the handler associated with the form's
URL is the old computation, stored as a continuation in the dispatch
table. Calling the continuation (like a function) restores the old
-computation, passing the @scheme[query] argument back to that
+computation, passing the @racket[query] argument back to that
computation.
@whole-prog["9" #t]
-In summary, the new pieces are: @scheme[(require scheme/control)],
-adding @scheme[prompt] inside @scheme[handle], the definitions of
-@scheme[send/suspend], @scheme[get-number], and @scheme[sum2], and
-@scheme[(hash-set! dispatch-table "sum2" sum2)]. Once you have
+In summary, the new pieces are: @racket[(require racket/control)],
+adding @racket[prompt] inside @racket[handle], the definitions of
+@racket[send/suspend], @racket[get-number], and @racket[sum2], and
+@racket[(hash-set! dispatch-table "sum2" sum2)]. Once you have
the server updated, visit @tt{http://localhost:8081/sum2}.
@; ----------------------------------------------------------------------
@section{Where to Go From Here}
-The PLT Scheme distribution includes a production-quality web server
+The Racket distribution includes a production-quality web server
that addresses all of the design points mentioned here and more.
To learn more, see the tutorial @other-manual['(lib
"web-server/scribblings/tutorial/continue.scrbl")], the
@@ -773,8 +778,8 @@ documentation @other-manual['(lib
"web-server/scribblings/web-server.scrbl")], or the research paper
@cite["Krishnamurthi07"].
-Otherwise, if you arrived here as part of an introduction to PLT
-Scheme, then your next stop is probably @|guide|.
+Otherwise, if you arrived here as part of an introduction to
+Racket, then your next stop is probably @|guide|.
If the topics covered here are the kind that interest you, see also
@secref["concurrency" #:doc '(lib
@@ -783,10 +788,10 @@ If the topics covered here are the kind that interest you, see also
"scribblings/reference/reference.scrbl")].
Some of this material is based on relatively recent research, and more
-information can be found in papers written by the authors of PLT
-Scheme, including papers on MrEd @cite["Flatt99"], memory accounting
-@cite["Wick04"], kill-safe abstractions @cite["Flatt04"], and
-delimited continuations @cite["Flatt07"].
+information can be found in papers written by the authors of Racket,
+including papers on GRacket (formerly ``MrEd'') @cite["Flatt99"],
+memory accounting @cite["Wick04"], kill-safe abstractions
+@cite["Flatt04"], and delimited continuations @cite["Flatt07"].
@; ----------------------------------------------------------------------
diff --git a/collects/scribblings/more/step0.txt b/collects/scribblings/more/step0.txt
index 525b7202e2..a6db727a2e 100644
--- a/collects/scribblings/more/step0.txt
+++ b/collects/scribblings/more/step0.txt
@@ -1,4 +1,4 @@
-#lang scheme
+#lang racket
(define (go)
'yep-it-works)
diff --git a/collects/scribblings/more/step1.txt b/collects/scribblings/more/step1.txt
index 27820cc327..5a7c49544d 100644
--- a/collects/scribblings/more/step1.txt
+++ b/collects/scribblings/more/step1.txt
@@ -1,4 +1,4 @@
-#lang scheme
+#lang racket
(define (serve port-no)
(define listener (tcp-listen port-no 5 #t))
diff --git a/collects/scribblings/more/step2.txt b/collects/scribblings/more/step2.txt
index 15f3f649b0..48c5fd9396 100644
--- a/collects/scribblings/more/step2.txt
+++ b/collects/scribblings/more/step2.txt
@@ -1,4 +1,4 @@
-#lang scheme
+#lang racket
;; The `serve' function is revised to run the loop
;; in a thread, and it returns a function to shut down
diff --git a/collects/scribblings/more/step3.txt b/collects/scribblings/more/step3.txt
index bb0e885aba..0bd0ab5e5e 100644
--- a/collects/scribblings/more/step3.txt
+++ b/collects/scribblings/more/step3.txt
@@ -1,4 +1,4 @@
-#lang scheme
+#lang racket
;; Only `accept-and-handle' changes, moving the
;; handle work into a thread.
diff --git a/collects/scribblings/more/step4.txt b/collects/scribblings/more/step4.txt
index 3e83cef1c2..021382df5f 100644
--- a/collects/scribblings/more/step4.txt
+++ b/collects/scribblings/more/step4.txt
@@ -1,4 +1,4 @@
-#lang scheme
+#lang racket
;; Both `server' and `accept-and-handle' change
;; to use a custodian.
diff --git a/collects/scribblings/more/step5.txt b/collects/scribblings/more/step5.txt
index 05f231f0e5..0c6f77ed20 100644
--- a/collects/scribblings/more/step5.txt
+++ b/collects/scribblings/more/step5.txt
@@ -1,4 +1,4 @@
-#lang scheme
+#lang racket
;; New imports:
(require xml net/url)
diff --git a/collects/scribblings/more/step6.txt b/collects/scribblings/more/step6.txt
index 2192f73c3e..4623c9c342 100644
--- a/collects/scribblings/more/step6.txt
+++ b/collects/scribblings/more/step6.txt
@@ -1,4 +1,4 @@
-#lang scheme
+#lang racket
;; For changes, skip down to `build-request-page',
;; after the line.
diff --git a/collects/scribblings/more/step7.txt b/collects/scribblings/more/step7.txt
index 629eef89db..5187aec2f8 100644
--- a/collects/scribblings/more/step7.txt
+++ b/collects/scribblings/more/step7.txt
@@ -1,4 +1,4 @@
-#lang scheme
+#lang racket
;; There's only one change. It's in `accept-and-handle',
;; and it's marked with "<<<".
diff --git a/collects/scribblings/more/step8.txt b/collects/scribblings/more/step8.txt
index e752942282..e3d36df993 100644
--- a/collects/scribblings/more/step8.txt
+++ b/collects/scribblings/more/step8.txt
@@ -1,4 +1,4 @@
-#lang scheme
+#lang racket
;; No changes to old code --- just three new
;; functions and registrations at the end.
diff --git a/collects/scribblings/more/step9.txt b/collects/scribblings/more/step9.txt
index 7dbf104abb..5d9c1f3d5e 100644
--- a/collects/scribblings/more/step9.txt
+++ b/collects/scribblings/more/step9.txt
@@ -1,10 +1,10 @@
-#lang scheme
+#lang racket
;; See "<<<" for two small changes, then jump down
;; to `send/suspend'.
(require xml net/url
- scheme/control) ;; <<< new import
+ racket/control) ;; <<< new import
(define (serve port-no)
(define main-cust (make-custodian))
diff --git a/collects/scribblings/mzc/common.ss b/collects/scribblings/mzc/common.rkt
similarity index 100%
rename from collects/scribblings/mzc/common.ss
rename to collects/scribblings/mzc/common.rkt
diff --git a/collects/scribblings/mzc/info.ss b/collects/scribblings/mzc/info.rkt
similarity index 100%
rename from collects/scribblings/mzc/info.ss
rename to collects/scribblings/mzc/info.rkt
diff --git a/collects/scribblings/places/info.ss b/collects/scribblings/places/info.rkt
similarity index 100%
rename from collects/scribblings/places/info.ss
rename to collects/scribblings/places/info.rkt
diff --git a/collects/scribblings/quick/info.ss b/collects/scribblings/quick/info.rkt
similarity index 100%
rename from collects/scribblings/quick/info.ss
rename to collects/scribblings/quick/info.rkt
diff --git a/collects/scribblings/quick/keep.ss b/collects/scribblings/quick/keep.rkt
similarity index 100%
rename from collects/scribblings/quick/keep.ss
rename to collects/scribblings/quick/keep.rkt
diff --git a/collects/scribblings/quick/mreval.ss b/collects/scribblings/quick/mreval.rkt
similarity index 100%
rename from collects/scribblings/quick/mreval.ss
rename to collects/scribblings/quick/mreval.rkt
diff --git a/collects/scribblings/reference/async-channels.scrbl b/collects/scribblings/reference/async-channels.scrbl
index 22de9ad336..21f9d054d4 100644
--- a/collects/scribblings/reference/async-channels.scrbl
+++ b/collects/scribblings/reference/async-channels.scrbl
@@ -90,9 +90,10 @@ the event itself. See also @scheme[sync].}
(async-channel-put to-server 'add)
(async-channel-put to-server 4)
(printf "Result is ~a\n" (async-channel-get from-server))
-(printf "Ask server to do a long computation that might take a while\n")
+(printf "Ask server to do a long computation\n")
(async-channel-put to-server 'long)
(printf "I can do other stuff\n")
-(printf "Ok, computation from server is ~a\n" (async-channel-get from-server))
+(printf "Ok, computation from server is ~a\n"
+ (async-channel-get from-server))
(async-channel-put to-server 'quit)
]
diff --git a/collects/scribblings/reference/breaks.scrbl b/collects/scribblings/reference/breaks.scrbl
index e89776049b..d31067fb4c 100644
--- a/collects/scribblings/reference/breaks.scrbl
+++ b/collects/scribblings/reference/breaks.scrbl
@@ -7,47 +7,47 @@
A @deftech{break} is an asynchronous exception, usually triggered
through an external source controlled by the user, or through the
-@scheme[break-thread] procedure. A break exception can only occur in a
+@racket[break-thread] procedure. A break exception can only occur in a
thread while breaks are enabled. When a break is detected and enabled,
the @exnraise[exn:break] in the thread sometime afterward; if breaking
-is disabled when @scheme[break-thread] is called, the break is
+is disabled when @racket[break-thread] is called, the break is
suspended until breaking is again enabled for the thread. While a
thread has a suspended break, additional breaks are ignored.
-Breaks are enabled through the @scheme[break-enabled] parameter-like
-procedure, and through the @scheme[parameterize-break] form, which is
-analogous to @scheme[parameterize]. The @scheme[break-enabled]
+Breaks are enabled through the @racket[break-enabled] parameter-like
+procedure, and through the @racket[parameterize-break] form, which is
+analogous to @racket[parameterize]. The @racket[break-enabled]
procedure does not represent a parameter to be used with
-@scheme[parameterize], because changing the break-enabled state of a
+@racket[parameterize], because changing the break-enabled state of a
thread requires an explicit check for breaks, and this check is
-incompatible with the tail evaluation of a @scheme[parameterize]
+incompatible with the tail evaluation of a @racket[parameterize]
expression's body.
-Certain procedures, such as @scheme[semaphore-wait/enable-break],
+Certain procedures, such as @racket[semaphore-wait/enable-break],
enable breaks temporarily while performing a blocking action. If
breaks are enabled for a thread, and if a break is triggered for the
-thread but not yet delivered as an @scheme[exn:break] exception, then
+thread but not yet delivered as an @racket[exn:break] exception, then
the break is guaranteed to be delivered before breaks can be disabled
-in the thread. The timing of @scheme[exn:break] exceptions is not
+in the thread. The timing of @racket[exn:break] exceptions is not
guaranteed in any other way.
-Before calling a @scheme[with-handlers] predicate or handler, an
+Before calling a @racket[with-handlers] predicate or handler, an
exception handler, an error display handler, an error escape handler,
-an error value conversion handler, or a @scheme[pre-thunk] or
-@scheme[post-thunk] for a @scheme[dynamic-wind], the call is
-@scheme[parameterize-break]ed to disable breaks. Furthermore, breaks
+an error value conversion handler, or a @racket[pre-thunk] or
+@racket[post-thunk] for a @racket[dynamic-wind], the call is
+@racket[parameterize-break]ed to disable breaks. Furthermore, breaks
are disabled during the transitions among handlers related to
-exceptions, during the transitions between @scheme[pre-thunk]s and
-@scheme[post-thunk]s for @scheme[dynamic-wind], and during other
+exceptions, during the transitions between @racket[pre-thunk]s and
+@racket[post-thunk]s for @racket[dynamic-wind], and during other
transitions for a continuation jump. For example, if breaks are
disabled when a continuation is invoked, and if breaks are also
disabled in the target continuation, then breaks will remain disabled
until from the time of the invocation until the target continuation
-executes unless a relevant @scheme[dynamic-wind] @scheme[pre-thunk] or
-@scheme[post-thunk] explicitly enables breaks.
+executes unless a relevant @racket[dynamic-wind] @racket[pre-thunk] or
+@racket[post-thunk] explicitly enables breaks.
If a break is triggered for a thread that is blocked on a nested
-thread (see @scheme[call-in-nested-thread]), and if breaks are enabled
+thread (see @racket[call-in-nested-thread]), and if breaks are enabled
in the blocked thread, the break is implicitly handled by transferring
it to the nested thread.
@@ -55,7 +55,7 @@ When breaks are enabled, they can occur at any point within execution,
which makes certain implementation tasks subtle. For example, assuming
breaks are enabled when the following code is executed,
-@schemeblock[
+@racketblock[
(with-handlers ([exn:break? (lambda (x) (void))])
(semaphore-wait s))
]
@@ -64,18 +64,18 @@ then it is @italic{not} the case that a @|void-const| result means the
semaphore was decremented or a break was received, exclusively. It is
possible that @italic{both} occur: the break may occur after the
semaphore is successfully decremented but before a @|void-const|
-result is returned by @scheme[semaphore-wait]. A break exception will
+result is returned by @racket[semaphore-wait]. A break exception will
never damage a semaphore, or any other built-in construct, but many
-built-in procedures (including @scheme[semaphore-wait]) contain
+built-in procedures (including @racket[semaphore-wait]) contain
internal sub-expressions that can be interrupted by a break.
-In general, it is impossible using only @scheme[semaphore-wait] to
+In general, it is impossible using only @racket[semaphore-wait] to
implement the guarantee that either the semaphore is decremented or an
-exception is raised, but not both. Scheme therefore supplies
-@scheme[semaphore-wait/enable-break] (see @secref["semaphore"]),
+exception is raised, but not both. Racket therefore supplies
+@racket[semaphore-wait/enable-break] (see @secref["semaphore"]),
which does permit the implementation of such an exclusive guarantee:
-@schemeblock[
+@racketblock[
(parameterize-break #f
(with-handlers ([exn:break? (lambda (x) (void))])
(semaphore-wait/enable-break s)))
@@ -84,13 +84,13 @@ which does permit the implementation of such an exclusive guarantee:
In the above expression, a break can occur at any point until breaks
are disabled, in which case a break exception is propagated to the
enclosing exception handler. Otherwise, the break can only occur
-within @scheme[semaphore-wait/enable-break], which guarantees that if
+within @racket[semaphore-wait/enable-break], which guarantees that if
a break exception is raised, the semaphore will not have been
decremented.
To allow similar implementation patterns over blocking port
-operations, MzScheme provides @scheme[read-bytes-avail!/enable-break],
-@scheme[write-bytes-avail/enable-break], and other procedures.
+operations, Racket provides @racket[read-bytes-avail!/enable-break],
+@racket[write-bytes-avail/enable-break], and other procedures.
@;------------------------------------------------------------------------
@@ -99,26 +99,26 @@ operations, MzScheme provides @scheme[read-bytes-avail!/enable-break],
[(break-enabled [on? any/c]) void?])]{
Gets or sets the break enabled state of the current thread. If
-@scheme[on?] is not supplied, the result is @scheme[#t] if breaks are
-currently enabled, @scheme[#f] otherwise. If @scheme[on?] is supplied
-as @scheme[#f], breaks are disabled, and if @scheme[on?] is a true
+@racket[on?] is not supplied, the result is @racket[#t] if breaks are
+currently enabled, @racket[#f] otherwise. If @racket[on?] is supplied
+as @racket[#f], breaks are disabled, and if @racket[on?] is a true
value, breaks are enabled.}
@defform[(parameterize-break boolean-expr body ...+)]{Evaluates
-@scheme[boolean-expr] to determine whether breaks are initially
-enabled in while evaluating the @scheme[body]s in sequence. The result
-of the @scheme[parameter-break] expression is the result of the last
-@scheme[expr].
+@racket[boolean-expr] to determine whether breaks are initially
+enabled in while evaluating the @racket[body]s in sequence. The result
+of the @racket[parameter-break] expression is the result of the last
+@racket[expr].
-Like @scheme[parameterize] (see @secref["parameters"]), a fresh
+Like @racket[parameterize] (see @secref["parameters"]), a fresh
@tech{thread cell} (see @secref["threadcells"]) is allocated to
hold the break-enabled state of the continuation, and calls to
-@scheme[break-enabled] within the continuation access or modify the
+@racket[break-enabled] within the continuation access or modify the
new cell. Unlike parameters, the break setting is not inherited by new
threads.}
@defproc[(current-break-parameterization) break-parameterization?]{
-Analogous to @scheme[(current-parameterization)] (see
+Analogous to @racket[(current-parameterization)] (see
@secref["parameters"]); it returns a break-parameterization
(effectively a thread cell) that holds the current continuation's
break-enable state.}
@@ -127,8 +127,8 @@ break-enable state.}
[break-param break-parameterization?]
[thunk (-> any)])
any]{
-Analogous to @scheme[(call-with-parameterization parameterization
-thunk)] (see @secref["parameters"]), calls @scheme[thunk] in a
-continuation whose break-enabled state is in @scheme[break-param]. The
-@scheme[thunk] is @italic{not} called in tail position with respect to
-the @scheme[call-with-break-parameterization] call.}
+Analogous to @racket[(call-with-parameterization parameterization
+thunk)] (see @secref["parameters"]), calls @racket[thunk] in a
+continuation whose break-enabled state is in @racket[break-param]. The
+@racket[thunk] is @italic{not} called in tail position with respect to
+the @racket[call-with-break-parameterization] call.}
diff --git a/collects/scribblings/reference/bytes.scrbl b/collects/scribblings/reference/bytes.scrbl
index 5288738db5..85d01a3dd1 100644
--- a/collects/scribblings/reference/bytes.scrbl
+++ b/collects/scribblings/reference/bytes.scrbl
@@ -459,7 +459,7 @@ guaranteed combinations not involving @scheme[""] under Unix, or if it
is any of the guaranteed combinations (including @scheme[""]) under
Windows and Mac OS X.
-@margin-note{In PLT's software distributions for Windows, a suitable
+@margin-note{In the Racket software distributions for Windows, a suitable
@filepath{iconv.dll} is included with @filepath{libmzsch@italic{VERS}.dll}.}
The set of available encodings and combinations varies by platform,
diff --git a/collects/scribblings/reference/collects.scrbl b/collects/scribblings/reference/collects.scrbl
index 4b6c9b0880..8939252685 100644
--- a/collects/scribblings/reference/collects.scrbl
+++ b/collects/scribblings/reference/collects.scrbl
@@ -3,67 +3,67 @@
@title[#:tag "collects"]{Libraries and Collections}
-A @deftech{library} is @scheme[module] declaration for use by multiple
-programs. Scheme further groups libraries into @deftech{collections}
-that can be easily distributed and easily added to a local MzScheme
+A @deftech{library} is @racket[module] declaration for use by multiple
+programs. Racket further groups libraries into @deftech{collections}
+that can be easily distributed and easily added to a local Racket
installation.
Some collections are distributed via @|PLaneT|. Such collections are
-referenced through a @scheme[planet] module path (see
-@scheme[require]) and are downloaded by Scheme on demand.
+referenced through a @racket[planet] module path (see
+@racket[require]) and are downloaded by Racket on demand.
-Other collections are distributed with PLT Scheme, in which case each
+Other collections are distributed with Racket, in which case each
collection is a directory that is located in a @filepath{collects}
-directory relative to the @exec{mzscheme}. A collection can also be
+directory relative to the Racket executable. A collection can also be
installed in a user-specific directory. More generally, the search
path for installed collections can be configured through the
-@scheme[current-library-collection-paths] parameter. In all of these
-cases, the collections are referenced through @scheme[lib] paths (see
-@scheme[require]).
+@racket[current-library-collection-paths] parameter. In all of these
+cases, the collections are referenced through @racket[lib] paths (see
+@racket[require]).
-For example, the following module uses the @filepath{getinfo.ss}
+For example, the following module uses the @filepath{getinfo.rkt}
library module from the @filepath{setup} collection, and the
-@filepath{cards.ss} library module from the @filepath{games}
+@filepath{cards.rkt} library module from the @filepath{games}
collection's @filepath{cards} subcollection:
-@schememod[
-scheme
-(require (lib "setup/getinfo.ss")
- (lib "games/cards/cards.ss"))
+@racketmod[
+racket
+(require (lib "setup/getinfo.rkt")
+ (lib "games/cards/cards.rkt"))
....
]
This example is more compactly and more commonly written as
-@schememod[
-scheme
+@racketmod[
+racket
(require setup/getinfo
games/cards/cards)
....
]
-When an identifier @scheme[_id] is used in a @scheme[require] form, it
-is converted to @scheme[(lib _rel-string)] where @scheme[_rel-string]
-is the string form of @scheme[_id].
+When an identifier @racket[_id] is used in a @racket[require] form, it
+is converted to @racket[(lib _rel-string)] where @racket[_rel-string]
+is the string form of @racket[_id].
-A @scheme[_rel-string] in @scheme[(lib _rel-string)] consists of one
+A @racket[_rel-string] in @racket[(lib _rel-string)] consists of one
or more path elements that name collections, and then a final path
element that names a library file; the path elements are separated by
-@litchar{/}. If @scheme[_rel-string] contains no @litchar{/}s, then
-then @litchar{/main.ss} is implicitly appended to the path. If
-@scheme[_rel-string] contains @litchar{/} but does not end with a file
-suffix, then @litchar{.ss} is implicitly appended to the path.
+@litchar{/}. If @racket[_rel-string] contains no @litchar{/}s, then
+then @litchar{/main.rkt} is implicitly appended to the path. If
+@racket[_rel-string] contains @litchar{/} but does not end with a file
+suffix, then @litchar{.rkt} is implicitly appended to the path.
-The translation of a @scheme[planet] or @scheme[lib] path to a
-@scheme[module] declaration is determined by the @tech{module name
-resolver}, as specified by the @scheme[current-module-name-resolver]
+The translation of a @racket[planet] or @racket[lib] path to a
+@racket[module] declaration is determined by the @tech{module name
+resolver}, as specified by the @racket[current-module-name-resolver]
parameter.
For the default @tech{module name resolver}, The search path for
collections is determined by the
-@scheme[current-library-collection-paths] parameter. The list of paths
-in @scheme[current-library-collection-paths] is searched from first to
-last to locate the first collection in a @scheme[_rel-string]. To find
+@racket[current-library-collection-paths] parameter. The list of paths
+in @racket[current-library-collection-paths] is searched from first to
+last to locate the first collection in a @racket[_rel-string]. To find
a sub-collection, the enclosing collection is first found; if the
sub-collection is not present in the found enclosing collection, then
the search continues by looking for another instance of the enclosing
@@ -73,9 +73,9 @@ trees of other path elements. (The ``splicing'' of tress applies only
to directories; a file within a collection is found only within the
first instance of the collection.)
-The value of the @scheme[current-library-collection-paths] parameter
-is initialized in @exec{mzscheme} to the result of
-@scheme[(find-library-collection-paths)].
+The value of the @racket[current-library-collection-paths] parameter
+is initialized in the Racket executable to the result of
+@racket[(find-library-collection-paths)].
@defproc[(find-library-collection-paths [pre-extras (listof path-string?) null]
@@ -86,37 +86,37 @@ Produces a list of paths as follows:
@itemize[
-@item{The path produced by @scheme[(build-path (find-system-path
+@item{The path produced by @racket[(build-path (find-system-path
'addon-dir) (version) "collects")] is the first element of the
default collection path list, unless the value of the
- @scheme[use-user-specific-search-paths] parameter is @scheme[#f].}
+ @racket[use-user-specific-search-paths] parameter is @racket[#f].}
- @item{Extra directories provided in @scheme[pre-extras] are included
+ @item{Extra directories provided in @racket[pre-extras] are included
next to the default collection path list, converted to complete
paths relative to the executable.}
- @item{If the directory specified by @scheme[(find-system-path
+ @item{If the directory specified by @racket[(find-system-path
'collects-dir)] is absolute, or if it is relative (to the
executable) and it exists, then it is added to the end of the
default collection path list.}
- @item{Extra directories provided in @scheme[post-extras] are included
+ @item{Extra directories provided in @racket[post-extras] are included
last in the default collection path list, converted to complete
paths relative to the executable.}
@item{If the @indexed-envvar{PLTCOLLECTS} environment variable is
defined, it is combined with the default list using
- @scheme[path-list-string->path-list]. If it is not defined, the
+ @racket[path-list-string->path-list]. If it is not defined, the
default collection path list (as constructed by the first three
bullets above) is used directly.
Note that under @|AllUnix|, paths are separated by @litchar{:}, and
under Windows by @litchar{;}. Also,
- @scheme[path-list-string->path-list] splices the default paths at an
+ @racket[path-list-string->path-list] splices the default paths at an
empty path, for example, with many Unix shells you can set
@envvar{PLTCOLLECTS} to @tt{":`pwd`"}, @tt{"`pwd`:"}, or
@tt{"`pwd`"} to specify search the current directory after, before,
- or instead of the default paths respectively.}
+ or instead of the default paths, respectively.}
]}
@@ -124,22 +124,22 @@ Produces a list of paths as follows:
@defproc[(collection-path [collection string?] ...+) path?]{
Returns the path to a directory containing the libraries of the
-collection indicated by @scheme[collection]s, where the second
-@scheme[collection] (if any) names a sub-collection, and so on. If the
+collection indicated by @racket[collection]s, where the second
+@racket[collection] (if any) names a sub-collection, and so on. If the
collection is not found, the @exnraise[exn:fail:filesystem].}
@defparam[current-library-collection-paths paths (listof (and/c path? complete-path?))]{
Parameter that determines a list of complete directory paths for
-library collections used by @scheme[require]. See
+library collections used by @racket[require]. See
@secref["collects"] for more information.}
@defboolparam[use-user-specific-search-paths on?]{
Parameter that determines whether user-specific paths, which are in
-the directory produced by @scheme[(find-system-path 'addon-dir)], are
+the directory produced by @racket[(find-system-path 'addon-dir)], are
included in search paths for collections and other files. For example,
-@scheme[find-library-collection-paths] omits the user-specific
-collection directory when this parameter's value is @scheme[#f].}
+@racket[find-library-collection-paths] omits the user-specific
+collection directory when this parameter's value is @racket[#f].}
diff --git a/collects/scribblings/reference/concurrency.scrbl b/collects/scribblings/reference/concurrency.scrbl
index be2c6f312c..52db2de0b6 100644
--- a/collects/scribblings/reference/concurrency.scrbl
+++ b/collects/scribblings/reference/concurrency.scrbl
@@ -3,7 +3,7 @@
@title[#:tag "concurrency" #:style 'toc]{Concurrency}
-PLT Scheme supports multiple threads of control within a program,
+Racket supports multiple threads of control within a program,
thread-local storage, some primitive synchronization mechanisms, and a
framework for composing synchronization abstractions. In addition, the
@scheme[racket/future] library provides some support for parallelism
diff --git a/collects/scribblings/reference/cont-marks.scrbl b/collects/scribblings/reference/cont-marks.scrbl
index 95f90e2555..aa2b2ba1c2 100644
--- a/collects/scribblings/reference/cont-marks.scrbl
+++ b/collects/scribblings/reference/cont-marks.scrbl
@@ -1,6 +1,6 @@
#lang scribble/doc
@(require scribble/struct
- scribble/scheme
+ scribble/racket
"mz.ss")
@(define (cont n)
@@ -12,65 +12,65 @@
See @secref["mark-model"] and @secref["prompt-model"] for
general information about continuation marks.
-The list of continuation marks for a key @scheme[_k] and a continuation
-@scheme[_C] that extends @cont[0] is defined as follows:
+The list of continuation marks for a key @racket[_k] and a continuation
+@racket[_C] that extends @cont[0] is defined as follows:
@itemize[
- @item{If @scheme[_C] is an empty continuation, then the mark list is
- @scheme[null].}
+ @item{If @racket[_C] is an empty continuation, then the mark list is
+ @racket[null].}
- @item{If @scheme[_C]'s first frame contains a mark @scheme[_m] for @scheme[_k],
- then the mark list for @scheme[_C] is @scheme[(cons _m _lst)],
- where @scheme[_lst] is the mark list for @scheme[_k] in @cont[0].}
+ @item{If @racket[_C]'s first frame contains a mark @racket[_m] for @racket[_k],
+ then the mark list for @racket[_C] is @racket[(cons _m _lst)],
+ where @racket[_lst] is the mark list for @racket[_k] in @cont[0].}
- @item{If @scheme[_C]'s first frame does not contain a mark keyed by
- @scheme[_k], then the mark list for @scheme[_C] is the mark list for
+ @item{If @racket[_C]'s first frame does not contain a mark keyed by
+ @racket[_k], then the mark list for @racket[_C] is the mark list for
@cont[0].}
]
-The @scheme[with-continuation-mark] form installs a mark on the first
+The @racket[with-continuation-mark] form installs a mark on the first
frame of the current continuation (see @secref["wcm"]). Procedures
-such as @scheme[current-continuation-marks] allow inspection of marks.
+such as @racket[current-continuation-marks] allow inspection of marks.
-Whenever Scheme creates an exception record for a primitive exception,
-it fills the @scheme[continuation-marks] field with the value of
-@scheme[(current-continuation-marks)], thus providing a snapshot of
+Whenever Racket creates an exception record for a primitive exception,
+it fills the @racket[continuation-marks] field with the value of
+@racket[(current-continuation-marks)], thus providing a snapshot of
the continuation marks at the time of the exception.
When a continuation procedure returned by
-@scheme[call-with-current-continuation] or
-@scheme[call-with-composable-continuation] is invoked, it restores the
+@racket[call-with-current-continuation] or
+@racket[call-with-composable-continuation] is invoked, it restores the
captured continuation, and also restores the marks in the
continuation's frames to the marks that were present when
-@scheme[call-with-current-continuation] or
-@scheme[call-with-composable-continuation] was invoked.
+@racket[call-with-current-continuation] or
+@racket[call-with-composable-continuation] was invoked.
@defproc[(continuation-marks [cont (or/c continuation? thread?)]
[prompt-tag prompt-tag? (default-continuation-prompt-tag)])
continuation-mark-set?]{
Returns an opaque value containing the set of continuation marks for
-all keys in the continuation @scheme[cont] (or the current
-continuation of @scheme[cont] if it is a thread) up to the prompt
-tagged by @scheme[prompt-tag]. If @scheme[cont] is an escape
+all keys in the continuation @racket[cont] (or the current
+continuation of @racket[cont] if it is a thread) up to the prompt
+tagged by @racket[prompt-tag]. If @racket[cont] is an escape
continuation (see @secref["prompt-model"]), then the current
-continuation must extend @scheme[cont], or the
-@exnraise[exn:fail:contract]. If @scheme[cont] was not captured with
-respect to @scheme[prompt-tag] and does not include a prompt for
-@scheme[prompt-tag], the @exnraise[exn:fail:contract]. If
-@scheme[cont] is a dead thread, the result is an empty set of
+continuation must extend @racket[cont], or the
+@exnraise[exn:fail:contract]. If @racket[cont] was not captured with
+respect to @racket[prompt-tag] and does not include a prompt for
+@racket[prompt-tag], the @exnraise[exn:fail:contract]. If
+@racket[cont] is a dead thread, the result is an empty set of
continuation marks.}
@defproc[(current-continuation-marks [prompt-tag prompt-tag? (default-continuation-prompt-tag)])
continuation-mark-set?]{
Returns an opaque value containing the set of continuation marks for
-all keys in the current continuation up to @scheme[prompt-tag]. In
+all keys in the current continuation up to @racket[prompt-tag]. In
other words, it produces the same value as
-@schemeblock[
+@racketblock[
(call-with-current-continuation
(lambda (k)
(continuation-marks k prompt-tag))
@@ -82,11 +82,11 @@ other words, it produces the same value as
[key-v any/c]
[prompt-tag prompt-tag? (default-continuation-prompt-tag)])
list?]{
-Returns a newly-created list containing the marks for @scheme[key-v]
-in @scheme[mark-set], which is a set of marks returned by
-@scheme[current-continuation-marks]. The result list is truncated at
+Returns a newly-created list containing the marks for @racket[key-v]
+in @racket[mark-set], which is a set of marks returned by
+@racket[current-continuation-marks]. The result list is truncated at
the first point, if any, where continuation frames were originally
-separated by a prompt tagged with @scheme[prompt-tag]..}
+separated by a prompt tagged with @racket[prompt-tag]..}
@defproc[(continuation-mark-set->list*
[mark-set continuation-mark-set?]
@@ -95,13 +95,13 @@ separated by a prompt tagged with @scheme[prompt-tag]..}
[prompt-tag prompt-tag? (default-continuation-prompt-tag)])
(listof vector?)]{
Returns a newly-created list containing vectors of marks in
-@scheme[mark-set] for the keys in @scheme[key-list], up to
-@scheme[prompt-tag]. The length of each vector in the result list is
-the same as the length of @scheme[key-list], and a value in a
+@racket[mark-set] for the keys in @racket[key-list], up to
+@racket[prompt-tag]. The length of each vector in the result list is
+the same as the length of @racket[key-list], and a value in a
particular vector position is the value for the corresponding key in
-@scheme[key-list]. Values for multiple keys appear in a single vector
+@racket[key-list]. Values for multiple keys appear in a single vector
only when the marks are for the same continuation frame in
-@scheme[mark-set]. The @scheme[none-v] argument is used for vector
+@racket[mark-set]. The @racket[none-v] argument is used for vector
elements to indicate the lack of a value.}
@defproc[(continuation-mark-set-first
@@ -110,11 +110,11 @@ elements to indicate the lack of a value.}
[prompt-tag prompt-tag? (default-continuation-prompt-tag)])
any]{
Returns the first element of the list that would be returned by
-@scheme[(continuation-mark-set->list (or mark-set
+@racket[(continuation-mark-set->list (or mark-set
(current-continuation-marks prompt-tag)) key-v prompt-tag)], or
-@scheme[#f] if the result would be the empty list. Typically, this
+@racket[#f] if the result would be the empty list. Typically, this
result can be computed more quickly using
-@scheme[continuation-mark-set-first].}
+@racket[continuation-mark-set-first].}
@defproc[(call-with-immediate-continuation-mark
[key-v any/c]
@@ -122,44 +122,44 @@ result can be computed more quickly using
[default-v any/c #f])
any]{
-Calls @scheme[proc] with the value associated with @scheme[key-v] in
+Calls @racket[proc] with the value associated with @racket[key-v] in
the first frame of the current continuation (i.e., a value that would
be replaced if the call to
-@scheme[call-with-immediate-continuation-mark] were replaced with a
-@scheme[with-continuation-mark] form using @scheme[key-v] as the key
+@racket[call-with-immediate-continuation-mark] were replaced with a
+@racket[with-continuation-mark] form using @racket[key-v] as the key
expression). If no such value exists in the first frame,
-@scheme[default-v] is passed to @scheme[proc]. The @scheme[proc] is
+@racket[default-v] is passed to @racket[proc]. The @racket[proc] is
called in tail position with respect to the
-@scheme[call-with-immediate-continuation-mark] call.
+@racket[call-with-immediate-continuation-mark] call.
This function could be implemented with a combination of
-@scheme[with-continuation-mark], @scheme[current-continuation-marks],
-and @scheme[continuation-mark-set->list], but
-@scheme[call-with-immediate-continuation-mark] is implemented more
+@racket[with-continuation-mark], @racket[current-continuation-marks],
+and @racket[continuation-mark-set->list], but
+@racket[call-with-immediate-continuation-mark] is implemented more
efficiently; it inspects only the first frame of the current
continuation.}
@defproc[(continuation-mark-set? [v any/c]) boolean?]{
-Returns @scheme[#t] if @scheme[v] is a mark set created by
-@scheme[continuation-marks] or @scheme[current-continuation-marks],
-@scheme[#f] otherwise.}
+Returns @racket[#t] if @racket[v] is a mark set created by
+@racket[continuation-marks] or @racket[current-continuation-marks],
+@racket[#f] otherwise.}
@defproc[(continuation-mark-set->context
[mark-set continuation-mark-set?])
list?]{
Returns a list representing an approximate ``@index["stack
-dump"]{@as-index{stack trace}}'' for @scheme[mark-set]'s
-continuation. The list contains pairs, where the @scheme[car] of each
-pair contains either @scheme[#f] or a symbol for a procedure name, and
-the @scheme[cdr] of each pair contains either @scheme[#f] or a
-@scheme[srcloc] value for the procedure's source location (see
-@secref["linecol"]); the @scheme[car] and @scheme[cdr] are never both
-@scheme[#f].
+dump"]{@as-index{stack trace}}'' for @racket[mark-set]'s
+continuation. The list contains pairs, where the @racket[car] of each
+pair contains either @racket[#f] or a symbol for a procedure name, and
+the @racket[cdr] of each pair contains either @racket[#f] or a
+@racket[srcloc] value for the procedure's source location (see
+@secref["linecol"]); the @racket[car] and @racket[cdr] are never both
+@racket[#f].
Conceptually, the stack-trace list is the result of
-@scheme[continuation-mark-set->list] with @scheme[mark-set] and
-Scheme's private key for procedure-call marks. The implementation may
+@racket[continuation-mark-set->list] with @racket[mark-set] and
+Racket's private key for procedure-call marks. The implementation may
be different, however, and the results may merely approximate the
correct answer. Thus, while the result may contain useful hints to
humans about the context of an expression, it is not reliable enough
@@ -167,8 +167,8 @@ for programmatic use.
A stack trace is extracted from an exception and displayed by the
default error display handler (see
-@scheme[error-display-handler]) for exceptions other than
-@scheme[exn:fail:user] (see @scheme[raise-user-error] in
+@racket[error-display-handler]) for exceptions other than
+@racket[exn:fail:user] (see @racket[raise-user-error] in
@secref["errorproc"]).}
@examples[
diff --git a/collects/scribblings/reference/contracts.scrbl b/collects/scribblings/reference/contracts.scrbl
index 542acdd3b6..53fb9785c1 100644
--- a/collects/scribblings/reference/contracts.scrbl
+++ b/collects/scribblings/reference/contracts.scrbl
@@ -14,7 +14,7 @@
The contract system guards one part of a program from
another. Programmers specify the behavior of a module exports via
-@scheme[provide/contract] and the contract system enforces those
+@racket[provide/contract] and the contract system enforces those
constraints.
@note-lib[racket/contract #:use-sources (racket/contract/private/ds
@@ -25,23 +25,23 @@ constraints.
@deftech{Contracts} come in two forms: those constructed by the
various operations listed in this section of the manual, and various
-ordinary Scheme values that double as contracts, including
+ordinary Racket values that double as contracts, including
@itemize[
@item{@tech{symbols}, @tech{booleans}, @tech{characters}, and
-@scheme[null], which are treated as contracts that recognize
-themselves, using @scheme[eq?], }
+@racket[null], which are treated as contracts that recognize
+themselves, using @racket[eq?], }
@item{@tech{strings} and @tech{byte strings}, which are treated as contracts
-that recognize themselves using @scheme[equal?], }
+that recognize themselves using @racket[equal?], }
@item{@tech{numbers}, which are treated as contracts
-that recognize themselves using @scheme[=],}
+that recognize themselves using @racket[=],}
@item{@tech{regular expressions}, which are treated as contracts that recognize @tech{byte strings} and @tech{strings} that match the regular expression, and }
@item{predicates: any procedure of arity 1 is treated as a
predicate. During contract checking, it is applied to the values that
-appear and should return @scheme[#f] to indicate that the contract
+appear and should return @racket[#f] to indicate that the contract
failed, and anything else to indicate it passed.}
]
@@ -57,17 +57,17 @@ a given value.
@defproc[(flat-contract [predicate (any/c . -> . any/c)]) flat-contract?]{
-Constructs a @tech{flat contract} from @scheme[predicate]. A value
+Constructs a @tech{flat contract} from @racket[predicate]. A value
satisfies the contract if the predicate returns a true value.}
@defproc[(flat-named-contract [type-name any/c] [predicate (or/c flat-contract? (any/c . -> . any))])
flat-contract?]{
-On predicates like @scheme[flat-contract], but the first argument must be the
+On predicates like @racket[flat-contract], but the first argument must be the
(quoted) name of a contract used for error reporting.
For example,
-@schemeblock[(flat-named-contract
+@racketblock[(flat-named-contract
'odd-integer
(lambda (x) (and (integer? x) (odd? x))))]
turns the predicate into a contract with the name @tt{odd-integer}.
@@ -81,7 +81,7 @@ the name.
A flat contract that accepts any value.
When using this contract as the result portion of a function contract,
-consider using @scheme[any] instead; using @scheme[any] leads to
+consider using @racket[any] instead; using @racket[any] leads to
better memory performance, but it also allows multiple results.}
@@ -97,11 +97,11 @@ Takes any number of contracts and returns
a contract that accepts any value that any one of the contracts
accepts, individually.
-The @scheme[or/c] result tests any value by applying the contracts in
+The @racket[or/c] result tests any value by applying the contracts in
order, from left to right, with the exception that it always moves the
non-@tech{flat contracts} (if any) to the end, checking them
-last. Thus, a contract such as @scheme[(or/c (not/c real?)
-positive?)] is guaranteed to only invoke the @scheme[positive?]
+last. Thus, a contract such as @racket[(or/c (not/c real?)
+positive?)] is guaranteed to only invoke the @racket[positive?]
predicate on real numbers.
If all of the arguments are procedures or @tech{flat contracts}, the
@@ -110,21 +110,21 @@ higher-order contract, the result is a contract that just checks the
flat contracts and, if they don't pass, applies the higher-order
contract.
-If there are multiple higher-order contracts, @scheme[or/c] uses
-@scheme[contract-first-order-passes?] to distinguish between
-them. More precisely, when an @scheme[or/c] is checked, it first
+If there are multiple higher-order contracts, @racket[or/c] uses
+@racket[contract-first-order-passes?] to distinguish between
+them. More precisely, when an @racket[or/c] is checked, it first
checks all of the @tech{flat contracts}. If none of them pass, it
-calls @scheme[contract-first-order-passes?] with each of the
-higher-order contracts. If only one returns true, @scheme[or/c] uses
+calls @racket[contract-first-order-passes?] with each of the
+higher-order contracts. If only one returns true, @racket[or/c] uses
that contract. If none of them return true, it signals a contract
violation. If more than one returns true, it also signals a contract
violation.
For example, this contract
-@schemeblock[
+@racketblock[
(or/c (-> number? number?)
(-> string? string? string?))
]
-does not accept a function like this one: @scheme[(lambda args ...)]
+does not accept a function like this one: @racket[(lambda args ...)]
since it cannot tell which of the two arrow contracts should be used
with the function.
}
@@ -138,7 +138,7 @@ accepts any value that satisfies all of the contracts, simultaneously.
If all of the arguments are procedures or @tech{flat contracts},
the result is a @tech{flat contract}.
-The contract produced by @scheme[and/c] tests any value by applying
+The contract produced by @racket[and/c] tests any value by applying
the contracts in order, from left to right.}
@@ -152,41 +152,41 @@ that checks the inverse of the argument.}
@defproc[(=/c [z real?]) flat-contract?]{
Returns a flat contract that requires the input to be a number and
-@scheme[=] to @scheme[z].}
+@racket[=] to @racket[z].}
@defproc[(/c [n real?]) flat-contract?]{
-Like @scheme[].}
+Like @racket[].}
@defproc[(<=/c [n real?]) flat-contract?]{
-Like @scheme[=/c [n real?]) flat-contract?]{
-Like @scheme[=].}
+Like @racket[=].}
@defproc[(between/c [n real?] [m real?])
flat-contract?]{ Returns a flat contract that requires the
-input to be a between @scheme[n] and @scheme[m] or equal to
+input to be a between @racket[n] and @racket[m] or equal to
one of them.}
@defproc[(real-in [n real?][m real?]) flat-contract?]{
Returns a flat contract that requires the input to be a real number
-between @scheme[n] and @scheme[m], inclusive.}
+between @racket[n] and @racket[m], inclusive.}
@defproc[(integer-in [j exact-integer?][k exact-integer?]) flat-contract?]{
Returns a flat contract that requires the input to be an exact integer
-between @scheme[j] and @scheme[k], inclusive.}
+between @racket[j] and @racket[k], inclusive.}
@defthing[natural-number/c flat-contract?]{
@@ -197,25 +197,25 @@ A flat contract that requires the input to be an exact non-negative integer.}
@defproc[(string-len/c [len exact-nonnegative-integer?]) flat-contract?]{
Returns a flat contract that recognizes strings that have fewer than
-@scheme[len] characters.}
+@racket[len] characters.}
@defthing[false/c flat-contract?]{
-This is just @scheme[#f]. It is here for backwards compatibility.}
+This is just @racket[#f]. It is here for backwards compatibility.}
@defthing[printable/c flat-contract?]{
A flat contract that recognizes values that can be written out and
-read back in with @scheme[write] and @scheme[read].}
+read back in with @racket[write] and @racket[read].}
@defproc[(one-of/c [v any/c] ...+) flat-contract?]{
Accepts any number of atomic values and returns a flat contract that
-recognizes those values, using @scheme[eqv?] as the comparison
-predicate. For the purposes of @scheme[one-of/c], atomic values are
+recognizes those values, using @racket[eqv?] as the comparison
+predicate. For the purposes of @racket[one-of/c], atomic values are
defined to be: characters, symbols, booleans, null keywords, numbers,
void, and undefined.}
@@ -229,108 +229,108 @@ recognizes those symbols.}
@defproc[(vectorof [c (or/c flat-contract? (any/c . -> . any/c))]) flat-contract?]{
Accepts a @tech{flat contract} (or a predicate that is converted to a
-flat contract via @scheme[flat-contract]) and returns a flat contract
+flat contract via @racket[flat-contract]) and returns a flat contract
that checks for vectors whose elements match the original contract.}
@defproc[(vector-immutableof [c (or/c contract? (any/c . -> . any/c))]) contract?]{
-Like @scheme[vectorof], but the contract needs not be a @tech{flat
+Like @racket[vectorof], but the contract needs not be a @tech{flat
contract}. Beware that when this contract is applied to a
-value, the result is not @scheme[eq?] to the input.}
+value, the result is not @racket[eq?] to the input.}
@defproc[(vector/c [c (or/c flat-contract? (any/c . -> . any/c))] ...) flat-contract?]{
Accepts any number of flat contracts (or predicates that are converted
-to flat contracts via @scheme[flat-contract]) and returns a
+to flat contracts via @racket[flat-contract]) and returns a
flat-contract that recognizes vectors. The number of elements in the
vector must match the number of arguments supplied to
-@scheme[vector/c], and each element of the vector must match the
+@racket[vector/c], and each element of the vector must match the
corresponding flat contract.}
@defproc[(vector-immutable/c [c (or/c contract? (any/c . -> . any/c))] ...) contract?]{
-Like @scheme[vector/c], but the individual contracts need not be
+Like @racket[vector/c], but the individual contracts need not be
@tech{flat contracts}. Beware that when this contract is applied to a
-value, the result is not @scheme[eq?] to the input.}
+value, the result is not @racket[eq?] to the input.}
@defproc[(box/c [c (or/c flat-contract? (any/c . -> . any/c))]) flat-contract?]{
Returns a flat-contract that recognizes boxes. The content of the box
-must match @scheme[c].}
+must match @racket[c].}
@defproc[(box-immutable/c [c (or/c contract? (any/c . -> . any/c))]) contract?]{
-Like @scheme[box/c], but @scheme[c] need not be @tech{flat
+Like @racket[box/c], but @racket[c] need not be @tech{flat
contract}. Beware that when this contract is applied to a value, the
-result is not @scheme[eq?] to the input.}
+result is not @racket[eq?] to the input.}
@defproc[(listof [c (or/c contract? (any/c . -> . any/c))]) contract?]{
Returns a contract that recognizes a list whose every element matches
-the contract @scheme[c]. Beware that when this contract is applied to
-a value, the result is not necessarily @scheme[eq?] to the input.}
+the contract @racket[c]. Beware that when this contract is applied to
+a value, the result is not necessarily @racket[eq?] to the input.}
@defproc[(non-empty-listof [c (or/c contract? (any/c . -> . any/c))]) contract?]{
Returns a contract that recognizes non-empty lists whose elements match
-the contract @scheme[c]. Beware that when this contract is applied to
-a value, the result is not necessarily @scheme[eq?] to the input.}
+the contract @racket[c]. Beware that when this contract is applied to
+a value, the result is not necessarily @racket[eq?] to the input.}
@defproc[(cons/c [car-c contract?][cdr-c contract?]) contract?]{
Produces a contract the recognizes pairs first and second elements
-match @scheme[car-c] and @scheme[cdr-c], respectively. Beware that
+match @racket[car-c] and @racket[cdr-c], respectively. Beware that
when this contract is applied to a value, the result is not
-necessarily @scheme[eq?] to the input.}
+necessarily @racket[eq?] to the input.}
@defproc[(list/c [c (or/c contract? (any/c . -> . any/c))] ...) contract?]{
Produces a contract for a list. The number of elements in the list
-must match the number of arguments supplied to @scheme[list/c], and
+must match the number of arguments supplied to @racket[list/c], and
each element of the list must match the corresponding contract. Beware
that when this contract is applied to a value, the result is not
-necessarily @scheme[eq?] to the input.}
+necessarily @racket[eq?] to the input.}
@defproc[(syntax/c [c flat-contract?]) flat-contract?]{
Produces a flat contract that recognizes syntax objects whose
-@scheme[syntax-e] content matches @scheme[c].}
+@racket[syntax-e] content matches @racket[c].}
@defform[(struct/c struct-id flat-contract-expr ...)]{
Produces a flat contract that recognizes instances of the structure
-type named by @scheme[struct-id], and whose field values match the
-@tech{flat contracts} produced by the @scheme[flat-contract-expr]s.}
+type named by @racket[struct-id], and whose field values match the
+@tech{flat contracts} produced by the @racket[flat-contract-expr]s.}
@defproc[(parameter/c [c contract?]) contract?]{
Produces a contract on parameters whose values must match
-@scheme[contract].}
+@racket[contract].}
@defproc[(hash/c [key contract?]
[val contract?]
[#:immutable immutable (or/c #t #f 'dont-care) 'dont-care])
contract?]{
-Produces a contract that recognizes @scheme[hash] tables with keys and values
-as specified by the @scheme[key] and @scheme[val] arguments.
+Produces a contract that recognizes @racket[hash] tables with keys and values
+as specified by the @racket[key] and @racket[val] arguments.
-If the @scheme[immutable] argument is @scheme[#f] or
-@scheme['dont-care], then the resulting contract is a flat contract,
-and the @scheme[key] and @scheme[val] arguments must also be flat
+If the @racket[immutable] argument is @racket[#f] or
+@racket['dont-care], then the resulting contract is a flat contract,
+and the @racket[key] and @racket[val] arguments must also be flat
contracts.
-If @scheme[immutable] is @scheme[#t], then the other arguments do not
+If @racket[immutable] is @racket[#t], then the other arguments do not
have to be flat contracts, the result is not a flat contract, and
checking this contract involves making a copy of the hash-table.
}
@@ -339,12 +339,12 @@ checking this contract involves making a copy of the hash-table.
@defform[(flat-rec-contract id flat-contract-expr ...)]
Constructs a recursive @tech{flat contract}. A
-@scheme[flat-contract-expr] can refer to @scheme[id] to refer
+@racket[flat-contract-expr] can refer to @racket[id] to refer
recursively to the generated contract.
For example, the contract
-@schemeblock[
+@racketblock[
(flat-rec-contract sexp
(cons/c sexp sexp)
number?
@@ -352,8 +352,8 @@ For example, the contract
]
is a flat contract that checks for (a limited form of)
-S-expressions. It says that an @scheme[sexp] is either two
-@scheme[sexp] combined with @scheme[cons], or a number, or a symbol.
+S-expressions. It says that an @racket[sexp] is either two
+@racket[sexp] combined with @racket[cons], or a number, or a symbol.
Note that if the contract is applied to a circular value, contract
checking will not terminate.}
@@ -361,23 +361,23 @@ checking will not terminate.}
@defform[(flat-murec-contract ([id flat-contract-expr ...] ...) body ...+)]{
-A generalization of @scheme[flat-rec-contract] for defining several
-mutually recursive flat contracts simultaneously. Each @scheme[id] is
-visible in the entire @scheme[flat-murec-contract] form, and the
-result of the final @scheme[body] is the result of the entire form.}
+A generalization of @racket[flat-rec-contract] for defining several
+mutually recursive flat contracts simultaneously. Each @racket[id] is
+visible in the entire @racket[flat-murec-contract] form, and the
+result of the final @racket[body] is the result of the entire form.}
@defidform[any]{
Represents a contract that is always satisfied. In particular, it can accept
multiple values. It can only be used in a result position of contracts like
-@scheme[->]. Using @scheme[any] elsewhere is a syntax error.}
+@racket[->]. Using @racket[any] elsewhere is a syntax error.}
@defform[(promise/c expr)]{
Constructs a contract on a promise. The contract does not force the
promise, but when the promise is forced, the contract checks that the
-result value meets the contract produced by @scheme[expr].}
+result value meets the contract produced by @racket[expr].}
@defproc[(new-∃/c [name symbol?]) contract?]{
Constructs a new existential contract.
@@ -389,14 +389,14 @@ result value meets the contract produced by @scheme[expr].}
for the wrappers).
For example, this contract:
- @schemeblock[(let ([a (new-∃/c 'a)])
+ @racketblock[(let ([a (new-∃/c 'a)])
(-> (-> a a)
any/c))]
describes a function that accepts the identity function (or a non-terminating function)
- and returns an arbitrary value. That is, the first use of the @scheme[a] appears in a
+ and returns an arbitrary value. That is, the first use of the @racket[a] appears in a
positive position and thus inputs to that function are wrapped with an opaque struct.
Then, when the function returns, it is checked to see if the result is wrapped, since
- the second @scheme[a] appears in a negative position.
+ the second @racket[a] appears in a negative position.
}
@@ -408,19 +408,19 @@ A @deftech{function contract} wraps a procedure to delay
checks for its arguments and results. There are three
primary function contract combinators that have increasing
amounts of expressiveness and increasing additional
-overheads. The first @scheme[->] is the cheapest. It
+overheads. The first @racket[->] is the cheapest. It
generates wrapper functions that can call the original
-function directly. Contracts built with @scheme[->*] require
+function directly. Contracts built with @racket[->*] require
packaging up arguments as lists in the wrapper function and
-then using either @scheme[keyword-apply] or
-@scheme[apply]. Finally, @scheme[->d] is the most expensive,
+then using either @racket[keyword-apply] or
+@racket[apply]. Finally, @racket[->d] is the most expensive,
because it requires delaying the evaluation of the contract
expressions for the domain and range until the function
itself is called or returns.
-The @scheme[case->] contract is a specialized contract,
-designed to match @scheme[case-lambda] and
-@scheme[unconstrained-domain->] allows range checking
+The @racket[case->] contract is a specialized contract,
+designed to match @racket[case-lambda] and
+@racket[unconstrained-domain->] allows range checking
without requiring that the domain have any particular shape
(see below for an example use).
@@ -432,21 +432,21 @@ without requiring that the domain have any particular shape
Produces a contract for a function that accepts a fixed
number of arguments and returns either a fixed number of
results or completely unspecified results (the latter when
-@scheme[any] is specified).
+@racket[any] is specified).
-Each @scheme[dom-expr] is a contract on an argument to a
-function, and each @scheme[range-expr] is a contract on a
+Each @racket[dom-expr] is a contract on an argument to a
+function, and each @racket[range-expr] is a contract on a
result of the function.
-@margin-note{Using an @scheme[->] between two whitespace-delimited
-@schemeparenfont{.}s is the same as putting the @scheme[->] right
+@margin-note{Using an @racket[->] between two whitespace-delimited
+@racketparenfont{.}s is the same as putting the @racket[->] right
after the enclosing open parenthesis. See
@guidesecref["lists-and-syntax"] or @secref["parse-pair"] for more
information.}
For example,
-@schemeblock[(integer? boolean? . -> . integer?)]
+@racketblock[(integer? boolean? . -> . integer?)]
produces a contract on functions of two arguments. The first argument
must be an integer, and the second argument must be a boolean. The
@@ -457,18 +457,18 @@ accept corresponding (mandatory) keyword arguments, and the values for
the keyword arguments must match the corresponding contracts. For
example:
-@schemeblock[(integer? #:x boolean? . -> . integer?)]
+@racketblock[(integer? #:x boolean? . -> . integer?)]
is a contract on a function that accepts a by-position argument that
-is an integer and a @scheme[#:x] argument is that a boolean.
+is an integer and a @racket[#:x] argument is that a boolean.
-If @scheme[any] is used as the last sub-form for @scheme[->], no
+If @racket[any] is used as the last sub-form for @racket[->], no
contract checking is performed on the result of the function, and
thus any number of values is legal (even different numbers on different
invocations of the function).
-If @scheme[(values range-expr ...)] is used as the last sub-form of
-@scheme[->], the function must produce a result for each contract, and
+If @racket[(values range-expr ...)] is used as the last sub-form of
+@racket[->], the function must produce a result for each contract, and
each value must match its respective contract.}
@@ -479,22 +479,22 @@ each value must match its respective contract.}
[rest (code:line) (code:line #:rest rest-expr)]
[range range-expr (values range-expr ...) any])]{
-The @scheme[->*] contract combinator produces contracts for
+The @racket[->*] contract combinator produces contracts for
functions that accept optional arguments (either keyword or
positional) and/or arbitrarily many arguments. The first
-clause of a @scheme[->*] contract describes the mandatory
+clause of a @racket[->*] contract describes the mandatory
arguments, and is similar to the argument description of a
-@scheme[->] contract. The second clause describes the
+@racket[->] contract. The second clause describes the
optional arguments. The last clause describes the range of
-the function. It can either be @scheme[any] or a
+the function. It can either be @racket[any] or a
sequence of contracts, indicating that the function must
-return multiple values. If present, the @scheme[rest-expr]
+return multiple values. If present, the @racket[rest-expr]
contract governs the arguments in the rest parameter.
As an example, the contract
-@schemeblock[(->* () (boolean? #:x integer?) #:rest (listof symbol?) symbol?)]
+@racketblock[(->* () (boolean? #:x integer?) #:rest (listof symbol?) symbol?)]
matches functions that optionally accept a boolean, an
-integer keyword argument @scheme[#:x] and arbitrarily more
+integer keyword argument @racket[#:x] and arbitrarily more
symbols, and that return a symbol.
}
@@ -517,7 +517,7 @@ symbols, and that return a symbol.
[post-cond (code:line) (code:line #:post-cond boolean-expr)]
)]{
-The @scheme[->d] is similar in shape to @scheme[->*], with
+The @racket[->d] is similar in shape to @racket[->*], with
two extensions: names have been added to each argument and
result, which allows the contracts to depend on the values
of the arguments and results, and pre- and post-condition
@@ -525,31 +525,31 @@ expressions have been added in order to express contracts
that are not naturally tied to a particular argument or
result.
-The first two subforms of a @scheme[->d] contract cover the
+The first two subforms of a @racket[->d] contract cover the
mandatory and optional arguments. Following that is an
optional rest-args contract, and an optional
-pre-condition. The @scheme[dep-range] non-terminal covers
+pre-condition. The @racket[dep-range] non-terminal covers
the possible post-condition contracts. If it is
-@scheme[any], then any result (or results) are
+@racket[any], then any result (or results) are
allowed. Otherwise, the result contract can be a name and a
result contract, or a multiple values return and, in either
of the last two cases, it may be optionally followed by a
post-condition.
-Each of the @scheme[id]s on an argument (including the rest
+Each of the @racket[id]s on an argument (including the rest
argument) is visible in all of the sub-expressions of
-@scheme[->d]. Each of the @scheme[id]s on a result is
-visible in the subexpressions of the @scheme[dep-range].
+@racket[->d]. Each of the @racket[id]s on a result is
+visible in the subexpressions of the @racket[dep-range].
If the identifier position of the range contract is
-@scheme[_] (an underscore), then the range contract
+@racket[_] (an underscore), then the range contract
expressions are evaluated when the function is called (and
the underscore is not bound in the range). Otherwise the
range expressions are evaluated when the function returns.
If there are optional arguments that are not supplied, then
the corresponding variables will be bound to a special value
-called the @scheme[unsupplied-arg] value.
+called the @racket[unsupplied-arg] value.
}
@defform*/subs[#:literals (any values ->)
@@ -557,19 +557,19 @@ called the @scheme[unsupplied-arg] value.
([rest (code:line) (code:line #:rest rest-expr)]
[range range-expr (values range-expr ...) any])]{
This contract form is designed to match
-@scheme[case-lambda]. Each argument to @scheme[case->] is a
+@racket[case-lambda]. Each argument to @racket[case->] is a
contract that governs a clause in the
-@scheme[case-lambda]. If the @scheme[#:rest] keyword is
+@racket[case-lambda]. If the @racket[#:rest] keyword is
present, the corresponding clause must accept an arbitrary
-number of arguments. The @scheme[range] specification is
-just like that for @scheme[->] and @scheme[->*].
+number of arguments. The @racket[range] specification is
+just like that for @racket[->] and @racket[->*].
}
@defform[(unconstrained-domain-> range-expr ...)]{
Constructs a contract that accepts a function, but makes no constraint
-on the function's domain. The @scheme[range-expr]s determine the number
+on the function's domain. The @racket[range-expr]s determine the number
of results and the contract for each result.
Generally, this contract must be combined with another contract to
@@ -578,7 +578,7 @@ function itself.
For example, the contract
-@schemeblock[
+@racketblock[
(provide/contract
[f (->d ([size natural-number/c]
[proc (and/c (unconstrained-domain-> number?)
@@ -588,16 +588,16 @@ For example, the contract
number?)])
]
-says that the function @scheme[f] accepts a natural number
-and a function. The domain of the function that @scheme[f]
-accepts must include a case for @scheme[size] arguments,
-meaning that @scheme[f] can safely supply @scheme[size]
+says that the function @racket[f] accepts a natural number
+and a function. The domain of the function that @racket[f]
+accepts must include a case for @racket[size] arguments,
+meaning that @racket[f] can safely supply @racket[size]
arguments to its input.
-For example, the following is a definition of @scheme[f] that cannot
+For example, the following is a definition of @racket[f] that cannot
be blamed using the above contract:
-@schemeblock[
+@racketblock[
(define (f i g)
(apply g (build-list i add1)))
]}
@@ -611,9 +611,9 @@ be blamed using the above contract:
(define-contract-struct id (field-id ...))
]{
-Like @scheme[define-struct], but with two differences: it does not
+Like @racket[define-struct], but with two differences: it does not
define field mutators, and it does define two contract constructors:
-@scheme[id]@schemeidfont{/c} and @scheme[id]@schemeidfont{/dc}. The
+@racket[id]@racketidfont{/c} and @racket[id]@racketidfont{/dc}. The
first is a procedure that accepts as many arguments as there are
fields and returns a contract for struct values whose fields match the
arguments. The second is a syntactic form that also produces contracts
@@ -626,20 +626,20 @@ actually inspected. More precisely, a lazy data structure contract is
not checked until a selector extracts a field of a struct.
@specsubform/subs[
-(#,(elem (scheme id) (schemeidfont "/dc")) field-spec ...)
+(#,(elem (racket id) (racketidfont "/dc")) field-spec ...)
([field-spec
[field-id contract-expr]
[field-id (field-id ...) contract-expr]])
]{
-In each @scheme[field-spec] case, the first @scheme[field-id]
+In each @racket[field-spec] case, the first @racket[field-id]
specifies which field the contract applies to; the fields must be
specified in the same order as the original
-@scheme[define-contract-struct]. The first case is for when the
+@racket[define-contract-struct]. The first case is for when the
contract on the field does not depend on the value of any other
field. The second case is for when the contract on the field does
-depend on some other fields, and the parenthesized @scheme[field-id]s
+depend on some other fields, and the parenthesized @racket[field-id]s
indicate which fields it depends on; these dependencies can only be to
earlier fields.}
@@ -652,16 +652,16 @@ racket
(define-contract-struct kons (hd tl))
-;; @scheme[sorted-list/gt : number -> contract]
+;; @racket[sorted-list/gt : number -> contract]
;; produces a contract that accepts
;; sorted kons-lists whose elements
-;; are all greater than @scheme[num].
+;; are all greater than @racket[num].
(define (sorted-list/gt num)
(or/c null?
(kons/dc [hd (>=/c num)]
[tl (hd) (sorted-list/gt hd)])))
-;; @scheme[product : kons-list -> number]
+;; @racket[product : kons-list -> number]
;; computes the product of the values
;; in the list. if the list contains
;; zero, it avoids traversing the rest
@@ -679,14 +679,14 @@ racket
(provide/contract [product (-> (sorted-list/gt -inf.0) number?)])
])
-The module provides a single function, @scheme[product] whose contract
+The module provides a single function, @racket[product] whose contract
indicates that it accepts sorted lists of numbers and produces
numbers. Using an ordinary flat contract for sorted lists, the product
function cannot avoid traversing having its entire argument be
traversed, since the contract checker will traverse it before the
function is called. As written above, however, when the product
function aborts the traversal of the list, the contract checking also
-stops, since the @scheme[kons/dc] contract constructor generates a
+stops, since the @racket[kons/dc] contract constructor generates a
lazy contract.}
@; ------------------------------------------------------------------------
@@ -706,12 +706,12 @@ lazy contract.}
[exists-variables identifier
(identifier ...)])]{
-Can only appear at the top-level of a @scheme[module]. As with
-@scheme[provide], each @scheme[id] is provided from the module. In
+Can only appear at the top-level of a @racket[module]. As with
+@racket[provide], each @racket[id] is provided from the module. In
addition, clients of the module must live up to the contract specified
-by @scheme[contract-expr] for each export.
+by @racket[contract-expr] for each export.
-The @scheme[provide/contract] form treats modules as units of
+The @racket[provide/contract] form treats modules as units of
blame. The module that defines the provided variable is expected to
meet the positive (co-variant) positions of the contract. Each module
that imports the provided variable must obey the negative
@@ -720,24 +720,24 @@ that imports the provided variable must obey the negative
Only uses of the contracted variable outside the module are
checked. Inside the module, no contract checking occurs.
-The @scheme[rename] form of a @scheme[provide/contract] exports the
+The @racket[rename] form of a @racket[provide/contract] exports the
first variable (the internal name) with the name specified by the
second variable (the external name).
-The @scheme[struct] form of a @scheme[provide/contract] clause
+The @racket[struct] form of a @racket[provide/contract] clause
provides a structure definition, and each field has a contract that
dictates the contents of the fields. The struct definition must come
before the provide clause in the module's body. If the struct has a
-parent, the second @scheme[struct] form (above) must be used, with the
+parent, the second @racket[struct] form (above) must be used, with the
first name referring to the struct itself and the second name
-referring to the parent struct. Unlike @scheme[define-struct],
+referring to the parent struct. Unlike @racket[define-struct],
however, all of the fields (and their contracts) must be listed. The
contract on the fields that the sub-struct shares with its parent are
only used in the contract for the sub-struct's maker, and the selector
or mutators for the super-struct are not provided.
-The @scheme[#:∃] and @scheme[#:exists] clauses define new abstract
-contracts. The variables are bound in the remainder of the @scheme[provide/contract]
+The @racket[#:∃] and @racket[#:exists] clauses define new abstract
+contracts. The variables are bound in the remainder of the @racket[provide/contract]
expression to new contracts that hide the values they accept and
ensure that the exported functions are treated parametrically.
}
@@ -755,61 +755,61 @@ ensure that the exported functions are treated parametrically.
(code:line #:freevar id contract-expr)])]{
Generates a local contract boundary.
-The first @scheme[with-contract] form cannot appear in expression position.
-All names defined within the first @scheme[with-contract] form are
-visible externally, but those names listed in the @scheme[wc-export]
-list are protected with the corresponding contract. The @scheme[body] of
+The first @racket[with-contract] form cannot appear in expression position.
+All names defined within the first @racket[with-contract] form are
+visible externally, but those names listed in the @racket[wc-export]
+list are protected with the corresponding contract. The @racket[body] of
the form allows definition/expression interleaving if its context does.
-The second @scheme[with-contract] form must appear in expression position.
-The final @scheme[body] expression should return the same number of values
-as the number of contracts listed in the @scheme[result-spec], and each
+The second @racket[with-contract] form must appear in expression position.
+The final @racket[body] expression should return the same number of values
+as the number of contracts listed in the @racket[result-spec], and each
returned value is contracted with its respective contract. The sequence
-of @scheme[body] forms is treated as for @scheme[let].
+of @racket[body] forms is treated as for @racket[let].
-The @scheme[blame-id] is used for the positive positions of
-contracts paired with exported @scheme[id]s. Contracts broken
-within the @scheme[with-contract] @scheme[body] will use the
-@scheme[blame-id] for their negative position.
+The @racket[blame-id] is used for the positive positions of
+contracts paired with exported @racket[id]s. Contracts broken
+within the @racket[with-contract] @racket[body] will use the
+@racket[blame-id] for their negative position.
If a free-var-list is given, then any uses of the free variables
-inside the @scheme[body] will be protected with contracts that
-blame the context of the @scheme[with-contract] form for the positive
-positions and the @scheme[with-contract] form for the negative ones.}
+inside the @racket[body] will be protected with contracts that
+blame the context of the @racket[with-contract] form for the positive
+positions and the @racket[with-contract] form for the negative ones.}
@defform*[[(define/contract id contract-expr free-var-list init-value-expr)
(define/contract (head args) contract-expr free-var-list body ...+)]]{
-Works like @scheme[define], except that the contract
-@scheme[contract-expr] is attached to the bound value. For the
-definition of @scheme[head] and @scheme[args], see @scheme[define].
-For the definition of @scheme[free-var-list], see @scheme[with-contract].
+Works like @racket[define], except that the contract
+@racket[contract-expr] is attached to the bound value. For the
+definition of @racket[head] and @racket[args], see @racket[define].
+For the definition of @racket[free-var-list], see @racket[with-contract].
-The @scheme[define/contract] form treats the individual definition as
+The @racket[define/contract] form treats the individual definition as
a contract region. The definition itself is responsible for positive
(co-variant) positions of the contract and references to
-@scheme[id] outside of the definition must meet the negative
+@racket[id] outside of the definition must meet the negative
positions of the contract. Since the contract boundary is
between the definition and the surrounding context, references to
-@scheme[id] inside the @scheme[define/contract] form are not checked.
+@racket[id] inside the @racket[define/contract] form are not checked.
If a free-var-list is given, then any uses of the free variables
-inside the @scheme[body] will be protected with contracts that
-blame the context of the @scheme[define/contract] form for the positive
-positions and the @scheme[define/contract] form for the negative ones.}
+inside the @racket[body] will be protected with contracts that
+blame the context of the @racket[define/contract] form for the positive
+positions and the @racket[define/contract] form for the negative ones.}
@defform*[[(define-struct/contract struct-id ([field contract-expr] ...)
struct-option ...)
(define-struct/contract (struct-id super-struct-id)
([field contract-expr] ...)
struct-option ...)]]{
-Works like @scheme[define-struct], except that the arguments to the constructor,
+Works like @racket[define-struct], except that the arguments to the constructor,
accessors, and mutators are protected by contracts. For the definitions of
-@scheme[field] and @scheme[struct-option], see @scheme[define-struct].
+@racket[field] and @racket[struct-option], see @racket[define-struct].
-The @scheme[define-struct/contract] form only allows a subset of the
-@scheme[struct-option] keywords: @scheme[#:mutable], @scheme[#:transparent],
-@scheme[#:auto-value], @scheme[#:omit-define-syntaxes], @scheme[#:property] and
-@scheme[#:omit-define-values].
+The @racket[define-struct/contract] form only allows a subset of the
+@racket[struct-option] keywords: @racket[#:mutable], @racket[#:transparent],
+@racket[#:auto-value], @racket[#:omit-define-syntaxes], @racket[#:property] and
+@racket[#:omit-define-values].
@examples[#:eval (contract-eval)
(define-struct/contract fish ([color number?]))
@@ -829,30 +829,30 @@ The @scheme[define-struct/contract] form only allows a subset of the
value-name-expr source-location-expr)]]{
The primitive mechanism for attaching a contract to a value. The
-purpose of @scheme[contract] is as a target for the expansion of some
+purpose of @racket[contract] is as a target for the expansion of some
higher-level contract specifying form.
-The @scheme[contract] expression adds the contract specified by
-@scheme[contract-expr] to the value produced by
-@scheme[to-protect-expr]. The result of a @scheme[contract] expression
-is the result of the @scheme[to-protect-expr] expression, but with the
-contract specified by @scheme[contract-expr] enforced on
-@scheme[to-protect-expr].
+The @racket[contract] expression adds the contract specified by
+@racket[contract-expr] to the value produced by
+@racket[to-protect-expr]. The result of a @racket[contract] expression
+is the result of the @racket[to-protect-expr] expression, but with the
+contract specified by @racket[contract-expr] enforced on
+@racket[to-protect-expr].
-The values of @scheme[positive-blame-expr] and @scheme[negative-blame-expr]
+The values of @racket[positive-blame-expr] and @racket[negative-blame-expr]
indicate how to assign blame for positive and negative positions of the contract
-specified by @scheme[contract-expr]. They may be any value, and are formatted
-as by @scheme[display] for purposes of contract violation error messages.
+specified by @racket[contract-expr]. They may be any value, and are formatted
+as by @racket[display] for purposes of contract violation error messages.
-If specified, @scheme[value-name-expr] indicates a name for the protected value
-to be used in error messages. If not supplied, or if @scheme[value-name-expr]
-produces @scheme[#f], no name is printed. Otherwise, it is also formatted as by
-@scheme[display].
+If specified, @racket[value-name-expr] indicates a name for the protected value
+to be used in error messages. If not supplied, or if @racket[value-name-expr]
+produces @racket[#f], no name is printed. Otherwise, it is also formatted as by
+@racket[display].
-If specified, @scheme[source-location-expr] indicates the source location
-reported by contract violations. The expession must produce a @scheme[srcloc]
-structure, @tech{syntax object}, @scheme[#f], or a list or vector in the format
-accepted by the third argument to @scheme[datum->syntax].
+If specified, @racket[source-location-expr] indicates the source location
+reported by contract violations. The expession must produce a @racket[srcloc]
+structure, @tech{syntax object}, @racket[#f], or a list or vector in the format
+accepted by the third argument to @racket[datum->syntax].
}
@@ -870,10 +870,10 @@ spirit of Dana Scott) that enforce the contract. A
projection is a function that accepts an arbitrary value,
and returns a value that satisfies the corresponding
contract. For example, a projection that accepts only
-integers corresponds to the contract @scheme[(flat-contract
+integers corresponds to the contract @racket[(flat-contract
integer?)], and can be written like this:
-@schemeblock[
+@racketblock[
(define int-proj
(lambda (x)
(if (integer? x)
@@ -884,7 +884,7 @@ integer?)], and can be written like this:
As a second example, a projection that accepts unary functions
on integers looks like this:
-@schemeblock[
+@racketblock[
(define int->int-proj
(lambda (f)
(if (and (procedure? f)
@@ -904,12 +904,12 @@ the names of two parties that are the candidates for blame,
as well as a record of the source location where the
contract was established and the name of the contract. They
can then, in turn, pass that information
-to @scheme[raise-blame-error] to signal a good error
+to @racket[raise-blame-error] to signal a good error
message.
Here is the first of those two projections, rewritten for
use in the contract system:
-@schemeblock[
+@racketblock[
(define (int-proj blame)
(lambda (x)
(if (integer? x)
@@ -931,12 +931,12 @@ the ``positive'' person and the second the ``negative''. So,
in the case of just the integer contract, the only thing
that can go wrong is that the value provided is not an
integer. Thus, only the positive party can ever accrue
-blame. The @scheme[raise-blame-error] function always blames
+blame. The @racket[raise-blame-error] function always blames
the positive party.
Compare that to the projection for our function contract:
-@schemeblock[
+@racketblock[
(define (int->int-proj blame)
(let ([dom (int-proj (blame-swap blame))]
[rng (int-proj blame)])
@@ -957,15 +957,15 @@ where either a non-procedure is supplied to the contract, or
where the procedure does not accept one argument. As with
the integer projection, the blame here also lies with the
producer of the value, which is
-why @scheme[raise-blame-error] is passed @scheme[blame] unchanged.
+why @racket[raise-blame-error] is passed @racket[blame] unchanged.
The checking for the domain and range are delegated to
-the @scheme[int-proj] function, which is supplied its
+the @racket[int-proj] function, which is supplied its
arguments in the first two line of
-the @scheme[int->int-proj] function. The trick here is that,
-even though the @scheme[int->int-proj] function always
+the @racket[int->int-proj] function. The trick here is that,
+even though the @racket[int->int-proj] function always
blames what it sees as positive we can swap the blame parties by
-calling @scheme[blame-swap] on the given @tech{blame object}, replacing
+calling @racket[blame-swap] on the given @tech{blame object}, replacing
the positive party with the negative party and vice versa.
This is not just a cheap trick to get this example to work,
@@ -989,7 +989,7 @@ We can use this insight to generalize the function contracts
and build a function that accepts any two contracts and
returns a contract for functions between them.
-@schemeblock[
+@racketblock[
(define (make-simple-function-contract dom-proj range-proj)
(lambda (blame)
(let ([dom (dom-proj (blame-swap blame))]
@@ -1039,24 +1039,24 @@ These functions build simple procedure-based contracts and flat contracts,
respectively. They both take the same set of three optional arguments: a name,
a first order predicate, and a blame-tracking projection.
-The @scheme[name] argument is any value to be rendered using @scheme[display] to
+The @racket[name] argument is any value to be rendered using @racket[display] to
describe the contract when a violation occurs. The default name for simple
-higher order contracts is @schemeresult[anonymous-contract], and for flat
-contracts is @schemeresult[anonymous-flat-contract].
+higher order contracts is @racketresult[anonymous-contract], and for flat
+contracts is @racketresult[anonymous-flat-contract].
-The first order predicate @scheme[test] can be used to determine which values
+The first order predicate @racket[test] can be used to determine which values
the contract applies to; usually this is the set of values for which the
contract fails immediately without any higher-order wrapping. This test is used
-by @scheme[contract-first-order-passes?], and indirectly by @scheme[or/c] to
+by @racket[contract-first-order-passes?], and indirectly by @racket[or/c] to
determine which of multiple higher order contracts to wrap a value with. The
default test accepts any value.
-The projection @scheme[proj] defines the behavior of applying the contract. It
+The projection @racket[proj] defines the behavior of applying the contract. It
is a curried function of two arguments: the first application accepts a blame
object, and the second accepts a value to protect with the contract. The
projection must either produce the value, suitably wrapped to enforce any
higher-order aspects of the contract, or signal a contract violation using
-@scheme[raise-blame-error]. The default projection produces an error when the
+@racket[raise-blame-error]. The default projection produces an error when the
first order test fails, and produces the value unchanged otherwise.
Projections for flat contracts must fail precisely when the first order test
@@ -1105,33 +1105,33 @@ extracts the names from any contracts it is supplied with.}
@defproc[(coerce-contract [id symbol?] [x any/c]) contract?]{
-Converts a regular scheme value into an instance of a contract struct,
+Converts a regular racket value into an instance of a contract struct,
converting it according to the description of @tech{contracts}.
-If @scheme[x] is not one of the coercable values,
-@scheme[coerce-contract] signals an error, using the first argument in
+If @racket[x] is not one of the coercable values,
+@racket[coerce-contract] signals an error, using the first argument in
the error message.}
@defproc[(coerce-contracts [id symbol?] [xs (listof any/c)]) (listof contract?)]{
Coerces all of the arguments in 'xs' into contracts (via
-@scheme[coerce-contract/f]) and signals an error if any of them are not
+@racket[coerce-contract/f]) and signals an error if any of them are not
contracts. The error messages assume that the function named by
-@scheme[id] got @scheme[xs] as its entire argument list.
+@racket[id] got @racket[xs] as its entire argument list.
}
@defproc[(coerce-flat-contract [id symbol?] [x any/c]) flat-contract?]{
- Like @scheme[coerce-contract], but requires the result
+ Like @racket[coerce-contract], but requires the result
to be a flat contract, not an arbitrary contract.
}
@defproc[(coerce-flat-contracts [id symbol?] [x (listof any/c)]) (listof/c flat-contract?)]{
- Like @scheme[coerce-contracts], but requires the results
+ Like @racket[coerce-contracts], but requires the results
to be flat contracts, not arbitrary contracts.
}
@defproc[(coerce-contract/f [x any/c]) (or/c contract? #f)]{
- Like @scheme[coerce-contract], but returns @scheme[#f] if
+ Like @racket[coerce-contract], but returns @racket[#f] if
the value cannot be coerced to a contract.
}
@@ -1151,18 +1151,18 @@ negative parties of a blame object.
@defproc[(blame-contract [b blame?]) any/c]{
This function produces a description of the contract associated with a blame
-object (the result of @scheme[contract-name]).
+object (the result of @racket[contract-name]).
}
@defproc[(blame-value [b blame?]) any/c]{
This function produces the name of the value to which the contract was applied,
-or @scheme[#f] if no name was provided.
+or @racket[#f] if no name was provided.
}
@defproc[(blame-source [b blame?]) srcloc?]{
This function produces the source location associated with a contract. If no
source location was provided, all fields of the structure will contain
-@scheme[#f].
+@racket[#f].
}
@defproc[(blame-swap [b blame?]) blame?]{
@@ -1184,18 +1184,18 @@ the other; both are provided for convenience and clarity.
@defproc[(raise-blame-error [b blame?] [x any/c] [fmt string?] [v any/c] ...)
none/c]{
-Signals a contract violation. The first argument, @scheme[b], records the
+Signals a contract violation. The first argument, @racket[b], records the
current blame information, including positive and negative parties, the name of
the contract, the name of the value, and the source location of the contract
-application. The second argument, @scheme[x], is the value that failed to
+application. The second argument, @racket[x], is the value that failed to
satisfy the contract. The remaining arguments are a format string,
-@scheme[fmt], and its arguments, @scheme[v ...], specifying an error message
+@racket[fmt], and its arguments, @racket[v ...], specifying an error message
specific to the precise violation.
}
@defproc[(exn:fail:contract:blame? [x any/c]) boolean?]{
-This predicate recognizes exceptions raised by @scheme[raise-blame-error].
+This predicate recognizes exceptions raised by @racket[raise-blame-error].
}
@defproc[(exn:fail:contract:blame-object [e exn:fail:contract:blame?]) blame?]{
@@ -1208,10 +1208,10 @@ This accessor extracts the blame object associated with a contract violation.
The interface in this section is unstable and subject to change.}
@para{
-The property @scheme[prop:contract] allows arbitrary structures to act as
-contracts. The property @scheme[prop:flat-contract] allows arbitrary structures
-to act as flat contracts; @scheme[prop:flat-contract] inherits both
-@scheme[prop:contract] and @scheme[prop:procedure], so flat contract structures
+The property @racket[prop:contract] allows arbitrary structures to act as
+contracts. The property @racket[prop:flat-contract] allows arbitrary structures
+to act as flat contracts; @racket[prop:flat-contract] inherits both
+@racket[prop:contract] and @racket[prop:procedure], so flat contract structures
may also act as general contracts and as predicate procedures.
}
@@ -1220,10 +1220,10 @@ may also act as general contracts and as predicate procedures.
@defthing[prop:flat-contract struct-type-property?]
)]{
These properties declare structures to be contracts or flat contracts,
-respectively. The value for @scheme[prop:contract] must be a @tech{contract
-property} constructed by @scheme[build-contract-property]; likewise, the value
-for @scheme[prop:flat-contract] must be a @tech{flat contract property}
-constructed by @scheme[build-flat-contract-property].
+respectively. The value for @racket[prop:contract] must be a @tech{contract
+property} constructed by @racket[build-contract-property]; likewise, the value
+for @racket[prop:flat-contract] must be a @tech{flat contract property}
+constructed by @racket[build-flat-contract-property].
}
@deftogether[(
@@ -1285,32 +1285,32 @@ constructed by @scheme[build-flat-contract-property].
contract-property?]
)]{
-These functions build the arguments for @scheme[prop:contract] and
-@scheme[prop:flat-contract], respectively.
+These functions build the arguments for @racket[prop:contract] and
+@racket[prop:flat-contract], respectively.
A @deftech{contract property} specifies the behavior of a structure when used as
-a contract. It is specified in terms of five accessors: @scheme[get-name],
-which produces a description to @scheme[write] as part of a contract violation;
-@scheme[get-first-order], which produces a first order predicate to be used by
-@scheme[contract-first-order-passes?]; @scheme[get-projection], which
+a contract. It is specified in terms of five accessors: @racket[get-name],
+which produces a description to @racket[write] as part of a contract violation;
+@racket[get-first-order], which produces a first order predicate to be used by
+@racket[contract-first-order-passes?]; @racket[get-projection], which
produces a blame-tracking projection defining the behavior of the contract;
-@scheme[stronger], which is a predicate that determines if one contract this contract
+@racket[stronger], which is a predicate that determines if one contract this contract
(passed in the first argument) is stronger than some other contract (passed in the second argument);
-and @scheme[generator], which makes a random value that matches the contract,
+and @racket[generator], which makes a random value that matches the contract,
given a size bound and an environment from which to draw interesting values.
These accessors are passed as (optional) keyword arguments to
-@scheme[build-contract-property], and are applied to instances of the
+@racket[build-contract-property], and are applied to instances of the
appropriate structure type by the contract system. Their results are used
-analogously to the arguments of @scheme[make-contract].
+analogously to the arguments of @racket[make-contract].
A @deftech{flat contract property} specifies the behavior of a structure when
used as a flat contract. It is specified using
-@scheme[build-flat-contract-property], and accepts exactly the same set of
-arguments as @scheme[build-contract-property]. The only difference is that the
+@racket[build-flat-contract-property], and accepts exactly the same set of
+arguments as @racket[build-contract-property]. The only difference is that the
projection accessor is expected not to wrap its argument in a higher order
fashion, analogous to the constraint on projections in
-@scheme[make-flat-contract].
+@racket[make-flat-contract].
}
@@ -1328,18 +1328,18 @@ These predicates detect whether a value is a @tech{contract property} or a
@defproc[(contract? [v any/c]) boolean?]{
-Returns @scheme[#t] if its argument is a contract (i.e., constructed
+Returns @racket[#t] if its argument is a contract (i.e., constructed
with one of the combinators described in this section or a value that
-can be used as a contract) and @scheme[#f] otherwise.}
+can be used as a contract) and @racket[#f] otherwise.}
@defproc[(flat-contract? [v any/c]) boolean?]{
-Returns @scheme[#t] when its argument is a contract that can be
+Returns @racket[#t] when its argument is a contract that can be
checked immediately (unlike, say, a function contract).
For example,
-@scheme[flat-contract] constructs flat contracts from predicates, and
-symbols, booleans, numbers, and other ordinary Scheme values
+@racket[flat-contract] constructs flat contracts from predicates, and
+symbols, booleans, numbers, and other ordinary Racket values
(that are defined as @tech{contracts}) are also
flat contracts.}
@@ -1349,12 +1349,12 @@ flat contracts.}
Extracts the predicate from a flat contract.}
@defproc[(value-contract [v has-contract?]) contract?]{
- Returns the contract attached to @scheme[v], if recorded.
- Otherwise it returns @scheme[#f].
+ Returns the contract attached to @racket[v], if recorded.
+ Otherwise it returns @racket[#f].
}
@defproc[(has-contract? [v any/c]) boolean?]{
- Returns @scheme[#t] if @scheme[v] is a value that
+ Returns @racket[#t] if @racket[v] is a value that
has a recorded contract attached to it.
}
@@ -1363,12 +1363,12 @@ Extracts the predicate from a flat contract.}
boolean?]{
Returns a boolean indicating if the first-order tests
-of @scheme[contract] pass for @scheme[v].
+of @racket[contract] pass for @racket[v].
-If it returns @scheme[#f], the contract is guaranteed not to
-hold for that value; if it returns @scheme[#t], the contract
+If it returns @racket[#f], the contract is guaranteed not to
+hold for that value; if it returns @racket[#t], the contract
may or may not hold. If the contract is a first-order
-contract, a result of @scheme[#t] guarantees that the
+contract, a result of @racket[#t] guarantees that the
contract holds.}
@defproc[(contract-name [c contract?]) any/c]{
@@ -1376,7 +1376,7 @@ Produces the name used to describe the contract in error messages.
}
@defproc[(contract-first-order [c contract?]) (-> any/c boolean?)]{
-Produces the first order test used by @scheme[or/c] to match values to higher
+Produces the first order test used by @racket[or/c] to match values to higher
order contracts.
}
@@ -1387,7 +1387,7 @@ Produces the projection defining a contract's behavior on protected values.
@defproc[(make-none/c [sexp-name any/c]) contract?]{
Makes a contract that accepts no values, and reports the
-name @scheme[sexp-name] when signaling a contract violation.}
+name @racket[sexp-name] when signaling a contract violation.}
@defparam[current-blame-format
@@ -1449,14 +1449,14 @@ except faster (due to the less allocation).}
This defines a recursive contract and simultaneously
optimizes it. Semantically, it behaves just as if
-the @scheme[-opt/c] were not present, defining a function on
+the @racket[-opt/c] were not present, defining a function on
contracts (except that the body expression must return a
contract). But, it also optimizes that contract definition,
-avoiding extra allocation, much like @scheme[opt/c] does.
+avoiding extra allocation, much like @racket[opt/c] does.
For example,
-@schemeblock[
+@racketblock[
(define-contract-struct bt (val left right))
(define-opt/c (bst-between/c lo hi)
@@ -1468,8 +1468,8 @@ For example,
(define bst/c (bst-between/c -inf.0 +inf.0))
]
-defines the @scheme[bst/c] contract that checks the binary
-search tree invariant. Removing the @scheme[-opt/c] also
+defines the @racket[bst/c] contract that checks the binary
+search tree invariant. Removing the @racket[-opt/c] also
makes a binary search tree contract, but one that is
(approximately) 20 times slower.}
diff --git a/collects/scribblings/reference/define-struct.scrbl b/collects/scribblings/reference/define-struct.scrbl
index 2f94aabc15..a0371e79fb 100644
--- a/collects/scribblings/reference/define-struct.scrbl
+++ b/collects/scribblings/reference/define-struct.scrbl
@@ -8,7 +8,7 @@
@title[#:tag "define-struct"]{Defining Structure Types: @racket[struct]}
-@guideintro["define-struct"]{@racket[define-struct]}
+@guideintro["define-struct"]{@racket[struct]}
@defform/subs[(struct id maybe-super (field ...)
struct-option ...)
diff --git a/collects/scribblings/reference/ellipses-defn.ss b/collects/scribblings/reference/ellipses-defn.rkt
similarity index 100%
rename from collects/scribblings/reference/ellipses-defn.ss
rename to collects/scribblings/reference/ellipses-defn.rkt
diff --git a/collects/scribblings/reference/ellipses.ss b/collects/scribblings/reference/ellipses.rkt
similarity index 100%
rename from collects/scribblings/reference/ellipses.ss
rename to collects/scribblings/reference/ellipses.rkt
diff --git a/collects/scribblings/reference/encodings.scrbl b/collects/scribblings/reference/encodings.scrbl
index 73141ac6c9..a5bbe48382 100644
--- a/collects/scribblings/reference/encodings.scrbl
+++ b/collects/scribblings/reference/encodings.scrbl
@@ -5,31 +5,31 @@
@title[#:tag "encodings"]{Encodings and Locales}
When a port is provided to a character-based operation, such as
-@scheme[read-char] or @scheme[read], the port's bytes are read and
+@racket[read-char] or @racket[read], the port's bytes are read and
interpreted as a UTF-8 encoding of characters. Thus, reading a single
character may require reading multiple bytes, and a procedure like
-@scheme[char-ready?] may need to peek several bytes into the stream to
+@racket[char-ready?] may need to peek several bytes into the stream to
determine whether a character is available. In the case of a byte
stream that does not correspond to a valid UTF-8 encoding, functions
-such as @scheme[read-char] may need to peek one byte ahead in the
+such as @racket[read-char] may need to peek one byte ahead in the
stream to discover that the stream is not a valid encoding.
When an input port produces a sequence of bytes that is not a valid
UTF-8 encoding in a character-reading context, then bytes that
constitute an invalid sequence are converted to the character
-@schemevalfont{#\uFFFD}. Specifically, bytes 255 and 254 are always converted
-to @schemevalfont{#\uFFFD}, bytes in the range 192 to 253 produce
-@schemevalfont{#\uFFFD} when they are not followed by bytes that form a valid
+@racketvalfont{#\uFFFD}. Specifically, bytes 255 and 254 are always converted
+to @racketvalfont{#\uFFFD}, bytes in the range 192 to 253 produce
+@racketvalfont{#\uFFFD} when they are not followed by bytes that form a valid
UTF-8 encoding, and bytes in the range 128 to 191 are converted to
-@schemevalfont{#\uFFFD} when they are not part of a valid encoding that was
+@racketvalfont{#\uFFFD} when they are not part of a valid encoding that was
started by a preceding byte in the range 192 to 253. To put it another
way, when reading a sequence of bytes as characters, a minimal set of
-bytes are changed to the encoding of @schemevalfont{#\uFFFD} so that the
+bytes are changed to the encoding of @racketvalfont{#\uFFFD} so that the
entire sequence of bytes is a valid UTF-8 encoding.
See @secref["bytestrings"] for procedures that facilitate
conversions using UTF-8 or other encodings. See also
-@scheme[reencode-input-port] and @scheme[reencode-output-port] for
+@racket[reencode-input-port] and @racket[reencode-output-port] for
obtaining a UTF-8-based port from one that uses a different encoding
of characters.
@@ -39,58 +39,58 @@ culture-specific interpretation of character sequences. In particular,
a locale determines how strings are ``alphabetized,'' how a lowercase
character is converted to an uppercase character, and how strings are
compared without regard to case. String operations such as
-@scheme[string-ci=?] are @italic{not} sensitive to the current locale,
-but operations such as @scheme[string-locale-ci=?] (see
+@racket[string-ci=?] are @italic{not} sensitive to the current locale,
+but operations such as @racket[string-locale-ci=?] (see
@secref["strings"]) produce results consistent with the current
locale.
A locale also designates a particular encoding of code-point sequences
-into byte sequences. Scheme generally ignores this aspect of the
+into byte sequences. Racket generally ignores this aspect of the
locale, with a few notable exceptions: command-line arguments passed
-to Scheme as byte strings are converted to character strings using the
+to Racket as byte strings are converted to character strings using the
locale's encoding; command-line strings passed as byte strings to
-other processes (through @scheme[subprocess]) are converted to byte
+other processes (through @racket[subprocess]) are converted to byte
strings using the locale's encoding; environment variables are
converted to and from strings using the locale's encoding; filesystem
paths are converted to and from strings (for display purposes) using
-the locale's encoding; and, finally, Scheme provides functions such as
-@scheme[string->bytes/locale] to specifically invoke a locale-specific
+the locale's encoding; and, finally, Racket provides functions such as
+@racket[string->bytes/locale] to specifically invoke a locale-specific
encoding.
A Unix user selects a locale by setting environment variables, such as
@envvar{LC_ALL}. Under Windows and Mac OS X, the operating system
-provides other mechanisms for setting the locale. Within Scheme, the
-current locale can be changed by setting the @scheme[current-locale]
-parameter. The locale name within Scheme is a string, and the
+provides other mechanisms for setting the locale. Within Racket, the
+current locale can be changed by setting the @racket[current-locale]
+parameter. The locale name within Racket is a string, and the
available locale names depend on the platform and its configuration,
-but the @scheme[""] locale means the current user's default locale;
-under Windows and Mac OS X, the encoding for @scheme[""] is always
+but the @racket[""] locale means the current user's default locale;
+under Windows and Mac OS X, the encoding for @racket[""] is always
UTF-8, and locale-sensitive operations use the operating system's
native interface. (In particular, setting the @envvar{LC_ALL} and
@envvar{LC_CTYPE} environment variables do not affect the locale
-@scheme[""] under Mac OS X. Use @scheme[getenv] and
-@scheme[current-locale] to explicitly install the
+@racket[""] under Mac OS X. Use @racket[getenv] and
+@racket[current-locale] to explicitly install the
environment-specified locale, if desired.) Setting the current locale
-to @scheme[#f] makes locale-sensitive operations locale-insensitive,
+to @racket[#f] makes locale-sensitive operations locale-insensitive,
which means using the Unicode mapping for case operations and using
UTF-8 for encoding.
@defparam[current-locale locale (or/c string? #f)]{
A parameter that determines the current @tech{locale} for
-procedures such as @scheme[string-locale-ci=?].
+procedures such as @racket[string-locale-ci=?].
When locale sensitivity is disabled by setting the parameter to
-@scheme[#f], strings are compared (etc.) in a fully portable manner,
+@racket[#f], strings are compared (etc.) in a fully portable manner,
which is the same as the standard procedures. Otherwise, strings are
interpreted according to a locale setting (in the sense of the C
-library's @tt{setlocale}). The @scheme[""] locale is always a synonym
+library's @tt{setlocale}). The @racket[""] locale is always a synonym
for the current machine's default locale, and it is the default. The
-@scheme["C"] locale is also always available; setting the locale to
-@scheme["C"] is the same as disabling locale sensitivity with
-@scheme[#f] only when string operations are restricted to the first
+@racket["C"] locale is also always available; setting the locale to
+@racket["C"] is the same as disabling locale sensitivity with
+@racket[#f] only when string operations are restricted to the first
128 characters. Other locale names are platform-specific.
-String or character printing with @scheme[write] is not affected by
+String or character printing with @racket[write] is not affected by
the parameter, and neither are symbol case or regular expressions (see
@secref["regexp"]).}
diff --git a/collects/scribblings/reference/eval.scrbl b/collects/scribblings/reference/eval.scrbl
index 23a5713cd1..da32d14f4a 100644
--- a/collects/scribblings/reference/eval.scrbl
+++ b/collects/scribblings/reference/eval.scrbl
@@ -8,23 +8,23 @@
A parameter that determines the current @deftech{evaluation handler}.
The evaluation handler is a procedure that takes a top-level form and
evaluates it, returning the resulting values. The @tech{evaluation
-handler} is called by @scheme[eval], @scheme[eval-syntax], the default
-@tech{load handler}, and @scheme[read-eval-print-loop] to evaluate a
+handler} is called by @racket[eval], @racket[eval-syntax], the default
+@tech{load handler}, and @racket[read-eval-print-loop] to evaluate a
top-level form. The handler should evaluate its argument in tail
position.
-The @scheme[_top-level-form] provided to the handler can be a
+The @racket[_top-level-form] provided to the handler can be a
@tech{syntax object}, a compiled form, a compiled form wrapped as a
syntax object, or an arbitrary datum.
The default handler converts an arbitrary datum to a syntax object
-using @scheme[datum->syntax], and then enriches its @tech{lexical
-information} in the same way as @scheme[eval]. (If
-@scheme[_top-level-form] is a syntax object, then its @tech{lexical
+using @racket[datum->syntax], and then enriches its @tech{lexical
+information} in the same way as @racket[eval]. (If
+@racket[_top-level-form] is a syntax object, then its @tech{lexical
information} is not enriched.) The default evaluation handler
partially expands the form to splice the body of top-level
-@scheme[begin] forms into the top level (see
-@scheme[expand-to-top-form]), and then individually compiles and
+@racket[begin] forms into the top level (see
+@racket[expand-to-top-form]), and then individually compiles and
evaluates each spliced form before continuing to expand, compile, and
evaluate later forms.}
@@ -34,42 +34,42 @@ evaluate later forms.}
any]{
Calls the current @tech{evaluation handler} to evaluate
-@scheme[top-level-form]. The @tech{evaluation handler} is called in
-tail position with respect to the @scheme[eval] call, and
-@scheme[parameterize]d to set @scheme[current-namespace] to
-@scheme[namespace].
+@racket[top-level-form]. The @tech{evaluation handler} is called in
+tail position with respect to the @racket[eval] call, and
+@racket[parameterize]d to set @racket[current-namespace] to
+@racket[namespace].
-If @scheme[top-level-form] is a syntax object whose datum is not a
+If @racket[top-level-form] is a syntax object whose datum is not a
compiled form, then its @tech{lexical information} is enriched before
it is sent to the @tech{evaluation handler}:
@itemize[
- @item{If @scheme[top-level-form] is a pair whose @scheme[car] is a
+ @item{If @racket[top-level-form] is a pair whose @racket[car] is a
symbol or identifier, and if applying
- @scheme[namespace-syntax-introduce] to the
- (@scheme[datum->syntax]-converted) identifier produces an
- identifier bound to @scheme[module] in a @tech{phase level}
- that corresponds to @scheme[namespace]'s @tech{base phase},
+ @racket[namespace-syntax-introduce] to the
+ (@racket[datum->syntax]-converted) identifier produces an
+ identifier bound to @racket[module] in a @tech{phase level}
+ that corresponds to @racket[namespace]'s @tech{base phase},
then only that identifier is enriched.}
- @item{For any other @scheme[top-level-form],
- @scheme[namespace-syntax-introduce] is applied to the entire
+ @item{For any other @racket[top-level-form],
+ @racket[namespace-syntax-introduce] is applied to the entire
syntax object.}
]
For interactive evaluation in the style of
-@scheme[read-eval-print-loop] and @scheme[load], wrap each expression
-with @schemeidfont{#%top-interaction}, which is normally bound to
-@scheme[#%top-interaction], before passing it to @scheme[eval].}
+@racket[read-eval-print-loop] and @racket[load], wrap each expression
+with @racketidfont{#%top-interaction}, which is normally bound to
+@racket[#%top-interaction], before passing it to @racket[eval].}
@defproc[(eval-syntax [stx syntax?]
[namespace namespace? (current-namespace)])
any]{
-Like @scheme[eval], except that @scheme[stx] must be a syntax object,
+Like @racket[eval], except that @racket[stx] must be a syntax object,
and its lexical context is not enriched before it is passed to the
@tech{evaluation handler}.}
@@ -78,39 +78,39 @@ and its lexical context is not enriched before it is passed to the
A parameter that determines the current @deftech{load handler} to load
top-level forms from a file. The @tech{load handler} is called by
-@scheme[load], @scheme[load-relative], @scheme[load/cd], and the
+@racket[load], @racket[load-relative], @racket[load/cd], and the
default @tech{compiled-load handler}.
A load handler takes two arguments: a path (see
@secref["pathutils"]) and an expected module name. The expected
module name is a symbol when the call is to load a module declaration
-in response to a @scheme[require] (in which case the file should
-contain a module declaration), or @scheme[#f] for any other load.
+in response to a @racket[require] (in which case the file should
+contain a module declaration), or @racket[#f] for any other load.
The default load handler reads forms from the file in
-@scheme[read-syntax] mode with line-counting enabled for the file
-port, unless the path has a @scheme[".zo"] suffix. It also
-@scheme[parameterize]s each read to set both
-@scheme[read-accept-compiled] and @scheme[read-accept-reader] to
-@scheme[#t]. In addition, if @scheme[load-on-demand-enabled] is
-@scheme[#t], then @scheme[read-on-demand-source] is effectively set to
-the @tech{cleanse}d, absolute form of @scheme[path] during the
-@scheme[read-syntax] call. After reading a single form, the form is
+@racket[read-syntax] mode with line-counting enabled for the file
+port, unless the path has a @racket[".zo"] suffix. It also
+@racket[parameterize]s each read to set both
+@racket[read-accept-compiled] and @racket[read-accept-reader] to
+@racket[#t]. In addition, if @racket[load-on-demand-enabled] is
+@racket[#t], then @racket[read-on-demand-source] is effectively set to
+the @tech{cleanse}d, absolute form of @racket[path] during the
+@racket[read-syntax] call. After reading a single form, the form is
passed to the current @tech{evaluation handler}, wrapping the
evaluation in a continuation prompt (see
-@scheme[call-with-continuation-prompt]) for the default continuation
+@racket[call-with-continuation-prompt]) for the default continuation
prompt tag with handler that propagates the abort to the continuation
-of the @scheme[load] call.
+of the @racket[load] call.
If the second argument to the load handler is a symbol, then:
@itemize[
- @item{The @scheme[read-syntax] from the file is additionally
- @scheme[parameterize]d as follows (to provide consistent reading
+ @item{The @racket[read-syntax] from the file is additionally
+ @racket[parameterize]d as follows (to provide consistent reading
of module source):
- @schemeblock[
+ @racketblock[
(current-readtable #f)
(read-case-sensitive #t)
(read-square-bracket-as-paren #t)
@@ -126,59 +126,59 @@ If the second argument to the load handler is a symbol, then:
(read-accept-reader #t)
]}
- @item{If the read result is not a @schemeidfont{module} form with the
- expected name, or if a second @scheme[read-syntax] does not
+ @item{If the read result is not a @racketidfont{module} form with the
+ expected name, or if a second @racket[read-syntax] does not
produce an end-of-file, then the @exnraise[exn:fail] without
evaluating the form that was read from the file.}
@item{The @tech{lexical information} of the initial
- @schemeidfont{module} identifier is enriched with a binding for
- @scheme[module], so that the form corresponds to a module
+ @racketidfont{module} identifier is enriched with a binding for
+ @racket[module], so that the form corresponds to a module
declaration independent of the current namespace's bindings.}
]
-If the second argument to the load handler is @scheme[#f], then each
+If the second argument to the load handler is @racket[#f], then each
expression read from the file is wrapped with
-@schemeidfont{#%top-interaction}, which is normally bound to
-@scheme[#%top-interaction], before passing it to the @tech{evaluation
+@racketidfont{#%top-interaction}, which is normally bound to
+@racket[#%top-interaction], before passing it to the @tech{evaluation
handler}.
The return value from the default @tech{load handler} is the value of
the last form from the loaded file, or @|void-const| if the file
contains no forms. If the given path is a relative path, then it is
-resolved using the value of @scheme[current-directory].}
+resolved using the value of @racket[current-directory].}
@defproc[(load [file path-string?]) any]{
Calls the current @tech{load handler} in tail position. The call is
-@scheme[parameterized] to set @scheme[current-load-relative-directory]
-to the directory of @scheme[file], which is resolved relative to
-the value of @scheme[current-directory].}
+@racket[parameterized] to set @racket[current-load-relative-directory]
+to the directory of @racket[file], which is resolved relative to
+the value of @racket[current-directory].}
@defproc[(load-relative [file path-string?]) any]{
-Like @scheme[load/use-compiled], but when @scheme[file] is a relative
+Like @racket[load/use-compiled], but when @racket[file] is a relative
path, it is resolved using the value of
-@scheme[current-load-relative-directory] instead of the value of
-@scheme[current-directory] if the former is not @scheme[#f], otherwise
-@scheme[current-directory] is used.}
+@racket[current-load-relative-directory] instead of the value of
+@racket[current-directory] if the former is not @racket[#f], otherwise
+@racket[current-directory] is used.}
@defproc[(load/cd [file path-string?]) any]{
-Like @scheme[load], but @scheme[load/cd] sets both
-@scheme[current-directory] and
-@scheme[current-load-relative-directory] before calling the @tech{load
+Like @racket[load], but @racket[load/cd] sets both
+@racket[current-directory] and
+@racket[current-load-relative-directory] before calling the @tech{load
handler}.}
@defparam[current-load-extension proc (path? (or/c symbol? #f) . -> . any)]{
A parameter that determines a @deftech{extension-load handler}, which is
-called by @scheme[load-extension] and the default @tech{compiled-load
+called by @racket[load-extension] and the default @tech{compiled-load
handler}.
An @tech{extension-load handler} takes the same arguments as a
@@ -193,26 +193,26 @@ primitives. See @other-manual['(lib
@defproc[(load-extension [file path-string?]) any]{
-Sets @scheme[current-load-relative-directory] like @scheme[load], and
+Sets @racket[current-load-relative-directory] like @racket[load], and
calls the @tech{extension-load handler} in tail position.}
@defproc[(load-relative-extension [file path-string?]) any]{
-Like @scheme[load-exension], but resolves @scheme[file] using
-@scheme[current-load-relative-directory] like @scheme[load-relative].}
+Like @racket[load-exension], but resolves @racket[file] using
+@racket[current-load-relative-directory] like @racket[load-relative].}
@defparam[current-load/use-compiled proc (path? (or/c symbol? #f) . -> . any)]{
A parameter that determines the current @deftech{compiled-load
handler} to load from a file that may have a compiled form. The
-@tech{compiled-load handler} is called by @scheme[load/use-compiled].
+@tech{compiled-load handler} is called by @racket[load/use-compiled].
The protocol for a @tech{compiled-load handler} is the same as for the
-@tech{load handler} (see @scheme[current-load]), except that a
+@tech{load handler} (see @racket[current-load]), except that a
@tech{compiled-load handler} is expected to set
-@scheme[current-load-relative-directory] itself. The default
+@racket[current-load-relative-directory] itself. The default
@tech{compiled-load handler}, however, checks for a @filepath{.ss}
file when the given path ends with @filepath{.rkt}, no @filepath{.rkt}
file exists, and when the handler's second argument is a symbol. In
@@ -222,39 +222,39 @@ addition, the default @tech{compiled-load handler} checks for
X) files.
The check for a compiled file occurs whenever the given path
-@scheme[_file] ends with any extension (e.g., @filepath{.rkt} or
+@racket[_file] ends with any extension (e.g., @filepath{.rkt} or
@filepath{.scrbl}), and the check consults the subdirectories
-indicated by the @scheme[use-compiled-file-paths] parameter relative
-to @scheme[_file]. The subdirectories are checked in order. A
+indicated by the @racket[use-compiled-file-paths] parameter relative
+to @racket[_file]. The subdirectories are checked in order. A
@filepath{.zo} version of the file (whose name is formed by passing
-@scheme[_file] and @scheme[#".zo"] to @scheme[path-add-suffix]) is
+@racket[_file] and @racket[#".zo"] to @racket[path-add-suffix]) is
loaded if it exists directly in one of the indicated subdirectories,
or a @filepath{.so}/@filepath{.dll}/@filepath{.dylib} version of the
file is loaded if it exists within a @filepath{native} subdirectory of
-a @scheme[use-compiled-file-paths] directory, in an even deeper
-subdirectory as named by @scheme[system-library-subpath]. A compiled
+a @racket[use-compiled-file-paths] directory, in an even deeper
+subdirectory as named by @racket[system-library-subpath]. A compiled
file is loaded only if its modification date is not older than the
-date for @scheme[_file]. If both @filepath{.zo} and
+date for @racket[_file]. If both @filepath{.zo} and
@filepath{.so}/@filepath{.dll}/@filepath{.dylib} files are available,
the @filepath{.so}/@filepath{.dll}/@filepath{.dylib} file is used. If
-@scheme[_file] ends with @filepath{.rkt}, no such file exists, the
+@racket[_file] ends with @filepath{.rkt}, no such file exists, the
handler's second argument is a symbol, and a @filepath{.ss} file
exists, then @filepath{.zo} and
@filepath{.so}/@filepath{.dll}/@filepath{.dylib} files are used only
-with names based on @scheme[_file] with its suffixed replaced by
+with names based on @racket[_file] with its suffixed replaced by
@filepath{.ss}.
While a @filepath{.zo}, @filepath{.so}, @filepath{.dll}, or
-@filepath{.dylib} file is loaded, the current @scheme[load-relative]
-directory is set to the directory of the original @scheme[_file]. If
+@filepath{.dylib} file is loaded, the current @racket[load-relative]
+directory is set to the directory of the original @racket[_file]. If
the file to be loaded has the suffix @filepath{.ss} while the
requested file has the suffix @filepath{.rkt}, then the
-@scheme[current-module-declare-source] parameter is set to the full
+@racket[current-module-declare-source] parameter is set to the full
path of the loaded file, otherwise the
-@scheme[current-module-declare-source] parameter is set to
-@scheme[#f].
+@racket[current-module-declare-source] parameter is set to
+@racket[#f].
-If the original @scheme[_file] is loaded or a @filepath{.zo} variant is
+If the original @racket[_file] is loaded or a @filepath{.zo} variant is
loaded, the @tech{load handler} is called to load the file. If any
other kind of file is loaded, the @tech{extension-load handler} is
called.}
@@ -268,10 +268,10 @@ Calls the current @tech{compiled-load handler} in tail position.}
@defparam[current-load-relative-directory path
(or/c (and/c path-string? complete-path?) #f)]{
-A parameter that is set by @scheme[load], @scheme[load-relative],
-@scheme[load-extension], @scheme[load-relative-extension], and the
+A parameter that is set by @racket[load], @racket[load-relative],
+@racket[load-extension], @racket[load-relative-extension], and the
default @tech{compiled-load handler}, and used by
-@scheme[load-relative], @scheme[load-relative-extension], and the
+@racket[load-relative], @racket[load-relative-extension], and the
default @tech{compiled-load handler}.
When a new path or string is provided as the parameter's value, it is
@@ -281,27 +281,27 @@ path. (The directory need not exist.)}
@defparam*[use-compiled-file-paths paths (listof path-string?) (listof path?)]{
-A list of relative paths, which defaults to @scheme[(list
+A list of relative paths, which defaults to @racket[(list
(string->path "compiled"))]. It is used by the @tech{compiled-load
-handler} (see @scheme[current-load/use-compiled]).}
+handler} (see @racket[current-load/use-compiled]).}
@defproc[(read-eval-print-loop) any]{
Starts a new @deftech{REPL} using the current input, output, and error
ports. The REPL wraps each expression to evaluate with
-@schemeidfont{#%top-interaction}, which is normally bound to
-@scheme[#%top-interaction], and it wraps each evaluation with a
+@racketidfont{#%top-interaction}, which is normally bound to
+@racket[#%top-interaction], and it wraps each evaluation with a
continuation prompt using the default continuation prompt tag and
-prompt handler (see @scheme[call-with-continuation-prompt]). The REPL
+prompt handler (see @racket[call-with-continuation-prompt]). The REPL
also wraps the read and print operations with a prompt for the default
tag whose handler ignores abort arguments and continues the loop. The
-@scheme[read-eval-print-loop] procedure does not return until
-@scheme[eof] is read, at which point it returns @|void-const|.
+@racket[read-eval-print-loop] procedure does not return until
+@racket[eof] is read, at which point it returns @|void-const|.
-The @scheme[read-eval-print-loop] procedure can be configured through
-the @scheme[current-prompt-read], @scheme[current-eval], and
-@scheme[current-print] parameters.}
+The @racket[read-eval-print-loop] procedure can be configured through
+the @racket[current-prompt-read], @racket[current-eval], and
+@racket[current-print] parameters.}
@defparam[current-prompt-read proc (-> any)]{
@@ -309,14 +309,14 @@ the @scheme[current-prompt-read], @scheme[current-eval], and
A parameter that determines a @deftech{prompt read handler}, which is
a procedure that takes no arguments, displays a prompt string, and
returns a top-level form to evaluate. The prompt read handler is
-called by @scheme[read-eval-print-loop], and the handler typically
+called by @racket[read-eval-print-loop], and the handler typically
should call the @tech{read interaction handler} (as determined by the
-@scheme[current-read-interaction] parameter) after printing a prompt.
+@racket[current-read-interaction] parameter) after printing a prompt.
The default prompt read handler prints @litchar{> } and returns the
result of
-@schemeblock[
+@racketblock[
(let ([in (current-input-port)])
((current-read-interaction) (object-name in) in))
]}
@@ -328,10 +328,10 @@ A parameter that determines the current @deftech{read interaction
handler}, which is procedure that takes an arbitrary value and an
input port and returns an expression read from the input port.
-The default read interaction handler accepts @scheme[_src] and
-@scheme[_in] and returns
+The default read interaction handler accepts @racket[_src] and
+@racket[_in] and returns
-@schemeblock[
+@racketblock[
(parameterize ([read-accept-reader #t])
(read-syntax _src _in))
]}
@@ -340,12 +340,12 @@ The default read interaction handler accepts @scheme[_src] and
@defparam[current-print proc (any/c -> any)]{
A parameter that determines the @deftech{print handler} that is called
- by @scheme[read-eval-print-loop] to print the result of an evaluation
+ by @racket[read-eval-print-loop] to print the result of an evaluation
(and the result is ignored).
-The default @tech{print handler} @scheme[print]s the value to the
+The default @tech{print handler} @racket[print]s the value to the
current output port (as determined by the
- @scheme[current-output-port] parameter) and then outputs a newline,
+ @racket[current-output-port] parameter) and then outputs a newline,
except that it prints nothing when the value is @|void-const|.}
@@ -356,20 +356,20 @@ The @tech{compilation handler} is a procedure that takes a top-level form and
returns a compiled form; see see @secref["compilation-model"] for
more information on compilation.
-The @tech{compilation handler} is called by @scheme[compile], and
+The @tech{compilation handler} is called by @racket[compile], and
indirectly by the default @tech{evaluation handler} and the default
@tech{load handler}.
-The handler's second argument is @scheme[#t] if the compiled form will
-be used only for immediate evaluation, or @scheme[#f] if the compiled
+The handler's second argument is @racket[#t] if the compiled form will
+be used only for immediate evaluation, or @racket[#f] if the compiled
form may be saved for later use; the default compilation handler is
optimized for the special case of immediate evaluation.
When a compiled form is written to an output port, the written form
starts with @litchar{#~}. These forms are essentially assembly code
-for PLT Scheme, and reading such an form produces a compiled form (as
-long as the @scheme[read-accept-compiled] parameter is set to
-@scheme[#t]).
+for Racket, and reading such an form produces a compiled form (as
+long as the @racket[read-accept-compiled] parameter is set to
+@racket[#t]).
When a compiled form contains syntax object constants, the
@litchar{#~}-marshaled form drops source-location information and
@@ -378,13 +378,13 @@ properties (@secref["stxprops"]) for the @tech{syntax objects}.
Compiled code parsed from @litchar{#~} may contain references to
unexported or protected bindings from a module. At read time, such
references are associated with the current code inspector (see
-@scheme[current-code-inspector]), and the code will only execute if
+@racket[current-code-inspector]), and the code will only execute if
that inspector controls the relevant module invocation (see
@secref["modprotect"]).
A compiled-form object may contain @tech{uninterned} symbols (see
-@secref["symbols"]) that were created by @scheme[gensym] or
-@scheme[string->uninterned-symbol]. When the compiled object is read
+@secref["symbols"]) that were created by @racket[gensym] or
+@racket[string->uninterned-symbol]. When the compiled object is read
via @litchar{#~}, each uninterned symbol in the original form is
mapped to a new uninterned symbol, where multiple instances of a
single symbol are consistently mapped to the same new symbol. The
@@ -394,30 +394,30 @@ generated indirectly during expansion and compilation, are saved and
restored consistently through @litchar{#~}.
Due to the restrictions on @tech{uninterned} symbols in @litchar{#~},
-do not use @scheme[gensym] or @scheme[string->uninterned-symbol] to
+do not use @racket[gensym] or @racket[string->uninterned-symbol] to
construct an identifier for a top-level or module binding. Instead,
generate distinct identifiers either with
-@scheme[generate-temporaries] or by applying the result of
-@scheme[make-syntax-introducer] to an existing identifier; those
+@racket[generate-temporaries] or by applying the result of
+@racket[make-syntax-introducer] to an existing identifier; those
functions will lead to top-level and module bindings with
@tech{unreadable symbol}ic names.}
@defproc[(compile [top-level-form any/c]) compiled-expression?]{
-Like @scheme[eval], but calls the current @tech{compilation handler} in
-tail position with @scheme[top-level-form].}
+Like @racket[eval], but calls the current @tech{compilation handler} in
+tail position with @racket[top-level-form].}
@defproc[(compile-syntax [stx syntax?]) compiled-expression?]{
-Like @scheme[eval-syntax], but calls the current @tech{compilation
-handler} in tail position with @scheme[stx].}
+Like @racket[eval-syntax], but calls the current @tech{compilation
+handler} in tail position with @racket[stx].}
@defproc[(compiled-expression? [v any/c]) boolean?]{
-Returns @scheme[#t] if @scheme[v] is a compiled form, @scheme[#f]
+Returns @racket[#t] if @racket[v] is a compiled form, @racket[#f]
otherwise.}
@@ -426,10 +426,10 @@ otherwise.}
A parameter that determines how a module declaration is compiled.
When constants are enforced, and when the macro-expanded body of a
-module contains no @scheme[set!] assignment to a particular variable
+module contains no @racket[set!] assignment to a particular variable
defined within the module, then the variable is marked as constant
when the definition is evaluated. Afterward, the variable's value
-cannot be assigned or undefined through @scheme[module->namespace],
+cannot be assigned or undefined through @racket[module->namespace],
and it cannot be defined by redeclaring the module.
Enforcing constants allows the compiler to inline some variable
@@ -439,14 +439,14 @@ generate code that skips certain run-time checks.}
@defboolparam[compile-allow-set!-undefined allow?]{
-A parameter that determines how a @scheme[set!] expression is compiled
+A parameter that determines how a @racket[set!] expression is compiled
when it mutates a global variable. If the value of this parameter is a
-true value, @scheme[set!] expressions for global variables are
+true value, @racket[set!] expressions for global variables are
compiled so that the global variable is set even if it was not
-previously defined. Otherwise, @scheme[set!] expressions for global
+previously defined. Otherwise, @racket[set!] expressions for global
variables are compiled to raise the
-@scheme[exn:fail:contract:variable] exception if the global variable
-is not defined at the time the @scheme[set!] is performed. Note that
+@racket[exn:fail:contract:variable] exception if the global variable
+is not defined at the time the @racket[set!] is performed. Note that
this parameter is used when an expression is @italic{compiled}, not
when it is @italic{evaluated}.}
@@ -455,22 +455,22 @@ when it is @italic{evaluated}.}
A parameter that determines whether compilation should avoid
function-call inlining and other optimizations that may cause
information to be lost from stack traces (as reported by
-@scheme[continuation-mark-set->context]). The default is @scheme[#f],
+@racket[continuation-mark-set->context]). The default is @racket[#f],
which allows such optimizations.}
@defboolparam[eval-jit-enabled on?]{
A parameter that determines whether the native-code just-in-time
compiler (JIT) is enabled for code (compiled or not) that is passed to
-the default evaluation handler. The default is @scheme[#t], unless
+the default evaluation handler. The default is @racket[#t], unless
the JIT is disabled through the @Flag{j}/@DFlag{no-jit} command-line
-flag to stand-alone MzScheme (or MrEd), or through the
+flag to stand-alone Racket (or GRacket), or through the
@as-index{@envvar{PLTNOMZJIT}} environment variable (set to any
value).}
@defboolparam[load-on-demand-enabled on?]{
A parameter that determines whether the default @tech{load handler}
-sets @scheme[read-on-demand-source]. See @scheme[current-load] for
-more information. The default is @scheme[#t], unless it is disabled
+sets @racket[read-on-demand-source]. See @racket[current-load] for
+more information. The default is @racket[#t], unless it is disabled
through the @Flag{d}/@DFlag{no-delay} command-line flag.}
diff --git a/collects/scribblings/reference/evts.scrbl b/collects/scribblings/reference/evts.scrbl
index 590309821d..8513848af3 100644
--- a/collects/scribblings/reference/evts.scrbl
+++ b/collects/scribblings/reference/evts.scrbl
@@ -13,7 +13,7 @@
@section-index["poll"]
A @deftech{synchronizable event} (or just @defterm{event} for short)
-works with the @scheme[sync] procedure to coordinate synchronization
+works with the @racket[sync] procedure to coordinate synchronization
among threads. Certain kinds of objects double as events, including
ports and threads. Other kinds of objects exist only for their use as
events.
@@ -27,156 +27,156 @@ when it is ready, then the event produces a particular
Synchronizing an event may affect the state of the event. For example,
when synchronizing a semaphore, then the semaphore's internal count is
-decremented, just as with @scheme[semaphore-wait]. For most kinds of
+decremented, just as with @racket[semaphore-wait]. For most kinds of
events, however (such as a port), synchronizing does not modify the
event's state.
-The following act as events in stand-alone MzScheme. An extension or
-embedding application can extend the set of primitive events --- in
-particular, an eventspace in MrEd is an event --- and new structure
-types can generate events (see @scheme[prop:evt]).
+The following act as events in Racket. An extension or embedding
+application can extend the set of primitive events --- in particular,
+an eventspace in GRacket is an event --- and new structure types can
+generate events (see @racket[prop:evt]).
@itemize[
- @item{@scheme[_semaphore] --- a semaphore is ready when
- @scheme[semaphore-wait] would not block. @ResultItself{semaphore}.}
+ @item{@racket[_semaphore] --- a semaphore is ready when
+ @racket[semaphore-wait] would not block. @ResultItself{semaphore}.}
- @item{@scheme[_semaphore-peek] --- a semaphore-peek event returned by
- @scheme[semaphore-peek-evt] applied to @scheme[_semaphore] is ready
- exactly when @scheme[_semaphore] is
+ @item{@racket[_semaphore-peek] --- a semaphore-peek event returned by
+ @racket[semaphore-peek-evt] applied to @racket[_semaphore] is ready
+ exactly when @racket[_semaphore] is
ready. @ResultItself{semaphore-peek}.}
- @item{@scheme[_channel] --- a channel returned by
- @scheme[make-channel] is ready when @scheme[channel-get] would not
+ @item{@racket[_channel] --- a channel returned by
+ @racket[make-channel] is ready when @racket[channel-get] would not
block. The channel's result as an event is the same as the
- @scheme[channel-get] result.}
+ @racket[channel-get] result.}
- @item{@scheme[_channel-put] --- an event returned by
- @scheme[channel-put-evt] applied to @scheme[_channel] is ready when
- @scheme[channel-put] would not block on
- @scheme[_channel]. @ResultItself{channel-put}.}
+ @item{@racket[_channel-put] --- an event returned by
+ @racket[channel-put-evt] applied to @racket[_channel] is ready when
+ @racket[channel-put] would not block on
+ @racket[_channel]. @ResultItself{channel-put}.}
- @item{@scheme[_input-port] --- an input port is ready as an event when
- @scheme[read-byte] would not block. @ResultItself{input-port}.}
+ @item{@racket[_input-port] --- an input port is ready as an event when
+ @racket[read-byte] would not block. @ResultItself{input-port}.}
- @item{@scheme[_output-port] --- an output port is ready when
- @scheme[write-bytes-avail] would not block or
+ @item{@racket[_output-port] --- an output port is ready when
+ @racket[write-bytes-avail] would not block or
when the port contains buffered characters and
- @scheme[write-bytes-avail*] can flush part of the buffer (although
- @scheme[write-bytes-avail] might block). @ResultItself{output-port}.}
+ @racket[write-bytes-avail*] can flush part of the buffer (although
+ @racket[write-bytes-avail] might block). @ResultItself{output-port}.}
- @item{@scheme[_progress] --- an event produced by
- @scheme[port-progress-evt] applied to @scheme[_input-port] is ready after
- any subsequent read from @scheme[_input-port]. @ResultItself{progress}.}
+ @item{@racket[_progress] --- an event produced by
+ @racket[port-progress-evt] applied to @racket[_input-port] is ready after
+ any subsequent read from @racket[_input-port]. @ResultItself{progress}.}
- @item{@scheme[_tcp-listener] --- a TCP listener is ready when
- @scheme[tcp-accept] would not block. @ResultItself{listener}.}
+ @item{@racket[_tcp-listener] --- a TCP listener is ready when
+ @racket[tcp-accept] would not block. @ResultItself{listener}.}
- @item{@scheme[_thd] --- a thread is ready when @scheme[thread-wait]
+ @item{@racket[_thd] --- a thread is ready when @racket[thread-wait]
would not block. @ResultItself{thread}.}
- @item{@scheme[_thread-dead] --- an event returned by
- @scheme[thread-dead-evt] applied to @scheme[thd] is ready when
- @scheme[thd] has terminated. @ResultItself{thread-dead}.}
+ @item{@racket[_thread-dead] --- an event returned by
+ @racket[thread-dead-evt] applied to @racket[thd] is ready when
+ @racket[thd] has terminated. @ResultItself{thread-dead}.}
- @item{@scheme[_thread-resume] --- an event returned by
- @scheme[thread-resume-evt] applied to @scheme[thd] is ready when
- @scheme[thd] subsequently resumes execution (if it was not already
- running). The event's result is @scheme[thd].}
+ @item{@racket[_thread-resume] --- an event returned by
+ @racket[thread-resume-evt] applied to @racket[thd] is ready when
+ @racket[thd] subsequently resumes execution (if it was not already
+ running). The event's result is @racket[thd].}
- @item{@scheme[_thread-suspend] --- an event returned by
- @scheme[thread-suspend-evt] applied to @scheme[thd] is ready when
- @scheme[thd] subsequently suspends execution (if it was not already
- suspended). The event's result is @scheme[thd].}
+ @item{@racket[_thread-suspend] --- an event returned by
+ @racket[thread-suspend-evt] applied to @racket[thd] is ready when
+ @racket[thd] subsequently suspends execution (if it was not already
+ suspended). The event's result is @racket[thd].}
- @item{@scheme[_alarm] --- an event returned by @scheme[alarm-evt] is
+ @item{@racket[_alarm] --- an event returned by @racket[alarm-evt] is
ready after a particular date and time. @ResultItself{alarm}.}
- @item{@scheme[_subprocess] --- a subprocess is ready when
- @scheme[subprocess-wait] would not block.
+ @item{@racket[_subprocess] --- a subprocess is ready when
+ @racket[subprocess-wait] would not block.
@ResultItself{subprocess}.}
- @item{@scheme[_will-executor] --- a will executor is ready when
- @scheme[will-execute] would not block.
+ @item{@racket[_will-executor] --- a will executor is ready when
+ @racket[will-execute] would not block.
@ResultItself{will-executor}.}
- @item{@scheme[_udp] --- an event returned by @scheme[udp-send-evt] or
- @scheme[udp-receive!-evt] is ready when a send or receive on the
+ @item{@racket[_udp] --- an event returned by @racket[udp-send-evt] or
+ @racket[udp-receive!-evt] is ready when a send or receive on the
original socket would block, respectively. @ResultItself{udp}.}
- @item{@scheme[_log-receiver] --- a @tech{log receiver} as produced by
- @scheme[make-log-receiver] is ready when a logged message is
+ @item{@racket[_log-receiver] --- a @tech{log receiver} as produced by
+ @racket[make-log-receiver] is ready when a logged message is
available. The event's result is a vector, as described with
- @scheme[make-log-receiver].}
+ @racket[make-log-receiver].}
- @item{@scheme[_choice] --- an event returned by @scheme[choice-evt] is
- ready when one or more of the @scheme[_evt]s supplied to
- @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
- the chosen @scheme[_evt]'s result.}
+ @item{@racket[_choice] --- an event returned by @racket[choice-evt] is
+ ready when one or more of the @racket[_evt]s supplied to
+ @racket[choice-evt] are ready. If the choice event is chosen, one of
+ its ready @racket[_evt]s is chosen pseudo-randomly, and the result is
+ the chosen @racket[_evt]'s result.}
- @item{@scheme[_wrap] --- an event returned by @scheme[wrap-evt]
- applied to @scheme[_evt] and @scheme[_proc] is ready when @scheme[_evt] is
- ready. The event's result is obtained by a call to @scheme[_proc] (with
- breaks disabled) on the result of @scheme[evt].}
+ @item{@racket[_wrap] --- an event returned by @racket[wrap-evt]
+ applied to @racket[_evt] and @racket[_proc] is ready when @racket[_evt] is
+ ready. The event's result is obtained by a call to @racket[_proc] (with
+ breaks disabled) on the result of @racket[evt].}
- @item{@scheme[_handle] --- an event returned by @scheme[handle-evt]
- applied to @scheme[_evt] and @scheme[_proc] is ready when @scheme[_evt] is
- ready. The event's result is obtained by a tail call to @scheme[_proc] on
- the result of @scheme[_evt].}
+ @item{@racket[_handle] --- an event returned by @racket[handle-evt]
+ applied to @racket[_evt] and @racket[_proc] is ready when @racket[_evt] is
+ ready. The event's result is obtained by a tail call to @racket[_proc] on
+ the result of @racket[_evt].}
- @item{@elemtag["guard-evt"]{@scheme[_guard]} --- an event returned by @scheme[guard-evt] applied
- to @scheme[_thunk] generates a new event every time that @scheme[_guard] is
- used with @scheme[sync] (or whenever it is part of a choice event
- used with @scheme[sync], etc.); the generated event is the result of
- calling @scheme[_thunk] when the synchronization begins; if @scheme[_thunk]
- returns a non-event, then @scheme[_thunk]'s result is replaced with an
- event that is ready and whose result is @scheme[_guard].}
+ @item{@elemtag["guard-evt"]{@racket[_guard]} --- an event returned by @racket[guard-evt] applied
+ to @racket[_thunk] generates a new event every time that @racket[_guard] is
+ used with @racket[sync] (or whenever it is part of a choice event
+ used with @racket[sync], etc.); the generated event is the result of
+ calling @racket[_thunk] when the synchronization begins; if @racket[_thunk]
+ returns a non-event, then @racket[_thunk]'s result is replaced with an
+ event that is ready and whose result is @racket[_guard].}
- @item{@elemtag["nack-guard-evt"]{@scheme[_nack-guard]} --- an event
- returned by @scheme[nack-guard-evt] applied to @scheme[_proc]
- generates a new event every time that @scheme[_nack-guard] is used
- with @scheme[sync] (or whenever it is part of a choice event used
- with @scheme[sync], etc.); the generated event is the result of
- calling @scheme[_proc] with a NACK (``negative acknowledgment'') event
- when the synchronization begins; if @scheme[_proc] returns a
- non-event, then @scheme[_proc]'s result is replaced with an event that
- is ready and whose result is @scheme[_nack-guard].
+ @item{@elemtag["nack-guard-evt"]{@racket[_nack-guard]} --- an event
+ returned by @racket[nack-guard-evt] applied to @racket[_proc]
+ generates a new event every time that @racket[_nack-guard] is used
+ with @racket[sync] (or whenever it is part of a choice event used
+ with @racket[sync], etc.); the generated event is the result of
+ calling @racket[_proc] with a NACK (``negative acknowledgment'') event
+ when the synchronization begins; if @racket[_proc] returns a
+ non-event, then @racket[_proc]'s result is replaced with an event that
+ is ready and whose result is @racket[_nack-guard].
- If the event from @scheme[_proc] is not ultimately chosen as the
- unblocked event, then the NACK event supplied to @scheme[_proc]
+ If the event from @racket[_proc] is not ultimately chosen as the
+ unblocked event, then the NACK event supplied to @racket[_proc]
becomes ready with a @|void-const| value. This NACK event becomes ready
when the event is abandoned because some other event is chosen,
because the synchronizing thread is dead, or because control escaped
- from the call to @scheme[sync] (even if @scheme[_nack-guard]'s @scheme[_proc]
- has not yet returned a value). If the event returned by @scheme[_proc] is
+ from the call to @racket[sync] (even if @racket[_nack-guard]'s @racket[_proc]
+ has not yet returned a value). If the event returned by @racket[_proc] is
chosen, then the NACK event never becomes ready.}
- @item{@elemtag["poll-guard-evt"]{@scheme[_poll-guard]} --- an event
- returned by @scheme[poll-guard-evt] applied to @scheme[_proc]
- generates a new event every time that @scheme[poll-guard] is used
- with @scheme[sync] (or whenever it is part of a choice event used
- with @scheme[sync], etc.); the generated event is the result of
- calling @scheme[_proc] with a boolean: @scheme[#t] if the event will
- be used for a poll, @scheme[#f] for a blocking synchronization.
+ @item{@elemtag["poll-guard-evt"]{@racket[_poll-guard]} --- an event
+ returned by @racket[poll-guard-evt] applied to @racket[_proc]
+ generates a new event every time that @racket[poll-guard] is used
+ with @racket[sync] (or whenever it is part of a choice event used
+ with @racket[sync], etc.); the generated event is the result of
+ calling @racket[_proc] with a boolean: @racket[#t] if the event will
+ be used for a poll, @racket[#f] for a blocking synchronization.
- If @scheme[#t] is supplied to @scheme[_proc], if breaks are disabled, if
+ If @racket[#t] is supplied to @racket[_proc], if breaks are disabled, if
the polling thread is not terminated, and if polling the resulting
event produces a result, the event will certainly be chosen for its
result.}
- @item{@scheme[_struct] --- a structure whose type has the
- @scheme[prop:evt] property identifies/generates an event through the
+ @item{@racket[_struct] --- a structure whose type has the
+ @racket[prop:evt] property identifies/generates an event through the
property.}
- @item{@scheme[always-evt] --- a constant event that is always
- ready. @ResultItself{@scheme[always-evt]}.}
+ @item{@racket[always-evt] --- a constant event that is always
+ ready. @ResultItself{@racket[always-evt]}.}
- @item{@scheme[never-evt] --- a constant event that is never ready.}
+ @item{@racket[never-evt] --- a constant event that is never ready.}
- @item{@elemtag["system-idle-evt"]{@scheme[_idle]} --- an event
- produced by @scheme[system-idle-evt] is ready when, if this event
- were replaced by @scheme[never-evt], no thread in the system would
+ @item{@elemtag["system-idle-evt"]{@racket[_idle]} --- an event
+ produced by @racket[system-idle-evt] is ready when, if this event
+ were replaced by @racket[never-evt], no thread in the system would
be available to run. In other words, all threads must be suspended
or blocked on events with timeouts that have not yet expired. The
event's result is @|void-const|.}
@@ -187,20 +187,20 @@ types can generate events (see @scheme[prop:evt]).
@defproc[(evt? [v any/c]) boolean?]{
-Returns @scheme[#t] if @scheme[v] is a @tech{synchronizable event},
-@scheme[#f] otherwise.}
+Returns @racket[#t] if @racket[v] is a @tech{synchronizable event},
+@racket[#f] otherwise.}
@defproc[(sync [evt evt?] ...+) any]{
Blocks as long as none of the @tech{synchronizable events}
-@scheme[evt]s are ready, as defined above.
+@racket[evt]s are ready, as defined above.
-When at least one @scheme[evt] is ready, its @tech{synchronization
-result} (often @scheme[evt] itself) is returned. If multiple
-@scheme[evt]s are ready, one of the @scheme[evt]s is chosen
+When at least one @racket[evt] is ready, its @tech{synchronization
+result} (often @racket[evt] itself) is returned. If multiple
+@racket[evt]s are ready, one of the @racket[evt]s is chosen
pseudo-randomly for the result; the
-@scheme[current-evt-pseudo-random-generator] parameter sets the
+@racket[current-evt-pseudo-random-generator] parameter sets the
random-number generator that controls this choice.}
@@ -208,23 +208,23 @@ random-number generator that controls this choice.}
[evt evt?] ...+)
any]{
-Like @scheme[sync], but returns @scheme[#f] if @scheme[timeout-secs]
-is not @scheme[#f] and if @scheme[timeout-secs] seconds pass without a
+Like @racket[sync], but returns @racket[#f] if @racket[timeout-secs]
+is not @racket[#f] and if @racket[timeout-secs] seconds pass without a
successful synchronization.
-If @scheme[timeout-secs] is @scheme[0], each @scheme[evt] is checked
-at least once, so a @scheme[timeout-secs] value of @scheme[0] can be
+If @racket[timeout-secs] is @racket[0], each @racket[evt] is checked
+at least once, so a @racket[timeout-secs] value of @racket[0] can be
used for polling.
-See also @scheme[alarm-evt] for an alternative timeout mechanism.}
+See also @racket[alarm-evt] for an alternative timeout mechanism.}
@defproc[(sync/enable-break [evt evt?] ...+) any]{
-Like @scheme[sync], but breaking is enabled (see
-@secref["breakhandler"]) while waiting on the @scheme[evt]s. If
-breaking is disabled when @scheme[sync/enable-break] is called, then
-either all @scheme[evt]s remain unchosen or the @scheme[exn:break]
+Like @racket[sync], but breaking is enabled (see
+@secref["breakhandler"]) while waiting on the @racket[evt]s. If
+breaking is disabled when @racket[sync/enable-break] is called, then
+either all @racket[evt]s remain unchosen or the @racket[exn:break]
exception is raised, but not both.}
@@ -232,34 +232,34 @@ exception is raised, but not both.}
[evt evt?] ...+)
any]{
-Like @scheme[sync/enable-break], but with a timeout in seconds (or
-@scheme[#f]), as for @scheme[sync/timeout].}
+Like @racket[sync/enable-break], but with a timeout in seconds (or
+@racket[#f]), as for @racket[sync/timeout].}
@defproc[(choice-evt [evt evt?] ...) evt?]{
Creates and returns a single event that combines the
-@scheme[evt]s. Supplying the result to @scheme[sync] is the same as
-supplying each @scheme[evt] to the same call.}
+@racket[evt]s. Supplying the result to @racket[sync] is the same as
+supplying each @racket[evt] to the same call.}
@defproc[(wrap-evt [evt (and/c evt? (not/c handle-evt?))]
[wrap (any/c . -> . any)])
evt?]{
-Creates an event that is in a ready when @scheme[evt] is ready, but
-whose result is determined by applying @scheme[wrap] to the result of
-@scheme[evt]. The call to @scheme[wrap] is
-@scheme[parameterize-break]ed to disable breaks initially. The
-@scheme[evt] cannot be an event created by @scheme[handle-evt] or any
-combination of @scheme[choice-evt] involving an event from
-@scheme[handle-evt].}
+Creates an event that is in a ready when @racket[evt] is ready, but
+whose result is determined by applying @racket[wrap] to the result of
+@racket[evt]. The call to @racket[wrap] is
+@racket[parameterize-break]ed to disable breaks initially. The
+@racket[evt] cannot be an event created by @racket[handle-evt] or any
+combination of @racket[choice-evt] involving an event from
+@racket[handle-evt].}
@defproc[(handle-evt [evt (and/c evt? (not/c handle-evt?))]
[handle (any/c . -> . any)])
evt?]{
-Like @scheme[wrap], except that @scheme[handle] is called in tail
+Like @racket[wrap], except that @racket[handle] is called in tail
position with respect to the synchronization request, and without
breaks explicitly disabled.}
@@ -293,27 +293,27 @@ itself as its result.}
@defproc[(system-idle-evt) evt?]{Returns an event that is ready when
the system is otherwise idle; see @elemref["system-idle-evt"]{the
overview} for more information. The result of the
-@scheme[system-idle-evt] procedure is always the same event.}
+@racket[system-idle-evt] procedure is always the same event.}
@defproc[(alarm-evt [msecs nonnegative-number?]) evt]{
Returns a synchronizable event that is not ready when
-@scheme[(current-inexact-milliseconds)] would return a value that is
-less than @scheme[msecs], and it is ready when
-@scheme[(current-inexact-milliseconds)] would return a value that is
-more than @scheme[msecs].}
+@racket[(current-inexact-milliseconds)] would return a value that is
+less than @racket[msecs], and it is ready when
+@racket[(current-inexact-milliseconds)] would return a value that is
+more than @racket[msecs].}
@defproc[(handle-evt? [evt evt?]) boolean?]{
-Returns @scheme[#t] if @scheme[evt] was created by @scheme[handle-evt]
-or by @scheme[choice-evt] applied to another event for which
-@scheme[handle-evt?] produces @scheme[#t]. Such events are illegal as
-an argument to @scheme[handle-evt] or @scheme[wrap-evt], because they
-cannot be wrapped further. For any other event, @scheme[handle-evt?]
-produces @scheme[#f], and the event is a legal argument to
-@scheme[handle-evt] or @scheme[wrap-evt] for further wrapping.}
+Returns @racket[#t] if @racket[evt] was created by @racket[handle-evt]
+or by @racket[choice-evt] applied to another event for which
+@racket[handle-evt?] produces @racket[#t]. Such events are illegal as
+an argument to @racket[handle-evt] or @racket[wrap-evt], because they
+cannot be wrapped further. For any other event, @racket[handle-evt?]
+produces @racket[#f], and the event is a legal argument to
+@racket[handle-evt] or @racket[wrap-evt] for further wrapping.}
@;------------------------------------------------------------------------
@defthing[prop:evt struct-type-property?]{
@@ -324,16 +324,16 @@ A @tech{structure type property} that identifies structure types whose
@itemize[
- @item{An event @scheme[_evt]: In this case, using the structure as an
- event is equivalent to using @scheme[_evt].}
+ @item{An event @racket[_evt]: In this case, using the structure as an
+ event is equivalent to using @racket[_evt].}
- @item{A procedure @scheme[_proc] of one argument: In this case, the
+ @item{A procedure @racket[_proc] of one argument: In this case, the
structure is similar to an event generated
- by @scheme[guard-evt], except that the would-be guard
- procedure @scheme[_proc] receives the structure as an argument, instead
+ by @racket[guard-evt], except that the would-be guard
+ procedure @racket[_proc] receives the structure as an argument, instead
of no arguments.}
- @item{An exact, non-negative integer between @scheme[0] (inclusive)
+ @item{An exact, non-negative integer between @racket[0] (inclusive)
and the number of non-automatic fields in the structure type
(exclusive, not counting supertype fields): The integer identifies a
field in the structure, and the field must be designated as
@@ -344,14 +344,14 @@ A @tech{structure type property} that identifies structure types whose
]
-Instances of a structure type with the @scheme[prop:input-port] or
-@scheme[prop:output-port] property are also synchronizable by virtue
+Instances of a structure type with the @racket[prop:input-port] or
+@racket[prop:output-port] property are also synchronizable by virtue
of being a port. If the structure type has more than one of
-@scheme[prop:evt], @scheme[prop:input-port], and
-@scheme[prop:output-port], then the @scheme[prop:evt] value (if any)
+@racket[prop:evt], @racket[prop:input-port], and
+@racket[prop:output-port], then the @racket[prop:evt] value (if any)
takes precedence for determing the instance's behavior as an event,
-and the @scheme[prop:input-port] property takes precedence over
-@scheme[prop:output-port] for synchronization.
+and the @racket[prop:input-port] property takes precedence over
+@racket[prop:output-port] for synchronization.
@examples[
(define-struct wt (base val)
@@ -376,4 +376,4 @@ and the @scheme[prop:input-port] property takes precedence over
@defparam[current-evt-pseudo-random-generator generator pseudo-random-generator?]{
A parameter that determines the pseudo-random number generator used by
-@scheme[sync] for events created by @scheme[choice-evt].}
+@racket[sync] for events created by @racket[choice-evt].}
diff --git a/collects/scribblings/reference/exit.scrbl b/collects/scribblings/reference/exit.scrbl
index ac0f1d933c..7e17cebd80 100644
--- a/collects/scribblings/reference/exit.scrbl
+++ b/collects/scribblings/reference/exit.scrbl
@@ -5,7 +5,7 @@
@defproc[(exit [v any/c #t]) any]{
-Passes @scheme[v] to the current @tech{exit handler}. If the exit
+Passes @racket[v] to the current @tech{exit handler}. If the exit
handler does not escape or terminate the thread, @|void-const| is
returned.}
@@ -13,11 +13,11 @@ returned.}
@defparam[exit-handler proc (any/c . -> . any)]{
A parameter that determines the current @deftech{exit handler}. The
-@tech{exit handler} is called by @scheme[exit].
+@tech{exit handler} is called by @racket[exit].
-The default @tech{exit handler} in the @exec{mzscheme} executable
-takes any argument and shuts down the OS-level Scheme process. The
+The default @tech{exit handler} in the Racket executable
+takes any argument and shuts down the OS-level Racket process. The
argument is used as the OS-level exit code if it is an exact integer
-between @scheme[1] and @scheme[255] (which normally means
-``failure''); otherwise, the exit code is @scheme[0], (which normally
+between @racket[1] and @racket[255] (which normally means
+``failure''); otherwise, the exit code is @racket[0], (which normally
means ``success'').}
diff --git a/collects/scribblings/reference/exns.scrbl b/collects/scribblings/reference/exns.scrbl
index 5e00b7d9af..3571170366 100644
--- a/collects/scribblings/reference/exns.scrbl
+++ b/collects/scribblings/reference/exns.scrbl
@@ -5,42 +5,42 @@
@title[#:tag "exns"]{Exceptions}
-See @secref["exn-model"] for information on the PLT Scheme exception
+See @secref["exn-model"] for information on the Racket exception
model. It is based on a proposal by Friedman, Haynes, and Dybvig
@cite["Friedman95"].
-Whenever a primitive error occurs in PLT Scheme, an exception is
+Whenever a primitive error occurs in Racket, an exception is
raised. The value that is passed to the current @tech{exception
handler} for a primitive error is always an instance of the
-@scheme[exn] structure type. Every @scheme[exn] structure value has a
-@scheme[message] field that is a string, the primitive error message.
+@racket[exn] structure type. Every @racket[exn] structure value has a
+@racket[message] field that is a string, the primitive error message.
The default exception handler recognizes exception values with the
-@scheme[exn?] predicate and passes the error message to the current
-@tech{error display handler} (see @scheme[error-display-handler]).
+@racket[exn?] predicate and passes the error message to the current
+@tech{error display handler} (see @racket[error-display-handler]).
Primitive procedures that accept a procedure argument with a
-particular required arity (e.g., @scheme[call-with-input-file],
-@scheme[call/cc]) check the argument's arity immediately, raising
-@scheme[exn:fail:contract] if the arity is incorrect.
+particular required arity (e.g., @racket[call-with-input-file],
+@racket[call/cc]) check the argument's arity immediately, raising
+@racket[exn:fail:contract] if the arity is incorrect.
@;------------------------------------------------------------------------
@section[#:tag "errorproc"]{Raising Exceptions}
@defproc[(raise [v any/c][barrier? any/c #t]) any]{
-Raises an exception, where @scheme[v] represents the exception being
-raised. The @scheme[v] argument can be anything; it is passed to the
+Raises an exception, where @racket[v] represents the exception being
+raised. The @racket[v] argument can be anything; it is passed to the
current @tech{exception handler}.
-If @scheme[barrier?] is true, then the call to the @tech{exception
+If @racket[barrier?] is true, then the call to the @tech{exception
handler} is protected by a @tech{continuation barrier}, so that
multiple returns/escapes are impossible. All exceptions raised by
-@schememodname[scheme] functions effectively use @scheme[raise] with a
-@scheme[#t] value for @scheme[barrier?].
+@racketmodname[racket] functions effectively use @racket[raise] with a
+@racket[#t] value for @racket[barrier?].
Breaks are disabled from the time the exception is raised until the
exception handler obtains control, and the handler itself is
-@scheme[parameterize-break]ed to disable breaks initially; see
+@racket[parameterize-break]ed to disable breaks initially; see
@secref["breakhandler"] for more information on breaks.
@examples[
@@ -60,73 +60,73 @@ exception handler obtains control, and the handler itself is
[(error [msg string?][v any/c] ...) any]
[(error [src symbol?][frmat string?][v any/c] ...) any])]{
-Raises the exception @scheme[exn:fail], which contains an error
+Raises the exception @racket[exn:fail], which contains an error
string. The different forms produce the error string in different
ways:
@itemize[
- @item{@scheme[(error sym)] creates a message string by concatenating
- @scheme["error: "] with the string form of @scheme[sym].}
+ @item{@racket[(error sym)] creates a message string by concatenating
+ @racket["error: "] with the string form of @racket[sym].}
- @item{@scheme[(error msg v ...)] creates a message string by
- concatenating @scheme[msg] with string versions of the @scheme[v]s
+ @item{@racket[(error msg v ...)] creates a message string by
+ concatenating @racket[msg] with string versions of the @racket[v]s
(as produced by the current error value conversion handler; see
- @scheme[error-value->string-handler]). A space is inserted before
- each @scheme[v].}
+ @racket[error-value->string-handler]). A space is inserted before
+ each @racket[v].}
- @item{@scheme[(error src frmat v ...)] creates a
+ @item{@racket[(error src frmat v ...)] creates a
message string equivalent to the string created by
- @schemeblock[
+ @racketblock[
(format (string-append "~s: " frmat) src v ...)
]}
]
In all cases, the constructed message string is passed to
-@scheme[make-exn:fail], and the resulting exception is raised.
+@racket[make-exn:fail], and the resulting exception is raised.
@examples[
(error 'failed)
(error "failed" 23 'pizza (list 1 2 3))
-(error 'failed "~a failed because ~a" 'method-a "no argument supplied")
+(error 'method-a "failed because ~a" "no argument supplied")
]}
@defproc*[([(raise-user-error [sym symbol?]) any]
[(raise-user-error [msg string?][v any/c] ...) any]
[(raise-user-error [src symbol?][format string?][v any/c] ...) any])]{
-Like @scheme[error], but constructs an exception with
-@scheme[make-exn:fail:user] instead of @scheme[make-exn:fail]. The
+Like @racket[error], but constructs an exception with
+@racket[make-exn:fail:user] instead of @racket[make-exn:fail]. The
default @tech{error display handler} does not show a ``stack trace'' for
-@scheme[exn:fail:user] exceptions (see @secref["contmarks"]), so
-@scheme[raise-user-error] should be used for errors that are intended
+@racket[exn:fail:user] exceptions (see @secref["contmarks"]), so
+@racket[raise-user-error] should be used for errors that are intended
for end users.
@examples[
(raise-user-error 'failed)
(raise-user-error "failed" 23 'pizza (list 1 2 3))
-(raise-user-error 'failed "~a failed because ~a" 'method-a "no argument supplied")
+(raise-user-error 'method-a "failed because ~a" "no argument supplied")
]}
@defproc*[([(raise-type-error [name symbol?][expected string?][v any/c]) any]
[(raise-type-error [name symbol?][expected string?][bad-pos exact-nonnegative-integer?][v any/c] ...) any])]{
-Creates an @scheme[exn:fail:contract] value and @scheme[raise]s it as
-an exception. The @scheme[name] argument is used as the source
-procedure's name in the error message. The @scheme[expected] argument
+Creates an @racket[exn:fail:contract] value and @racket[raise]s it as
+an exception. The @racket[name] argument is used as the source
+procedure's name in the error message. The @racket[expected] argument
is used as a description of the expected type.
-In the first form, @scheme[v] is the value received by the procedure
+In the first form, @racket[v] is the value received by the procedure
that does not have the expected type.
In the second form, the bad argument is indicated by an index
-@scheme[bad-pos] (counting from @math{0}), and all of the original
-arguments @scheme[v] are provided (in order). The resulting error
+@racket[bad-pos] (counting from @math{0}), and all of the original
+arguments @racket[v] are provided (in order). The resulting error
message names the bad argument and also lists the other arguments. If
-@scheme[bad-pos] is not less than the number of @scheme[v]s, the
+@racket[bad-pos] is not less than the number of @racket[v]s, the
@exnraise[exn:fail:contract].
@examples[
@@ -144,13 +144,13 @@ message names the bad argument and also lists the other arguments. If
@defproc[(raise-mismatch-error [name symbol?][message string?][v any/c]) any]{
-Creates an @scheme[exn:fail:contract] value and @scheme[raise]s it as
-an exception. The @scheme[name] is used as the source procedure's
-name in the error message. The @scheme[message] is the error
-message. The @scheme[v] argument is the improper argument received by
-the procedure. The printed form of @scheme[v] is appended to
-@scheme[message] (using the error value conversion handler; see
-@scheme[error-value->string-handler]).}
+Creates an @racket[exn:fail:contract] value and @racket[raise]s it as
+an exception. The @racket[name] is used as the source procedure's
+name in the error message. The @racket[message] is the error
+message. The @racket[v] argument is the improper argument received by
+the procedure. The printed form of @racket[v] is appended to
+@racket[message] (using the error value conversion handler; see
+@racket[error-value->string-handler]).}
@defproc[(raise-arity-error [name (or/c symbol? procedure?)]
[arity-v (or/c exact-nonnegative-integer?
@@ -161,22 +161,22 @@ the procedure. The printed form of @scheme[v] is appended to
[arg-v any/c #f] ...)
any]{
-Creates an @scheme[exn:fail:contract:arity] value and @scheme[raise]s
-it as an exception. The @scheme[name] is used for the source
+Creates an @racket[exn:fail:contract:arity] value and @racket[raise]s
+it as an exception. The @racket[name] is used for the source
procedure's name in the error message.
-The @scheme[arity-v] value must
-be a possible result from @scheme[procedure-arity], except
-that it does not have to be normalized (see @scheme[procedure-arity?] for
-the details of normalized arities); @scheme[raise-arity-error]
+The @racket[arity-v] value must
+be a possible result from @racket[procedure-arity], except
+that it does not have to be normalized (see @racket[procedure-arity?] for
+the details of normalized arities); @racket[raise-arity-error]
will normalize the arity and used the normalized form in the error message.
-If @scheme[name-symbol-or-procedure] is a procedure, its actual arity is
+If @racket[name-symbol-or-procedure] is a procedure, its actual arity is
ignored.
-The @scheme[arg-v] arguments are the actual supplied
+The @racket[arg-v] arguments are the actual supplied
arguments, which are shown in the error message (using the error value
-conversion handler; see @scheme[error-value->string-handler]); also,
-the number of supplied @scheme[arg-v]s is explicitly mentioned in the
+conversion handler; see @racket[error-value->string-handler]); also,
+the number of supplied @racket[arg-v]s is explicitly mentioned in the
message.}
@defproc[(raise-syntax-error [name (or/c symbol? #f)]
@@ -186,50 +186,50 @@ message.}
[extra-sources (listof syntax?) null])
any]{
-Creates an @scheme[exn:fail:syntax] value and @scheme[raise]s it as an
+Creates an @racket[exn:fail:syntax] value and @racket[raise]s it as an
exception. Macros use this procedure to report syntax errors.
-The @scheme[name] argument is usually @scheme[#f] when @scheme[expr]
+The @racket[name] argument is usually @racket[#f] when @racket[expr]
is provided; it is described in more detail below. The
-@scheme[message] is used as the main body of the error message.
+@racket[message] is used as the main body of the error message.
-The optional @scheme[expr] argument is the erroneous source syntax
-object or S-expression (but the expression @scheme[#f] cannot be
+The optional @racket[expr] argument is the erroneous source syntax
+object or S-expression (but the expression @racket[#f] cannot be
represented by itself; it must be wrapped as a @tech{syntax
-object}). The optional @scheme[sub-expr] argument is a syntax object
-or S-expression (again, @scheme[#f] cannot represent itself) within
-@scheme[expr] that more precisely locates the error. Both may appear
+object}). The optional @racket[sub-expr] argument is a syntax object
+or S-expression (again, @racket[#f] cannot represent itself) within
+@racket[expr] that more precisely locates the error. Both may appear
in the generated error-message text if
-@scheme[error-print-source-location] is @scheme[#t]. Source location
+@racket[error-print-source-location] is @racket[#t]. Source location
information in the error-message text is similarly extracted from
-@scheme[sub-expr] or @scheme[expr] when at least one is a syntax
-object and @scheme[error-print-source-location] is @scheme[#t].
+@racket[sub-expr] or @racket[expr] when at least one is a syntax
+object and @racket[error-print-source-location] is @racket[#t].
-If @scheme[sub-expr] is provided and not @scheme[#f], it is used (in
-syntax form) for the @scheme[exprs] field of the generated exception
-record, else the @scheme[expr] is used if provided and not
-@scheme[#f]. In either case, the syntax object is @scheme[cons]ed onto
-@scheme[extra-sources] to produce the @scheme[exprs] field, or
-@scheme[extra-sources] is used directly for @scheme[exprs] if neither
-@scheme[expr] nor @scheme[sub-expr] is provided and not @scheme[#f].
+If @racket[sub-expr] is provided and not @racket[#f], it is used (in
+syntax form) for the @racket[exprs] field of the generated exception
+record, else the @racket[expr] is used if provided and not
+@racket[#f]. In either case, the syntax object is @racket[cons]ed onto
+@racket[extra-sources] to produce the @racket[exprs] field, or
+@racket[extra-sources] is used directly for @racket[exprs] if neither
+@racket[expr] nor @racket[sub-expr] is provided and not @racket[#f].
The form name used in the generated error message is determined
-through a combination of the @scheme[name], @scheme[expr], and
-@scheme[sub-expr] arguments:
+through a combination of the @racket[name], @racket[expr], and
+@racket[sub-expr] arguments:
@itemize[
- @item{When @scheme[name] is @scheme[#f], and when @scheme[expr] is
+ @item{When @racket[name] is @racket[#f], and when @racket[expr] is
either an identifier or a syntax pair containing an identifier as
its first element, then the form name from the error message is the
identifier's symbol.}
- @item{When @scheme[name] is @scheme[#f] and when @scheme[expr] is not
+ @item{When @racket[name] is @racket[#f] and when @racket[expr] is not
an identifier or a syntax pair containing and identifier as its
first element, then the form name in the error message is
- @scheme["?"].}
+ @racket["?"].}
- @item{@scheme[symbol]: When @scheme[name] is a symbol, then the symbol
+ @item{@racket[symbol]: When @racket[name] is a symbol, then the symbol
is used as the form name in the generated error message.}
]}
@@ -239,48 +239,48 @@ through a combination of the @scheme[name], @scheme[expr], and
@defproc[(call-with-exception-handler [f (any/c . -> . any)][thunk (-> any)]) any]{
-Installs @scheme[f] as the @tech{exception handler} for the
-@tech{dynamic extent} of the call to @scheme[thunk]. If an exception
-is raised during the evaluation of @scheme[thunk] (in an extension of
+Installs @racket[f] as the @tech{exception handler} for the
+@tech{dynamic extent} of the call to @racket[thunk]. If an exception
+is raised during the evaluation of @racket[thunk] (in an extension of
the current continuation that does not have its own exception
-handler), then @scheme[f] is applied to the @scheme[raise]d value in
-the continuation of the @scheme[raise] call (but normally extended
+handler), then @racket[f] is applied to the @racket[raise]d value in
+the continuation of the @racket[raise] call (but normally extended
with a @tech{continuation barrier}; see @secref["prompt-model"] and
-@scheme[raise]).
+@racket[raise]).
Any procedure that takes one argument can be an exception handler. If
-the exception handler returns a value when invoked by @scheme[raise],
-then @scheme[raise] propagates the value to the ``previous'' exception
-handler (still in the dynamic extent of the call to @scheme[raise],
+the exception handler returns a value when invoked by @racket[raise],
+then @racket[raise] propagates the value to the ``previous'' exception
+handler (still in the dynamic extent of the call to @racket[raise],
and under the same barrier, if any). The previous exception handler is
the exception handler associated with the rest of the continuation
after the point where the called exception handler was associated with
the continuation; if no previous handler is available, the
uncaught-exception handler is used (see below). In all cases, a call
-to an exception handler is @scheme[parameterize-break]ed to disable
-breaks, and it is wrapped with @scheme[call-with-exception-handler] to
+to an exception handler is @racket[parameterize-break]ed to disable
+breaks, and it is wrapped with @racket[call-with-exception-handler] to
install the an exception handler that reports both the original and
newly raised exceptions.}
@defparam[uncaught-exception-handler f (any/c . -> . any)]{
A @tech{parameter} that determines an exception handler used by
-@scheme[raise] when the relevant continuation has no exception handler
-installed with @scheme[call-with-exception-handler] or
-@scheme[with-handlers]. Unlike exception handlers installed with
-@scheme[call-with-exception-handler], the handler for uncaught
-exceptions must not return a value when called by @scheme[raise]; if
+@racket[raise] when the relevant continuation has no exception handler
+installed with @racket[call-with-exception-handler] or
+@racket[with-handlers]. Unlike exception handlers installed with
+@racket[call-with-exception-handler], the handler for uncaught
+exceptions must not return a value when called by @racket[raise]; if
it returns, an exception is raised (to be handled by an exception
handler that reports both the original and newly raised exception).
The default uncaught-exception handler prints an error message using
-the current @tech{error display handler} (see @scheme[error-display-handler])
+the current @tech{error display handler} (see @racket[error-display-handler])
and then escapes by calling the current error escape handler (see
-@scheme[error-escape-handler]). The call to each handler is
-@scheme[parameterize]d to set @scheme[error-display-handler] to the
-default @tech{error display handler}, and it is @scheme[parameterize-break]ed
+@racket[error-escape-handler]). The call to each handler is
+@racket[parameterize]d to set @racket[error-display-handler] to the
+default @tech{error display handler}, and it is @racket[parameterize-break]ed
to disable breaks. The call to the error escape handler is further
-parameterized to set @scheme[error-escape-handler] to the default
+parameterized to set @racket[error-escape-handler] to the default
error escape handler.
When the current @tech{error display handler} is the default handler, then the
@@ -291,35 +291,35 @@ fails.}
@defform[(with-handlers ([pred-expr handler-expr] ...)
body ...+)]{
-Evaluates each @scheme[pred-expr] and and @scheme[handler-expr] in the
-order that they are specified, and then evaluates the @scheme[body]s
+Evaluates each @racket[pred-expr] and and @racket[handler-expr] in the
+order that they are specified, and then evaluates the @racket[body]s
with a new exception handler during the its dynamic extent.
The new exception handler processes an exception only if one of the
-@scheme[pred-expr] procedures returns a true value when applied to the
+@racket[pred-expr] procedures returns a true value when applied to the
exception, otherwise the exception handler is invoked from the
-continuation of the @scheme[with-handlers] expression (by raising the
+continuation of the @racket[with-handlers] expression (by raising the
exception again). If an exception is handled by one of the
-@scheme[handler-expr] procedures, the result of the entire
-@scheme[with-handlers] expression is the return value of the handler.
+@racket[handler-expr] procedures, the result of the entire
+@racket[with-handlers] expression is the return value of the handler.
-When an exception is raised during the evaluation of @scheme[body]s,
-each predicate procedure @scheme[pred-expr] is applied to the
+When an exception is raised during the evaluation of @racket[body]s,
+each predicate procedure @racket[pred-expr] is applied to the
exception value; if a predicate returns a true value, the
-corresponding @scheme[handler-expr] procedure is invoked with the
+corresponding @racket[handler-expr] procedure is invoked with the
exception as an argument. The predicates are tried in the order that
they are specified.
Before any predicate or handler procedure is invoked, the continuation
-of the entire @scheme[with-handlers] expression is restored, but also
-@scheme[parameterize-break]ed to disable breaks. Thus, breaks are
+of the entire @racket[with-handlers] expression is restored, but also
+@racket[parameterize-break]ed to disable breaks. Thus, breaks are
disabled by default during the predicate and handler procedures (see
@secref["breakhandler"]), and the exception handler is the one from
-the continuation of the @scheme[with-handlers] expression.
+the continuation of the @racket[with-handlers] expression.
-The @scheme[exn:fail?] procedure is useful as a handler predicate to
-catch all error exceptions. Avoid using @scheme[(lambda (x) #t)] as a
-predicate, because the @scheme[exn:break] exception typically should
+The @racket[exn:fail?] procedure is useful as a handler predicate to
+catch all error exceptions. Avoid using @racket[(lambda (x) #t)] as a
+predicate, because the @racket[exn:break] exception typically should
not be caught (unless it will be re-raised to cooperatively
break). Beware, also, of catching and discarding exceptions, because
discarding an error message can make debugging unnecessarily
@@ -328,9 +328,9 @@ difficult.}
@defform[(with-handlers* ([pred-expr handler-expr] ...)
body ...+)]{
-Like @scheme[with-handlers], but if a @scheme[handler-expr] procedure
+Like @racket[with-handlers], but if a @racket[handler-expr] procedure
is called, breaks are not explicitly disabled, and the handler call is
-in tail position with respect to the @scheme[with-handlers*] form.}
+in tail position with respect to the @racket[with-handlers*] form.}
@;------------------------------------------------------------------------
@section{Configuring Default Handling}
@@ -340,21 +340,21 @@ in tail position with respect to the @scheme[with-handlers*] form.}
A parameter for the @deftech{error escape handler}, which takes no
arguments and escapes from the dynamic context of an exception. The
default error escape handler escapes using
-@scheme[(abort-current-continuation (default-continuation-prompt-tag)
+@racket[(abort-current-continuation (default-continuation-prompt-tag)
void)].
The error escape handler is normally called directly by an exception
handler, in a @tech{parameterization} that sets the @tech{error
display handler} and @tech{error escape handler} to the default
-handlers, and it is normally @scheme[parameterize-break]ed to disable
+handlers, and it is normally @racket[parameterize-break]ed to disable
breaks. To escape from a run-time error in a different context, use
-@scheme[raise] or @scheme[error].
+@racket[raise] or @racket[error].
Due to a @tech{continuation barrier} around exception-handling calls,
an error escape handler cannot invoke a full continuation that was
created prior to the exception, but it can abort to a prompt (see
-@scheme[call-with-continuation-prompt]) or invoke an escape
-continuation (see @scheme[call-with-escape-continuation]).}
+@racket[call-with-continuation-prompt]) or invoke an escape
+continuation (see @racket[call-with-escape-continuation]).}
@defparam[error-display-handler proc (string? any/c . -> . any)]{
@@ -364,24 +364,24 @@ exception value. More generally, the handler's first argument is a
string to print as an error message, and the second is a value
representing a raised exception.
-The default error display handler @scheme[display]s its first argument
+The default error display handler @racket[display]s its first argument
to the current error port (determined by the
-@scheme[current-error-port] parameter) and extracts a stack trace (see
-@scheme[continuation-mark-set->context]) to display from the second
-argument if it is an @scheme[exn] value but not an
-@scheme[exn:fail:user] value.
+@racket[current-error-port] parameter) and extracts a stack trace (see
+@racket[continuation-mark-set->context]) to display from the second
+argument if it is an @racket[exn] value but not an
+@racket[exn:fail:user] value.
-@margin-note{The default error display handler in DrScheme also uses
+@margin-note{The default error display handler in DrRacket also uses
the second argument to highlight source locations.}
-To report a run-time error, use @scheme[raise] or procedures like
-@scheme[error], instead of calling the error display handler
+To report a run-time error, use @racket[raise] or procedures like
+@racket[error], instead of calling the error display handler
directly.}
@defparam[error-print-width width (and exact-integer? (>=/c 3))]{
A parameter whose value is used as the maximum number of characters
-used to print a Scheme value that is embedded in a primitive error
+used to print a Racket value that is embedded in a primitive error
message.}
@defparam[error-print-context-length cnt exact-nonnegative-integer?]{
@@ -389,35 +389,35 @@ message.}
A parameter whose value is used by the default @tech{error display handler}
as the maximum number of lines of context (or ``stack trace'') to
print; a single ``...'' line is printed if more lines are available
-after the first @scheme[cnt] lines. A @scheme[0] value for
-@scheme[cnt] disables context printing entirely.}
+after the first @racket[cnt] lines. A @racket[0] value for
+@racket[cnt] disables context printing entirely.}
@defparam[error-value->string-handler proc (any/c exact-nonnegative-integer?
. -> .
string?)]{
A parameter that determines the @deftech{error value conversion
-handler}, which is used to print a Scheme value that is embedded in a
+handler}, which is used to print a Racket value that is embedded in a
primitive error message.
The integer argument to the handler specifies the maximum number of
characters that should be used to represent the value in the resulting
-string. The default error value conversion handler @scheme[print]s
+string. The default error value conversion handler @racket[print]s
the value into a string (using the current @tech{global port print
-handler}; see @scheme[global-port-print-handler]). If the printed form
+handler}; see @racket[global-port-print-handler]). If the printed form
is too long, the printed form is truncated and the last three
characters of the return string are set to ``...''.
If the string returned by an error value conversion handler is longer
than requested, the string is destructively ``truncated'' by setting
the first extra position in the string to the null character. If a
-non-string is returned, then the string @scheme["..."] is used. If a
+non-string is returned, then the string @racket["..."] is used. If a
primitive error string needs to be generated before the handler has
returned, the default error value conversion handler is used.
-Call to an error value conversion handler are @scheme[parameterized]
+Call to an error value conversion handler are @racket[parameterized]
to re-install the default error value conversion handler, and to
-enable printing of unreadable values (see @scheme[print-unreadable]).}
+enable printing of unreadable values (see @racket[print-unreadable]).}
@defboolparam[error-print-source-location include?]{
@@ -426,9 +426,9 @@ include source information, such as the source line and column or the
expression. This parameter also controls the error message when a
module-defined variable is accessed before its definition is executed;
the parameter determines whether the message includes a module
-name. Only the message field of an @scheme[exn:fail:read],
-@scheme[exn:fail:syntax], or @scheme[exn:fail:contract:variable]
-structure is affected by the parameter. The default is @scheme[#t].}
+name. Only the message field of an @racket[exn:fail:read],
+@racket[exn:fail:syntax], or @racket[exn:fail:contract:variable]
+structure is affected by the parameter. The default is @racket[#t].}
@;------------------------------------------------------------------------
@section{Built-in Exception Types}
@@ -437,16 +437,16 @@ structure is affected by the parameter. The default is @scheme[#t].}
[continuation-marks continuation-mark-set?])
#:inspector #f]{
-The base @tech{structure type} for exceptions. The @scheme[message]
-field contains an error message, and the @scheme[continuation-marks]
-field contains the value produced by @scheme[(current-continuation-marks)]
+The base @tech{structure type} for exceptions. The @racket[message]
+field contains an error message, and the @racket[continuation-marks]
+field contains the value produced by @racket[(current-continuation-marks)]
immediately before the exception was raised.}
@defstruct[(exn:fail exn) ()
#:inspector #f]{
Raised for exceptions that represent errors, as opposed to
-@scheme[exn:break].}
+@racket[exn:break].}
@defstruct[(exn:fail:contract exn:fail) ()
@@ -468,7 +468,7 @@ Raised for division by exact zero.}
@defstruct[(exn:fail:contract:non-fixnum-result exn:fail:contract) ()
#:inspector #f]{
-Raised by functions like @scheme[fx+] when the result would not be a fixnum.}
+Raised by functions like @racket[fx+] when the result would not be a fixnum.}
@defstruct[(exn:fail:contract:continuation exn:fail:contract) ()
#:inspector #f]{
@@ -485,27 +485,27 @@ or @tech{module-level variable}.}
@defstruct[(exn:fail:syntax exn:fail) ([exprs (listof syntax?)])
#:inspector #f]{
-Raised for a syntax error that is not a @scheme[read] error. The
-@scheme[exprs] indicate the relevant source expressions,
+Raised for a syntax error that is not a @racket[read] error. The
+@racket[exprs] indicate the relevant source expressions,
least-specific to most-specific.}
@defstruct[(exn:fail:read exn:fail) ([srclocs (listof srcloc?)])
#:inspector #f]{
-Raised for a @scheme[read] error. The @scheme[srclocs] indicate the
+Raised for a @racket[read] error. The @racket[srclocs] indicate the
relevant source expressions.}
@defstruct[(exn:fail:read:eof exn:fail:read) ()
#:inspector #f]{
-Raised for a @scheme[read] error, specifically when the error is due
+Raised for a @racket[read] error, specifically when the error is due
to an unexpected end-of-file.}
@defstruct[(exn:fail:read:non-char exn:fail:read) ()
#:inspector #f]{
-Raised for a @scheme[read] error, specifically when the error is due
+Raised for a @racket[read] error, specifically when the error is due
to an unexpected non-character (i.e., ``special'') element in the
input stream.}
@@ -556,32 +556,32 @@ context when printing the error message.}
#:inspector #f]{
Raised asynchronously (when enabled) in response to a break request.
-The @scheme[continuation] field can be used by a handler to resume the
+The @racket[continuation] field can be used by a handler to resume the
interrupted computation.}
@defthing[prop:exn:srclocs struct-type-property?]{
A property that identifies structure types that provide a list of
-@scheme[srcloc] values. The property is normally attached to structure
+@racket[srcloc] values. The property is normally attached to structure
types used to represent exception information.
The property value must be a procedure that accepts a single
value---the structure type instance from which to extract source
-locations---and returns a list of @scheme[srcloc]s. Some @tech{error
+locations---and returns a list of @racket[srcloc]s. Some @tech{error
display handlers} use only the first returned location.}
@defproc[(exn:srclocs? [v any/c]) boolean?]{
-Returns @scheme[#t] if @scheme[v] has the @scheme[prop:exn:srclocs]
-property, @scheme[#f] otherwise.}
+Returns @racket[#t] if @racket[v] has the @racket[prop:exn:srclocs]
+property, @racket[#f] otherwise.}
@defproc[(exn:srclocs-accessor [v exn:srclocs?])
(exn:srclocs? . -> . (listof srcloc))]{
-Returns the @scheme[srcloc]-getting procedure associated with @scheme[v].}
+Returns the @racket[srcloc]-getting procedure associated with @racket[v].}
@defstruct[srcloc ([source any/c]
@@ -591,23 +591,23 @@ Returns the @scheme[srcloc]-getting procedure associated with @scheme[v].}
[span (or/c exact-nonnegative-integer? #f)])
#:inspector #f]{
-The fields of an @scheme[srcloc] instance are as follows:
+The fields of an @racket[srcloc] instance are as follows:
@itemize[
- @item{@scheme[source] --- An arbitrary value identifying the source,
+ @item{@racket[source] --- An arbitrary value identifying the source,
often a path (see @secref["pathutils"]).}
- @item{@scheme[line] --- The line number (counts from 1) or
- @scheme[#f] (unknown).}
+ @item{@racket[line] --- The line number (counts from 1) or
+ @racket[#f] (unknown).}
- @item{@scheme[column] --- The column number (counts from 0) or
- @scheme[#f] (unknown).}
+ @item{@racket[column] --- The column number (counts from 0) or
+ @racket[#f] (unknown).}
- @item{@scheme[position] --- The starting position (counts from 1) or
- @scheme[#f] (unknown).}
+ @item{@racket[position] --- The starting position (counts from 1) or
+ @racket[#f] (unknown).}
- @item{@scheme[span] --- The number of covered positions (counts from
- 0) or @scheme[#f] (unknown).}
+ @item{@racket[span] --- The number of covered positions (counts from
+ 0) or @racket[#f] (unknown).}
]}
diff --git a/collects/scribblings/reference/file-ports.scrbl b/collects/scribblings/reference/file-ports.scrbl
index b93002bcfc..eec76b0c28 100644
--- a/collects/scribblings/reference/file-ports.scrbl
+++ b/collects/scribblings/reference/file-ports.scrbl
@@ -36,11 +36,11 @@
@title[#:tag "file-ports"]{File Ports}
-A port created by @scheme[open-input-file], @scheme[open-output-file],
-@scheme[subprocess], and related functions is a @deftech{file-stream
-port}. The initial input, output, and error ports in stand-alone
-MzScheme are also file-stream ports. The @scheme[file-stream-port?]
-predicate recognizes file-stream ports.
+A port created by @racket[open-input-file], @racket[open-output-file],
+@racket[subprocess], and related functions is a @deftech{file-stream
+port}. The initial input, output, and error ports in @exec{racket}
+are also file-stream ports. The @racket[file-stream-port?] predicate
+recognizes file-stream ports.
When an input or output file-stream port is created, it is placed into
the management of the current custodian (see
@@ -50,16 +50,16 @@ the management of the current custodian (see
[#:mode mode-flag (or/c 'binary 'text) 'binary])
input-port?]{
-Opens the file specified by @scheme[path] for input. The
-@scheme[mode-flag] argument specifies how the file's bytes are
+Opens the file specified by @racket[path] for input. The
+@racket[mode-flag] argument specifies how the file's bytes are
translated on input:
@itemize[
- @item{@indexed-scheme['binary] --- bytes are returned from the port
+ @item{@indexed-racket['binary] --- bytes are returned from the port
exactly as they are read from the file.}
- @item{@indexed-scheme['text] --- return and linefeed bytes (10 and
+ @item{@indexed-racket['text] --- return and linefeed bytes (10 and
13) as read from the file are filtered by the port in a platform
specific manner:
@@ -74,25 +74,25 @@ translated on input:
]}
]
-Under Windows, @scheme['text] mode works only with regular files;
-attempting to use @scheme['text] with other kinds of files triggers an
-@scheme[exn:fail:filesystem] exception.
+Under Windows, @racket['text] mode works only with regular files;
+attempting to use @racket['text] with other kinds of files triggers an
+@racket[exn:fail:filesystem] exception.
-Otherwise, the file specified by @scheme[path] need not be a regular
+Otherwise, the file specified by @racket[path] need not be a regular
file. It might a device that is connected through the filesystem, such
as @filepath{aux} under Windows or @filepath{/dev/null} under Unix. In all
cases, the port is buffered by default.
-The port produced by @scheme[open-input-file] should be explicitly
-closed, either though @scheme[close-input-port] or indirectly via
-@scheme[custodian-shutdown-all], to release the OS-level file
+The port produced by @racket[open-input-file] should be explicitly
+closed, either though @racket[close-input-port] or indirectly via
+@racket[custodian-shutdown-all], to release the OS-level file
handle. The input port will not be closed automatically if it is
otherwise available for garbage collection (see
@secref["gc-model"]); a @tech{will} could be associated input port
to close it more automatically (see @secref["willexecutor"]).
A @tech{path} value that is the @tech{cleanse}d version of
-@scheme[path] is used as the name of the opened port.
+@racket[path] is used as the name of the opened port.
@file-examples[
;; put some text in a file
@@ -110,79 +110,79 @@ A @tech{path} value that is the @tech{cleanse}d version of
'must-truncate 'truncate/replace) 'error])
output-port?]{
-Opens the file specified by @scheme[path] for output. The
-@scheme[mode-flag] argument specifies how bytes written to the port
+Opens the file specified by @racket[path] for output. The
+@racket[mode-flag] argument specifies how bytes written to the port
are translated when written to the file:
@itemize[
- @item{@scheme['binary] --- bytes are written to the file exactly
+ @item{@racket['binary] --- bytes are written to the file exactly
as written to the port.}
- @item{@scheme['text] --- under Windows, a linefeed byte (10) written
+ @item{@racket['text] --- under Windows, a linefeed byte (10) written
to the port is translated to a return-linefeed combination in the
file; no filtering occurs for returns.}
]
-Under Windows, @scheme['text] mode works only with regular files;
-attempting to use @scheme['text] with other kinds of files triggers an
-@scheme[exn:fail:filesystem] exception.
+Under Windows, @racket['text] mode works only with regular files;
+attempting to use @racket['text] with other kinds of files triggers an
+@racket[exn:fail:filesystem] exception.
-The @scheme[exists-flag] argument specifies how to handle/require
+The @racket[exists-flag] argument specifies how to handle/require
files that already exist:
@itemize[
- @item{@indexed-scheme['error] --- raise @scheme[exn:fail:filesystem]
+ @item{@indexed-racket['error] --- raise @racket[exn:fail:filesystem]
if the file exists.}
- @item{@indexed-scheme['replace] --- remove the old file, if it
+ @item{@indexed-racket['replace] --- remove the old file, if it
exists, and write a new one.}
- @item{@indexed-scheme['truncate] --- remove all old data, if the file
+ @item{@indexed-racket['truncate] --- remove all old data, if the file
exists.}
- @item{@indexed-scheme['must-truncate] --- remove all old data in an
+ @item{@indexed-racket['must-truncate] --- remove all old data in an
existing file; if the file does not exist, the
@exnraise[exn:fail:filesystem].}
- @item{@indexed-scheme['truncate/replace] --- try @scheme['truncate];
+ @item{@indexed-racket['truncate/replace] --- try @racket['truncate];
if it fails (perhaps due to file permissions), try
- @scheme['replace].}
+ @racket['replace].}
- @item{@indexed-scheme['update] --- open an existing file without
+ @item{@indexed-racket['update] --- open an existing file without
truncating it; if the file does not exist, the
- @exnraise[exn:fail:filesystem]. Use @scheme[file-position]
+ @exnraise[exn:fail:filesystem]. Use @racket[file-position]
to change the current read/write position.}
- @item{@indexed-scheme['can-update] --- open an existing file without
+ @item{@indexed-racket['can-update] --- open an existing file without
truncating it, or create the file if it does not exist.}
- @item{@indexed-scheme['append] --- append to the end of the file,
+ @item{@indexed-racket['append] --- append to the end of the file,
whether it already exists or not; under Windows,
- @scheme['append] is equivalent to @scheme['update], except that
+ @racket['append] is equivalent to @racket['update], except that
the file is not required to exist, and the file position is
immediately set to the end of the file after opening it.}
]
-The file specified by @scheme[path] need not be a regular file. It
+The file specified by @racket[path] need not be a regular file. It
might a device that is connected through the filesystem, such as
@filepath{aux} under Windows or @filepath{/dev/null} under Unix. The output
port is block-buffered by default, unless the file corresponds to a
terminal, in which case is it line buffered bu default.
-The port produced by @scheme[open-output-port] should be explicitly
-closed, either though @scheme[close-output-port] or indirectly via
-@scheme[custodian-shutdown-all], to release the OS-level file
+The port produced by @racket[open-output-port] should be explicitly
+closed, either though @racket[close-output-port] or indirectly via
+@racket[custodian-shutdown-all], to release the OS-level file
handle. The output port will not be closed automatically if it is
otherwise available for garbage collection (see
@secref["gc-model"]); a @tech{will} could be associated input port
to close it more automatically (see @secref["willexecutor"]).
A @tech{path} value that is the @tech{cleanse}d version of
-@scheme[path] is used as the name of the opened port.
+@racket[path] is used as the name of the opened port.
@file-examples[
(define out (open-output-file some-file))
@@ -196,7 +196,7 @@ A @tech{path} value that is the @tech{cleanse}d version of
'replace 'truncate 'truncate/replace) 'error])
(values input-port? output-port?)]{
-Like @scheme[open-output-file], but producing two values: an input
+Like @racket[open-output-file], but producing two values: an input
port and an output port. The two ports are connected in that they
share the underlying file device. This procedure is intended for use
with special devices that can be opened by only one process, such as
@@ -204,18 +204,18 @@ with special devices that can be opened by only one process, such as
confusing. For example, using one port does not automatically flush
the other port's buffer, and reading or writing in one port moves the
file position (if any) for the other port. For regular files, use
-separate @scheme[open-input-file] and @scheme[open-output-file] calls
+separate @racket[open-input-file] and @racket[open-output-file] calls
to avoid confusion.}
@defproc[(call-with-input-file [path path-string?]
[proc (input-port? . -> . any)]
[#:mode mode-flag (or/c 'binary 'text) 'binary])
any]{
-Calls @scheme[open-input-file] with the @scheme[path] and
-@scheme[mode-flag] arguments, and passes the resulting port
-to @scheme[proc]. The result of @scheme[proc] is the result of the
-@scheme[call-with-input-file] call, but the newly opened port is closed
-when @scheme[thunk] return.
+Calls @racket[open-input-file] with the @racket[path] and
+@racket[mode-flag] arguments, and passes the resulting port
+to @racket[proc]. The result of @racket[proc] is the result of the
+@racket[call-with-input-file] call, but the newly opened port is closed
+when @racket[thunk] return.
@file-examples[
(with-output-to-file some-file
@@ -230,9 +230,9 @@ when @scheme[thunk] return.
[#:exists exists-flag (or/c 'error 'append 'update
'replace 'truncate 'truncate/replace) 'error])
any]{
-Analogous to @scheme[call-with-input-file], but passing @scheme[path],
-@scheme[mode-flag] and @scheme[exists-flag] to
-@scheme[open-output-file].
+Analogous to @racket[call-with-input-file], but passing @racket[path],
+@racket[mode-flag] and @racket[exists-flag] to
+@racket[open-output-file].
@file-examples[
(call-with-output-file some-file
@@ -247,9 +247,9 @@ Analogous to @scheme[call-with-input-file], but passing @scheme[path],
[proc (input-port? . -> . any)]
[#:mode mode-flag (or/c 'binary 'text) 'binary])
any]{
-Like @scheme[call-with-input-file], but the newly opened port is
+Like @racket[call-with-input-file], but the newly opened port is
closed whenever control escapes the dynamic extent of the
-@scheme[call-with-input-file*] call, whether through @scheme[proc]'s
+@racket[call-with-input-file*] call, whether through @racket[proc]'s
return, a continuation application, or a prompt-based abort.}
@defproc[(call-with-output-file* [path path-string?]
@@ -258,19 +258,19 @@ return, a continuation application, or a prompt-based abort.}
[#:exists exists-flag (or/c 'error 'append 'update
'replace 'truncate 'truncate/replace) 'error])
any]{
-Like @scheme[call-with-output-file], but the newly opened port is
+Like @racket[call-with-output-file], but the newly opened port is
closed whenever control escapes the dynamic extent of the
-@scheme[call-with-output-file*] call, whether through @scheme[proc]'s
+@racket[call-with-output-file*] call, whether through @racket[proc]'s
return, a continuation application, or a prompt-based abort.}
@defproc[(with-input-from-file [path path-string?]
[thunk (-> any)]
[#:mode mode-flag (or/c 'binary 'text) 'binary])
any]{
-Like @scheme[call-with-input-file*], but instead of passing the newly
+Like @racket[call-with-input-file*], but instead of passing the newly
opened port to the given procedure argument, the port is installed as
-the current input port (see @scheme[current-input-port]) using
-@scheme[parameterize] around the call to @scheme[thunk].
+the current input port (see @racket[current-input-port]) using
+@racket[parameterize] around the call to @racket[thunk].
@file-examples[
(with-output-to-file some-file
@@ -285,10 +285,10 @@ the current input port (see @scheme[current-input-port]) using
[#:exists exists-flag (or/c 'error 'append 'update
'replace 'truncate 'truncate/replace) 'error])
any]{
-Like @scheme[call-with-output-file*], but instead of passing the newly
+Like @racket[call-with-output-file*], but instead of passing the newly
opened port to the given procedure argument, the port is installed as
-the current output port (see @scheme[current-output-port]) using
-@scheme[parameterize] around the call to @scheme[thunk].
+the current output port (see @racket[current-output-port]) using
+@racket[parameterize] around the call to @racket[thunk].
@file-examples[
(with-output-to-file some-file
@@ -301,14 +301,14 @@ the current output port (see @scheme[current-output-port]) using
@index['("inode")]{Returns} a number that represents
the identity of the device and file read or written by
-@scheme[port]. For two ports whose open times overlap, the
-result of @scheme[port-file-identity] is the same for both ports if
+@racket[port]. For two ports whose open times overlap, the
+result of @racket[port-file-identity] is the same for both ports if
and only if the ports access the same device and file. For ports whose
open times do not overlap, no guarantee can be provided for the port
identities (even if the ports actually access the same file)---except
as can be inferred through relationships with other ports. If
-@scheme[port] is closed, the @exnraise[exn:fail]. Under
-Windows 95, 98, and Me, if @scheme[port] is connected to a
+@racket[port] is closed, the @exnraise[exn:fail]. Under
+Windows 95, 98, and Me, if @racket[port] is connected to a
pipe instead of a file, the @exnraise[exn:fail:filesystem].
@file-examples[
diff --git a/collects/scribblings/reference/filesystem.scrbl b/collects/scribblings/reference/filesystem.scrbl
index ad259aa6de..9fae770b9a 100644
--- a/collects/scribblings/reference/filesystem.scrbl
+++ b/collects/scribblings/reference/filesystem.scrbl
@@ -49,8 +49,8 @@ by @racket[kind], which must be one of the following:
@item{@indexed-racket['pref-file] --- a file that contains a
symbol-keyed association list of preference values. The file's
directory path always matches the result returned for
- @racket['pref-dir]. The file name is @filepath{racket-prefs.rkt} under Unix
- and Windows, and it is @filepath{org.racket-lang.prefs.rkt} under Mac OS
+ @racket['pref-dir]. The file name is @filepath{racket-prefs.rktd} under Unix
+ and Windows, and it is @filepath{org.racket-lang.prefs.rktd} under Mac OS
X. The file's directory might not exist. See also
@racket[get-preference].}
@@ -64,19 +64,19 @@ by @racket[kind], which must be one of the following:
if it is defined, otherwise it is the current directory.}
@item{@indexed-racket['init-dir] --- the directory containing the
- initialization file used by stand-alone @exec{mzracket} executable.
+ initialization file used by the Racket executable.
It is the same as the current user's home directory.}
@item{@indexed-racket['init-file] --- the file loaded at start-up by
- the stand-alone @exec{mzracket} executable. The directory part of the
+ the Racket executable. The directory part of the
path is the same path as returned for @racket['init-dir]. The file
name is platform-specific:
@itemize[
- @item{@|AllUnix|: @indexed-file{.mzracketrc}}
+ @item{@|AllUnix|: @indexed-file{.racketrc}}
- @item{Windows: @indexed-file{mzracketrc.rkt}}
+ @item{Windows: @indexed-file{racketrc.rkts}}
]}
@@ -109,7 +109,7 @@ by @racket[kind], which must be one of the following:
operating system for Windows. Under @|AllUnix|, the
result is @racket["/"].}
- @item{@indexed-racket['exec-file] --- the path of the @exec{mzracket}
+ @item{@indexed-racket['exec-file] --- the path of the Racket
executable as provided by the operating system for the current
invocation.
@@ -119,10 +119,10 @@ by @racket[kind], which must be one of the following:
@item{@indexed-racket['run-file] --- the path of the current
executable; this may be different from result for
@racket['exec-file] because an alternate path was provided through a
- @DFlag{name} or @Flag{N} command-line flag to the @exec{mzracket}
- (or @exec{mred}) executable, or because an embedding executable
+ @DFlag{name} or @Flag{N} command-line flag to the Racket
+ (or GRacket) executable, or because an embedding executable
installed an alternate path. In particular a ``launcher'' script
- created by @racket[make-mzracket-launcher] sets this path to the
+ created by @racket[make-racket-launcher] sets this path to the
script's path.}
@item{@indexed-racket['collects-dir] --- a path to the main
@@ -132,7 +132,7 @@ by @racket[kind], which must be one of the following:
soft-link or relative to the user's executable search path, so that
the two results should be combined with
@racket[find-executable-path]. The @racket['collects-dir] path is
- normally embedded in the @exec{mzracket} executable, but it can be
+ normally embedded in the Racket executable, but it can be
overridden by the @DFlag{collects} or @Flag{X} command-line flag.}
@item{@indexed-racket['orig-dir] --- the current directory at
@@ -170,7 +170,7 @@ that the file or directory @racket[related-sub] exists in the same
directory as the executable. The result is then the full path for the
found @racket[related-sub], instead of the path for the executable.
-This procedure is used by the @exec{mzracket} executable to find the
+This procedure is used by the Racket executable to find the
standard library collection directory (see @secref["collects"]). In
this case, @racket[program] is the name used to start Racket and
@racket[related] is @racket["collects"]. The @racket[related-sub]
@@ -845,9 +845,10 @@ Extracts a preference value from the file designated by
@racket[(find-system-path 'pref-file)], or by @racket[filename] if it
is provided and is not @racket[#f]. In the former case, if the
preference file doesn't exist, @racket[get-preferences] attempts to
-read a @filepath{racket-prefs.rkt} file in the @filepath{defaults}
-collection, instead. If neither file exists, the preference set is
-empty.
+read an @elemref["old-prefs"]{old preferences file}, and then a
+@filepath{racket-prefs.rktd} file in the @filepath{defaults}
+collection, instead. If none of those files exists, the preference set
+is empty.
The preference file should contain a symbol-keyed association list
(written to the file with the default parameter settings). Keys
@@ -869,9 +870,22 @@ same as the last time the file was read. Otherwise, the file is
re-consulted.
See also @racket[put-preferences]. For a more elaborate preference
-system, see @racket[preferences:get].}
+system, see @racket[preferences:get].
+@elemtag["old-prefs"]{@bold{Old preferences files}}: When a
+@racket[filename] is not provided and the file indicated by
+@racket[(find-system-path 'pref-file)] does not exist, the following
+paths are checked for compatibility with old versions of Racket:
+@itemlist[
+
+ @item{Windows: @racket[(build-path (find-system-path 'pref-dir) 'up "PLT Scheme" "plt-prefs.ss")]}
+
+ @item{Mac OS X: @racket[(build-path (find-system-path 'pref-dir) "org.plt-scheme.prefs.ss")]}
+
+ @item{Unix: @racket[(expand-user-path "~/.plt-scheme/plt-prefs.ss")]}
+
+]}
@defproc[(put-preferences [names (listof symbol?)]
[vals list?]
diff --git a/collects/scribblings/reference/futures.scrbl b/collects/scribblings/reference/futures.scrbl
index b327351f0c..cf65a29323 100644
--- a/collects/scribblings/reference/futures.scrbl
+++ b/collects/scribblings/reference/futures.scrbl
@@ -11,35 +11,35 @@
@note-lib[racket/future]
-@margin-note{Currently, parallel support for @scheme[future] is
+@margin-note{Currently, parallel support for @racket[future] is
enabled by default for Windows, Linux x86/x86_64, and Mac OS X
x86/x86_64. To enable support for other platforms, use
-@DFlag{enable-futures} with @exec{configure} when building PLT
-Scheme.}
+@DFlag{enable-futures} with @exec{configure} when building
+Racket.}
-The @scheme[future] and @scheme[touch] functions from
-@schememodname[racket/future] provide access to parallelism as
+The @racket[future] and @racket[touch] functions from
+@racketmodname[racket/future] provide access to parallelism as
supported by the hardware and operation system.
-In contrast to @scheme[thread], which provides concurrency for
-arbitrary computations without parallelism, @scheme[future] provides
+In contrast to @racket[thread], which provides concurrency for
+arbitrary computations without parallelism, @racket[future] provides
parallelism for limited computations. A future executes its work in
parallel (assuming that support for parallelism is available) until it
detects an attempt to perform an operation that is too complex for the
system to run safely in parallel. Similarly, work in a future is
suspended if it depends in some way on the current continuation, such
as raising an exception. A suspended computation for a future is
-resumed when @scheme[touch] is applied to the future.
+resumed when @racket[touch] is applied to the future.
``Safe'' parallel execution of a future means that all operations
provided by the system must be able to enforce contracts and produce
results as documented. ``Safe'' does not preclude concurrent access to
mutable data that is visible in the program. For example, a
-computation in a future might use @scheme[set!] to modify a shared
+computation in a future might use @racket[set!] to modify a shared
variable, in which case concurrent assignment to the variable can be
visible in other futures and threads. Furthermore, guarantees about
the visibility of effects and ordering are determined by the operating
system and hardware---which rarely support, for example, the guarantee
-of sequential consistency that is provided for @scheme[thread]-based
+of sequential consistency that is provided for @racket[thread]-based
concurrency. At the same time, operations that seem obviously safe may
have a complex enough implementation internally that they cannot run
in parallel. See also @guidesecref["effective-futures"].
@@ -49,16 +49,16 @@ in parallel. See also @guidesecref["effective-futures"].
@defproc[(touch [f future?]) any]
)]{
- The @scheme[future] procedure returns a future value that
- encapsulates @scheme[thunk]. The @scheme[touch] function forces the
- evaluation of the @scheme[thunk] inside the given future, returning
- the values produced by @scheme[thunk]. After @scheme[touch] forces
- the evaluation of a @scheme[thunk], the resulting values are retained
- by the future descriptor in place of @scheme[thunk], and additional
- @scheme[touch]es of the future descriptor return those values.
+ The @racket[future] procedure returns a future value that
+ encapsulates @racket[thunk]. The @racket[touch] function forces the
+ evaluation of the @racket[thunk] inside the given future, returning
+ the values produced by @racket[thunk]. After @racket[touch] forces
+ the evaluation of a @racket[thunk], the resulting values are retained
+ by the future descriptor in place of @racket[thunk], and additional
+ @racket[touch]es of the future descriptor return those values.
- Between a call to @scheme[future] and @scheme[touch] for a given
- future, the given @scheme[thunk] may run speculatively in parallel to
+ Between a call to @racket[future] and @racket[touch] for a given
+ future, the given @racket[thunk] may run speculatively in parallel to
other computations, as described above.
@interaction[
@@ -69,8 +69,8 @@ in parallel. See also @guidesecref["effective-futures"].
@defproc[(future? [v any/c]) boolean?]{
- Returns @scheme[#t] if @scheme[v] is a future-descriptor value,
- @scheme[#f] otherwise.
+ Returns @racket[#t] if @racket[v] is a future-descriptor value,
+ @racket[#f] otherwise.
}
@defproc[(processor-count) exact-positive-integer?]{
diff --git a/collects/scribblings/reference/help.scrbl b/collects/scribblings/reference/help.scrbl
index bdd8bc56ab..61af750d31 100644
--- a/collects/scribblings/reference/help.scrbl
+++ b/collects/scribblings/reference/help.scrbl
@@ -67,8 +67,8 @@ introduces a binding without actually executing the
documentation, but cannot or do not want to run the providing module.
@schemeblock[
-(require racket/gui) (code:comment @#,t{does not work in @exec{mzscheme}})
-(require (for-label racket/gui)) (code:comment @#,t{ok in @exec{mzscheme}})
+(require racket/gui) (code:comment @#,t{does not work in @exec{racket}})
+(require (for-label racket/gui)) (code:comment @#,t{ok in @exec{racket}})
(help frame%)
]
diff --git a/collects/scribblings/reference/info.ss b/collects/scribblings/reference/info.rkt
similarity index 100%
rename from collects/scribblings/reference/info.ss
rename to collects/scribblings/reference/info.rkt
diff --git a/collects/scribblings/reference/init.scrbl b/collects/scribblings/reference/init.scrbl
index f03e410ef8..3c178388c2 100644
--- a/collects/scribblings/reference/init.scrbl
+++ b/collects/scribblings/reference/init.scrbl
@@ -5,14 +5,14 @@
@title{Init Libraries}
-@defmodule*/no-declare[(racket/init)]{The @schememodname[racket/init]
-library is the default start-up library for MzScheme. It re-exports
-the @schememodname[scheme], @schememodname[racket/enter] and
-@schememodname[racket/help] libraries, and it sets
-@scheme[current-print] to use @scheme[pretty-print].}
+@defmodule*/no-declare[(racket/init)]{The @racketmodname[racket/init]
+library is the default start-up library for Racket. It re-exports
+the @racketmodname[racket], @racketmodname[racket/enter] and
+@racketmodname[racket/help] libraries, and it sets
+@racket[current-print] to use @racket[pretty-print].}
@defmodule*/no-declare[(racket/gui/init)]{The
-@schememodname[racket/gui/init] library is the default start-up
-library for MrEd. It re-exports the @schememodname[racket/init] and
-@schememodname[racket/gui/base] libraries, and it sets
-@scheme[current-load] to use @scheme[text-editor-load-handler].}
+@racketmodname[racket/gui/init] library is the default start-up
+library for GRacket. It re-exports the @racketmodname[racket/init] and
+@racketmodname[racket/gui/base] libraries, and it sets
+@racket[current-load] to use @racket[text-editor-load-handler].}
diff --git a/collects/scribblings/reference/load-lang.scrbl b/collects/scribblings/reference/load-lang.scrbl
index 8dee2957d8..b2fdd0bbd9 100644
--- a/collects/scribblings/reference/load-lang.scrbl
+++ b/collects/scribblings/reference/load-lang.scrbl
@@ -1,30 +1,30 @@
#lang scribble/doc
@(require "mz.ss")
-@title[#:tag "load-lang"]{The @schememodname[racket/load] Language}
+@title[#:tag "load-lang"]{The @racketmodname[racket/load] Language}
@defmodulelang[racket/load]
-The @schememodname[racket/load] language supports traditional Scheme
-evaluation, where each top-level form in the module body is separately
-passed to @scheme[eval] in the same way as for @scheme[load].
+The @racketmodname[racket/load] language supports evaluation where
+each top-level form in the module body is separately passed to
+@racket[eval] in the same way as for @racket[load].
The namespace for evaluation shares the @tech{module registry} with
-the @schememodname[racket/load] module instance, but it has a separate
+the @racketmodname[racket/load] module instance, but it has a separate
top-level environment, and it is initialized with the bindings of
-@schememodname[scheme]. A single namespace is created for each
-instance of the @schememodname[racket/load] module (i.e., multiple
-modules using the @schememodname[racket/load] language share a
-namespace). The @scheme[racket/load] library exports only
-@schemeidfont{#%module-begin} and @schemeidfont{#%top-interaction}
+@racketmodname[racket]. A single namespace is created for each
+instance of the @racketmodname[racket/load] module (i.e., multiple
+modules using the @racketmodname[racket/load] language share a
+namespace). The @racket[racket/load] library exports only
+@racketidfont{#%module-begin} and @racketidfont{#%top-interaction}
forms that effectively swap in the evaluation namespace and call
-@scheme[eval].
+@racket[eval].
-For example, the body of a module using @scheme[racket/load] can
-include @scheme[module] forms, so that running the following module
-prints @schemeresultfont{5}:
+For example, the body of a module using @racket[racket/load] can
+include @racket[module] forms, so that running the following module
+prints @racketresultfont{5}:
-@schememod[
+@racketmod[
racket/load
(module m racket/base
@@ -38,22 +38,22 @@ racket/load
(require 'n)
]
-Definitions in a module using @scheme[racket/load] are evaluated in
-the current namespace, which means that @scheme[load] and
-@scheme[eval] can see the definitions. For example, running the
-following module prints @schemeresultfont{6}:
+Definitions in a module using @racket[racket/load] are evaluated in
+the current namespace, which means that @racket[load] and
+@racket[eval] can see the definitions. For example, running the
+following module prints @racketresultfont{6}:
-@schememod[
+@racketmod[
racket/load
(define x 6)
(display (eval 'x))
]
-Since all forms within a @schememodname[racket/load] module are
+Since all forms within a @racketmodname[racket/load] module are
evaluated in the top level, bindings cannot be exported from the
-module using @scheme[provide]. Similarly, since evaluation of the
+module using @racket[provide]. Similarly, since evaluation of the
module-body forms is inherently dynamic, compilation of the module
provides essentially no benefit. For these reasons, use
-@schememodname[racket/load] for interactive exploration of top-level
+@racketmodname[racket/load] for interactive exploration of top-level
forms only, and not for constructing larger programs.
diff --git a/collects/scribblings/reference/match-grammar.ss b/collects/scribblings/reference/match-grammar.rkt
similarity index 98%
rename from collects/scribblings/reference/match-grammar.ss
rename to collects/scribblings/reference/match-grammar.rkt
index f336c52fa9..bd91127d58 100644
--- a/collects/scribblings/reference/match-grammar.ss
+++ b/collects/scribblings/reference/match-grammar.rkt
@@ -18,6 +18,7 @@ pat ::= id @match anything, bind identifier
| (CONS pat pat) @match pair of pats
| (MCONS pat pat) @match mutable pair of pats
| (BOX pat) @match boxed pat
+ | (struct-id pat ...) @match struct-id instance
| (STRUCT struct-id (pat ...)) @match struct-id instance
| (REGEXP rx-expr) @match string
| (REGEXP rx-expr pat) @match string, result with pat
diff --git a/collects/scribblings/reference/match-parse.ss b/collects/scribblings/reference/match-parse.rkt
similarity index 100%
rename from collects/scribblings/reference/match-parse.ss
rename to collects/scribblings/reference/match-parse.rkt
diff --git a/collects/scribblings/reference/match.scrbl b/collects/scribblings/reference/match.scrbl
index c07c85cf1c..316b9cf90e 100644
--- a/collects/scribblings/reference/match.scrbl
+++ b/collects/scribblings/reference/match.scrbl
@@ -10,8 +10,8 @@
@guideintro["match"]{pattern matching}
-The @scheme[match] form and related forms support general pattern
-matching on Scheme values. See also @secref["regexp"] for information
+The @racket[match] form and related forms support general pattern
+matching on Racket values. See also @secref["regexp"] for information
on regular-expression matching on strings, bytes, and streams.
@note-lib[racket/match #:use-sources (racket/match)]
@@ -20,24 +20,24 @@ on regular-expression matching on strings, bytes, and streams.
([clause [pat expr ...+]
[pat (=> id) expr ...+]])]{
-Finds the first @scheme[pat] that matches the result of
-@scheme[val-expr], and evaluates the corresponding @scheme[expr]s with
-bindings introduced by @scheme[pat] (if any). The last @scheme[expr]
+Finds the first @racket[pat] that matches the result of
+@racket[val-expr], and evaluates the corresponding @racket[expr]s with
+bindings introduced by @racket[pat] (if any). The last @racket[expr]
in the matching clause is evaluated in tail position with respect to
-the @scheme[match] expression.
+the @racket[match] expression.
-The @scheme[clause]s are tried in order to find a match. If no
-@scheme[clause] matches, then the @exnraise[exn:misc:match?].
+The @racket[clause]s are tried in order to find a match. If no
+@racket[clause] matches, then the @exnraise[exn:misc:match?].
-An optional @scheme[(=> id)] between a @scheme[pat] and the
-@scheme[expr]s is bound to a @defterm{failure procedure} of zero
+An optional @racket[(=> id)] between a @racket[pat] and the
+@racket[expr]s is bound to a @defterm{failure procedure} of zero
arguments. If this procedure is invoked, it escapes back to the
pattern matching expression, and resumes the matching process as if
-the pattern had failed to match. The @scheme[expr]s must not mutate
+the pattern had failed to match. The @racket[expr]s must not mutate
the object being matched before calling the failure procedure,
otherwise the behavior of matching is unpredictable.
-The grammar of @scheme[pat] is as follows, where non-italicized
+The grammar of @racket[pat] is as follows, where non-italicized
identifiers are recognized symbolically (i.e., not by binding).
@|match-grammar|
@@ -46,16 +46,16 @@ In more detail, patterns match as follows:
@itemize[
- @item{@scheme[_id], excluding the reserved names @schemeidfont{_},
- @schemeidfont{...}, @schemeidfont{.._},
- @schemeidfont{..}@scheme[_k], and
- @schemeidfont{..}@scheme[_k] for non-negative integers
- @scheme[_k] --- matches anything, and binds @scheme[id] to the
- matching values. If an @scheme[_id] is used multiple times
+ @item{@racket[_id], excluding the reserved names @racketidfont{_},
+ @racketidfont{...}, @racketidfont{.._},
+ @racketidfont{..}@racket[_k], and
+ @racketidfont{..}@racket[_k] for non-negative integers
+ @racket[_k] --- matches anything, and binds @racket[id] to the
+ matching values. If an @racket[_id] is used multiple times
within a pattern, the corresponding matches must be the same
- according to @scheme[(match-equality-test)], except that
- instances of an @scheme[_id] in different @schemeidfont{or} and
- @schemeidfont{not} sub-patterns are independent.
+ according to @racket[(match-equality-test)], except that
+ instances of an @racket[_id] in different @racketidfont{or} and
+ @racketidfont{not} sub-patterns are independent.
@examples[
#:eval match-eval
@@ -67,7 +67,7 @@ In more detail, patterns match as follows:
[(list a b c) (list c b a)])
]}
- @item{@schemeidfont{_} --- matches anything, without binding any
+ @item{@racketidfont{_} --- matches anything, without binding any
identifiers.
@examples[
@@ -76,9 +76,9 @@ In more detail, patterns match as follows:
[(list _ _ a) a])
]}
- @item{@scheme[#t], @scheme[#f], @scheme[_string], @scheme[_bytes],
- @scheme[_number], @scheme[_char], or @scheme[(#,(schemeidfont
- "quote") _datum)] --- matches an @scheme[equal?] constant.
+ @item{@racket[#t], @racket[#f], @racket[_string], @racket[_bytes],
+ @racket[_number], @racket[_char], or @racket[(#,(racketidfont
+ "quote") _datum)] --- matches an @racket[equal?] constant.
@examples[
#:eval match-eval
@@ -87,17 +87,17 @@ In more detail, patterns match as follows:
["yes" #t])
]}
- @item{@scheme[(#,(schemeidfont "list") _lvp ...)] --- matches a list
- of elements. In the case of @scheme[(#,(schemeidfont "list")
+ @item{@racket[(#,(racketidfont "list") _lvp ...)] --- matches a list
+ of elements. In the case of @racket[(#,(racketidfont "list")
_pat ...)], the pattern matches a list with as many element as
- @scheme[_pat]s, and each element must match the corresponding
- @scheme[_pat]. In the more general case, each @scheme[_lvp]
+ @racket[_pat]s, and each element must match the corresponding
+ @racket[_pat]. In the more general case, each @racket[_lvp]
corresponds to a ``spliced'' list of greedy matches.
- For spliced lists, @schemeidfont{...} and @schemeidfont{___}
+ For spliced lists, @racketidfont{...} and @racketidfont{___}
are synonyms for zero or more matches. The
- @schemeidfont{..}@scheme[_k] and @schemeidfont{__}@scheme[_k]
- forms are also synonyms, specifying @scheme[_k] or more
+ @racketidfont{..}@racket[_k] and @racketidfont{__}@racket[_k]
+ forms are also synonyms, specifying @racket[_k] or more
matches. Pattern variables that precede these splicing
operators are bound to lists of matching forms.
@@ -121,11 +121,11 @@ In more detail, patterns match as follows:
[_ 'else])
]}
- @item{@scheme[(#,(schemeidfont "list-rest") _lvp ... _pat)] ---
- similar to a @schemeidfont{list} pattern, but the final
- @scheme[_pat] matches the ``rest'' of the list after the last
- @scheme[_lvp]. In fact, the matched value can be a non-list
- chain of pairs (i.e., an ``improper list'') if @scheme[_pat]
+ @item{@racket[(#,(racketidfont "list-rest") _lvp ... _pat)] ---
+ similar to a @racketidfont{list} pattern, but the final
+ @racket[_pat] matches the ``rest'' of the list after the last
+ @racket[_lvp]. In fact, the matched value can be a non-list
+ chain of pairs (i.e., an ``improper list'') if @racket[_pat]
matches non-list values.
@examples[
@@ -136,9 +136,9 @@ In more detail, patterns match as follows:
[(list-rest a ... d) (list a d)])
]}
- @item{@scheme[(#,(schemeidfont "list-no-order") _pat ...)] ---
- similar to a @schemeidfont{list} pattern, but the elements to
- match each @scheme[_pat] can appear in the list in any order.
+ @item{@racket[(#,(racketidfont "list-no-order") _pat ...)] ---
+ similar to a @racketidfont{list} pattern, but the elements to
+ match each @racket[_pat] can appear in the list in any order.
@examples[
#:eval match-eval
@@ -146,8 +146,8 @@ In more detail, patterns match as follows:
[(list-no-order 3 2 x) x])
]}
- @item{@scheme[(#,(schemeidfont "list-no-order") _pat ... _lvp)] ---
- generalizes @schemeidfont{list-no-order} to allow a pattern
+ @item{@racket[(#,(racketidfont "list-no-order") _pat ... _lvp)] ---
+ generalizes @racketidfont{list-no-order} to allow a pattern
that matches multiple list elements that are interspersed in
any order with matches for the other patterns.
@@ -157,8 +157,8 @@ In more detail, patterns match as follows:
[(list-no-order 6 2 y ...) y])
]}
- @item{@scheme[(#,(schemeidfont "vector") _lvp ...)] --- like a
- @schemeidfont{list} pattern, but matching a vector.
+ @item{@racket[(#,(racketidfont "vector") _lvp ...)] --- like a
+ @racketidfont{list} pattern, but matching a vector.
@examples[
#:eval match-eval
@@ -166,8 +166,8 @@ In more detail, patterns match as follows:
[(vector 1 (list a) ..3 5) a])
]}
- @item{@scheme[(#,(schemeidfont "hash-table") (_pat _pat) ...)] ---
- similar to @schemeidfont{list-no-order}, but matching against
+ @item{@racket[(#,(racketidfont "hash-table") (_pat _pat) ...)] ---
+ similar to @racketidfont{list-no-order}, but matching against
hash table's key--value pairs.
@examples[
@@ -176,8 +176,8 @@ In more detail, patterns match as follows:
[(hash-table ("b" b) ("a" a)) (list b a)])
]}
- @item{@scheme[(#,(schemeidfont "hash-table") (_pat _pat) ...+ _ooo)]
- --- Generalizes @schemeidfont{hash-table} to support a final
+ @item{@racket[(#,(racketidfont "hash-table") (_pat _pat) ...+ _ooo)]
+ --- Generalizes @racketidfont{hash-table} to support a final
repeating pattern.
@examples[
@@ -186,7 +186,7 @@ In more detail, patterns match as follows:
[(hash-table (key val) ...) key])
]}
- @item{@scheme[(#,(schemeidfont "cons") _pat1 _pat2)] --- matches a pair value.
+ @item{@racket[(#,(racketidfont "cons") _pat1 _pat2)] --- matches a pair value.
@examples[
#:eval match-eval
@@ -194,7 +194,7 @@ In more detail, patterns match as follows:
[(cons a b) (+ a b)])
]}
- @item{@scheme[(#,(schemeidfont "mcons") _pat1 _pat2)] --- matches a mutable pair value.
+ @item{@racket[(#,(racketidfont "mcons") _pat1 _pat2)] --- matches a mutable pair value.
@examples[
#:eval match-eval
@@ -203,7 +203,7 @@ In more detail, patterns match as follows:
[(mcons a b) 'mutable])
]}
- @item{@scheme[(#,(schemeidfont "box") _pat)] --- matches a boxed value.
+ @item{@racket[(#,(racketidfont "box") _pat)] --- matches a boxed value.
@examples[
#:eval match-eval
@@ -211,37 +211,38 @@ In more detail, patterns match as follows:
[(box a) a])
]}
- @item{@scheme[(#,(schemeidfont "struct") _struct-id (_pat ...))] ---
+ @item{@racket[(_struct-id _pat ...)] or
+ @racket[(#,(racketidfont "struct") _struct-id (_pat ...))] ---
matches an instance of a structure type names
- @scheme[_struct-id], where each field in the instance matches
- the corresponding @scheme[_pat].
+ @racket[_struct-id], where each field in the instance matches
+ the corresponding @racket[_pat]. See also @scheme[struct*].
- Usually, @scheme[_struct-id] is defined with
- @scheme[define-struct]. More generally, @scheme[_struct-id]
+ Usually, @racket[_struct-id] is defined with
+ @racket[struct]. More generally, @racket[_struct-id]
must be bound to expansion-time information for a structure
type (see @secref["structinfo"]), where the information
includes at least a predicate binding and field accessor
bindings corresponding to the number of field
- @scheme[_pat]s. In particular, a module import or a
- @scheme[unit] import with a signature containing a
- @scheme[struct] declaration can provide the structure type
+ @racket[_pat]s. In particular, a module import or a
+ @racket[unit] import with a signature containing a
+ @racket[struct] declaration can provide the structure type
information.
@defexamples[
#:eval match-eval
(define-struct tree (val left right))
(match (make-tree 0 (make-tree 1 #f #f) #f)
- [(struct tree (a (struct tree (b _ _)) _)) (list a b)])
+ [(tree a (tree b _ _) _) (list a b)])
]}
- @item{@scheme[(#,(schemeidfont "struct") _struct-id _)] ---
- matches any instance of @scheme[_struct-id], without regard to
+ @item{@racket[(#,(racketidfont "struct") _struct-id _)] ---
+ matches any instance of @racket[_struct-id], without regard to
contents of the fields of the instance.
}
- @item{@scheme[(#,(schemeidfont "regexp") _rx-expr)] --- matches a
+ @item{@racket[(#,(racketidfont "regexp") _rx-expr)] --- matches a
string that matches the regexp pattern produced by
- @scheme[_rx-expr]; see @secref["regexp"] for more information
+ @racket[_rx-expr]; see @secref["regexp"] for more information
about regexps.
@examples[
@@ -254,10 +255,10 @@ In more detail, patterns match as follows:
[_ 'no])
]}
- @item{@scheme[(#,(schemeidfont "regexp") _rx-expr _pat)] --- extends
- the @schemeidfont{regexp} form to further constrain the match
- where the result of @scheme[regexp-match] is matched against
- @scheme[_pat].
+ @item{@racket[(#,(racketidfont "regexp") _rx-expr _pat)] --- extends
+ the @racketidfont{regexp} form to further constrain the match
+ where the result of @racket[regexp-match] is matched against
+ @racket[_pat].
@examples[
#:eval match-eval
@@ -269,16 +270,16 @@ In more detail, patterns match as follows:
[_ 'no])
]}
- @item{@scheme[(#,(schemeidfont "pregexp") _rx-expr)] or
- @scheme[(#,(schemeidfont "regexp") _rx-expr _pat)] --- like the
- @schemeidfont{regexp} patterns, but if @scheme[_rx-expr]
+ @item{@racket[(#,(racketidfont "pregexp") _rx-expr)] or
+ @racket[(#,(racketidfont "regexp") _rx-expr _pat)] --- like the
+ @racketidfont{regexp} patterns, but if @racket[_rx-expr]
produces a string, it is converted to a pattern using
- @scheme[pregexp] instead of @scheme[regexp].}
+ @racket[pregexp] instead of @racket[regexp].}
- @item{@scheme[(#,(schemeidfont "and") _pat ...)] --- matches if all
- of the @scheme[_pat]s match. This pattern is often used as
- @scheme[(#,(schemeidfont "and") _id _pat)] to bind @scheme[_id]
- to the entire value that matches @scheme[pat].
+ @item{@racket[(#,(racketidfont "and") _pat ...)] --- matches if all
+ of the @racket[_pat]s match. This pattern is often used as
+ @racket[(#,(racketidfont "and") _id _pat)] to bind @racket[_id]
+ to the entire value that matches @racket[pat].
@examples[
#:eval match-eval
@@ -286,12 +287,12 @@ In more detail, patterns match as follows:
[(list _ (and a (list _ ...)) _) a])
]}
- @item{@scheme[(#,(schemeidfont "or") _pat ...)] --- matches if any of
- the @scheme[_pat]s match. @bold{Beware}: the result expression
- can be duplicated once for each @scheme[_pat]! Identifiers in
- @scheme[_pat] are bound only in the corresponding copy of the
+ @item{@racket[(#,(racketidfont "or") _pat ...)] --- matches if any of
+ the @racket[_pat]s match. @bold{Beware}: the result expression
+ can be duplicated once for each @racket[_pat]! Identifiers in
+ @racket[_pat] are bound only in the corresponding copy of the
result expression; in a module context, if the result
- expression refers to a binding, then that all @scheme[_pat]s
+ expression refers to a binding, then that all @racket[_pat]s
must include the binding.
@examples[
@@ -300,8 +301,8 @@ In more detail, patterns match as follows:
[(or (list a 1) (list a 2)) a])
]}
- @item{@scheme[(#,(schemeidfont "not") _pat ...)] --- matches when
- none of the @scheme[_pat]s match, and binds no identifiers.
+ @item{@racket[(#,(racketidfont "not") _pat ...)] --- matches when
+ none of the @racket[_pat]s match, and binds no identifiers.
@examples[
#:eval match-eval
@@ -313,9 +314,9 @@ In more detail, patterns match as follows:
[_ 'no])
]}
- @item{@scheme[(#,(schemeidfont "app") _expr _pat)] --- applies
- @scheme[_expr] to the value to be matched; the result of the
- application is matched againt @scheme[_pat].
+ @item{@racket[(#,(racketidfont "app") _expr _pat)] --- applies
+ @racket[_expr] to the value to be matched; the result of the
+ application is matched againt @racket[_pat].
@examples[
#:eval match-eval
@@ -323,11 +324,11 @@ In more detail, patterns match as follows:
[(app length 2) 'yes])
]}
- @item{@scheme[(#,(schemeidfont "?") _expr _pat ...)] --- applies
- @scheme[_expr] to the value to be matched, and checks whether
- the result is a true value; the additional @scheme[_pat]s must
- also match (i.e., @schemeidfont{?} combines a predicate
- application and an @schemeidfont{and} pattern).
+ @item{@racket[(#,(racketidfont "?") _expr _pat ...)] --- applies
+ @racket[_expr] to the value to be matched, and checks whether
+ the result is a true value; the additional @racket[_pat]s must
+ also match (i.e., @racketidfont{?} combines a predicate
+ application and an @racketidfont{and} pattern).
@examples[
#:eval match-eval
@@ -335,10 +336,10 @@ In more detail, patterns match as follows:
[(list (? odd?) ...) 'yes])
]}
- @item{@scheme[(#,(schemeidfont "quasiquote") _qp)] --- introduces a
+ @item{@racket[(#,(racketidfont "quasiquote") _qp)] --- introduces a
quasipattern, in which identifiers match symbols. Like the
- @scheme[quasiquote] expression form, @schemeidfont{unquote}
- and @schemeidfont{unquote-splicing} escape back to normal
+ @racket[quasiquote] expression form, @racketidfont{unquote}
+ and @racketidfont{unquote-splicing} escape back to normal
patterns.
@examples[
@@ -347,8 +348,8 @@ In more detail, patterns match as follows:
[`(1 ,a ,(? odd? b)) (list a b)])
]}
- @item{@scheme[_derived-pattern] --- matches a pattern defined by a
- macro extension via @scheme[define-match-expander].}
+ @item{@racket[_derived-pattern] --- matches a pattern defined by a
+ macro extension via @racket[define-match-expander].}
]}
@@ -358,20 +359,20 @@ In more detail, patterns match as follows:
@defform[(match-lambda clause ...)]{
-Equivalent to @scheme[(lambda (id) (match id clause ...))].
+Equivalent to @racket[(lambda (id) (match id clause ...))].
}
@defform[(match-lambda* clause ...)]{
-Equivalent to @scheme[(lambda lst (match lst clause ...))].
+Equivalent to @racket[(lambda lst (match lst clause ...))].
}
@defform[(match-let ([pat expr] ...) body ...+)]{
-Generalizes @scheme[let] to support pattern bindings. Each
-@scheme[expr] is matched against its corresponding @scheme[pat] (the
-match must succeed), and the bindings that @scheme[pat] introduces are
-visible in the @scheme[body]s.
+Generalizes @racket[let] to support pattern bindings. Each
+@racket[expr] is matched against its corresponding @racket[pat] (the
+match must succeed), and the bindings that @racket[pat] introduces are
+visible in the @racket[body]s.
@examples[
#:eval match-eval
@@ -382,9 +383,9 @@ visible in the @scheme[body]s.
@defform[(match-let* ([pat expr] ...) body ...+)]{
-Like @scheme[match-let], but generalizes @scheme[let*], so that the
-bindings of each @scheme[pat] are available in each subsequent
-@scheme[expr].
+Like @racket[match-let], but generalizes @racket[let*], so that the
+bindings of each @racket[pat] are available in each subsequent
+@racket[expr].
@examples[
#:eval match-eval
@@ -395,13 +396,13 @@ bindings of each @scheme[pat] are available in each subsequent
@defform[(match-letrec ([pat expr] ...) body ...+)]{
-Like @scheme[match-let], but generalizes @scheme[letrec].}
+Like @racket[match-let], but generalizes @racket[letrec].}
@defform[(match-define pat expr)]{
-Defines the names bound by @scheme[pat] to the values produced by
-matching against the result of @scheme[expr].
+Defines the names bound by @racket[pat] to the values produced by
+matching against the result of @racket[expr].
@examples[
#:eval match-eval
@@ -418,39 +419,41 @@ A predicate for the exception raised by in the case of a match failure.
@; ----------------------------------------
-@section{Extending @scheme[match]}
+@section{Extending @racket[match]}
@defform*[((define-match-expander id proc-expr)
(define-match-expander id proc-expr proc-expr))]{
-Binds @scheme[id] to a @deftech{match expander}.
+Binds @racket[id] to a @deftech{match expander}.
-The first @scheme[proc-expr] subexpression must evaluate to a
- transformer that produces a @scheme[_pat] for @scheme[match].
- Whenever @scheme[id] appears as the beginning of a pattern, this
+The first @racket[proc-expr] subexpression must evaluate to a
+ transformer that produces a @racket[_pat] for @racket[match].
+ Whenever @racket[id] appears as the beginning of a pattern, this
transformer is given, at expansion time, a syntax object
- corresponding to the entire pattern (including @scheme[id]). The
+ corresponding to the entire pattern (including @racket[id]). The
pattern is the replaced with the result of the transformer.
-A transformer produced by a second @scheme[proc-expr] subexpression is
- used when @scheme[id] is used in an expression context. Using the
- second @scheme[proc-expr], @scheme[id] can be given meaning both
+A transformer produced by a second @racket[proc-expr] subexpression is
+ used when @racket[id] is used in an expression context. Using the
+ second @racket[proc-expr], @racket[id] can be given meaning both
inside and outside patterns.}
@defparam[match-equality-test comp-proc (any/c any/c . -> . any)]{
A parameter that determines the comparison procedure used to check
whether multiple uses of an identifier match the ``same'' value. The
-default is @scheme[equal?].}
+default is @racket[equal?].}
@; ----------------------------------------------------------------------
@section{Library Extensions}
@defform[(struct* struct-id ([field pat] ...))]{
- Matches an instance of a structure type named @scheme[struct-id], where the field @scheme[field] in the instance matches the corresponding @scheme[pat].
+ A @scheme[match] pattern form that matches an instance of a structure
+ type named @racket[struct-id], where the field @racket[field] in the
+ instance matches the corresponding @racket[pat].
- Any field of @scheme[struct-id] may be omitted and they may occur in any order.
+ Any field of @racket[struct-id] may be omitted and they may occur in any order.
@defexamples[
#:eval match-eval
diff --git a/collects/scribblings/reference/memory.scrbl b/collects/scribblings/reference/memory.scrbl
index b2fda596bd..98cbe756c4 100644
--- a/collects/scribblings/reference/memory.scrbl
+++ b/collects/scribblings/reference/memory.scrbl
@@ -11,28 +11,28 @@ A @deftech{weak box} is similar to a normal box (see
@secref["boxes"]), but when the garbage collector (see
@secref["gc-model"]) can prove that the content value of a weak box is
only reachable via weak references, the content of the weak box is
-replaced with @scheme[#f]. A @defterm{@tech{weak reference}} is a
+replaced with @racket[#f]. A @defterm{@tech{weak reference}} is a
reference through a weak box, through a key reference in a weak hash
table (see @secref["hashtables"]), through a value in an ephemeron
-where the value can be replaced by @scheme[#f] (see
+where the value can be replaced by @racket[#f] (see
@secref["ephemerons"]), or through a custodian (see
@secref["custodians"]).
@defproc[(make-weak-box [v any/c]) weak-box?]{
-Returns a new weak box that initially contains @scheme[v].}
+Returns a new weak box that initially contains @racket[v].}
@defproc[(weak-box-value [weak-box weak-box?]) any]{
-Returns the value contained in @scheme[weak-box]. If the garbage
+Returns the value contained in @racket[weak-box]. If the garbage
collector has proven that the previous content value of
-@scheme[weak-box] was reachable only through a weak reference, then
-@scheme[#f] is returned.}
+@racket[weak-box] was reachable only through a weak reference, then
+@racket[#f] is returned.}
@defproc[(weak-box? [v any/c]) boolean?]{
-Returns @scheme[#t] if @scheme[v] is a weak box, @scheme[#f] otherwise.}
+Returns @racket[#t] if @racket[v] is a weak box, @racket[#f] otherwise.}
@;------------------------------------------------------------------------
@section[#:tag "ephemerons"]{Ephemerons}
@@ -44,7 +44,7 @@ An @deftech{ephemeron} is similar to a weak box (see
@item{an ephemeron contains a key and a value; the value can be
extracted from the ephemeron, but the value is replaced
- by @scheme[#f] when the automatic memory manager can prove that
+ by @racket[#f] when the automatic memory manager can prove that
either the ephemeron or the key is reachable only through weak
references (see @secref["weakbox"]); and}
@@ -65,20 +65,20 @@ key.
@defproc[(make-ephemeron [key any/c][v any/c]) ephemeron?]{
-Returns a new @tech{ephemeron} whose key is @scheme[key] and whose
-value is initially @scheme[v].}
+Returns a new @tech{ephemeron} whose key is @racket[key] and whose
+value is initially @racket[v].}
@defproc[(ephemeron-value [ephemeron ephemeron?]) any]{
-Returns the value contained in @scheme[ephemeron]. If the garbage
-collector has proven that the key for @scheme[ephemeron] is only
-weakly reachable, then the result is @scheme[#f].}
+Returns the value contained in @racket[ephemeron]. If the garbage
+collector has proven that the key for @racket[ephemeron] is only
+weakly reachable, then the result is @racket[#f].}
@defproc[(ephemeron? [v any/c]) boolean?]{
-Returns @scheme[#t] if @scheme[v] is an @tech{ephemeron}, @scheme[#f]
+Returns @racket[#t] if @racket[v] is an @tech{ephemeron}, @racket[#f]
otherwise.}
@;------------------------------------------------------------------------
@@ -94,7 +94,7 @@ executors. A @tech{will} is useful for triggering clean-up actions on
data associated with an unreachable value, such as closing a port
embedded in an object when the object is no longer used.
-Calling the @scheme[will-execute] or @scheme[will-try-execute]
+Calling the @racket[will-execute] or @racket[will-try-execute]
procedure executes a will that is ready in the specified will
executor. Wills are not executed automatically, because certain
programs need control to avoid race conditions. However, a program can
@@ -113,7 +113,7 @@ the values are reachable from each other.
A will executor's register is held non-weakly until after the
corresponding will procedure is executed. Thus, if the content value
of a weak box (see @secref["weakbox"]) is registered with a will
-executor, the weak box's content is not changed to @scheme[#f] until
+executor, the weak box's content is not changed to @racket[#f] until
all wills have been executed for the value and the value has been
proven again reachable through only weak references.
@@ -125,34 +125,34 @@ Returns a new will executor with no managed values.}
@defproc[(will-executor? [v any/c]) boolean?]{
-Returns @scheme[#t] if @scheme[v] is a will executor, @scheme[#f]
+Returns @racket[#t] if @racket[v] is a will executor, @racket[#f]
otherwise.}
@defproc[(will-register [executor will-executor?][v any/c][proc (any/c . -> . any)])
void?]{
-Registers the value @scheme[v] with the will procedure @scheme[proc]
-in the will executor @scheme[executor]. When @scheme[v] is proven
-unreachable, then the procedure @scheme[proc] is ready to be called
-with @scheme[v] as its argument via @scheme[will-execute] or
-@scheme[will-try-execute]. The @scheme[proc] argument is strongly
+Registers the value @racket[v] with the will procedure @racket[proc]
+in the will executor @racket[executor]. When @racket[v] is proven
+unreachable, then the procedure @racket[proc] is ready to be called
+with @racket[v] as its argument via @racket[will-execute] or
+@racket[will-try-execute]. The @racket[proc] argument is strongly
referenced until the will procedure is executed.}
@defproc[(will-execute [executor will-executor?]) any]{
Invokes the will procedure for a single ``unreachable'' value
-registered with the executor @scheme[executable]. The values returned
-by the will procedure are the result of the @scheme[will-execute]
+registered with the executor @racket[executable]. The values returned
+by the will procedure are the result of the @racket[will-execute]
call. If no will is ready for immediate execution,
-@scheme[will-execute] blocks until one is ready.}
+@racket[will-execute] blocks until one is ready.}
@defproc[(will-try-execute [executor any/c]) any]{
-Like @scheme[will-execute] if a will is ready for immediate
-execution. Otherwise, @scheme[#f] is returned.}
+Like @racket[will-execute] if a will is ready for immediate
+execution. Otherwise, @racket[#f] is returned.}
@;------------------------------------------------------------------------
@section[#:tag "garbagecollection"]{Garbage Collection}
@@ -163,22 +163,22 @@ Forces an immediate garbage collection. Some effectively unreachable
data may remain uncollected, because the collector cannot prove that
it is unreachable.
-The @scheme[collect-garbage] procedure provides some control over the
+The @racket[collect-garbage] procedure provides some control over the
timing of collections, but garbage will obviously be collected even if
this procedure is never called.}
@defproc[(current-memory-use [cust custodian? #f]) exact-nonnegative-integer?]{
Returns an estimate of the number of bytes of memory occupied by
-reachable data from @scheme[cust]. (The estimate is calculated
+reachable data from @racket[cust]. (The estimate is calculated
@italic{without} performing an immediate garbage collection;
performing a collection generally decreases the number returned by
-@scheme[current-memory-use].) If @scheme[cust] is not provided, the
+@racket[current-memory-use].) If @racket[cust] is not provided, the
estimate is a total reachable from any custodians.
-When PLT Scheme is compiled without support for memory accounting, the
+When Racket is compiled without support for memory accounting, the
estimate is the same (i.e., all memory) for any individual custodian;
-see also @scheme[custodian-memory-accounting-available?].}
+see also @racket[custodian-memory-accounting-available?].}
@defproc[(dump-memory-stats) any]{
diff --git a/collects/scribblings/reference/mpairs.scrbl b/collects/scribblings/reference/mpairs.scrbl
index ccd5631f43..3ccfefbce3 100644
--- a/collects/scribblings/reference/mpairs.scrbl
+++ b/collects/scribblings/reference/mpairs.scrbl
@@ -1,12 +1,12 @@
#lang scribble/doc
@(require "mz.ss"
- scribble/scheme
+ scribble/racket
(for-label racket/mpair))
@title[#:tag "mpairs"]{Mutable Pairs and Lists}
-A @deftech{mutable pair} is like a pair created by @scheme[cons], but
-it supports @scheme[set-mcar!] and @scheme[set-mcdr!] mutation
+A @deftech{mutable pair} is like a pair created by @racket[cons], but
+it supports @racket[set-mcar!] and @racket[set-mcdr!] mutation
operations to change the parts of the mutable pair (like traditional Lisp and
Scheme pairs).
@@ -23,31 +23,31 @@ always better choices.
@; ----------------------------------------
@section{Mutable Pair Constructors and Selectors}
-@defproc[(mpair? [v any/c]) boolean?]{Returns @scheme[#t] if @scheme[v] is
-a @tech{mutable pair}, @scheme[#f] otherwise.}
+@defproc[(mpair? [v any/c]) boolean?]{Returns @racket[#t] if @racket[v] is
+a @tech{mutable pair}, @racket[#f] otherwise.}
@defproc[(mcons [a any/c] [d any/c]) pair?]{Returns a newly allocated
@tech{mutable pair} whose first
-element is @scheme[a] and second element is @scheme[d].}
+element is @racket[a] and second element is @racket[d].}
@defproc[(mcar [p mpair?]) any/c]{Returns the first element of the
-@tech{mutable pair} @scheme[p].}
+@tech{mutable pair} @racket[p].}
@defproc[(mcdr [p mpair?]) any/c]{Returns the second element of the
-@tech{mutable pair} @scheme[p].}
+@tech{mutable pair} @racket[p].}
@defproc[(set-mcar! [p mpair?] [v any/v])
void?]{
-Changes the @tech{mutable pair} @scheme[p] so that its first element is
-@scheme[v].}
+Changes the @tech{mutable pair} @racket[p] so that its first element is
+@racket[v].}
@defproc[(set-mcdr! [p mpair?] [v any/v])
void?]{
-Changes the @tech{mutable pair} @scheme[p] so that its second element is
-@scheme[v].}
+Changes the @tech{mutable pair} @racket[p] so that its second element is
+@racket[v].}
@; ----------------------------------------
@section{Mutable List Functions}
@@ -58,127 +58,127 @@ For functions described in this section, contracts are not directly
enforced. In particular, when a @tech{mutable list} is expected,
supplying any other kind of value (or mutating a value that starts as
a @tech{mutable list}) tends to produce an exception from
-@scheme[mcar] or @scheme[mcdr].
+@racket[mcar] or @racket[mcdr].
-@defproc[(mlist? [v any/c]) boolean?]{Returns @scheme[#t] if
- @scheme[v] is a @tech{mutable list}: either the empty list, or a
+@defproc[(mlist? [v any/c]) boolean?]{Returns @racket[#t] if
+ @racket[v] is a @tech{mutable list}: either the empty list, or a
@tech{mutable pair} whose second element is a @tech{mutable list}.}
@defproc[(mlist [v any/c] ...) mlist?]{Returns a newly allocated
-@tech{mutable list} containing the @scheme[v]s as its elements.}
+@tech{mutable list} containing the @racket[v]s as its elements.}
@defproc[(list->mlist [lst list?]) mlist?]{
Returns a newly allocated @tech{mutable list} with the same elements as
-@scheme[lst].}
+@racket[lst].}
@defproc[(mlist->list [mlst mlist?]) list?]{
Returns a newly allocated @tech{mutable list} with the same elements as
-@scheme[nlst].}
+@racket[nlst].}
@defproc[(mlength [mlst mlist?])
exact-nonnegative-integer?]{
-Returns the number of elements in @scheme[mlst].}
+Returns the number of elements in @racket[mlst].}
@defproc[(mlist-ref [mlst mlist?][pos exact-nonnegative-integer?])
any/c]{
-Like @scheme[list-ref], but for @tech{mutable lists}.}
+Like @racket[list-ref], but for @tech{mutable lists}.}
@defproc[(mlist-tail [mlst mlist?][pos exact-nonnegative-integer?])
any/c]{
-Like @scheme[list-tail], but for @tech{mutable lists}.}
+Like @racket[list-tail], but for @tech{mutable lists}.}
@defproc*[([(mappend [mlst mlist?] ...) mlist?]
[(mappend [mlst mlist?] ... [v any/c]) any/c])]{
-Like @scheme[append], but for @tech{mutable lists}.}
+Like @racket[append], but for @tech{mutable lists}.}
@defproc*[([(mappend! [mlst mlist?] ...) mlist?]
[(mappend! [mlst mlist?] ... [v any/c]) any/c])]{
-The @scheme[mappend!] procedure appends the given @tech{mutable lists} by mutating
-the tail of each to refer to the next, using @scheme[set-mcdr!]. Empty
+The @racket[mappend!] procedure appends the given @tech{mutable lists} by mutating
+the tail of each to refer to the next, using @racket[set-mcdr!]. Empty
lists are dropped; in particular, the result of calling
-@scheme[mappend!] with one or more empty lists is the same as the
+@racket[mappend!] with one or more empty lists is the same as the
result of the call with the empty lists removed from the set of
arguments.}
@defproc[(mreverse [mlst mlist?]) mlist?]{
-Like @scheme[reverse], but for @tech{mutable lists}.}
+Like @racket[reverse], but for @tech{mutable lists}.}
@defproc[(mreverse! [mlst mlist?]) mlist?]{
-Like @scheme[mreverse], but destructively reverses the
+Like @racket[mreverse], but destructively reverses the
@tech{mutable list} by using
-all of the mutable pairs in @scheme[mlst] and changing them with
-@scheme[set-mcdr!].}
+all of the mutable pairs in @racket[mlst] and changing them with
+@racket[set-mcdr!].}
@defproc[(mmap [proc procedure?] [mlst mlist?] ...+)
mlist?]{
-Like @scheme[map], but for @tech{mutable lists}.}
+Like @racket[map], but for @tech{mutable lists}.}
@defproc[(mfor-each [proc procedure?] [mlst mlist?] ...+)
void?]{
-Like @scheme[for-each], but for @tech{mutable lists}.}
+Like @racket[for-each], but for @tech{mutable lists}.}
@defproc[(mmember [v any/c] [mlst mlist?])
(or/c mlist? #f)]{
-Like @scheme[member], but for @tech{mutable lists}.}
+Like @racket[member], but for @tech{mutable lists}.}
@defproc[(mmemv [v any/c] [mlst mlist?])
(or/c mlist? #f)]{
-Like @scheme[memv], but for @tech{mutable lists}.}
+Like @racket[memv], but for @tech{mutable lists}.}
@defproc[(mmemq [v any/c] [mlst mlist?])
(or/c list? #f)]{
-Like @scheme[memq], but for @tech{mutable lists}.}
+Like @racket[memq], but for @tech{mutable lists}.}
@defproc[(massoc [v any/c] [mlst (mlistof mpair?)])
(or/c mpair? #f)]{
-Like @scheme[assoc], but for @tech{mutable lists} of @tech{mutable pairs}.}
+Like @racket[assoc], but for @tech{mutable lists} of @tech{mutable pairs}.}
@defproc[(massv [v any/c] [mlst (mlistof mpair?)])
(or/c mpair? #f)]{
-Like @scheme[assv], but for @tech{mutable lists} of @tech{mutable pairs}.}
+Like @racket[assv], but for @tech{mutable lists} of @tech{mutable pairs}.}
@defproc[(massq [v any/c] [mlst (mlistof mpair?)])
(or/c mpair? #f)]{
-Like @scheme[assq], but for @tech{mutable lists} of @tech{mutable pairs}.}
+Like @racket[assq], but for @tech{mutable lists} of @tech{mutable pairs}.}
@defproc[(mlistof [pred (any/c . -> . any/c)])
(any/c . -> . boolean?)]{
-Returns a procedure that returns @scheme[#t] when given a @tech{mutable list}
-for which @scheme[pred] returns a true value for all elements.}
+Returns a procedure that returns @racket[#t] when given a @tech{mutable list}
+for which @racket[pred] returns a true value for all elements.}
diff --git a/collects/scribblings/reference/mz.ss b/collects/scribblings/reference/mz.rkt
similarity index 98%
rename from collects/scribblings/reference/mz.ss
rename to collects/scribblings/reference/mz.rkt
index f3114f5d3c..9d33dcd32c 100644
--- a/collects/scribblings/reference/mz.ss
+++ b/collects/scribblings/reference/mz.rkt
@@ -58,7 +58,7 @@
" and "
(schememodname racket/init)
" libraries, which means that they are available when "
- (exec "racket") " is started with no command-line arguments."
+ " the Racket executable is started with no command-line arguments."
" They are not provided by " (schememodname racket/base)
" or " (schememodname racket) "."
. more)))]
diff --git a/collects/scribblings/reference/networking.scrbl b/collects/scribblings/reference/networking.scrbl
index 87cfdcd203..9a33da16eb 100644
--- a/collects/scribblings/reference/networking.scrbl
+++ b/collects/scribblings/reference/networking.scrbl
@@ -21,45 +21,45 @@ For information about TCP in general, see @italic{TCP/IP Illustrated,
tcp-listener?]{
Creates a ``listening'' server on the local machine at the port number
-specified by @scheme[port-no]. If @scheme[port-no] is 0 the socket binds
+specified by @racket[port-no]. If @racket[port-no] is 0 the socket binds
to an ephemeral port, which can be determined by calling
-@scheme[tcp-addresses]. The @scheme[max-allow-wait] argument
+@racket[tcp-addresses]. The @racket[max-allow-wait] argument
determines the maximum number of client connections that can be
-waiting for acceptance. (When @scheme[max-allow-wait] clients are
+waiting for acceptance. (When @racket[max-allow-wait] clients are
waiting acceptance, no new client connections can be made.)
-If the @scheme[reuse?] argument is true, then @scheme[tcp-listen] will
+If the @racket[reuse?] argument is true, then @racket[tcp-listen] will
create a listener even if the port is involved in a @tt{TIME_WAIT}
-state. Such a use of @scheme[reuse?] defeats certain guarantees of the
+state. Such a use of @racket[reuse?] defeats certain guarantees of the
TCP protocol; see Stevens's book for details. Furthermore, on many
-modern platforms, a true value for @scheme[reuse?] overrides
+modern platforms, a true value for @racket[reuse?] overrides
@tt{TIME_WAIT} only if the listener was previously created with a true
-value for @scheme[reuse?].
+value for @racket[reuse?].
-If @scheme[hostname] is @scheme[#f] (the default), then the listener
+If @racket[hostname] is @racket[#f] (the default), then the listener
accepts connections to all of the listening machine's addresses.
Otherwise, the listener accepts connections only at the interface(s)
associated with the given hostname. For example, providing
-@scheme["127.0.0.1"] as @scheme[hostname] creates a listener that
-accepts only connections to @scheme["127.0.0.1"] (the loopback
+@racket["127.0.0.1"] as @racket[hostname] creates a listener that
+accepts only connections to @racket["127.0.0.1"] (the loopback
interface) from the local machine.
-(Scheme implements a listener with multiple sockets, if necessary, to
+(Racket implements a listener with multiple sockets, if necessary, to
accomodate multiple addresses with different protocol families. Under
-Linux, if @scheme[hostname] maps to both IPv4 and IPv6 addresses, then
+Linux, if @racket[hostname] maps to both IPv4 and IPv6 addresses, then
the behavior depends on whether IPv6 is supported and IPv6 sockets can
be configured to listen to only IPv6 connections: if IPv6 is not
supported or IPv6 sockets are not configurable, then the IPv6
addresses are ignored; otherwise, each IPv6 listener accepts only IPv6
connections.)
-The return value of @scheme[tcp-listen] is a @deftech{TCP
+The return value of @racket[tcp-listen] is a @deftech{TCP
listener}. This value can be used in future calls to
-@scheme[tcp-accept], @scheme[tcp-accept-ready?], and
-@scheme[tcp-close]. Each new TCP listener value is placed into the
+@racket[tcp-accept], @racket[tcp-accept-ready?], and
+@racket[tcp-close]. Each new TCP listener value is placed into the
management of the current custodian (see @secref["custodians"]).
-If the server cannot be started by @scheme[tcp-listen], the
+If the server cannot be started by @racket[tcp-listen], the
@exnraise[exn:fail:network].}
@@ -74,38 +74,38 @@ If the server cannot be started by @scheme[tcp-listen], the
(values input-port? output-port?)]{
Attempts to connect as a client to a listening server. The
-@scheme[hostname] argument is the server host's Internet address name,
-and @scheme[port-no] is the port number where the server is listening.
+@racket[hostname] argument is the server host's Internet address name,
+and @racket[port-no] is the port number where the server is listening.
-(If @scheme[hostname] is associated with multiple addresses, they are
+(If @racket[hostname] is associated with multiple addresses, they are
tried one at a time until a connection succeeds. The name
-@scheme["localhost"] generally specifies the local machine.)
+@racket["localhost"] generally specifies the local machine.)
-The optional @scheme[local-hostname] and @scheme[local-port-no]
-specify the client's address and port. If both are @scheme[#f] (the
+The optional @racket[local-hostname] and @racket[local-port-no]
+specify the client's address and port. If both are @racket[#f] (the
default), the client's address and port are selected automatically. If
-@scheme[local-hostname] is not @scheme[#f], then
-@scheme[local-port-no] must be non-@scheme[#f]. If
-@scheme[local-port-no] is non-@scheme[#f] and @scheme[local-hostname]
-is @scheme[#f], then the given port is used but the address is
+@racket[local-hostname] is not @racket[#f], then
+@racket[local-port-no] must be non-@racket[#f]. If
+@racket[local-port-no] is non-@racket[#f] and @racket[local-hostname]
+is @racket[#f], then the given port is used but the address is
selected automatically.
-Two values are returned by @scheme[tcp-connect]: an input port and an
+Two values are returned by @racket[tcp-connect]: an input port and an
output port. Data can be received from the server through the input
port and sent to the server through the output port. If the server is
-a @exec{mzscheme} process, it can obtain ports to communicate to the
-client with @scheme[tcp-accept]. These ports are placed into the
+a Racket program, it can obtain ports to communicate to the
+client with @racket[tcp-accept]. These ports are placed into the
management of the current custodian (see @secref["custodians"]).
Initially, the returned input port is block-buffered, and the returned
output port is block-buffered. Change the buffer mode using
-@scheme[file-stream-buffer-mode].
+@racket[file-stream-buffer-mode].
Both of the returned ports must be closed to terminate the TCP
connection. When both ports are still open, closing the output port
-with @scheme[close-output-port] sends a TCP close to the server (which
+with @racket[close-output-port] sends a TCP close to the server (which
is seen as an end-of-file if the server reads the connection through a
-port). In contrast, @scheme[tcp-abandon-port] (see below) closes the
+port). In contrast, @racket[tcp-abandon-port] (see below) closes the
output port, but does not send a TCP close until the input port is
also closed.
@@ -117,7 +117,7 @@ response to sending data; in particular, some number of writes on the
still-open end may appear to succeed, though writes will eventually
produce an error.
-If a connection cannot be established by @scheme[tcp-connect], the
+If a connection cannot be established by @racket[tcp-connect], the
@exnraise[exn:fail:network].}
@defproc[(tcp-connect/enable-break [hostname string?]
@@ -129,49 +129,49 @@ If a connection cannot be established by @scheme[tcp-connect], the
#f)])
(values input-port? output-port?)]{
-Like @scheme[tcp-connect], but breaking is enabled (see
+Like @racket[tcp-connect], but breaking is enabled (see
@secref["breakhandler"]) while trying to connect. If breaking is
-disabled when @scheme[tcp-connect/enable-break] is called, then either
-ports are returned or the @scheme[exn:break] exception is raised, but
+disabled when @racket[tcp-connect/enable-break] is called, then either
+ports are returned or the @racket[exn:break] exception is raised, but
not both.}
@defproc[(tcp-accept [listener tcp-listener?])
(values input-port? output-port?)]{
Accepts a client connection for the server associated with
-@scheme[listener]. If no client connection is waiting on the
-listening port, the call to @scheme[tcp-accept] will block. (See also
-@scheme[tcp-accept-ready?].)
+@racket[listener]. If no client connection is waiting on the
+listening port, the call to @racket[tcp-accept] will block. (See also
+@racket[tcp-accept-ready?].)
-Two values are returned by @scheme[tcp-accept]: an input port and an
+Two values are returned by @racket[tcp-accept]: an input port and an
output port. Data can be received from the client through the input
port and sent to the client through the output port. These ports are
placed into the management of the current custodian (see
@secref["custodians"]).
In terms of buffering and connection states, the ports act the same as
-ports from @scheme[tcp-connect].
+ports from @racket[tcp-connect].
-If a connection cannot be accepted by @scheme[tcp-accept], or if the
+If a connection cannot be accepted by @racket[tcp-accept], or if the
listener has been closed, the @exnraise[exn:fail:network].}
@defproc[(tcp-accept/enable-break [listener tcp-listener?])
(values input-port? output-port?)]{
-Like @scheme[tcp-accept], but breaking is enabled (see
+Like @racket[tcp-accept], but breaking is enabled (see
@secref["breakhandler"]) while trying to accept a connection. If
-breaking is disabled when @scheme[tcp-accept/enable-break] is called,
-then either ports are returned or the @scheme[exn:break] exception is
+breaking is disabled when @racket[tcp-accept/enable-break] is called,
+then either ports are returned or the @racket[exn:break] exception is
raised, but not both.}
@defproc[(tcp-accept-ready? [listener tcp-listener?]) boolean?]{
Tests whether an unaccepted client has connected to the server
-associated with @scheme[listener]. If a client is
-waiting, the return value is @scheme[#t], otherwise it is
-@scheme[#f]. A client is accepted with the @scheme[tcp-accept]
+associated with @racket[listener]. If a client is
+waiting, the return value is @racket[#t], otherwise it is
+@racket[#f]. A client is accepted with the @racket[tcp-accept]
procedure, which returns ports for communicating with the client and
removes the client from the list of unaccepted clients.
@@ -180,48 +180,48 @@ If the listener has been closed, the @exnraise[exn:fail:network].}
@defproc[(tcp-close [listener tcp-listener?]) void?]{
-Shuts down the server associated with @scheme[listener]. All
+Shuts down the server associated with @racket[listener]. All
unaccepted clients receive an end-of-file from the server; connections
to accepted clients are unaffected.
If the listener has already been closed, the @exnraise[exn:fail:network].
The listener's port number may not become immediately available for
-new listeners (with the default @scheme[reuse?] argument of
-@scheme[tcp-listen]). For further information, see Stevens's
+new listeners (with the default @racket[reuse?] argument of
+@racket[tcp-listen]). For further information, see Stevens's
explanation of the @tt{TIME_WAIT} TCP state.}
@defproc[(tcp-listener? [v any/c]) boolean?]{
-Returns @scheme[#t] if @scheme[v] is a @tech{TCP listener} created by
-@scheme[tcp-listen], @scheme[#f] otherwise.}
+Returns @racket[#t] if @racket[v] is a @tech{TCP listener} created by
+@racket[tcp-listen], @racket[#f] otherwise.}
@defproc[(tcp-accept-evt [listener tcp-listener?]) evt?]{
Returns a @tech{synchronizable event} (see @secref["sync"]) that is in
-a blocking state when @scheme[tcp-accept] on @scheme[listener] would
+a blocking state when @racket[tcp-accept] on @racket[listener] would
block. If the event is chosen in a synchronization, the result is a
list of two items, which correspond to the two results of
-@scheme[tcp-accept]. (If the event is not chosen, no connections are
+@racket[tcp-accept]. (If the event is not chosen, no connections are
accepted.) The ports are placed into the management of the custodian
that is the current custodian (see @secref["custodians"]) at the time that
-@scheme[tcp-accept-evt] is called.}
+@racket[tcp-accept-evt] is called.}
@defproc[(tcp-abandon-port [tcp-port tcp-port?]) void?]{
-Like @scheme[close-output-port] or @scheme[close-input-port]
-(depending on whether @scheme[tcp-port] is an input or output port),
-but if @scheme[tcp-port] is an output port and its associated input
+Like @racket[close-output-port] or @racket[close-input-port]
+(depending on whether @racket[tcp-port] is an input or output port),
+but if @racket[tcp-port] is an output port and its associated input
port is not yet closed, then the other end of the TCP connection does
not receive a TCP close message until the input port is also
closed.
The TCP protocol does not include a ``no longer reading'' state on
-connections, so @scheme[tcp-abandon-port] is equivalent to
-@scheme[close-input-port] on input @tech{TCP ports}.}
+connections, so @racket[tcp-abandon-port] is equivalent to
+@racket[close-input-port] on input @tech{TCP ports}.}
@defproc[(tcp-addresses [tcp-port (or/c tcp-port? tcp-listener?)]
@@ -230,7 +230,7 @@ connections, so @scheme[tcp-abandon-port] is equivalent to
(values string? (integer-in 1 65535)
string? (integer-in 1 65535)))]{
-Returns two strings when @scheme[port-numbers?] is @scheme[#f] (the
+Returns two strings when @racket[port-numbers?] is @racket[#f] (the
default). The first string is the Internet address for the local
machine a viewed by the given @tech{TCP port}'s connection. (For most
machines, the answer corresponds to the current machine's only
@@ -238,21 +238,21 @@ Internet address, but when a machine serves multiple addresses, the
result is connection-specific.) The second string is the Internet
address for the other end of the connection.
-If @scheme[port-numbers?] is true, then four results are returned: a
+If @racket[port-numbers?] is true, then four results are returned: a
string for the local machine's address, an exact integer between
-@scheme[1] and @scheme[65535] for the local machine's port number, a
+@racket[1] and @racket[65535] for the local machine's port number, a
string for the remote machine's address, and an exact integer between
-@scheme[1] and @scheme[65535] for the remote machine's port number.
+@racket[1] and @racket[65535] for the remote machine's port number.
If the given port has been closed, the @exnraise[exn:fail:network].}
@defproc[(tcp-port? [v any/c]) boolean?]{
-Returns @scheme[#t] if @scheme[v] is a @deftech{TCP port}---which is a
-port returned by @scheme[tcp-accept], @scheme[tcp-connect],
-@scheme[tcp-accept/enable-break], or
-@scheme[tcp-connect/enable-break]---@scheme[#f] otherwise.}
+Returns @racket[#t] if @racket[v] is a @deftech{TCP port}---which is a
+port returned by @racket[tcp-accept], @racket[tcp-connect],
+@racket[tcp-accept/enable-break], or
+@racket[tcp-connect/enable-break]---@racket[#f] otherwise.}
@;------------------------------------------------------------------------
@section[#:tag "udp"]{UDP}
@@ -270,17 +270,17 @@ Creates and returns a @deftech{UDP socket} to send and receive
datagrams (broadcasting is allowed). Initially, the socket is not
bound or connected to any address or port.
-If @scheme[family-hostname] or @scheme[family-port-no] is not
-@scheme[#f], then the socket's protocol family is determined from
+If @racket[family-hostname] or @racket[family-port-no] is not
+@racket[#f], then the socket's protocol family is determined from
these arguments. The socket is @italic{not} bound to the hostname
or port number. For example, the arguments might be the hostname
and port to which messages will be sent through the socket, which
ensures that the socket's protocol family is consistent with the
destination. Alternately, the arguments might be the same as for
-a future call to @scheme[udp-bind!], which ensures that the
+a future call to @racket[udp-bind!], which ensures that the
socket's protocol family is consistent with the binding. If
-neither @scheme[family-hostname] nor @scheme[family-port-no] is
-non-@scheme[#f], then the socket's protocol family is IPv4.}
+neither @racket[family-hostname] nor @racket[family-port-no] is
+non-@racket[#f], then the socket's protocol family is IPv4.}
@defproc[(udp-bind! [udp-socket udp?]
[hostname-string (or/c string? #f)]
@@ -288,35 +288,35 @@ non-@scheme[#f], then the socket's protocol family is IPv4.}
(integer-in 0 65535))])
void?]{
-Binds an unbound @scheme[udp-socket] to the local port number
-@scheme[port-no]. If @scheme[port-no] is 0 the @scheme[udp-socket] is
+Binds an unbound @racket[udp-socket] to the local port number
+@racket[port-no]. If @racket[port-no] is 0 the @racket[udp-socket] is
bound to an ephemeral port, which can be determined by calling
-@scheme[udp-addresses].
+@racket[udp-addresses].
-If @scheme[hostname-string] is @scheme[#f], then the socket
+If @racket[hostname-string] is @racket[#f], then the socket
accepts connections to all of the listening machine's IP
-addresses at @scheme[port-no]. Otherwise, the socket accepts
+addresses at @racket[port-no]. Otherwise, the socket accepts
connections only at the IP address associated with the given
-name. For example, providing @scheme["127.0.0.1"] as
-@scheme[hostname-string] typically creates a listener that
-accepts only connections to @scheme["127.0.0.1"] from the local
+name. For example, providing @racket["127.0.0.1"] as
+@racket[hostname-string] typically creates a listener that
+accepts only connections to @racket["127.0.0.1"] from the local
machine.
A socket cannot receive datagrams until it is bound to a local address
and port. If a socket is not bound before it is used with a sending
-procedure @scheme[udp-send], @scheme[udp-send-to], etc., the sending
+procedure @racket[udp-send], @racket[udp-send-to], etc., the sending
procedure binds the socket to a random local port. Similarly, if an
-event from @scheme[udp-send-evt] or @scheme[udp-send-to-evt] is chosen
+event from @racket[udp-send-evt] or @racket[udp-send-to-evt] is chosen
for a synchronization (see @secref["sync"]), the socket is bound; if
the event is not chosen, the socket may or may not become bound.
The binding of a bound socket cannot be changed, with one exception:
on some systems, if the socket is bound automatically when sending, if
-the socket is disconnected via @scheme[udp-connect!], and if the
+the socket is disconnected via @racket[udp-connect!], and if the
socket is later used again in a send, then the later send may change
the socket's automatic binding.
-If @scheme[udp-socket] is already bound or closed, the
+If @racket[udp-socket] is already bound or closed, the
@exnraise[exn:fail:network].}
@@ -328,21 +328,21 @@ If @scheme[udp-socket] is already bound or closed, the
void?]{
Connects the socket to the indicated remote address and port if
-@scheme[hostname-string] is a string and @scheme[port-no] is an exact
+@racket[hostname-string] is a string and @racket[port-no] is an exact
integer.
-If @scheme[hostname-string] is @scheme[#f], then @scheme[port-no] also
-must be @scheme[#f], and the port is disconnected (if connected). If
-one of @scheme[hostname-string] or @scheme[port-no] is @scheme[#f] and
+If @racket[hostname-string] is @racket[#f], then @racket[port-no] also
+must be @racket[#f], and the port is disconnected (if connected). If
+one of @racket[hostname-string] or @racket[port-no] is @racket[#f] and
the other is not, the @exnraise[exn:fail:contract].
-A connected socket can be used with @scheme[udp-send] (not
-@scheme[udp-send-to]), and it accepts datagrams only from the
+A connected socket can be used with @racket[udp-send] (not
+@racket[udp-send-to]), and it accepts datagrams only from the
connected address and port. A socket need not be connected to receive
datagrams. A socket can be connected, re-connected, and disconnected
any number of times.
-If @scheme[udp-socket] is closed, the @exnraise[exn:fail:network].}
+If @racket[udp-socket] is closed, the @exnraise[exn:fail:network].}
@defproc[(udp-send-to [udp-socket udp?]
@@ -354,19 +354,19 @@ If @scheme[udp-socket] is closed, the @exnraise[exn:fail:network].}
[end-pos exact-nonnegative-integer? (bytes-length bstr)])
void]{
-Sends @scheme[(subbytes bytes start-pos end-pos)] as a datagram from
-the unconnected @scheme[udp-socket] to the socket at the remote
-machine @scheme[hostname-address] on the port @scheme[port-no]. The
-@scheme[udp-socket] need not be bound or connected; if it is not
-bound, @scheme[udp-send-to] binds it to a random local port. If the
+Sends @racket[(subbytes bytes start-pos end-pos)] as a datagram from
+the unconnected @racket[udp-socket] to the socket at the remote
+machine @racket[hostname-address] on the port @racket[port-no]. The
+@racket[udp-socket] need not be bound or connected; if it is not
+bound, @racket[udp-send-to] binds it to a random local port. If the
socket's outgoing datagram queue is too full to support the send,
-@scheme[udp-send-to] blocks until the datagram can be queued.
+@racket[udp-send-to] blocks until the datagram can be queued.
-If @scheme[start-pos] is greater than the length of @scheme[bstr], or
-if @scheme[end-pos] is less than @scheme[start-pos] or greater than
-the length of @scheme[bstr], the @exnraise[exn:fail:contract].
+If @racket[start-pos] is greater than the length of @racket[bstr], or
+if @racket[end-pos] is less than @racket[start-pos] or greater than
+the length of @racket[bstr], the @exnraise[exn:fail:contract].
-If @scheme[udp-socket] is closed or connected, the
+If @racket[udp-socket] is closed or connected, the
@exnraise[exn:fail:network].}
@defproc[(udp-send [udp-socket udp?]
@@ -375,9 +375,9 @@ If @scheme[udp-socket] is closed or connected, the
[end-pos exact-nonnegative-integer? (bytes-length bstr)])
void]{
-Like @scheme[udp-send-to], except that @scheme[udp-socket] must be
+Like @racket[udp-send-to], except that @racket[udp-socket] must be
connected, and the datagram goes to the connection target. If
-@scheme[udp-socket] is closed or unconnected, the
+@racket[udp-socket] is closed or unconnected, the
@exnraise[exn:fail:network].}
@defproc[(udp-send-to* [udp-socket udp?]
@@ -389,9 +389,9 @@ connected, and the datagram goes to the connection target. If
[end-pos exact-nonnegative-integer? (bytes-length bstr)])
boolean?]{
-Like @scheme[udp-send-to], but never blocks; if the socket's outgoing
-queue is too full to support the send, @scheme[#f] is returned,
-otherwise the datagram is queued and the result is @scheme[#t].}
+Like @racket[udp-send-to], but never blocks; if the socket's outgoing
+queue is too full to support the send, @racket[#f] is returned,
+otherwise the datagram is queued and the result is @racket[#t].}
@defproc[(udp-send* [udp-socket udp?]
[bstr bytes?]
@@ -399,8 +399,8 @@ otherwise the datagram is queued and the result is @scheme[#t].}
[end-pos exact-nonnegative-integer? (bytes-length bstr)])
boolean?]{
-Like @scheme[udp-send], except that (like @scheme[udp-send-to]) it
-never blocks and returns @scheme[#f] or @scheme[#t].}
+Like @racket[udp-send], except that (like @racket[udp-send-to]) it
+never blocks and returns @racket[#f] or @racket[#t].}
@defproc[(udp-send-to/enable-break [udp-socket udp?]
[hostname string?]
@@ -411,10 +411,10 @@ never blocks and returns @scheme[#f] or @scheme[#t].}
[end-pos exact-nonnegative-integer? (bytes-length bstr)])
void]{
-Like @scheme[udp-send-to], but breaking is enabled (see
+Like @racket[udp-send-to], but breaking is enabled (see
@secref["breakhandler"]) while trying to send the datagram. If
-breaking is disabled when @scheme[udp-send-to/enable-break] is called,
-then either the datagram is sent or the @scheme[exn:break] exception
+breaking is disabled when @racket[udp-send-to/enable-break] is called,
+then either the datagram is sent or the @racket[exn:break] exception
is raised, but not both.}
@@ -424,8 +424,8 @@ is raised, but not both.}
[end-pos exact-nonnegative-integer? (bytes-length bstr)])
void]{
-Like @scheme[udp-send], except that breaks are enabled like
-@scheme[udp-send-to/enable-break].}
+Like @racket[udp-send], except that breaks are enabled like
+@racket[udp-send-to/enable-break].}
@defproc[(udp-receive! [udp-socket udp?]
@@ -436,24 +436,24 @@ Like @scheme[udp-send], except that breaks are enabled like
string?
(integer-in 1 65535))]{
-Accepts up to @math{@scheme[end-pos]-@scheme[start-pos]} bytes of
-@scheme[udp-socket]'s next incoming datagram into @scheme[bstr],
-writing the datagram bytes starting at position @scheme[start-pos]
-within @scheme[bstr]. The @scheme[udp-socket] must be bound to a local
+Accepts up to @math{@racket[end-pos]-@racket[start-pos]} bytes of
+@racket[udp-socket]'s next incoming datagram into @racket[bstr],
+writing the datagram bytes starting at position @racket[start-pos]
+within @racket[bstr]. The @racket[udp-socket] must be bound to a local
address and port (but need not be connected). If no incoming datagram
-is immediately available, @scheme[udp-receive!] blocks until one is
+is immediately available, @racket[udp-receive!] blocks until one is
available.
Three values are returned: the number of received bytes (between
-@scheme[0] and @math{@scheme[end-pos]-@scheme[start-pos]}, a hostname
+@racket[0] and @math{@racket[end-pos]-@racket[start-pos]}, a hostname
string indicating the source address of the datagram, and an integer
indicating the source port of the datagram. If the received datagram
-is longer than @math{@scheme[end-pos]-@scheme[start-pos]} bytes, the
+is longer than @math{@racket[end-pos]-@racket[start-pos]} bytes, the
remainder is discarded.
-If @scheme[start-pos] is greater than the length of @scheme[bstr], or
-if @scheme[end-pos] is less than @scheme[start-pos] or greater than
-the length of @scheme[bstr], the @exnraise[exn:fail:contract].}
+If @racket[start-pos] is greater than the length of @racket[bstr], or
+if @racket[end-pos] is less than @racket[start-pos] or greater than
+the length of @racket[bstr], the @exnraise[exn:fail:contract].}
@defproc[(udp-receive!* [udp-socket udp?]
[bstr (and/c bytes? (not immutable?))]
@@ -463,8 +463,8 @@ the length of @scheme[bstr], the @exnraise[exn:fail:contract].}
(or/c string? #f)
(or/c (integer-in 1 65535) #f))]{
-Like @scheme[udp-receive!], except that it never blocks. If no
-datagram is available, the three result values are all @scheme[#f].}
+Like @racket[udp-receive!], except that it never blocks. If no
+datagram is available, the three result values are all @racket[#f].}
@defproc[(udp-receive!/enable-break [udp-socket udp?]
[bstr (and/c bytes? (not immutable?))]
@@ -474,48 +474,48 @@ datagram is available, the three result values are all @scheme[#f].}
string?
(integer-in 1 65535))]{
-Like @scheme[udp-receive!], but breaking is enabled (see
+Like @racket[udp-receive!], but breaking is enabled (see
@secref["breakhandler"]) while trying to receive the datagram. If
-breaking is disabled when @scheme[udp-receive!/enable-break] is
-called, then either a datagram is received or the @scheme[exn:break]
+breaking is disabled when @racket[udp-receive!/enable-break] is
+called, then either a datagram is received or the @racket[exn:break]
exception is raised, but not both.}
@defproc[(udp-close [udp-socket udp?]) void?]{
-Closes @scheme[udp-socket], discarding unreceived datagrams. If the
+Closes @racket[udp-socket], discarding unreceived datagrams. If the
socket is already closed, the @exnraise[exn:fail:network].}
@defproc[(udp? [v any/c]) boolean?]{
-Returns @scheme[#t] if @scheme[v] is a socket created by
-@scheme[udp-open-socket], @scheme[#f] otherwise.}
+Returns @racket[#t] if @racket[v] is a socket created by
+@racket[udp-open-socket], @racket[#f] otherwise.}
@defproc[(udp-bound? [udp-socket udp?]) boolean?]{
-Returns @scheme[#t] if @scheme[udp-socket] is bound to a local address
-and port, @scheme[#f] otherwise.}
+Returns @racket[#t] if @racket[udp-socket] is bound to a local address
+and port, @racket[#f] otherwise.}
@defproc[(udp-connected? [udp-socket udp?]) boolean?]{
-Returns @scheme[#t] if @scheme[udp-socket] is connected to a remote
-address and port, @scheme[#f] otherwise.}
+Returns @racket[#t] if @racket[udp-socket] is connected to a remote
+address and port, @racket[#f] otherwise.}
@defproc[(udp-send-ready-evt [udp-socket udp?]) evt?]{
Returns a @tech{synchronizable event} (see @secref["sync"]) that is
-in a blocking state when @scheme[udp-send-to] on @scheme[udp-socket]
+in a blocking state when @racket[udp-send-to] on @racket[udp-socket]
would block.}
@defproc[(udp-receive-ready-evt [udp-socket udp?]) evt?]{
Returns a @tech{synchronizable event} (see @secref["sync"]) that is
-in a blocking state when @scheme[udp-receive!] on @scheme[udp-socket]
+in a blocking state when @racket[udp-receive!] on @racket[udp-socket]
would block.}
@defproc[(udp-send-to-evt [udp-socket udp?]
@@ -528,9 +528,9 @@ would block.}
evt?]{
Returns a @tech{synchronizable event}. The event is in a blocking
-state when @scheme[udp-send-to] on @scheme[udp-socket] would
+state when @racket[udp-send-to] on @racket[udp-socket] would
block. Otherwise, if the event is chosen in a synchronization, data is
-sent as for @scheme[(udp-send-to udp-socket hostname-address port-no
+sent as for @racket[(udp-send-to udp-socket hostname-address port-no
bstr start-pos end-pos)], and the synchronization result is
@|void-const|. (No bytes are sent if the event is not chosen.)}
@@ -542,11 +542,11 @@ bstr start-pos end-pos)], and the synchronization result is
evt?]{
Returns a @tech{synchronizable event}. The event is in a blocking
-state when @scheme[udp-send] on @scheme[udp-socket] would
+state when @racket[udp-send] on @racket[udp-socket] would
block. Otherwise, if the event is chosen in a synchronization, data is
-sent as for @scheme[(udp-send-to udp-socket bstr start-pos end-pos)],
+sent as for @racket[(udp-send-to udp-socket bstr start-pos end-pos)],
and the synchronization result is @|void-const|. (No bytes are sent if
-the event is not chosen.) If @scheme[udp-socket] is closed or
+the event is not chosen.) If @racket[udp-socket] is closed or
unconnected, the @exnraise[exn:fail:network] during a synchronization
attempt.}
@@ -557,12 +557,12 @@ attempt.}
evt?]{
Returns a @tech{synchronizable event}. The event is in a blocking
-state when @scheme[udp-receive] on @scheme[udp-socket] would
+state when @racket[udp-receive] on @racket[udp-socket] would
block. Otherwise, if the event is chosen in a synchronization, data is
-received into @scheme[bstr] as for @scheme[(udp-receive! udp-socket
+received into @racket[bstr] as for @racket[(udp-receive! udp-socket
bytes start-pos end-pos)], and the synchronization result is a list of
three values, corresponding to the three results from
-@scheme[udp-receive!]. (No bytes are received and the @scheme[bstr]
+@racket[udp-receive!]. (No bytes are received and the @racket[bstr]
content is not modified if the event is not chosen.)}
@defproc[(udp-addresses [udp-port udp?]
@@ -571,7 +571,7 @@ content is not modified if the event is not chosen.)}
(values string? (integer-in 1 65535)
string? (integer-in 1 65535)))]{
-Returns two strings when @scheme[port-numbers?] is @scheme[#f] (the
+Returns two strings when @racket[port-numbers?] is @racket[#f] (the
default). The first string is the Internet address for the local
machine a viewed by the given @tech{UDP socket}'s connection. (For most
machines, the answer corresponds to the current machine's only
@@ -579,10 +579,10 @@ Internet address, but when a machine serves multiple addresses, the
result is connection-specific.) The second string is the Internet
address for the other end of the connection.
-If @scheme[port-numbers?] is true, then four results are returned: a
+If @racket[port-numbers?] is true, then four results are returned: a
string for the local machine's address, an exact integer between
-@scheme[1] and @scheme[65535] for the local machine's port number, a
+@racket[1] and @racket[65535] for the local machine's port number, a
string for the remote machine's address, and an exact integer between
-@scheme[1] and @scheme[65535] for the remote machine's port number.
+@racket[1] and @racket[65535] for the remote machine's port number.
If the given port has been closed, the @exnraise[exn:fail:network].}
diff --git a/collects/scribblings/reference/numbers.scrbl b/collects/scribblings/reference/numbers.scrbl
index fb6dcce88b..83309a0ff5 100644
--- a/collects/scribblings/reference/numbers.scrbl
+++ b/collects/scribblings/reference/numbers.scrbl
@@ -18,10 +18,10 @@
All @deftech{numbers} are @deftech{complex numbers}. Some of them are
@deftech{real numbers}, and all of the real numbers that can be
represented are also @deftech{rational numbers}, except for
-@as-index{@scheme[+inf.0]} (positive @as-index{infinity}),
-@as-index{@scheme[-inf.0]} (negative infinity), and
-@as-index{@scheme[+nan.0]} (@as-index{not-a-number}). Among the
-rational numbers, some are @deftech{integers}, because @scheme[round]
+@as-index{@racket[+inf.0]} (positive @as-index{infinity}),
+@as-index{@racket[-inf.0]} (negative infinity), and
+@as-index{@racket[+nan.0]} (@as-index{not-a-number}). Among the
+rational numbers, some are @deftech{integers}, because @racket[round]
applied to the number produces the same number.
Orthogonal to those categories, each number is also either an
@@ -29,8 +29,8 @@ Orthogonal to those categories, each number is also either an
otherwise specified, computations that involve an inexact number
produce inexact results. Certain operations on inexact numbers,
however, produce an exact number, such as multiplying an inexact
-number with an exact @scheme[0]. Some operations, which can produce an
-irrational number for rational arguments (e.g., @scheme[sqrt]), may
+number with an exact @racket[0]. Some operations, which can produce an
+irrational number for rational arguments (e.g., @racket[sqrt]), may
produce inexact results even for exact arguments.
In the case of complex numbers, either the real and imaginary parts
@@ -51,64 +51,64 @@ numbers). In particular, adding, multiplying, subtracting, and
dividing exact numbers always produces an exact result.
Inexact numbers can be coerced to exact form, except for the inexact
-numbers @scheme[+inf.0], @scheme[-inf.0], and @scheme[+nan.0], which
+numbers @racket[+inf.0], @racket[-inf.0], and @racket[+nan.0], which
have no exact form. @index["division by inexact zero"]{Dividing} a
number by exact zero raises an exception; dividing a non-zero number
-other than @scheme[+nan.0] by an inexact zero returns @scheme[+inf.0]
-or @scheme[-inf.0], depending on the sign of the dividend. The
-@scheme[+nan.0] value is not @scheme[=] to itself, but @scheme[+nan.0]
-is @scheme[eqv?] to itself. Conversely, @scheme[(= 0.0 -0.0)] is
-@scheme[#t], but @scheme[(eqv? 0.0 -0.0)] is @scheme[#f]. The datum
-@schemevalfont{-nan.0} refers to the same constant as @scheme[+nan.0].
+other than @racket[+nan.0] by an inexact zero returns @racket[+inf.0]
+or @racket[-inf.0], depending on the sign of the dividend. The
+@racket[+nan.0] value is not @racket[=] to itself, but @racket[+nan.0]
+is @racket[eqv?] to itself. Conversely, @racket[(= 0.0 -0.0)] is
+@racket[#t], but @racket[(eqv? 0.0 -0.0)] is @racket[#f]. The datum
+@racketvalfont{-nan.0} refers to the same constant as @racket[+nan.0].
Calculations with infinites produce results consistent with IEEE
double-precision floating point where IEEE specifies the result; in
-cases where IEEE provides no specification (e.g., @scheme[(angle
+cases where IEEE provides no specification (e.g., @racket[(angle
+inf.0+inf.0i)]), the result corresponds to the limit approaching
-infinity, or @scheme[+nan.0] if no such limit exists.
+infinity, or @racket[+nan.0] if no such limit exists.
A @deftech{fixnum} is an exact integer whose two's complement
representation fit into 31 bits on a 32-bit platform or 63 bits on a
64-bit platform; furthermore, no allocation is required when computing
-with fixnums. See also the @schememodname[racket/fixnum] module, below.
+with fixnums. See also the @racketmodname[racket/fixnum] module, below.
-Two fixnums that are @scheme[=] are also the same
-according to @scheme[eq?]. Otherwise, the result of @scheme[eq?]
+Two fixnums that are @racket[=] are also the same
+according to @racket[eq?]. Otherwise, the result of @racket[eq?]
applied to two numbers is undefined.
-Two numbers are @scheme[eqv?] when they are both inexact or both
-exact, and when they are @scheme[=] (except for @scheme[+nan.0],
-@scheme[+0.0], and @scheme[-0.0], as noted above). Two numbers are
-@scheme[equal?] when they are @scheme[eqv?].
+Two numbers are @racket[eqv?] when they are both inexact or both
+exact, and when they are @racket[=] (except for @racket[+nan.0],
+@racket[+0.0], and @racket[-0.0], as noted above). Two numbers are
+@racket[equal?] when they are @racket[eqv?].
@; ----------------------------------------
@section{Number Types}
-@defproc[(number? [v any/c]) boolean?]{Returns @scheme[#t] if @scheme[v]
- is a number, @scheme[#f] otherwise.
+@defproc[(number? [v any/c]) boolean?]{Returns @racket[#t] if @racket[v]
+ is a number, @racket[#f] otherwise.
@mz-examples[(number? 1) (number? 2+3i) (number? "hello")]}
-@defproc[(complex? [v any/c]) boolean?]{ Returns @scheme[(number? v)],
+@defproc[(complex? [v any/c]) boolean?]{ Returns @racket[(number? v)],
because all numbers are @tech{complex numbers}.}
-@defproc[(real? [v any/c]) boolean?]{ Returns @scheme[#t] if @scheme[v] is
- a @techlink{real number}, @scheme[#f] otherwise.
+@defproc[(real? [v any/c]) boolean?]{ Returns @racket[#t] if @racket[v] is
+ a @techlink{real number}, @racket[#f] otherwise.
@mz-examples[(real? 1) (real? +inf.0) (real? 2+3i)
(real? 2+0.0i) (real? "hello")]}
-@defproc[(rational? [v any/c]) boolean?]{ Returns @scheme[#t] if
- @scheme[v] is a @techlink{rational number}, @scheme[#f] otherwise.
+@defproc[(rational? [v any/c]) boolean?]{ Returns @racket[#t] if
+ @racket[v] is a @techlink{rational number}, @racket[#f] otherwise.
@mz-examples[(rational? 1) (rational? +inf.0) (real? "hello")]}
-@defproc[(integer? [v any/c]) boolean?]{ Returns @scheme[#t] if @scheme[v]
- is a number that is an @techlink{integer}, @scheme[#f] otherwise.
+@defproc[(integer? [v any/c]) boolean?]{ Returns @racket[#t] if @racket[v]
+ is a number that is an @techlink{integer}, @racket[#f] otherwise.
@mz-examples[(integer? 1) (integer? 2.3) (integer? 4.0) (integer? +inf.0)
(integer? 2+3i) (integer? "hello")]}
@@ -116,84 +116,84 @@ because all numbers are @tech{complex numbers}.}
@defproc[(exact-integer? [v any/c]) boolean?]{
-Returns @scheme[(and (integer? v) (exact? v))].
+Returns @racket[(and (integer? v) (exact? v))].
@mz-examples[(exact-integer? 1) (exact-integer? 4.0)]}
@defproc[(exact-nonnegative-integer? [v any/c]) boolean?]{
-Returns @scheme[(and (exact-integer? v) (not (negative? v)))].
+Returns @racket[(and (exact-integer? v) (not (negative? v)))].
@mz-examples[(exact-nonnegative-integer? 0) (exact-nonnegative-integer? -1)]}
@defproc[(exact-positive-integer? [v any/c]) boolean?]{
-Returns @scheme[(and (exact-integer? v) (positive? v))].
+Returns @racket[(and (exact-integer? v) (positive? v))].
@mz-examples[(exact-positive-integer? 1) (exact-positive-integer? 0)]}
@defproc[(inexact-real? [v any/c]) boolean?]{
-Returns @scheme[(and (real? v) (inexact? v))].}
+Returns @racket[(and (real? v) (inexact? v))].}
@defproc[(fixnum? [v any/c]) boolean?]{
-Return @scheme[#t] if @scheme[v] is a @techlink{fixnum}, @scheme[#f]
+Return @racket[#t] if @racket[v] is a @techlink{fixnum}, @racket[#f]
otherwise.}
-@defproc[(zero? [z number?]) boolean?]{ Returns @scheme[(= 0 z)].
+@defproc[(zero? [z number?]) boolean?]{ Returns @racket[(= 0 z)].
@mz-examples[(zero? 0) (zero? -0.0)]}
-@defproc[(positive? [x real?]) boolean?]{ Returns @scheme[(> x 0)].
+@defproc[(positive? [x real?]) boolean?]{ Returns @racket[(> x 0)].
@mz-examples[(positive? 10) (positive? -10) (positive? 0.0)]}
-@defproc[(negative? [x real?]) boolean?]{ Returns @scheme[(< x 0)].
+@defproc[(negative? [x real?]) boolean?]{ Returns @racket[(< x 0)].
@mz-examples[(negative? 10) (negative? -10) (negative? -0.0)]}
-@defproc[(even? [n integer?]) boolean?]{ Returns @scheme[(zero? (modulo
+@defproc[(even? [n integer?]) boolean?]{ Returns @racket[(zero? (modulo
n 2))].
@mz-examples[(even? 10.0) (even? 11) (even? +inf.0)]}
-@defproc[(odd? [n integer?]) boolean?]{ Returns @scheme[(not (even? n))].
+@defproc[(odd? [n integer?]) boolean?]{ Returns @racket[(not (even? n))].
@mz-examples[(odd? 10.0) (odd? 11) (odd? +inf.0)]}
-@defproc[(exact? [z number?]) boolean?]{ Returns @scheme[#t] if @scheme[z]
- is an exact number, @scheme[#f] otherwise.
+@defproc[(exact? [z number?]) boolean?]{ Returns @racket[#t] if @racket[z]
+ is an exact number, @racket[#f] otherwise.
@mz-examples[(exact? 1) (exact? 1.0)]}
-@defproc[(inexact? [z number?]) boolean?]{ Returns @scheme[#t] if @scheme[z]
- is an inexact number, @scheme[#f] otherwise.
+@defproc[(inexact? [z number?]) boolean?]{ Returns @racket[#t] if @racket[z]
+ is an inexact number, @racket[#f] otherwise.
@mz-examples[(inexact? 1) (inexact? 1.0)]}
-@defproc[(inexact->exact [z number?]) exact?]{ Coerces @scheme[z] to an
- exact number. If @scheme[z] is already exact, it is returned. If @scheme[z]
- is @scheme[+inf.0], @scheme[-inf.0], or @scheme[+nan.0], then the
+@defproc[(inexact->exact [z number?]) exact?]{ Coerces @racket[z] to an
+ exact number. If @racket[z] is already exact, it is returned. If @racket[z]
+ is @racket[+inf.0], @racket[-inf.0], or @racket[+nan.0], then the
@exnraise[exn:fail:contract].
@mz-examples[(inexact->exact 1) (inexact->exact 1.0)]}
-@defproc[(exact->inexact [z number?]) inexact?]{ Coerces @scheme[z] to an
- inexact number. If @scheme[z] is already inexact, it is returned.
+@defproc[(exact->inexact [z number?]) inexact?]{ Coerces @racket[z] to an
+ inexact number. If @racket[z] is already inexact, it is returned.
@mz-examples[(exact->inexact 1) (exact->inexact 1.0)]}
@@ -202,51 +202,51 @@ otherwise.}
@section{Arithmetic}
@defproc[(+ [z number?] ...) number?]{ Returns the sum of the
- @scheme[z]s, adding pairwise from left to right. If no arguments are
- provided, the result is @scheme[0].
+ @racket[z]s, adding pairwise from left to right. If no arguments are
+ provided, the result is @racket[0].
@mz-examples[(+ 1 2) (+ 1.0 2+3i 5) (+)]}
@defproc*[([(- [z number?]) number?]
[(- [z number?] [w number?] ...+) number?])]{
- When no @scheme[w]s are supplied, returns @scheme[(- 0 z)].
- Otherwise, returns the subtraction of the @scheme[w]s from @scheme[z]
+ When no @racket[w]s are supplied, returns @racket[(- 0 z)].
+ Otherwise, returns the subtraction of the @racket[w]s from @racket[z]
working pairwise from left to right.}
@mz-examples[(- 5 3.0) (- 1) (- 2+7i 1 3)]
@defproc[(* [z number?] ...) number?]{ Returns the product of the
- @scheme[z]s, multiplying pairwise from left to right. If no arguments are
- provided, the result is @scheme[1].}
+ @racket[z]s, multiplying pairwise from left to right. If no arguments are
+ provided, the result is @racket[1].}
@mz-examples[(* 2 3) (* 8.0 9) (* 1+2i 3+4i)]
@defproc*[([(/ [z number?]) number?]
[(/ [z number?] [w number?] ...+) number?])]{
- When no @scheme[w]s are supplied, returns @scheme[(/ 1 z)].
- Otherwise, returns the division @scheme[z] by the var[w]s
+ When no @racket[w]s are supplied, returns @racket[(/ 1 z)].
+ Otherwise, returns the division @racket[z] by the var[w]s
working pairwise from left to right.}
@mz-examples[(/ 3 4) (/ 81 3 3) (/ 10.0) (/ 1+2i 3+4i)]
@defproc[(quotient [n integer?] [m integer?]) integer?]{ Returns
- @scheme[(truncate (/ n m))].}
+ @racket[(truncate (/ n m))].}
@mz-examples[(quotient 10 3) (quotient -10.0 3) (quotient +inf.0 3)]
@defproc[(remainder [n integer?] [m integer?]) integer?]{ Returns
- @scheme[_q] with the same sign as @scheme[n] such that
+ @racket[_q] with the same sign as @racket[n] such that
@itemize[
- @item{@scheme[(abs _q)] is between @scheme[0] (inclusive) and @scheme[(abs m)] (exclusive), and}
+ @item{@racket[(abs _q)] is between @racket[0] (inclusive) and @racket[(abs m)] (exclusive), and}
- @item{@scheme[(+ _q (* m (quotient n m)))] equals @scheme[n].}
+ @item{@racket[(+ _q (* m (quotient n m)))] equals @racket[n].}
]
@@ -254,8 +254,8 @@ otherwise.}
@defproc[(quotient/remainder [n integer?] [m integer?]) (values number? number?)]{ Returns
- @scheme[(values (quotient n m) (remainder n m))], but the combination is computed
- more efficiently than separate calls to @scheme[quotient] and @scheme[remainder].
+ @racket[(values (quotient n m) (remainder n m))], but the combination is computed
+ more efficiently than separate calls to @racket[quotient] and @racket[remainder].
@mz-examples[
(quotient/remainder 10 3)
@@ -263,104 +263,104 @@ otherwise.}
@defproc[(modulo [n integer?] [m integer?]) number?]{ Returns
- @scheme[_q] with the same sign as @scheme[m] where
+ @racket[_q] with the same sign as @racket[m] where
@itemize[
- @item{@scheme[(abs _q)] is between @scheme[0] (inclusive) and @scheme[(abs m)] (exclusive), and}
+ @item{@racket[(abs _q)] is between @racket[0] (inclusive) and @racket[(abs m)] (exclusive), and}
- @item{the difference between @scheme[_q] and @scheme[(- n (* m (quotient n m)))] is a multiple of @scheme[m].}
+ @item{the difference between @racket[_q] and @racket[(- n (* m (quotient n m)))] is a multiple of @racket[m].}
]
@mz-examples[(modulo 10 3) (modulo -10.0 3) (modulo 10.0 -3) (modulo -10 -3) (modulo +inf.0 3)]}
-@defproc[(add1 [z number?]) number?]{ Returns @scheme[(+ z 1)].}
+@defproc[(add1 [z number?]) number?]{ Returns @racket[(+ z 1)].}
-@defproc[(sub1 [z number?]) number?]{ Returns @scheme[(- z 1)].}
+@defproc[(sub1 [z number?]) number?]{ Returns @racket[(- z 1)].}
@defproc[(abs [x real?]) number?]{ Returns the absolute value of
- @scheme[x].
+ @racket[x].
@mz-examples[(abs 1.0) (abs -1)]}
@defproc[(max [x real?] ...+) real?]{ Returns the largest of the
- @scheme[x]s, or @scheme[+nan.0] if any @scheme[x] is @scheme[+nan.0].
- If any @scheme[x] is inexact, the result is coerced to inexact.
+ @racket[x]s, or @racket[+nan.0] if any @racket[x] is @racket[+nan.0].
+ If any @racket[x] is inexact, the result is coerced to inexact.
@mz-examples[(max 1 3 2) (max 1 3 2.0)]}
@defproc[(min [x real?] ...+) real?]{ Returns the smallest of the
- @scheme[x]s, or @scheme[+nan.0] if any @scheme[x] is @scheme[+nan.0].
- If any @scheme[x] is inexact, the result is coerced to inexact.
+ @racket[x]s, or @racket[+nan.0] if any @racket[x] is @racket[+nan.0].
+ If any @racket[x] is inexact, the result is coerced to inexact.
@mz-examples[(min 1 3 2) (min 1 3 2.0)]}
@defproc[(gcd [n integer?] ...) integer?]{ Returns the
@as-index{greatest common divisor} (a non-negative number) of the
- @scheme[n]s. If no arguments are provided, the result is
- @scheme[0]. If all arguments are zero, the result is zero.
+ @racket[n]s. If no arguments are provided, the result is
+ @racket[0]. If all arguments are zero, the result is zero.
@mz-examples[(gcd 10) (gcd 12 81.0)]}
@defproc[(lcm [n integer?] ...) integer?]{ Returns the @as-index{least
- common multiple} (a non-negative number) of the @scheme[n]s. If no
- arguments are provided, the result is @scheme[1]. If any argument is
+ common multiple} (a non-negative number) of the @racket[n]s. If no
+ arguments are provided, the result is @racket[1]. If any argument is
zero, the result is zero.
@mz-examples[(lcm 10) (lcm 3 4.0)]}
@defproc[(round [x real?]) integer?]{ Returns the integer closest to
- @scheme[x], resolving ties in favor of an even number.
+ @racket[x], resolving ties in favor of an even number.
@mz-examples[(round 17/4) (round -17/4) (round 2.5) (round -2.5)]}
@defproc[(floor [x real?]) integer?]{ Returns the largest integer is that
- is no more than @scheme[x].
+ is no more than @racket[x].
@mz-examples[(floor 17/4) (floor -17/4) (floor 2.5) (floor -2.5)]}
@defproc[(ceiling [x real?]) integer?]{ Returns the smallest integer is
- that is at least as large as @scheme[x].
+ that is at least as large as @racket[x].
@mz-examples[(ceiling 17/4) (ceiling -17/4) (ceiling 2.5) (ceiling -2.5)]}
@defproc[(truncate [x real?]) integer?]{ Returns the integer farthest
- from @scheme[0] that is no closer to @scheme[0] than @scheme[x].
+ from @racket[0] that is no closer to @racket[0] than @racket[x].
@mz-examples[(truncate 17/4) (truncate -17/4) (truncate 2.5) (truncate -2.5)]}
@defproc[(numerator [q rational?]) integer?]{
- Coreces @scheme[q] to an exact number, finds the numerator of the number
+ Coreces @racket[q] to an exact number, finds the numerator of the number
expressed in its simplest fractional form, and returns this number
- coerced to the exactness of @scheme[q].
+ coerced to the exactness of @racket[q].
@mz-examples[(numerator 5) (numerator 34/8) (numerator 2.3)]}
@defproc[(denominator [q rational?]) integer?]{
- Coreces @scheme[q] to an exact number, finds the numerator of the number
+ Coreces @racket[q] to an exact number, finds the numerator of the number
expressed in its simplest fractional form, and returns this number
- coerced to the exactness of @scheme[q].
+ coerced to the exactness of @racket[q].
@mz-examples[(denominator 5) (denominator 34/8) (denominator 2.3)]}
@defproc[(rationalize [x real?][tolerance real?]) real?]{
-Among the real numbers within @scheme[(abs tolerance)] of @scheme[x],
+Among the real numbers within @racket[(abs tolerance)] of @racket[x],
returns the one corresponding to an exact number whose
-@scheme[denominator] is smallest. If multiple integers are within
-@scheme[tolerance] of @scheme[x], the one closest to @scheme[0] is
+@racket[denominator] is smallest. If multiple integers are within
+@racket[tolerance] of @racket[x], the one closest to @racket[0] is
used.
@mz-examples[
@@ -374,39 +374,39 @@ used.
@section{Number Comparison}
@defproc[(= [z number?] [w number?] ...+) boolean?]{ Returns
- @scheme[#t] if all of the arguments are numerically equal,
- @scheme[#f] otherwise. An inexact number is numerically equal to an
+ @racket[#t] if all of the arguments are numerically equal,
+ @racket[#f] otherwise. An inexact number is numerically equal to an
exact number when the exact coercion of the inexact number is the
- exact number. Also, @scheme[0.0] and @scheme[-0.0] are numerically
- equal, but @scheme[+nan.0] is not numerically equal to itself.
+ exact number. Also, @racket[0.0] and @racket[-0.0] are numerically
+ equal, but @racket[+nan.0] is not numerically equal to itself.
@mz-examples[(= 1 1.0) (= 1 2) (= 2+3i 2+3i 2+3i)]}
-@defproc[(< [x real?] [y real?] ...+) boolean?]{ Returns @scheme[#t] if
+@defproc[(< [x real?] [y real?] ...+) boolean?]{ Returns @racket[#t] if
the arguments in the given order are in strictly increasing,
- @scheme[#f] otherwise.
+ @racket[#f] otherwise.
@mz-examples[(< 1 1) (< 1 2 3) (< 1 +inf.0) (< 1 +nan.0)]}
-@defproc[(<= [x real?] [y real?] ...+) boolean?]{ Returns @scheme[#t]
+@defproc[(<= [x real?] [y real?] ...+) boolean?]{ Returns @racket[#t]
if the arguments in the given order are in non-decreasing,
- @scheme[#f] otherwise.
+ @racket[#f] otherwise.
@mz-examples[(<= 1 1) (<= 1 2 1)]}
-@defproc[(> [x real?] [y real?] ...+) boolean?]{ Returns @scheme[#t] if
+@defproc[(> [x real?] [y real?] ...+) boolean?]{ Returns @racket[#t] if
the arguments in the given order are in strictly decreasing,
- @scheme[#f] otherwise.
+ @racket[#f] otherwise.
@mz-examples[(> 1 1) (> 3 2 1) (> +inf.0 1) (< +nan.0 1)]}
-@defproc[(>= [x real?] [y real?] ...+) boolean?]{ Returns @scheme[#t]
+@defproc[(>= [x real?] [y real?] ...+) boolean?]{ Returns @racket[#t]
if the arguments in the given order are in non-increasing,
- @scheme[#f] otherwise.
+ @racket[#f] otherwise.
@mz-examples[(>= 1 1) (>= 1 2 1)]}
@@ -415,45 +415,45 @@ used.
@section{Powers and Roots}
@defproc[(sqrt [z number?]) number?]{ Returns the principal
- @as-index{square root} of @scheme[z]. The result is exact if
- @scheme[z] is exact and @scheme[z]'s square root is rational. See
- also @scheme[integer-sqrt].
+ @as-index{square root} of @racket[z]. The result is exact if
+ @racket[z] is exact and @racket[z]'s square root is rational. See
+ also @racket[integer-sqrt].
@mz-examples[(sqrt 4/9) (sqrt 2) (sqrt -1)]}
-@defproc[(integer-sqrt [n integer?]) complex?]{ Returns @scheme[(floor
- (sqrt n))] for positive @scheme[n]. For negative @scheme[n], the result is
- @scheme[(* (integer-sqrt (- n)) 0+i)].
+@defproc[(integer-sqrt [n integer?]) complex?]{ Returns @racket[(floor
+ (sqrt n))] for positive @racket[n]. For negative @racket[n], the result is
+ @racket[(* (integer-sqrt (- n)) 0+i)].
@mz-examples[(integer-sqrt 4.0) (integer-sqrt 5)]}
@defproc[(integer-sqrt/remainder [n integer?])
(values integer? integer?)]{
- Returns @scheme[(integer-sqrt n)] and @scheme[(- n (expt
+ Returns @racket[(integer-sqrt n)] and @racket[(- n (expt
(integer-sqrt n) 2))].
@mz-examples[(integer-sqrt/remainder 4.0) (integer-sqrt/remainder 5)]}
-@defproc[(expt [z number?] [w number?]) number?]{ Returns @scheme[z]
- raised to the power of @scheme[w]. If @scheme[w] is exact @scheme[0],
- the result is @scheme[1]. If @scheme[z] is exact @scheme[0] and
- @scheme[w] is negative, the @exnraise[exn:fail:contract].
+@defproc[(expt [z number?] [w number?]) number?]{ Returns @racket[z]
+ raised to the power of @racket[w]. If @racket[w] is exact @racket[0],
+ the result is @racket[1]. If @racket[z] is exact @racket[0] and
+ @racket[w] is negative, the @exnraise[exn:fail:contract].
@mz-examples[(expt 2 3) (expt 4 0.5) (expt +inf.0 0)]}
@defproc[(exp [z number?]) number?]{ Returns Euler's number raised to the
- power of @scheme[z]. The result is normally inexact, but it is
- @scheme[1] when @scheme[z] is an exact @scheme[0].
+ power of @racket[z]. The result is normally inexact, but it is
+ @racket[1] when @racket[z] is an exact @racket[0].
@mz-examples[(exp 1) (exp 2+3i) (exp 0)]}
@defproc[(log [z number?]) number?]{ Returns the natural logarithm of
- @scheme[z]. The result is normally inexact, but it is
- @scheme[0] when @scheme[z] is an exact @scheme[1]. When @scheme[z]
- is exact @scheme[0], @exnraise[exn:fail:contract:divide-by-zero].
+ @racket[z]. The result is normally inexact, but it is
+ @racket[0] when @racket[z] is an exact @racket[1]. When @racket[z]
+ is exact @racket[0], @exnraise[exn:fail:contract:divide-by-zero].
@mz-examples[(log (exp 1)) (log 2+3i) (log 1)]}
@@ -461,31 +461,31 @@ used.
@; ------------------------------------------------------------------------
@section{Trignometric Functions}
-@defproc[(sin [z number?]) number?]{ Returns the sine of @scheme[z], where
- @scheme[z] is in radians.
+@defproc[(sin [z number?]) number?]{ Returns the sine of @racket[z], where
+ @racket[z] is in radians.
@mz-examples[(sin 3.14159) (sin 1+05.i)]}
-@defproc[(cos [z number?]) number?]{ Returns the cosine of @scheme[z],
- where @scheme[z] is in radians.
+@defproc[(cos [z number?]) number?]{ Returns the cosine of @racket[z],
+ where @racket[z] is in radians.
@mz-examples[(cos 3.14159) (cos 1+05.i)]}
-@defproc[(tan [z number?]) number?]{ Returns the tangent of @scheme[z],
- where @scheme[z] is in radians.
+@defproc[(tan [z number?]) number?]{ Returns the tangent of @racket[z],
+ where @racket[z] is in radians.
@mz-examples[(tan 0.7854) (tan 1+05.i)]}
-@defproc[(asin [z number?]) number?]{ Returns the arcsin in radians of @scheme[z].
+@defproc[(asin [z number?]) number?]{ Returns the arcsin in radians of @racket[z].
@mz-examples[(asin 0.25) (asin 1+05.i)]}
@defproc[(acos [z number?]) number?]{ Returns the arccosine in radians
- of @scheme[z].
+ of @racket[z].
@mz-examples[(acos 0.25) (acos 1+05.i)]}
@@ -494,15 +494,15 @@ used.
[(atan [y real?] [x real?]) number?])]{
In the one-argument case, returns the arctangent of the inexact
-approximation of @scheme[z], except that the result is an exact
-@scheme[0] for an exact @scheme[0] argument.
+approximation of @racket[z], except that the result is an exact
+@racket[0] for an exact @racket[0] argument.
-In the two-argument case, the result is roughly the same as @scheme[(/
-(exact->inexact y) (exact->inexact x))], but the signs of @scheme[y]
-and @scheme[x] determine the quadrant of the result. Moreover, a
-suitable angle is returned when @scheme[y] divided by @scheme[x]
-produces @scheme[+nan.0] in the case that neither @scheme[y] nor
-@scheme[x] is @scheme[+nan.0].
+In the two-argument case, the result is roughly the same as @racket[(/
+(exact->inexact y) (exact->inexact x))], but the signs of @racket[y]
+and @racket[x] determine the quadrant of the result. Moreover, a
+suitable angle is returned when @racket[y] divided by @racket[x]
+produces @racket[+nan.0] in the case that neither @racket[y] nor
+@racket[x] is @racket[+nan.0].
@mz-examples[(atan 0.5) (atan 2 1) (atan -2 -1) (atan 1+05.i) (atan +inf.0 -inf.0)]}
@@ -510,13 +510,13 @@ produces @scheme[+nan.0] in the case that neither @scheme[y] nor
@section{Complex Numbers}
@defproc[(make-rectangular [x real?] [y real?]) number?]{ Returns
- @scheme[(+ x (* y 0+1i))].
+ @racket[(+ x (* y 0+1i))].
@mz-examples[(make-rectangular 3 4.0)]}
@defproc[(make-polar [magnitude real?] [angle real?]) number?]{ Returns
- @scheme[(+ (* magnitude (cos angle)) (* magnitude (sin angle) 0+1i))].
+ @racket[(+ (* magnitude (cos angle)) (* magnitude (sin angle) 0+1i))].
@mz-examples[#:eval math-eval
(make-polar 10 (* pi 1/2))
@@ -524,26 +524,26 @@ produces @scheme[+nan.0] in the case that neither @scheme[y] nor
@defproc[(real-part [z number?]) real?]{ Returns the real part of
- the complex number @scheme[z] in rectangle coordinates.
+ the complex number @racket[z] in rectangle coordinates.
@mz-examples[(real-part 3+4i) (real-part 5.0)]}
@defproc[(imag-part [z number?]) real?]{ Returns the imaginary part of
- the complex number @scheme[z] in rectangle coordinates.
+ the complex number @racket[z] in rectangle coordinates.
@mz-examples[(imag-part 3+4i) (imag-part 5.0) (imag-part 5.0+0.0i)]}
@defproc[(magnitude [z number?]) (and/c real? (not/c negative?))]{
- Returns the magnitude of the complex number @scheme[z] in polar
+ Returns the magnitude of the complex number @racket[z] in polar
coordinates.
@mz-examples[(magnitude -3) (magnitude 3.0) (magnitude 3+4i)]}
@defproc[(angle [z number?]) real?]{ Returns the angle of
- the complex number @scheme[z] in polar coordinates.
+ the complex number @racket[z] in polar coordinates.
@mz-examples[(angle -3) (angle 3.0) (angle 3+4i) (angle +inf.0+inf.0i)]}
@@ -553,31 +553,31 @@ produces @scheme[+nan.0] in the case that neither @scheme[y] nor
@section-index{logical operators}
@defproc[(bitwise-ior [n exact-integer?] ...) exact-integer?]{ Returns
- the bitwise ``inclusive or'' of the @scheme[n]s in their (semi-infinite)
+ the bitwise ``inclusive or'' of the @racket[n]s in their (semi-infinite)
two's complement representation. If no arguments are provided, the
- result is @scheme[0].
+ result is @racket[0].
@mz-examples[(bitwise-ior 1 2) (bitwise-ior -32 1)]}
@defproc[(bitwise-and [n exact-integer?] ...) exact-integer?]{ Returns
- the bitwise ``and'' of the @scheme[n]s in their (semi-infinite) two's
+ the bitwise ``and'' of the @racket[n]s in their (semi-infinite) two's
complement representation. If no arguments are provided, the result
- is @scheme[-1].
+ is @racket[-1].
@mz-examples[(bitwise-and 1 2) (bitwise-and -32 -1)]}
@defproc[(bitwise-xor [n exact-integer?] ...) exact-integer?]{ Returns
- the bitwise ``exclusive or'' of the @scheme[n]s in their (semi-infinite)
+ the bitwise ``exclusive or'' of the @racket[n]s in their (semi-infinite)
two's complement representation. If no arguments are provided, the
- result is @scheme[0].
+ result is @racket[0].
@mz-examples[(bitwise-xor 1 5) (bitwise-xor -32 -1)]}
@defproc[(bitwise-not [n exact-integer?]) exact-integer?]{ Returns the
- bitwise ``not'' of @scheme[n] in its (semi-infinite) two's complement
+ bitwise ``not'' of @racket[n] in its (semi-infinite) two's complement
representation.
@mz-examples[(bitwise-not 5) (bitwise-not -1)]}
@@ -586,12 +586,12 @@ produces @scheme[+nan.0] in the case that neither @scheme[y] nor
@defproc[(bitwise-bit-set? [n exact-integer?] [m exact-nonnegative-integer?])
boolean?]{
-Returns @scheme[#t] when the @scheme[m]th bit of @scheme[n] is set in @scheme[n]'s
+Returns @racket[#t] when the @racket[m]th bit of @racket[n] is set in @racket[n]'s
(semi-infinite) two's complement representation.
This operation is equivalent to
-@scheme[(not (zero? (bitwise-and n (arithmetic-shift 1 m))))],
-but it is faster and runs in constant time when @scheme[n] is positive.
+@racket[(not (zero? (bitwise-and n (arithmetic-shift 1 m))))],
+but it is faster and runs in constant time when @racket[n] is positive.
@mz-examples[(bitwise-bit-set? 5 0) (bitwise-bit-set? 5 2) (bitwise-bit-set? -5 (expt 2 700))]}
@@ -602,18 +602,18 @@ but it is faster and runs in constant time when @scheme[n] is positive.
(start . <= . end))])
exact-integer?]{
-Extracts the bits between position @scheme[start] and @scheme[(- end 1)] (inclusive)
-from @scheme[n] and shifts them down to the least significant portion of the number.
+Extracts the bits between position @racket[start] and @racket[(- end 1)] (inclusive)
+from @racket[n] and shifts them down to the least significant portion of the number.
This operation is equivalent to the computation
-@schemeblock[
+@racketblock[
(bitwise-and (sub1 (arithmetic-shift 1 (- end start)))
(arithmetic-shift n (- start)))
]
-but it runs in constant time when @scheme[n] is positive, @scheme[start] and
-@scheme[end] are fixnums, and @scheme[(- end start)] is no more than
+but it runs in constant time when @racket[n] is positive, @racket[start] and
+@racket[end] are fixnums, and @racket[(- end start)] is no more than
the maximum width of a fixnum.
Each pair of examples below uses the same numbers, showing the result
@@ -629,19 +629,19 @@ both in binary and as integers.
@defproc[(arithmetic-shift [n exact-integer?] [m exact-integer?])
- exact-integer?]{ Returns the bitwise ``shift'' of @scheme[n] in its
- (semi-infinite) two's complement representation. If @scheme[m] is
- non-negative, the integer @scheme[n] is shifted left by @scheme[m] bits;
- i.e., @scheme[m] new zeros are introduced as rightmost digits. If
- @scheme[m] is negative, @scheme[n] is shifted right by @scheme[(- m)]
- bits; i.e., the rightmost @scheme[m] digits are dropped.
+ exact-integer?]{ Returns the bitwise ``shift'' of @racket[n] in its
+ (semi-infinite) two's complement representation. If @racket[m] is
+ non-negative, the integer @racket[n] is shifted left by @racket[m] bits;
+ i.e., @racket[m] new zeros are introduced as rightmost digits. If
+ @racket[m] is negative, @racket[n] is shifted right by @racket[(- m)]
+ bits; i.e., the rightmost @racket[m] digits are dropped.
@mz-examples[(arithmetic-shift 1 10) (arithmetic-shift 255 -3)]}
@defproc[(integer-length [n exact-integer?]) exact-integer?]{ Returns
the number of bits in the (semi-infinite) two's complement
- representation of @scheme[n] after removing all leading zeros (for
- non-negative @scheme[n]) or ones (for negative @scheme[n]).
+ representation of @racket[n] after removing all leading zeros (for
+ non-negative @racket[n]) or ones (for negative @racket[n]).
@mz-examples[(integer-length 8) (integer-length -8)]}
@@ -656,14 +656,14 @@ both in binary and as integers.
(current-pseudo-random-generator)])
(and/c real? inexact? (>/c 0) (vector [generator pseudo-random-generator?])
vector?]{
Produces a vector that represents the complete internal state of
-@scheme[generator]. The vector is suitable as an argument to
-@scheme[vector->pseudo-random-generator] to recreate the generator in
+@racket[generator]. The vector is suitable as an argument to
+@racket[vector->pseudo-random-generator] to recreate the generator in
its current state (across runs and across platforms).}
@@ -710,10 +710,10 @@ its current state (across runs and across platforms).}
pseudo-random-generator?]{
Produces a pseudo-random number generator whose internal state
-corresponds to @scheme[vec]. The vector @scheme[vec] must contain six
+corresponds to @racket[vec]. The vector @racket[vec] must contain six
exact integers; the first three integers must be in the range
-@scheme[0] to @scheme[4294967086], inclusive; the last three integers
-must be in the range @scheme[0] to @scheme[4294944442], inclusive; at
+@racket[0] to @racket[4294967086], inclusive; the last three integers
+must be in the range @racket[0] to @racket[4294944442], inclusive; at
least one of the first three integers must be non-zero; and at least
one of the last three integers must be non-zero.}
@@ -721,8 +721,8 @@ one of the last three integers must be non-zero.}
[vec vector?])
void?]{
-Like @scheme[vector->pseudo-random-generator], but changes
-@scheme[generator] to the given state, instead of creating a new
+Like @racket[vector->pseudo-random-generator], but changes
+@racket[generator] to the given state, instead of creating a new
generator.}
@; ------------------------------------------------------------------------
@@ -736,9 +736,9 @@ generator.}
@defproc[(number->string [z number?]
[radix (or/c 2 8 10 16) 10]) string?]{
- Returns a string that is the printed form of @scheme[z]
- in the base specific by @scheme[radix]. If @scheme[z] is inexact,
- @scheme[radix] must be @scheme[10], otherwise the
+ Returns a string that is the printed form of @racket[z]
+ in the base specific by @racket[radix]. If @racket[z] is inexact,
+ @racket[radix] must be @racket[10], otherwise the
@exnraise[exn:fail:contract].
@mz-examples[(number->string 3.0) (number->string 255 8)]}
@@ -747,10 +747,10 @@ generator.}
@defproc[(string->number [s string?] [radix (integer-in 2 16) 10])
(or/c number? #f)]{
-Reads and returns a number datum from @scheme[s] (see
-@secref["parse-number"]), returning @scheme[#f] if @scheme[s] does not
+Reads and returns a number datum from @racket[s] (see
+@secref["parse-number"]), returning @racket[#f] if @racket[s] does not
parse exactly as a number datum (with no whitespace). The optional
-@scheme[radix] argument specifies the default base for the number,
+@racket[radix] argument specifies the default base for the number,
which can be overriden by @litchar{#b}, @litchar{#o}, @litchar{#d}, or
@litchar{#x} in the string.
@@ -761,16 +761,16 @@ which can be overriden by @litchar{#b}, @litchar{#o}, @litchar{#d}, or
@defproc[(real->decimal-string [n real?] [decimal-digits exact-nonnegative-integer? 2])
string?]{
-Prints @scheme[n] into a string and returns the string. The printed
-form of @scheme[n] shows exactly @scheme[decimal-digits] digits after
-the decimal point. The printed for uses a minus sign if @scheme[n] is
-negative, and it does not use a plus sign if @scheme[n] is positive.
+Prints @racket[n] into a string and returns the string. The printed
+form of @racket[n] shows exactly @racket[decimal-digits] digits after
+the decimal point. The printed for uses a minus sign if @racket[n] is
+negative, and it does not use a plus sign if @racket[n] is positive.
-Before printing, @scheme[n] is converted to an exact number,
-multiplied by @scheme[(expt 10 decimal-digits)], rounded, and then
-divided again by @scheme[(expt 10 decimal-digits)]. The result of ths
+Before printing, @racket[n] is converted to an exact number,
+multiplied by @racket[(expt 10 decimal-digits)], rounded, and then
+divided again by @racket[(expt 10 decimal-digits)]. The result of ths
process is an exact number whose decimal representation has no more
-than @scheme[decimal-digits] digits after the decimal (and it is
+than @racket[decimal-digits] digits after the decimal (and it is
padded with trailing zeros if necessary).
@mz-examples[
@@ -786,12 +786,12 @@ padded with trailing zeros if necessary).
[end exact-nonnegative-integer? (bytes-length bstr)])
exact-integer?]{
-Converts the machine-format number encoded in @scheme[bstr] to an
-exact integer. The @scheme[start] and @scheme[end] arguments specify
-the substring to decode, where @scheme[(- end start)] must be
-@scheme[2], @scheme[4], or @scheme[8]. If @scheme[signed?] is true,
+Converts the machine-format number encoded in @racket[bstr] to an
+exact integer. The @racket[start] and @racket[end] arguments specify
+the substring to decode, where @racket[(- end start)] must be
+@racket[2], @racket[4], or @racket[8]. If @racket[signed?] is true,
then the bytes are decoded as a two's-complement number, otherwise it
-is decoded as an unsigned integer. If @scheme[big-endian?] is true,
+is decoded as an unsigned integer. If @racket[big-endian?] is true,
then the first character's ASCII value provides the most significant
eight bits of the number, otherwise the first character provides the
least-significant eight bits, and so on.}
@@ -807,23 +807,23 @@ least-significant eight bits, and so on.}
[start exact-nonnegative-integer? 0])
bytes?]{
-Converts the exact integer @scheme[n] to a machine-format number
-encoded in a byte string of length @scheme[size-n], which must be
-@scheme[2], @scheme[4], or @scheme[8]. If @scheme[signed?] is true,
+Converts the exact integer @racket[n] to a machine-format number
+encoded in a byte string of length @racket[size-n], which must be
+@racket[2], @racket[4], or @racket[8]. If @racket[signed?] is true,
then the number is encoded as two's complement, otherwise it is
-encoded as an unsigned bit stream. If @scheme[big-endian?] is true,
+encoded as an unsigned bit stream. If @racket[big-endian?] is true,
then the most significant eight bits of the number are encoded in the
first character of the resulting byte string, otherwise the
least-significant bits are encoded in the first byte, and so on.
-The @scheme[dest-bstr] argument must be a mutable byte string of
-length @scheme[size-n]. The encoding of @scheme[n] is written into
-@scheme[dest-bstr] starting at offset @scheme[start], and
-@scheme[dest-bstr] is returned as the result.
+The @racket[dest-bstr] argument must be a mutable byte string of
+length @racket[size-n]. The encoding of @racket[n] is written into
+@racket[dest-bstr] starting at offset @racket[start], and
+@racket[dest-bstr] is returned as the result.
-If @scheme[n] cannot be encoded in a string of the requested size and
-format, the @exnraise[exn:fail:contract]. If @scheme[dest-bstr] is not
-of length @scheme[size-n], the @exnraise[exn:fail:contract].}
+If @racket[n] cannot be encoded in a string of the requested size and
+format, the @exnraise[exn:fail:contract]. If @racket[dest-bstr] is not
+of length @racket[size-n], the @exnraise[exn:fail:contract].}
@defproc[(floating-point-bytes->real [bstr bytes?]
@@ -832,10 +832,10 @@ of length @scheme[size-n], the @exnraise[exn:fail:contract].}
[end exact-nonnegative-integer? (bytes-length bstr)])
(and/c real? inexact?)]{
-Converts the IEEE floating-point number encoded in @scheme[bstr] from
-position @scheme[start] (inclusive) to @scheme[end] (exclusive) to an
-inexact real number. The difference between @scheme[start] an
-@scheme[end] must be either 4 or 8 bytes. If @scheme[big-endian?] is
+Converts the IEEE floating-point number encoded in @racket[bstr] from
+position @racket[start] (inclusive) to @racket[end] (exclusive) to an
+inexact real number. The difference between @racket[start] an
+@racket[end] must be either 4 or 8 bytes. If @racket[big-endian?] is
true, then the first byte's ASCII value provides the most significant
eight bits of the IEEE representation, otherwise the first byte
provides the least-significant eight bits, and so on.}
@@ -850,26 +850,26 @@ provides the least-significant eight bits, and so on.}
[start exact-nonnegative-integer? 0])
bytes?]{
-Converts the real number @scheme[x] to its IEEE representation in a
-byte string of length @scheme[size-n], which must be @scheme[4] or
-@scheme[8]. If @scheme[big-endian?] is true, then the most significant
+Converts the real number @racket[x] to its IEEE representation in a
+byte string of length @racket[size-n], which must be @racket[4] or
+@racket[8]. If @racket[big-endian?] is true, then the most significant
eight bits of the number are encoded in the first byte of the
resulting byte string, otherwise the least-significant bits are
encoded in the first character, and so on.
-The @scheme[dest-bstr] argument must be a mutable byte string of
-length @scheme[size-n]. The encoding of @scheme[n] is written into
-@scheme[dest-bstr] starting with byte @scheme[start], and
-@scheme[dest-bstr] is returned as the result.
+The @racket[dest-bstr] argument must be a mutable byte string of
+length @racket[size-n]. The encoding of @racket[n] is written into
+@racket[dest-bstr] starting with byte @racket[start], and
+@racket[dest-bstr] is returned as the result.
-If @scheme[dest-bstr] is provided and it has less than @scheme[start]
-plus @scheme[size-n] bytes, the @exnraise[exn:fail:contract].}
+If @racket[dest-bstr] is provided and it has less than @racket[start]
+plus @racket[size-n] bytes, the @exnraise[exn:fail:contract].}
@defproc[(system-big-endian?) boolean?]{
-Returns @scheme[#t] if the native encoding of numbers is big-endian
-for the machine running Scheme, @scheme[#f] if the native encoding
+Returns @racket[#t] if the native encoding of numbers is big-endian
+for the machine running Racket, @racket[#f] if the native encoding
is little-endian.}
@; ------------------------------------------------------------------------
@@ -877,11 +877,11 @@ is little-endian.}
@defmodule[racket/flonum]
-The @schememodname[racket/flonum] library provides operations like
-@scheme[fl+] that consume and produce only real @tech{inexact
+The @racketmodname[racket/flonum] library provides operations like
+@racket[fl+] that consume and produce only real @tech{inexact
numbers}, which are also known as @deftech{flonums}. Flonum-specific
operations provide can better performance when used consistently, and
-they are as safe as generic operations like @scheme[+].
+they are as safe as generic operations like @racket[+].
@guidealso["fixnums+flonums"]
@@ -895,7 +895,7 @@ they are as safe as generic operations like @scheme[+].
@defproc[(flabs [a inexact-real?]) inexact-real?]
)]{
-Like @scheme[+], @scheme[-], @scheme[*], @scheme[/], and @scheme[abs],
+Like @racket[+], @racket[-], @racket[*], @racket[/], and @racket[abs],
but constrained to consume @tech{flonums}. The result is always a
@tech{flonum}.}
@@ -909,8 +909,8 @@ but constrained to consume @tech{flonums}. The result is always a
@defproc[(flmax [a inexact-real?][b inexact-real?]) inexact-real?]
)]{
-Like @scheme[=], @scheme[<], @scheme[>], @scheme[<=], @scheme[>=],
-@scheme[min], and @scheme[max], but constrained to consume
+Like @racket[=], @racket[<], @racket[>], @racket[<=], @racket[>=],
+@racket[min], and @racket[max], but constrained to consume
@tech{flonums}.}
@deftogether[(
@@ -920,8 +920,8 @@ Like @scheme[=], @scheme[<], @scheme[>], @scheme[<=], @scheme[>=],
@defproc[(fltruncate [a inexact-real?]) inexact-real?]
)]{
-Like @scheme[round], @scheme[floor], @scheme[ceiling], and
-@scheme[truncate], but constrained to consume @tech{flonums}.}
+Like @racket[round], @racket[floor], @racket[ceiling], and
+@racket[truncate], but constrained to consume @tech{flonums}.}
@deftogether[(
@defproc[(flsin [a inexact-real?]) inexact-real?]
@@ -935,16 +935,16 @@ Like @scheme[round], @scheme[floor], @scheme[ceiling], and
@defproc[(flsqrt [a inexact-real?]) inexact-real?]
)]{
-Like @scheme[sin], @scheme[cos], @scheme[tan], @scheme[asin],
-@scheme[acos], @scheme[atan], @scheme[log], @scheme[exp], and
-@scheme[flsqrt], but constrained to consume and produce
-@tech{flonums}. The result is @scheme[+nan.0] when a number outside
-the range @scheme[-1.0] to @scheme[1.0] is given to @scheme[flasin] or
-@scheme[flacos], or when a negative number is given to @scheme[fllog]
-or @scheme[flsqrt].}
+Like @racket[sin], @racket[cos], @racket[tan], @racket[asin],
+@racket[acos], @racket[atan], @racket[log], @racket[exp], and
+@racket[flsqrt], but constrained to consume and produce
+@tech{flonums}. The result is @racket[+nan.0] when a number outside
+the range @racket[-1.0] to @racket[1.0] is given to @racket[flasin] or
+@racket[flacos], or when a negative number is given to @racket[fllog]
+or @racket[flsqrt].}
@defproc[(->fl [a exact-integer?]) inexact-real?]{
-Like @scheme[exact->inexact], but constrained to consume exact integers,
+Like @racket[exact->inexact], but constrained to consume exact integers,
so the result is always a @tech{flonum}.
}
@@ -953,22 +953,22 @@ so the result is always a @tech{flonum}.
A @deftech{flvector} is like a @tech{vector}, but it holds only
inexact real numbers. This representation can be more compact, and
unsafe operations on @tech{flvector}s (see
-@schememodname[racket/unsafe/ops]) can execute more efficiently than
+@racketmodname[racket/unsafe/ops]) can execute more efficiently than
unsafe operations on @tech{vectors} of inexact reals.
-An f64vector as provided by @schememodname[ffi/vector] stores the
+An f64vector as provided by @racketmodname[ffi/vector] stores the
same kinds of values as an @tech{flvector}, but with extra
indirections that make f64vectors more convenient for working with
foreign libraries. The lack of indirections make unsafe
@tech{flvector} access more efficient.
-Two @tech{flvectors} are @scheme[equal?] if they have the same length,
+Two @tech{flvectors} are @racket[equal?] if they have the same length,
and if the values in corresponding slots of the @tech{flvectors} are
-@scheme[equal?].
+@racket[equal?].
@defproc[(flvector? [v any/c]) boolean?]{
-Returns @scheme[#t] if @scheme[v] is a @tech{flvector}, @scheme[#f] otherwise.}
+Returns @racket[#t] if @racket[v] is a @tech{flvector}, @racket[#f] otherwise.}
@defproc[(flvector [x inexact-real?] ...) flvector?]{
@@ -978,52 +978,52 @@ Creates a @tech{flvector} containing the given inexact real numbers.}
[x inexact-real? 0.0])
flvector?]{
-Creates a @tech{flvector} with @scheme[size] elements, where every
-slot in the @tech{flvector} is filled with @scheme[x].}
+Creates a @tech{flvector} with @racket[size] elements, where every
+slot in the @tech{flvector} is filled with @racket[x].}
@defproc[(flvector-length [vec flvector?]) exact-nonnegative-integer?]{
-Returns the length of @scheme[vec] (i.e., the number of slots in the
+Returns the length of @racket[vec] (i.e., the number of slots in the
@tech{flvector}).}
@defproc[(flvector-ref [vec flvector?] [pos exact-nonnegative-integer?])
inexact-real?]{
-Returns the inexact real number in slot @scheme[pos] of
-@scheme[vec]. The first slot is position @scheme[0], and the last slot
-is one less than @scheme[(flvector-length vec)].}
+Returns the inexact real number in slot @racket[pos] of
+@racket[vec]. The first slot is position @racket[0], and the last slot
+is one less than @racket[(flvector-length vec)].}
@defproc[(flvector-set! [vec flvector?] [pos exact-nonnegative-integer?]
[x inexact-real?])
inexact-real?]{
-Sets the inexact real number in slot @scheme[pos] of @scheme[vec]. The
-first slot is position @scheme[0], and the last slot is one less than
-@scheme[(flvector-length vec)].}
+Sets the inexact real number in slot @racket[pos] of @racket[vec]. The
+first slot is position @racket[0], and the last slot is one less than
+@racket[(flvector-length vec)].}
@section{Fixnum Operations}
@defmodule[racket/fixnum]
-The @schememodname[racket/fixnum] library provides operations like
-@scheme[fx+] that consume and produce only fixnums. The operations in
+The @racketmodname[racket/fixnum] library provides operations like
+@racket[fx+] that consume and produce only fixnums. The operations in
this library are meant to be safe versions of unsafe operations like
-@scheme[unsafe-fx+]. These safe operations are generally no faster
-than using generic primitives like @scheme[+].
+@racket[unsafe-fx+]. These safe operations are generally no faster
+than using generic primitives like @racket[+].
-The expected use of the @schememodname[racket/fixnum] library is for
-code where the @scheme[require] of @schememodname[racket/fixnum] is
+The expected use of the @racketmodname[racket/fixnum] library is for
+code where the @racket[require] of @racketmodname[racket/fixnum] is
replaced with
-@schemeblock[(require (filtered-in
+@racketblock[(require (filtered-in
(λ (name) (regexp-replace #rx"unsafe-" name ""))
racket/unsafe/ops))]
to drop in unsafe versions of the library. Alternately, when
encountering crashes with code that uses unsafe fixnum operations, use
-the @schememodname[racket/fixnum] library to help debug the problems.
+the @racketmodname[racket/fixnum] library to help debug the problems.
@deftogether[(
@defproc[(fx+ [a fixnum?][b fixnum?]) fixnum?]
@@ -1035,10 +1035,10 @@ the @schememodname[racket/fixnum] library to help debug the problems.
@defproc[(fxabs [a fixnum?]) fixnum?]
)]{
-Safe versions of @scheme[unsafe-fx+], @scheme[unsafe-fx-],
-@scheme[unsafe-fx*], @scheme[unsafe-fxquotient],
-@scheme[unsafe-fxremainder], @scheme[unsafe-fxmodulo], and
-@scheme[unsafe-fxabs]. The
+Safe versions of @racket[unsafe-fx+], @racket[unsafe-fx-],
+@racket[unsafe-fx*], @racket[unsafe-fxquotient],
+@racket[unsafe-fxremainder], @racket[unsafe-fxmodulo], and
+@racket[unsafe-fxabs]. The
@exnraise[exn:fail:contract:non-fixnum-result] if the arithmetic
result would not be a fixnum.}
@@ -1052,9 +1052,9 @@ result would not be a fixnum.}
@defproc[(fxrshift [a fixnum?][b fixnum?]) fixnum?]
)]{
-Safe versions of @scheme[unsafe-fxand], @scheme[unsafe-fxior],
-@scheme[unsafe-fxxor], @scheme[unsafe-fxnot],
-@scheme[unsafe-fxlshift], and @scheme[unsafe-fxrshift]. The
+Safe versions of @racket[unsafe-fxand], @racket[unsafe-fxior],
+@racket[unsafe-fxxor], @racket[unsafe-fxnot],
+@racket[unsafe-fxlshift], and @racket[unsafe-fxrshift]. The
@exnraise[exn:fail:contract:non-fixnum-result] if the arithmetic
result would not be a fixnum.}
@@ -1069,9 +1069,9 @@ result would not be a fixnum.}
@defproc[(fxmax [a fixnum?][b fixnum?]) fixnum?]
)]{
-Safe versions of @scheme[unsafe-fx=], @scheme[unsafe-fx<],
- @scheme[unsafe-fx>], @scheme[unsafe-fx<=], @scheme[unsafe-fx>=],
- @scheme[unsafe-fxmin], and @scheme[unsafe-fxmax].}
+Safe versions of @racket[unsafe-fx=], @racket[unsafe-fx<],
+ @racket[unsafe-fx>], @racket[unsafe-fx<=], @racket[unsafe-fx>=],
+ @racket[unsafe-fxmin], and @racket[unsafe-fxmax].}
@@ -1087,11 +1087,11 @@ diameter: @number->string[pi].}
@defproc[(sqr [z number?]) number?]{
-Returns @scheme[(* z z)].}
+Returns @racket[(* z z)].}
@defproc[(sgn [x real?]) (or/c 1 0 -1 1.0 0.0 -1.0)]{
-Returns the sign of @scheme[x] as either @math{-1}, @math{0}, or
+Returns the sign of @racket[x] as either @math{-1}, @math{0}, or
@math{1}.
@mz-examples[
@@ -1103,7 +1103,7 @@ Returns the sign of @scheme[x] as either @math{-1}, @math{0}, or
@defproc[(conjugate [z number?]) number?]{
-Returns the complex conjugate of @scheme[z].
+Returns the complex conjugate of @racket[z].
@mz-examples[
#:eval math-eval
@@ -1113,22 +1113,22 @@ Returns the complex conjugate of @scheme[z].
@defproc[(sinh [z number?]) number?]{
-Returns the hyperbolic sine of @scheme[z].}
+Returns the hyperbolic sine of @racket[z].}
@defproc[(cosh [z number?]) number?]{
-Returns the hyperbolic cosine of @scheme[z].}
+Returns the hyperbolic cosine of @racket[z].}
@defproc[(tanh [z number?]) number?]{
-Returns the hyperbolic tangent of @scheme[z].}
+Returns the hyperbolic tangent of @racket[z].}
@defproc[(order-of-magnitude [r (and/c real? positive?)]) (and/c exact? integer?)]{
-Computes the greatest exact integer @scheme[m] such that:
-@schemeblock[(<= (expt 10 m)
+Computes the greatest exact integer @racket[m] such that:
+@racketblock[(<= (expt 10 m)
(inexact->exact r))]
Hence also:
-@schemeblock[(< (inexact->exact r)
+@racketblock[(< (inexact->exact r)
(expt 10 (add1 m)))]
@mz-examples[#:eval math-eval
diff --git a/collects/scribblings/reference/package.scrbl b/collects/scribblings/reference/package.scrbl
index 3b8324bd15..05a9f2c3bf 100644
--- a/collects/scribblings/reference/package.scrbl
+++ b/collects/scribblings/reference/package.scrbl
@@ -5,7 +5,7 @@
@(define pack-eval (make-base-eval))
@interaction-eval[#:eval pack-eval (require racket/package)]
-@title[#:tag "package"]{Limiting Scope: @scheme[define-package], @scheme[open-package], ...}
+@title[#:tag "package"]{Limiting Scope: @racket[define-package], @racket[open-package], ...}
@note-lib-only[racket/package]
@@ -18,34 +18,34 @@
(code:line #:all-defined-except (id ...))])]
)]{
-@margin-note{The @scheme[define-package] form is based on the @schemeidfont{module}
+@margin-note{The @racket[define-package] form is based on the @racketidfont{module}
form of Chez Scheme @cite["Waddell99"].}
-The @scheme[define-package] form is similar to @scheme[module], except
-that it can appear in any definition context. The @scheme[form]s
-within a @scheme[define-package] form can be definitions or
+The @racket[define-package] form is similar to @racket[module], except
+that it can appear in any definition context. The @racket[form]s
+within a @racket[define-package] form can be definitions or
expressions; definitions are not visible outside the
-@scheme[define-package] form, but @scheme[exports] determines a subset
+@racket[define-package] form, but @racket[exports] determines a subset
of the bindings that can be made visible outside the package using
-the definition form @scheme[(open-package package-id)].
+the definition form @racket[(open-package package-id)].
-The @scheme[(id ...)] and @scheme[#:only (id ...)] @scheme[exports]
-forms are equivalent: exactly the listed @scheme[id]s are
-exported. The @scheme[#:all-defined] form exports all definitions from
-the package body, and @scheme[#:all-defined-except (id ...)] exports
-all definitions except the listed @scheme[id]s.
+The @racket[(id ...)] and @racket[#:only (id ...)] @racket[exports]
+forms are equivalent: exactly the listed @racket[id]s are
+exported. The @racket[#:all-defined] form exports all definitions from
+the package body, and @racket[#:all-defined-except (id ...)] exports
+all definitions except the listed @racket[id]s.
All of the usual definition forms work within a
-@scheme[define-package] body, and such definitions are visible to all
+@racket[define-package] body, and such definitions are visible to all
expressions within the body (and, in particular, the definitions can
-refer to each other). However, @scheme[define-package] handles
-@scheme[define*], @scheme[define*-syntax], @scheme[define*-values],
-@scheme[define*-syntaxes], and
-@scheme[open*-package] specially: the bindings introduced by those
-forms within a @scheme[define-package] body are visible only to
-@scheme[form]s that appear later in the body, and they can shadow any
-binding from preceding @scheme[form]s (even if the preceding binding
-did not use one of the special @schemeidfont{*} definition forms). If
+refer to each other). However, @racket[define-package] handles
+@racket[define*], @racket[define*-syntax], @racket[define*-values],
+@racket[define*-syntaxes], and
+@racket[open*-package] specially: the bindings introduced by those
+forms within a @racket[define-package] body are visible only to
+@racket[form]s that appear later in the body, and they can shadow any
+binding from preceding @racket[form]s (even if the preceding binding
+did not use one of the special @racketidfont{*} definition forms). If
an exported identifier is defined multiple times, the last definition
is the exported one.
@@ -70,17 +70,17 @@ little-russian-doll
@defform[(package-begin form ...)]{
-Similar to @scheme[define-package], but it only limits the visible of
-definitions without binding a package name. If the last @scheme[form]
+Similar to @racket[define-package], but it only limits the visible of
+definitions without binding a package name. If the last @racket[form]
is an expression, then the expression is in @tech{tail position} for
-the @scheme[package-begin] form, so that its result is the
-@scheme[package-begin] result.
+the @racket[package-begin] form, so that its result is the
+@racket[package-begin] result.
-A @scheme[package-begin] form can be used as an expression, but if it
+A @racket[package-begin] form can be used as an expression, but if it
is used in a context where definitions are allowed, then the
definitions are essentially spliced into the enclosing context (though
the defined bindings remain hidden outside the
-@scheme[package-begin]).
+@racket[package-begin]).
@examples[
#:eval pack-eval
@@ -98,10 +98,10 @@ secret
@defidform[open*-package]
)]{
-Equivalent to @scheme[define], @scheme[define-values],
-@scheme[define-syntax], @scheme[define-syntaxes],
-and @scheme[open-package], except within a
-@scheme[define-package] or @scheme[package-begin] form, where they
+Equivalent to @racket[define], @racket[define-values],
+@racket[define-syntax], @racket[define-syntaxes],
+and @racket[open-package], except within a
+@racket[define-package] or @racket[package-begin] form, where they
create bindings that are visible only to later body forms.
@examples[
@@ -127,19 +127,19 @@ cookies
@defproc[(package-original-identifiers [id identifier?]) (listof identifier?)]
)]{
-The @scheme[package?], @scheme[package-exported-identifiers], and
-@scheme[package-original-identifiers] functions are exported
-@scheme[for-syntax] by @schememodname[racket/package].
+The @racket[package?], @racket[package-exported-identifiers], and
+@racket[package-original-identifiers] functions are exported
+@racket[for-syntax] by @racketmodname[racket/package].
-The @scheme[package?] predicate returns @scheme[#t] if @scheme[v] is a
-package value as obtained by @scheme[syntax-local-value] on an
+The @racket[package?] predicate returns @racket[#t] if @racket[v] is a
+package value as obtained by @racket[syntax-local-value] on an
identifier that is bound to a package.
-Given such an identifier, the @scheme[package-exported-identifiers]
+Given such an identifier, the @racket[package-exported-identifiers]
function returns a list of identifiers that corresponding to the
bindings that would be introduced by opening the package in the
lexical context being expanded. The
-@scheme[package-original-identifiers] function returns a parallel list
+@racket[package-original-identifiers] function returns a parallel list
of identifiers for existing bindings of package's exports.}
@; ----------------------------------------------------------------------
diff --git a/collects/scribblings/reference/prog-steps.ss b/collects/scribblings/reference/prog-steps.rkt
similarity index 100%
rename from collects/scribblings/reference/prog-steps.ss
rename to collects/scribblings/reference/prog-steps.rkt
diff --git a/collects/scribblings/reference/promise.scrbl b/collects/scribblings/reference/promise.scrbl
index c71cc43498..6960fd06ff 100644
--- a/collects/scribblings/reference/promise.scrbl
+++ b/collects/scribblings/reference/promise.scrbl
@@ -10,9 +10,6 @@ A @deftech{promise} encapsulates an expression to be evaluated on
demand via @scheme[force]. After a promise has been @scheme[force]d,
every later @scheme[force] of the promise produces the same result.
-This module provides this functionality, and extends it to additional
-kinds of promises with various evaluation strategies.
-
@defproc[(promise? [v any/c]) boolean?]{
@@ -31,18 +28,18 @@ This includes multiple values and exceptions.}
@defform[(lazy body ...+)]{
Like @scheme[delay], if the last @scheme[body] produces a promise when
-forced, then this promise is @scheme[force]d too to obtain a value.
+forced, then this promise is @scheme[force]d, too, to obtain a value.
In other words, this form creates a composable promise, where the
computation of its body is ``attached'' to the computation of the
-following promise and a single @scheme[force] iterates through the
+following promise, and a single @scheme[force] iterates through the
whole chain, tail-calling each step.
Note that the last @scheme[body] of this form must produce a single
-value --- but this value can itself be a @scheme[delay] promise that
+value, but the value can itself be a @scheme[delay] promise that
returns multiple values.
-This form useful for implementing lazy libraries and languages, where
-tail-calls can be wrapped in a promise.}
+The @scheme[lazy] form useful for implementing lazy libraries and
+languages, where tail calls can be wrapped in a promise.}
@defproc[(force [v any/c]) any]{
@@ -57,9 +54,6 @@ the promise will raise the same exception every time.
If @scheme[v] is @scheme[force]d again before the original call to
@scheme[force] returns, then the @exnraise[exn:fail].
-Additional kinds of promises are also forced via @scheme[force]. See
-below for further details.
-
If @scheme[v] is not a promise, then it is returned as the result.}
@@ -78,56 +72,74 @@ Returns @scheme[#t] if @scheme[promise] is currently being forced.
@defform[(delay/name body ...+)]{
-Creates a ``call by name'' promise, that is similar to
+Creates a ``call-by-name'' promise that is similar to
@scheme[delay]-promises, except that the resulting value is not
-cached. It is essentially a thunk, wrapped in a way that
-@scheme[force] recognizes. Note that if a @scheme[delay/name] promise
-forces itself, no exception is raised.
-@; TODO: clarify that the point is that code that is written using
-@; `force', can be used with these promises too.
+cached. This kind of promise is essentially a thunk that is wrapped
+in a way that @scheme[force] recognizes.
-Note that this promise is never considered ``running'' or ``forced''
-in the sense of @scheme[promise-running?] and
-@scheme[promise-forced?].}
+If a @scheme[delay/name] promise forces itself, no exception is
+raised, the promise is never considered ``running'' or ``forced'' in
+the sense of @scheme[promise-running?] and @scheme[promise-forced?].}
@defform[(delay/sync body ...+)]{
-Conventional promises are not useful when multiple threads attempt to
-force them: when a promise is running, any additional threads that
-@scheme[force] it will get an exception. @scheme[delay/sync] is
-useful for such cases: if a second thread attempts to @scheme[force]
-such a promise, it will get blocked until the computation is done and
-an answer is available. If @scheme[force] is used with the promise as
-it is forced from the same thread, an exception is raised.
+Produces a promise where an attempt to @scheme[force] the promise by a
+thread other than one currently running the promise causes the
+@scheme[force] to block until a result is available. This kind of
+promise is also a @tech{synchronizable event} for use with
+@racket[sync]; @racket[sync]ing on the promise does not @scheme[force]
+it, but merely waits until a value is forced by another thread.
-In addition, these promises can be used with @scheme[sync], which
-blocks until it has been forced. Note that using @scheme[sync] this
-way is passive in the sense that it does not trigger evaluation of the
-promise.}
+If a promise created by @scheme[delay/sync] is forced on a thread that
+is already running the promise, an exception is raised in the same way
+as for promises created with @scheme[delay].}
-@defform[(delay/thread body ...+)]{
-@; TODO: document #:group keyword
+@defform/subs[(delay/thread body/option ...+)
+ ([body/option body
+ (code:line #:group thread-group-expr)])]{
-This kind of promise begins the computation immediately, but this
-happens on a separate thread. When the computation is done, the result
-is cached as usual. Note that exceptions are caught as usual, and will
-only be raised when @scheme[force]d. If such a promise is
-@scheme[force]d before a value is ready, the calling thread will be
-blocked until the computation terminates. These promises can also be
-used with @scheme[sync].}
+Like @scheme[delay/sync], but begins the computation immediately on a
+newly created thread. The thread is created under the @tech{thread
+group} specified by @scheme[thread-group-expr], which defaults to
+@scheme[(make-thread-group)]. A @racket[#:group] specification can
+appear at most once.
-@defform[(delay/idle body ...+)]{
-@; TODO: document #:wait-for, #:work-while, #:tick, #:use keywords
+Exceptions raised by the @racket[body]s are caught as usual and raised
+only when the promise is @scheme[force]d.}
-Similar to @scheme[delay/thread], but the computation thread gets to
-work only when the process is otherwise idle, as determined by
-@scheme[system-idle-evt], and the work is done in small runtime
-fragements, making it overall not raise total CPU use or hurt
-responsiveness. If the promise is @scheme[forced] before the
-computation is done, it will run the rest of the computation immediately
-without slicing the runtime. Using @scheme[sync] on these promises
-blocks as is the case with @scheme[delay/sync], and this happens in a
-passive way too, so the computation continues to work in low-priority.
+@defform/subs[(delay/idle body/option ...+)
+ ([body/option body
+ (code:line #:wait-for wait-evt-expr)
+ (code:line #:work-while while-evt-expr)
+ (code:line #:tick tick-secs-expr)
+ (code:line #:use use-ratio-expr)])]{
+
+Like @scheme[delay/thread], but with the following differences:
+
+@itemlist[
+
+ @item{the computation does not start until the event produced by
+ @scheme[wait-evt-expr] is ready, where the default is
+ @racket[(system-idle-evt)];}
+
+ @item{the computation thread gets to work only when the process is
+ otherwise idle as determined by @scheme[while-evt-expr], which
+ also defaults to @racket[(system-idle-evt)];}
+
+ @item{the thread is allowed to run only periodically: out of every
+ @scheme[tick-secs-expr] (defaults to @scheme[0.2]) seconds, the
+ thread is allowed to run @scheme[use-ratio-expr] (defaults to
+ @scheme[0.12]) of the time proportionally; i.e., the thread
+ runs for @scheme[(* tick-secs-expr use-ratio-expr)] seconds.}
+
+]
+
+If the promise is @scheme[forced] before the computation is done, it
+runs the rest of the computation immediately without waiting on events
+or periodically restricting evaluation.
+
+A @racket[#:wait-for], @racket[#:work-while], @racket[#:tick], or
+@racket[#:use] specification can appear at most once.
@;{
TODO: Say something on:
diff --git a/collects/scribblings/reference/reader-example.ss b/collects/scribblings/reference/reader-example.rkt
similarity index 100%
rename from collects/scribblings/reference/reader-example.ss
rename to collects/scribblings/reference/reader-example.rkt
diff --git a/collects/scribblings/reference/rx.ss b/collects/scribblings/reference/rx.rkt
similarity index 100%
rename from collects/scribblings/reference/rx.ss
rename to collects/scribblings/reference/rx.rkt
diff --git a/collects/scribblings/reference/sandbox.scrbl b/collects/scribblings/reference/sandbox.scrbl
index cab675a9cf..dc8bcf0c9c 100644
--- a/collects/scribblings/reference/sandbox.scrbl
+++ b/collects/scribblings/reference/sandbox.scrbl
@@ -515,7 +515,7 @@ inspector (see @racket[sandbox-make-code-inspector]) which prevents
loading of untrusted bytecode files --- the sandbox is set-up to allow
loading bytecode from files that are specified with
@racket['read-bytecode]. This specification is given by default to
-the PLT collection hierarchy (including user-specific libraries) and
+the Racket collection hierarchy (including user-specific libraries) and
to libraries that are explicitly specified in an @racket[#:allow-read]
argument. (Note that this applies for loading bytecode files only,
under a lower code inspector it is still impossible to use protected
diff --git a/collects/scribblings/reference/startup.scrbl b/collects/scribblings/reference/startup.scrbl
index 72880cda1c..aab4affba5 100644
--- a/collects/scribblings/reference/startup.scrbl
+++ b/collects/scribblings/reference/startup.scrbl
@@ -399,9 +399,6 @@ language specifies run-time configuration by
]
-The @racketmodname[racket/base] and @racketmodname[racket] languages
-do not currently specify a run-time configuration action.
-
A @racket['configure-runtime] query returns a list of vectors, instead
of directly configuring the environment, so that the indicated modules
to be bundled with a program when creating a stand-alone
diff --git a/collects/scribblings/reference/syntax.scrbl b/collects/scribblings/reference/syntax.scrbl
index a9996f0d50..581c30b1bd 100644
--- a/collects/scribblings/reference/syntax.scrbl
+++ b/collects/scribblings/reference/syntax.scrbl
@@ -538,7 +538,7 @@ corresponds to the default @tech{module name resolver}.
with a @litchar{.}), then @racket[rel-string] names a file within
the @filepath{mzlib} @tech{collection}. A @filepath{.ss}
suffix is converted to @filepath{.rkt}. (This convention is for
- compatibility with older version of PLT Racket.)
+ compatibility with older version of Racket.)
@examples[
(code:comment @#,t{@filepath{tar.rkt} module from the @filepath{mzlib} collection:})
@@ -551,7 +551,7 @@ corresponds to the default @tech{module name resolver}.
subcollection, etc., ending with a file name. No suffix is added
automatically, but a @filepath{.ss} suffix is converted to
@filepath{.rkt}. (This convention is for compatibility with older
- version of PLT Racket.)
+ version of Racket.)
@examples[
(code:comment @#,t{@filepath{tar.rkt} module from the @filepath{mzlib} collection:})
@@ -2304,6 +2304,8 @@ expression).
@;------------------------------------------------------------------------
@section[#:tag "quasiquote"]{Quasiquoting: @racket[quasiquote], @racket[unquote], and @racket[unquote-splicing]}
+@guideintro["qq"]{@racket[quasiquote]}
+
@defform[(quasiquote datum)]{
The same as @racket[(quote datum)] if @racket[datum] does not include
diff --git a/collects/scribblings/reference/threads.scrbl b/collects/scribblings/reference/threads.scrbl
index 539360c227..bf1b331e7c 100644
--- a/collects/scribblings/reference/threads.scrbl
+++ b/collects/scribblings/reference/threads.scrbl
@@ -3,13 +3,13 @@
@title[#:tag "threads"]{Threads}
-See @secref["thread-model"] for basic information on the PLT Racket
+See @secref["thread-model"] for basic information on the Racket
thread model. See also @secref["futures"].
When a thread is created, it is placed into the management of the
-@tech{current custodian} and added to the current thread group (see
-@secref["threadgroups"]). A thread can have any number of custodian
-managers added through @racket[thread-resume].
+@tech{current custodian} and added to the current @tech{thread
+group}. A thread can have any number of custodian managers added
+through @racket[thread-resume].
A thread that has not terminated can be garbage collected (see
@secref["gc-model"]) if it is unreachable and suspended or if it is
diff --git a/collects/scribblings/reference/unsafe.scrbl b/collects/scribblings/reference/unsafe.scrbl
index 30ccae242b..9875ae2ec9 100644
--- a/collects/scribblings/reference/unsafe.scrbl
+++ b/collects/scribblings/reference/unsafe.scrbl
@@ -12,7 +12,7 @@
@defmodule[racket/unsafe/ops]
All fuctions and forms provided by @schememodname[racket/base] and
-@schememodname[scheme] check their arguments to ensure that the
+@schememodname[racket] check their arguments to ensure that the
arguments conform to contracts and other constraints. For example,
@scheme[vector-ref] checks its arguments to ensure that the first
argument is a vector, that the second argument is an exact integer,
@@ -26,9 +26,9 @@ faster code. If arguments violate an unsafe function's constraints,
the function's behavior and result is unpredictable, and the entire
system can crash or become corrupted.
-All of the exported bindings of @schememodname[scheme] are protected
-in the sense of @scheme[protect-out], so access to unsafe operations
-can be prevented by adjusting the code inspector (see
+All of the exported bindings of @schememodname[racket/unsafe/ops] are
+protected in the sense of @scheme[protect-out], so access to unsafe
+operations can be prevented by adjusting the code inspector (see
@secref["modprotect"]).
@section{Unsafe Numeric Operations}
diff --git a/collects/scribblings/scheme/info.ss b/collects/scribblings/scheme/info.rkt
similarity index 100%
rename from collects/scribblings/scheme/info.ss
rename to collects/scribblings/scheme/info.rkt
diff --git a/collects/scribblings/scheme/scheme.scrbl b/collects/scribblings/scheme/scheme.scrbl
index 7e2e2a98c4..d35fafed28 100644
--- a/collects/scribblings/scheme/scheme.scrbl
+++ b/collects/scribblings/scheme/scheme.scrbl
@@ -81,8 +81,10 @@ with @schememodname[scheme/base] attached.}
@; ----------------------------------------------------------------------
-@compat-except[scheme/foreign racket/unsafe/ffi]{, except that @scheme[unsafe!]
-must be used to import the unsafe bindings of @scheme[racket/unsafe/ffi]}
+@compat-except[scheme/foreign ffi/unsafe]{,
+@schememodname[ffi/unsafe/cvector], and @schememodname[ffi/vector],
+except that @scheme[unsafe!] must be used to import the unsafe
+bindings of @schememodname[ffi/unsafe] and @schememodname[ffi/unsafe/cvector]}
@defform[(unsafe!)]{
diff --git a/collects/scribblings/scribble/eval.scrbl b/collects/scribblings/scribble/eval.scrbl
index ab93e2af00..88504396c9 100644
--- a/collects/scribblings/scribble/eval.scrbl
+++ b/collects/scribblings/scribble/eval.scrbl
@@ -28,9 +28,9 @@ evaluator is created using @scheme[make-base-eval]. See also
Uses of @scheme[code:comment] and @schemeidfont{code:blank} are
stipped from each @scheme[datum] before evaluation.
-If a @scheme[datum] has the form @scheme[(eval:alts #,(svar
-show-datum) #,(svar eval-datum))], then @svar[show-datum] is typeset,
-while @svar[eval-datum] is evaluated.}
+If a @scheme[datum] has the form @scheme[(@#,indexed-scheme[eval:alts]
+#,(svar show-datum) #,(svar eval-datum))], then @svar[show-datum] is
+typeset, while @svar[eval-datum] is evaluated.}
@defform*[[(interaction-eval datum)
diff --git a/collects/scribblings/scribble/info.ss b/collects/scribblings/scribble/info.rkt
similarity index 100%
rename from collects/scribblings/scribble/info.ss
rename to collects/scribblings/scribble/info.rkt
diff --git a/collects/scribblings/scribble/lp-ex-doc.scrbl b/collects/scribblings/scribble/lp-ex-doc.scrbl
index 2d3bd6ae6f..c23d6e8ed4 100644
--- a/collects/scribblings/scribble/lp-ex-doc.scrbl
+++ b/collects/scribblings/scribble/lp-ex-doc.scrbl
@@ -1,4 +1,4 @@
#lang scribble/doc
@(require scribble/lp-include)
-@lp-include["lp-ex.ss"]
+@lp-include["lp-ex.rkt"]
diff --git a/collects/scribblings/scribble/lp-ex.ss b/collects/scribblings/scribble/lp-ex.rkt
similarity index 100%
rename from collects/scribblings/scribble/lp-ex.ss
rename to collects/scribblings/scribble/lp-ex.rkt
diff --git a/collects/scribblings/scribble/lp.scrbl b/collects/scribblings/scribble/lp.scrbl
index 051aa33512..2814d6ad55 100644
--- a/collects/scribblings/scribble/lp.scrbl
+++ b/collects/scribblings/scribble/lp.scrbl
@@ -26,7 +26,7 @@ program, and the rest of the module is discarded. When using
and are treated like an ordinary Scribble document, where
@scheme[chunk]s are typeset in a manner similar to @scheme[codeblock].
-@(define-runtime-path lp-ex "lp-ex.ss")
+@(define-runtime-path lp-ex "lp-ex.rkt")
For example, consider this program:
diff --git a/collects/scribblings/scribble/manual.scrbl b/collects/scribblings/scribble/manual.scrbl
index 3aac8d62e9..a055226917 100644
--- a/collects/scribblings/scribble/manual.scrbl
+++ b/collects/scribblings/scribble/manual.scrbl
@@ -549,6 +549,13 @@ Like @scheme[defform], but without registering a definition.}
Like @scheme[defform], but with a plain @scheme[id] as the form.}
+@defform[(defidform/inline id)]{
+
+Like @scheme[defidform], but @racket[id] is typeset as an inline
+element. Use this form sparingly, because the typeset form does not
+stand out to the reader as a specification of @racket[id].}
+
+
@defform[(specform maybe-literals datum maybe-contracts
pre-flow ...)]{
diff --git a/collects/scribblings/scribble/utils.ss b/collects/scribblings/scribble/utils.rkt
similarity index 100%
rename from collects/scribblings/scribble/utils.ss
rename to collects/scribblings/scribble/utils.rkt
diff --git a/collects/scribblings/setup-plt/info.ss b/collects/scribblings/setup-plt/info.rkt
similarity index 100%
rename from collects/scribblings/setup-plt/info.ss
rename to collects/scribblings/setup-plt/info.rkt
diff --git a/collects/scribblings/setup-plt/setup-plt.scrbl b/collects/scribblings/setup-plt/setup-plt.scrbl
index 4bb2725cb3..cc17bc043d 100644
--- a/collects/scribblings/setup-plt/setup-plt.scrbl
+++ b/collects/scribblings/setup-plt/setup-plt.scrbl
@@ -1174,14 +1174,10 @@ An @deftech{unpackable} is one of the following:
(symbol? [(-> any)] . -> . any)
false/c)]{
- Accepts a path to a directory. It returns @scheme[#f] if there is
- no @filepath{info.ss} file in the directory. If the
- @filepath{info.ss} file has the wrong shape (i.e., not a module
- using @schememodname[setup/infotab] or @scheme[(lib "infotab.ss" "setup")]),
- or if the @filepath{info.ss} file fails to load, then an exception
- is raised.
-
- Otherwise, @scheme[get-info/full] returns an info procedure of one
+ Accepts a path to a directory. If it finds either a well-formed
+ an @filepath{info.rkt} file or an @filepath{info.ss} file (with
+ preference for the @filepath{info.rkt} file),
+ it returns an info procedure that accepts either one
or two arguments. The first argument to the info procedure is
always a symbolic name, and the result is the value of the name in
the @filepath{info.ss} file, if the name is defined. The optional
@@ -1189,7 +1185,18 @@ An @deftech{unpackable} is one of the following:
arguments to be called when the name is not defined; the result of
the info procedure is the result of the @scheme[_thunk] in that
case. If the name is not defined and no @scheme[_thunk] is
- provided, then an exception is raised.}
+ provided, then an exception is raised.
+
+ @scheme[get-info/full] returns @scheme[#f] if there is
+ no @filepath{info.rkt} or @filepath{info.ss} file in the directory. If there is a
+ @filepath{info.rkt} file that has the wrong shape (i.e., not a module
+ using @schememodname[setup/infotab] or @scheme[(lib "infotab.ss" "setup")]),
+ or if the @filepath{info.rkt} file fails to load, then an exception
+ is raised. If the @filepath{info.rkt} file loaded, @scheme[get-info/full]
+ returns the @scheme[get-info] file. If the @filepath{info.rkt} file does not exist,
+ then @scheme[get-info/full] does
+ the same checks for the @filepath{info.ss} file, either raising an exception
+ or returning the @scheme[get-info] function from the @filepath{info.ss} file.}
@defproc[(find-relevant-directories
(syms (listof symbol?))
diff --git a/collects/scribblings/slideshow/info.ss b/collects/scribblings/slideshow/info.rkt
similarity index 100%
rename from collects/scribblings/slideshow/info.ss
rename to collects/scribblings/slideshow/info.rkt
diff --git a/collects/scribblings/slideshow/ss.ss b/collects/scribblings/slideshow/ss.rkt
similarity index 100%
rename from collects/scribblings/slideshow/ss.ss
rename to collects/scribblings/slideshow/ss.rkt
diff --git a/collects/scribblings/tools/common.ss b/collects/scribblings/tools/common.rkt
similarity index 83%
rename from collects/scribblings/tools/common.ss
rename to collects/scribblings/tools/common.rkt
index 995ed8dab3..9a09a16152 100644
--- a/collects/scribblings/tools/common.ss
+++ b/collects/scribblings/tools/common.rkt
@@ -1,5 +1,4 @@
-#reader scribble/reader
-#lang scheme/base
+#lang at-exp racket/base
(require (for-syntax scheme/base))
(require scribble/manual
@@ -30,14 +29,14 @@
(provide tools-title tools-include)
(define (tools-title name)
- (title (tt (format "drscheme:~a" name))))
+ (title (tt (format "drracket:~a" name))))
(define-syntax (tools-include stx)
(syntax-case stx ()
[(_ name)
(string? (syntax-e #'name))
(let ([name (syntax-e #'name)])
- (with-syntax ([rx (regexp (format "^drscheme:~a:" name))])
- #'(include-previously-extracted "tool-lib-extracts.ss" rx)))]))
+ (with-syntax ([rx (regexp (format "^~a" (regexp-quote (format "drracket:~a:" name))))])
+ #'(include-previously-extracted scribblings/tools/tool-lib-extracts rx)))]))
(provide docs-get/extend)
(define-syntax (docs-get/extend stx)
@@ -47,18 +46,18 @@
(with-syntax ([get (datum->syntax
#'id
(string->symbol
- (format "drscheme:get/extend:get-~a"
+ (format "drracket:get/extend:get-~a"
(syntax-e #'id))))]
[extend (datum->syntax
#'id
(string->symbol
- (format "drscheme:get/extend:extend-~a"
+ (format "drracket:get/extend:extend-~a"
(syntax-e #'id))))])
#'(begin
@defproc*[([(extend (mixin mixin-contract))
void?]
[(extend (mixin mixin-contract) (before boolean?))
void?])]{
- Adds a new mixin to the class eventually created in DrScheme.}
+ Adds a new mixin to the class eventually created in DrRacket.}
@defproc[(get) class?]{
Returns the class (with all registered mixins applied).}))]))
diff --git a/collects/scribblings/tools/debug.scrbl b/collects/scribblings/tools/debug.scrbl
index b01983a8bb..a350c51df1 100644
--- a/collects/scribblings/tools/debug.scrbl
+++ b/collects/scribblings/tools/debug.scrbl
@@ -2,18 +2,18 @@
@(require "common.ss")
@(tools-title "debug")
-@defmixin[drscheme:debug:profile-unit-frame-mixin
- (drscheme:frame:<%> drscheme:unit:frame<%>)
+@defmixin[drracket:debug:profile-unit-frame-mixin
+ (drracket:frame:<%> drracket:unit:frame<%>)
()]{
}
-@defmixin[drscheme:debug:profile-interactions-text-mixin
- (drscheme:rep:text<%>)
+@defmixin[drracket:debug:profile-interactions-text-mixin
+ (drracket:rep:text<%>)
()]{
}
-@defmixin[drscheme:debug:profile-definitions-text-mixin
- (drscheme:unit:definitions-text<%> text%)
+@defmixin[drracket:debug:profile-definitions-text-mixin
+ (drracket:unit:definitions-text<%> text%)
()]{
}
diff --git a/collects/scribblings/tools/frame.scrbl b/collects/scribblings/tools/frame.scrbl
index 38e59531e4..eb16fe88bb 100644
--- a/collects/scribblings/tools/frame.scrbl
+++ b/collects/scribblings/tools/frame.scrbl
@@ -2,7 +2,7 @@
@(require "common.ss")
@(tools-title "frame")
-@defclass[drscheme:frame:name-message% canvas% ()]{
+@defclass[drracket:frame:name-message% canvas% ()]{
This class implements the little filename button in the top-right hand
side of drscheme's frame.
@@ -31,14 +31,14 @@ hasn't been saved is shown.
}}}
-@defmixin[drscheme:frame:mixin (drscheme:frame:basics<%> frame:text-info<%> frame:editor<%>) (drscheme:frame:<%>)]{
+@defmixin[drracket:frame:mixin (drracket:frame:basics<%> frame:text-info<%> frame:editor<%>) (drracket:frame:<%>)]{
Provides an implementation of
-@scheme[drscheme:frame:<%>]
+@scheme[drracket:frame:<%>]
}
-@defmixin[drscheme:frame:basics-mixin (frame:standard-menus<%>) (drscheme:frame:basics<%>)]{
+@defmixin[drracket:frame:basics-mixin (frame:standard-menus<%>) (drracket:frame:basics<%>)]{
Use this mixin to establish some common menu items across various DrScheme windows.
@@ -176,14 +176,14 @@ Returns @scheme[#t].
}}
-@definterface[drscheme:frame:basics<%> (frame:standard-menus<%>)]{
+@definterface[drracket:frame:basics<%> (frame:standard-menus<%>)]{
-This interface is the result of the @scheme[drscheme:frame:basics-mixin]
+This interface is the result of the @scheme[drracket:frame:basics-mixin]
}
-@definterface[drscheme:frame:<%> (frame:editor<%> frame:text-info<%> drscheme:frame:basics<%>)]{
+@definterface[drracket:frame:<%> (frame:editor<%> frame:text-info<%> drracket:frame:basics<%>)]{
@@ -196,7 +196,7 @@ menu. This method is intended to be overridden. It is
expected to add other Show/Hide menu items to the show menu.
See also
-@method[drscheme:frame:<%> get-show-menu].
+@method[drracket:frame:<%> get-show-menu].
}
@methimpl{
@@ -212,10 +212,10 @@ Does nothing.
@index{View menu}
returns the view menu, for use by the
-@method[drscheme:frame:<%> update-shown] method.
+@method[drracket:frame:<%> update-shown] method.
See also
-@method[drscheme:frame:<%> add-show-menu-items].
+@method[drracket:frame:<%> add-show-menu-items].
The method (and others) uses the word @tt{show} to preserve
backwards compatibility from when the menu itself was named
@@ -251,7 +251,7 @@ Call this method whenever the state of the show menu might
need to change.
See also
-@method[drscheme:frame:<%> get-show-menu].
+@method[drracket:frame:<%> get-show-menu].
}
@methimpl{
diff --git a/collects/scribblings/tools/info.ss b/collects/scribblings/tools/info.rkt
similarity index 100%
rename from collects/scribblings/tools/info.ss
rename to collects/scribblings/tools/info.rkt
diff --git a/collects/scribblings/tools/language.scrbl b/collects/scribblings/tools/language.scrbl
index bc4497eb42..824f5acb88 100644
--- a/collects/scribblings/tools/language.scrbl
+++ b/collects/scribblings/tools/language.scrbl
@@ -2,16 +2,16 @@
@(require "common.ss")
@(tools-title "language")
-@definterface[drscheme:language:simple-module-based-language<%> ()]{
+@definterface[drracket:language:simple-module-based-language<%> ()]{
This interface represents the bare essentials when defining
a module-based language. Use the
-@scheme[drscheme:language:simple-module-based-language->module-based-language-mixin]
+@scheme[drracket:language:simple-module-based-language->module-based-language-mixin]
mixin to construct an implementation of
-@scheme[drscheme:language:module-based-language<%>] from an implementation of this interface.
+@scheme[drracket:language:module-based-language<%>] from an implementation of this interface.
The class
-@scheme[drscheme:language:simple-module-based-language%] provides an implementation of this interface.
+@scheme[drracket:language:simple-module-based-language%] provides an implementation of this interface.
@@ -19,7 +19,7 @@ The class
(cons number (listof number))]{
Returns a list of numbers, whose length must be the same as
the result of
-@method[drscheme:language:simple-module-based-language<%> get-language-position]. Each number indicates the sorted order of the
+@method[drracket:language:simple-module-based-language<%> get-language-position]. Each number indicates the sorted order of the
language positions in the language dialog.
}
@@ -27,7 +27,7 @@ language positions in the language dialog.
@defmethod[(get-language-position)
(cons string (listof string))]{
This method is the same as
-@method[drscheme:language:language<%> get-language-position].
+@method[drracket:language:language<%> get-language-position].
}
@@ -36,8 +36,8 @@ This method is the same as
This method specifies the module that defines the language.
This method replaces
-@method[drscheme:language:language<%> front-end/complete-program] and
-@method[drscheme:language:language<%> front-end/interaction].
+@method[drracket:language:language<%> front-end/complete-program] and
+@method[drracket:language:language<%> front-end/interaction].
The result is expected to be the
@@ -66,7 +66,7 @@ for this language.
}}
-@defclass[drscheme:language:simple-module-based-language% object% (drscheme:language:simple-module-based-language<%>)]{
+@defclass[drracket:language:simple-module-based-language% object% (drracket:language:simple-module-based-language<%>)]{
@@ -79,8 +79,8 @@ for this language.
[language-id string?])]{
The init args are used as the results of the
-@method[drscheme:language:simple-module-based-language% get-module] and
-@method[drscheme:language:simple-module-based-language% get-language-position] methods
+@method[drracket:language:simple-module-based-language% get-module] and
+@method[drracket:language:simple-module-based-language% get-language-position] methods
}
@@ -132,12 +132,12 @@ returns the corresponding init arg.
}}
-@defmixin[drscheme:language:simple-module-based-language->module-based-language-mixin (drscheme:language:simple-module-based-language<%>) (drscheme:language:module-based-language<%>)]{
+@defmixin[drracket:language:simple-module-based-language->module-based-language-mixin (drracket:language:simple-module-based-language<%>) (drracket:language:module-based-language<%>)]{
-@index{drscheme:language:simple-settings}
+@index{drracket:language:simple-settings}
This mixin uses a struct definition for its settings:
@schemeblock[
-(define-struct drscheme:language:simple-settings
+(define-struct drracket:language:simple-settings
(case-sensitive (code:comment @#,t{boolean?})
printing-style (code:comment @#,t{(symbols 'constructor 'quasiquote 'write 'print)})
fraction-style (code:comment @#,t{(symbols 'mixed-fraction 'mixed-fraction-e})
@@ -169,7 +169,7 @@ Constructs a configuration panel that lets the user
configure all of the settings for this language.
See also
-@scheme[drscheme:language:simple-module-based-language->module-based-language-mixin]
+@scheme[drracket:language:simple-module-based-language->module-based-language-mixin]
for details of the
simple-settings structure, this mixin's @scheme[settings] type.
}
@@ -187,7 +187,7 @@ The defaults for the settings are
]
See also
-@scheme[drscheme:language:simple-module-based-language->module-based-language-mixin] for details of the
+@scheme[drracket:language:simple-module-based-language->module-based-language-mixin] for details of the
simple-settings structure, this mixins @scheme[settings] type.
@@ -225,7 +225,7 @@ Returns @scheme['mzscheme].
Constructs a vector from the structure.
See also
-@scheme[drscheme:language:simple-module-based-language->module-based-language-mixin]
+@scheme[drracket:language:simple-module-based-language->module-based-language-mixin]
for details of the
simple-settings structure, this mixins @scheme[settings] type.
@@ -254,7 +254,7 @@ debugging annotations. Additionally, it sets the
to show the debugging annotations when an error is raised.
See also
-@scheme[drscheme:language:simple-module-based-language->module-based-language-mixin] for details of the
+@scheme[drracket:language:simple-module-based-language->module-based-language-mixin] for details of the
simple-settings structure, this mixin's @scheme[settings] type.
@@ -268,10 +268,10 @@ Translates the value to a string, based on the settings.
Restores a super struct inspector to render structs properly.
(See also
-@method[drscheme:language:simple-module-based-language->module-based-language-mixin% on-execute])
+@method[drracket:language:simple-module-based-language->module-based-language-mixin% on-execute])
See also
-@scheme[drscheme:language:simple-module-based-language->module-based-language-mixin] for details of the
+@scheme[drracket:language:simple-module-based-language->module-based-language-mixin] for details of the
simple-settings structure, this mixin's @scheme[settings] type.
@@ -285,10 +285,10 @@ Translates the value to a string, based on the settings.
Restores a super struct inspector to render structs properly.
(See also
-@method[drscheme:language:simple-module-based-language->module-based-language-mixin% on-execute])
+@method[drracket:language:simple-module-based-language->module-based-language-mixin% on-execute])
See also
-@scheme[drscheme:language:simple-module-based-language->module-based-language-mixin]
+@scheme[drracket:language:simple-module-based-language->module-based-language-mixin]
for details of the
simple-settings structure, this mixin's @scheme[settings] type.
@@ -303,7 +303,7 @@ Builds a settings structure from the vector, or @scheme[#f] if
the vector doesn't match the types of the structure.
See also
-@scheme[drscheme:language:simple-module-based-language->module-based-language-mixin] for details of the
+@scheme[drracket:language:simple-module-based-language->module-based-language-mixin] for details of the
simple-settings structure, this mixin's @scheme[settings] type.
@@ -320,36 +320,36 @@ Returns @scheme[#t].
}}
-@definterface[drscheme:language:module-based-language<%> ()]{
+@definterface[drracket:language:module-based-language<%> ()]{
This interface is for languages that can be implemented
with MzScheme @scheme[module]s.
Use the
-@scheme[drscheme:language:module-based-language->language-mixin]
+@scheme[drracket:language:module-based-language->language-mixin]
mixin to construct an implementation of
-@scheme[drscheme:language:language<%>] from an implementation of this interface.
+@scheme[drracket:language:language<%>] from an implementation of this interface.
@defmethod[(config-panel [parent (is-a?/c panel%)])
(case-> (-> settings) (settings -> void))]{
This method is the same as
-@method[drscheme:language:language<%> config-panel].
+@method[drracket:language:language<%> config-panel].
}
@defmethod[(default-settings)
settings]{
This method is the same as
-@method[drscheme:language:language<%> default-settings].
+@method[drracket:language:language<%> default-settings].
}
@defmethod[(default-settings? [settings settings])
boolean?]{
This method is the same as
-@method[drscheme:language:language<%> default-settings?].
+@method[drracket:language:language<%> default-settings?].
}
@@ -369,14 +369,14 @@ environment, based on the settings.
@defmethod[(get-language-numbers)
(cons number (listof number))]{
This method is the same as
-@method[drscheme:language:language<%> get-language-numbers].
+@method[drracket:language:language<%> get-language-numbers].
}
@defmethod[(get-language-position)
(cons string (listof string))]{
This method is the same as
-@method[drscheme:language:language<%> get-language-position].
+@method[drracket:language:language<%> get-language-position].
}
@@ -390,7 +390,7 @@ The result is expected to be the
except as value, ie @scheme[quote]d.
See also
-@method[drscheme:language:module-based-language<%> get-transformer-module].
+@method[drracket:language:module-based-language<%> get-transformer-module].
}
@@ -428,14 +428,14 @@ If the result is @scheme[#f], no module is required into the
transformer part of the namespace.
See also
-@method[drscheme:language:module-based-language<%> get-module].
+@method[drracket:language:module-based-language<%> get-module].
}
@defmethod[(marshall-settings [settings settings])
writable]{
This method is the same as
-@method[drscheme:language:language<%> marshall-settings].
+@method[drracket:language:language<%> marshall-settings].
}
@@ -443,7 +443,7 @@ This method is the same as
[run-in-user-thread ((-> void) -> void)])
vod]{
This method is the same as
-@method[drscheme:language:language<%> on-execute].
+@method[drracket:language:language<%> on-execute].
}
@@ -452,7 +452,7 @@ This method is the same as
[port port])
void?]{
This method is the same as
-@method[drscheme:language:language<%> render-value].
+@method[drracket:language:language<%> render-value].
}
@@ -462,14 +462,14 @@ This method is the same as
[width (or/c number (symbols 'infinity))])
void?]{
This method is the same as
-@method[drscheme:language:language<%> render-value/format].
+@method[drracket:language:language<%> render-value/format].
}
@defmethod[(unmarshall-settings [input writable])
(or/c settings false/c)]{
This method is the same as
-@method[drscheme:language:language<%> unmarshall-settings].
+@method[drracket:language:language<%> unmarshall-settings].
}
@@ -503,7 +503,7 @@ Defaultly returns @scheme[#f].
}}}
-@defmixin[drscheme:language:module-based-language->language-mixin (drscheme:language:module-based-language<%>) (drscheme:language:language<%>)]{
+@defmixin[drracket:language:module-based-language->language-mixin (drracket:language:module-based-language<%>) (drracket:language:language<%>)]{
@@ -516,7 +516,7 @@ Reads a syntax object, from @scheme[input]. Does not use
For languages that use these mixins, there is no difference
between this method and
-@method[drscheme:language:module-based-language->language-mixin% front-end/interaction].
+@method[drracket:language:module-based-language->language-mixin% front-end/interaction].
}
@@ -530,7 +530,7 @@ Reads a syntax object, from @scheme[input]. Does not use
For languages that use these mixins, there is no difference
between this method and
-@method[drscheme:language:module-based-language->language-mixin% front-end/complete-program].
+@method[drracket:language:module-based-language->language-mixin% front-end/complete-program].
}
@@ -540,7 +540,7 @@ between this method and
string?]{
Returns the last element of the list returned by
-@method[drscheme:language:language<%> get-language-position].
+@method[drracket:language:language<%> get-language-position].
}
@@ -553,16 +553,16 @@ Calls the super method.
Uses @scheme[namespace-require]
to install the result of
-@method[drscheme:language:module-based-language<%> get-module] and
+@method[drracket:language:module-based-language<%> get-module] and
Uses @scheme[namespace-transformer-require]
to install the result of
-@method[drscheme:language:module-based-language<%> get-transformer-module] into the user's namespace.
+@method[drracket:language:module-based-language<%> get-transformer-module] into the user's namespace.
}}
-@definterface[drscheme:language:language<%> ()]{
+@definterface[drracket:language:language<%> ()]{
Implementations of this interface are languages that
DrScheme supports.
@@ -578,13 +578,13 @@ adding languages to DrScheme.
Returns the language-specific value for some capability. See
also
-@scheme[drscheme:language:register-capability].
+@scheme[drracket:language:register-capability].
}
@methimpl{
Defaultly returns the value from:
-@scheme[drscheme:language:get-capability-default].
+@scheme[drracket:language:get-capability-default].
}}
@@ -609,8 +609,8 @@ in the executable and @scheme[executable-filename] is the name
of a file where the executable goes.
See also
-@scheme[drscheme:language:create-module-based-stand-alone-executable] and
-@scheme[drscheme:language:create-module-based-launcher].
+@scheme[drracket:language:create-module-based-stand-alone-executable] and
+@scheme[drracket:language:create-module-based-launcher].
}
@@ -624,7 +624,7 @@ Specifies the default settings for this language.
boolean?]{
Return @scheme[#t] if the input settings matches the
default settings obtained via
-@method[drscheme:language:language<%> default-settings].
+@method[drracket:language:language<%> default-settings].
}
@@ -636,7 +636,7 @@ no program is run. It is called from the user's eventspace's
main thread.
See also
-@method[drscheme:rep:text% initialize-console].
+@method[drracket:rep:text% initialize-console].
}
@@ -682,16 +682,16 @@ or
and the use of the expanded code dictates which applies.
See also
-@method[drscheme:language:language<%> front-end/interaction]
+@method[drracket:language:language<%> front-end/interaction]
and
-@method[drscheme:language:language<%> front-end/finished-complete-program].
+@method[drracket:language:language<%> front-end/finished-complete-program].
}
@defmethod[(front-end/finished-complete-program [settings settings]) any]{
This method is called when @onscreen{Run} is clicked, but only after
- @method[drscheme:language:language<%> front-end/complete-program]
+ @method[drracket:language:language<%> front-end/complete-program]
has been called. Specifically,
- @method[drscheme:language:language<%> front-end/complete-program] is
+ @method[drracket:language:language<%> front-end/complete-program] is
first called to get a thunk that reads from the program. That thunk
is called some number of times, eventually returning @scheme[eof],
or raising an exception. Then, this method is called.
@@ -705,13 +705,13 @@ and
[settings settings])
(-> (or/c sexp/c syntax? eof-object?))]{
This method is just like
-@method[drscheme:language:language<%> front-end/complete-program]
+@method[drracket:language:language<%> front-end/complete-program]
except that it is called with program fragments, for example the
expressions entered in the interactions window. It is also used in
other contexts by tools to expand single expressions.
See also
-@method[drscheme:language:language<%> front-end/finished-complete-program].
+@method[drracket:language:language<%> front-end/finished-complete-program].
}
@defmethod[(get-comment-character)
@@ -734,13 +734,13 @@ the drscheme window.
@defmethod[(get-language-numbers)
(cons number (listof number))]{
This method is used in a manner analogous to
-@method[drscheme:language:language<%> get-language-position].
+@method[drracket:language:language<%> get-language-position].
Each element in the list indicates how the names at that
point in dialog will be sorted. Names with lower numbers
appear first. If two languages are added to DrScheme with
the same strings (as given by the
-@method[drscheme:language:language<%> get-language-position] method) the corresponding numbers returned by this method
+@method[drracket:language:language<%> get-language-position] method) the corresponding numbers returned by this method
must be the same. Additionally, no two languages can have the
same set of numbers.
@@ -795,11 +795,11 @@ to this url.
string?]{
This method is only called when
-@method[drscheme:language:language<%> get-reader-module] returns an sexp.
+@method[drracket:language:language<%> get-reader-module] returns an sexp.
It is expected to return a string that contains N lines,
where N is the result of calling
-@method[drscheme:language:language<%> get-metadata-lines]. The string is prefixed to the buffer before the file is
+@method[drracket:language:language<%> get-metadata-lines]. The string is prefixed to the buffer before the file is
saved by DrScheme, and removed from the buffer after it is
opened in DrScheme.
@@ -811,9 +811,9 @@ name, but without the path, and without an extension. The
@scheme[settings] argument is the current language's settings value.
See also
-@method[drscheme:language:language<%> metadata->settings],
-@method[drscheme:language:language<%> get-metadata-lines], and
-@method[drscheme:language:language<%> get-reader-module].
+@method[drracket:language:language<%> metadata->settings],
+@method[drracket:language:language<%> get-metadata-lines], and
+@method[drracket:language:language<%> get-reader-module].
}
@@ -822,14 +822,14 @@ See also
number]{
This method is only called when
-@method[drscheme:language:language<%> get-reader-module] returns an sexp.
+@method[drracket:language:language<%> get-reader-module] returns an sexp.
The result of the method is a count of the number of lines
in the strings that
-@method[drscheme:language:language<%> get-metadata] returns. The
-@method[drscheme:language:language<%> get-metadata] function does not necessarily return the same string
+@method[drracket:language:language<%> get-metadata] returns. The
+@method[drracket:language:language<%> get-metadata] function does not necessarily return the same string
each time it is called (see
-@method[drscheme:language:language<%> metadata->settings]) but it is expected to always return a string with a fixed
+@method[drracket:language:language<%> metadata->settings]) but it is expected to always return a string with a fixed
number of lines, as indicated by the result of this method.
@@ -856,13 +856,13 @@ The result of this method is used when saving or loading files.
If the result is a sexp, saved files get a prefix inserted
at the beginning (the prefix is determined by calling
-@method[drscheme:language:language<%> get-metadata]). When the file is then loaded, DrScheme recognizes this
+@method[drracket:language:language<%> get-metadata]). When the file is then loaded, DrScheme recognizes this
prefix and sets the language back to match the saved file.
See also
-@method[drscheme:language:language<%> metadata->settings],
-@method[drscheme:language:language<%> get-metadata-lines], and
-@method[drscheme:language:language<%> get-metadata].
+@method[drracket:language:language<%> metadata->settings],
+@method[drracket:language:language<%> get-metadata-lines], and
+@method[drracket:language:language<%> get-metadata].
}
@@ -902,15 +902,15 @@ object that can be written out to disk.
settings]{
This method is only called when
-@method[drscheme:language:language<%> get-reader-module] returns an sexp.
+@method[drracket:language:language<%> get-reader-module] returns an sexp.
When a file is opened in DrScheme, if this language's
-@method[drscheme:language:language<%> get-reader-module] returns an sexp, the prefix of the file
+@method[drracket:language:language<%> get-reader-module] returns an sexp, the prefix of the file
(the first N lines, where N is the number
returned by
-@method[drscheme:language:language<%> get-metadata-lines]) is scanned for @scheme["#reader"] followed by the
+@method[drracket:language:language<%> get-metadata-lines]) is scanned for @scheme["#reader"] followed by the
result of
-@method[drscheme:language:language<%> get-reader-module]. If that pattern is found, the language is set to this language.
+@method[drracket:language:language<%> get-reader-module]. If that pattern is found, the language is set to this language.
Also, the entire prefix is passed, as a string,
to this method which returns a @scheme[settings] value, used as
the settings for this language.
@@ -1024,7 +1024,7 @@ if doc.txt files should be searched.
[port port])
void?]{
This method is just like
-@method[drscheme:language:language<%> render-value/format] except that it is expected to put the entire value on a
+@method[drracket:language:language<%> render-value/format] except that it is expected to put the entire value on a
single line with no newline after the value.
}
@@ -1043,7 +1043,7 @@ newlines in appropriate places and is expected to render a
newline after the value.
See also
-@method[drscheme:language:language<%> render-value].
+@method[drracket:language:language<%> render-value].
}
diff --git a/collects/scribblings/tools/module-language-tools.scrbl b/collects/scribblings/tools/module-language-tools.scrbl
index a2f171c803..423f4d7109 100644
--- a/collects/scribblings/tools/module-language-tools.scrbl
+++ b/collects/scribblings/tools/module-language-tools.scrbl
@@ -13,7 +13,7 @@ Specifically, DrScheme will pass @scheme['drscheme:toolbar-buttons]
to the function and expect back a value matching this contract:
@schemeblock[(listof (list/c string?
(is-a?/c bitmap%)
- (-> (is-a?/c drscheme:unit:frame<%>) any)))]
+ (-> (is-a?/c drracket:unit:frame<%>) any)))]
which is then used to create new toolbar buttons, one for each list in the
first. The string is the label on the button; the bitmap is the icon (it should be 16x16),
and the function is called when the button is clicked.
diff --git a/collects/scribblings/tools/module-language.scrbl b/collects/scribblings/tools/module-language.scrbl
index 0b396e042d..16f960e31d 100644
--- a/collects/scribblings/tools/module-language.scrbl
+++ b/collects/scribblings/tools/module-language.scrbl
@@ -2,7 +2,7 @@
@(require "common.ss")
@(tools-title "module-language")
-@definterface[drscheme:language:module-language<%> ()]{
+@definterface[drracket:language:module-language<%> ()]{
The only language that implements this interface is DrScheme's ``Use the language declared in the source'' language,
i.e., the ``Module'' language.
diff --git a/collects/scribblings/tools/rep.scrbl b/collects/scribblings/tools/rep.scrbl
index 38d7b8b621..3a3a8bfa16 100644
--- a/collects/scribblings/tools/rep.scrbl
+++ b/collects/scribblings/tools/rep.scrbl
@@ -3,11 +3,11 @@
@(tools-title "rep")
-@definterface[drscheme:rep:text<%> ()]{
+@definterface[drracket:rep:text<%> ()]{
}
-@defclass[drscheme:rep:text% scheme:text% (drscheme:rep:text<%>)]{
+@defclass[drracket:rep:text% scheme:text% (drracket:rep:text<%>)]{
This class implements a read-eval-print loop for DrScheme. User
submitted evaluations in DrScheme are evaluated asynchronously, in an
@@ -16,7 +16,7 @@ class affect the implementation that uses it.
-@defconstructor/make[([context (implements drscheme:rep:context<%>)])]{
+@defconstructor/make[([context (implements drracket:rep:context<%>)])]{
}
@defmethod[#:mode override
@@ -82,11 +82,11 @@ This function evaluates all of the expressions in a text.
It evaluates all of the expressions in @scheme[text] starting at
@scheme[start] and ending at @scheme[end], calling
-@method[drscheme:rep:text% do-many-evals] to handle the evaluation.
+@method[drracket:rep:text% do-many-evals] to handle the evaluation.
The @scheme[complete-program?] argument determines if the
-@method[drscheme:language:language<%> front-end/complete-program] method or the
-@method[drscheme:language:language<%> front-end/interaction] method is called.
+@method[drracket:language:language<%> front-end/complete-program] method or the
+@method[drracket:language:language<%> front-end/interaction] method is called.
}}
@@ -97,9 +97,9 @@ The @scheme[complete-program?] argument determines if the
any]{
Evaluates the program in the @scheme[port] argument. If @scheme[complete-program?]
is @scheme[#t], this method calls the
- @method[drscheme:language:language<%> front-end/complete-program] to evaluate
+ @method[drracket:language:language<%> front-end/complete-program] to evaluate
the program. If it is @scheme[#f], it calls
- @method[drscheme:language:language<%> front-end/interaction] method.
+ @method[drracket:language:language<%> front-end/interaction] method.
When evaluation finishes, it calls @scheme[cleanup] on the user's main thread.
This method must be called from the drscheme main thread.
@@ -107,17 +107,17 @@ The @scheme[complete-program?] argument determines if the
@defmethod[#:mode augment (after-many-evals) any]{
Called from the drscheme main thread after
- @method[drscheme:rep:text% evaluate-from-port] finishes (no matter
+ @method[drracket:rep:text% evaluate-from-port] finishes (no matter
how it finishes).
}
@defmethod[#:mode augment (on-execute [run-on-user-thread (-> any)]) any]{
Called from the drscheme thread after the language's
- @method[drscheme:language:language<%> on-execute]
+ @method[drracket:language:language<%> on-execute]
method has been invoked, and after the
special values have been setup (the ones registered
- via @scheme[drscheme:language:add-snip-value]).
+ via @scheme[drracket:language:add-snip-value]).
Use @scheme[run-on-user-thread] to initialize the user's parameters, etc.
@@ -151,7 +151,7 @@ This is the custodian controlling the user's program.
@defmethod[(get-user-eventspace)
(or/c false/c eventspace?)]{
This is the user's eventspace. The result of
-@method[drscheme:rep:text% get-user-thread] is the main thread of this eventspace.
+@method[drracket:rep:text% get-user-thread] is the main thread of this eventspace.
}
@@ -159,7 +159,7 @@ This is the user's eventspace. The result of
language-settings]{
Returns the user's language-settings for the most recently
run program. Consider using
-@method[drscheme:unit:definitions-text<%> get-next-settings] instead, since the user may have selected a new language
+@method[drracket:unit:definitions-text<%> get-next-settings] instead, since the user may have selected a new language
since the program was last run.
}
@@ -194,8 +194,8 @@ for more information about parameters.
void?]{
Call this method to highlight errors associated with this repl.
See also
-@method[drscheme:rep:text% reset-highlighting], and
-@method[drscheme:rep:text% highlight-errors/exn].
+@method[drracket:rep:text% reset-highlighting], and
+@method[drracket:rep:text% highlight-errors/exn].
This method highlights a series of dis-contiguous ranges in
the editor.
@@ -212,7 +212,7 @@ and read errors -- does not extract any information from the
continuation marks)
See also
-@method[drscheme:rep:text% highlight-errors].
+@method[drracket:rep:text% highlight-errors].
}
@@ -222,12 +222,12 @@ See also
This inserts the ``Welcome to DrScheme'' message into the interactions
buffer, calls
-@method[drscheme:rep:text% reset-console],
-@method[drscheme:rep:text% insert-prompt], and
+@method[drracket:rep:text% reset-console],
+@method[drracket:rep:text% insert-prompt], and
@method[editor<%> clear-undos].
Once the console is initialized, this method calls
-@method[drscheme:language:language<%> first-opened]. Accordingly, this method should not be called to initialize
+@method[drracket:language:language<%> first-opened]. Accordingly, this method should not be called to initialize
a REPL when the user's evaluation is imminent. That is,
this method should be called when new tabs or new windows
are created, but not when the Run button is clicked.
@@ -252,7 +252,7 @@ This method is called when the user chooses the kill menu item.
void?]{
Calls
-@method[drscheme:rep:text% shutdown].
+@method[drracket:rep:text% shutdown].
Calls the super method.
@@ -279,8 +279,8 @@ parameterization for it.
@defmethod[(reset-highlighting)
void?]{
This method resets the highlighting being displayed for this repl. See also:
-@method[drscheme:rep:text% highlight-errors], and
-@method[drscheme:rep:text% highlight-errors/exn].
+@method[drracket:rep:text% highlight-errors], and
+@method[drracket:rep:text% highlight-errors/exn].
}
@@ -292,7 +292,7 @@ This function runs it's arguments in the user evaluation thread. This
thread is the same as the user's eventspace main thread.
See also
-@method[drscheme:rep:text% do-many-evals].
+@method[drracket:rep:text% do-many-evals].
}
@methimpl{
@@ -331,7 +331,7 @@ in the user's eventspace
}}
-@defmixin[drscheme:rep:drs-bindings-keymap-mixin (editor:keymap<%>) ()]{
+@defmixin[drracket:rep:drs-bindings-keymap-mixin (editor:keymap<%>) ()]{
This mixin adds some drscheme-specific keybindings to the
editor it is mixed onto.
@@ -357,10 +357,10 @@ interactions windows.}
}}
-@definterface[drscheme:rep:context<%> ()]{
+@definterface[drracket:rep:context<%> ()]{
Objects that match this interface provide all of the services that the
-@scheme[drscheme:rep:text%] class needs to connect with it's context.
+@scheme[drracket:rep:text%] class needs to connect with it's context.
@@ -399,7 +399,7 @@ initiating evaluation in the frame.
This method is also called when the user switches tabs.
See also
-@method[drscheme:rep:context<%> enable-evaluation].
+@method[drracket:rep:context<%> enable-evaluation].
}
@@ -413,11 +413,11 @@ at a time.
It is also called when the user switches tabs.
See also
-@method[drscheme:rep:context<%> disable-evaluation].
+@method[drracket:rep:context<%> disable-evaluation].
}
-@defmethod[(ensure-rep-shown [rep (is-a?/c drscheme:rep:text<%>)])
+@defmethod[(ensure-rep-shown [rep (is-a?/c drracket:rep:text<%>)])
void?]{
This method is called to force the rep window to be visible when, for
@@ -430,7 +430,7 @@ that the appropriate tab is visible, if necessary.
@defmethod[(get-breakables)
(values (or/c thread? false/c) (or/c custodian? false/c))]{
Returns the last values passed to
-@method[drscheme:rep:context<%> set-breakables].
+@method[drracket:rep:context<%> set-breakables].
}
@@ -465,7 +465,7 @@ the next time the break button is clicked, it will either
break the thread or shutdown the custodian.
See also
-@method[drscheme:rep:context<%> get-breakables].
+@method[drracket:rep:context<%> get-breakables].
}
diff --git a/collects/scribblings/tools/tool-lib-extracts.rkt b/collects/scribblings/tools/tool-lib-extracts.rkt
new file mode 100644
index 0000000000..2c8fce5fe7
--- /dev/null
+++ b/collects/scribblings/tools/tool-lib-extracts.rkt
@@ -0,0 +1,5 @@
+#lang scheme/base
+
+(require scribble/extract)
+
+(provide-extracted (lib "tool-lib.rkt" "drscheme"))
diff --git a/collects/scribblings/tools/tool-lib-extracts.ss b/collects/scribblings/tools/tool-lib-extracts.ss
deleted file mode 100644
index 469341348a..0000000000
--- a/collects/scribblings/tools/tool-lib-extracts.ss
+++ /dev/null
@@ -1,5 +0,0 @@
-#lang scheme/base
-
-(require scribble/extract)
-
-(provide-extracted (lib "tool-lib.ss" "drscheme"))
diff --git a/collects/scribblings/tools/tools.scrbl b/collects/scribblings/tools/tools.scrbl
index ebc742dcd3..5f443987b0 100644
--- a/collects/scribblings/tools/tools.scrbl
+++ b/collects/scribblings/tools/tools.scrbl
@@ -105,14 +105,14 @@ loaded at DrScheme's startup.
Each of @scheme[tools] files must contain a module that
@scheme[provide]s @scheme[tool@], which must be bound to a
@scheme[unit]. The unit
-must import the @scheme[drscheme:tool^] signature, which is
+must import the @scheme[drracket:tool^] signature, which is
provided by the @FileFirst{tool.ss} library in the
-@scheme[drscheme] collection. The @scheme[drscheme:tool^]
+@scheme[drscheme] collection. The @scheme[drracket:tool^]
signature contains all of the names listed in this manual.
-The unit must export the @scheme[drscheme:tool-exports^]
+The unit must export the @scheme[drracket:tool-exports^]
signature.
-The @scheme[drscheme:tool-exports^] signature contains two
+The @scheme[drracket:tool-exports^] signature contains two
names: @scheme[phase1] and @scheme[phase2]. These names must
be bound to thunks. After all of the tools are loaded, all of
the @tt{phase1} functions are called and then all of the
@@ -120,14 +120,14 @@ the @tt{phase1} functions are called and then all of the
only be called during the dynamic extent of those calls.
This mechanism is designed to support DrScheme's
-@scheme[drscheme:language:language<%>] extension
+@scheme[drracket:language:language<%>] extension
capabilities. That is, this mechanism enables two tools to
cooperate via new capabilities of languages. The first phase
is used for adding functionality that each language must
support and the second is used for creating instances of
languages. As an example, a tool may require certain
specialized language-specific information. It uses phase1 to
-extend the @scheme[drscheme:language:language<%>] interface
+extend the @scheme[drracket:language:language<%>] interface
and supply a default implementation of the interface
extension. Then, other languages that are aware of the
extension can supply non-default implementations of the
@@ -135,15 +135,15 @@ additional functionality.
Phase 1 functions:
@itemize[
-@item{@scheme[drscheme:language:extend-language-interface]}
-@item{@scheme[drscheme:unit:add-to-program-editor-mixin]}
+@item{@scheme[drracket:language:extend-language-interface]}
+@item{@scheme[drracket:unit:add-to-program-editor-mixin]}
]
Phase 2 functions:
@itemize[
-@item{@scheme[drscheme:language-configuration:add-language]}
-@item{@scheme[drscheme:language:get-default-mixin]}
-@item{@scheme[drscheme:language:get-language-extensions]}
+@item{@scheme[drracket:language-configuration:add-language]}
+@item{@scheme[drracket:language:get-default-mixin]}
+@item{@scheme[drracket:language:get-language-extensions]}
]
If the tool raises an error as it is loaded, invoked, or as
@@ -168,8 +168,8 @@ scheme/gui
(define tool@
(unit
- (import drscheme:tool^)
- (export drscheme:tool-exports^)
+ (import drracket:tool^)
+ (export drracket:tool-exports^)
(define (phase1) (message-box "tool example" "phase1"))
(define (phase2) (message-box "tool example" "phase2"))
(message-box "tool example" "unit invoked")))
@@ -297,20 +297,20 @@ not just those that use standard configurations and
@scheme[module].
Each language is a class that implement the
-@scheme[drscheme:language:language<%>] interface. DrScheme also
+@scheme[drracket:language:language<%>] interface. DrScheme also
provides two simpler interfaces:
- @scheme[drscheme:language:module-based-language<%>] and
- @scheme[drscheme:language:simple-module-based-language<%>],
+ @scheme[drracket:language:module-based-language<%>] and
+ @scheme[drracket:language:simple-module-based-language<%>],
and
@scheme[mixins]
- @scheme[drscheme:language:simple-module-based-language->module-based-language-mixin]
+ @scheme[drracket:language:simple-module-based-language->module-based-language-mixin]
and
- @scheme[drscheme:language:module-based-language->language-mixin]
+ @scheme[drracket:language:module-based-language->language-mixin]
that build implementations of @scheme[language^]s from these simpler interfaces.
Once you have an implementation of the
-@scheme[drscheme:language:language^] interface, call
-@scheme[drscheme:language-configuration:add-language] to add the language
+@scheme[drracket:language:language^] interface, call
+@scheme[drracket:language-configuration:add-language] to add the language
to DrScheme.
Each language comes with its own type, called
@@ -326,10 +326,10 @@ the current settings for each language.
@subsection{Language Extensions}
Some tools may require additional functionality from the
-@scheme[drscheme:language:language] interface. The
-@scheme[drscheme:language:extend-language-interface]
+@scheme[drracket:language:language] interface. The
+@scheme[drracket:language:extend-language-interface]
function and the
-@scheme[drscheme:language:get-default-mixin]
+@scheme[drracket:language:get-default-mixin]
mixin make this possible.
For example, the MrFlow tool expands a program, analyzes it
@@ -337,14 +337,14 @@ and then displays sets of values for each program point.
These sets of values should be rendered in the syntax of the
language that MrFlow analyzes. Since MrFlow doesn't
know which languages are available, it can call
-@scheme[drscheme:language:extend-language-interface]
-to extend the @scheme[drscheme:language:language<%>]
+@scheme[drracket:language:extend-language-interface]
+to extend the @scheme[drracket:language:language<%>]
interface with a method for rendering sets of values and
provide a default implementation of that method. Tools that
know about MrFlow can then override the value rendering
method to provide a language-specific implementation of
value rendering. Additionally, since the
-@scheme[drscheme:language:get-default-mixin]
+@scheme[drracket:language:get-default-mixin]
adds the default implementation for the value-set rendering
method, all languages at least have some form of value-set
rendering.
@@ -381,7 +381,7 @@ environment variable to load it in isolation.
Each frame in DrScheme has certain menus and functionality,
most of which is achieved by using the framework.
Additionally, there is one mixin that DrScheme provides to
-augment that. It is @scheme[drscheme:frame:basics-mixin].
+augment that. It is @scheme[drracket:frame:basics-mixin].
Be sure to mix it into any new frame class that you add to
DrScheme.
@@ -389,12 +389,12 @@ DrScheme.
Each of the names:
@itemize[
-@item{@scheme[drscheme:get/extend:extend-interactions-text]}
-@item{@scheme[drscheme:get/extend:extend-definitions-text]}
-@item{@scheme[drscheme:get/extend:extend-interactions-canvas]}
-@item{@scheme[drscheme:get/extend:extend-definitions-canvas]}
-@item{@scheme[drscheme:get/extend:extend-unit-frame]}
-@item{@scheme[drscheme:get/extend:extend-tab]}]
+@item{@scheme[drracket:get/extend:extend-interactions-text]}
+@item{@scheme[drracket:get/extend:extend-definitions-text]}
+@item{@scheme[drracket:get/extend:extend-interactions-canvas]}
+@item{@scheme[drracket:get/extend:extend-definitions-canvas]}
+@item{@scheme[drracket:get/extend:extend-unit-frame]}
+@item{@scheme[drracket:get/extend:extend-tab]}]
is bound to an extender function. In order to change the
behavior of drscheme, you can derive new classes from the
standard classes for the frame, texts, canvases. Each
@@ -403,7 +403,7 @@ accepts must take a class as it's argument and return a
classes derived from that class as its result. For example:
@schemeblock[
-(drscheme:get/extend:extend-interactions-text
+(drracket:get/extend:extend-interactions-text
(lambda (super%)
(class super%
(public method1)
@@ -420,7 +420,7 @@ extends the interactions text class with a method named @tt{method1}.
Macro-expanding a program may involve arbitrary computation
and requires the setup of the correct language. To aid this,
DrScheme's tool interface provides
-@scheme[drscheme:eval:expand-program] to help. Use
+@scheme[drracket:eval:expand-program] to help. Use
this method to extract the fully expanded program text in a
particular language.
@@ -429,20 +429,20 @@ evaluate arbitrary code that the user wrote, tools that
expand the user's program should also allow the user to break
the expansion. To help with this, the tools interfaces
provides these methods:
-@method[drscheme:rep:context<%> enable-evaluation]
+@method[drracket:rep:context<%> enable-evaluation]
and
-@method[drscheme:rep:context<%> disable-evaluation].
+@method[drracket:rep:context<%> disable-evaluation].
Since your tool will be expanding the program text, you
should be both overriding
-@method[drscheme:rep:context<%> enable-evaluation]
+@method[drracket:rep:context<%> enable-evaluation]
and
-@method[drscheme:rep:context<%> disable-evaluation]
+@method[drracket:rep:context<%> disable-evaluation]
to disable your tool and calling them
to ensure that only one expansion is happening
at a time.
Finally, DrScheme provides the
-@method[drscheme:rep:context<%> set-breakables]
+@method[drracket:rep:context<%> set-breakables]
method. This method controls what behavior the Break button
has.
@@ -452,7 +452,7 @@ has.
DrScheme provides support for multiple editor modes. Tools
register modes via
-@scheme[drscheme:modes:add-mode]. Each mode is
+@scheme[drracket:modes:add-mode]. Each mode is
visible in the @onscreen{Modes} submenu of the @onscreen{Edit}
menu. Initially, DrScheme only supports two modes: scheme
mode and text mode.
@@ -468,13 +468,13 @@ Drscheme's capability interface provides a mechanism for
tools to allow languages to hide their GUI interface, if the
tool does not apply to the language. Tools register
capabilities keyed with symbols via.
-@scheme[drscheme:language:register-capability]. Once
+@scheme[drracket:language:register-capability]. Once
registered, a tool can query a language, via the
-@method[drscheme:language:language<%> capability-value]
+@method[drracket:language:language<%> capability-value]
method. The result from this method controls whether or not
the tool shows this part of the GUI for DrScheme.
-See @scheme[drscheme:language:register-capability]
+See @scheme[drracket:language:register-capability]
for a list of the capabilities registered by default.
@section{Check Syntax}
@@ -491,7 +491,11 @@ not taking any advantage of
(-> (is-a?/c
top-level-window<%>)
any))]{
- This is meant to be used with the @scheme['drscheme:toolbar-buttons]
+ This is meant to be used with the @scheme['drscheme:toolbar-buttons]
+ argument to the info proc returned
+ from @scheme[read-language].
+ }
+toolbar-buttons]
argument to the info proc returned
from @scheme[read-language].
}
diff --git a/collects/scribblings/tools/unit.scrbl b/collects/scribblings/tools/unit.scrbl
index 3920d9924f..57d70dd26c 100644
--- a/collects/scribblings/tools/unit.scrbl
+++ b/collects/scribblings/tools/unit.scrbl
@@ -2,7 +2,7 @@
@(require "common.ss")
@(tools-title "unit")
-@definterface[drscheme:unit:tab<%> (drscheme:rep:context<%>)]{
+@definterface[drracket:unit:tab<%> (drracket:rep:context<%>)]{
@defmethod[(break-callback) void?]{
@methspec{
This method is called when the break button is clicked and
@@ -43,13 +43,13 @@ Enables the Run button, and the Run menu item and unlocks
(values (or/c thread? false/c) (or/c custodian? false/c))]{}
@defmethod[(get-defs)
- (is-a?/c drscheme:unit:definitions-text<%>)]{
+ (is-a?/c drracket:unit:definitions-text<%>)]{
This text is initially the top half of the drscheme window and
contains the users program.
This text defaults to a @scheme[text%]
object, but if you change
-@scheme[drscheme:get/extend:extend-definitions-text] procedure, it will use the extended class to create the text.
+@scheme[drracket:get/extend:extend-definitions-text] procedure, it will use the extended class to create the text.
}
@@ -73,19 +73,19 @@ is already running (in another thread).
}
@defmethod[(get-frame)
- (is-a?/c drscheme:unit:frame%)]{
+ (is-a?/c drracket:unit:frame%)]{
Returns the frame that this tab is inside.
}
@defmethod[(get-ints)
- (is-a?/c drscheme:rep:text%)]{
+ (is-a?/c drracket:rep:text%)]{
This text is initially the bottom half of the drscheme window and
contains the users interactions with the REPL.
-This text defaults to a @scheme[drscheme:rep:text%]
+This text defaults to a @scheme[drracket:rep:text%]
object, but if you use the
-@scheme[drscheme:get/extend:extend-interactions-text] procedure,
+@scheme[drracket:get/extend:extend-interactions-text] procedure,
it will use the extended class to create the text.
}
@@ -120,7 +120,7 @@ This method is called when the tab is closed.
Calls the definitions text's
@method[editor:basic<%> on-close] and interactions text's
-@method[drscheme:rep:text% on-close] methods.
+@method[drracket:rep:text% on-close] methods.
}}
@@ -135,7 +135,7 @@ Calls the definitions text's
void?]{}}
-@defclass[drscheme:unit:tab% object% (drscheme:unit:tab<%>)]{
+@defclass[drracket:unit:tab% object% (drracket:unit:tab<%>)]{
The base class that implements the tab's functionality.
@@ -155,7 +155,7 @@ Clears any error highlighting.
}}
-@defmixin[drscheme:unit:program-editor-mixin (text% editor:basic<%>) ()]{
+@defmixin[drracket:unit:program-editor-mixin (text% editor:basic<%>) ()]{
This mixes in the ability to reset the highlighting for
error message when the user modifies the buffer. Use it for
@@ -189,7 +189,7 @@ Resets an error highlighting.
}}
-@defclass[drscheme:unit:interactions-canvas% canvas:wide-snip% ()]{
+@defclass[drracket:unit:interactions-canvas% canvas:wide-snip% ()]{
@@ -200,7 +200,7 @@ Passes all arguments to @scheme[super-init].
}}
-@defclass[drscheme:unit:frame% (drscheme:frame:basics-mixin (drscheme:frame:mixin frame:searchable%)) (drscheme:unit:frame<%>)]{
+@defclass[drracket:unit:frame% (drracket:frame:basics-mixin (drracket:frame:mixin frame:searchable%)) (drracket:unit:frame<%>)]{
This frame inserts the Scheme and Language menus into the menu bar as it is initialized.
@@ -274,9 +274,9 @@ button or chooses the Run menu item.
@methimpl{
It calls
-@method[drscheme:rep:context<%> ensure-rep-shown] and then it calls
-@method[drscheme:rep:text% do-many-text-evals] passing in the result of
-@method[drscheme:unit:frame<%> get-interactions-text] and its entire range, unless the first two characters are
+@method[drracket:rep:context<%> ensure-rep-shown] and then it calls
+@method[drracket:rep:text% do-many-text-evals] passing in the result of
+@method[drracket:unit:frame<%> get-interactions-text] and its entire range, unless the first two characters are
@litchar{#!} in which case, it skips the first line.
@@ -368,7 +368,7 @@ See also mrlib's @scheme[switchable-button%].
(is-a?/c editor-canvas%)]{
Returns the result of
-@method[drscheme:unit:frame<%> get-definitions-canvas].
+@method[drracket:unit:frame<%> get-definitions-canvas].
}
@@ -378,7 +378,7 @@ Returns the result of
(is-a?/c canvas%)]{
Returns the result of
-@scheme[drscheme:get/extend:get-definitions-canvas].
+@scheme[drracket:get/extend:get-definitions-canvas].
}
@@ -416,7 +416,7 @@ Second case:
(is-a?/c editor<%>)]{
Returns the result of
-@method[drscheme:unit:frame<%> get-definitions-text].
+@method[drracket:unit:frame<%> get-definitions-text].
@@ -427,7 +427,7 @@ Returns the result of
(is-a?/c editor<%>)]{
Returns the result of
-@scheme[drscheme:get/extend:get-definitions-text].
+@scheme[drracket:get/extend:get-definitions-text].
}
@@ -443,15 +443,15 @@ Returns the Run button. Mostly used for test suites.
(is-a?/c text:searching%)]{
returns the text that is active in the last canvas passed to
-@method[drscheme:unit:frame% make-searchable]
+@method[drracket:unit:frame% make-searchable]
}
-@defmethod[(make-searchable [canvas (is-a?/c drscheme:unit:interactions-canvas%)])
+@defmethod[(make-searchable [canvas (is-a?/c drracket:unit:interactions-canvas%)])
void?]{
stores the canvas, until
-@method[drscheme:unit:frame% get-text-to-search] is called.
+@method[drracket:unit:frame% get-text-to-search] is called.
}
@@ -461,9 +461,9 @@ stores the canvas, until
void?]{
Sends the result of
-@method[drscheme:unit:frame<%> get-interactions-text] the
-@method[drscheme:rep:text% shutdown] and
-@method[drscheme:rep:text% on-close] methods.
+@method[drracket:unit:frame<%> get-interactions-text] the
+@method[drracket:rep:text% shutdown] and
+@method[drracket:rep:text% on-close] methods.
Calls the super method.
@@ -487,7 +487,7 @@ width and height.
determines if the definitions window has not been
modified. Used in conjunction with
-@method[drscheme:unit:frame% change-to-file].
+@method[drracket:unit:frame% change-to-file].
}
@@ -510,7 +510,7 @@ the @scheme[modified?] argument as an initial visibility for
the save button.
This method is called by the
-@method[drscheme:unit:definitions-text% set-modified] method.
+@method[drracket:unit:definitions-text% set-modified] method.
}
@@ -520,7 +520,7 @@ This method is called by the
Updates the save message on the drscheme frame. This method is called by
the
-@method[drscheme:unit:definitions-text% set-filename] method.
+@method[drracket:unit:definitions-text% set-filename] method.
}
@@ -536,13 +536,13 @@ items based on the contents of the windows.
}}
-@definterface[drscheme:unit:frame<%> ()]{
+@definterface[drracket:unit:frame<%> ()]{
@defmethod[(get-language-menu) (is-a?/c menu%)]{ Returns the
language-specific menu. This menu is called the
@onscreen{Scheme} menu in the Scheme language but is, in general,
controlled by the @scheme['drscheme:language-menu-title]
- capability (see @scheme[drscheme:language:register-capability]
+ capability (see @scheme[drracket:language:register-capability]
for details on capabilities).
}
@@ -570,12 +570,12 @@ Shows the interactions window
}
@defmethod[(get-current-tab)
- (is-a?/c drscheme:unit:tab<%>)]{
+ (is-a?/c drracket:unit:tab<%>)]{
Returns the currently active tab.
}
-@defmethod[(get-tab-filename [i (<=/c 0 (#,(method drscheme:unit:frame<%> get-tab-count)))]) string?]{
+@defmethod[(get-tab-filename [i (<=/c 0 (#,(method drracket:unit:frame<%> get-tab-count)))]) string?]{
Returns a string naming the file in the @scheme[i]th tab or, if
the file is not saved, something like ``Untitled''.
}
@@ -595,24 +595,24 @@ Returns the currently active tab.
}
@defmethod[(get-definitions-canvas)
- (is-a?/c drscheme:unit:definitions-canvas%)]{
+ (is-a?/c drracket:unit:definitions-canvas%)]{
This canvas is the canvas containing the
-@method[drscheme:unit:frame<%> get-definitions-text]. It is initially the top half of the drscheme window.
+@method[drracket:unit:frame<%> get-definitions-text]. It is initially the top half of the drscheme window.
-This canvas defaults to a @scheme[drscheme:unit:definitions-canvas%]
+This canvas defaults to a @scheme[drracket:unit:definitions-canvas%]
object, but if you change the
-@scheme[drscheme:get/extend:extend-definitions-canvas] procedure, it will use the class in the parameter to create the canvas.
+@scheme[drracket:get/extend:extend-definitions-canvas] procedure, it will use the class in the parameter to create the canvas.
}
@defmethod[(get-definitions-text)
- (is-a?/c drscheme:unit:definitions-text%)]{
+ (is-a?/c drracket:unit:definitions-text%)]{
Calls result of
-@method[drscheme:unit:frame<%> get-current-tab]'s
-@method[drscheme:unit:tab<%> get-defs] method.
+@method[drracket:unit:frame<%> get-current-tab]'s
+@method[drracket:unit:tab<%> get-defs] method.
}
@@ -626,38 +626,38 @@ Returns the Insert menu.
}}
@defmethod[(get-interactions-canvas)
- (instanceof (derivedfrom drscheme:unit:interactions-canvas%))]{
+ (instanceof (derivedfrom drracket:unit:interactions-canvas%))]{
This canvas is the canvas containing the
-@method[drscheme:unit:frame<%> get-interactions-text]. It is initially the bottom half of the drscheme window.
+@method[drracket:unit:frame<%> get-interactions-text]. It is initially the bottom half of the drscheme window.
-This canvas defaults to a @scheme[drscheme:unit:interactions-canvas%]
+This canvas defaults to a @scheme[drracket:unit:interactions-canvas%]
object, but if you use the
-@scheme[drscheme:get/extend:extend-interactions-canvas] procedure,
+@scheme[drracket:get/extend:extend-interactions-canvas] procedure,
it will use the extended class to create the canvas.
}
@defmethod[(get-interactions-text)
- (instanceof (derivedfrom drscheme:rep:text%))]{
+ (is-a?/c drracket:rep:text%)]{
Calls result of
-@method[drscheme:unit:frame<%> get-current-tab]'s
-@method[drscheme:unit:tab<%> get-ints] method.
+@method[drracket:unit:frame<%> get-current-tab]'s
+@method[drracket:unit:tab<%> get-ints] method.
}
@defmethod[(get-tabs)
- (listof drscheme:unit:tab<%>)]{
+ (listof (is-a?/c drracket:unit:tab<%>))]{
Returns the list of tabs in this frame.
}
@defmethod[#:mode pubment
- (on-tab-change [from-tab (is-a?/c drscheme:unit:tab<%>)]
- [to-tab (is-a?/c drscheme:unit:tab<%>)])
+ (on-tab-change [from-tab (is-a?/c drracket:unit:tab<%>)]
+ [to-tab (is-a?/c drracket:unit:tab<%>)])
void?]{
@methspec{
@@ -688,7 +688,7 @@ around, except by the this capability. If they are, things
can go funny (i.e., no good checks are in place).
Note that the capability must be registered separately, via
-@scheme[drscheme:language:register-capability].
+@scheme[drracket:language:register-capability].
}
@@ -713,7 +713,7 @@ that the button is not referenced by this frame and thus can be gc'd.
}
-@defclass[drscheme:unit:definitions-text% (drscheme:rep:drs-bindings-keymap-mixin (drscheme:unit:program-editor-mixin (scheme:text-mixin text:info%))) (drscheme:unit:definitions-text<%>)]{
+@defclass[drracket:unit:definitions-text% (drracket:rep:drs-bindings-keymap-mixin (drracket:unit:program-editor-mixin (scheme:text-mixin text:info%))) (drracket:unit:definitions-text<%>)]{
@defconstructor[()]{
Passes all arguments to @scheme[super-init].
@@ -724,7 +724,7 @@ Passes all arguments to @scheme[super-init].
void?]{
Calls
-@method[drscheme:unit:frame% update-save-message].
+@method[drracket:unit:frame% update-save-message].
}
@defmethod[#:mode override
@@ -732,11 +732,11 @@ Calls
void?]{
Calls
-@method[drscheme:unit:frame% update-save-button].
+@method[drracket:unit:frame% update-save-button].
}}
-@definterface[drscheme:unit:definitions-text<%> ()]{
+@definterface[drracket:unit:definitions-text<%> ()]{
This interface is implemented by the definitions text.
@@ -748,7 +748,7 @@ This interface is implemented by the definitions text.
@methspec{
Called when the next settings changes. See also
-@method[drscheme:unit:definitions-text<%> get-next-settings].
+@method[drracket:unit:definitions-text<%> get-next-settings].
}
@@ -766,7 +766,7 @@ the buffer to insert metadata. The metadata is only inserted
during saving, so tools that track changes to DrScheme will
need to ignore changes that occur after this method is
called, and before
-@method[drscheme:unit:definitions-text<%> end-metadata-changes] is called.
+@method[drracket:unit:definitions-text<%> end-metadata-changes] is called.
A call to @scheme[begin-metadata-changes] will always be
followed with a call to @scheme[end-metadata-changes] (ie,
@@ -778,7 +778,7 @@ the calls cannot be nested).
void?]{
Called when the changes to insert metadata are done, and the
editor is back to its state at the time of the call to
-@method[drscheme:unit:definitions-text<%> begin-metadata-changes].
+@method[drracket:unit:definitions-text<%> begin-metadata-changes].
A call to @scheme[begin-metadata-changes] will always be
followed with a call to @scheme[end-metadata-changes] (ie,
@@ -804,7 +804,7 @@ the editor should be used.)
}
@defmethod[(get-tab)
- (instanceof drscheme:unit:tab%)]{
+ (is-a?/c drracket:unit:tab%)]{
Returns the editor's enclosing tab.
}
@@ -846,14 +846,14 @@ Changes the language settings for this window. If
changed, which affects newly created windows.
See also
-@method[drscheme:unit:definitions-text<%> after-set-next-settings] and
-@method[drscheme:unit:definitions-text<%> get-next-settings].
+@method[drracket:unit:definitions-text<%> after-set-next-settings] and
+@method[drracket:unit:definitions-text<%> get-next-settings].
}}
-@defclass[drscheme:unit:definitions-canvas% editor-canvas% ()]{
+@defclass[drracket:unit:definitions-canvas% editor-canvas% ()]{
Initializes the visibility of the save button.
diff --git a/collects/scriblib/autobib.ss b/collects/scriblib/autobib.rkt
similarity index 100%
rename from collects/scriblib/autobib.ss
rename to collects/scriblib/autobib.rkt
diff --git a/collects/scriblib/figure.ss b/collects/scriblib/figure.rkt
similarity index 100%
rename from collects/scriblib/figure.ss
rename to collects/scriblib/figure.rkt
diff --git a/collects/scriblib/gui-eval.ss b/collects/scriblib/gui-eval.rkt
similarity index 100%
rename from collects/scriblib/gui-eval.ss
rename to collects/scriblib/gui-eval.rkt
diff --git a/collects/scriblib/private/counter.ss b/collects/scriblib/private/counter.rkt
similarity index 100%
rename from collects/scriblib/private/counter.ss
rename to collects/scriblib/private/counter.rkt
diff --git a/collects/scriblib/private/gui-eval-exn.ss b/collects/scriblib/private/gui-eval-exn.rkt
similarity index 100%
rename from collects/scriblib/private/gui-eval-exn.ss
rename to collects/scriblib/private/gui-eval-exn.rkt
diff --git a/collects/scriblib/scribblings/info.ss b/collects/scriblib/scribblings/info.rkt
similarity index 100%
rename from collects/scriblib/scribblings/info.ss
rename to collects/scriblib/scribblings/info.rkt
diff --git a/collects/setup/configtab.ss b/collects/setup/configtab.rkt
similarity index 100%
rename from collects/setup/configtab.ss
rename to collects/setup/configtab.rkt
diff --git a/collects/setup/dirs.ss b/collects/setup/dirs.rkt
similarity index 100%
rename from collects/setup/dirs.ss
rename to collects/setup/dirs.rkt
diff --git a/collects/setup/getinfo.ss b/collects/setup/getinfo.rkt
similarity index 93%
rename from collects/setup/getinfo.ss
rename to collects/setup/getinfo.rkt
index 87cd94b208..e23469c8f5 100644
--- a/collects/setup/getinfo.ss
+++ b/collects/setup/getinfo.rkt
@@ -2,7 +2,7 @@
(require scheme/match scheme/contract planet/cachepath syntax/modread)
-;; in addition to infodomain/compiled/cache.ss, getinfo will look in this
+;; in addition to infodomain/compiled/cache.rktd, getinfo will look in this
;; file to find mappings. PLaneT uses this to put info about installed
;; planet packages.
(define user-infotable (get-planet-cache-path))
@@ -25,7 +25,11 @@
;; get-info/full : path -> info/#f
(define (get-info/full dir)
- (define file (build-path dir "info.ss"))
+ (or (get-info/full/ext dir "rkt")
+ (get-info/full/ext dir "ss")))
+
+(define (get-info/full/ext dir ext)
+ (define file (build-path dir (format "info.~a" ext)))
(define (err fmt . args)
(apply error 'get-info (string-append "info file " fmt " in ~a")
(append args (list file))))
@@ -45,7 +49,9 @@
(and (file-exists? file)
(match (contents)
[(list 'module 'info
- (or '(lib "infotab.ss" "setup")
+ (or '(lib "infotab.rkt" "setup")
+ '(lib "infotab.ss" "setup")
+ '(lib "setup/infotab.rkt")
'(lib "setup/infotab.ss")
'setup/infotab)
expr ...)
@@ -155,13 +161,13 @@
(cond [(eq? key 'preferred) preferred-table]
[(eq? key 'all-available) all-available-table]
[else (error 'find-relevant-directories "Invalid key: ~s" key)]))
- ;; A list of (cons cache.ss-path root-dir-path)
- ;; If root-dir-path is not #f, then paths in the cache.ss
- ;; file are relative to it. #f is used for the planet cache.ss file.
+ ;; A list of (cons cache.rktd-path root-dir-path)
+ ;; If root-dir-path is not #f, then paths in the cache.rktd
+ ;; file are relative to it. #f is used for the planet cache.rktd file.
(define search-path
(cons (cons user-infotable #f)
(map (lambda (coll)
- (cons (build-path coll "info-domain" "compiled" "cache.ss")
+ (cons (build-path coll "info-domain" "compiled" "cache.rktd")
coll))
(current-library-collection-paths))))
(unless (equal? (table-paths t) search-path)
diff --git a/collects/setup/info.ss b/collects/setup/info.rkt
similarity index 64%
rename from collects/setup/info.ss
rename to collects/setup/info.rkt
index 8efbf153ee..3d15e3543c 100644
--- a/collects/setup/info.ss
+++ b/collects/setup/info.rkt
@@ -1,8 +1,8 @@
#lang setup/infotab
-(define compile-omit-paths '("main.ss"))
+(define compile-omit-paths '("main.rkt"))
-(define mzscheme-launcher-libraries '("main.ss"))
+(define mzscheme-launcher-libraries '("main.rkt"))
(define mzscheme-launcher-names '("Setup PLT"))
(define raco-commands '(("setup" setup/main "install and build libraries and documentation" 90)))
diff --git a/collects/setup/infotab.ss b/collects/setup/infotab.rkt
similarity index 100%
rename from collects/setup/infotab.ss
rename to collects/setup/infotab.rkt
diff --git a/collects/setup/infotab/lang/reader.ss b/collects/setup/infotab/lang/reader.rkt
similarity index 100%
rename from collects/setup/infotab/lang/reader.ss
rename to collects/setup/infotab/lang/reader.rkt
diff --git a/collects/setup/main-collects.ss b/collects/setup/main-collects.rkt
similarity index 100%
rename from collects/setup/main-collects.ss
rename to collects/setup/main-collects.rkt
diff --git a/collects/setup/main-doc.ss b/collects/setup/main-doc.rkt
similarity index 100%
rename from collects/setup/main-doc.ss
rename to collects/setup/main-doc.rkt
diff --git a/collects/setup/main.ss b/collects/setup/main.rkt
similarity index 100%
rename from collects/setup/main.ss
rename to collects/setup/main.rkt
diff --git a/collects/setup/option-sig.ss b/collects/setup/option-sig.rkt
similarity index 100%
rename from collects/setup/option-sig.ss
rename to collects/setup/option-sig.rkt
diff --git a/collects/setup/option-unit.ss b/collects/setup/option-unit.rkt
similarity index 100%
rename from collects/setup/option-unit.ss
rename to collects/setup/option-unit.rkt
diff --git a/collects/setup/pack.ss b/collects/setup/pack.rkt
similarity index 100%
rename from collects/setup/pack.ss
rename to collects/setup/pack.rkt
diff --git a/collects/setup/path-relativize.ss b/collects/setup/path-relativize.rkt
similarity index 100%
rename from collects/setup/path-relativize.ss
rename to collects/setup/path-relativize.rkt
diff --git a/collects/setup/plt-installer-sig.ss b/collects/setup/plt-installer-sig.rkt
similarity index 100%
rename from collects/setup/plt-installer-sig.ss
rename to collects/setup/plt-installer-sig.rkt
diff --git a/collects/setup/plt-installer-unit.ss b/collects/setup/plt-installer-unit.rkt
similarity index 100%
rename from collects/setup/plt-installer-unit.ss
rename to collects/setup/plt-installer-unit.rkt
diff --git a/collects/setup/plt-installer.ss b/collects/setup/plt-installer.rkt
similarity index 100%
rename from collects/setup/plt-installer.ss
rename to collects/setup/plt-installer.rkt
diff --git a/collects/setup/plt-single-installer.ss b/collects/setup/plt-single-installer.rkt
similarity index 100%
rename from collects/setup/plt-single-installer.ss
rename to collects/setup/plt-single-installer.rkt
diff --git a/collects/setup/private/lib-roots.ss b/collects/setup/private/lib-roots.rkt
similarity index 100%
rename from collects/setup/private/lib-roots.ss
rename to collects/setup/private/lib-roots.rkt
diff --git a/collects/setup/private/main-collects.ss b/collects/setup/private/main-collects.rkt
similarity index 100%
rename from collects/setup/private/main-collects.ss
rename to collects/setup/private/main-collects.rkt
diff --git a/collects/setup/private/omitted-paths.ss b/collects/setup/private/omitted-paths.rkt
similarity index 100%
rename from collects/setup/private/omitted-paths.ss
rename to collects/setup/private/omitted-paths.rkt
diff --git a/collects/setup/private/path-utils.ss b/collects/setup/private/path-utils.rkt
similarity index 100%
rename from collects/setup/private/path-utils.ss
rename to collects/setup/private/path-utils.rkt
diff --git a/collects/setup/scribble.ss b/collects/setup/scribble.rkt
similarity index 100%
rename from collects/setup/scribble.ss
rename to collects/setup/scribble.rkt
diff --git a/collects/setup/setup-cmdline.ss b/collects/setup/setup-cmdline.rkt
similarity index 99%
rename from collects/setup/setup-cmdline.ss
rename to collects/setup/setup-cmdline.rkt
index b36b69eb5b..8d9d1fd7bd 100644
--- a/collects/setup/setup-cmdline.ss
+++ b/collects/setup/setup-cmdline.rkt
@@ -3,9 +3,9 @@
;; both in setup.ss (pre-zo, pre-cm) and setup-go.ss (use zos and cm).
;; This means that command lines will be parsed twice.
-#lang scheme/base
+#lang racket/base
-(require scheme/cmdline
+(require racket/cmdline
raco/command-name)
(provide parse-cmdline)
diff --git a/collects/setup/setup-go.ss b/collects/setup/setup-go.rkt
similarity index 100%
rename from collects/setup/setup-go.ss
rename to collects/setup/setup-go.rkt
diff --git a/collects/setup/setup-unit.ss b/collects/setup/setup-unit.rkt
similarity index 98%
rename from collects/setup/setup-unit.ss
rename to collects/setup/setup-unit.rkt
index cd582c41a6..b8c9203b18 100644
--- a/collects/setup/setup-unit.ss
+++ b/collects/setup/setup-unit.rkt
@@ -15,16 +15,16 @@
planet/planet-archives
planet/private/planet-shared
- "option-sig.ss"
+ "option-sig.rkt"
compiler/sig
launcher/launcher-sig
- "unpack.ss"
- "getinfo.ss"
- "dirs.ss"
- "main-collects.ss"
- "private/path-utils.ss"
- "private/omitted-paths.ss")
+ "unpack.rkt"
+ "getinfo.rkt"
+ "dirs.rkt"
+ "main-collects.rkt"
+ "private/path-utils.rkt"
+ "private/omitted-paths.rkt")
(define-namespace-anchor anchor)
@@ -187,7 +187,7 @@
(make-cc* collection-p
(apply collection-path collection-p)
root-dir
- (build-path root-dir "info-domain" "compiled" "cache.ss")
+ (build-path root-dir "info-domain" "compiled" "cache.rktd")
;; by convention, all collections have "version" 1 0. This
;; forces them to conflict with each other.
(list (cons 'lib (map path->string collection-p)) 1 0)))))
@@ -216,7 +216,7 @@
(and (directory-exists? path)
(make-cc* #f
path
- #f ; don't need root-dir; absolute paths in cache.ss will be ok
+ #f ; don't need root-dir; absolute paths in cache.rktd will be ok
(get-planet-cache-path)
(list `(planet ,owner ,pkg-file ,@extra-path) maj min))))
@@ -451,7 +451,7 @@
(when did-something? (loop dependencies))))
(setup-printf #f "clearing info-domain caches")
(for ([p (current-library-collection-paths)])
- (let ([fn (build-path p "info-domain" "compiled" "cache.ss")])
+ (let ([fn (build-path p "info-domain" "compiled" "cache.rktd")])
(when (file-exists? fn)
(with-handlers ([exn:fail:filesystem? (warning-handler (void))])
(with-output-to-file fn void #:exists 'truncate/replace))))))))
@@ -562,7 +562,7 @@
"error loading compiler for mode ~s: ~a"
(compile-mode)
(exn->string exn)))])
- (dynamic-require `(lib "zo-compile.ss" ,(compile-mode))
+ (dynamic-require `(lib "zo-compile.rkt" ,(compile-mode))
'zo-compile))]
[orig-kinds (use-compiled-file-paths)]
[orig-compile (current-compile)]
@@ -613,7 +613,7 @@
(for ([cc ccs-to-compile])
(let* ([domain (with-handlers ([exn:fail? (lambda (x) (lambda () null))])
(dynamic-require
- (build-path (cc-path cc) "info.ss")
+ (build-path (cc-path cc) "info.rkt")
'#%info-domain))]
;; Check whether we have a table for this cc's info-domain cache:
[t (hash-ref ht (cc-info-path cc)
@@ -650,7 +650,7 @@
(if (cc-root-dir cc)
(build-path (cc-root-dir cc) p)
p)
- "info.ss"))))))
+ "info.rkt"))))))
a)
(list (? symbol? b) ...)
c
@@ -661,7 +661,7 @@
;; Record the table loaded for this collection root
;; in the all-roots table:
(hash-set! ht (cc-info-path cc) t)
- ;; If anything in the "cache.ss" file was bad, then
+ ;; If anything in the "cache.rktd" file was bad, then
;; claim that the old table was empty, so that we
;; definitely write the new table.
(hash-set! ht-orig (cc-info-path cc)
@@ -676,7 +676,7 @@
;; Use absolute path:
(cc-path cc)))
(cons (domain) (cc-shadowing-policy cc)))))
- ;; Write out each collection-root-specific table to a "cache.ss" file:
+ ;; Write out each collection-root-specific table to a "cache.rktd" file:
(hash-for-each ht
(lambda (info-path ht)
(unless (equal? ht (hash-ref ht-orig info-path))
@@ -724,7 +724,7 @@
(archive-implies-reindex)))))
(define (doc-pdf-dest-step)
- (setup-printf #f "building PDF documentation (via pdflatex)")
+ (setup-printf #f "--- building PDF documentation (via pdflatex) ---")
(let ([dest-dir (path->complete-path (doc-pdf-dest))])
(unless (directory-exists? dest-dir)
(make-directory dest-dir))
@@ -899,14 +899,14 @@
(when (make-zo) (make-zo-step))
(when (make-info-domain) (make-info-domain-step))
- (when (make-docs)
- ;; Double-check that "setup/scribble" is present.
- (when (file-exists? (build-path (collection-path "setup") "scribble.ss"))
- (make-docs-step)))
- (when (doc-pdf-dest) (doc-pdf-dest-step))
(when (make-launchers) (make-launchers-step))
+ (when (make-docs)
+ ;; Double-check that "setup/scribble" is present.
+ (when (file-exists? (build-path (collection-path "setup") "scribble.rkt"))
+ (make-docs-step)))
+ (when (doc-pdf-dest) (doc-pdf-dest-step))
(do-install-part 'general)
(do-install-part 'post)
diff --git a/collects/setup/unixstyle-install.ss b/collects/setup/unixstyle-install.rkt
similarity index 100%
rename from collects/setup/unixstyle-install.ss
rename to collects/setup/unixstyle-install.rkt
diff --git a/collects/setup/unpack.ss b/collects/setup/unpack.rkt
similarity index 100%
rename from collects/setup/unpack.ss
rename to collects/setup/unpack.rkt
diff --git a/collects/setup/variant.ss b/collects/setup/variant.rkt
similarity index 100%
rename from collects/setup/variant.ss
rename to collects/setup/variant.rkt
diff --git a/collects/setup/winvers-change.ss b/collects/setup/winvers-change.rkt
similarity index 100%
rename from collects/setup/winvers-change.ss
rename to collects/setup/winvers-change.rkt
diff --git a/collects/setup/winvers.ss b/collects/setup/winvers.rkt
similarity index 100%
rename from collects/setup/winvers.ss
rename to collects/setup/winvers.rkt
diff --git a/collects/setup/xref.ss b/collects/setup/xref.rkt
similarity index 100%
rename from collects/setup/xref.ss
rename to collects/setup/xref.rkt
diff --git a/collects/sgl/bitmap.ss b/collects/sgl/bitmap.rkt
similarity index 100%
rename from collects/sgl/bitmap.ss
rename to collects/sgl/bitmap.rkt
diff --git a/collects/sgl/examples/alpha.ss b/collects/sgl/examples/alpha.rkt
similarity index 100%
rename from collects/sgl/examples/alpha.ss
rename to collects/sgl/examples/alpha.rkt
diff --git a/collects/sgl/examples/gears.ss b/collects/sgl/examples/gears.rkt
similarity index 100%
rename from collects/sgl/examples/gears.ss
rename to collects/sgl/examples/gears.rkt
diff --git a/collects/sgl/examples/gl-frame.ss b/collects/sgl/examples/gl-frame.rkt
similarity index 100%
rename from collects/sgl/examples/gl-frame.ss
rename to collects/sgl/examples/gl-frame.rkt
diff --git a/collects/sgl/gl-types.ss b/collects/sgl/gl-types.rkt
similarity index 100%
rename from collects/sgl/gl-types.ss
rename to collects/sgl/gl-types.rkt
diff --git a/collects/sgl/gl-vectors.ss b/collects/sgl/gl-vectors.rkt
similarity index 100%
rename from collects/sgl/gl-vectors.ss
rename to collects/sgl/gl-vectors.rkt
diff --git a/collects/sgl/gl.ss b/collects/sgl/gl.rkt
similarity index 100%
rename from collects/sgl/gl.ss
rename to collects/sgl/gl.rkt
diff --git a/collects/sgl/info.ss b/collects/sgl/info.rkt
similarity index 74%
rename from collects/sgl/info.ss
rename to collects/sgl/info.rkt
index f9e1d5ff46..8bff6c45b1 100644
--- a/collects/sgl/info.ss
+++ b/collects/sgl/info.rkt
@@ -1,7 +1,7 @@
#lang setup/infotab
-(define pre-install-collection "makefile.ss")
-(define virtual-sources '("gl-info.ss"))
+(define pre-install-collection "makefile.rkt")
+(define virtual-sources '("gl-info.rkt"))
(define clean (list (build-path "compiled" "native" (system-library-subpath))
"compiled"))
(define compile-omit-paths '("examples"))
diff --git a/collects/sgl/main.ss b/collects/sgl/main.rkt
similarity index 100%
rename from collects/sgl/main.ss
rename to collects/sgl/main.rkt
diff --git a/collects/sgl/make-gl-info.ss b/collects/sgl/make-gl-info.rkt
similarity index 99%
rename from collects/sgl/make-gl-info.ss
rename to collects/sgl/make-gl-info.rkt
index bdf9b95a1d..d4ee690ca3 100644
--- a/collects/sgl/make-gl-info.ss
+++ b/collects/sgl/make-gl-info.rkt
@@ -111,7 +111,7 @@ end-string
(delete/continue file.o)))
(define (build-helper compile-directory variant)
- (let* ([file "make-gl-info-helper.ss"]
+ (let* ([file "make-gl-info-helper.rkt"]
[c (build-path compile-directory (append-c-suffix file))]
[so (build-path compile-directory "native"
(system-library-subpath variant)
@@ -138,7 +138,7 @@ end-string
'no-gl)))))))))
(define (make-gl-info compile-directory)
- (let ([zo (build-path compile-directory (append-zo-suffix "gl-info.ss"))]
+ (let ([zo (build-path compile-directory (append-zo-suffix "gl-info.rkt"))]
[mod
(compile
(case (effective-system-type)
diff --git a/collects/sgl/makefile.ss b/collects/sgl/makefile.rkt
similarity index 79%
rename from collects/sgl/makefile.ss
rename to collects/sgl/makefile.rkt
index 9ce7a3c574..8782d147b1 100644
--- a/collects/sgl/makefile.ss
+++ b/collects/sgl/makefile.rkt
@@ -1,7 +1,7 @@
#lang mzscheme
(require make
setup/dirs
- "make-gl-info.ss")
+ "make-gl-info.rkt")
(provide pre-installer)
@@ -13,5 +13,5 @@
[make-print-checking #f])
(make/proc
`((,(build-path dir "gl-info_ss.zo")
- ("make-gl-info.ss" ,(build-path (find-include-dir) "schvers.h"))
+ ("make-gl-info.rkt" ,(build-path (find-include-dir) "schvers.h"))
,(lambda () (make-gl-info dir)))))))
diff --git a/collects/sgl/scribblings/common.ss b/collects/sgl/scribblings/common.rkt
similarity index 100%
rename from collects/sgl/scribblings/common.ss
rename to collects/sgl/scribblings/common.rkt
diff --git a/collects/sgl/sgl.ss b/collects/sgl/sgl.rkt
similarity index 100%
rename from collects/sgl/sgl.ss
rename to collects/sgl/sgl.rkt
diff --git a/collects/sirmail/folderr.ss b/collects/sirmail/folderr.rkt
similarity index 100%
rename from collects/sirmail/folderr.ss
rename to collects/sirmail/folderr.rkt
diff --git a/collects/sirmail/info.ss b/collects/sirmail/info.rkt
similarity index 100%
rename from collects/sirmail/info.ss
rename to collects/sirmail/info.rkt
diff --git a/collects/sirmail/main.ss b/collects/sirmail/main.rkt
similarity index 100%
rename from collects/sirmail/main.ss
rename to collects/sirmail/main.rkt
diff --git a/collects/sirmail/optionr.ss b/collects/sirmail/optionr.rkt
similarity index 100%
rename from collects/sirmail/optionr.ss
rename to collects/sirmail/optionr.rkt
diff --git a/collects/sirmail/pref.ss b/collects/sirmail/pref.rkt
similarity index 100%
rename from collects/sirmail/pref.ss
rename to collects/sirmail/pref.rkt
diff --git a/collects/sirmail/readr.ss b/collects/sirmail/readr.rkt
similarity index 100%
rename from collects/sirmail/readr.ss
rename to collects/sirmail/readr.rkt
diff --git a/collects/sirmail/recover.ss b/collects/sirmail/recover.rkt
similarity index 100%
rename from collects/sirmail/recover.ss
rename to collects/sirmail/recover.rkt
diff --git a/collects/sirmail/sendr.ss b/collects/sirmail/sendr.rkt
similarity index 100%
rename from collects/sirmail/sendr.ss
rename to collects/sirmail/sendr.rkt
diff --git a/collects/sirmail/sirmail.ss b/collects/sirmail/sirmail.rkt
similarity index 100%
rename from collects/sirmail/sirmail.ss
rename to collects/sirmail/sirmail.rkt
diff --git a/collects/sirmail/sirmailr.ss b/collects/sirmail/sirmailr.rkt
similarity index 100%
rename from collects/sirmail/sirmailr.ss
rename to collects/sirmail/sirmailr.rkt
diff --git a/collects/sirmail/sirmails.ss b/collects/sirmail/sirmails.rkt
similarity index 100%
rename from collects/sirmail/sirmails.ss
rename to collects/sirmail/sirmails.rkt
diff --git a/collects/sirmail/spell.ss b/collects/sirmail/spell.rkt
similarity index 100%
rename from collects/sirmail/spell.ss
rename to collects/sirmail/spell.rkt
diff --git a/collects/sirmail/utilr.ss b/collects/sirmail/utilr.rkt
similarity index 100%
rename from collects/sirmail/utilr.ss
rename to collects/sirmail/utilr.rkt
diff --git a/collects/slatex/internal-doc.txt b/collects/slatex/README
similarity index 100%
rename from collects/slatex/internal-doc.txt
rename to collects/slatex/README
diff --git a/collects/slatex/info.ss b/collects/slatex/info.rkt
similarity index 100%
rename from collects/slatex/info.ss
rename to collects/slatex/info.rkt
diff --git a/collects/slatex/pdf-slatex-launcher.ss b/collects/slatex/pdf-slatex-launcher.rkt
similarity index 100%
rename from collects/slatex/pdf-slatex-launcher.ss
rename to collects/slatex/pdf-slatex-launcher.rkt
diff --git a/collects/slatex/slatex-launcher.ss b/collects/slatex/slatex-launcher.rkt
similarity index 100%
rename from collects/slatex/slatex-launcher.ss
rename to collects/slatex/slatex-launcher.rkt
diff --git a/collects/slatex/slatex-wrapper.ss b/collects/slatex/slatex-wrapper.rkt
similarity index 93%
rename from collects/slatex/slatex-wrapper.ss
rename to collects/slatex/slatex-wrapper.rkt
index 4cd37d50f9..2d4f206a31 100644
--- a/collects/slatex/slatex-wrapper.ss
+++ b/collects/slatex/slatex-wrapper.rkt
@@ -1,12 +1,18 @@
(module slatex-wrapper scheme/base
(require mzlib/file
+ scheme/contract
mzlib/process
mzlib/sendevent
"slatex.ss")
- (provide slatex latex pdf-slatex pdf-latex slatex/no-latex
- filename->latex-filename)
+ (provide/contract
+ [slatex (string? . -> . boolean?)]
+ [pdf-slatex (string? . -> . boolean?)]
+ [slatex/no-latex (string? . -> . void?)]
+ [latex (string? . -> . boolean?)]
+ [pdf-latex (string? . -> . boolean?)]
+ [filename->latex-filename (string? . -> . string?)])
(define (add-suffix p s)
(path->string
diff --git a/collects/slatex/slatex.ss b/collects/slatex/slatex.rkt
similarity index 100%
rename from collects/slatex/slatex.ss
rename to collects/slatex/slatex.rkt
diff --git a/collects/slideshow/balloon.ss b/collects/slideshow/balloon.rkt
similarity index 100%
rename from collects/slideshow/balloon.ss
rename to collects/slideshow/balloon.rkt
diff --git a/collects/slideshow/base.ss b/collects/slideshow/base.rkt
similarity index 100%
rename from collects/slideshow/base.ss
rename to collects/slideshow/base.rkt
diff --git a/collects/slideshow/cmdline.ss b/collects/slideshow/cmdline.rkt
similarity index 100%
rename from collects/slideshow/cmdline.ss
rename to collects/slideshow/cmdline.rkt
diff --git a/collects/slideshow/code.ss b/collects/slideshow/code.rkt
similarity index 100%
rename from collects/slideshow/code.ss
rename to collects/slideshow/code.rkt
diff --git a/collects/slideshow/core.ss b/collects/slideshow/core.rkt
similarity index 100%
rename from collects/slideshow/core.ss
rename to collects/slideshow/core.rkt
diff --git a/collects/slideshow/face.ss b/collects/slideshow/face.rkt
similarity index 100%
rename from collects/slideshow/face.ss
rename to collects/slideshow/face.rkt
diff --git a/collects/slideshow/flash.ss b/collects/slideshow/flash.rkt
similarity index 100%
rename from collects/slideshow/flash.ss
rename to collects/slideshow/flash.rkt
diff --git a/collects/slideshow/info.ss b/collects/slideshow/info.rkt
similarity index 100%
rename from collects/slideshow/info.ss
rename to collects/slideshow/info.rkt
diff --git a/collects/slideshow/initial-ones.ss b/collects/slideshow/initial-ones.rkt
similarity index 100%
rename from collects/slideshow/initial-ones.ss
rename to collects/slideshow/initial-ones.rkt
diff --git a/collects/slideshow/lang/reader.ss b/collects/slideshow/lang/reader.rkt
similarity index 100%
rename from collects/slideshow/lang/reader.ss
rename to collects/slideshow/lang/reader.rkt
diff --git a/collects/slideshow/main.ss b/collects/slideshow/main.rkt
similarity index 100%
rename from collects/slideshow/main.ss
rename to collects/slideshow/main.rkt
diff --git a/collects/slideshow/param.ss b/collects/slideshow/param.rkt
similarity index 100%
rename from collects/slideshow/param.ss
rename to collects/slideshow/param.rkt
diff --git a/collects/slideshow/pict-snipclass.ss b/collects/slideshow/pict-snipclass.rkt
similarity index 100%
rename from collects/slideshow/pict-snipclass.ss
rename to collects/slideshow/pict-snipclass.rkt
diff --git a/collects/slideshow/pict.ss b/collects/slideshow/pict.rkt
similarity index 100%
rename from collects/slideshow/pict.ss
rename to collects/slideshow/pict.rkt
diff --git a/collects/slideshow/play.ss b/collects/slideshow/play.rkt
similarity index 100%
rename from collects/slideshow/play.ss
rename to collects/slideshow/play.rkt
diff --git a/collects/slideshow/private/image-snipr.ss b/collects/slideshow/private/image-snipr.rkt
similarity index 100%
rename from collects/slideshow/private/image-snipr.ss
rename to collects/slideshow/private/image-snipr.rkt
diff --git a/collects/slideshow/private/pict-box-lib.ss b/collects/slideshow/private/pict-box-lib.rkt
similarity index 100%
rename from collects/slideshow/private/pict-box-lib.ss
rename to collects/slideshow/private/pict-box-lib.rkt
diff --git a/collects/slideshow/private/utils.ss b/collects/slideshow/private/utils.rkt
similarity index 100%
rename from collects/slideshow/private/utils.ss
rename to collects/slideshow/private/utils.rkt
diff --git a/collects/slideshow/run.ss b/collects/slideshow/run.rkt
similarity index 100%
rename from collects/slideshow/run.ss
rename to collects/slideshow/run.rkt
diff --git a/collects/slideshow/sig.ss b/collects/slideshow/sig.rkt
similarity index 100%
rename from collects/slideshow/sig.ss
rename to collects/slideshow/sig.rkt
diff --git a/collects/slideshow/slide.ss b/collects/slideshow/slide.rkt
similarity index 100%
rename from collects/slideshow/slide.ss
rename to collects/slideshow/slide.rkt
diff --git a/collects/slideshow/slides-to-picts.ss b/collects/slideshow/slides-to-picts.rkt
similarity index 100%
rename from collects/slideshow/slides-to-picts.ss
rename to collects/slideshow/slides-to-picts.rkt
diff --git a/collects/slideshow/slideshow.ss b/collects/slideshow/slideshow.rkt
similarity index 100%
rename from collects/slideshow/slideshow.ss
rename to collects/slideshow/slideshow.rkt
diff --git a/collects/slideshow/start-param.ss b/collects/slideshow/start-param.rkt
similarity index 100%
rename from collects/slideshow/start-param.ss
rename to collects/slideshow/start-param.rkt
diff --git a/collects/slideshow/start.ss b/collects/slideshow/start.rkt
similarity index 100%
rename from collects/slideshow/start.ss
rename to collects/slideshow/start.rkt
diff --git a/collects/slideshow/step.ss b/collects/slideshow/step.rkt
similarity index 100%
rename from collects/slideshow/step.ss
rename to collects/slideshow/step.rkt
diff --git a/collects/slideshow/tool.ss b/collects/slideshow/tool.rkt
similarity index 100%
rename from collects/slideshow/tool.ss
rename to collects/slideshow/tool.rkt
diff --git a/collects/slideshow/tutorial-show.ss b/collects/slideshow/tutorial-show.rkt
similarity index 100%
rename from collects/slideshow/tutorial-show.ss
rename to collects/slideshow/tutorial-show.rkt
diff --git a/collects/slideshow/viewer.ss b/collects/slideshow/viewer.rkt
similarity index 100%
rename from collects/slideshow/viewer.ss
rename to collects/slideshow/viewer.rkt
diff --git a/collects/srfi/%3a1.ss b/collects/srfi/%3a1.rkt
similarity index 100%
rename from collects/srfi/%3a1.ss
rename to collects/srfi/%3a1.rkt
diff --git a/collects/srfi/%3a1/lists.ss b/collects/srfi/%3a1/lists.rkt
similarity index 100%
rename from collects/srfi/%3a1/lists.ss
rename to collects/srfi/%3a1/lists.rkt
diff --git a/collects/srfi/%3a11.ss b/collects/srfi/%3a11.rkt
similarity index 100%
rename from collects/srfi/%3a11.ss
rename to collects/srfi/%3a11.rkt
diff --git a/collects/srfi/%3a11/let-values.ss b/collects/srfi/%3a11/let-values.rkt
similarity index 100%
rename from collects/srfi/%3a11/let-values.ss
rename to collects/srfi/%3a11/let-values.rkt
diff --git a/collects/srfi/%3a13.ss b/collects/srfi/%3a13.rkt
similarity index 100%
rename from collects/srfi/%3a13.ss
rename to collects/srfi/%3a13.rkt
diff --git a/collects/srfi/%3a13/strings.ss b/collects/srfi/%3a13/strings.rkt
similarity index 100%
rename from collects/srfi/%3a13/strings.ss
rename to collects/srfi/%3a13/strings.rkt
diff --git a/collects/srfi/%3a14.ss b/collects/srfi/%3a14.rkt
similarity index 100%
rename from collects/srfi/%3a14.ss
rename to collects/srfi/%3a14.rkt
diff --git a/collects/srfi/%3a14/char-sets.ss b/collects/srfi/%3a14/char-sets.rkt
similarity index 100%
rename from collects/srfi/%3a14/char-sets.ss
rename to collects/srfi/%3a14/char-sets.rkt
diff --git a/collects/srfi/%3a16.ss b/collects/srfi/%3a16.rkt
similarity index 100%
rename from collects/srfi/%3a16.ss
rename to collects/srfi/%3a16.rkt
diff --git a/collects/srfi/%3a16/case-lambda.ss b/collects/srfi/%3a16/case-lambda.rkt
similarity index 100%
rename from collects/srfi/%3a16/case-lambda.ss
rename to collects/srfi/%3a16/case-lambda.rkt
diff --git a/collects/srfi/%3a17.ss b/collects/srfi/%3a17.rkt
similarity index 100%
rename from collects/srfi/%3a17.ss
rename to collects/srfi/%3a17.rkt
diff --git a/collects/srfi/%3a17/generalized-set.ss b/collects/srfi/%3a17/generalized-set.rkt
similarity index 100%
rename from collects/srfi/%3a17/generalized-set.ss
rename to collects/srfi/%3a17/generalized-set.rkt
diff --git a/collects/srfi/%3a18.ss b/collects/srfi/%3a18.rkt
similarity index 100%
rename from collects/srfi/%3a18.ss
rename to collects/srfi/%3a18.rkt
diff --git a/collects/srfi/%3a18/multithreading.ss b/collects/srfi/%3a18/multithreading.rkt
similarity index 100%
rename from collects/srfi/%3a18/multithreading.ss
rename to collects/srfi/%3a18/multithreading.rkt
diff --git a/collects/srfi/%3a19.ss b/collects/srfi/%3a19.rkt
similarity index 100%
rename from collects/srfi/%3a19.ss
rename to collects/srfi/%3a19.rkt
diff --git a/collects/srfi/%3a19/time.ss b/collects/srfi/%3a19/time.rkt
similarity index 100%
rename from collects/srfi/%3a19/time.ss
rename to collects/srfi/%3a19/time.rkt
diff --git a/collects/srfi/%3a2.ss b/collects/srfi/%3a2.rkt
similarity index 100%
rename from collects/srfi/%3a2.ss
rename to collects/srfi/%3a2.rkt
diff --git a/collects/srfi/%3a2/and-let%2a.ss b/collects/srfi/%3a2/and-let%2a.rkt
similarity index 100%
rename from collects/srfi/%3a2/and-let%2a.ss
rename to collects/srfi/%3a2/and-let%2a.rkt
diff --git a/collects/srfi/%3a23.ss b/collects/srfi/%3a23.rkt
similarity index 100%
rename from collects/srfi/%3a23.ss
rename to collects/srfi/%3a23.rkt
diff --git a/collects/srfi/%3a23/error.ss b/collects/srfi/%3a23/error.rkt
similarity index 100%
rename from collects/srfi/%3a23/error.ss
rename to collects/srfi/%3a23/error.rkt
diff --git a/collects/srfi/%3a25.ss b/collects/srfi/%3a25.rkt
similarity index 100%
rename from collects/srfi/%3a25.ss
rename to collects/srfi/%3a25.rkt
diff --git a/collects/srfi/%3a25/multi-dimensional-arrays.ss b/collects/srfi/%3a25/multi-dimensional-arrays.rkt
similarity index 100%
rename from collects/srfi/%3a25/multi-dimensional-arrays.ss
rename to collects/srfi/%3a25/multi-dimensional-arrays.rkt
diff --git a/collects/srfi/%3a26.ss b/collects/srfi/%3a26.rkt
similarity index 100%
rename from collects/srfi/%3a26.ss
rename to collects/srfi/%3a26.rkt
diff --git a/collects/srfi/%3a26/cut.ss b/collects/srfi/%3a26/cut.rkt
similarity index 100%
rename from collects/srfi/%3a26/cut.ss
rename to collects/srfi/%3a26/cut.rkt
diff --git a/collects/srfi/%3a27.ss b/collects/srfi/%3a27.rkt
similarity index 100%
rename from collects/srfi/%3a27.ss
rename to collects/srfi/%3a27.rkt
diff --git a/collects/srfi/%3a27/random-bits.ss b/collects/srfi/%3a27/random-bits.rkt
similarity index 100%
rename from collects/srfi/%3a27/random-bits.ss
rename to collects/srfi/%3a27/random-bits.rkt
diff --git a/collects/srfi/%3a28.ss b/collects/srfi/%3a28.rkt
similarity index 100%
rename from collects/srfi/%3a28.ss
rename to collects/srfi/%3a28.rkt
diff --git a/collects/srfi/%3a28/basic-format-strings.ss b/collects/srfi/%3a28/basic-format-strings.rkt
similarity index 100%
rename from collects/srfi/%3a28/basic-format-strings.ss
rename to collects/srfi/%3a28/basic-format-strings.rkt
diff --git a/collects/srfi/%3a29.ss b/collects/srfi/%3a29.rkt
similarity index 100%
rename from collects/srfi/%3a29.ss
rename to collects/srfi/%3a29.rkt
diff --git a/collects/srfi/%3a29/localization.ss b/collects/srfi/%3a29/localization.rkt
similarity index 100%
rename from collects/srfi/%3a29/localization.ss
rename to collects/srfi/%3a29/localization.rkt
diff --git a/collects/srfi/%3a31.ss b/collects/srfi/%3a31.rkt
similarity index 100%
rename from collects/srfi/%3a31.ss
rename to collects/srfi/%3a31.rkt
diff --git a/collects/srfi/%3a31/rec.ss b/collects/srfi/%3a31/rec.rkt
similarity index 100%
rename from collects/srfi/%3a31/rec.ss
rename to collects/srfi/%3a31/rec.rkt
diff --git a/collects/srfi/%3a38.ss b/collects/srfi/%3a38.rkt
similarity index 100%
rename from collects/srfi/%3a38.ss
rename to collects/srfi/%3a38.rkt
diff --git a/collects/srfi/%3a38/with-shared-structure.ss b/collects/srfi/%3a38/with-shared-structure.rkt
similarity index 100%
rename from collects/srfi/%3a38/with-shared-structure.ss
rename to collects/srfi/%3a38/with-shared-structure.rkt
diff --git a/collects/srfi/%3a39.ss b/collects/srfi/%3a39.rkt
similarity index 100%
rename from collects/srfi/%3a39.ss
rename to collects/srfi/%3a39.rkt
diff --git a/collects/srfi/%3a39/parameters.ss b/collects/srfi/%3a39/parameters.rkt
similarity index 100%
rename from collects/srfi/%3a39/parameters.ss
rename to collects/srfi/%3a39/parameters.rkt
diff --git a/collects/srfi/%3a41.ss b/collects/srfi/%3a41.rkt
similarity index 100%
rename from collects/srfi/%3a41.ss
rename to collects/srfi/%3a41.rkt
diff --git a/collects/srfi/%3a41/streams.ss b/collects/srfi/%3a41/streams.rkt
similarity index 100%
rename from collects/srfi/%3a41/streams.ss
rename to collects/srfi/%3a41/streams.rkt
diff --git a/collects/srfi/%3a42.ss b/collects/srfi/%3a42.rkt
similarity index 100%
rename from collects/srfi/%3a42.ss
rename to collects/srfi/%3a42.rkt
diff --git a/collects/srfi/%3a42/eager-comprehensions.ss b/collects/srfi/%3a42/eager-comprehensions.rkt
similarity index 100%
rename from collects/srfi/%3a42/eager-comprehensions.ss
rename to collects/srfi/%3a42/eager-comprehensions.rkt
diff --git a/collects/srfi/%3a43.ss b/collects/srfi/%3a43.rkt
similarity index 100%
rename from collects/srfi/%3a43.ss
rename to collects/srfi/%3a43.rkt
diff --git a/collects/srfi/%3a43/vectors.ss b/collects/srfi/%3a43/vectors.rkt
similarity index 100%
rename from collects/srfi/%3a43/vectors.ss
rename to collects/srfi/%3a43/vectors.rkt
diff --git a/collects/srfi/%3a45.ss b/collects/srfi/%3a45.rkt
similarity index 100%
rename from collects/srfi/%3a45.ss
rename to collects/srfi/%3a45.rkt
diff --git a/collects/srfi/%3a45/lazy.ss b/collects/srfi/%3a45/lazy.rkt
similarity index 100%
rename from collects/srfi/%3a45/lazy.ss
rename to collects/srfi/%3a45/lazy.rkt
diff --git a/collects/srfi/%3a48.ss b/collects/srfi/%3a48.rkt
similarity index 100%
rename from collects/srfi/%3a48.ss
rename to collects/srfi/%3a48.rkt
diff --git a/collects/srfi/%3a48/intermediate-format-strings.ss b/collects/srfi/%3a48/intermediate-format-strings.rkt
similarity index 100%
rename from collects/srfi/%3a48/intermediate-format-strings.ss
rename to collects/srfi/%3a48/intermediate-format-strings.rkt
diff --git a/collects/srfi/%3a5.ss b/collects/srfi/%3a5.rkt
similarity index 100%
rename from collects/srfi/%3a5.ss
rename to collects/srfi/%3a5.rkt
diff --git a/collects/srfi/%3a5/let.ss b/collects/srfi/%3a5/let.rkt
similarity index 100%
rename from collects/srfi/%3a5/let.ss
rename to collects/srfi/%3a5/let.rkt
diff --git a/collects/srfi/%3a54.ss b/collects/srfi/%3a54.rkt
similarity index 100%
rename from collects/srfi/%3a54.ss
rename to collects/srfi/%3a54.rkt
diff --git a/collects/srfi/%3a54/cat.ss b/collects/srfi/%3a54/cat.rkt
similarity index 100%
rename from collects/srfi/%3a54/cat.ss
rename to collects/srfi/%3a54/cat.rkt
diff --git a/collects/srfi/%3a57.ss b/collects/srfi/%3a57.rkt
similarity index 100%
rename from collects/srfi/%3a57.ss
rename to collects/srfi/%3a57.rkt
diff --git a/collects/srfi/%3a57/records.ss b/collects/srfi/%3a57/records.rkt
similarity index 100%
rename from collects/srfi/%3a57/records.ss
rename to collects/srfi/%3a57/records.rkt
diff --git a/collects/srfi/%3a59.ss b/collects/srfi/%3a59.rkt
similarity index 100%
rename from collects/srfi/%3a59.ss
rename to collects/srfi/%3a59.rkt
diff --git a/collects/srfi/%3a59/vicinities.ss b/collects/srfi/%3a59/vicinities.rkt
similarity index 100%
rename from collects/srfi/%3a59/vicinities.ss
rename to collects/srfi/%3a59/vicinities.rkt
diff --git a/collects/srfi/%3a6.ss b/collects/srfi/%3a6.rkt
similarity index 100%
rename from collects/srfi/%3a6.ss
rename to collects/srfi/%3a6.rkt
diff --git a/collects/srfi/%3a6/basic-string-ports.ss b/collects/srfi/%3a6/basic-string-ports.rkt
similarity index 100%
rename from collects/srfi/%3a6/basic-string-ports.ss
rename to collects/srfi/%3a6/basic-string-ports.rkt
diff --git a/collects/srfi/%3a60.ss b/collects/srfi/%3a60.rkt
similarity index 100%
rename from collects/srfi/%3a60.ss
rename to collects/srfi/%3a60.rkt
diff --git a/collects/srfi/%3a60/integer-bits.ss b/collects/srfi/%3a60/integer-bits.rkt
similarity index 100%
rename from collects/srfi/%3a60/integer-bits.ss
rename to collects/srfi/%3a60/integer-bits.rkt
diff --git a/collects/srfi/%3a61.ss b/collects/srfi/%3a61.rkt
similarity index 100%
rename from collects/srfi/%3a61.ss
rename to collects/srfi/%3a61.rkt
diff --git a/collects/srfi/%3a61/cond.ss b/collects/srfi/%3a61/cond.rkt
similarity index 100%
rename from collects/srfi/%3a61/cond.ss
rename to collects/srfi/%3a61/cond.rkt
diff --git a/collects/srfi/%3a63.ss b/collects/srfi/%3a63.rkt
similarity index 100%
rename from collects/srfi/%3a63.ss
rename to collects/srfi/%3a63.rkt
diff --git a/collects/srfi/%3a63/arrays.ss b/collects/srfi/%3a63/arrays.rkt
similarity index 100%
rename from collects/srfi/%3a63/arrays.ss
rename to collects/srfi/%3a63/arrays.rkt
diff --git a/collects/srfi/%3a64.ss b/collects/srfi/%3a64.rkt
similarity index 100%
rename from collects/srfi/%3a64.ss
rename to collects/srfi/%3a64.rkt
diff --git a/collects/srfi/%3a64/testing.ss b/collects/srfi/%3a64/testing.rkt
similarity index 100%
rename from collects/srfi/%3a64/testing.ss
rename to collects/srfi/%3a64/testing.rkt
diff --git a/collects/srfi/%3a66.ss b/collects/srfi/%3a66.rkt
similarity index 100%
rename from collects/srfi/%3a66.ss
rename to collects/srfi/%3a66.rkt
diff --git a/collects/srfi/%3a66/octet-vectors.ss b/collects/srfi/%3a66/octet-vectors.rkt
similarity index 100%
rename from collects/srfi/%3a66/octet-vectors.ss
rename to collects/srfi/%3a66/octet-vectors.rkt
diff --git a/collects/srfi/%3a67.ss b/collects/srfi/%3a67.rkt
similarity index 100%
rename from collects/srfi/%3a67.ss
rename to collects/srfi/%3a67.rkt
diff --git a/collects/srfi/%3a67/compare-procedures.ss b/collects/srfi/%3a67/compare-procedures.rkt
similarity index 100%
rename from collects/srfi/%3a67/compare-procedures.ss
rename to collects/srfi/%3a67/compare-procedures.rkt
diff --git a/collects/srfi/%3a69.ss b/collects/srfi/%3a69.rkt
similarity index 100%
rename from collects/srfi/%3a69.ss
rename to collects/srfi/%3a69.rkt
diff --git a/collects/srfi/%3a69/basic-hash-tables.ss b/collects/srfi/%3a69/basic-hash-tables.rkt
similarity index 100%
rename from collects/srfi/%3a69/basic-hash-tables.ss
rename to collects/srfi/%3a69/basic-hash-tables.rkt
diff --git a/collects/srfi/%3a71.ss b/collects/srfi/%3a71.rkt
similarity index 100%
rename from collects/srfi/%3a71.ss
rename to collects/srfi/%3a71.rkt
diff --git a/collects/srfi/%3a71/let.ss b/collects/srfi/%3a71/let.rkt
similarity index 100%
rename from collects/srfi/%3a71/let.ss
rename to collects/srfi/%3a71/let.rkt
diff --git a/collects/srfi/%3a74.ss b/collects/srfi/%3a74.rkt
similarity index 100%
rename from collects/srfi/%3a74.ss
rename to collects/srfi/%3a74.rkt
diff --git a/collects/srfi/%3a74/blobs.ss b/collects/srfi/%3a74/blobs.rkt
similarity index 100%
rename from collects/srfi/%3a74/blobs.ss
rename to collects/srfi/%3a74/blobs.rkt
diff --git a/collects/srfi/%3a78.ss b/collects/srfi/%3a78.rkt
similarity index 100%
rename from collects/srfi/%3a78.ss
rename to collects/srfi/%3a78.rkt
diff --git a/collects/srfi/%3a78/lightweight-testing.ss b/collects/srfi/%3a78/lightweight-testing.rkt
similarity index 100%
rename from collects/srfi/%3a78/lightweight-testing.ss
rename to collects/srfi/%3a78/lightweight-testing.rkt
diff --git a/collects/srfi/%3a8.ss b/collects/srfi/%3a8.rkt
similarity index 100%
rename from collects/srfi/%3a8.ss
rename to collects/srfi/%3a8.rkt
diff --git a/collects/srfi/%3a8/receive.ss b/collects/srfi/%3a8/receive.rkt
similarity index 100%
rename from collects/srfi/%3a8/receive.ss
rename to collects/srfi/%3a8/receive.rkt
diff --git a/collects/srfi/%3a86.ss b/collects/srfi/%3a86.rkt
similarity index 100%
rename from collects/srfi/%3a86.ss
rename to collects/srfi/%3a86.rkt
diff --git a/collects/srfi/%3a86/mu-and-nu.ss b/collects/srfi/%3a86/mu-and-nu.rkt
similarity index 100%
rename from collects/srfi/%3a86/mu-and-nu.ss
rename to collects/srfi/%3a86/mu-and-nu.rkt
diff --git a/collects/srfi/%3a87.ss b/collects/srfi/%3a87.rkt
similarity index 100%
rename from collects/srfi/%3a87.ss
rename to collects/srfi/%3a87.rkt
diff --git a/collects/srfi/%3a87/case.ss b/collects/srfi/%3a87/case.rkt
similarity index 100%
rename from collects/srfi/%3a87/case.ss
rename to collects/srfi/%3a87/case.rkt
diff --git a/collects/srfi/%3a9.ss b/collects/srfi/%3a9.rkt
similarity index 100%
rename from collects/srfi/%3a9.ss
rename to collects/srfi/%3a9.rkt
diff --git a/collects/srfi/%3a9/records.ss b/collects/srfi/%3a9/records.rkt
similarity index 100%
rename from collects/srfi/%3a9/records.ss
rename to collects/srfi/%3a9/records.rkt
diff --git a/collects/srfi/%3a98.ss b/collects/srfi/%3a98.rkt
similarity index 100%
rename from collects/srfi/%3a98.ss
rename to collects/srfi/%3a98.rkt
diff --git a/collects/srfi/%3a98/os-environment-variables.ss b/collects/srfi/%3a98/os-environment-variables.rkt
similarity index 100%
rename from collects/srfi/%3a98/os-environment-variables.ss
rename to collects/srfi/%3a98/os-environment-variables.rkt
diff --git a/collects/srfi/1.ss b/collects/srfi/1.rkt
similarity index 100%
rename from collects/srfi/1.ss
rename to collects/srfi/1.rkt
diff --git a/collects/srfi/1/alist.ss b/collects/srfi/1/alist.rkt
similarity index 100%
rename from collects/srfi/1/alist.ss
rename to collects/srfi/1/alist.rkt
diff --git a/collects/srfi/1/cons.ss b/collects/srfi/1/cons.rkt
similarity index 100%
rename from collects/srfi/1/cons.ss
rename to collects/srfi/1/cons.rkt
diff --git a/collects/srfi/1/delete.ss b/collects/srfi/1/delete.rkt
similarity index 100%
rename from collects/srfi/1/delete.ss
rename to collects/srfi/1/delete.rkt
diff --git a/collects/srfi/1/filter.ss b/collects/srfi/1/filter.rkt
similarity index 100%
rename from collects/srfi/1/filter.ss
rename to collects/srfi/1/filter.rkt
diff --git a/collects/srfi/1/fold.ss b/collects/srfi/1/fold.rkt
similarity index 100%
rename from collects/srfi/1/fold.ss
rename to collects/srfi/1/fold.rkt
diff --git a/collects/srfi/1/list.ss b/collects/srfi/1/list.rkt
similarity index 100%
rename from collects/srfi/1/list.ss
rename to collects/srfi/1/list.rkt
diff --git a/collects/srfi/1/lset.ss b/collects/srfi/1/lset.rkt
similarity index 100%
rename from collects/srfi/1/lset.ss
rename to collects/srfi/1/lset.rkt
diff --git a/collects/srfi/1/misc.ss b/collects/srfi/1/misc.rkt
similarity index 100%
rename from collects/srfi/1/misc.ss
rename to collects/srfi/1/misc.rkt
diff --git a/collects/srfi/1/predicate.ss b/collects/srfi/1/predicate.rkt
similarity index 100%
rename from collects/srfi/1/predicate.ss
rename to collects/srfi/1/predicate.rkt
diff --git a/collects/srfi/1/search.ss b/collects/srfi/1/search.rkt
similarity index 100%
rename from collects/srfi/1/search.ss
rename to collects/srfi/1/search.rkt
diff --git a/collects/srfi/1/selector.ss b/collects/srfi/1/selector.rkt
similarity index 100%
rename from collects/srfi/1/selector.ss
rename to collects/srfi/1/selector.rkt
diff --git a/collects/srfi/1/util.ss b/collects/srfi/1/util.rkt
similarity index 100%
rename from collects/srfi/1/util.ss
rename to collects/srfi/1/util.rkt
diff --git a/collects/srfi/11.ss b/collects/srfi/11.rkt
similarity index 100%
rename from collects/srfi/11.ss
rename to collects/srfi/11.rkt
diff --git a/collects/srfi/13.ss b/collects/srfi/13.rkt
similarity index 100%
rename from collects/srfi/13.ss
rename to collects/srfi/13.rkt
diff --git a/collects/srfi/13/string.ss b/collects/srfi/13/string.rkt
similarity index 100%
rename from collects/srfi/13/string.ss
rename to collects/srfi/13/string.rkt
diff --git a/collects/srfi/14.ss b/collects/srfi/14.rkt
similarity index 100%
rename from collects/srfi/14.ss
rename to collects/srfi/14.rkt
diff --git a/collects/srfi/14/char-set.ss b/collects/srfi/14/char-set.rkt
similarity index 100%
rename from collects/srfi/14/char-set.ss
rename to collects/srfi/14/char-set.rkt
diff --git a/collects/srfi/16.ss b/collects/srfi/16.rkt
similarity index 100%
rename from collects/srfi/16.ss
rename to collects/srfi/16.rkt
diff --git a/collects/srfi/17.ss b/collects/srfi/17.rkt
similarity index 100%
rename from collects/srfi/17.ss
rename to collects/srfi/17.rkt
diff --git a/collects/srfi/17/set.ss b/collects/srfi/17/set.rkt
similarity index 100%
rename from collects/srfi/17/set.ss
rename to collects/srfi/17/set.rkt
diff --git a/collects/srfi/18.ss b/collects/srfi/18.rkt
similarity index 100%
rename from collects/srfi/18.ss
rename to collects/srfi/18.rkt
diff --git a/collects/srfi/19.ss b/collects/srfi/19.rkt
similarity index 100%
rename from collects/srfi/19.ss
rename to collects/srfi/19.rkt
diff --git a/collects/srfi/19/time.ss b/collects/srfi/19/time.rkt
similarity index 100%
rename from collects/srfi/19/time.ss
rename to collects/srfi/19/time.rkt
diff --git a/collects/srfi/2.ss b/collects/srfi/2.rkt
similarity index 100%
rename from collects/srfi/2.ss
rename to collects/srfi/2.rkt
diff --git a/collects/srfi/2/and-let.ss b/collects/srfi/2/and-let.rkt
similarity index 100%
rename from collects/srfi/2/and-let.ss
rename to collects/srfi/2/and-let.rkt
diff --git a/collects/srfi/23.ss b/collects/srfi/23.rkt
similarity index 100%
rename from collects/srfi/23.ss
rename to collects/srfi/23.rkt
diff --git a/collects/srfi/25.ss b/collects/srfi/25.rkt
similarity index 100%
rename from collects/srfi/25.ss
rename to collects/srfi/25.rkt
diff --git a/collects/srfi/25/array.ss b/collects/srfi/25/array.rkt
similarity index 100%
rename from collects/srfi/25/array.ss
rename to collects/srfi/25/array.rkt
diff --git a/collects/srfi/25/info.ss b/collects/srfi/25/info.rkt
similarity index 100%
rename from collects/srfi/25/info.ss
rename to collects/srfi/25/info.rkt
diff --git a/collects/srfi/26.ss b/collects/srfi/26.rkt
similarity index 100%
rename from collects/srfi/26.ss
rename to collects/srfi/26.rkt
diff --git a/collects/srfi/26/cut.ss b/collects/srfi/26/cut.rkt
similarity index 100%
rename from collects/srfi/26/cut.ss
rename to collects/srfi/26/cut.rkt
diff --git a/collects/srfi/27.ss b/collects/srfi/27.rkt
similarity index 100%
rename from collects/srfi/27.ss
rename to collects/srfi/27.rkt
diff --git a/collects/srfi/27/random-bits-examples.ss b/collects/srfi/27/random-bits-examples.rkt
similarity index 100%
rename from collects/srfi/27/random-bits-examples.ss
rename to collects/srfi/27/random-bits-examples.rkt
diff --git a/collects/srfi/27/random-bits.ss b/collects/srfi/27/random-bits.rkt
similarity index 100%
rename from collects/srfi/27/random-bits.ss
rename to collects/srfi/27/random-bits.rkt
diff --git a/collects/srfi/28.ss b/collects/srfi/28.rkt
similarity index 100%
rename from collects/srfi/28.ss
rename to collects/srfi/28.rkt
diff --git a/collects/srfi/29.ss b/collects/srfi/29.rkt
similarity index 100%
rename from collects/srfi/29.ss
rename to collects/srfi/29.rkt
diff --git a/collects/srfi/29/localization.ss b/collects/srfi/29/localization.rkt
similarity index 100%
rename from collects/srfi/29/localization.ss
rename to collects/srfi/29/localization.rkt
diff --git a/collects/srfi/30.ss b/collects/srfi/30.rkt
similarity index 100%
rename from collects/srfi/30.ss
rename to collects/srfi/30.rkt
diff --git a/collects/srfi/31.ss b/collects/srfi/31.rkt
similarity index 100%
rename from collects/srfi/31.ss
rename to collects/srfi/31.rkt
diff --git a/collects/srfi/31/rec.ss b/collects/srfi/31/rec.rkt
similarity index 100%
rename from collects/srfi/31/rec.ss
rename to collects/srfi/31/rec.rkt
diff --git a/collects/srfi/32.ss b/collects/srfi/32.rkt
similarity index 100%
rename from collects/srfi/32.ss
rename to collects/srfi/32.rkt
diff --git a/collects/srfi/32/info.ss b/collects/srfi/32/info.rkt
similarity index 100%
rename from collects/srfi/32/info.ss
rename to collects/srfi/32/info.rkt
diff --git a/collects/srfi/32/sort.ss b/collects/srfi/32/sort.rkt
similarity index 100%
rename from collects/srfi/32/sort.ss
rename to collects/srfi/32/sort.rkt
diff --git a/collects/srfi/34.ss b/collects/srfi/34.rkt
similarity index 100%
rename from collects/srfi/34.ss
rename to collects/srfi/34.rkt
diff --git a/collects/srfi/34/exception.ss b/collects/srfi/34/exception.rkt
similarity index 100%
rename from collects/srfi/34/exception.ss
rename to collects/srfi/34/exception.rkt
diff --git a/collects/srfi/35.ss b/collects/srfi/35.rkt
similarity index 100%
rename from collects/srfi/35.ss
rename to collects/srfi/35.rkt
diff --git a/collects/srfi/35/condition.ss b/collects/srfi/35/condition.rkt
similarity index 100%
rename from collects/srfi/35/condition.ss
rename to collects/srfi/35/condition.rkt
diff --git a/collects/srfi/38.ss b/collects/srfi/38.rkt
similarity index 100%
rename from collects/srfi/38.ss
rename to collects/srfi/38.rkt
diff --git a/collects/srfi/38/38.ss b/collects/srfi/38/38.rkt
similarity index 100%
rename from collects/srfi/38/38.ss
rename to collects/srfi/38/38.rkt
diff --git a/collects/srfi/39.ss b/collects/srfi/39.rkt
similarity index 100%
rename from collects/srfi/39.ss
rename to collects/srfi/39.rkt
diff --git a/collects/srfi/4.ss b/collects/srfi/4.rkt
similarity index 100%
rename from collects/srfi/4.ss
rename to collects/srfi/4.rkt
diff --git a/collects/srfi/40.ss b/collects/srfi/40.rkt
similarity index 100%
rename from collects/srfi/40.ss
rename to collects/srfi/40.rkt
diff --git a/collects/srfi/40/stream.ss b/collects/srfi/40/stream.rkt
similarity index 100%
rename from collects/srfi/40/stream.ss
rename to collects/srfi/40/stream.rkt
diff --git a/collects/srfi/41.ss b/collects/srfi/41.rkt
similarity index 100%
rename from collects/srfi/41.ss
rename to collects/srfi/41.rkt
diff --git a/collects/srfi/41/derived.ss b/collects/srfi/41/derived.rkt
similarity index 100%
rename from collects/srfi/41/derived.ss
rename to collects/srfi/41/derived.rkt
diff --git a/collects/srfi/41/primitive.ss b/collects/srfi/41/primitive.rkt
similarity index 100%
rename from collects/srfi/41/primitive.ss
rename to collects/srfi/41/primitive.rkt
diff --git a/collects/srfi/41/streams.ss b/collects/srfi/41/streams.rkt
similarity index 100%
rename from collects/srfi/41/streams.ss
rename to collects/srfi/41/streams.rkt
diff --git a/collects/srfi/42.ss b/collects/srfi/42.rkt
similarity index 100%
rename from collects/srfi/42.ss
rename to collects/srfi/42.rkt
diff --git a/collects/srfi/42/ec.ss b/collects/srfi/42/ec.rkt
similarity index 100%
rename from collects/srfi/42/ec.ss
rename to collects/srfi/42/ec.rkt
diff --git a/collects/srfi/42ref.ss b/collects/srfi/42ref.rkt
similarity index 100%
rename from collects/srfi/42ref.ss
rename to collects/srfi/42ref.rkt
diff --git a/collects/srfi/42ref/comprehensions.ss b/collects/srfi/42ref/comprehensions.rkt
similarity index 100%
rename from collects/srfi/42ref/comprehensions.ss
rename to collects/srfi/42ref/comprehensions.rkt
diff --git a/collects/srfi/42ref/examples-42.ss b/collects/srfi/42ref/examples-42.rkt
similarity index 100%
rename from collects/srfi/42ref/examples-42.ss
rename to collects/srfi/42ref/examples-42.rkt
diff --git a/collects/srfi/43.ss b/collects/srfi/43.rkt
similarity index 100%
rename from collects/srfi/43.ss
rename to collects/srfi/43.rkt
diff --git a/collects/srfi/43/vector-lib.ss b/collects/srfi/43/vector-lib.rkt
similarity index 100%
rename from collects/srfi/43/vector-lib.ss
rename to collects/srfi/43/vector-lib.rkt
diff --git a/collects/srfi/45.ss b/collects/srfi/45.rkt
similarity index 100%
rename from collects/srfi/45.ss
rename to collects/srfi/45.rkt
diff --git a/collects/srfi/45/lazy.ss b/collects/srfi/45/lazy.rkt
similarity index 100%
rename from collects/srfi/45/lazy.ss
rename to collects/srfi/45/lazy.rkt
diff --git a/collects/srfi/48.ss b/collects/srfi/48.rkt
similarity index 100%
rename from collects/srfi/48.ss
rename to collects/srfi/48.rkt
diff --git a/collects/srfi/48/format.ss b/collects/srfi/48/format.rkt
similarity index 100%
rename from collects/srfi/48/format.ss
rename to collects/srfi/48/format.rkt
diff --git a/collects/srfi/5.ss b/collects/srfi/5.rkt
similarity index 100%
rename from collects/srfi/5.ss
rename to collects/srfi/5.rkt
diff --git a/collects/srfi/5/let.ss b/collects/srfi/5/let.rkt
similarity index 100%
rename from collects/srfi/5/let.ss
rename to collects/srfi/5/let.rkt
diff --git a/collects/srfi/54.ss b/collects/srfi/54.rkt
similarity index 100%
rename from collects/srfi/54.ss
rename to collects/srfi/54.rkt
diff --git a/collects/srfi/54/cat.ss b/collects/srfi/54/cat.rkt
similarity index 100%
rename from collects/srfi/54/cat.ss
rename to collects/srfi/54/cat.rkt
diff --git a/collects/srfi/57.ss b/collects/srfi/57.rkt
similarity index 100%
rename from collects/srfi/57.ss
rename to collects/srfi/57.rkt
diff --git a/collects/srfi/57/records.ss b/collects/srfi/57/records.rkt
similarity index 100%
rename from collects/srfi/57/records.ss
rename to collects/srfi/57/records.rkt
diff --git a/collects/srfi/57/registry.ss b/collects/srfi/57/registry.rkt
similarity index 100%
rename from collects/srfi/57/registry.ss
rename to collects/srfi/57/registry.rkt
diff --git a/collects/srfi/59.ss b/collects/srfi/59.rkt
similarity index 100%
rename from collects/srfi/59.ss
rename to collects/srfi/59.rkt
diff --git a/collects/srfi/59/vicinity.ss b/collects/srfi/59/vicinity.rkt
similarity index 100%
rename from collects/srfi/59/vicinity.ss
rename to collects/srfi/59/vicinity.rkt
diff --git a/collects/srfi/6.ss b/collects/srfi/6.rkt
similarity index 100%
rename from collects/srfi/6.ss
rename to collects/srfi/6.rkt
diff --git a/collects/srfi/60.ss b/collects/srfi/60.rkt
similarity index 100%
rename from collects/srfi/60.ss
rename to collects/srfi/60.rkt
diff --git a/collects/srfi/60/60.ss b/collects/srfi/60/60.rkt
similarity index 100%
rename from collects/srfi/60/60.ss
rename to collects/srfi/60/60.rkt
diff --git a/collects/srfi/61.ss b/collects/srfi/61.rkt
similarity index 100%
rename from collects/srfi/61.ss
rename to collects/srfi/61.rkt
diff --git a/collects/srfi/61/cond.ss b/collects/srfi/61/cond.rkt
similarity index 100%
rename from collects/srfi/61/cond.ss
rename to collects/srfi/61/cond.rkt
diff --git a/collects/srfi/63.ss b/collects/srfi/63.rkt
similarity index 100%
rename from collects/srfi/63.ss
rename to collects/srfi/63.rkt
diff --git a/collects/srfi/63/63.ss b/collects/srfi/63/63.rkt
similarity index 100%
rename from collects/srfi/63/63.ss
rename to collects/srfi/63/63.rkt
diff --git a/collects/srfi/64.ss b/collects/srfi/64.rkt
similarity index 100%
rename from collects/srfi/64.ss
rename to collects/srfi/64.rkt
diff --git a/collects/srfi/64/testing.ss b/collects/srfi/64/testing.rkt
similarity index 100%
rename from collects/srfi/64/testing.ss
rename to collects/srfi/64/testing.rkt
diff --git a/collects/srfi/66.ss b/collects/srfi/66.rkt
similarity index 100%
rename from collects/srfi/66.ss
rename to collects/srfi/66.rkt
diff --git a/collects/srfi/67.ss b/collects/srfi/67.rkt
similarity index 100%
rename from collects/srfi/67.ss
rename to collects/srfi/67.rkt
diff --git a/collects/srfi/67/compare.ss b/collects/srfi/67/compare.rkt
similarity index 100%
rename from collects/srfi/67/compare.ss
rename to collects/srfi/67/compare.rkt
diff --git a/collects/srfi/67/info.ss b/collects/srfi/67/info.rkt
similarity index 100%
rename from collects/srfi/67/info.ss
rename to collects/srfi/67/info.rkt
diff --git a/collects/srfi/69.ss b/collects/srfi/69.rkt
similarity index 100%
rename from collects/srfi/69.ss
rename to collects/srfi/69.rkt
diff --git a/collects/srfi/69/hash.ss b/collects/srfi/69/hash.rkt
similarity index 100%
rename from collects/srfi/69/hash.ss
rename to collects/srfi/69/hash.rkt
diff --git a/collects/srfi/7.ss b/collects/srfi/7.rkt
similarity index 100%
rename from collects/srfi/7.ss
rename to collects/srfi/7.rkt
diff --git a/collects/srfi/7/program.ss b/collects/srfi/7/program.rkt
similarity index 100%
rename from collects/srfi/7/program.ss
rename to collects/srfi/7/program.rkt
diff --git a/collects/srfi/71.ss b/collects/srfi/71.rkt
similarity index 100%
rename from collects/srfi/71.ss
rename to collects/srfi/71.rkt
diff --git a/collects/srfi/71/letvalues.ss b/collects/srfi/71/letvalues.rkt
similarity index 100%
rename from collects/srfi/71/letvalues.ss
rename to collects/srfi/71/letvalues.rkt
diff --git a/collects/srfi/74.ss b/collects/srfi/74.rkt
similarity index 100%
rename from collects/srfi/74.ss
rename to collects/srfi/74.rkt
diff --git a/collects/srfi/74/74.ss b/collects/srfi/74/74.rkt
similarity index 100%
rename from collects/srfi/74/74.ss
rename to collects/srfi/74/74.rkt
diff --git a/collects/srfi/74/info.ss b/collects/srfi/74/info.rkt
similarity index 100%
rename from collects/srfi/74/info.ss
rename to collects/srfi/74/info.rkt
diff --git a/collects/srfi/78.ss b/collects/srfi/78.rkt
similarity index 100%
rename from collects/srfi/78.ss
rename to collects/srfi/78.rkt
diff --git a/collects/srfi/78/check.ss b/collects/srfi/78/check.rkt
similarity index 100%
rename from collects/srfi/78/check.ss
rename to collects/srfi/78/check.rkt
diff --git a/collects/srfi/78/info.ss b/collects/srfi/78/info.rkt
similarity index 100%
rename from collects/srfi/78/info.ss
rename to collects/srfi/78/info.rkt
diff --git a/collects/srfi/8.ss b/collects/srfi/8.rkt
similarity index 100%
rename from collects/srfi/8.ss
rename to collects/srfi/8.rkt
diff --git a/collects/srfi/8/receive.ss b/collects/srfi/8/receive.rkt
similarity index 100%
rename from collects/srfi/8/receive.ss
rename to collects/srfi/8/receive.rkt
diff --git a/collects/srfi/86.ss b/collects/srfi/86.rkt
similarity index 100%
rename from collects/srfi/86.ss
rename to collects/srfi/86.rkt
diff --git a/collects/srfi/86/86.ss b/collects/srfi/86/86.rkt
similarity index 100%
rename from collects/srfi/86/86.ss
rename to collects/srfi/86/86.rkt
diff --git a/collects/srfi/87.ss b/collects/srfi/87.rkt
similarity index 100%
rename from collects/srfi/87.ss
rename to collects/srfi/87.rkt
diff --git a/collects/srfi/87/case.ss b/collects/srfi/87/case.rkt
similarity index 100%
rename from collects/srfi/87/case.ss
rename to collects/srfi/87/case.rkt
diff --git a/collects/srfi/9.ss b/collects/srfi/9.rkt
similarity index 100%
rename from collects/srfi/9.ss
rename to collects/srfi/9.rkt
diff --git a/collects/srfi/9/record.ss b/collects/srfi/9/record.rkt
similarity index 100%
rename from collects/srfi/9/record.ss
rename to collects/srfi/9/record.rkt
diff --git a/collects/srfi/98.ss b/collects/srfi/98.rkt
similarity index 100%
rename from collects/srfi/98.ss
rename to collects/srfi/98.rkt
diff --git a/collects/srfi/features.ss b/collects/srfi/features.rkt
similarity index 100%
rename from collects/srfi/features.ss
rename to collects/srfi/features.rkt
diff --git a/collects/srfi/info.ss b/collects/srfi/info.rkt
similarity index 100%
rename from collects/srfi/info.ss
rename to collects/srfi/info.rkt
diff --git a/collects/srfi/optional.ss b/collects/srfi/optional.rkt
similarity index 100%
rename from collects/srfi/optional.ss
rename to collects/srfi/optional.rkt
diff --git a/collects/srfi/provider.ss b/collects/srfi/provider.rkt
similarity index 100%
rename from collects/srfi/provider.ss
rename to collects/srfi/provider.rkt
diff --git a/collects/srpersist/info.ss b/collects/srpersist/info.rkt
similarity index 100%
rename from collects/srpersist/info.ss
rename to collects/srpersist/info.rkt
diff --git a/collects/srpersist/main.ss b/collects/srpersist/main.rkt
similarity index 100%
rename from collects/srpersist/main.ss
rename to collects/srpersist/main.rkt
diff --git a/collects/srpersist/private/sigs.ss b/collects/srpersist/private/sigs.rkt
similarity index 100%
rename from collects/srpersist/private/sigs.ss
rename to collects/srpersist/private/sigs.rkt
diff --git a/collects/srpersist/srpersist.ss b/collects/srpersist/srpersist.rkt
similarity index 100%
rename from collects/srpersist/srpersist.ss
rename to collects/srpersist/srpersist.rkt
diff --git a/collects/stepper/break.ss b/collects/stepper/break.rkt
similarity index 100%
rename from collects/stepper/break.ss
rename to collects/stepper/break.rkt
diff --git a/collects/stepper/drscheme-button.ss b/collects/stepper/drscheme-button.rkt
similarity index 100%
rename from collects/stepper/drscheme-button.ss
rename to collects/stepper/drscheme-button.rkt
diff --git a/collects/stepper/info.ss b/collects/stepper/info.rkt
similarity index 100%
rename from collects/stepper/info.ss
rename to collects/stepper/info.rkt
diff --git a/collects/stepper/private/annotate.ss b/collects/stepper/private/annotate.rkt
similarity index 100%
rename from collects/stepper/private/annotate.ss
rename to collects/stepper/private/annotate.rkt
diff --git a/collects/stepper/private/beginner-defined.ss b/collects/stepper/private/beginner-defined.rkt
similarity index 100%
rename from collects/stepper/private/beginner-defined.ss
rename to collects/stepper/private/beginner-defined.rkt
diff --git a/collects/stepper/private/display-break-stuff.ss b/collects/stepper/private/display-break-stuff.rkt
similarity index 100%
rename from collects/stepper/private/display-break-stuff.ss
rename to collects/stepper/private/display-break-stuff.rkt
diff --git a/collects/stepper/private/lifting.ss b/collects/stepper/private/lifting.rkt
similarity index 100%
rename from collects/stepper/private/lifting.ss
rename to collects/stepper/private/lifting.rkt
diff --git a/collects/stepper/private/macro-unwind.ss b/collects/stepper/private/macro-unwind.rkt
similarity index 100%
rename from collects/stepper/private/macro-unwind.ss
rename to collects/stepper/private/macro-unwind.rkt
diff --git a/collects/stepper/private/marks.ss b/collects/stepper/private/marks.rkt
similarity index 100%
rename from collects/stepper/private/marks.ss
rename to collects/stepper/private/marks.rkt
diff --git a/collects/stepper/private/model-settings.ss b/collects/stepper/private/model-settings.rkt
similarity index 100%
rename from collects/stepper/private/model-settings.ss
rename to collects/stepper/private/model-settings.rkt
diff --git a/collects/stepper/private/model.ss b/collects/stepper/private/model.rkt
similarity index 100%
rename from collects/stepper/private/model.ss
rename to collects/stepper/private/model.rkt
diff --git a/collects/stepper/private/mred-extensions.ss b/collects/stepper/private/mred-extensions.rkt
similarity index 100%
rename from collects/stepper/private/mred-extensions.ss
rename to collects/stepper/private/mred-extensions.rkt
diff --git a/collects/stepper/private/my-macros.ss b/collects/stepper/private/my-macros.rkt
similarity index 100%
rename from collects/stepper/private/my-macros.ss
rename to collects/stepper/private/my-macros.rkt
diff --git a/collects/stepper/private/reconstruct.ss b/collects/stepper/private/reconstruct.rkt
similarity index 100%
rename from collects/stepper/private/reconstruct.ss
rename to collects/stepper/private/reconstruct.rkt
diff --git a/collects/stepper/private/shared.ss b/collects/stepper/private/shared.rkt
similarity index 100%
rename from collects/stepper/private/shared.ss
rename to collects/stepper/private/shared.rkt
diff --git a/collects/stepper/private/testing-shared.ss b/collects/stepper/private/testing-shared.rkt
similarity index 100%
rename from collects/stepper/private/testing-shared.ss
rename to collects/stepper/private/testing-shared.rkt
diff --git a/collects/stepper/private/vertical-separator-snip.ss b/collects/stepper/private/vertical-separator-snip.rkt
similarity index 100%
rename from collects/stepper/private/vertical-separator-snip.ss
rename to collects/stepper/private/vertical-separator-snip.rkt
diff --git a/collects/stepper/private/xml-box.ss b/collects/stepper/private/xml-box.rkt
similarity index 100%
rename from collects/stepper/private/xml-box.ss
rename to collects/stepper/private/xml-box.rkt
diff --git a/collects/stepper/private/xml-snip-helpers.ss b/collects/stepper/private/xml-snip-helpers.rkt
similarity index 100%
rename from collects/stepper/private/xml-snip-helpers.ss
rename to collects/stepper/private/xml-snip-helpers.rkt
diff --git a/collects/stepper/stepper+xml-tool.ss b/collects/stepper/stepper+xml-tool.rkt
similarity index 100%
rename from collects/stepper/stepper+xml-tool.ss
rename to collects/stepper/stepper+xml-tool.rkt
diff --git a/collects/stepper/stepper-tool.ss b/collects/stepper/stepper-tool.rkt
similarity index 100%
rename from collects/stepper/stepper-tool.ss
rename to collects/stepper/stepper-tool.rkt
diff --git a/collects/stepper/view-controller.ss b/collects/stepper/view-controller.rkt
similarity index 100%
rename from collects/stepper/view-controller.ss
rename to collects/stepper/view-controller.rkt
diff --git a/collects/stepper/xml-sig.ss b/collects/stepper/xml-sig.rkt
similarity index 100%
rename from collects/stepper/xml-sig.ss
rename to collects/stepper/xml-sig.rkt
diff --git a/collects/stepper/xml-tool.ss b/collects/stepper/xml-tool.rkt
similarity index 100%
rename from collects/stepper/xml-tool.ss
rename to collects/stepper/xml-tool.rkt
diff --git a/collects/string-constants/danish-string-constants.ss b/collects/string-constants/danish-string-constants.rkt
similarity index 100%
rename from collects/string-constants/danish-string-constants.ss
rename to collects/string-constants/danish-string-constants.rkt
diff --git a/collects/string-constants/dutch-string-constants.ss b/collects/string-constants/dutch-string-constants.rkt
similarity index 100%
rename from collects/string-constants/dutch-string-constants.ss
rename to collects/string-constants/dutch-string-constants.rkt
diff --git a/collects/string-constants/english-string-constants.ss b/collects/string-constants/english-string-constants.rkt
similarity index 99%
rename from collects/string-constants/english-string-constants.ss
rename to collects/string-constants/english-string-constants.rkt
index 5a719263f7..71b24dd75b 100644
--- a/collects/string-constants/english-string-constants.ss
+++ b/collects/string-constants/english-string-constants.rkt
@@ -1060,6 +1060,12 @@ please adhere to these guidelines:
(module-language-one-line-summary "Reads the #lang line to specify the actual language")
(module-language-auto-text "Automatic #lang line") ;; shows up in the details section of the module language
+ ;; for the upper portion of the language dialog
+ (use-language-in-source "Use the language declared in the source")
+ (choose-a-language "Choose a language")
+ (lang-in-source-discussion
+ "The #lang line at the start of a program declares its language. This is the default and preferred mode for DrRacket.")
+
;;; from the `not a language language' used initially in drscheme.
(must-choose-language "DrRacket cannot process programs until you choose a programming language.")
@@ -1072,6 +1078,7 @@ please adhere to these guidelines:
(start-with-after "")
(seasoned-plt-schemer? "Seasoned PLT Schemer?")
+ (racketeer? "Are you a Racketeer?")
(looking-for-standard-scheme? "Looking for standard Scheme?")
; the three string constants are concatenated together and the middle
diff --git a/collects/string-constants/french-string-constants.ss b/collects/string-constants/french-string-constants.rkt
similarity index 100%
rename from collects/string-constants/french-string-constants.ss
rename to collects/string-constants/french-string-constants.rkt
diff --git a/collects/string-constants/german-string-constants.ss b/collects/string-constants/german-string-constants.rkt
similarity index 100%
rename from collects/string-constants/german-string-constants.ss
rename to collects/string-constants/german-string-constants.rkt
diff --git a/collects/string-constants/info.ss b/collects/string-constants/info.rkt
similarity index 100%
rename from collects/string-constants/info.ss
rename to collects/string-constants/info.rkt
diff --git a/collects/string-constants/japanese-string-constants.ss b/collects/string-constants/japanese-string-constants.rkt
similarity index 100%
rename from collects/string-constants/japanese-string-constants.ss
rename to collects/string-constants/japanese-string-constants.rkt
diff --git a/collects/string-constants/main.ss b/collects/string-constants/main.rkt
similarity index 100%
rename from collects/string-constants/main.ss
rename to collects/string-constants/main.rkt
diff --git a/collects/string-constants/portuguese-string-constants.ss b/collects/string-constants/portuguese-string-constants.rkt
similarity index 100%
rename from collects/string-constants/portuguese-string-constants.ss
rename to collects/string-constants/portuguese-string-constants.rkt
diff --git a/collects/string-constants/private/only-once.ss b/collects/string-constants/private/only-once.rkt
similarity index 100%
rename from collects/string-constants/private/only-once.ss
rename to collects/string-constants/private/only-once.rkt
diff --git a/collects/string-constants/russian-string-constants.ss b/collects/string-constants/russian-string-constants.rkt
similarity index 100%
rename from collects/string-constants/russian-string-constants.ss
rename to collects/string-constants/russian-string-constants.rkt
diff --git a/collects/string-constants/simplified-chinese-string-constants.ss b/collects/string-constants/simplified-chinese-string-constants.rkt
similarity index 100%
rename from collects/string-constants/simplified-chinese-string-constants.ss
rename to collects/string-constants/simplified-chinese-string-constants.rkt
diff --git a/collects/string-constants/spanish-string-constants.ss b/collects/string-constants/spanish-string-constants.rkt
similarity index 100%
rename from collects/string-constants/spanish-string-constants.ss
rename to collects/string-constants/spanish-string-constants.rkt
diff --git a/collects/string-constants/string-constant-lang.ss b/collects/string-constants/string-constant-lang.rkt
similarity index 100%
rename from collects/string-constants/string-constant-lang.ss
rename to collects/string-constants/string-constant-lang.rkt
diff --git a/collects/string-constants/string-constant.ss b/collects/string-constants/string-constant.rkt
similarity index 100%
rename from collects/string-constants/string-constant.ss
rename to collects/string-constants/string-constant.rkt
diff --git a/collects/string-constants/traditional-chinese-string-constants.ss b/collects/string-constants/traditional-chinese-string-constants.rkt
similarity index 100%
rename from collects/string-constants/traditional-chinese-string-constants.ss
rename to collects/string-constants/traditional-chinese-string-constants.rkt
diff --git a/collects/string-constants/ukrainian-string-constants.ss b/collects/string-constants/ukrainian-string-constants.rkt
similarity index 100%
rename from collects/string-constants/ukrainian-string-constants.ss
rename to collects/string-constants/ukrainian-string-constants.rkt
diff --git a/collects/swindle/base.ss b/collects/swindle/base.rkt
similarity index 100%
rename from collects/swindle/base.ss
rename to collects/swindle/base.rkt
diff --git a/collects/swindle/clos.ss b/collects/swindle/clos.rkt
similarity index 100%
rename from collects/swindle/clos.ss
rename to collects/swindle/clos.rkt
diff --git a/collects/swindle/custom.ss b/collects/swindle/custom.rkt
similarity index 100%
rename from collects/swindle/custom.ss
rename to collects/swindle/custom.rkt
diff --git a/collects/swindle/extra.ss b/collects/swindle/extra.rkt
similarity index 100%
rename from collects/swindle/extra.ss
rename to collects/swindle/extra.rkt
diff --git a/collects/swindle/info.ss b/collects/swindle/info.rkt
similarity index 100%
rename from collects/swindle/info.ss
rename to collects/swindle/info.rkt
diff --git a/collects/swindle/lang/reader.ss b/collects/swindle/lang/reader.rkt
similarity index 100%
rename from collects/swindle/lang/reader.ss
rename to collects/swindle/lang/reader.rkt
diff --git a/collects/swindle/main.ss b/collects/swindle/main.rkt
similarity index 100%
rename from collects/swindle/main.ss
rename to collects/swindle/main.rkt
diff --git a/collects/swindle/misc.ss b/collects/swindle/misc.rkt
similarity index 100%
rename from collects/swindle/misc.ss
rename to collects/swindle/misc.rkt
diff --git a/collects/swindle/patterns.ss b/collects/swindle/patterns.rkt
similarity index 100%
rename from collects/swindle/patterns.ss
rename to collects/swindle/patterns.rkt
diff --git a/collects/swindle/setf.ss b/collects/swindle/setf.rkt
similarity index 100%
rename from collects/swindle/setf.ss
rename to collects/swindle/setf.rkt
diff --git a/collects/swindle/tiny-clos.ss b/collects/swindle/tiny-clos.rkt
similarity index 100%
rename from collects/swindle/tiny-clos.ss
rename to collects/swindle/tiny-clos.rkt
diff --git a/collects/swindle/tool.ss b/collects/swindle/tool.rkt
similarity index 100%
rename from collects/swindle/tool.ss
rename to collects/swindle/tool.rkt
diff --git a/collects/swindle/turbo.ss b/collects/swindle/turbo.rkt
similarity index 100%
rename from collects/swindle/turbo.ss
rename to collects/swindle/turbo.rkt
diff --git a/collects/syntax-color/default-lexer.ss b/collects/syntax-color/default-lexer.rkt
similarity index 100%
rename from collects/syntax-color/default-lexer.ss
rename to collects/syntax-color/default-lexer.rkt
diff --git a/collects/syntax-color/info.ss b/collects/syntax-color/info.rkt
similarity index 100%
rename from collects/syntax-color/info.ss
rename to collects/syntax-color/info.rkt
diff --git a/collects/syntax-color/module-lexer.ss b/collects/syntax-color/module-lexer.rkt
similarity index 100%
rename from collects/syntax-color/module-lexer.ss
rename to collects/syntax-color/module-lexer.rkt
diff --git a/collects/syntax-color/paren-tree.ss b/collects/syntax-color/paren-tree.rkt
similarity index 100%
rename from collects/syntax-color/paren-tree.ss
rename to collects/syntax-color/paren-tree.rkt
diff --git a/collects/syntax-color/scheme-lexer.ss b/collects/syntax-color/scheme-lexer.rkt
similarity index 100%
rename from collects/syntax-color/scheme-lexer.ss
rename to collects/syntax-color/scheme-lexer.rkt
diff --git a/collects/syntax-color/scribble-lexer.ss b/collects/syntax-color/scribble-lexer.rkt
similarity index 100%
rename from collects/syntax-color/scribble-lexer.ss
rename to collects/syntax-color/scribble-lexer.rkt
diff --git a/collects/syntax-color/token-tree.ss b/collects/syntax-color/token-tree.rkt
similarity index 100%
rename from collects/syntax-color/token-tree.ss
rename to collects/syntax-color/token-tree.rkt
diff --git a/collects/syntax/boundmap.ss b/collects/syntax/boundmap.rkt
similarity index 100%
rename from collects/syntax/boundmap.ss
rename to collects/syntax/boundmap.rkt
diff --git a/collects/syntax/context.ss b/collects/syntax/context.rkt
similarity index 100%
rename from collects/syntax/context.ss
rename to collects/syntax/context.rkt
diff --git a/collects/syntax/define.ss b/collects/syntax/define.rkt
similarity index 100%
rename from collects/syntax/define.ss
rename to collects/syntax/define.rkt
diff --git a/collects/syntax/docprovide.ss b/collects/syntax/docprovide.rkt
similarity index 100%
rename from collects/syntax/docprovide.ss
rename to collects/syntax/docprovide.rkt
diff --git a/collects/syntax/flatten-begin.ss b/collects/syntax/flatten-begin.rkt
similarity index 100%
rename from collects/syntax/flatten-begin.ss
rename to collects/syntax/flatten-begin.rkt
diff --git a/collects/syntax/free-vars.ss b/collects/syntax/free-vars.rkt
similarity index 100%
rename from collects/syntax/free-vars.ss
rename to collects/syntax/free-vars.rkt
diff --git a/collects/syntax/id-table.ss b/collects/syntax/id-table.rkt
similarity index 100%
rename from collects/syntax/id-table.ss
rename to collects/syntax/id-table.rkt
diff --git a/collects/syntax/info.ss b/collects/syntax/info.rkt
similarity index 100%
rename from collects/syntax/info.ss
rename to collects/syntax/info.rkt
diff --git a/collects/syntax/kerncase.ss b/collects/syntax/kerncase.rkt
similarity index 100%
rename from collects/syntax/kerncase.ss
rename to collects/syntax/kerncase.rkt
diff --git a/collects/syntax/keyword.ss b/collects/syntax/keyword.rkt
similarity index 100%
rename from collects/syntax/keyword.ss
rename to collects/syntax/keyword.rkt
diff --git a/collects/syntax/modcode.ss b/collects/syntax/modcode.rkt
similarity index 100%
rename from collects/syntax/modcode.ss
rename to collects/syntax/modcode.rkt
diff --git a/collects/syntax/modcollapse.ss b/collects/syntax/modcollapse.rkt
similarity index 100%
rename from collects/syntax/modcollapse.ss
rename to collects/syntax/modcollapse.rkt
diff --git a/collects/syntax/moddep.ss b/collects/syntax/moddep.rkt
similarity index 100%
rename from collects/syntax/moddep.ss
rename to collects/syntax/moddep.rkt
diff --git a/collects/syntax/modread.ss b/collects/syntax/modread.rkt
similarity index 100%
rename from collects/syntax/modread.ss
rename to collects/syntax/modread.rkt
diff --git a/collects/syntax/modresolve.ss b/collects/syntax/modresolve.rkt
similarity index 100%
rename from collects/syntax/modresolve.ss
rename to collects/syntax/modresolve.rkt
diff --git a/collects/syntax/module-reader.ss b/collects/syntax/module-reader.rkt
similarity index 100%
rename from collects/syntax/module-reader.ss
rename to collects/syntax/module-reader.rkt
diff --git a/collects/syntax/name.ss b/collects/syntax/name.rkt
similarity index 100%
rename from collects/syntax/name.ss
rename to collects/syntax/name.rkt
diff --git a/collects/syntax/parse.ss b/collects/syntax/parse.rkt
similarity index 100%
rename from collects/syntax/parse.ss
rename to collects/syntax/parse.rkt
diff --git a/collects/syntax/parse/experimental.ss b/collects/syntax/parse/experimental.rkt
similarity index 100%
rename from collects/syntax/parse/experimental.ss
rename to collects/syntax/parse/experimental.rkt
diff --git a/collects/syntax/path-spec.ss b/collects/syntax/path-spec.rkt
similarity index 100%
rename from collects/syntax/path-spec.ss
rename to collects/syntax/path-spec.rkt
diff --git a/collects/syntax/primitives.ss b/collects/syntax/primitives.rkt
similarity index 100%
rename from collects/syntax/primitives.ss
rename to collects/syntax/primitives.rkt
diff --git a/collects/syntax/private/boundmap.ss b/collects/syntax/private/boundmap.rkt
similarity index 100%
rename from collects/syntax/private/boundmap.ss
rename to collects/syntax/private/boundmap.rkt
diff --git a/collects/syntax/private/doctable.ss b/collects/syntax/private/doctable.rkt
similarity index 100%
rename from collects/syntax/private/doctable.ss
rename to collects/syntax/private/doctable.rkt
diff --git a/collects/syntax/private/id-table.ss b/collects/syntax/private/id-table.rkt
similarity index 100%
rename from collects/syntax/private/id-table.ss
rename to collects/syntax/private/id-table.rkt
diff --git a/collects/syntax/private/keyword.ss b/collects/syntax/private/keyword.rkt
similarity index 100%
rename from collects/syntax/private/keyword.ss
rename to collects/syntax/private/keyword.rkt
diff --git a/collects/syntax/private/modcollapse-noctc.ss b/collects/syntax/private/modcollapse-noctc.rkt
similarity index 100%
rename from collects/syntax/private/modcollapse-noctc.ss
rename to collects/syntax/private/modcollapse-noctc.rkt
diff --git a/collects/syntax/private/modhelp.ss b/collects/syntax/private/modhelp.rkt
similarity index 100%
rename from collects/syntax/private/modhelp.ss
rename to collects/syntax/private/modhelp.rkt
diff --git a/collects/syntax/private/stxparse/codegen-data.ss b/collects/syntax/private/stxparse/codegen-data.rkt
similarity index 100%
rename from collects/syntax/private/stxparse/codegen-data.ss
rename to collects/syntax/private/stxparse/codegen-data.rkt
diff --git a/collects/syntax/private/stxparse/lib.ss b/collects/syntax/private/stxparse/lib.rkt
similarity index 100%
rename from collects/syntax/private/stxparse/lib.ss
rename to collects/syntax/private/stxparse/lib.rkt
diff --git a/collects/syntax/private/stxparse/minimatch.ss b/collects/syntax/private/stxparse/minimatch.rkt
similarity index 100%
rename from collects/syntax/private/stxparse/minimatch.ss
rename to collects/syntax/private/stxparse/minimatch.rkt
diff --git a/collects/syntax/private/stxparse/parse.ss b/collects/syntax/private/stxparse/parse.rkt
similarity index 100%
rename from collects/syntax/private/stxparse/parse.ss
rename to collects/syntax/private/stxparse/parse.rkt
diff --git a/collects/syntax/private/stxparse/rep-attrs.ss b/collects/syntax/private/stxparse/rep-attrs.rkt
similarity index 100%
rename from collects/syntax/private/stxparse/rep-attrs.ss
rename to collects/syntax/private/stxparse/rep-attrs.rkt
diff --git a/collects/syntax/private/stxparse/rep-data.ss b/collects/syntax/private/stxparse/rep-data.rkt
similarity index 100%
rename from collects/syntax/private/stxparse/rep-data.ss
rename to collects/syntax/private/stxparse/rep-data.rkt
diff --git a/collects/syntax/private/stxparse/rep-patterns.ss b/collects/syntax/private/stxparse/rep-patterns.rkt
similarity index 100%
rename from collects/syntax/private/stxparse/rep-patterns.ss
rename to collects/syntax/private/stxparse/rep-patterns.rkt
diff --git a/collects/syntax/private/stxparse/rep.ss b/collects/syntax/private/stxparse/rep.rkt
similarity index 100%
rename from collects/syntax/private/stxparse/rep.ss
rename to collects/syntax/private/stxparse/rep.rkt
diff --git a/collects/syntax/private/stxparse/runtime-prose.ss b/collects/syntax/private/stxparse/runtime-prose.rkt
similarity index 100%
rename from collects/syntax/private/stxparse/runtime-prose.ss
rename to collects/syntax/private/stxparse/runtime-prose.rkt
diff --git a/collects/syntax/private/stxparse/runtime.ss b/collects/syntax/private/stxparse/runtime.rkt
similarity index 100%
rename from collects/syntax/private/stxparse/runtime.ss
rename to collects/syntax/private/stxparse/runtime.rkt
diff --git a/collects/syntax/private/stxparse/sc.ss b/collects/syntax/private/stxparse/sc.rkt
similarity index 100%
rename from collects/syntax/private/stxparse/sc.ss
rename to collects/syntax/private/stxparse/sc.rkt
diff --git a/collects/syntax/private/template-runtime.ss b/collects/syntax/private/template-runtime.rkt
similarity index 100%
rename from collects/syntax/private/template-runtime.ss
rename to collects/syntax/private/template-runtime.rkt
diff --git a/collects/syntax/private/util.ss b/collects/syntax/private/util.rkt
similarity index 100%
rename from collects/syntax/private/util.ss
rename to collects/syntax/private/util.rkt
diff --git a/collects/syntax/private/util/expand.ss b/collects/syntax/private/util/expand.rkt
similarity index 100%
rename from collects/syntax/private/util/expand.ss
rename to collects/syntax/private/util/expand.rkt
diff --git a/collects/syntax/readerr.ss b/collects/syntax/readerr.rkt
similarity index 100%
rename from collects/syntax/readerr.ss
rename to collects/syntax/readerr.rkt
diff --git a/collects/syntax/scribblings/common.ss b/collects/syntax/scribblings/common.rkt
similarity index 100%
rename from collects/syntax/scribblings/common.ss
rename to collects/syntax/scribblings/common.rkt
diff --git a/collects/syntax/strip-context.ss b/collects/syntax/strip-context.rkt
similarity index 100%
rename from collects/syntax/strip-context.ss
rename to collects/syntax/strip-context.rkt
diff --git a/collects/syntax/struct.ss b/collects/syntax/struct.rkt
similarity index 100%
rename from collects/syntax/struct.ss
rename to collects/syntax/struct.rkt
diff --git a/collects/syntax/stx.ss b/collects/syntax/stx.rkt
similarity index 100%
rename from collects/syntax/stx.ss
rename to collects/syntax/stx.rkt
diff --git a/collects/syntax/template.ss b/collects/syntax/template.rkt
similarity index 100%
rename from collects/syntax/template.ss
rename to collects/syntax/template.rkt
diff --git a/collects/syntax/to-string.ss b/collects/syntax/to-string.rkt
similarity index 100%
rename from collects/syntax/to-string.ss
rename to collects/syntax/to-string.rkt
diff --git a/collects/syntax/toplevel.ss b/collects/syntax/toplevel.rkt
similarity index 100%
rename from collects/syntax/toplevel.ss
rename to collects/syntax/toplevel.rkt
diff --git a/collects/syntax/trusted-xforms.ss b/collects/syntax/trusted-xforms.rkt
similarity index 100%
rename from collects/syntax/trusted-xforms.ss
rename to collects/syntax/trusted-xforms.rkt
diff --git a/collects/syntax/zodiac-sig.ss b/collects/syntax/zodiac-sig.rkt
similarity index 100%
rename from collects/syntax/zodiac-sig.ss
rename to collects/syntax/zodiac-sig.rkt
diff --git a/collects/syntax/zodiac-unit.ss b/collects/syntax/zodiac-unit.rkt
similarity index 100%
rename from collects/syntax/zodiac-unit.ss
rename to collects/syntax/zodiac-unit.rkt
diff --git a/collects/syntax/zodiac.ss b/collects/syntax/zodiac.rkt
similarity index 100%
rename from collects/syntax/zodiac.ss
rename to collects/syntax/zodiac.rkt
diff --git a/collects/teachpack/2htdp/scribblings/batch-io.scrbl b/collects/teachpack/2htdp/scribblings/batch-io.scrbl
index cd33ba5996..0fbb937a7e 100644
--- a/collects/teachpack/2htdp/scribblings/batch-io.scrbl
+++ b/collects/teachpack/2htdp/scribblings/batch-io.scrbl
@@ -1,16 +1,20 @@
#lang scribble/doc
@(require (for-label scheme teachpack/2htdp/batch-io))
-@(require scheme/sandbox scribble/manual scribble/eval scribble/core)
+@(require scheme/sandbox scribble/manual scribble/eval scribble/core
+ scribble/html-properties scribble/latex-properties)
@(require "shared.ss")
@(require 2htdp/batch-io)
@(require scheme/runtime-path)
@(define-runtime-path here ".")
+@(define io-style-extras
+ (list (make-css-addition (build-path here "io.css"))
+ (make-tex-addition (build-path here "io.tex"))))
@(define (file-is f)
(define x (parameterize ([current-directory here]) (read-file f)))
(centered
- (tabular #:style "searchbox"
+ (tabular #:style (make-style "FileBox" io-style-extras)
(list (list (verbatim x))))))
@(define-syntax examples-batch-io
@@ -22,7 +26,7 @@
(interaction-eval #:eval me (require 2htdp/batch-io))
(interaction-eval #:eval me d)
...)
- (current-directory here)
+ (me `(,current-directory ,here))
(interaction-eval #:eval me (require lang/htdp-intermediate-lambda))
me)]))
@@ -139,5 +143,6 @@ There is only one writer function at the moment:
}
]
-@(delete-file "output.txt")
+@(parameterize ([current-directory here])
+ (delete-file "output.txt"))
diff --git a/collects/teachpack/2htdp/scribblings/image-gen.ss b/collects/teachpack/2htdp/scribblings/image-gen.rkt
similarity index 97%
rename from collects/teachpack/2htdp/scribblings/image-gen.ss
rename to collects/teachpack/2htdp/scribblings/image-gen.rkt
index 2421d6c221..36b5fd00bb 100644
--- a/collects/teachpack/2htdp/scribblings/image-gen.ss
+++ b/collects/teachpack/2htdp/scribblings/image-gen.rkt
@@ -5,8 +5,7 @@
(require 2htdp/image
lang/posn
- scheme/runtime-path
- (only-in 2htdp/private/image-more save-image))
+ scheme/runtime-path)
(define-runtime-path image.scrbl "image.scrbl")
(define-runtime-path img "img")
diff --git a/collects/teachpack/2htdp/scribblings/image-toc.ss b/collects/teachpack/2htdp/scribblings/image-toc.rkt
similarity index 100%
rename from collects/teachpack/2htdp/scribblings/image-toc.ss
rename to collects/teachpack/2htdp/scribblings/image-toc.rkt
diff --git a/collects/teachpack/2htdp/scribblings/image-util.ss b/collects/teachpack/2htdp/scribblings/image-util.rkt
similarity index 100%
rename from collects/teachpack/2htdp/scribblings/image-util.ss
rename to collects/teachpack/2htdp/scribblings/image-util.rkt
diff --git a/collects/teachpack/2htdp/scribblings/image.scrbl b/collects/teachpack/2htdp/scribblings/image.scrbl
index 1ff710b855..830879cb24 100644
--- a/collects/teachpack/2htdp/scribblings/image.scrbl
+++ b/collects/teachpack/2htdp/scribblings/image.scrbl
@@ -4,7 +4,8 @@
2htdp/image
(except-in lang/htdp-beginner make-posn posn? posn-x posn-y image?)
lang/posn
- scheme/gui/base)
+ scheme/gui/base
+ (only-in scheme/base path-string?))
lang/posn
"shared.ss"
"image-util.ss"
@@ -1044,3 +1045,21 @@ pixel wide pen draws the pixels above and below the line, but each with
a color that is half of the intensity of the given color. Using a
@scheme[pen] with with two, colors the pixels above and below the line
with the full intensity.
+
+
+@;-----------------------------------------------------------------------------
+@section{Exporting Images to Disk}
+
+In order to use an image as an input to another program (Photoshop, e.g., or
+a web browser), it is necessary to represent it in a format that these programs
+can understand. The @scheme[save-image] function provides this functionality,
+writing an image to disk using the @tt{PNG} format. Since this
+format represents an image using a set of pixel values, an image written to disk
+generally contains less information than the image that was written, and cannot be scaled
+or manipulated as cleanly (by any image program).
+
+@defproc[(save-image [image image?] [filename path-string?]) boolean?]{
+ writes an image to the path specified by @scheme[filename], using the
+ @tt{PNG} format.}
+
+
diff --git a/collects/teachpack/2htdp/scribblings/io.css b/collects/teachpack/2htdp/scribblings/io.css
new file mode 100644
index 0000000000..89735f0535
--- /dev/null
+++ b/collects/teachpack/2htdp/scribblings/io.css
@@ -0,0 +1,10 @@
+
+.FileBox {
+ width: 16em;
+ margin: 0px;
+ padding: 0px;
+ background-color: #eee;
+ border: 1px solid #ddd;
+ text-align: center;
+ vertical-align: middle;
+}
diff --git a/collects/teachpack/2htdp/scribblings/io.tex b/collects/teachpack/2htdp/scribblings/io.tex
new file mode 100644
index 0000000000..f69032f36c
--- /dev/null
+++ b/collects/teachpack/2htdp/scribblings/io.tex
@@ -0,0 +1,4 @@
+
+\usepackage{framed}
+
+\newenvironment{FileBox}{\begin{minipage}{4in}\begin{framed}}{\end{framed}\end{minipage}}
diff --git a/collects/teachpack/2htdp/scribblings/port.ss b/collects/teachpack/2htdp/scribblings/port.rkt
similarity index 100%
rename from collects/teachpack/2htdp/scribblings/port.ss
rename to collects/teachpack/2htdp/scribblings/port.rkt
diff --git a/collects/teachpack/2htdp/scribblings/shared.ss b/collects/teachpack/2htdp/scribblings/shared.rkt
similarity index 100%
rename from collects/teachpack/2htdp/scribblings/shared.ss
rename to collects/teachpack/2htdp/scribblings/shared.rkt
diff --git a/collects/teachpack/2htdp/scribblings/universe.scrbl b/collects/teachpack/2htdp/scribblings/universe.scrbl
index f21fb3fa5d..6ad16a4612 100644
--- a/collects/teachpack/2htdp/scribblings/universe.scrbl
+++ b/collects/teachpack/2htdp/scribblings/universe.scrbl
@@ -410,7 +410,7 @@ All @tech{MouseEvent}s are represented via strings:
}
For compatibility reasons, the teachpack also supports the keyword
-@tt{on-draw} in lieu of @scheme[to-draw] but the latter is preferred
+@defidform/inline[on-draw] in lieu of @scheme[to-draw] but the latter is preferred
now.
}
diff --git a/collects/teachpack/htdp/scribblings/shared.ss b/collects/teachpack/htdp/scribblings/shared.rkt
similarity index 100%
rename from collects/teachpack/htdp/scribblings/shared.ss
rename to collects/teachpack/htdp/scribblings/shared.rkt
diff --git a/collects/test-box-recovery/info.ss b/collects/test-box-recovery/info.rkt
similarity index 100%
rename from collects/test-box-recovery/info.ss
rename to collects/test-box-recovery/info.rkt
diff --git a/collects/test-box-recovery/tool.ss b/collects/test-box-recovery/tool.rkt
similarity index 100%
rename from collects/test-box-recovery/tool.ss
rename to collects/test-box-recovery/tool.rkt
diff --git a/collects/test-engine/info.ss b/collects/test-engine/info.rkt
similarity index 100%
rename from collects/test-engine/info.ss
rename to collects/test-engine/info.rkt
diff --git a/collects/test-engine/print.ss b/collects/test-engine/print.rkt
similarity index 100%
rename from collects/test-engine/print.ss
rename to collects/test-engine/print.rkt
diff --git a/collects/test-engine/scheme-gui.ss b/collects/test-engine/scheme-gui.rkt
similarity index 100%
rename from collects/test-engine/scheme-gui.ss
rename to collects/test-engine/scheme-gui.rkt
diff --git a/collects/test-engine/scheme-tests.ss b/collects/test-engine/scheme-tests.rkt
similarity index 100%
rename from collects/test-engine/scheme-tests.ss
rename to collects/test-engine/scheme-tests.rkt
diff --git a/collects/tests/aligned-pasteboard/debug.ss b/collects/tests/aligned-pasteboard/debug.rkt
similarity index 100%
rename from collects/tests/aligned-pasteboard/debug.ss
rename to collects/tests/aligned-pasteboard/debug.rkt
diff --git a/collects/tests/aligned-pasteboard/example.ss b/collects/tests/aligned-pasteboard/example.rkt
similarity index 100%
rename from collects/tests/aligned-pasteboard/example.ss
rename to collects/tests/aligned-pasteboard/example.rkt
diff --git a/collects/tests/aligned-pasteboard/old-bugs/big-min.ss b/collects/tests/aligned-pasteboard/old-bugs/big-min.rkt
similarity index 100%
rename from collects/tests/aligned-pasteboard/old-bugs/big-min.ss
rename to collects/tests/aligned-pasteboard/old-bugs/big-min.rkt
diff --git a/collects/tests/aligned-pasteboard/old-bugs/missing-min.ss b/collects/tests/aligned-pasteboard/old-bugs/missing-min.rkt
similarity index 100%
rename from collects/tests/aligned-pasteboard/old-bugs/missing-min.ss
rename to collects/tests/aligned-pasteboard/old-bugs/missing-min.rkt
diff --git a/collects/tests/aligned-pasteboard/snip-dumper.ss b/collects/tests/aligned-pasteboard/snip-dumper.rkt
similarity index 100%
rename from collects/tests/aligned-pasteboard/snip-dumper.ss
rename to collects/tests/aligned-pasteboard/snip-dumper.rkt
diff --git a/collects/tests/aligned-pasteboard/test-alignment.ss b/collects/tests/aligned-pasteboard/test-alignment.rkt
similarity index 100%
rename from collects/tests/aligned-pasteboard/test-alignment.ss
rename to collects/tests/aligned-pasteboard/test-alignment.rkt
diff --git a/collects/tests/aligned-pasteboard/test-pasteboard-lib.ss b/collects/tests/aligned-pasteboard/test-pasteboard-lib.rkt
similarity index 100%
rename from collects/tests/aligned-pasteboard/test-pasteboard-lib.ss
rename to collects/tests/aligned-pasteboard/test-pasteboard-lib.rkt
diff --git a/collects/tests/aligned-pasteboard/test-snip-lib.ss b/collects/tests/aligned-pasteboard/test-snip-lib.rkt
similarity index 100%
rename from collects/tests/aligned-pasteboard/test-snip-lib.ss
rename to collects/tests/aligned-pasteboard/test-snip-lib.rkt
diff --git a/collects/tests/aligned-pasteboard/test.ss b/collects/tests/aligned-pasteboard/test.rkt
similarity index 100%
rename from collects/tests/aligned-pasteboard/test.ss
rename to collects/tests/aligned-pasteboard/test.rkt
diff --git a/collects/tests/aligned-pasteboard/test2.ss b/collects/tests/aligned-pasteboard/test2.rkt
similarity index 100%
rename from collects/tests/aligned-pasteboard/test2.ss
rename to collects/tests/aligned-pasteboard/test2.rkt
diff --git a/collects/tests/compiler/regression.ss b/collects/tests/compiler/regression.rkt
similarity index 100%
rename from collects/tests/compiler/regression.ss
rename to collects/tests/compiler/regression.rkt
diff --git a/collects/tests/compiler/zo-test.ss b/collects/tests/compiler/zo-test.rkt
similarity index 99%
rename from collects/tests/compiler/zo-test.ss
rename to collects/tests/compiler/zo-test.rkt
index b19012f9db..e805c64e1e 100644
--- a/collects/tests/compiler/zo-test.ss
+++ b/collects/tests/compiler/zo-test.rkt
@@ -185,7 +185,7 @@
(hash-update! errors (common-message exn) add1 0)
(unless (and (not (care-about-nonserious?)) (not serious?))
(when (or (verbose-mode) (stop-on-first-error))
- (printf "~a -- ~a: ~a~n" file phase (exn-message exn)))
+ (fprintf (current-error-port) "~a -- ~a: ~a~n" file phase (exn-message exn)))
(when (stop-on-first-error)
exn)))
diff --git a/collects/tests/deinprogramm/contract.ss b/collects/tests/deinprogramm/contract.rkt
similarity index 99%
rename from collects/tests/deinprogramm/contract.ss
rename to collects/tests/deinprogramm/contract.rkt
index 16739edb14..e763ce6222 100644
--- a/collects/tests/deinprogramm/contract.ss
+++ b/collects/tests/deinprogramm/contract.rkt
@@ -2,7 +2,7 @@
(provide all-contract-tests)
-(require schemeunit
+(require rktunit
deinprogramm/define-record-procedures
deinprogramm/contract/contract
deinprogramm/contract/contract-syntax)
diff --git a/collects/tests/deinprogramm/image.ss b/collects/tests/deinprogramm/image.rkt
similarity index 99%
rename from collects/tests/deinprogramm/image.ss
rename to collects/tests/deinprogramm/image.rkt
index 2dba02294e..13a6753ae4 100644
--- a/collects/tests/deinprogramm/image.ss
+++ b/collects/tests/deinprogramm/image.rkt
@@ -2,7 +2,7 @@
(provide all-image-tests)
-(require schemeunit
+(require rktunit
deinprogramm/image
(only-in lang/private/imageeq image=?)
mred
diff --git a/collects/tests/deinprogramm/run-contract-tests.ss b/collects/tests/deinprogramm/run-contract-tests.rkt
similarity index 75%
rename from collects/tests/deinprogramm/run-contract-tests.ss
rename to collects/tests/deinprogramm/run-contract-tests.rkt
index bbb3a7bdb4..c4700c10da 100644
--- a/collects/tests/deinprogramm/run-contract-tests.ss
+++ b/collects/tests/deinprogramm/run-contract-tests.rkt
@@ -1,6 +1,6 @@
#lang scheme/base
-(require schemeunit/text-ui)
+(require rktunit/text-ui)
(require tests/deinprogramm/contract)
(run-tests all-contract-tests)
diff --git a/collects/tests/deinprogramm/run-image-test.ss b/collects/tests/deinprogramm/run-image-test.rkt
similarity index 74%
rename from collects/tests/deinprogramm/run-image-test.ss
rename to collects/tests/deinprogramm/run-image-test.rkt
index d0da6e74a3..333e7095f8 100644
--- a/collects/tests/deinprogramm/run-image-test.ss
+++ b/collects/tests/deinprogramm/run-image-test.rkt
@@ -1,6 +1,6 @@
#lang scheme/base
-(require schemeunit/text-ui)
+(require rktunit/text-ui)
(require tests/deinprogramm/image)
(run-tests all-image-tests)
diff --git a/collects/tests/drscheme/drscheme-test-util.ss b/collects/tests/drscheme/drscheme-test-util.rkt
similarity index 100%
rename from collects/tests/drscheme/drscheme-test-util.ss
rename to collects/tests/drscheme/drscheme-test-util.rkt
diff --git a/collects/tests/drscheme/info.ss b/collects/tests/drscheme/info.rkt
similarity index 100%
rename from collects/tests/drscheme/info.ss
rename to collects/tests/drscheme/info.rkt
diff --git a/collects/tests/drscheme/io.ss b/collects/tests/drscheme/io.rkt
similarity index 100%
rename from collects/tests/drscheme/io.ss
rename to collects/tests/drscheme/io.rkt
diff --git a/collects/tests/drscheme/language-test.ss b/collects/tests/drscheme/language-test.rkt
similarity index 99%
rename from collects/tests/drscheme/language-test.ss
rename to collects/tests/drscheme/language-test.rkt
index cfed7e29c8..d49c06d1de 100644
--- a/collects/tests/drscheme/language-test.ss
+++ b/collects/tests/drscheme/language-test.rkt
@@ -1080,7 +1080,7 @@ the settings above should match r5rs
[get-line (lambda (n) (send interactions get-text
(send interactions paragraph-start-position n)
(send interactions paragraph-end-position n)))]
- [line0-expect (format "Welcome to DrScheme, version ~a [3m]." (version:version))]
+ [line0-expect (format "Welcome to DrRacket, version ~a [3m]." (version:version))]
[line1-expect
(if (string? short-lang)
(format "Language: ~a" short-lang)
diff --git a/collects/tests/drscheme/module-lang-test-utils.ss b/collects/tests/drscheme/module-lang-test-utils.rkt
similarity index 100%
rename from collects/tests/drscheme/module-lang-test-utils.ss
rename to collects/tests/drscheme/module-lang-test-utils.rkt
diff --git a/collects/tests/drscheme/module-lang-test.ss b/collects/tests/drscheme/module-lang-test.rkt
similarity index 100%
rename from collects/tests/drscheme/module-lang-test.ss
rename to collects/tests/drscheme/module-lang-test.rkt
diff --git a/collects/tests/drscheme/randomly-click-language-dialog.ss b/collects/tests/drscheme/randomly-click-language-dialog.rkt
similarity index 100%
rename from collects/tests/drscheme/randomly-click-language-dialog.ss
rename to collects/tests/drscheme/randomly-click-language-dialog.rkt
diff --git a/collects/tests/drscheme/randomly-click-preferences.ss b/collects/tests/drscheme/randomly-click-preferences.rkt
similarity index 100%
rename from collects/tests/drscheme/randomly-click-preferences.ss
rename to collects/tests/drscheme/randomly-click-preferences.rkt
diff --git a/collects/tests/drscheme/randomly-click.ss b/collects/tests/drscheme/randomly-click.rkt
similarity index 100%
rename from collects/tests/drscheme/randomly-click.ss
rename to collects/tests/drscheme/randomly-click.rkt
diff --git a/collects/tests/drscheme/repl-test.ss b/collects/tests/drscheme/repl-test.rkt
similarity index 100%
rename from collects/tests/drscheme/repl-test.ss
rename to collects/tests/drscheme/repl-test.rkt
diff --git a/collects/tests/drscheme/sample-solutions-one-window.ss b/collects/tests/drscheme/sample-solutions-one-window.rkt
similarity index 100%
rename from collects/tests/drscheme/sample-solutions-one-window.ss
rename to collects/tests/drscheme/sample-solutions-one-window.rkt
diff --git a/collects/tests/drscheme/save-teaching-lang-file.ss b/collects/tests/drscheme/save-teaching-lang-file.rkt
similarity index 100%
rename from collects/tests/drscheme/save-teaching-lang-file.ss
rename to collects/tests/drscheme/save-teaching-lang-file.rkt
diff --git a/collects/tests/drscheme/stepper-test.ss b/collects/tests/drscheme/stepper-test.rkt
similarity index 100%
rename from collects/tests/drscheme/stepper-test.ss
rename to collects/tests/drscheme/stepper-test.rkt
diff --git a/collects/tests/drscheme/syncheck-test.ss b/collects/tests/drscheme/syncheck-test.rkt
similarity index 100%
rename from collects/tests/drscheme/syncheck-test.ss
rename to collects/tests/drscheme/syncheck-test.rkt
diff --git a/collects/tests/drscheme/teachpack.ss b/collects/tests/drscheme/teachpack.rkt
similarity index 100%
rename from collects/tests/drscheme/teachpack.ss
rename to collects/tests/drscheme/teachpack.rkt
diff --git a/collects/tests/drscheme/time-keystrokes.ss b/collects/tests/drscheme/time-keystrokes.rkt
similarity index 100%
rename from collects/tests/drscheme/time-keystrokes.ss
rename to collects/tests/drscheme/time-keystrokes.rkt
diff --git a/collects/tests/eli-tester.ss b/collects/tests/eli-tester.rkt
similarity index 77%
rename from collects/tests/eli-tester.ss
rename to collects/tests/eli-tester.rkt
index dbe674f929..b8483977e4 100644
--- a/collects/tests/eli-tester.ss
+++ b/collects/tests/eli-tester.rkt
@@ -28,7 +28,28 @@
[x (format "INTERNAL ERROR, unexpected value: ~s" x)]))
(define test-context (make-parameter #f))
-(define failure-message (make-parameter #f))
+(define failure-format
+ (make-parameter
+ (lambda (prefix qe fmt . args)
+ (define prefix-str
+ (apply string-append
+ (add-between (reverse (list* "" prefix))
+ " > ")))
+ (define str
+ (regexp-replace #rx"\n"
+ (apply format fmt args)
+ "\n "))
+ (format "~atest failure in ~e\n ~a"
+ prefix-str qe str))))
+
+(define (make-failure-message msg)
+ (define str
+ (regexp-replace #rx"\n" msg "\n "))
+ (define real-msg
+ (format "test failure\n ~a" str))
+ (lambda (prefix qe fmt . args)
+ real-msg))
+(define failure-prefix-mark (gensym 'failure-prefix))
(define-syntax (test-thunk stx)
(define (blame e fmt . args)
@@ -41,13 +62,10 @@
[(syntax-position e) => (lambda (p) (format "#~a" p))]
[else "?"])))))
(with-syntax ([e e] [fmt fmt] [(arg ...) args] [loc loc])
- #'(let* ([msg (failure-message)]
- [str (regexp-replace #rx"\n"
- (if msg (msg) (format fmt arg ...))
- "\n ")])
- (if msg
- (error 'loc "test failure\n ~a" str)
- (error 'loc "test failure in ~e\n ~a" 'e str)))))
+ #'(let* ([form (failure-format)]
+ [prefix
+ (continuation-mark-set->list (current-continuation-marks) failure-prefix-mark)])
+ (error 'loc (form prefix 'e fmt arg ...)))))
(define (t1 x)
#`(let ([x (safe #,x)])
(unless (and (eq? 'values (car x)) (= 2 (length x)) (cadr x))
@@ -55,7 +73,7 @@
#'(show x)))))
(define (t2 x y [eval2? #t])
#`(let* ([x (safe #,x)] [xtag (car x)]
- [y #,(if eval2? #`(safe #,y) y)] [ytag (car y)])
+ [y #,(if eval2? #`(safe #,y) y)] [ytag (car y)])
(cond
[(eq? ytag 'values)
(unless (equal? x y)
@@ -93,19 +111,26 @@
(let ([e (syntax-e x)])
(if (or (memq e '(do => <= =error> list stx)))]
[r '()])
(let ([t (let tloop ([xs xs])
(match xs
+ [(list* #:failure-prefix msg r)
+ (let ([r (tloop r)])
+ (if (pair? r)
+ (cons
+ #`(with-continuation-mark failure-prefix-mark #,msg #,(car r))
+ (cdr r))
+ r))]
[(list* #:failure-message msg r)
(let ([r (tloop r)])
(if (pair? r)
- (cons
- #`(parameterize ([failure-message (lambda () #,msg)])
- #,(car r))
- (cdr r))
- r))]
+ (cons
+ #`(parameterize ([failure-format (make-failure-message #,msg)])
+ #,(car r))
+ (cdr r))
+ r))]
[(list* 'do x r) ; to avoid counting non-test exprs as tests
(cons (tb x) r)]
[(list* x '=> y r) (cons (try t2 x y) r)]
@@ -120,26 +145,26 @@
[_ (cons (try t1 x) r)])]
[(list) '()]))])
(if (pair? t)
- (loop (cdr t) (cons (car t) r))
- #`(lambda () #,@(reverse r))))))
+ (loop (cdr t) (cons (car t) r))
+ #`(lambda () #,@(reverse r))))))
(define (run-tests thunk force-new-context?)
(if (and (test-context) (not force-new-context?))
- (thunk)
- (let ([c (mcons 0 '())])
- (parameterize ([test-context c])
- (dynamic-wind
- void
- thunk
- (lambda ()
- (test-context #f)
- (let ([num (mcar c)] [exns (mcdr c)])
- (if (null? exns)
- (printf "~a test~a passed\n" num (if (= num 1) "" "s"))
- (error 'test "~a/~a test failures:~a" (length exns) num
- (string-append*
- (append-map (lambda (e) (list "\n" (exn-message e)))
- (reverse exns))))))))))))
+ (thunk)
+ (let ([c (mcons 0 '())])
+ (parameterize ([test-context c])
+ (dynamic-wind
+ void
+ thunk
+ (lambda ()
+ (test-context #f)
+ (let ([num (mcar c)] [exns (mcdr c)])
+ (if (null? exns)
+ (printf "~a test~a passed\n" num (if (= num 1) "" "s"))
+ (error 'test "~a/~a test failures:~a" (length exns) num
+ (string-append*
+ (append-map (lambda (e) (list "\n" (exn-message e)))
+ (reverse exns))))))))))))
(provide test test*)
(define-syntax-rule (test x0 x ...) (run-tests (test-thunk x0 x ...) #f))
@@ -163,7 +188,7 @@
(car '()) => (error "expects argument of type")
;; syntax errors
(if 1) =error> "if: bad syntax"
-
+
;; error (and non-exception raises) predicates
(+ 1 "2") =error> exn:fail:contract?
(+ 1 "2") =error> (lambda (x) (not (exn:fail:filesystem? x)))
@@ -171,7 +196,7 @@
(error "1") =error> exn?
(raise 1) =error> number?
(raise "1") =error> string?
-
+
;; test `test' errors
(test* (/ 0)) =error> "expected: non-#f single value"
(test* 1 => 2) =error> "expected: 2"
@@ -180,7 +205,8 @@
(test* (raise 1) =error> "foo") =error> "raised non-exception"
(test* #:failure-message "FOO" (/ 0) => 1) =error> "FOO"
(test* #:failure-message "FOO" (/ 0)) =error> "FOO"
-
+ (test* #:failure-prefix "FOO" (/ 0)) =error> "FOO"
+
;; test possitive message
(let ([o (open-output-bytes)])
(list (begin (parameterize ([current-output-port o]) (test* 1 => 1))
@@ -190,7 +216,7 @@
=> '(#"1 test passed\n" #"2 tests passed\n")
)
-;; SchemeUnit stuff
+;; RktUnit stuff
;; (examples that should fail modified to ones that shouldn't)
#|
diff --git a/collects/tests/file/gzip.ss b/collects/tests/file/gzip.rkt
similarity index 98%
rename from collects/tests/file/gzip.ss
rename to collects/tests/file/gzip.rkt
index 8904eeceb6..7f42c43549 100644
--- a/collects/tests/file/gzip.ss
+++ b/collects/tests/file/gzip.rkt
@@ -23,7 +23,7 @@
(define (test-big-file)
(define big-file
- (build-path (collection-path "drscheme/private") "unit.ss"))
+ (build-path (collection-path "drscheme/private") "unit.rkt"))
;; should be around 6 times smaller
(id* (file->bytes big-file) 4))
diff --git a/collects/tests/file/main.ss b/collects/tests/file/main.rkt
similarity index 100%
rename from collects/tests/file/main.ss
rename to collects/tests/file/main.rkt
diff --git a/collects/tests/file/md5.ss b/collects/tests/file/md5.rkt
similarity index 100%
rename from collects/tests/file/md5.ss
rename to collects/tests/file/md5.rkt
diff --git a/collects/tests/framework/canvas.ss b/collects/tests/framework/canvas.rkt
similarity index 100%
rename from collects/tests/framework/canvas.ss
rename to collects/tests/framework/canvas.rkt
diff --git a/collects/tests/framework/debug.ss b/collects/tests/framework/debug.rkt
similarity index 100%
rename from collects/tests/framework/debug.ss
rename to collects/tests/framework/debug.rkt
diff --git a/collects/tests/framework/exit.ss b/collects/tests/framework/exit.rkt
similarity index 100%
rename from collects/tests/framework/exit.ss
rename to collects/tests/framework/exit.rkt
diff --git a/collects/tests/framework/frame.ss b/collects/tests/framework/frame.rkt
similarity index 100%
rename from collects/tests/framework/frame.ss
rename to collects/tests/framework/frame.rkt
diff --git a/collects/tests/framework/framework-test-engine.ss b/collects/tests/framework/framework-test-engine.rkt
similarity index 100%
rename from collects/tests/framework/framework-test-engine.ss
rename to collects/tests/framework/framework-test-engine.rkt
diff --git a/collects/tests/framework/group-test.ss b/collects/tests/framework/group-test.rkt
similarity index 100%
rename from collects/tests/framework/group-test.ss
rename to collects/tests/framework/group-test.rkt
diff --git a/collects/tests/framework/handler-test.ss b/collects/tests/framework/handler-test.rkt
similarity index 100%
rename from collects/tests/framework/handler-test.ss
rename to collects/tests/framework/handler-test.rkt
diff --git a/collects/tests/framework/info.rkt b/collects/tests/framework/info.rkt
new file mode 100644
index 0000000000..8de8160107
--- /dev/null
+++ b/collects/tests/framework/info.rkt
@@ -0,0 +1,3 @@
+#lang setup/infotab
+
+(define compile-omit-paths '("key-specs.rkt" "utils.rkt" "receive-sexps-port.rkt"))
diff --git a/collects/tests/framework/info.ss b/collects/tests/framework/info.ss
deleted file mode 100644
index e271d9238b..0000000000
--- a/collects/tests/framework/info.ss
+++ /dev/null
@@ -1,3 +0,0 @@
-#lang setup/infotab
-
-(define compile-omit-paths '("key-specs.ss" "utils.ss" "receive-sexps-port.ss"))
diff --git a/collects/tests/framework/keys.ss b/collects/tests/framework/keys.rkt
similarity index 100%
rename from collects/tests/framework/keys.ss
rename to collects/tests/framework/keys.rkt
diff --git a/collects/tests/framework/load.ss b/collects/tests/framework/load.rkt
similarity index 100%
rename from collects/tests/framework/load.ss
rename to collects/tests/framework/load.rkt
diff --git a/collects/tests/framework/main.ss b/collects/tests/framework/main.rkt
similarity index 100%
rename from collects/tests/framework/main.ss
rename to collects/tests/framework/main.rkt
diff --git a/collects/tests/framework/mem.ss b/collects/tests/framework/mem.rkt
similarity index 100%
rename from collects/tests/framework/mem.ss
rename to collects/tests/framework/mem.rkt
diff --git a/collects/tests/framework/panel.ss b/collects/tests/framework/panel.rkt
similarity index 100%
rename from collects/tests/framework/panel.ss
rename to collects/tests/framework/panel.rkt
diff --git a/collects/tests/framework/pasteboard.ss b/collects/tests/framework/pasteboard.rkt
similarity index 100%
rename from collects/tests/framework/pasteboard.ss
rename to collects/tests/framework/pasteboard.rkt
diff --git a/collects/tests/framework/prefs.ss b/collects/tests/framework/prefs.rkt
similarity index 100%
rename from collects/tests/framework/prefs.ss
rename to collects/tests/framework/prefs.rkt
diff --git a/collects/tests/framework/scheme.ss b/collects/tests/framework/scheme.rkt
similarity index 100%
rename from collects/tests/framework/scheme.ss
rename to collects/tests/framework/scheme.rkt
diff --git a/collects/tests/framework/search.ss b/collects/tests/framework/search.rkt
similarity index 100%
rename from collects/tests/framework/search.ss
rename to collects/tests/framework/search.rkt
diff --git a/collects/tests/framework/test-suite-utils.ss b/collects/tests/framework/test-suite-utils.rkt
similarity index 100%
rename from collects/tests/framework/test-suite-utils.ss
rename to collects/tests/framework/test-suite-utils.rkt
diff --git a/collects/tests/framework/text.ss b/collects/tests/framework/text.rkt
similarity index 100%
rename from collects/tests/framework/text.ss
rename to collects/tests/framework/text.rkt
diff --git a/collects/tests/framework/utils.ss b/collects/tests/framework/utils.rkt
similarity index 100%
rename from collects/tests/framework/utils.ss
rename to collects/tests/framework/utils.rkt
diff --git a/collects/tests/frtime/dv.ss b/collects/tests/frtime/dv.rkt
similarity index 100%
rename from collects/tests/frtime/dv.ss
rename to collects/tests/frtime/dv.rkt
diff --git a/collects/tests/frtime/erl.ss b/collects/tests/frtime/erl.rkt
similarity index 100%
rename from collects/tests/frtime/erl.ss
rename to collects/tests/frtime/erl.rkt
diff --git a/collects/tests/frtime/heap.ss b/collects/tests/frtime/heap.rkt
similarity index 100%
rename from collects/tests/frtime/heap.ss
rename to collects/tests/frtime/heap.rkt
diff --git a/collects/tests/frtime/mailbox.ss b/collects/tests/frtime/mailbox.rkt
similarity index 100%
rename from collects/tests/frtime/mailbox.ss
rename to collects/tests/frtime/mailbox.rkt
diff --git a/collects/tests/frtime/time.ss b/collects/tests/frtime/time.rkt
similarity index 100%
rename from collects/tests/frtime/time.ss
rename to collects/tests/frtime/time.rkt
diff --git a/collects/tests/future/future.ss b/collects/tests/future/future.rkt
similarity index 99%
rename from collects/tests/future/future.ss
rename to collects/tests/future/future.rkt
index 69fd4463c5..3157c7dd6d 100644
--- a/collects/tests/future/future.ss
+++ b/collects/tests/future/future.rkt
@@ -1,7 +1,7 @@
#lang scheme/base
(require scheme/future
- schemeunit)
+ rktunit)
#|Need to add expressions which raise exceptions inside a
future thunk which can be caught at the touch site
diff --git a/collects/tests/future/random-future.ss b/collects/tests/future/random-future.rkt
similarity index 99%
rename from collects/tests/future/random-future.ss
rename to collects/tests/future/random-future.rkt
index c76922851f..a9659b290c 100644
--- a/collects/tests/future/random-future.ss
+++ b/collects/tests/future/random-future.rkt
@@ -182,7 +182,7 @@ Errors/exceptions and other kinds of control?
(gen-exp))]))
(define-namespace-anchor ns-here)
-(let ([seed 587082310 #;(+ 1 (random (expt 2 30)))])
+(let ([seed (+ 1 (random (expt 2 30)))])
(printf "DrDr Ignore! random-seed ~s\n" seed)
(random-seed seed))
diff --git a/collects/tests/honu/macros.ss b/collects/tests/honu/macros.rkt
similarity index 100%
rename from collects/tests/honu/macros.ss
rename to collects/tests/honu/macros.rkt
diff --git a/collects/tests/html/test.ss b/collects/tests/html/test.rkt
similarity index 96%
rename from collects/tests/html/test.ss
rename to collects/tests/html/test.rkt
index 3cd24b9699..0d6f444c41 100644
--- a/collects/tests/html/test.ss
+++ b/collects/tests/html/test.rkt
@@ -1,6 +1,6 @@
-#lang scheme
-(require schemeunit
- schemeunit/text-ui
+#lang racket
+(require rktunit
+ rktunit/text-ui
net/url
(prefix-in h: html)
(prefix-in x: xml))
diff --git a/collects/tests/info.ss b/collects/tests/info.rkt
similarity index 94%
rename from collects/tests/info.ss
rename to collects/tests/info.rkt
index 1493f0a44b..a9c9912080 100644
--- a/collects/tests/info.ss
+++ b/collects/tests/info.rkt
@@ -15,13 +15,13 @@
"mred"
"mysterx"
"mzcom"
- "mzscheme"
+ "racket"
"plai"
"planet"
"plot"
"profj"
"r6rs"
- "schemeunit"
+ "rktunit"
"srfi"
"srpersist"
"stepper"
diff --git a/collects/tests/lazy/lang.ss b/collects/tests/lazy/lang.rkt
similarity index 100%
rename from collects/tests/lazy/lang.ss
rename to collects/tests/lazy/lang.rkt
diff --git a/collects/tests/lazy/main.ss b/collects/tests/lazy/main.rkt
similarity index 100%
rename from collects/tests/lazy/main.ss
rename to collects/tests/lazy/main.rkt
diff --git a/collects/tests/lazy/promise.ss b/collects/tests/lazy/promise.rkt
similarity index 100%
rename from collects/tests/lazy/promise.ss
rename to collects/tests/lazy/promise.rkt
diff --git a/collects/tests/macro-debugger/all-tests.ss b/collects/tests/macro-debugger/all-tests.rkt
similarity index 95%
rename from collects/tests/macro-debugger/all-tests.ss
rename to collects/tests/macro-debugger/all-tests.rkt
index 9dd0ec8908..0d2ece8a7b 100644
--- a/collects/tests/macro-debugger/all-tests.ss
+++ b/collects/tests/macro-debugger/all-tests.rkt
@@ -1,6 +1,6 @@
#lang scheme/base
-(require schemeunit
- schemeunit/gui)
+(require rktunit
+ rktunit/gui)
(require macro-debugger/model/debug
"gentest-framework.ss"
"gentests.ss"
diff --git a/collects/tests/macro-debugger/gentest-framework.ss b/collects/tests/macro-debugger/gentest-framework.rkt
similarity index 100%
rename from collects/tests/macro-debugger/gentest-framework.ss
rename to collects/tests/macro-debugger/gentest-framework.rkt
diff --git a/collects/tests/macro-debugger/gentests.ss b/collects/tests/macro-debugger/gentests.rkt
similarity index 99%
rename from collects/tests/macro-debugger/gentests.ss
rename to collects/tests/macro-debugger/gentests.rkt
index 760ba14f54..bcf9c2f47c 100644
--- a/collects/tests/macro-debugger/gentests.ss
+++ b/collects/tests/macro-debugger/gentests.rkt
@@ -1,5 +1,5 @@
#lang scheme/base
-(require schemeunit)
+(require rktunit)
(require macro-debugger/model/debug
macro-debugger/model/stx-util
"gentest-framework.ss"
diff --git a/collects/tests/macro-debugger/gui-tests.ss b/collects/tests/macro-debugger/gui-tests.rkt
similarity index 100%
rename from collects/tests/macro-debugger/gui-tests.ss
rename to collects/tests/macro-debugger/gui-tests.rkt
diff --git a/collects/tests/macro-debugger/test-setup.ss b/collects/tests/macro-debugger/test-setup.rkt
similarity index 100%
rename from collects/tests/macro-debugger/test-setup.ss
rename to collects/tests/macro-debugger/test-setup.rkt
diff --git a/collects/tests/macro-debugger/tests/collects.ss b/collects/tests/macro-debugger/tests/collects.rkt
similarity index 99%
rename from collects/tests/macro-debugger/tests/collects.ss
rename to collects/tests/macro-debugger/tests/collects.rkt
index 9e1c9487db..ee70b2650a 100644
--- a/collects/tests/macro-debugger/tests/collects.ss
+++ b/collects/tests/macro-debugger/tests/collects.rkt
@@ -1,6 +1,6 @@
#lang scheme/base
-(require schemeunit
- schemeunit/gui)
+(require rktunit
+ rktunit/gui)
(require macro-debugger/model/debug
scheme/path
scheme/gui)
diff --git a/collects/tests/macro-debugger/tests/hiding.ss b/collects/tests/macro-debugger/tests/hiding.rkt
similarity index 99%
rename from collects/tests/macro-debugger/tests/hiding.ss
rename to collects/tests/macro-debugger/tests/hiding.rkt
index de6d130e50..b3f4a54a54 100644
--- a/collects/tests/macro-debugger/tests/hiding.ss
+++ b/collects/tests/macro-debugger/tests/hiding.rkt
@@ -1,5 +1,5 @@
#lang scheme/base
-(require schemeunit)
+(require rktunit)
(require macro-debugger/model/debug
"../test-setup.ss")
(provide specialized-hiding-tests)
diff --git a/collects/tests/macro-debugger/tests/policy.ss b/collects/tests/macro-debugger/tests/policy.rkt
similarity index 98%
rename from collects/tests/macro-debugger/tests/policy.ss
rename to collects/tests/macro-debugger/tests/policy.rkt
index 0069e0aed5..57f6cab63c 100644
--- a/collects/tests/macro-debugger/tests/policy.ss
+++ b/collects/tests/macro-debugger/tests/policy.rkt
@@ -1,5 +1,5 @@
#lang scheme/base
-(require schemeunit)
+(require rktunit)
(require macro-debugger/model/debug
"../test-setup.ss")
(provide policy-tests)
diff --git a/collects/tests/macro-debugger/tests/regression.ss b/collects/tests/macro-debugger/tests/regression.rkt
similarity index 99%
rename from collects/tests/macro-debugger/tests/regression.ss
rename to collects/tests/macro-debugger/tests/regression.rkt
index 8c208391b7..fb0f9d9004 100644
--- a/collects/tests/macro-debugger/tests/regression.ss
+++ b/collects/tests/macro-debugger/tests/regression.rkt
@@ -1,5 +1,5 @@
#lang scheme/base
-(require schemeunit)
+(require rktunit)
(require macro-debugger/model/debug
macro-debugger/model/steps
"../test-setup.ss")
diff --git a/collects/tests/macro-debugger/tests/syntax-basic.ss b/collects/tests/macro-debugger/tests/syntax-basic.rkt
similarity index 100%
rename from collects/tests/macro-debugger/tests/syntax-basic.ss
rename to collects/tests/macro-debugger/tests/syntax-basic.rkt
diff --git a/collects/tests/macro-debugger/tests/syntax-errors.ss b/collects/tests/macro-debugger/tests/syntax-errors.rkt
similarity index 100%
rename from collects/tests/macro-debugger/tests/syntax-errors.ss
rename to collects/tests/macro-debugger/tests/syntax-errors.rkt
diff --git a/collects/tests/macro-debugger/tests/syntax-macros.ss b/collects/tests/macro-debugger/tests/syntax-macros.rkt
similarity index 100%
rename from collects/tests/macro-debugger/tests/syntax-macros.ss
rename to collects/tests/macro-debugger/tests/syntax-macros.rkt
diff --git a/collects/tests/macro-debugger/tests/syntax-modules.ss b/collects/tests/macro-debugger/tests/syntax-modules.rkt
similarity index 100%
rename from collects/tests/macro-debugger/tests/syntax-modules.ss
rename to collects/tests/macro-debugger/tests/syntax-modules.rkt
diff --git a/collects/tests/match/examples.ss b/collects/tests/match/examples.rkt
similarity index 99%
rename from collects/tests/match/examples.ss
rename to collects/tests/match/examples.rkt
index bbb4f1643f..753011c9d6 100644
--- a/collects/tests/match/examples.ss
+++ b/collects/tests/match/examples.rkt
@@ -6,7 +6,7 @@
(for-syntax scheme/base)
(prefix-in m: mzlib/match)
(only-in srfi/13 string-contains)
- schemeunit)
+ rktunit)
(define-syntax (comp stx)
(syntax-case stx ()
diff --git a/collects/tests/match/match-tests.ss b/collects/tests/match/match-tests.rkt
similarity index 99%
rename from collects/tests/match/match-tests.ss
rename to collects/tests/match/match-tests.rkt
index 0f480701ab..a575fb631f 100644
--- a/collects/tests/match/match-tests.ss
+++ b/collects/tests/match/match-tests.rkt
@@ -1,5 +1,5 @@
(module match-tests mzscheme
- (require mzlib/match schemeunit)
+ (require mzlib/match rktunit)
(provide match-tests)
diff --git a/collects/tests/match/other-plt-tests.ss b/collects/tests/match/other-plt-tests.rkt
similarity index 99%
rename from collects/tests/match/other-plt-tests.ss
rename to collects/tests/match/other-plt-tests.rkt
index 5054c49d75..9026ce05f8 100644
--- a/collects/tests/match/other-plt-tests.ss
+++ b/collects/tests/match/other-plt-tests.rkt
@@ -1,6 +1,6 @@
(module other-plt-tests mzscheme
- (require schemeunit net/uri-codec mzlib/pregexp mzlib/plt-match
+ (require rktunit net/uri-codec mzlib/pregexp mzlib/plt-match
mzlib/list mzlib/etc)
(define-struct shape (color))
diff --git a/collects/tests/match/other-tests.ss b/collects/tests/match/other-tests.rkt
similarity index 99%
rename from collects/tests/match/other-tests.ss
rename to collects/tests/match/other-tests.rkt
index a1a1c857c2..27db39ff3a 100644
--- a/collects/tests/match/other-tests.ss
+++ b/collects/tests/match/other-tests.rkt
@@ -1,5 +1,5 @@
(module other-tests mzscheme
- (require mzlib/match schemeunit)
+ (require mzlib/match rktunit)
(provide other-tests)
diff --git a/collects/tests/match/plt-match-tests.ss b/collects/tests/match/plt-match-tests.rkt
similarity index 99%
rename from collects/tests/match/plt-match-tests.ss
rename to collects/tests/match/plt-match-tests.rkt
index 64ed34e595..c1eb29f9f4 100644
--- a/collects/tests/match/plt-match-tests.ss
+++ b/collects/tests/match/plt-match-tests.rkt
@@ -2,7 +2,7 @@
(require (for-syntax scheme/base)
"match-tests.ss" "other-plt-tests.ss" "other-tests.ss" "examples.ss"
- schemeunit schemeunit/text-ui)
+ rktunit rktunit/text-ui)
(require mzlib/plt-match)
diff --git a/collects/tests/mred/auto.rkt b/collects/tests/mred/auto.rkt
new file mode 100644
index 0000000000..8f37aef12c
--- /dev/null
+++ b/collects/tests/mred/auto.rkt
@@ -0,0 +1,5 @@
+
+(load-relative "editor.rkt")
+(load-relative "paramz.rkt")
+(load-relative "dc.rkt")
+(load-relative "windowing.rkt")
diff --git a/collects/tests/mred/auto.ss b/collects/tests/mred/auto.ss
deleted file mode 100644
index c90f3e5988..0000000000
--- a/collects/tests/mred/auto.ss
+++ /dev/null
@@ -1,5 +0,0 @@
-
-(load-relative "editor.ss")
-(load-relative "paramz.ss")
-(load-relative "dc.ss")
-(load-relative "windowing.ss")
diff --git a/collects/tests/mred/blits.ss b/collects/tests/mred/blits.rkt
similarity index 100%
rename from collects/tests/mred/blits.ss
rename to collects/tests/mred/blits.rkt
diff --git a/collects/tests/mred/dc.ss b/collects/tests/mred/dc.rkt
similarity index 99%
rename from collects/tests/mred/dc.ss
rename to collects/tests/mred/dc.rkt
index 217f14e3a1..064603f23e 100644
--- a/collects/tests/mred/dc.ss
+++ b/collects/tests/mred/dc.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; DC Tests ;;
diff --git a/collects/tests/mred/draw.ss b/collects/tests/mred/draw.rkt
similarity index 100%
rename from collects/tests/mred/draw.ss
rename to collects/tests/mred/draw.rkt
diff --git a/collects/tests/mred/editor.ss b/collects/tests/mred/editor.rkt
similarity index 99%
rename from collects/tests/mred/editor.ss
rename to collects/tests/mred/editor.rkt
index 1e235a0d01..e9219151c0 100644
--- a/collects/tests/mred/editor.ss
+++ b/collects/tests/mred/editor.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Editor Tests ;;
diff --git a/collects/tests/mred/gui-main.ss b/collects/tests/mred/gui-main.rkt
similarity index 100%
rename from collects/tests/mred/gui-main.ss
rename to collects/tests/mred/gui-main.rkt
diff --git a/collects/tests/mred/gui.ss b/collects/tests/mred/gui.rkt
similarity index 62%
rename from collects/tests/mred/gui.ss
rename to collects/tests/mred/gui.rkt
index 1125a133c5..1cc35d6ee7 100644
--- a/collects/tests/mred/gui.ss
+++ b/collects/tests/mred/gui.rkt
@@ -1,4 +1,4 @@
-(let ([f (load-relative "gui-main.ss")])
+(let ([f (load-relative "gui-main.rkt")])
(thread
(lambda ()
(f "New" "Save" mred:console-frame%))))
diff --git a/collects/tests/mred/item.ss b/collects/tests/mred/item.rkt
similarity index 100%
rename from collects/tests/mred/item.ss
rename to collects/tests/mred/item.rkt
diff --git a/collects/tests/mred/loadtest.ss b/collects/tests/mred/loadtest.rkt
similarity index 75%
rename from collects/tests/mred/loadtest.ss
rename to collects/tests/mred/loadtest.rkt
index d60140522f..117c1de3ae 100644
--- a/collects/tests/mred/loadtest.ss
+++ b/collects/tests/mred/loadtest.rkt
@@ -2,4 +2,4 @@
(unless (with-handlers ([exn:fail? (lambda (x) #f)])
(namespace-variable-binding 'SECTION)
#t)
- (load-relative "testing.ss"))
+ (load-relative "testing.rkt"))
diff --git a/collects/tests/mred/mem.ss b/collects/tests/mred/mem.rkt
similarity index 100%
rename from collects/tests/mred/mem.ss
rename to collects/tests/mred/mem.rkt
diff --git a/collects/tests/mred/paramz.ss b/collects/tests/mred/paramz.rkt
similarity index 98%
rename from collects/tests/mred/paramz.ss
rename to collects/tests/mred/paramz.rkt
index a74786bfe9..e78265adf4 100644
--- a/collects/tests/mred/paramz.ss
+++ b/collects/tests/mred/paramz.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Yield Tests ;;
diff --git a/collects/tests/mred/png.ss b/collects/tests/mred/png.rkt
similarity index 100%
rename from collects/tests/mred/png.ss
rename to collects/tests/mred/png.rkt
diff --git a/collects/tests/mred/random.ss b/collects/tests/mred/random.rkt
similarity index 100%
rename from collects/tests/mred/random.ss
rename to collects/tests/mred/random.rkt
diff --git a/collects/tests/mred/showkey.ss b/collects/tests/mred/showkey.rkt
similarity index 100%
rename from collects/tests/mred/showkey.ss
rename to collects/tests/mred/showkey.rkt
diff --git a/collects/tests/mred/sixlib.ss b/collects/tests/mred/sixlib.rkt
similarity index 100%
rename from collects/tests/mred/sixlib.ss
rename to collects/tests/mred/sixlib.rkt
diff --git a/collects/tests/mred/test-editor-admin.ss b/collects/tests/mred/test-editor-admin.rkt
similarity index 100%
rename from collects/tests/mred/test-editor-admin.ss
rename to collects/tests/mred/test-editor-admin.rkt
diff --git a/collects/tests/mred/testing.ss b/collects/tests/mred/testing.rkt
similarity index 100%
rename from collects/tests/mred/testing.ss
rename to collects/tests/mred/testing.rkt
diff --git a/collects/tests/mred/text-scale.ss b/collects/tests/mred/text-scale.rkt
similarity index 100%
rename from collects/tests/mred/text-scale.ss
rename to collects/tests/mred/text-scale.rkt
diff --git a/collects/tests/mred/windowing.ss b/collects/tests/mred/windowing.rkt
similarity index 99%
rename from collects/tests/mred/windowing.ss
rename to collects/tests/mred/windowing.rkt
index 6cb61eeb2e..6bda22354c 100644
--- a/collects/tests/mred/windowing.ss
+++ b/collects/tests/mred/windowing.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(define shorter? #t)
diff --git a/collects/tests/mred/wxme-doc-random.ss b/collects/tests/mred/wxme-doc-random.rkt
similarity index 100%
rename from collects/tests/mred/wxme-doc-random.ss
rename to collects/tests/mred/wxme-doc-random.rkt
diff --git a/collects/tests/mred/wxme-random.ss b/collects/tests/mred/wxme-random.rkt
similarity index 100%
rename from collects/tests/mred/wxme-random.ss
rename to collects/tests/mred/wxme-random.rkt
diff --git a/collects/tests/mred/wxme.ss b/collects/tests/mred/wxme.rkt
similarity index 100%
rename from collects/tests/mred/wxme.ss
rename to collects/tests/mred/wxme.rkt
diff --git a/collects/tests/mysterx/dhtmltests.ss b/collects/tests/mysterx/dhtmltests.rkt
similarity index 100%
rename from collects/tests/mysterx/dhtmltests.ss
rename to collects/tests/mysterx/dhtmltests.rkt
diff --git a/collects/tests/mysterx/mystests.ss b/collects/tests/mysterx/mystests.rkt
similarity index 100%
rename from collects/tests/mysterx/mystests.ss
rename to collects/tests/mysterx/mystests.rkt
diff --git a/collects/tests/mzcom/test.ss b/collects/tests/mzcom/test.rkt
similarity index 100%
rename from collects/tests/mzcom/test.ss
rename to collects/tests/mzcom/test.rkt
diff --git a/collects/tests/mzscheme/all.ss b/collects/tests/mzscheme/all.ss
deleted file mode 100644
index b85c0a48de..0000000000
--- a/collects/tests/mzscheme/all.ss
+++ /dev/null
@@ -1,9 +0,0 @@
-
-(load-relative "loadtest.ss")
-(load-relative "mz-tests.ss")
-(load-relative "scheme-tests.ss")
-(load-relative "mzlib-tests.ss")
-(load-relative "syntax-tests.ss")
-(load-in-sandbox "version.ss")
-(load-in-sandbox "foreign-test.ss")
-(load-in-sandbox "uni-norm.ss")
diff --git a/collects/tests/mzscheme/embed-me11.ss b/collects/tests/mzscheme/embed-me11.ss
deleted file mode 100644
index f3ab6ee9f7..0000000000
--- a/collects/tests/mzscheme/embed-me11.ss
+++ /dev/null
@@ -1,2 +0,0 @@
-#reader(lib "embed-me11-rd.ss" "tests" "mzscheme")
-"It goes to ~a!\n"
diff --git a/collects/tests/mzscheme/mz-tests.ss b/collects/tests/mzscheme/mz-tests.ss
deleted file mode 100644
index f6a1f16a8d..0000000000
--- a/collects/tests/mzscheme/mz-tests.ss
+++ /dev/null
@@ -1,42 +0,0 @@
-
-(load-relative "loadtest.ss")
-
-(load-relative "basic.ss")
-(load-relative "unicode.ss")
-(load-relative "rx.ss")
-(load-relative "read.ss")
-(load-relative "macro.ss")
-(load-relative "syntax.ss")
-(load-relative "procs.ss")
-(load-relative "stx.ss")
-(load-relative "module.ss")
-(load-relative "number.ss")
-(load-relative "unsafe.ss")
-(load-relative "object.ss")
-(load-relative "struct.ss")
-(load-relative "unit.ss")
-(load-relative "unitsig.ss")
-(load-relative "thread.ss")
-(load-relative "logger.ss")
-(load-relative "sync.ss")
-(load-relative "deep.ss")
-(load-relative "contmark.ss")
-(load-relative "prompt.ss")
-(load-relative "will.ss")
-(load-relative "namespac.ss")
-(load-relative "modprot.ss")
-(load-relative "chaperone.ss")
-(unless (or building-flat-tests? in-drscheme?)
- (load-relative "param.ss"))
-(load-relative "port.ss")
-(load-relative "file.ss")
-(load-relative "path.ss")
-(unless (or building-flat-tests? in-drscheme?)
- (load-relative "optimize.ss"))
-(unless building-flat-tests?
- (load-relative "name.ss"))
-
-;; Ok, so this isn't really all of them. Here are more:
-; thrport.ss
-
-; See also README
diff --git a/collects/tests/mzscheme/mzlib-tests.ss b/collects/tests/mzscheme/mzlib-tests.ss
deleted file mode 100644
index 348484968b..0000000000
--- a/collects/tests/mzscheme/mzlib-tests.ss
+++ /dev/null
@@ -1,31 +0,0 @@
-
-; Test MzLib
-; See also pptest.ss and ztest.ss
-
-(load-relative "loadtest.ss")
-(load-in-sandbox "mpair.ss")
-(load-in-sandbox "etc.ss")
-(load-in-sandbox "structlib.ss")
-(load-in-sandbox "async-channel.ss")
-(load-in-sandbox "restart.ss")
-(load-in-sandbox "string-mzlib.ss")
-(load-in-sandbox "pathlib.ss")
-(load-in-sandbox "filelib.ss")
-(load-in-sandbox "portlib.ss")
-(load-in-sandbox "threadlib.ss")
-(load-in-sandbox "set.ss")
-(load-in-sandbox "date.ss")
-(load-in-sandbox "compat.ss")
-(load-in-sandbox "cmdline.ss")
-(load-in-sandbox "pconvert.ss")
-(load-in-sandbox "pretty.ss")
-(load-in-sandbox "control.ss")
-(load-in-sandbox "serialize.ss")
-(load-in-sandbox "package.ss")
-(load-in-sandbox "contract-mzlib-test.ss")
-(load-in-sandbox "sandbox.ss")
-(load-in-sandbox "shared.ss")
-(load-in-sandbox "kw.ss")
-(load-in-sandbox "macrolib.ss")
-
-(report-errs)
diff --git a/collects/tests/mzscheme/mzq.ss b/collects/tests/mzscheme/mzq.ss
deleted file mode 100644
index 6158af2c2c..0000000000
--- a/collects/tests/mzscheme/mzq.ss
+++ /dev/null
@@ -1,3 +0,0 @@
-
-(define quiet-load "mz-tests.ss")
-(load-relative "quiet.ss")
diff --git a/collects/tests/mzscheme/scheme-tests.ss b/collects/tests/mzscheme/scheme-tests.ss
deleted file mode 100644
index 937869d8e7..0000000000
--- a/collects/tests/mzscheme/scheme-tests.ss
+++ /dev/null
@@ -1,12 +0,0 @@
-
-(load-relative "loadtest.ss")
-
-(load-in-sandbox "for.ss")
-(load-in-sandbox "list.ss")
-(load-in-sandbox "math.ss")
-(load-in-sandbox "vector.ss")
-(load-in-sandbox "function.ss")
-(load-in-sandbox "dict.ss")
-(load-in-sandbox "contract-test.ss")
-(load-in-sandbox "fixnum.ss")
-
diff --git a/collects/tests/mzscheme/syntax-tests.ss b/collects/tests/mzscheme/syntax-tests.ss
deleted file mode 100644
index 31142e7b76..0000000000
--- a/collects/tests/mzscheme/syntax-tests.ss
+++ /dev/null
@@ -1,9 +0,0 @@
-(load-relative "loadtest.ss")
-
-(load-in-sandbox "moddep.ss")
-(load-in-sandbox "boundmap-test.ss")
-(load-in-sandbox "id-table-test.ss")
-(load-in-sandbox "cm.ss")
-(load-in-sandbox "module-reader.ss")
-
-(report-errs)
diff --git a/collects/tests/mzscheme/ttt/uinc4.ss b/collects/tests/mzscheme/ttt/uinc4.ss
deleted file mode 100644
index 75fc25d642..0000000000
--- a/collects/tests/mzscheme/ttt/uinc4.ss
+++ /dev/null
@@ -1,5 +0,0 @@
-
-(define also-unused 'ok)
-
-(include (build-path up "uinc.ss"))
-
diff --git a/collects/tests/mzscheme/uinc3.ss b/collects/tests/mzscheme/uinc3.ss
deleted file mode 100644
index 6016697b7d..0000000000
--- a/collects/tests/mzscheme/uinc3.ss
+++ /dev/null
@@ -1,7 +0,0 @@
-
-(define unused 'hello)
-
-(include (build-path "ttt" "uinc4.ss"))
-
-
-
diff --git a/collects/tests/net/cgi.ss b/collects/tests/net/cgi.rkt
similarity index 100%
rename from collects/tests/net/cgi.ss
rename to collects/tests/net/cgi.rkt
diff --git a/collects/tests/net/cookie.ss b/collects/tests/net/cookie.rkt
similarity index 92%
rename from collects/tests/net/cookie.ss
rename to collects/tests/net/cookie.rkt
index 601eb3d71f..57200a5927 100644
--- a/collects/tests/net/cookie.ss
+++ b/collects/tests/net/cookie.rkt
@@ -19,12 +19,12 @@
(syntax-rules ()
[(o/* x) x]
[(o/* x f g ...) (f (o/* x g ...))]))
-
+
(define (tests)
-
+
;; test the most basic functionality
(cookie-test (λ (x) x) "a=b; Version=1")
-
+
;; test each modifier individually
(cookie-test (RC cookie:add-comment "set+a+to+b")
"a=b; Comment=set+a+to+b; Version=1")
@@ -54,7 +54,7 @@
"a=b; Version=1")
(cookie-test (RC cookie:version 12)
"a=b; Version=12")
-
+
;; test combinations
(cookie-test (o (RC cookie:add-comment "set+a+to+b")
(RC cookie:add-domain ".example.net"))
@@ -66,7 +66,7 @@
(RC cookie:version 10)
(RC cookie:add-max-age 20))
"a=b; Max-Age=20; Path=\"/whatever/wherever/\"; Version=10")
-
+
;; test error cases
(let ()
(define-syntax cookie-error-test
@@ -78,7 +78,18 @@
(cookie-error-test (RC cookie:add-domain "doesntstartwithadot.example.com"))
(cookie-error-test (RC cookie:add-domain "bad domain.com"))
(cookie-error-test (RC cookie:add-domain ".bad-domain;com")))
-
+
+ ; cookie value
+ (test
+ (cookie-value? "value")
+ (cookie-value? "(")
+ (cookie-value? "!")
+ (cookie-value? ")")
+ (cookie-value? ")!")
+ (cookie-value? "(!")
+ (cookie-value? "(!)")
+ (cookie-value? "!)"))
+
)
-
+
(test do (tests)))
diff --git a/collects/tests/net/encoders.ss b/collects/tests/net/encoders.rkt
similarity index 95%
rename from collects/tests/net/encoders.ss
rename to collects/tests/net/encoders.rkt
index 3d06130db2..b32bfc8b01 100644
--- a/collects/tests/net/encoders.ss
+++ b/collects/tests/net/encoders.rkt
@@ -2,7 +2,7 @@
(require net/base64 net/qp tests/eli-tester)
(define tricky-strings
- (let ([dir (collection-path "tests" "mzscheme")])
+ (let ([dir (collection-path "tests" "racket")])
(list (make-bytes 200 32)
(make-bytes 200 9)
(make-bytes 200 (char->integer #\x))
@@ -12,12 +12,12 @@
(make-bytes 204 (char->integer #\x))
(list->bytes (for/list ([i (in-range 256)]) i))
;; Something that doesn't end with a LF:
- (bytes-append (with-input-from-file (build-path dir "net.ss")
+ (bytes-append (with-input-from-file (build-path dir "net.rkt")
(lambda () (read-bytes 500)))
#"xxx")
;; CRLF:
(regexp-replace #rx#"\r?\n"
- (with-input-from-file (build-path dir "net.ss")
+ (with-input-from-file (build-path dir "net.rkt")
(lambda () (read-bytes 500)))
#"\r\n"))))
@@ -55,13 +55,13 @@
(open-input-bytes tricky-string)
line-rx max-w))
tricky-strings)
- (let* ([dir (collection-path "tests" "mzscheme")]
+ (let* ([dir (collection-path "tests" "racket")]
[files (filter-map
(lambda (f)
;; check 1/4 of the files, randomly
(let ([p (build-path dir f)])
(and (zero? (random 4))
- (not (regexp-match #rx"^flat.*\\.ss$"
+ (not (regexp-match #rx"^flat.*\\.rkt$"
(path-element->string f)))
(file-exists? p)
p)))
diff --git a/collects/tests/net/head.ss b/collects/tests/net/head.rkt
similarity index 100%
rename from collects/tests/net/head.ss
rename to collects/tests/net/head.rkt
diff --git a/collects/tests/net/main.ss b/collects/tests/net/main.rkt
similarity index 100%
rename from collects/tests/net/main.ss
rename to collects/tests/net/main.rkt
diff --git a/collects/tests/net/uri-codec.ss b/collects/tests/net/uri-codec.rkt
similarity index 100%
rename from collects/tests/net/uri-codec.ss
rename to collects/tests/net/uri-codec.rkt
diff --git a/collects/tests/net/url.ss b/collects/tests/net/url.rkt
similarity index 100%
rename from collects/tests/net/url.ss
rename to collects/tests/net/url.rkt
diff --git a/collects/tests/plai/datatype.ss b/collects/tests/plai/datatype.rkt
similarity index 100%
rename from collects/tests/plai/datatype.ss
rename to collects/tests/plai/datatype.rkt
diff --git a/collects/tests/plai/gc/bad-collectors/no-collection-collector.ss b/collects/tests/plai/gc/bad-collectors/no-collection-collector.rkt
similarity index 100%
rename from collects/tests/plai/gc/bad-collectors/no-collection-collector.ss
rename to collects/tests/plai/gc/bad-collectors/no-collection-collector.rkt
diff --git a/collects/tests/plai/gc/bad-mutators/mut-1.ss b/collects/tests/plai/gc/bad-mutators/mut-1.rkt
similarity index 100%
rename from collects/tests/plai/gc/bad-mutators/mut-1.ss
rename to collects/tests/plai/gc/bad-mutators/mut-1.rkt
diff --git a/collects/tests/plai/gc/bad-mutators/mutator0.ss b/collects/tests/plai/gc/bad-mutators/mutator0.rkt
similarity index 100%
rename from collects/tests/plai/gc/bad-mutators/mutator0.ss
rename to collects/tests/plai/gc/bad-mutators/mutator0.rkt
diff --git a/collects/tests/plai/gc/bad-mutators/mutator1.ss b/collects/tests/plai/gc/bad-mutators/mutator1.rkt
similarity index 100%
rename from collects/tests/plai/gc/bad-mutators/mutator1.ss
rename to collects/tests/plai/gc/bad-mutators/mutator1.rkt
diff --git a/collects/tests/plai/gc/bad-mutators/mutator2.ss b/collects/tests/plai/gc/bad-mutators/mutator2.rkt
similarity index 100%
rename from collects/tests/plai/gc/bad-mutators/mutator2.ss
rename to collects/tests/plai/gc/bad-mutators/mutator2.rkt
diff --git a/collects/tests/plai/gc/bad-mutators/mutator3.ss b/collects/tests/plai/gc/bad-mutators/mutator3.rkt
similarity index 100%
rename from collects/tests/plai/gc/bad-mutators/mutator3.ss
rename to collects/tests/plai/gc/bad-mutators/mutator3.rkt
diff --git a/collects/tests/plai/gc/bad-mutators/mutator5.ss b/collects/tests/plai/gc/bad-mutators/mutator5.rkt
similarity index 100%
rename from collects/tests/plai/gc/bad-mutators/mutator5.ss
rename to collects/tests/plai/gc/bad-mutators/mutator5.rkt
diff --git a/collects/tests/plai/gc/bad-mutators/void-app.ss b/collects/tests/plai/gc/bad-mutators/void-app.rkt
similarity index 100%
rename from collects/tests/plai/gc/bad-mutators/void-app.ss
rename to collects/tests/plai/gc/bad-mutators/void-app.rkt
diff --git a/collects/tests/plai/gc/good-collectors/good-collector.ss b/collects/tests/plai/gc/good-collectors/good-collector.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-collectors/good-collector.ss
rename to collects/tests/plai/gc/good-collectors/good-collector.rkt
diff --git a/collects/tests/plai/gc/good-collectors/trivial-collector.ss b/collects/tests/plai/gc/good-collectors/trivial-collector.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-collectors/trivial-collector.ss
rename to collects/tests/plai/gc/good-collectors/trivial-collector.rkt
diff --git a/collects/tests/plai/gc/good-mutators/andor.ss b/collects/tests/plai/gc/good-mutators/andor.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/andor.ss
rename to collects/tests/plai/gc/good-mutators/andor.rkt
diff --git a/collects/tests/plai/gc/good-mutators/app.ss b/collects/tests/plai/gc/good-mutators/app.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/app.ss
rename to collects/tests/plai/gc/good-mutators/app.rkt
diff --git a/collects/tests/plai/gc/good-mutators/bindings.ss b/collects/tests/plai/gc/good-mutators/bindings.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/bindings.ss
rename to collects/tests/plai/gc/good-mutators/bindings.rkt
diff --git a/collects/tests/plai/gc/good-mutators/by-val.ss b/collects/tests/plai/gc/good-mutators/by-val.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/by-val.ss
rename to collects/tests/plai/gc/good-mutators/by-val.rkt
diff --git a/collects/tests/plai/gc/good-mutators/case.ss b/collects/tests/plai/gc/good-mutators/case.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/case.ss
rename to collects/tests/plai/gc/good-mutators/case.rkt
diff --git a/collects/tests/plai/gc/good-mutators/circular.ss b/collects/tests/plai/gc/good-mutators/circular.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/circular.ss
rename to collects/tests/plai/gc/good-mutators/circular.rkt
diff --git a/collects/tests/plai/gc/good-mutators/classic-error.ss b/collects/tests/plai/gc/good-mutators/classic-error.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/classic-error.ss
rename to collects/tests/plai/gc/good-mutators/classic-error.rkt
diff --git a/collects/tests/plai/gc/good-mutators/closure-1.ss b/collects/tests/plai/gc/good-mutators/closure-1.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/closure-1.ss
rename to collects/tests/plai/gc/good-mutators/closure-1.rkt
diff --git a/collects/tests/plai/gc/good-mutators/closure-2.ss b/collects/tests/plai/gc/good-mutators/closure-2.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/closure-2.ss
rename to collects/tests/plai/gc/good-mutators/closure-2.rkt
diff --git a/collects/tests/plai/gc/good-mutators/cond.ss b/collects/tests/plai/gc/good-mutators/cond.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/cond.ss
rename to collects/tests/plai/gc/good-mutators/cond.rkt
diff --git a/collects/tests/plai/gc/good-mutators/else.ss b/collects/tests/plai/gc/good-mutators/else.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/else.ss
rename to collects/tests/plai/gc/good-mutators/else.rkt
diff --git a/collects/tests/plai/gc/good-mutators/empty-mutator.ss b/collects/tests/plai/gc/good-mutators/empty-mutator.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/empty-mutator.ss
rename to collects/tests/plai/gc/good-mutators/empty-mutator.rkt
diff --git a/collects/tests/plai/gc/good-mutators/gc-order.ss b/collects/tests/plai/gc/good-mutators/gc-order.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/gc-order.ss
rename to collects/tests/plai/gc/good-mutators/gc-order.rkt
diff --git a/collects/tests/plai/gc/good-mutators/global-roots.ss b/collects/tests/plai/gc/good-mutators/global-roots.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/global-roots.ss
rename to collects/tests/plai/gc/good-mutators/global-roots.rkt
diff --git a/collects/tests/plai/gc/good-mutators/imports.ss b/collects/tests/plai/gc/good-mutators/imports.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/imports.ss
rename to collects/tests/plai/gc/good-mutators/imports.rkt
diff --git a/collects/tests/plai/gc/good-mutators/kathi-bug-1.ss b/collects/tests/plai/gc/good-mutators/kathi-bug-1.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/kathi-bug-1.ss
rename to collects/tests/plai/gc/good-mutators/kathi-bug-1.rkt
diff --git a/collects/tests/plai/gc/good-mutators/modpath.ss b/collects/tests/plai/gc/good-mutators/modpath.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/modpath.ss
rename to collects/tests/plai/gc/good-mutators/modpath.rkt
diff --git a/collects/tests/plai/gc/good-mutators/mutator4.ss b/collects/tests/plai/gc/good-mutators/mutator4.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/mutator4.ss
rename to collects/tests/plai/gc/good-mutators/mutator4.rkt
diff --git a/collects/tests/plai/gc/good-mutators/mutator6.ss b/collects/tests/plai/gc/good-mutators/mutator6.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/mutator6.ss
rename to collects/tests/plai/gc/good-mutators/mutator6.rkt
diff --git a/collects/tests/plai/gc/good-mutators/mutator7.ss b/collects/tests/plai/gc/good-mutators/mutator7.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/mutator7.ss
rename to collects/tests/plai/gc/good-mutators/mutator7.rkt
diff --git a/collects/tests/plai/gc/good-mutators/names.ss b/collects/tests/plai/gc/good-mutators/names.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/names.ss
rename to collects/tests/plai/gc/good-mutators/names.rkt
diff --git a/collects/tests/plai/gc/good-mutators/proc-list.ss b/collects/tests/plai/gc/good-mutators/proc-list.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/proc-list.ss
rename to collects/tests/plai/gc/good-mutators/proc-list.rkt
diff --git a/collects/tests/plai/gc/good-mutators/repeat-test.ss b/collects/tests/plai/gc/good-mutators/repeat-test.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/repeat-test.ss
rename to collects/tests/plai/gc/good-mutators/repeat-test.rkt
diff --git a/collects/tests/plai/gc/good-mutators/student-1.ss b/collects/tests/plai/gc/good-mutators/student-1.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/student-1.ss
rename to collects/tests/plai/gc/good-mutators/student-1.rkt
diff --git a/collects/tests/plai/gc/good-mutators/tail-calls.ss b/collects/tests/plai/gc/good-mutators/tail-calls.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/tail-calls.ss
rename to collects/tests/plai/gc/good-mutators/tail-calls.rkt
diff --git a/collects/tests/plai/gc/good-mutators/test-framework.ss b/collects/tests/plai/gc/good-mutators/test-framework.rkt
similarity index 100%
rename from collects/tests/plai/gc/good-mutators/test-framework.ss
rename to collects/tests/plai/gc/good-mutators/test-framework.rkt
diff --git a/collects/tests/plai/gc/run-test.ss b/collects/tests/plai/gc/run-test.rkt
similarity index 100%
rename from collects/tests/plai/gc/run-test.ss
rename to collects/tests/plai/gc/run-test.rkt
diff --git a/collects/tests/plai/test-harness.ss b/collects/tests/plai/test-harness.rkt
similarity index 100%
rename from collects/tests/plai/test-harness.ss
rename to collects/tests/plai/test-harness.rkt
diff --git a/collects/tests/plai/test-random-mutator.ss b/collects/tests/plai/test-random-mutator.rkt
similarity index 99%
rename from collects/tests/plai/test-random-mutator.ss
rename to collects/tests/plai/test-random-mutator.rkt
index cffbc7c2dc..f5fb8059bc 100644
--- a/collects/tests/plai/test-random-mutator.ss
+++ b/collects/tests/plai/test-random-mutator.rkt
@@ -1,5 +1,5 @@
#lang scheme
-(require schemeunit
+(require rktunit
plai/random-mutator
scheme/runtime-path
;; test find-heap-values and save-random-mutator via the contract'd
diff --git a/collects/tests/plai/web.ss b/collects/tests/plai/web.rkt
similarity index 100%
rename from collects/tests/plai/web.ss
rename to collects/tests/plai/web.rkt
diff --git a/collects/tests/planet/cmdline-tool.ss b/collects/tests/planet/cmdline-tool.rkt
similarity index 100%
rename from collects/tests/planet/cmdline-tool.ss
rename to collects/tests/planet/cmdline-tool.rkt
diff --git a/collects/tests/planet/examples/dummy-module.ss b/collects/tests/planet/examples/dummy-module.rkt
similarity index 100%
rename from collects/tests/planet/examples/dummy-module.ss
rename to collects/tests/planet/examples/dummy-module.rkt
diff --git a/collects/tests/planet/examples/dummy-package/lang/reader.ss b/collects/tests/planet/examples/dummy-package/lang/reader.rkt
similarity index 100%
rename from collects/tests/planet/examples/dummy-package/lang/reader.ss
rename to collects/tests/planet/examples/dummy-package/lang/reader.rkt
diff --git a/collects/tests/planet/examples/dummy-package/main.ss b/collects/tests/planet/examples/dummy-package/main.rkt
similarity index 100%
rename from collects/tests/planet/examples/dummy-package/main.ss
rename to collects/tests/planet/examples/dummy-package/main.rkt
diff --git a/collects/tests/planet/lang.ss b/collects/tests/planet/lang.rkt
similarity index 100%
rename from collects/tests/planet/lang.ss
rename to collects/tests/planet/lang.rkt
diff --git a/collects/tests/planet/version.ss b/collects/tests/planet/version.rkt
similarity index 100%
rename from collects/tests/planet/version.ss
rename to collects/tests/planet/version.rkt
diff --git a/collects/tests/plot/run-tests.ss b/collects/tests/plot/run-tests.rkt
similarity index 100%
rename from collects/tests/plot/run-tests.ss
rename to collects/tests/plot/run-tests.rkt
diff --git a/collects/tests/profile/main.ss b/collects/tests/profile/main.rkt
similarity index 100%
rename from collects/tests/profile/main.ss
rename to collects/tests/profile/main.rkt
diff --git a/collects/tests/profile/topsort.ss b/collects/tests/profile/topsort.rkt
similarity index 100%
rename from collects/tests/profile/topsort.ss
rename to collects/tests/profile/topsort.rkt
diff --git a/collects/tests/mzscheme/.gitignore b/collects/tests/racket/.gitignore
similarity index 100%
rename from collects/tests/mzscheme/.gitignore
rename to collects/tests/racket/.gitignore
diff --git a/collects/tests/mzscheme/README b/collects/tests/racket/README
similarity index 100%
rename from collects/tests/mzscheme/README
rename to collects/tests/racket/README
diff --git a/collects/tests/mzscheme/advanced.ss b/collects/tests/racket/advanced.rkt
similarity index 100%
rename from collects/tests/mzscheme/advanced.ss
rename to collects/tests/racket/advanced.rkt
diff --git a/collects/tests/racket/all.rkt b/collects/tests/racket/all.rkt
new file mode 100644
index 0000000000..10f8b0c607
--- /dev/null
+++ b/collects/tests/racket/all.rkt
@@ -0,0 +1,9 @@
+
+(load-relative "loadtest.rkt")
+(load-relative "mz-tests.rkt")
+(load-relative "scheme-tests.rkt")
+(load-relative "mzlib-tests.rkt")
+(load-relative "syntax-tests.rkt")
+(load-in-sandbox "version.rkt")
+(load-in-sandbox "foreign-test.rkt")
+(load-in-sandbox "uni-norm.rkt")
diff --git a/collects/tests/mzscheme/async-channel.ss b/collects/tests/racket/async-channel.rkt
similarity index 98%
rename from collects/tests/mzscheme/async-channel.ss
rename to collects/tests/racket/async-channel.rkt
index f8eb83aaf7..98bda5747b 100644
--- a/collects/tests/mzscheme/async-channel.ss
+++ b/collects/tests/racket/async-channel.rkt
@@ -1,6 +1,6 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(require scheme/async-channel)
diff --git a/collects/tests/mzscheme/awk.ss b/collects/tests/racket/awk.rkt
similarity index 100%
rename from collects/tests/mzscheme/awk.ss
rename to collects/tests/racket/awk.rkt
diff --git a/collects/tests/mzscheme/basic.ss b/collects/tests/racket/basic.rkt
similarity index 99%
rename from collects/tests/mzscheme/basic.ss
rename to collects/tests/racket/basic.rkt
index 0027dd32ac..79abf4cb5f 100644
--- a/collects/tests/mzscheme/basic.ss
+++ b/collects/tests/racket/basic.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'basic)
diff --git a/collects/tests/mzscheme/beg-adv.ss b/collects/tests/racket/beg-adv.rkt
similarity index 100%
rename from collects/tests/mzscheme/beg-adv.ss
rename to collects/tests/racket/beg-adv.rkt
diff --git a/collects/tests/mzscheme/beg-bega.ss b/collects/tests/racket/beg-bega.rkt
similarity index 100%
rename from collects/tests/mzscheme/beg-bega.ss
rename to collects/tests/racket/beg-bega.rkt
diff --git a/collects/tests/mzscheme/beg-intm.ss b/collects/tests/racket/beg-intm.rkt
similarity index 100%
rename from collects/tests/mzscheme/beg-intm.ss
rename to collects/tests/racket/beg-intm.rkt
diff --git a/collects/tests/mzscheme/beg-intml.ss b/collects/tests/racket/beg-intml.rkt
similarity index 100%
rename from collects/tests/mzscheme/beg-intml.ss
rename to collects/tests/racket/beg-intml.rkt
diff --git a/collects/tests/mzscheme/bega-adv.ss b/collects/tests/racket/bega-adv.rkt
similarity index 100%
rename from collects/tests/mzscheme/bega-adv.ss
rename to collects/tests/racket/bega-adv.rkt
diff --git a/collects/tests/mzscheme/beginner-abbr.ss b/collects/tests/racket/beginner-abbr.rkt
similarity index 100%
rename from collects/tests/mzscheme/beginner-abbr.ss
rename to collects/tests/racket/beginner-abbr.rkt
diff --git a/collects/tests/mzscheme/beginner.ss b/collects/tests/racket/beginner.rkt
similarity index 100%
rename from collects/tests/mzscheme/beginner.ss
rename to collects/tests/racket/beginner.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/.gitignore b/collects/tests/racket/benchmarks/common/.gitignore
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/.gitignore
rename to collects/tests/racket/benchmarks/common/.gitignore
diff --git a/collects/tests/mzscheme/benchmarks/common/README.txt b/collects/tests/racket/benchmarks/common/README.txt
similarity index 76%
rename from collects/tests/mzscheme/benchmarks/common/README.txt
rename to collects/tests/racket/benchmarks/common/README.txt
index ab3f7585a4..a1b4bc7719 100644
--- a/collects/tests/mzscheme/benchmarks/common/README.txt
+++ b/collects/tests/racket/benchmarks/common/README.txt
@@ -1,7 +1,7 @@
-To run a benchmark, assuming you have `mzscheme' in your path:
- ./auto.ss ...
+To run a benchmark, assuming you have `racket' in your path:
+ ./auto.rkt ...
where names an implementation as one of
- mzscheme
+ racket
bigloo
chicken
gambit
@@ -15,7 +15,7 @@ or a benchmark as one of
or any of the above prefixed by "no-" to skip the corresponding
. To see a complete list of implementations
and benchmarks, run
- ./auto.ss --show
+ ./auto.rkt --show
Naming no implementation/benchmark causes a standard set of them to be
run (as reported by --show). Similarly, if the first named
@@ -39,12 +39,12 @@ Most bechmarks were obtained from
Marc Feeley
Files that end in ".sch" are supposed to be standard Scheme plus `time'.
-Files that end in ".ss" are MzScheme wrapper modules or helper scripts.
+Files that end in ".rkt" are Racket wrapper modules or helper scripts.
To build .sch directly with Gambit, Bigloo, or Chicken:
- mzscheme -qr mk-gambit.ss ; gsi -:m10000 .o1
- mzscheme -qr mk-bigloo.ss ;
- mzscheme -qr mk-chicken.ss ;
+ racket -qr mk-gambit.rkt ; gsi -:m10000 .o1
+ racket -qr mk-bigloo.rkt ;
+ racket -qr mk-chicken.rkt ;
Unpack "dynamic-input.txt.gz" if you want to run the "dynamic" benchmark,
-but the "auto.ss" script will do that for you.
+but the "auto.rkt" script will do that for you.
diff --git a/collects/tests/mzscheme/benchmarks/common/auto.ss b/collects/tests/racket/benchmarks/common/auto.rkt
similarity index 89%
rename from collects/tests/mzscheme/benchmarks/common/auto.ss
rename to collects/tests/racket/benchmarks/common/auto.rkt
index 783d5104b4..160259b01b 100755
--- a/collects/tests/mzscheme/benchmarks/common/auto.ss
+++ b/collects/tests/racket/benchmarks/common/auto.rkt
@@ -1,14 +1,14 @@
#!/bin/sh
#|
-exec mzscheme -qu "$0" ${1+"$@"}
+exec racket -qu "$0" ${1+"$@"}
|#
-;; See "tabulate.ss" for information on the output format
+;; See "tabulate.rkt" for information on the output format
(module auto scheme/base
(require (for-syntax scheme/base)
mzlib/process
- "cmdline.ss"
+ "cmdline.rkt"
mzlib/list
mzlib/compile
mzlib/inflate
@@ -37,14 +37,14 @@ exec mzscheme -qu "$0" ${1+"$@"}
(define (clean-up-o1 bm)
(delete-file (format "~a.o1" bm)))
- (define (mk-mzscheme bm) (void))
+ (define (mk-racket bm) (void))
#;
- (define (mk-mzscheme bm)
+ (define (mk-racket bm)
(unless (directory-exists? "compiled")
(make-directory "compiled"))
(parameterize ([current-namespace (make-base-namespace)]
[read-accept-reader #t])
- (let ([name (format "~a.ss" bm)])
+ (let ([name (format "~a.rkt" bm)])
(compile-file name
(build-path "compiled" (path-add-suffix name #".zo"))))))
@@ -59,7 +59,7 @@ exec mzscheme -qu "$0" ${1+"$@"}
(with-output-to-file (format "~a.scm" bm)
#:exists 'replace
(lambda ()
- (printf "(load \"r5rs-wrap.ss\")\n(load \"~a.sch\")\n" bm)))
+ (printf "(load \"r5rs-wrap.rkt\")\n(load \"~a.sch\")\n" bm)))
;; To get compilation time:
(parameterize ([current-namespace (make-base-empty-namespace)])
(namespace-require 'r5rs)
@@ -77,7 +77,7 @@ exec mzscheme -qu "$0" ${1+"$@"}
(when (file-exists? f)
(delete-file f))))
- (define (mk-mzscheme-tl bm)
+ (define (mk-racket-tl bm)
;; To get compilation time:
(parameterize ([current-namespace (make-base-namespace)])
(namespace-require 'scheme/base)
@@ -105,7 +105,7 @@ exec mzscheme -qu "$0" ${1+"$@"}
(define (mk-mzc bm)
(parameterize ([current-output-port (open-output-bytes)])
- (system (format "mzc ~a.ss" bm))))
+ (system (format "mzc ~a.rkt" bm))))
(define (clean-up-extension bm)
(delete-file (append-extension-suffix (symbol->string bm))))
@@ -258,7 +258,7 @@ exec mzscheme -qu "$0" ${1+"$@"}
(cadr m)
(or (cadddr m) #"0")))))
- (define (extract-mzscheme-times bm str)
+ (define (extract-racket-times bm str)
(let ([m (regexp-match #rx#"cpu time: ([0-9]+) real time: ([0-9]+) gc time: ([0-9]+)" str)])
(map bytes->number (cdr m))))
@@ -321,36 +321,36 @@ exec mzscheme -qu "$0" ${1+"$@"}
(define impls
(list
- (make-impl 'mzscheme
+ (make-impl 'racket
void
- mk-mzscheme
+ mk-racket
(lambda (bm)
- (system (format "mzscheme -u ~a.ss" bm)))
- extract-mzscheme-times
+ (system (format "racket -u ~a.rkt" bm)))
+ extract-racket-times
clean-up-zo
mutable-pair-progs)
(make-impl 'mz-old
void
- mk-mzscheme
+ mk-racket
(lambda (bm)
- (system (format "mz-old -u ~a.ss" bm)))
- extract-mzscheme-times
+ (system (format "mz-old -u ~a.rkt" bm)))
+ extract-racket-times
clean-up-zo
mutable-pair-progs)
- (make-impl 'mzschemecgc
+ (make-impl 'racketcgc
void
- mk-mzscheme
+ mk-racket
(lambda (bm)
- (system (format "mzschemecgc -u ~a.ss" bm)))
- extract-mzscheme-times
+ (system (format "racketcgc -u ~a.rkt" bm)))
+ extract-racket-times
clean-up-zo
mutable-pair-progs)
- (make-impl 'mzscheme3m
+ (make-impl 'racket3m
void
- mk-mzscheme
+ mk-racket
(lambda (bm)
- (system (format "mzscheme3m -u ~a.ss" bm)))
- extract-mzscheme-times
+ (system (format "racket3m -u ~a.rkt" bm)))
+ extract-racket-times
clean-up-zo
mutable-pair-progs)
(make-impl 'plt-r5rs
@@ -358,62 +358,62 @@ exec mzscheme -qu "$0" ${1+"$@"}
mk-plt-r5rs
(lambda (bm)
(system (format "plt-r5rs ~a.scm" bm)))
- extract-mzscheme-times
+ extract-racket-times
clean-up-plt-r5rs
null)
(make-impl 'mzc
void
mk-mzc
(lambda (bm)
- (system (format "mzscheme -mvqee '(load-extension \"~a\")' '(require ~a)'"
+ (system (format "racket -mvqee '(load-extension \"~a\")' '(require ~a)'"
(append-extension-suffix (symbol->string bm))
bm)))
- extract-mzscheme-times
+ extract-racket-times
clean-up-extension
(append '(takr takr2)
mutable-pair-progs))
- (make-impl 'mzscheme-j
+ (make-impl 'racket-j
void
- mk-mzscheme
+ mk-racket
(lambda (bm)
- (system (format "mzscheme -jqu ~a.ss" bm)))
- extract-mzscheme-times
+ (system (format "racket -jqu ~a.rkt" bm)))
+ extract-racket-times
clean-up-zo
mutable-pair-progs)
- (make-impl 'mzschemecgc-j
+ (make-impl 'racketcgc-j
void
- mk-mzscheme
+ mk-racket
(lambda (bm)
- (system (format "mzschemecgc -jqu ~a.ss" bm)))
- extract-mzscheme-times
+ (system (format "racketcgc -jqu ~a.rkt" bm)))
+ extract-racket-times
clean-up-zo
mutable-pair-progs)
- (make-impl 'mzschemecgc-tl
+ (make-impl 'racketcgc-tl
void
- mk-mzscheme-tl
+ mk-racket-tl
(lambda (bm)
- (system (format "mzschemecgc -qr compiled/~a.zo" bm)))
- extract-mzscheme-times
+ (system (format "racketcgc -qr compiled/~a.zo" bm)))
+ extract-racket-times
clean-up-zo
(append '(nucleic2)
mutable-pair-progs))
(make-impl 'chicken
void
- (run-mk "mk-chicken.ss")
+ (run-mk "mk-chicken.rkt")
run-exe
extract-chicken-times
clean-up-bin
'(scheme2 takr2))
(make-impl 'bigloo
void
- (run-mk "mk-bigloo.ss")
+ (run-mk "mk-bigloo.rkt")
run-exe
extract-bigloo-times
clean-up-bin
'(cpstack takr2))
(make-impl 'gambit
void
- (run-mk "mk-gambit.ss")
+ (run-mk "mk-gambit.rkt")
run-gambit-exe
extract-gambit-times
clean-up-o1
@@ -462,7 +462,7 @@ exec mzscheme -qu "$0" ${1+"$@"}
'(ctak))
))
- (define obsolte-impls '(mzscheme3m mzschemecgc mzscheme-j mzschemecgc-j mzschemecgc-tl mzc mz-old))
+ (define obsolte-impls '(racket3m racketcgc racket-j racketcgc-j racketcgc-tl mzc mz-old))
(define benchmarks
'(conform
diff --git a/collects/tests/mzscheme/benchmarks/common/bigloo-prelude.sch b/collects/tests/racket/benchmarks/common/bigloo-prelude.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/bigloo-prelude.sch
rename to collects/tests/racket/benchmarks/common/bigloo-prelude.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/browse.sch b/collects/tests/racket/benchmarks/common/browse.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/browse.sch
rename to collects/tests/racket/benchmarks/common/browse.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/cmdline.ss b/collects/tests/racket/benchmarks/common/cmdline.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/cmdline.ss
rename to collects/tests/racket/benchmarks/common/cmdline.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/conform.ss b/collects/tests/racket/benchmarks/common/conform.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/conform.ss
rename to collects/tests/racket/benchmarks/common/conform.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/conform.sch b/collects/tests/racket/benchmarks/common/conform.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/conform.sch
rename to collects/tests/racket/benchmarks/common/conform.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/cpstack.ss b/collects/tests/racket/benchmarks/common/cpstack.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/cpstack.ss
rename to collects/tests/racket/benchmarks/common/cpstack.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/cpstack.sch b/collects/tests/racket/benchmarks/common/cpstack.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/cpstack.sch
rename to collects/tests/racket/benchmarks/common/cpstack.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/ctak.ss b/collects/tests/racket/benchmarks/common/ctak.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/ctak.ss
rename to collects/tests/racket/benchmarks/common/ctak.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/ctak.sch b/collects/tests/racket/benchmarks/common/ctak.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/ctak.sch
rename to collects/tests/racket/benchmarks/common/ctak.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/dderiv.ss b/collects/tests/racket/benchmarks/common/dderiv.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/dderiv.ss
rename to collects/tests/racket/benchmarks/common/dderiv.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/dderiv.sch b/collects/tests/racket/benchmarks/common/dderiv.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/dderiv.sch
rename to collects/tests/racket/benchmarks/common/dderiv.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/deriv.ss b/collects/tests/racket/benchmarks/common/deriv.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/deriv.ss
rename to collects/tests/racket/benchmarks/common/deriv.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/deriv.sch b/collects/tests/racket/benchmarks/common/deriv.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/deriv.sch
rename to collects/tests/racket/benchmarks/common/deriv.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/destruct.ss b/collects/tests/racket/benchmarks/common/destruct.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/destruct.ss
rename to collects/tests/racket/benchmarks/common/destruct.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/destruct.sch b/collects/tests/racket/benchmarks/common/destruct.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/destruct.sch
rename to collects/tests/racket/benchmarks/common/destruct.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/div.ss b/collects/tests/racket/benchmarks/common/div.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/div.ss
rename to collects/tests/racket/benchmarks/common/div.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/div.sch b/collects/tests/racket/benchmarks/common/div.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/div.sch
rename to collects/tests/racket/benchmarks/common/div.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/dynamic-input.txt.gz b/collects/tests/racket/benchmarks/common/dynamic-input.txt.gz
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/dynamic-input.txt.gz
rename to collects/tests/racket/benchmarks/common/dynamic-input.txt.gz
diff --git a/collects/tests/mzscheme/benchmarks/common/dynamic.ss b/collects/tests/racket/benchmarks/common/dynamic.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/dynamic.ss
rename to collects/tests/racket/benchmarks/common/dynamic.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/dynamic.sch b/collects/tests/racket/benchmarks/common/dynamic.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/dynamic.sch
rename to collects/tests/racket/benchmarks/common/dynamic.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/dynamic2.ss b/collects/tests/racket/benchmarks/common/dynamic2.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/dynamic2.ss
rename to collects/tests/racket/benchmarks/common/dynamic2.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/dynamic2.sch b/collects/tests/racket/benchmarks/common/dynamic2.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/dynamic2.sch
rename to collects/tests/racket/benchmarks/common/dynamic2.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/earley.ss b/collects/tests/racket/benchmarks/common/earley.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/earley.ss
rename to collects/tests/racket/benchmarks/common/earley.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/earley.sch b/collects/tests/racket/benchmarks/common/earley.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/earley.sch
rename to collects/tests/racket/benchmarks/common/earley.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/fft.ss b/collects/tests/racket/benchmarks/common/fft.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/fft.ss
rename to collects/tests/racket/benchmarks/common/fft.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/fft.sch b/collects/tests/racket/benchmarks/common/fft.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/fft.sch
rename to collects/tests/racket/benchmarks/common/fft.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/gambit-prelude.sch b/collects/tests/racket/benchmarks/common/gambit-prelude.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/gambit-prelude.sch
rename to collects/tests/racket/benchmarks/common/gambit-prelude.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/graphs.ss b/collects/tests/racket/benchmarks/common/graphs.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/graphs.ss
rename to collects/tests/racket/benchmarks/common/graphs.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/graphs.sch b/collects/tests/racket/benchmarks/common/graphs.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/graphs.sch
rename to collects/tests/racket/benchmarks/common/graphs.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/guile-prelude.sch b/collects/tests/racket/benchmarks/common/guile-prelude.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/guile-prelude.sch
rename to collects/tests/racket/benchmarks/common/guile-prelude.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/index-template.html b/collects/tests/racket/benchmarks/common/index-template.html
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/index-template.html
rename to collects/tests/racket/benchmarks/common/index-template.html
diff --git a/collects/tests/mzscheme/benchmarks/common/input.txt b/collects/tests/racket/benchmarks/common/input.txt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/input.txt
rename to collects/tests/racket/benchmarks/common/input.txt
diff --git a/collects/tests/mzscheme/benchmarks/common/kanren.ss b/collects/tests/racket/benchmarks/common/kanren.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/kanren.ss
rename to collects/tests/racket/benchmarks/common/kanren.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/kanren.sch b/collects/tests/racket/benchmarks/common/kanren.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/kanren.sch
rename to collects/tests/racket/benchmarks/common/kanren.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/lattice.ss b/collects/tests/racket/benchmarks/common/lattice.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/lattice.ss
rename to collects/tests/racket/benchmarks/common/lattice.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/lattice.sch b/collects/tests/racket/benchmarks/common/lattice.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/lattice.sch
rename to collects/tests/racket/benchmarks/common/lattice.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/lattice2.ss b/collects/tests/racket/benchmarks/common/lattice2.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/lattice2.ss
rename to collects/tests/racket/benchmarks/common/lattice2.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/lattice2.sch b/collects/tests/racket/benchmarks/common/lattice2.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/lattice2.sch
rename to collects/tests/racket/benchmarks/common/lattice2.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/maze.ss b/collects/tests/racket/benchmarks/common/maze.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/maze.ss
rename to collects/tests/racket/benchmarks/common/maze.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/maze.sch b/collects/tests/racket/benchmarks/common/maze.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/maze.sch
rename to collects/tests/racket/benchmarks/common/maze.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/maze2.ss b/collects/tests/racket/benchmarks/common/maze2.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/maze2.ss
rename to collects/tests/racket/benchmarks/common/maze2.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/maze2.sch b/collects/tests/racket/benchmarks/common/maze2.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/maze2.sch
rename to collects/tests/racket/benchmarks/common/maze2.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/mazefun.ss b/collects/tests/racket/benchmarks/common/mazefun.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/mazefun.ss
rename to collects/tests/racket/benchmarks/common/mazefun.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/mazefun.sch b/collects/tests/racket/benchmarks/common/mazefun.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/mazefun.sch
rename to collects/tests/racket/benchmarks/common/mazefun.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/mit-prelude.sch b/collects/tests/racket/benchmarks/common/mit-prelude.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/mit-prelude.sch
rename to collects/tests/racket/benchmarks/common/mit-prelude.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/mk-bigloo.ss b/collects/tests/racket/benchmarks/common/mk-bigloo.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/mk-bigloo.ss
rename to collects/tests/racket/benchmarks/common/mk-bigloo.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/mk-chicken.ss b/collects/tests/racket/benchmarks/common/mk-chicken.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/mk-chicken.ss
rename to collects/tests/racket/benchmarks/common/mk-chicken.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/mk-gambit.ss b/collects/tests/racket/benchmarks/common/mk-gambit.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/mk-gambit.ss
rename to collects/tests/racket/benchmarks/common/mk-gambit.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/nboyer.ss b/collects/tests/racket/benchmarks/common/nboyer.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/nboyer.ss
rename to collects/tests/racket/benchmarks/common/nboyer.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/nboyer.sch b/collects/tests/racket/benchmarks/common/nboyer.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/nboyer.sch
rename to collects/tests/racket/benchmarks/common/nboyer.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/nestedloop.ss b/collects/tests/racket/benchmarks/common/nestedloop.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/nestedloop.ss
rename to collects/tests/racket/benchmarks/common/nestedloop.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/nestedloop.sch b/collects/tests/racket/benchmarks/common/nestedloop.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/nestedloop.sch
rename to collects/tests/racket/benchmarks/common/nestedloop.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/nfa.ss b/collects/tests/racket/benchmarks/common/nfa.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/nfa.ss
rename to collects/tests/racket/benchmarks/common/nfa.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/nfa.sch b/collects/tests/racket/benchmarks/common/nfa.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/nfa.sch
rename to collects/tests/racket/benchmarks/common/nfa.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/nothing.ss b/collects/tests/racket/benchmarks/common/nothing.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/nothing.ss
rename to collects/tests/racket/benchmarks/common/nothing.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/nothing.sch b/collects/tests/racket/benchmarks/common/nothing.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/nothing.sch
rename to collects/tests/racket/benchmarks/common/nothing.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/nqueens.ss b/collects/tests/racket/benchmarks/common/nqueens.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/nqueens.ss
rename to collects/tests/racket/benchmarks/common/nqueens.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/nqueens.sch b/collects/tests/racket/benchmarks/common/nqueens.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/nqueens.sch
rename to collects/tests/racket/benchmarks/common/nqueens.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/nucleic2.ss b/collects/tests/racket/benchmarks/common/nucleic2.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/nucleic2.ss
rename to collects/tests/racket/benchmarks/common/nucleic2.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/nucleic2.sch b/collects/tests/racket/benchmarks/common/nucleic2.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/nucleic2.sch
rename to collects/tests/racket/benchmarks/common/nucleic2.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/paraffins.ss b/collects/tests/racket/benchmarks/common/paraffins.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/paraffins.ss
rename to collects/tests/racket/benchmarks/common/paraffins.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/paraffins.sch b/collects/tests/racket/benchmarks/common/paraffins.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/paraffins.sch
rename to collects/tests/racket/benchmarks/common/paraffins.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/petite-prelude.sch b/collects/tests/racket/benchmarks/common/petite-prelude.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/petite-prelude.sch
rename to collects/tests/racket/benchmarks/common/petite-prelude.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/peval.ss b/collects/tests/racket/benchmarks/common/peval.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/peval.ss
rename to collects/tests/racket/benchmarks/common/peval.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/peval.sch b/collects/tests/racket/benchmarks/common/peval.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/peval.sch
rename to collects/tests/racket/benchmarks/common/peval.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/psyntax-input.txt b/collects/tests/racket/benchmarks/common/psyntax-input.txt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/psyntax-input.txt
rename to collects/tests/racket/benchmarks/common/psyntax-input.txt
diff --git a/collects/tests/mzscheme/benchmarks/common/psyntax.ss b/collects/tests/racket/benchmarks/common/psyntax.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/psyntax.ss
rename to collects/tests/racket/benchmarks/common/psyntax.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/psyntax.sch b/collects/tests/racket/benchmarks/common/psyntax.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/psyntax.sch
rename to collects/tests/racket/benchmarks/common/psyntax.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/puzzle.ss b/collects/tests/racket/benchmarks/common/puzzle.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/puzzle.ss
rename to collects/tests/racket/benchmarks/common/puzzle.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/puzzle.sch b/collects/tests/racket/benchmarks/common/puzzle.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/puzzle.sch
rename to collects/tests/racket/benchmarks/common/puzzle.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/r5rs-wrap.ss b/collects/tests/racket/benchmarks/common/r5rs-wrap.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/r5rs-wrap.ss
rename to collects/tests/racket/benchmarks/common/r5rs-wrap.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/sboyer.ss b/collects/tests/racket/benchmarks/common/sboyer.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/sboyer.ss
rename to collects/tests/racket/benchmarks/common/sboyer.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/sboyer.sch b/collects/tests/racket/benchmarks/common/sboyer.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/sboyer.sch
rename to collects/tests/racket/benchmarks/common/sboyer.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/scheme.ss b/collects/tests/racket/benchmarks/common/scheme.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/scheme.ss
rename to collects/tests/racket/benchmarks/common/scheme.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/scheme.sch b/collects/tests/racket/benchmarks/common/scheme.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/scheme.sch
rename to collects/tests/racket/benchmarks/common/scheme.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/scheme2.ss b/collects/tests/racket/benchmarks/common/scheme2.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/scheme2.ss
rename to collects/tests/racket/benchmarks/common/scheme2.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/scheme2.sch b/collects/tests/racket/benchmarks/common/scheme2.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/scheme2.sch
rename to collects/tests/racket/benchmarks/common/scheme2.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/scheme48-prelude.sch b/collects/tests/racket/benchmarks/common/scheme48-prelude.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/scheme48-prelude.sch
rename to collects/tests/racket/benchmarks/common/scheme48-prelude.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/sort1.ss b/collects/tests/racket/benchmarks/common/sort1.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/sort1.ss
rename to collects/tests/racket/benchmarks/common/sort1.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/sort1.sch b/collects/tests/racket/benchmarks/common/sort1.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/sort1.sch
rename to collects/tests/racket/benchmarks/common/sort1.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/tabulate.ss b/collects/tests/racket/benchmarks/common/tabulate.rkt
similarity index 99%
rename from collects/tests/mzscheme/benchmarks/common/tabulate.ss
rename to collects/tests/racket/benchmarks/common/tabulate.rkt
index 019d7200b0..320dfae1d6 100755
--- a/collects/tests/mzscheme/benchmarks/common/tabulate.ss
+++ b/collects/tests/racket/benchmarks/common/tabulate.rkt
@@ -1,6 +1,6 @@
#!/bin/sh
#|
-exec mzscheme -qu "$0" ${1+"$@"}
+exec racket -qu "$0" ${1+"$@"}
|#
;; Input format is a sequence of S-expression forms:
diff --git a/collects/tests/mzscheme/benchmarks/common/tak.ss b/collects/tests/racket/benchmarks/common/tak.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/tak.ss
rename to collects/tests/racket/benchmarks/common/tak.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/tak.sch b/collects/tests/racket/benchmarks/common/tak.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/tak.sch
rename to collects/tests/racket/benchmarks/common/tak.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/takl.ss b/collects/tests/racket/benchmarks/common/takl.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/takl.ss
rename to collects/tests/racket/benchmarks/common/takl.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/takl.sch b/collects/tests/racket/benchmarks/common/takl.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/takl.sch
rename to collects/tests/racket/benchmarks/common/takl.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/takr.ss b/collects/tests/racket/benchmarks/common/takr.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/takr.ss
rename to collects/tests/racket/benchmarks/common/takr.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/takr.sch b/collects/tests/racket/benchmarks/common/takr.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/takr.sch
rename to collects/tests/racket/benchmarks/common/takr.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/takr2.ss b/collects/tests/racket/benchmarks/common/takr2.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/takr2.ss
rename to collects/tests/racket/benchmarks/common/takr2.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/takr2.sch b/collects/tests/racket/benchmarks/common/takr2.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/takr2.sch
rename to collects/tests/racket/benchmarks/common/takr2.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/traverse.sch b/collects/tests/racket/benchmarks/common/traverse.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/traverse.sch
rename to collects/tests/racket/benchmarks/common/traverse.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/triangle.ss b/collects/tests/racket/benchmarks/common/triangle.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/triangle.ss
rename to collects/tests/racket/benchmarks/common/triangle.rkt
diff --git a/collects/tests/mzscheme/benchmarks/common/triangle.sch b/collects/tests/racket/benchmarks/common/triangle.sch
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/triangle.sch
rename to collects/tests/racket/benchmarks/common/triangle.sch
diff --git a/collects/tests/mzscheme/benchmarks/common/wrap.ss b/collects/tests/racket/benchmarks/common/wrap.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/common/wrap.ss
rename to collects/tests/racket/benchmarks/common/wrap.rkt
diff --git a/collects/tests/mzscheme/benchmarks/mz/expand-class.scm b/collects/tests/racket/benchmarks/mz/expand-class.scm
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/mz/expand-class.scm
rename to collects/tests/racket/benchmarks/mz/expand-class.scm
diff --git a/collects/tests/mzscheme/benchmarks/mz/input.xml b/collects/tests/racket/benchmarks/mz/input.xml
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/mz/input.xml
rename to collects/tests/racket/benchmarks/mz/input.xml
diff --git a/collects/tests/mzscheme/benchmarks/mz/parsing.scm b/collects/tests/racket/benchmarks/mz/parsing.scm
similarity index 98%
rename from collects/tests/mzscheme/benchmarks/mz/parsing.scm
rename to collects/tests/racket/benchmarks/mz/parsing.scm
index 4900f6f3d2..a1d17b8ecb 100644
--- a/collects/tests/mzscheme/benchmarks/mz/parsing.scm
+++ b/collects/tests/racket/benchmarks/mz/parsing.scm
@@ -1,6 +1,6 @@
(require (lib "scheme-lexer.ss" "syntax-color") scheme/gui/base)
-(define path (build-path (collection-path "framework" "private") "frame.ss"))
+(define path (build-path (collection-path "framework" "private") "frame.rkt"))
(define content
(with-input-from-file path
diff --git a/collects/tests/mzscheme/benchmarks/mz/redsem.scm b/collects/tests/racket/benchmarks/mz/redsem.scm
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/mz/redsem.scm
rename to collects/tests/racket/benchmarks/mz/redsem.scm
diff --git a/collects/tests/mzscheme/benchmarks/mz/ssax.scm b/collects/tests/racket/benchmarks/mz/ssax.scm
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/mz/ssax.scm
rename to collects/tests/racket/benchmarks/mz/ssax.scm
diff --git a/collects/tests/mzscheme/benchmarks/rx/.gitignore b/collects/tests/racket/benchmarks/rx/.gitignore
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/rx/.gitignore
rename to collects/tests/racket/benchmarks/rx/.gitignore
diff --git a/collects/tests/mzscheme/benchmarks/rx/auto.ss b/collects/tests/racket/benchmarks/rx/auto.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/rx/auto.ss
rename to collects/tests/racket/benchmarks/rx/auto.rkt
diff --git a/collects/tests/mzscheme/benchmarks/rx/index-template.html b/collects/tests/racket/benchmarks/rx/index-template.html
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/rx/index-template.html
rename to collects/tests/racket/benchmarks/rx/index-template.html
diff --git a/collects/tests/mzscheme/benchmarks/rx/pcre.ss b/collects/tests/racket/benchmarks/rx/pcre.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/rx/pcre.ss
rename to collects/tests/racket/benchmarks/rx/pcre.rkt
diff --git a/collects/tests/mzscheme/benchmarks/rx/perl_prefix.pl b/collects/tests/racket/benchmarks/rx/perl_prefix.pl
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/rx/perl_prefix.pl
rename to collects/tests/racket/benchmarks/rx/perl_prefix.pl
diff --git a/collects/tests/mzscheme/benchmarks/rx/python_prefix.py b/collects/tests/racket/benchmarks/rx/python_prefix.py
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/rx/python_prefix.py
rename to collects/tests/racket/benchmarks/rx/python_prefix.py
diff --git a/collects/tests/mzscheme/benchmarks/shootout/README.txt b/collects/tests/racket/benchmarks/shootout/README.txt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/README.txt
rename to collects/tests/racket/benchmarks/shootout/README.txt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/ackermann.ss b/collects/tests/racket/benchmarks/shootout/ackermann.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/ackermann.ss
rename to collects/tests/racket/benchmarks/shootout/ackermann.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/ary.ss b/collects/tests/racket/benchmarks/shootout/ary.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/ary.ss
rename to collects/tests/racket/benchmarks/shootout/ary.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/binarytrees.ss b/collects/tests/racket/benchmarks/shootout/binarytrees.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/binarytrees.ss
rename to collects/tests/racket/benchmarks/shootout/binarytrees.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/chameneos.ss b/collects/tests/racket/benchmarks/shootout/chameneos.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/chameneos.ss
rename to collects/tests/racket/benchmarks/shootout/chameneos.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/cheapconcurrency.ss b/collects/tests/racket/benchmarks/shootout/cheapconcurrency.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/cheapconcurrency.ss
rename to collects/tests/racket/benchmarks/shootout/cheapconcurrency.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/echo.ss b/collects/tests/racket/benchmarks/shootout/echo.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/echo.ss
rename to collects/tests/racket/benchmarks/shootout/echo.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/except.ss b/collects/tests/racket/benchmarks/shootout/except.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/except.ss
rename to collects/tests/racket/benchmarks/shootout/except.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/fannkuch.ss b/collects/tests/racket/benchmarks/shootout/fannkuch.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/fannkuch.ss
rename to collects/tests/racket/benchmarks/shootout/fannkuch.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/fasta.ss b/collects/tests/racket/benchmarks/shootout/fasta.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/fasta.ss
rename to collects/tests/racket/benchmarks/shootout/fasta.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/fibo.ss b/collects/tests/racket/benchmarks/shootout/fibo.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/fibo.ss
rename to collects/tests/racket/benchmarks/shootout/fibo.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/hash.ss b/collects/tests/racket/benchmarks/shootout/hash.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/hash.ss
rename to collects/tests/racket/benchmarks/shootout/hash.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/hash2.ss b/collects/tests/racket/benchmarks/shootout/hash2.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/hash2.ss
rename to collects/tests/racket/benchmarks/shootout/hash2.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/heapsort.ss b/collects/tests/racket/benchmarks/shootout/heapsort.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/heapsort.ss
rename to collects/tests/racket/benchmarks/shootout/heapsort.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/hello.ss b/collects/tests/racket/benchmarks/shootout/hello.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/hello.ss
rename to collects/tests/racket/benchmarks/shootout/hello.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/k-nucleotide.ss b/collects/tests/racket/benchmarks/shootout/k-nucleotide.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/k-nucleotide.ss
rename to collects/tests/racket/benchmarks/shootout/k-nucleotide.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/lists.ss b/collects/tests/racket/benchmarks/shootout/lists.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/lists.ss
rename to collects/tests/racket/benchmarks/shootout/lists.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/mandelbrot-generic.ss b/collects/tests/racket/benchmarks/shootout/mandelbrot-generic.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/mandelbrot-generic.ss
rename to collects/tests/racket/benchmarks/shootout/mandelbrot-generic.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/mandelbrot-unsafe.ss b/collects/tests/racket/benchmarks/shootout/mandelbrot-unsafe.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/mandelbrot-unsafe.ss
rename to collects/tests/racket/benchmarks/shootout/mandelbrot-unsafe.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/mandelbrot.ss b/collects/tests/racket/benchmarks/shootout/mandelbrot.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/mandelbrot.ss
rename to collects/tests/racket/benchmarks/shootout/mandelbrot.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/matrix.ss b/collects/tests/racket/benchmarks/shootout/matrix.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/matrix.ss
rename to collects/tests/racket/benchmarks/shootout/matrix.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/meteor.ss b/collects/tests/racket/benchmarks/shootout/meteor.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/meteor.ss
rename to collects/tests/racket/benchmarks/shootout/meteor.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/moments.ss b/collects/tests/racket/benchmarks/shootout/moments.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/moments.ss
rename to collects/tests/racket/benchmarks/shootout/moments.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/nbody-generic.ss b/collects/tests/racket/benchmarks/shootout/nbody-generic.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/nbody-generic.ss
rename to collects/tests/racket/benchmarks/shootout/nbody-generic.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/nbody-vec-generic.ss b/collects/tests/racket/benchmarks/shootout/nbody-vec-generic.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/nbody-vec-generic.ss
rename to collects/tests/racket/benchmarks/shootout/nbody-vec-generic.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/nbody-vec-unsafe.ss b/collects/tests/racket/benchmarks/shootout/nbody-vec-unsafe.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/nbody-vec-unsafe.ss
rename to collects/tests/racket/benchmarks/shootout/nbody-vec-unsafe.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/nbody-vec.ss b/collects/tests/racket/benchmarks/shootout/nbody-vec.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/nbody-vec.ss
rename to collects/tests/racket/benchmarks/shootout/nbody-vec.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/nbody.ss b/collects/tests/racket/benchmarks/shootout/nbody.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/nbody.ss
rename to collects/tests/racket/benchmarks/shootout/nbody.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/nestedloop.ss b/collects/tests/racket/benchmarks/shootout/nestedloop.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/nestedloop.ss
rename to collects/tests/racket/benchmarks/shootout/nestedloop.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/nsieve.ss b/collects/tests/racket/benchmarks/shootout/nsieve.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/nsieve.ss
rename to collects/tests/racket/benchmarks/shootout/nsieve.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/nsievebits.ss b/collects/tests/racket/benchmarks/shootout/nsievebits.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/nsievebits.ss
rename to collects/tests/racket/benchmarks/shootout/nsievebits.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/partialsums.ss b/collects/tests/racket/benchmarks/shootout/partialsums.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/partialsums.ss
rename to collects/tests/racket/benchmarks/shootout/partialsums.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/pidigits-gmp.ss b/collects/tests/racket/benchmarks/shootout/pidigits-gmp.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/pidigits-gmp.ss
rename to collects/tests/racket/benchmarks/shootout/pidigits-gmp.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/pidigits.ss b/collects/tests/racket/benchmarks/shootout/pidigits.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/pidigits.ss
rename to collects/tests/racket/benchmarks/shootout/pidigits.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/pidigits1.ss b/collects/tests/racket/benchmarks/shootout/pidigits1.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/pidigits1.ss
rename to collects/tests/racket/benchmarks/shootout/pidigits1.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/random.ss b/collects/tests/racket/benchmarks/shootout/random.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/random.ss
rename to collects/tests/racket/benchmarks/shootout/random.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/recursive.ss b/collects/tests/racket/benchmarks/shootout/recursive.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/recursive.ss
rename to collects/tests/racket/benchmarks/shootout/recursive.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/regexmatch.ss b/collects/tests/racket/benchmarks/shootout/regexmatch.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/regexmatch.ss
rename to collects/tests/racket/benchmarks/shootout/regexmatch.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/regexpdna.ss b/collects/tests/racket/benchmarks/shootout/regexpdna.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/regexpdna.ss
rename to collects/tests/racket/benchmarks/shootout/regexpdna.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/reversecomplement.ss b/collects/tests/racket/benchmarks/shootout/reversecomplement.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/reversecomplement.ss
rename to collects/tests/racket/benchmarks/shootout/reversecomplement.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/reversefile.ss b/collects/tests/racket/benchmarks/shootout/reversefile.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/reversefile.ss
rename to collects/tests/racket/benchmarks/shootout/reversefile.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/run.ss b/collects/tests/racket/benchmarks/shootout/run.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/run.ss
rename to collects/tests/racket/benchmarks/shootout/run.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/sieve.ss b/collects/tests/racket/benchmarks/shootout/sieve.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/sieve.ss
rename to collects/tests/racket/benchmarks/shootout/sieve.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/spectralnorm-generic.ss b/collects/tests/racket/benchmarks/shootout/spectralnorm-generic.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/spectralnorm-generic.ss
rename to collects/tests/racket/benchmarks/shootout/spectralnorm-generic.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/spectralnorm-unsafe.ss b/collects/tests/racket/benchmarks/shootout/spectralnorm-unsafe.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/spectralnorm-unsafe.ss
rename to collects/tests/racket/benchmarks/shootout/spectralnorm-unsafe.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/spectralnorm.ss b/collects/tests/racket/benchmarks/shootout/spectralnorm.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/spectralnorm.ss
rename to collects/tests/racket/benchmarks/shootout/spectralnorm.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/spellcheck.ss b/collects/tests/racket/benchmarks/shootout/spellcheck.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/spellcheck.ss
rename to collects/tests/racket/benchmarks/shootout/spellcheck.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/strcat.ss b/collects/tests/racket/benchmarks/shootout/strcat.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/strcat.ss
rename to collects/tests/racket/benchmarks/shootout/strcat.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/sumcol-input.txt b/collects/tests/racket/benchmarks/shootout/sumcol-input.txt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/sumcol-input.txt
rename to collects/tests/racket/benchmarks/shootout/sumcol-input.txt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/sumcol.ss b/collects/tests/racket/benchmarks/shootout/sumcol.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/sumcol.ss
rename to collects/tests/racket/benchmarks/shootout/sumcol.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/thread-ring.ss b/collects/tests/racket/benchmarks/shootout/thread-ring.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/thread-ring.ss
rename to collects/tests/racket/benchmarks/shootout/thread-ring.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/wc.ss b/collects/tests/racket/benchmarks/shootout/wc.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/wc.ss
rename to collects/tests/racket/benchmarks/shootout/wc.rkt
diff --git a/collects/tests/mzscheme/benchmarks/shootout/wordfreq.ss b/collects/tests/racket/benchmarks/shootout/wordfreq.rkt
similarity index 100%
rename from collects/tests/mzscheme/benchmarks/shootout/wordfreq.ss
rename to collects/tests/racket/benchmarks/shootout/wordfreq.rkt
diff --git a/collects/tests/mzscheme/binc.ss b/collects/tests/racket/binc.rkt
similarity index 100%
rename from collects/tests/mzscheme/binc.ss
rename to collects/tests/racket/binc.rkt
diff --git a/collects/tests/mzscheme/boundmap-test.ss b/collects/tests/racket/boundmap-test.rkt
similarity index 99%
rename from collects/tests/mzscheme/boundmap-test.ss
rename to collects/tests/racket/boundmap-test.rkt
index 08e6895b6f..b10346dfd7 100644
--- a/collects/tests/mzscheme/boundmap-test.ss
+++ b/collects/tests/racket/boundmap-test.rkt
@@ -1,4 +1,4 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(require syntax/boundmap)
diff --git a/collects/tests/mzscheme/cache-image-snip-test.ss b/collects/tests/racket/cache-image-snip-test.rkt
similarity index 99%
rename from collects/tests/mzscheme/cache-image-snip-test.ss
rename to collects/tests/racket/cache-image-snip-test.rkt
index 88606410bf..4dbc72776e 100644
--- a/collects/tests/mzscheme/cache-image-snip-test.ss
+++ b/collects/tests/racket/cache-image-snip-test.rkt
@@ -1,4 +1,4 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(require mrlib/cache-image-snip
mzlib/unit)
diff --git a/collects/tests/mzscheme/censor.ss b/collects/tests/racket/censor.rkt
similarity index 100%
rename from collects/tests/mzscheme/censor.ss
rename to collects/tests/racket/censor.rkt
diff --git a/collects/tests/mzscheme/chaperone.ss b/collects/tests/racket/chaperone.rkt
similarity index 99%
rename from collects/tests/mzscheme/chaperone.ss
rename to collects/tests/racket/chaperone.rkt
index 73f3a592a8..0c7004b5d0 100644
--- a/collects/tests/mzscheme/chaperone.ss
+++ b/collects/tests/racket/chaperone.rkt
@@ -1,6 +1,6 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'chaperones)
;; ----------------------------------------
diff --git a/collects/tests/mzscheme/char-set.ss b/collects/tests/racket/char-set.rkt
similarity index 100%
rename from collects/tests/mzscheme/char-set.ss
rename to collects/tests/racket/char-set.rkt
diff --git a/collects/tests/mzscheme/chez-module.ss b/collects/tests/racket/chez-module.rkt
similarity index 100%
rename from collects/tests/mzscheme/chez-module.ss
rename to collects/tests/racket/chez-module.rkt
diff --git a/collects/tests/mzscheme/cm.ss b/collects/tests/racket/cm.rkt
similarity index 69%
rename from collects/tests/mzscheme/cm.ss
rename to collects/tests/racket/cm.rkt
index 4dae2effc3..cb5059f311 100644
--- a/collects/tests/mzscheme/cm.ss
+++ b/collects/tests/racket/cm.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'cm)
@@ -68,57 +68,57 @@
(map car files))))
recomps)))
-(try '(("a.ss" "(module a scheme/base (require \"b.ss\" \"d.ss\" \"g.ss\"))" #t)
- ("b.ss" "(module b scheme/base (require scheme/include) (include \"c.sch\"))" #t)
- ("d.ss" "#reader \"e.ss\" 10" #t)
+(try '(("a.rkt" "(module a scheme/base (require \"b.rkt\" \"d.rkt\" \"g.rkt\"))" #t)
+ ("b.rkt" "(module b scheme/base (require scheme/include) (include \"c.sch\"))" #t)
+ ("d.rkt" "#reader \"e.rkt\" 10" #t)
("c.sch" "5" #f)
- ("e.ss" "(module e syntax/module-reader \"f.ss\")" #t)
- ("f.ss" "(module f scheme/base (provide (all-from-out scheme/base)))" #t)
- ("g.ss" "(module g scheme/base (require (for-syntax scheme/base scheme/include \"i.ss\")) (define-syntax (f stx) (include \"h.sch\")))" #t)
+ ("e.rkt" "(module e syntax/module-reader \"f.rkt\")" #t)
+ ("f.rkt" "(module f scheme/base (provide (all-from-out scheme/base)))" #t)
+ ("g.rkt" "(module g scheme/base (require (for-syntax scheme/base scheme/include \"i.rkt\")) (define-syntax (f stx) (include \"h.sch\")))" #t)
("h.sch" "(quote-syntax 12)" #f)
- ("i.ss" "(module i scheme/base)" #t))
- '([("a.ss") ("a.ss") ("a.ss")]
- [("b.ss") ("a.ss") ("a.ss" "b.ss")]
- [("b.ss") ("b.ss") ("b.ss")]
- [() ("a.ss") ("a.ss")]
- [("c.sch") ("a.ss") ("a.ss" "b.ss")]
- [("f.ss") ("a.ss") ("a.ss" "d.ss" "f.ss")]
- [("e.ss") ("e.ss") ("e.ss")]
- [() ("a.ss") ("a.ss" "d.ss")]
- [("i.ss") ("a.ss") ("a.ss" "g.ss" "i.ss")]
- [("h.sch") ("a.ss") ("a.ss" "g.ss")]))
+ ("i.rkt" "(module i scheme/base)" #t))
+ '([("a.rkt") ("a.rkt") ("a.rkt")]
+ [("b.rkt") ("a.rkt") ("a.rkt" "b.rkt")]
+ [("b.rkt") ("b.rkt") ("b.rkt")]
+ [() ("a.rkt") ("a.rkt")]
+ [("c.sch") ("a.rkt") ("a.rkt" "b.rkt")]
+ [("f.rkt") ("a.rkt") ("a.rkt" "d.rkt" "f.rkt")]
+ [("e.rkt") ("e.rkt") ("e.rkt")]
+ [() ("a.rkt") ("a.rkt" "d.rkt")]
+ [("i.rkt") ("a.rkt") ("a.rkt" "g.rkt" "i.rkt")]
+ [("h.sch") ("a.rkt") ("a.rkt" "g.rkt")]))
;; test manager-skip-file-handler
(parameterize ([manager-skip-file-handler
(λ (x)
(let-values ([(base name dir) (split-path x)])
(cond
- [(equal? (path->string name) "b.ss")
+ [(equal? (path->string name) "b.rkt")
(file-or-directory-modify-seconds x)]
[else #f])))])
- (try '(("a.ss" "(module a scheme/base (require \"b.ss\"))" #f)
- ("b.ss" "(module b scheme/base)" #f))
- '([("b.ss") ("a.ss") ("a.ss")])))
+ (try '(("a.rkt" "(module a scheme/base (require \"b.rkt\"))" #f)
+ ("b.rkt" "(module b scheme/base)" #f))
+ '([("b.rkt") ("a.rkt") ("a.rkt")])))
;; ----------------------------------------
;; test `file-date-in-paths'
(test (file-or-directory-modify-seconds (build-path (collection-path "file")
"compiled"
- "gif_ss.zo"))
+ "gif_rkt.zo"))
file-date-in-collection
- (build-path (collection-path "file") "gif.ss"))
-;; gl-info.ss doesn't have a .ss source:
+ (build-path (collection-path "file") "gif.rkt"))
+;; gl-info.rkt doesn't have a .rkt source:
(test (file-or-directory-modify-seconds (build-path (collection-path "sgl")
"compiled"
- "gl-info_ss.zo"))
+ "gl-info_rkt.zo"))
file-date-in-collection
- (build-path (collection-path "sgl") "gl-info.ss"))
+ (build-path (collection-path "sgl") "gl-info.rkt"))
;; setup/main doesn't have a .zo:
(test (file-or-directory-modify-seconds (build-path (collection-path "setup")
- "main.ss"))
+ "main.rkt"))
file-date-in-collection
- (build-path (collection-path "setup") "main.ss"))
+ (build-path (collection-path "setup") "main.rkt"))
;; ----------------------------------------
diff --git a/collects/tests/mzscheme/cmdline.ss b/collects/tests/racket/cmdline.rkt
similarity index 99%
rename from collects/tests/mzscheme/cmdline.ss
rename to collects/tests/racket/cmdline.rkt
index c804f5bad4..40ce7cc5d4 100644
--- a/collects/tests/mzscheme/cmdline.ss
+++ b/collects/tests/racket/cmdline.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'command-line)
diff --git a/collects/tests/mzscheme/compat.ss b/collects/tests/racket/compat.rkt
similarity index 94%
rename from collects/tests/mzscheme/compat.ss
rename to collects/tests/racket/compat.rkt
index 11c4cb5ff0..b83e7ad31c 100644
--- a/collects/tests/mzscheme/compat.ss
+++ b/collects/tests/racket/compat.rkt
@@ -1,6 +1,6 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'compat)
diff --git a/collects/tests/mzscheme/compile.ss b/collects/tests/racket/compile.rkt
similarity index 100%
rename from collects/tests/mzscheme/compile.ss
rename to collects/tests/racket/compile.rkt
diff --git a/collects/tests/mzscheme/contmark.ss b/collects/tests/racket/contmark.rkt
similarity index 99%
rename from collects/tests/mzscheme/contmark.ss
rename to collects/tests/racket/contmark.rkt
index 8249a8c5c7..cad2e6831e 100644
--- a/collects/tests/mzscheme/contmark.ss
+++ b/collects/tests/racket/contmark.rkt
@@ -1,6 +1,6 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'continuation-marks)
@@ -101,9 +101,9 @@
(with-continuation-mark 'key 10 (extract-current-continuation-marks 'key))
(extract-current-continuation-marks 'key)))))
-(require (lib "mzlib/unit200.ss"))
+(require (lib "mzlib/unit200.rkt"))
-;; Hide keywords from scheme/unit.ss:
+;; Hide keywords from scheme/unit.rkt:
(define import #f)
(define export #f)
(define link #f)
diff --git a/collects/tests/mzscheme/contract-mzlib-test.ss b/collects/tests/racket/contract-mzlib-test.rkt
similarity index 99%
rename from collects/tests/mzscheme/contract-mzlib-test.ss
rename to collects/tests/racket/contract-mzlib-test.rkt
index ba6e30ab22..a748a6e5cd 100644
--- a/collects/tests/mzscheme/contract-mzlib-test.ss
+++ b/collects/tests/racket/contract-mzlib-test.rkt
@@ -1,12 +1,12 @@
#|
-This file started out as a copy of contract-test.ss.
+This file started out as a copy of contract-test.rkt.
Its purpose is to try to ensure that the mzlib version
of the contract library does not change over time.
|#
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'mzlib/contract)
(parameterize ([error-print-width 200])
@@ -4843,7 +4843,7 @@ so that propagation occurs.
(provide/contract (struct register ([name any/c] [type any/c])))))
(eval '(require 'pc13-common-msg-structs))
- (eval '(require (lib "plt-match.ss")))
+ (eval '(require (lib "plt-match.rkt")))
(eval '(match (make-register 1 2)
[(struct register (name type))
(list name type)])))
diff --git a/collects/tests/mzscheme/contract-opt-tests.ss b/collects/tests/racket/contract-opt-tests.rkt
similarity index 99%
rename from collects/tests/mzscheme/contract-opt-tests.ss
rename to collects/tests/racket/contract-opt-tests.rkt
index c6cf0de070..cdc45afb8f 100644
--- a/collects/tests/mzscheme/contract-opt-tests.ss
+++ b/collects/tests/racket/contract-opt-tests.rkt
@@ -1,7 +1,7 @@
(module contract-opt-tests mzscheme
(require mzlib/contract
- schemeunit
- schemeunit/text-ui)
+ rktunit
+ rktunit/text-ui)
(define (exn:fail:contract-violation? exn)
(if (regexp-match #rx"broke" (exn-message exn)) #t #f))
diff --git a/collects/tests/mzscheme/contract-test.ss b/collects/tests/racket/contract-test.rkt
similarity index 99%
rename from collects/tests/mzscheme/contract-test.ss
rename to collects/tests/racket/contract-test.rkt
index 32bc840fcc..c80799ae28 100644
--- a/collects/tests/mzscheme/contract-test.ss
+++ b/collects/tests/racket/contract-test.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'contract)
(parameterize ([error-print-width 200])
@@ -8226,7 +8226,7 @@ so that propagation occurs.
(provide/contract (struct register ([name any/c] [type any/c])))))
(eval '(require 'pc13-common-msg-structs))
- (eval '(require (lib "plt-match.ss")))
+ (eval '(require (lib "plt-match.rkt")))
(eval '(match (make-register 1 2)
[(struct register (name type))
(list name type)])))
diff --git a/collects/tests/mzscheme/control.ss b/collects/tests/racket/control.rkt
similarity index 99%
rename from collects/tests/mzscheme/control.ss
rename to collects/tests/racket/control.rkt
index 2826487b38..c02e87453d 100644
--- a/collects/tests/mzscheme/control.ss
+++ b/collects/tests/racket/control.rkt
@@ -4,7 +4,7 @@
;; aka. -F- through +F+
;; $Id: delim-control-n.scm 815 2005-09-05 23:02:12Z oleg $
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'control)
diff --git a/collects/tests/mzscheme/date.ss b/collects/tests/racket/date.rkt
similarity index 97%
rename from collects/tests/mzscheme/date.ss
rename to collects/tests/racket/date.rkt
index dbaeee9385..65ee2b0642 100644
--- a/collects/tests/mzscheme/date.ss
+++ b/collects/tests/racket/date.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'date)
diff --git a/collects/tests/mzscheme/deep.ss b/collects/tests/racket/deep.rkt
similarity index 99%
rename from collects/tests/mzscheme/deep.ss
rename to collects/tests/racket/deep.rkt
index b09ad24d09..9c12b89da7 100644
--- a/collects/tests/mzscheme/deep.ss
+++ b/collects/tests/racket/deep.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'deep)
diff --git a/collects/tests/mzscheme/dict.ss b/collects/tests/racket/dict.rkt
similarity index 99%
rename from collects/tests/mzscheme/dict.ss
rename to collects/tests/racket/dict.rkt
index ab2af1f15b..1afaebbce5 100644
--- a/collects/tests/mzscheme/dict.ss
+++ b/collects/tests/racket/dict.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'dict)
diff --git a/collects/tests/mzscheme/embed-in-c.c b/collects/tests/racket/embed-in-c.c
similarity index 100%
rename from collects/tests/mzscheme/embed-in-c.c
rename to collects/tests/racket/embed-in-c.c
diff --git a/collects/tests/mzscheme/embed-in-c.ss b/collects/tests/racket/embed-in-c.rkt
similarity index 100%
rename from collects/tests/mzscheme/embed-in-c.ss
rename to collects/tests/racket/embed-in-c.rkt
diff --git a/collects/tests/mzscheme/embed-me1.ss b/collects/tests/racket/embed-me1.rkt
similarity index 100%
rename from collects/tests/mzscheme/embed-me1.ss
rename to collects/tests/racket/embed-me1.rkt
diff --git a/collects/tests/mzscheme/embed-me10.ss b/collects/tests/racket/embed-me10.rkt
similarity index 100%
rename from collects/tests/mzscheme/embed-me10.ss
rename to collects/tests/racket/embed-me10.rkt
diff --git a/collects/tests/mzscheme/embed-me11-rd.ss b/collects/tests/racket/embed-me11-rd.rkt
similarity index 100%
rename from collects/tests/mzscheme/embed-me11-rd.ss
rename to collects/tests/racket/embed-me11-rd.rkt
diff --git a/collects/tests/racket/embed-me11.rkt b/collects/tests/racket/embed-me11.rkt
new file mode 100644
index 0000000000..c4771e307e
--- /dev/null
+++ b/collects/tests/racket/embed-me11.rkt
@@ -0,0 +1,2 @@
+#reader(lib "embed-me11-rd.ss" "tests" "racket")
+"It goes to ~a!\n"
diff --git a/collects/tests/mzscheme/embed-me1b.ss b/collects/tests/racket/embed-me1b.rkt
similarity index 100%
rename from collects/tests/mzscheme/embed-me1b.ss
rename to collects/tests/racket/embed-me1b.rkt
diff --git a/collects/tests/mzscheme/embed-me1c.ss b/collects/tests/racket/embed-me1c.rkt
similarity index 100%
rename from collects/tests/mzscheme/embed-me1c.ss
rename to collects/tests/racket/embed-me1c.rkt
diff --git a/collects/tests/mzscheme/embed-me1d.ss b/collects/tests/racket/embed-me1d.rkt
similarity index 100%
rename from collects/tests/mzscheme/embed-me1d.ss
rename to collects/tests/racket/embed-me1d.rkt
diff --git a/collects/tests/mzscheme/embed-me1e.ss b/collects/tests/racket/embed-me1e.rkt
similarity index 100%
rename from collects/tests/mzscheme/embed-me1e.ss
rename to collects/tests/racket/embed-me1e.rkt
diff --git a/collects/tests/mzscheme/embed-me2.ss b/collects/tests/racket/embed-me2.rkt
similarity index 100%
rename from collects/tests/mzscheme/embed-me2.ss
rename to collects/tests/racket/embed-me2.rkt
diff --git a/collects/tests/mzscheme/embed-me3.ss b/collects/tests/racket/embed-me3.rkt
similarity index 100%
rename from collects/tests/mzscheme/embed-me3.ss
rename to collects/tests/racket/embed-me3.rkt
diff --git a/collects/tests/mzscheme/embed-me4.ss b/collects/tests/racket/embed-me4.rkt
similarity index 100%
rename from collects/tests/mzscheme/embed-me4.ss
rename to collects/tests/racket/embed-me4.rkt
diff --git a/collects/tests/mzscheme/embed-me5.ss b/collects/tests/racket/embed-me5.rkt
similarity index 100%
rename from collects/tests/mzscheme/embed-me5.ss
rename to collects/tests/racket/embed-me5.rkt
diff --git a/collects/tests/mzscheme/embed-me6.ss b/collects/tests/racket/embed-me6.rkt
similarity index 100%
rename from collects/tests/mzscheme/embed-me6.ss
rename to collects/tests/racket/embed-me6.rkt
diff --git a/collects/tests/mzscheme/embed-me7.ss b/collects/tests/racket/embed-me7.rkt
similarity index 100%
rename from collects/tests/mzscheme/embed-me7.ss
rename to collects/tests/racket/embed-me7.rkt
diff --git a/collects/tests/mzscheme/embed-me8.c b/collects/tests/racket/embed-me8.c
similarity index 100%
rename from collects/tests/mzscheme/embed-me8.c
rename to collects/tests/racket/embed-me8.c
diff --git a/collects/tests/mzscheme/embed-me9.ss b/collects/tests/racket/embed-me9.rkt
similarity index 100%
rename from collects/tests/mzscheme/embed-me9.ss
rename to collects/tests/racket/embed-me9.rkt
diff --git a/collects/tests/mzscheme/embed.ss b/collects/tests/racket/embed.rkt
similarity index 100%
rename from collects/tests/mzscheme/embed.ss
rename to collects/tests/racket/embed.rkt
diff --git a/collects/tests/mzscheme/etc.ss b/collects/tests/racket/etc.rkt
similarity index 97%
rename from collects/tests/mzscheme/etc.ss
rename to collects/tests/racket/etc.rkt
index 123ba85cc7..129200204c 100644
--- a/collects/tests/mzscheme/etc.ss
+++ b/collects/tests/racket/etc.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'etc)
diff --git a/collects/tests/mzscheme/expand.ss b/collects/tests/racket/expand.rkt
similarity index 100%
rename from collects/tests/mzscheme/expand.ss
rename to collects/tests/racket/expand.rkt
diff --git a/collects/tests/mzscheme/fact.ss b/collects/tests/racket/fact.rkt
similarity index 100%
rename from collects/tests/mzscheme/fact.ss
rename to collects/tests/racket/fact.rkt
diff --git a/collects/tests/mzscheme/file.ss b/collects/tests/racket/file.rkt
similarity index 98%
rename from collects/tests/mzscheme/file.ss
rename to collects/tests/racket/file.rkt
index 0b30154340..ee507340fe 100644
--- a/collects/tests/mzscheme/file.ss
+++ b/collects/tests/racket/file.rkt
@@ -1,9 +1,9 @@
(require mzlib/os)
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'file)
-(define testing.ss (build-path (current-load-relative-directory) "testing.ss"))
+(define testing.rkt (build-path (current-load-relative-directory) "testing.rkt"))
(test #t input-port? (current-input-port))
(test #t output-port? (current-output-port))
@@ -11,14 +11,14 @@
(test (void) current-input-port (current-input-port))
(test (void) current-output-port (current-output-port))
(test (void) current-error-port (current-error-port))
-(test #t call-with-input-file testing.ss input-port?)
-(define this-file (open-input-file testing.ss))
+(test #t call-with-input-file testing.rkt input-port?)
+(define this-file (open-input-file testing.rkt))
(test #t input-port? this-file)
(close-input-port this-file)
-(define this-file (open-input-file testing.ss #:mode 'binary))
+(define this-file (open-input-file testing.rkt #:mode 'binary))
(test #t input-port? this-file)
(close-input-port this-file)
-(define this-file (open-input-file testing.ss #:mode 'text))
+(define this-file (open-input-file testing.rkt #:mode 'text))
(test #t input-port? this-file)
(arity-test input-port? 1 1)
(arity-test output-port? 1 1)
@@ -1106,7 +1106,7 @@
(test "~" format "~~")
(test "hello---~---there" format "~a---~~---~a" "hello" 'there)
(test "\"hello\"---~---there" format "~s---~~---~s" "hello" 'there)
- (test "\"hello\"---~---there" format "~v---~~---~v" "hello" 'there)
+ (test "\"hello\"---~---'there" format "~v---~~---~v" "hello" 'there)
(test (string #\a #\newline #\b #\newline #\c) format "a~nb~%c")
(let ([try-newline-stuff
(lambda (newlines)
@@ -1144,7 +1144,7 @@
rest
(cons c rest))]))])))
- (define with-censor (load-relative "censor.ss"))
+ (define with-censor (load-relative "censor.rkt"))
; test for all bad tags; the string we generate shouldn't
; be printed to a terminal directly because it can contain contain
@@ -1243,7 +1243,7 @@
(cust-test (lambda ()
(open-input-file
(build-path (current-load-relative-directory)
- "file.ss")))))
+ "file.rkt")))))
;; Too time-consuming, does bad things to the network:
'(let* ( [l (tcp-listen 0)]
@@ -1315,7 +1315,7 @@
;; UDP
(unless (eq? 'macos (system-type))
- (load-relative "udp.ss"))
+ (load-relative "udp.rkt"))
(when (eq? 'macos (system-type))
(err/rt-test (udp-open-socket) exn:misc:unsupported?)
@@ -1324,7 +1324,7 @@
(test #f udp? 5)
-;; more type tests in udp.ss, where we have UDP socket values
+;; more type tests in udp.rkt, where we have UDP socket values
(err/rt-test (udp-close 5))
(err/rt-test (udp-bound? 5))
(err/rt-test (udp-connected? 5))
diff --git a/collects/tests/mzscheme/filelib.ss b/collects/tests/racket/filelib.rkt
similarity index 90%
rename from collects/tests/mzscheme/filelib.ss
rename to collects/tests/racket/filelib.rkt
index f0128c8374..512a0f2efc 100644
--- a/collects/tests/mzscheme/filelib.ss
+++ b/collects/tests/racket/filelib.rkt
@@ -1,7 +1,7 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
-(Section 'file)
+(Section 'filelib)
(require scheme/file
mzlib/process
@@ -60,13 +60,13 @@
(let ([rel (find-files values)]
[abs (find-files values (current-directory))])
(test #t = (length rel) (sub1 (length abs)))
- (test #f member "filelib.ss" abs)
- (test #f null? (member "filelib.ss" rel))
- (test #f null? (member (build-path (current-directory) "filelib.ss") abs))
+ (test #f member "filelib.rkt" abs)
+ (test #f null? (member "filelib.rkt" rel))
+ (test #f null? (member (build-path (current-directory) "filelib.rkt") abs))
- (test (list (string->path "filelib.ss")) find-files (lambda (f) (regexp-match "^filelib[.]ss$" (path->string f))))
- (test (list (build-path (current-directory) "filelib.ss"))
- find-files (lambda (f) (regexp-match "filelib[.]ss$" (path->string f)))
+ (test (list (string->path "filelib.rkt")) find-files (lambda (f) (regexp-match "^filelib[.]rkt$" (path->string f))))
+ (test (list (build-path (current-directory) "filelib.rkt"))
+ find-files (lambda (f) (regexp-match "filelib[.]rkt$" (path->string f)))
(current-directory))
(let ([rel2 (fold-files (lambda (name kind accum)
@@ -81,7 +81,7 @@
(test #t equal? (sort rel) (sort rel2))
(unless (eq? (system-type) 'windows)
- (make-file-or-directory-link "filelib.ss" "filelib-link")
+ (make-file-or-directory-link "filelib.rkt" "filelib-link")
(make-file-or-directory-link "." "loop-link")
(test (+ 2 (length rel2))
diff --git a/collects/tests/mzscheme/fixnum.ss b/collects/tests/racket/fixnum.rkt
similarity index 99%
rename from collects/tests/mzscheme/fixnum.ss
rename to collects/tests/racket/fixnum.rkt
index af9484271a..3ae1cb2b91 100644
--- a/collects/tests/mzscheme/fixnum.ss
+++ b/collects/tests/racket/fixnum.rkt
@@ -1,4 +1,4 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'fixnum)
(require scheme/fixnum
scheme/unsafe/ops
diff --git a/collects/tests/mzscheme/for.ss b/collects/tests/racket/for.rkt
similarity index 99%
rename from collects/tests/mzscheme/for.ss
rename to collects/tests/racket/for.rkt
index 3f9102c384..f54275a7db 100644
--- a/collects/tests/mzscheme/for.ss
+++ b/collects/tests/racket/for.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'for)
diff --git a/collects/tests/mzscheme/foreign-test.c b/collects/tests/racket/foreign-test.c
similarity index 100%
rename from collects/tests/mzscheme/foreign-test.c
rename to collects/tests/racket/foreign-test.c
diff --git a/collects/tests/mzscheme/foreign-test.ss b/collects/tests/racket/foreign-test.rkt
similarity index 99%
rename from collects/tests/mzscheme/foreign-test.ss
rename to collects/tests/racket/foreign-test.rkt
index be10c6a3fb..ffbfaf11e5 100644
--- a/collects/tests/mzscheme/foreign-test.ss
+++ b/collects/tests/racket/foreign-test.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'foreign)
diff --git a/collects/tests/mzscheme/function.ss b/collects/tests/racket/function.rkt
similarity index 99%
rename from collects/tests/mzscheme/function.ss
rename to collects/tests/racket/function.rkt
index 07e3f65b9a..0cd44e71af 100644
--- a/collects/tests/mzscheme/function.ss
+++ b/collects/tests/racket/function.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'function)
diff --git a/collects/tests/mzscheme/head.ss b/collects/tests/racket/head.rkt
similarity index 100%
rename from collects/tests/mzscheme/head.ss
rename to collects/tests/racket/head.rkt
diff --git a/collects/tests/mzscheme/htdp-image.ss b/collects/tests/racket/htdp-image.rkt
similarity index 100%
rename from collects/tests/mzscheme/htdp-image.ss
rename to collects/tests/racket/htdp-image.rkt
diff --git a/collects/tests/mzscheme/htdp-test.ss b/collects/tests/racket/htdp-test.rkt
similarity index 100%
rename from collects/tests/mzscheme/htdp-test.ss
rename to collects/tests/racket/htdp-test.rkt
diff --git a/collects/tests/mzscheme/htdp.ss b/collects/tests/racket/htdp.rkt
similarity index 100%
rename from collects/tests/mzscheme/htdp.ss
rename to collects/tests/racket/htdp.rkt
diff --git a/collects/tests/mzscheme/id-table-test.ss b/collects/tests/racket/id-table-test.rkt
similarity index 99%
rename from collects/tests/mzscheme/id-table-test.ss
rename to collects/tests/racket/id-table-test.rkt
index 63c11af5ab..6c9a2be4ea 100644
--- a/collects/tests/mzscheme/id-table-test.ss
+++ b/collects/tests/racket/id-table-test.rkt
@@ -1,4 +1,4 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(require syntax/id-table
scheme/dict)
diff --git a/collects/tests/mzscheme/imap.ss b/collects/tests/racket/imap.rkt
similarity index 100%
rename from collects/tests/mzscheme/imap.ss
rename to collects/tests/racket/imap.rkt
diff --git a/collects/tests/mzscheme/intermediate-lambda.ss b/collects/tests/racket/intermediate-lambda.rkt
similarity index 100%
rename from collects/tests/mzscheme/intermediate-lambda.ss
rename to collects/tests/racket/intermediate-lambda.rkt
diff --git a/collects/tests/mzscheme/intermediate.ss b/collects/tests/racket/intermediate.rkt
similarity index 100%
rename from collects/tests/mzscheme/intermediate.ss
rename to collects/tests/racket/intermediate.rkt
diff --git a/collects/tests/mzscheme/intm-adv.ss b/collects/tests/racket/intm-adv.rkt
similarity index 100%
rename from collects/tests/mzscheme/intm-adv.ss
rename to collects/tests/racket/intm-adv.rkt
diff --git a/collects/tests/mzscheme/intm-intml.ss b/collects/tests/racket/intm-intml.rkt
similarity index 100%
rename from collects/tests/mzscheme/intm-intml.ss
rename to collects/tests/racket/intm-intml.rkt
diff --git a/collects/tests/mzscheme/intmlam-adv.ss b/collects/tests/racket/intmlam-adv.rkt
similarity index 100%
rename from collects/tests/mzscheme/intmlam-adv.ss
rename to collects/tests/racket/intmlam-adv.rkt
diff --git a/collects/tests/mzscheme/ktest.ss b/collects/tests/racket/ktest.rkt
similarity index 100%
rename from collects/tests/mzscheme/ktest.ss
rename to collects/tests/racket/ktest.rkt
diff --git a/collects/tests/mzscheme/kw.ss b/collects/tests/racket/kw.rkt
similarity index 99%
rename from collects/tests/mzscheme/kw.ss
rename to collects/tests/racket/kw.rkt
index d89e8bd7ec..d8ec3a83b5 100644
--- a/collects/tests/mzscheme/kw.ss
+++ b/collects/tests/racket/kw.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'kw)
diff --git a/collects/tests/mzscheme/lang/reader.ss b/collects/tests/racket/lang/reader.rkt
similarity index 89%
rename from collects/tests/mzscheme/lang/reader.ss
rename to collects/tests/racket/lang/reader.rkt
index a3a965777c..ea3c1711a4 100644
--- a/collects/tests/mzscheme/lang/reader.ss
+++ b/collects/tests/racket/lang/reader.rkt
@@ -13,4 +13,4 @@
(wrap-read-all 'scheme port (lambda (in) (read-syntax src in)) modpath src line col pos)
#f)
'module-language
- '#(tests/mzscheme/lang/getinfo get-info closure-data)))
+ '#(tests/racket/lang/getinfo get-info closure-data)))
diff --git a/collects/tests/mzscheme/list.ss b/collects/tests/racket/list.rkt
similarity index 99%
rename from collects/tests/mzscheme/list.ss
rename to collects/tests/racket/list.rkt
index f6519acc96..112db6ecff 100644
--- a/collects/tests/mzscheme/list.ss
+++ b/collects/tests/racket/list.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'list)
diff --git a/collects/tests/mzscheme/loadable.ss b/collects/tests/racket/loadable.rkt
similarity index 100%
rename from collects/tests/mzscheme/loadable.ss
rename to collects/tests/racket/loadable.rkt
diff --git a/collects/tests/mzscheme/loadtest.ss b/collects/tests/racket/loadtest.rkt
similarity index 65%
rename from collects/tests/mzscheme/loadtest.ss
rename to collects/tests/racket/loadtest.rkt
index 671937f140..1e05bd0f11 100644
--- a/collects/tests/mzscheme/loadtest.ss
+++ b/collects/tests/racket/loadtest.rkt
@@ -1,3 +1,3 @@
(unless (namespace-variable-value 'Section #f (lambda () #f))
- (load-relative "testing.ss"))
+ (load-relative "testing.rkt"))
diff --git a/collects/tests/mzscheme/logger.ss b/collects/tests/racket/logger.rkt
similarity index 98%
rename from collects/tests/mzscheme/logger.ss
rename to collects/tests/racket/logger.rkt
index 371db99348..6076abb5dd 100644
--- a/collects/tests/mzscheme/logger.ss
+++ b/collects/tests/racket/logger.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'logger)
diff --git a/collects/tests/mzscheme/loop.ss b/collects/tests/racket/loop.rkt
similarity index 100%
rename from collects/tests/mzscheme/loop.ss
rename to collects/tests/racket/loop.rkt
diff --git a/collects/tests/mzscheme/ltest.ss b/collects/tests/racket/ltest.rkt
similarity index 100%
rename from collects/tests/mzscheme/ltest.ss
rename to collects/tests/racket/ltest.rkt
diff --git a/collects/tests/mzscheme/macro.ss b/collects/tests/racket/macro.rkt
similarity index 99%
rename from collects/tests/mzscheme/macro.ss
rename to collects/tests/racket/macro.rkt
index e308ab9b05..6e9d557c21 100644
--- a/collects/tests/mzscheme/macro.ss
+++ b/collects/tests/racket/macro.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'macro)
diff --git a/collects/tests/mzscheme/macrolib.ss b/collects/tests/racket/macrolib.rkt
similarity index 99%
rename from collects/tests/mzscheme/macrolib.ss
rename to collects/tests/racket/macrolib.rkt
index 91a0bf0d36..b79b23ae11 100644
--- a/collects/tests/mzscheme/macrolib.ss
+++ b/collects/tests/racket/macrolib.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'macrolib)
diff --git a/collects/tests/mzscheme/makeflat.ss b/collects/tests/racket/makeflat.rkt
similarity index 100%
rename from collects/tests/mzscheme/makeflat.ss
rename to collects/tests/racket/makeflat.rkt
diff --git a/collects/tests/mzscheme/makeflats.ss b/collects/tests/racket/makeflats.rkt
similarity index 100%
rename from collects/tests/mzscheme/makeflats.ss
rename to collects/tests/racket/makeflats.rkt
diff --git a/collects/tests/mzscheme/math.ss b/collects/tests/racket/math.rkt
similarity index 95%
rename from collects/tests/mzscheme/math.ss
rename to collects/tests/racket/math.rkt
index 1ca07b9eea..59e7008aae 100644
--- a/collects/tests/mzscheme/math.ss
+++ b/collects/tests/racket/math.rkt
@@ -1,4 +1,4 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'math)
(require scheme/math)
diff --git a/collects/tests/mzscheme/moddep.ss b/collects/tests/racket/moddep.rkt
similarity index 96%
rename from collects/tests/mzscheme/moddep.ss
rename to collects/tests/racket/moddep.rkt
index 71c96d1257..17a8d409e6 100644
--- a/collects/tests/mzscheme/moddep.ss
+++ b/collects/tests/racket/moddep.rkt
@@ -1,6 +1,6 @@
;; FIXME: this file needs to test resolve-module-path for planet paths
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'moddep)
@@ -25,23 +25,24 @@
pi-rel-to)))
(test-rmp (build-path (current-directory) "apple.rkt") "apple.ss" #f)
-(test-rmp (build-path (current-directory) "apple.rkt") "apple.ss" (build-path (current-directory) "x.ss"))
-(test-rmp (build-path (current-directory) "apple.rkt") "apple.ss" current-directory)
-(test-rmp (build-path (current-directory) 'up "apple.rkt") "../apple.ss" #f)
-(test-rmp (build-path (current-directory) 'up 'up "apple.rkt") "../../apple.ss" #f)
-(test-rmp (build-path (current-directory) 'same "apple.rkt") "./apple.ss" #f)
-(test-rmp (build-path (current-directory) "down" "apple.rkt") "down/apple.ss" #f)
+(test-rmp (build-path (current-directory) "apple.rkt") "apple.rkt" #f)
+(test-rmp (build-path (current-directory) "apple.rkt") "apple.rkt" (build-path (current-directory) "x.rkt"))
+(test-rmp (build-path (current-directory) "apple.rkt") "apple.rkt" current-directory)
+(test-rmp (build-path (current-directory) 'up "apple.rkt") "../apple.rkt" #f)
+(test-rmp (build-path (current-directory) 'up 'up "apple.rkt") "../../apple.rkt" #f)
+(test-rmp (build-path (current-directory) 'same "apple.rkt") "./apple.rkt" #f)
+(test-rmp (build-path (current-directory) "down" "apple.rkt") "down/apple.rkt" #f)
(test (build-path (current-directory) 'up 'up "apple.rkt")
resolve-module-path-index
- (module-path-index-join "../apple.ss"
- (module-path-index-join "../other.ss"
+ (module-path-index-join "../apple.rkt"
+ (module-path-index-join "../other.rkt"
(module-path-index-join #f #f)))
- (build-path (current-directory) "f.ss"))
+ (build-path (current-directory) "f.rkt"))
(test (build-path (current-directory) "only.rkt")
resolve-module-path-index
(module-path-index-join #f #f)
- (build-path (current-directory) "only.ss"))
+ (build-path (current-directory) "only.rkt"))
(let ([mzlib (collection-path "mzlib")]
[syntax (collection-path "syntax")])
@@ -54,9 +55,6 @@
(test-rmp (build-path (current-directory) "x.rkt") (build-path "x.ss") #f)
(void))
-
-
-
(err/rt-test (resolve-module-path "apple.ss" 'no))
(err/rt-test (resolve-module-path "/apple.ss" #f))
(err/rt-test (resolve-module-path "apple.ss/" #f))
diff --git a/collects/tests/mzscheme/modprot.ss b/collects/tests/racket/modprot.rkt
similarity index 99%
rename from collects/tests/mzscheme/modprot.ss
rename to collects/tests/racket/modprot.rkt
index 64d03c0386..74b78ed2f6 100644
--- a/collects/tests/mzscheme/modprot.ss
+++ b/collects/tests/racket/modprot.rkt
@@ -1,4 +1,4 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'modprot)
diff --git a/collects/tests/mzscheme/module-reader.ss b/collects/tests/racket/module-reader.rkt
similarity index 99%
rename from collects/tests/mzscheme/module-reader.ss
rename to collects/tests/racket/module-reader.rkt
index 198d66f723..fd6ee4dbd0 100644
--- a/collects/tests/mzscheme/module-reader.ss
+++ b/collects/tests/racket/module-reader.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'module-reader)
diff --git a/collects/tests/mzscheme/module.ss b/collects/tests/racket/module.rkt
similarity index 89%
rename from collects/tests/mzscheme/module.ss
rename to collects/tests/racket/module.rkt
index de8e4e10d8..e91258ddab 100644
--- a/collects/tests/mzscheme/module.ss
+++ b/collects/tests/racket/module.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'module)
@@ -329,7 +329,7 @@
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(test #t module-path? "hello")
-(test #t module-path? "hello.ss")
+(test #t module-path? "hello.rkt")
(test #f module-path? "hello*ss")
(test #t module-path? "hello%2ess")
(test #t module-path? "hello%00ss")
@@ -339,29 +339,29 @@
(test #f module-path? "hello%")
(test #f module-path? "hello%q0")
(test #f module-path? "hello%0q")
-(test #f module-path? "foo.ss/hello")
+(test #f module-path? "foo.rkt/hello")
(test #f module-path? "foo/")
(test #f module-path? "a/foo/")
-(test #f module-path? "/foo.ss")
-(test #f module-path? "/a/foo.ss")
-(test #f module-path? "a/foo.ss/b")
+(test #f module-path? "/foo.rkt")
+(test #f module-path? "/a/foo.rkt")
+(test #f module-path? "a/foo.rkt/b")
(test #t module-path? "a/foo%2ess/b")
(test #t module-path? "a/_/b")
(test #t module-path? "a/0123456789+-_/b.---")
(test #t module-path? "a/0123456789+-_/b.-%2e")
-(test #t module-path? "../foo.ss")
-(test #t module-path? "x/../foo.ss")
-(test #t module-path? "x/./foo.ss")
+(test #t module-path? "../foo.rkt")
+(test #t module-path? "x/../foo.rkt")
+(test #t module-path? "x/./foo.rkt")
(test #t module-path? "x/.")
(test #t module-path? "x/..")
(test #t module-path? 'hello)
(test #f module-path? 'hello/)
-(test #f module-path? 'hello.ss)
+(test #f module-path? 'hello.rkt)
(test #t module-path? 'hello%2ess)
(test #f module-path? 'hello%2Ess)
-(test #f module-path? 'hello/a.ss)
-(test #f module-path? '/hello/a.ss)
+(test #f module-path? 'hello/a.rkt)
+(test #f module-path? '/hello/a.rkt)
(test #f module-path? '/hello)
(test #f module-path? '/a/hello)
(test #f module-path? 'a//hello)
@@ -375,18 +375,18 @@
(test #f module-path? '(lib "hello/"))
(test #f module-path? '(lib "hello/../b"))
(test #t module-path? '(lib "hello/a"))
-(test #t module-path? '(lib "hello/a.ss"))
-(test #f module-path? '(lib "hello.bb/a.ss"))
-(test #f module-path? '(lib "/hello/a.ss"))
-(test #t module-path? '(lib "hello/a.ss" "ack"))
-(test #t module-path? '(lib "hello/a.ss" "ack" "bar"))
-(test #t module-path? '(lib "hello/a.ss" "ack/bar"))
-(test #f module-path? '(lib "hello/a.ss" "ack/"))
-(test #f module-path? '(lib "hello/a.ss" "ack" "/bar"))
-(test #f module-path? '(lib "hello/a.ss" "ack" ".."))
-(test #f module-path? '(lib "hello/a.ss" "ack" bar))
-(test #f module-path? '(lib "hello/a.ss" . bar))
-(test #f module-path? '(lib . "hello/a.ss"))
+(test #t module-path? '(lib "hello/a.rkt"))
+(test #f module-path? '(lib "hello.bb/a.rkt"))
+(test #f module-path? '(lib "/hello/a.rkt"))
+(test #t module-path? '(lib "hello/a.rkt" "ack"))
+(test #t module-path? '(lib "hello/a.rkt" "ack" "bar"))
+(test #t module-path? '(lib "hello/a.rkt" "ack/bar"))
+(test #f module-path? '(lib "hello/a.rkt" "ack/"))
+(test #f module-path? '(lib "hello/a.rkt" "ack" "/bar"))
+(test #f module-path? '(lib "hello/a.rkt" "ack" ".."))
+(test #f module-path? '(lib "hello/a.rkt" "ack" bar))
+(test #f module-path? '(lib "hello/a.rkt" . bar))
+(test #f module-path? '(lib . "hello/a.rkt"))
(test #f module-path? '(lib))
(test #f module-path? '(planet))
@@ -399,8 +399,8 @@
(test #f module-path? '(planet robby/redex/foo/))
(test #f module-path? '(planet /robby/redex/foo))
(test #f module-path? '(planet robby/redex.plt/foo))
-(test #f module-path? '(planet robby/redex/foo.ss))
-(test #f module-path? '(planet robby/redex/foo.ss/bar))
+(test #f module-path? '(planet robby/redex/foo.rkt))
+(test #f module-path? '(planet robby/redex/foo.rkt/bar))
(test #f module-path? '(planet robby/../foo))
(test #t module-path? '(planet robby/redex/foo))
(test #t module-path? '(planet robby/redex/foo/bar))
@@ -422,14 +422,14 @@
(test #f module-path? '(planet robby/redex:7:a-10/foo))
(test #f module-path? '(planet robby/redex:7:10-a/foo))
-(test #f module-path? '(planet "foo.ss"))
-(test #t module-path? '(planet "foo.ss" ("robby" "redex.plt")))
-(test #f module-path? '(planet "../foo.ss" ("robby" "redex.plt")))
-(test #t module-path? '(planet "foo.ss" ("robby" "redex.plt" 7 (7 8))))
-(test #t module-path? '(planet "foo.ss" ("robby" "redex.plt" 7 8)))
-(test #t module-path? '(planet "foo.ss" ("robby" "redex.plt" 7 (= 8))))
-(test #t module-path? '(planet "foo.ss" ("robby" "redex.plt") "sub" "deeper"))
-(test #t module-path? '(planet "foo%2e.ss" ("robby%2e" "redex%2e.plt") "sub%2e" "%2edeeper"))
+(test #f module-path? '(planet "foo.rkt"))
+(test #t module-path? '(planet "foo.rkt" ("robby" "redex.plt")))
+(test #f module-path? '(planet "../foo.rkt" ("robby" "redex.plt")))
+(test #t module-path? '(planet "foo.rkt" ("robby" "redex.plt" 7 (7 8))))
+(test #t module-path? '(planet "foo.rkt" ("robby" "redex.plt" 7 8)))
+(test #t module-path? '(planet "foo.rkt" ("robby" "redex.plt" 7 (= 8))))
+(test #t module-path? '(planet "foo.rkt" ("robby" "redex.plt") "sub" "deeper"))
+(test #t module-path? '(planet "foo%2e.rkt" ("robby%2e" "redex%2e.plt") "sub%2e" "%2edeeper"))
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Check 'module-language, `module-compiled-language-info', and `module->language-info'
@@ -445,18 +445,18 @@
(eval mk ns)
(eval (mk '#(scheme x "whatever")))
(test '#(scheme x "whatever") module->language-info ''m)
- (let ([path (build-path (collection-path "tests" "mzscheme")
- "langm.ss")])
+ (let ([path (build-path (collection-path "tests" "racket")
+ "langm.rkt")])
(parameterize ([read-accept-reader #t]
[current-module-declare-name (module-path-index-resolve
(module-path-index-join path #f))])
(eval
(read-syntax path
- (open-input-string "#lang tests/mzscheme (provide x) (define x 1)"
+ (open-input-string "#lang tests/racket (provide x) (define x 1)"
path)))
((current-module-name-resolver) (current-module-declare-name))))
- (test '#(tests/mzscheme/lang/getinfo get-info closure-data)
- module->language-info 'tests/mzscheme/langm))))
+ (test '#(tests/racket/lang/getinfo get-info closure-data)
+ module->language-info 'tests/racket/langm))))
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Check shadowing of initial imports:
diff --git a/collects/tests/mzscheme/mpair.ss b/collects/tests/racket/mpair.rkt
similarity index 97%
rename from collects/tests/mzscheme/mpair.ss
rename to collects/tests/racket/mpair.rkt
index 81b044e468..6e2065dbbf 100644
--- a/collects/tests/mzscheme/mpair.ss
+++ b/collects/tests/racket/mpair.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'mpair)
diff --git a/collects/tests/racket/mz-tests.rkt b/collects/tests/racket/mz-tests.rkt
new file mode 100644
index 0000000000..1fb877acd1
--- /dev/null
+++ b/collects/tests/racket/mz-tests.rkt
@@ -0,0 +1,42 @@
+
+(load-relative "loadtest.rkt")
+
+(load-relative "basic.rkt")
+(load-relative "unicode.rkt")
+(load-relative "rx.rkt")
+(load-relative "read.rkt")
+(load-relative "macro.rkt")
+(load-relative "syntax.rkt")
+(load-relative "procs.rkt")
+(load-relative "stx.rkt")
+(load-relative "module.rkt")
+(load-relative "number.rkt")
+(load-relative "unsafe.rkt")
+(load-relative "object.rkt")
+(load-relative "struct.rkt")
+(load-relative "unit.rkt")
+(load-relative "unitsig.rkt")
+(load-relative "thread.rkt")
+(load-relative "logger.rkt")
+(load-relative "sync.rkt")
+(load-relative "deep.rkt")
+(load-relative "contmark.rkt")
+(load-relative "prompt.rkt")
+(load-relative "will.rkt")
+(load-relative "namespac.rkt")
+(load-relative "modprot.rkt")
+(load-relative "chaperone.rkt")
+(unless (or building-flat-tests? in-drscheme?)
+ (load-relative "param.rkt"))
+(load-relative "port.rkt")
+(load-relative "file.rkt")
+(load-relative "path.rkt")
+(unless (or building-flat-tests? in-drscheme?)
+ (load-relative "optimize.rkt"))
+(unless building-flat-tests?
+ (load-relative "name.rkt"))
+
+;; Ok, so this isn't really all of them. Here are more:
+; thrport.rkt
+
+; See also README
diff --git a/collects/tests/racket/mzlib-tests.rkt b/collects/tests/racket/mzlib-tests.rkt
new file mode 100644
index 0000000000..cd0d80ff53
--- /dev/null
+++ b/collects/tests/racket/mzlib-tests.rkt
@@ -0,0 +1,31 @@
+
+; Test MzLib
+; See also pptest.rkt and ztest.rkt
+
+(load-relative "loadtest.rkt")
+(load-in-sandbox "mpair.rkt")
+(load-in-sandbox "etc.rkt")
+(load-in-sandbox "structlib.rkt")
+(load-in-sandbox "async-channel.rkt")
+(load-in-sandbox "restart.rkt")
+(load-in-sandbox "string-mzlib.rkt")
+(load-in-sandbox "pathlib.rkt")
+(load-in-sandbox "filelib.rkt")
+(load-in-sandbox "portlib.rkt")
+(load-in-sandbox "threadlib.rkt")
+(load-in-sandbox "set.rkt")
+(load-in-sandbox "date.rkt")
+(load-in-sandbox "compat.rkt")
+(load-in-sandbox "cmdline.rkt")
+(load-in-sandbox "pconvert.rkt")
+(load-in-sandbox "pretty.rkt")
+(load-in-sandbox "control.rkt")
+(load-in-sandbox "serialize.rkt")
+(load-in-sandbox "package.rkt")
+(load-in-sandbox "contract-mzlib-test.rkt")
+(load-in-sandbox "sandbox.rkt")
+(load-in-sandbox "shared.rkt")
+(load-in-sandbox "kw.rkt")
+(load-in-sandbox "macrolib.rkt")
+
+(report-errs)
diff --git a/collects/tests/mzscheme/mzlonglong.c b/collects/tests/racket/mzlonglong.c
similarity index 100%
rename from collects/tests/mzscheme/mzlonglong.c
rename to collects/tests/racket/mzlonglong.c
diff --git a/collects/tests/racket/mzq.rkt b/collects/tests/racket/mzq.rkt
new file mode 100644
index 0000000000..74cc6bd914
--- /dev/null
+++ b/collects/tests/racket/mzq.rkt
@@ -0,0 +1,3 @@
+
+(define quiet-load "mz-tests.rkt")
+(load-relative "quiet.rkt")
diff --git a/collects/tests/mzscheme/name.ss b/collects/tests/racket/name.rkt
similarity index 99%
rename from collects/tests/mzscheme/name.ss
rename to collects/tests/racket/name.rkt
index 20b333199b..826ab9d609 100644
--- a/collects/tests/mzscheme/name.ss
+++ b/collects/tests/racket/name.rkt
@@ -1,7 +1,7 @@
; Test MzScheme's name inference
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(require scheme/class)
(require scheme/unit)
diff --git a/collects/tests/mzscheme/namespac.ss b/collects/tests/racket/namespac.rkt
similarity index 99%
rename from collects/tests/mzscheme/namespac.ss
rename to collects/tests/racket/namespac.rkt
index e75ead5866..6f3735b1d2 100644
--- a/collects/tests/mzscheme/namespac.ss
+++ b/collects/tests/racket/namespac.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'namespaces)
diff --git a/collects/tests/mzscheme/nch.ss b/collects/tests/racket/nch.rkt
similarity index 100%
rename from collects/tests/mzscheme/nch.ss
rename to collects/tests/racket/nch.rkt
diff --git a/collects/tests/mzscheme/net.ss b/collects/tests/racket/net.rkt
similarity index 100%
rename from collects/tests/mzscheme/net.ss
rename to collects/tests/racket/net.rkt
diff --git a/collects/tests/mzscheme/number.ss b/collects/tests/racket/number.rkt
similarity index 99%
rename from collects/tests/mzscheme/number.ss
rename to collects/tests/racket/number.rkt
index 1588c12a60..91e68c65a3 100644
--- a/collects/tests/mzscheme/number.ss
+++ b/collects/tests/racket/number.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'numbers)
@@ -1997,7 +1997,7 @@
(test 15 string->number "#o17")
(test 15 string->number "#o17" 10)
-(load-relative "numstrs.ss")
+(load-relative "numstrs.rkt")
(let loop ([l number-table])
(unless (null? l)
(let* ([pair (car l)]
diff --git a/collects/tests/mzscheme/numstrs.ss b/collects/tests/racket/numstrs.rkt
similarity index 100%
rename from collects/tests/mzscheme/numstrs.ss
rename to collects/tests/racket/numstrs.rkt
diff --git a/collects/tests/mzscheme/object-old.ss b/collects/tests/racket/object-old.rkt
similarity index 100%
rename from collects/tests/mzscheme/object-old.ss
rename to collects/tests/racket/object-old.rkt
diff --git a/collects/tests/mzscheme/object.ss b/collects/tests/racket/object.rkt
similarity index 99%
rename from collects/tests/mzscheme/object.ss
rename to collects/tests/racket/object.rkt
index 2eddd2b783..78a98fc09e 100644
--- a/collects/tests/mzscheme/object.ss
+++ b/collects/tests/racket/object.rkt
@@ -1,7 +1,5 @@
-; Test MzScheme's new object system
-
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(require scheme/class)
diff --git a/collects/tests/mzscheme/oe.ss b/collects/tests/racket/oe.rkt
similarity index 100%
rename from collects/tests/mzscheme/oe.ss
rename to collects/tests/racket/oe.rkt
diff --git a/collects/tests/mzscheme/openssl.ss b/collects/tests/racket/openssl.rkt
similarity index 100%
rename from collects/tests/mzscheme/openssl.ss
rename to collects/tests/racket/openssl.rkt
diff --git a/collects/tests/mzscheme/optimize.ss b/collects/tests/racket/optimize.rkt
similarity index 99%
rename from collects/tests/mzscheme/optimize.ss
rename to collects/tests/racket/optimize.rkt
index ce0953a310..83994ae756 100644
--- a/collects/tests/mzscheme/optimize.ss
+++ b/collects/tests/racket/optimize.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'optimization)
diff --git a/collects/tests/mzscheme/pack.ss b/collects/tests/racket/pack.rkt
similarity index 100%
rename from collects/tests/mzscheme/pack.ss
rename to collects/tests/racket/pack.rkt
diff --git a/collects/tests/mzscheme/package-gen.ss b/collects/tests/racket/package-gen.rkt
similarity index 100%
rename from collects/tests/mzscheme/package-gen.ss
rename to collects/tests/racket/package-gen.rkt
diff --git a/collects/tests/mzscheme/package.ss b/collects/tests/racket/package.rkt
similarity index 99%
rename from collects/tests/mzscheme/package.ss
rename to collects/tests/racket/package.rkt
index c60a471180..fca5142ae3 100644
--- a/collects/tests/mzscheme/package.ss
+++ b/collects/tests/racket/package.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(require scheme/package)
(Section 'packages)
diff --git a/collects/tests/mzscheme/parallel.ss b/collects/tests/racket/parallel.rkt
similarity index 100%
rename from collects/tests/mzscheme/parallel.ss
rename to collects/tests/racket/parallel.rkt
diff --git a/collects/tests/mzscheme/param.ss b/collects/tests/racket/param.rkt
similarity index 99%
rename from collects/tests/mzscheme/param.ss
rename to collects/tests/racket/param.rkt
index 0472ff6520..21326b2f57 100644
--- a/collects/tests/mzscheme/param.ss
+++ b/collects/tests/racket/param.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'parameters)
@@ -360,7 +360,7 @@
(list current-load-relative-directory
(list (current-load-relative-directory)
(build-path (current-load-relative-directory) 'up))
- '(load-relative "loadable.ss")
+ '(load-relative "loadable.rkt")
exn:fail:filesystem?
(append (list 0)
(map
diff --git a/collects/tests/mzscheme/path.ss b/collects/tests/racket/path.rkt
similarity index 99%
rename from collects/tests/mzscheme/path.ss
rename to collects/tests/racket/path.rkt
index 8705dc9371..fe21ac5e63 100644
--- a/collects/tests/mzscheme/path.ss
+++ b/collects/tests/racket/path.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'path)
diff --git a/collects/tests/mzscheme/pathlib.ss b/collects/tests/racket/pathlib.rkt
similarity index 99%
rename from collects/tests/mzscheme/pathlib.ss
rename to collects/tests/racket/pathlib.rkt
index d088aca2fc..acada5eb44 100644
--- a/collects/tests/mzscheme/pathlib.ss
+++ b/collects/tests/racket/pathlib.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'path)
diff --git a/collects/tests/mzscheme/pconvert.ss b/collects/tests/racket/pconvert.rkt
similarity index 99%
rename from collects/tests/mzscheme/pconvert.ss
rename to collects/tests/racket/pconvert.rkt
index 08f0905dc2..58385e92db 100644
--- a/collects/tests/mzscheme/pconvert.ss
+++ b/collects/tests/racket/pconvert.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'pconvert)
@@ -367,7 +367,7 @@
(test 'empty print-convert '())
-(let ([fn (make-temporary-file "pconvert.ss-test~a")])
+(let ([fn (make-temporary-file "pconvert.rkt-test~a")])
(let ([in (open-input-file fn)])
(test `(open-input-file ,fn) print-convert in)
(close-input-port in))
diff --git a/collects/tests/mzscheme/place-channel.ss b/collects/tests/racket/place-channel.rkt
similarity index 100%
rename from collects/tests/mzscheme/place-channel.ss
rename to collects/tests/racket/place-channel.rkt
diff --git a/collects/tests/mzscheme/port.ss b/collects/tests/racket/port.rkt
similarity index 99%
rename from collects/tests/mzscheme/port.ss
rename to collects/tests/racket/port.rkt
index 63820c0542..bfe5a342fd 100644
--- a/collects/tests/mzscheme/port.ss
+++ b/collects/tests/racket/port.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'port)
diff --git a/collects/tests/mzscheme/portlib.ss b/collects/tests/racket/portlib.rkt
similarity index 99%
rename from collects/tests/mzscheme/portlib.ss
rename to collects/tests/racket/portlib.rkt
index 75f1066022..c9f86c5e84 100644
--- a/collects/tests/mzscheme/portlib.ss
+++ b/collects/tests/racket/portlib.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'port)
diff --git a/collects/tests/mzscheme/pp-regression.ss b/collects/tests/racket/pp-regression.rktd
similarity index 100%
rename from collects/tests/mzscheme/pp-regression.ss
rename to collects/tests/racket/pp-regression.rktd
diff --git a/collects/tests/mzscheme/pretty.ss b/collects/tests/racket/pretty.rkt
similarity index 98%
rename from collects/tests/mzscheme/pretty.ss
rename to collects/tests/racket/pretty.rkt
index 0462ab638d..1d26124b4d 100644
--- a/collects/tests/mzscheme/pretty.ss
+++ b/collects/tests/racket/pretty.rkt
@@ -1,19 +1,21 @@
; Test pretty-print.
-;; Regression test results in pp-regression.ss. When things
+;; Regression test results in pp-regression.rktd. When things
;; have to change, re-run with `record-for-regression?' to #t.
(define record-for-regression? #f)
;; Disable `use-regression?' when inspecting results after a
;; changed; when it's ok, then record the new regression results.
(define use-regression? #t)
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'pretty)
(require mzlib/pretty)
+(print-as-quasiquote #f)
+
(define (pprec-print pprec port write?)
(define (print-one n port)
((if write? write display) (pprec-ref pprec n) port))
@@ -281,7 +283,7 @@
(define regression-path
(build-path (current-load-relative-directory)
- "pp-regression.ss"))
+ "pp-regression.rktd"))
(define recorded (if record-for-regression?
null
@@ -323,4 +325,6 @@
(test #t 'use-regression? use-regression?)
+(print-as-quasiquote #t)
+
(report-errs)
diff --git a/collects/tests/mzscheme/procs.ss b/collects/tests/racket/procs.rkt
similarity index 99%
rename from collects/tests/mzscheme/procs.ss
rename to collects/tests/racket/procs.rkt
index 4b665ab46f..9bc585a025 100644
--- a/collects/tests/mzscheme/procs.ss
+++ b/collects/tests/racket/procs.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'procs)
diff --git a/collects/tests/mzscheme/prompt-sfs.ss b/collects/tests/racket/prompt-sfs.rkt
similarity index 94%
rename from collects/tests/mzscheme/prompt-sfs.ss
rename to collects/tests/racket/prompt-sfs.rkt
index ccc9ede999..cea6d2a9c0 100644
--- a/collects/tests/mzscheme/prompt-sfs.ss
+++ b/collects/tests/racket/prompt-sfs.rkt
@@ -1,5 +1,5 @@
-#lang scheme
-(require scheme/system)
+#lang racket
+(require racket/system)
#|
@@ -10,7 +10,7 @@ the `x' binding is part of the deeper meta-continuation when `ak'
is captured, but it is delimited inside the binding, so `x'
should not be reated in `ak'.
-The test is implemented using `dump-memory-stats' in another mzscheme
+The test is implemented using `dump-memory-stats' in another racket
process.
|#
@@ -19,7 +19,7 @@ process.
(let ([f (find-executable-path (find-system-path 'exec-file) #f)])
(let ([p (open-output-bytes)])
(parameterize ([current-error-port p])
- (system* f "-l" "tests/mzscheme/prompt-sfs" "sub"))
+ (system* f "-l" "tests/racket/prompt-sfs" "sub"))
(unless (regexp-match? #rx": +1 +" (get-output-bytes p))
(error "wrong output")
(exit 1))))
diff --git a/collects/tests/mzscheme/prompt-tests.ss b/collects/tests/racket/prompt-tests.rkt
similarity index 100%
rename from collects/tests/mzscheme/prompt-tests.ss
rename to collects/tests/racket/prompt-tests.rkt
diff --git a/collects/tests/mzscheme/prompt.ss b/collects/tests/racket/prompt.rkt
similarity index 97%
rename from collects/tests/mzscheme/prompt.ss
rename to collects/tests/racket/prompt.rkt
index 6ed95f6ca1..637b588a4c 100644
--- a/collects/tests/mzscheme/prompt.ss
+++ b/collects/tests/racket/prompt.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'prompt)
@@ -97,7 +97,7 @@
;; ----------------------------------------
-(load-relative "prompt-tests.ss")
+(load-relative "prompt-tests.rkt")
;; ----------------------------------------
@@ -111,7 +111,7 @@
(let ([p (open-input-file (build-path
(or (current-load-relative-directory)
(current-directory))
- "prompt-tests.ss"))])
+ "prompt-tests.rkt"))])
(let loop ()
(let ([r (read-syntax (object-name p) p)])
(unless (eof-object? r)
diff --git a/collects/tests/mzscheme/quiet.ss b/collects/tests/racket/quiet.rkt
similarity index 99%
rename from collects/tests/mzscheme/quiet.ss
rename to collects/tests/racket/quiet.rkt
index f7df4edf00..8a40080fb4 100644
--- a/collects/tests/mzscheme/quiet.ss
+++ b/collects/tests/racket/quiet.rkt
@@ -3,7 +3,7 @@
(lambda ()
(namespace-set-variable-value! 'quiet-load
(let ([argv (current-command-line-arguments)])
- (if (= 1 (vector-length argv)) (vector-ref argv 0) "all.ss")))))
+ (if (= 1 (vector-length argv)) (vector-ref argv 0) "all.rkt")))))
(define timeout-thread #f)
diff --git a/collects/tests/mzscheme/read.ss b/collects/tests/racket/read.rkt
similarity index 99%
rename from collects/tests/mzscheme/read.ss
rename to collects/tests/racket/read.rkt
index c53e74d28b..fc87218d68 100644
--- a/collects/tests/mzscheme/read.ss
+++ b/collects/tests/racket/read.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'reading)
(define readstr
@@ -16,7 +16,7 @@
(lambda (x) x))
; Make sure {whitespace} == {delimiter}
-(let ([with-censor (load-relative "censor.ss")])
+(let ([with-censor (load-relative "censor.rkt")])
(with-censor
(lambda ()
(let loop ([n 0])
@@ -172,7 +172,7 @@
(err/rt-test (readstr "#\"\\777\"") exn:fail:read?)
(err/rt-test (readstr "#\"\\u0040\"") exn:fail:read?)
-(load-relative "numstrs.ss")
+(load-relative "numstrs.rkt")
(let loop ([l number-table])
(unless (null? l)
(let* ([pair (car l)]
@@ -488,7 +488,7 @@
#ci(test (string->symbol "aAa") 'quote '|aAa|)
#ci(test (string->symbol "aAa") 'quote 'A|A|A)
-(load-relative "numstrs.ss")
+(load-relative "numstrs.rkt")
(let loop ([l number-table])
(cond
[(null? l) 'done]
@@ -1055,4 +1055,4 @@
(report-errs)
-(load-relative "readtable.ss")
+(load-relative "readtable.rkt")
diff --git a/collects/tests/mzscheme/readtable.ss b/collects/tests/racket/readtable.rkt
similarity index 99%
rename from collects/tests/mzscheme/readtable.ss
rename to collects/tests/racket/readtable.rkt
index bff34f6643..462d1635dc 100644
--- a/collects/tests/mzscheme/readtable.ss
+++ b/collects/tests/racket/readtable.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'readtable)
diff --git a/collects/tests/mzscheme/restart.ss b/collects/tests/racket/restart.rkt
similarity index 97%
rename from collects/tests/mzscheme/restart.ss
rename to collects/tests/racket/restart.rkt
index a49cdc6533..56d5b03bab 100644
--- a/collects/tests/mzscheme/restart.ss
+++ b/collects/tests/racket/restart.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(require mzlib/restart)
diff --git a/collects/tests/mzscheme/runflats.ss b/collects/tests/racket/runflats.rkt
similarity index 100%
rename from collects/tests/mzscheme/runflats.ss
rename to collects/tests/racket/runflats.rkt
diff --git a/collects/tests/mzscheme/rx.ss b/collects/tests/racket/rx.rkt
similarity index 99%
rename from collects/tests/mzscheme/rx.ss
rename to collects/tests/racket/rx.rkt
index b7d7be3b81..1cc50eb170 100644
--- a/collects/tests/mzscheme/rx.ss
+++ b/collects/tests/racket/rx.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'rx)
diff --git a/collects/tests/mzscheme/sandbox.ss b/collects/tests/racket/sandbox.rkt
similarity index 97%
rename from collects/tests/mzscheme/sandbox.ss
rename to collects/tests/racket/sandbox.rkt
index b691da7de5..53aa656f83 100644
--- a/collects/tests/mzscheme/sandbox.ss
+++ b/collects/tests/racket/sandbox.rkt
@@ -1,9 +1,9 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'sandbox)
-(require scheme/sandbox)
+(require racket/sandbox)
;; test call-in-nested-thread*
(let ()
@@ -39,9 +39,9 @@
(define (make-evaluator! . args)
(set! ev (apply make-evaluator args)))
(define (make-base-evaluator! . args)
- (set! ev (apply make-evaluator 'scheme/base args)))
+ (set! ev (apply make-evaluator 'racket/base args)))
(define (make-base-evaluator/reqs! reqs . args)
- (set! ev (apply make-evaluator 'scheme/base #:requires reqs args)))
+ (set! ev (apply make-evaluator 'racket/base #:requires reqs args)))
(define (make-module-evaluator! . args)
(set! ev (apply make-module-evaluator args)))
(define (run thunk)
@@ -272,11 +272,11 @@
;; whole program argument
--top--
- (make-module-evaluator! '(module foo scheme/base (define x 1)))
+ (make-module-evaluator! '(module foo racket/base (define x 1)))
--eval--
x => 1
--top--
- (make-module-evaluator! '(module foo scheme/base (provide x) (define x 1)))
+ (make-module-evaluator! '(module foo racket/base (provide x) (define x 1)))
--eval--
x => 1
(define x 2) =err> "cannot re-define a constant"
@@ -288,10 +288,10 @@
[racketlib (strpath (collection-path "racket"))]
[list-lib (strpath racketlib "list.rkt")]
[list-zo (strpath racketlib "compiled" "list_rkt.zo")]
- [test-lib (strpath tmp "sandbox-test.ss")]
- [test-zo (strpath tmp "compiled" "sandbox-test_ss.zo")]
- [test2-lib (strpath tmp "sandbox-test2.ss")]
- [test2-zo (strpath tmp "compiled" "sandbox-test2_ss.zo")])
+ [test-lib (strpath tmp "sandbox-test.rkt")]
+ [test-zo (strpath tmp "compiled" "sandbox-test_rkt.zo")]
+ [test2-lib (strpath tmp "sandbox-test2.rkt")]
+ [test2-zo (strpath tmp "compiled" "sandbox-test2_rkt.zo")])
(t --top--
(make-base-evaluator!)
--eval--
diff --git a/collects/tests/racket/scheme-tests.rkt b/collects/tests/racket/scheme-tests.rkt
new file mode 100644
index 0000000000..7e1b168f54
--- /dev/null
+++ b/collects/tests/racket/scheme-tests.rkt
@@ -0,0 +1,12 @@
+
+(load-relative "loadtest.rkt")
+
+(load-in-sandbox "for.rkt")
+(load-in-sandbox "list.rkt")
+(load-in-sandbox "math.rkt")
+(load-in-sandbox "vector.rkt")
+(load-in-sandbox "function.rkt")
+(load-in-sandbox "dict.rkt")
+(load-in-sandbox "contract-test.rkt")
+(load-in-sandbox "fixnum.rkt")
+
diff --git a/collects/tests/mzscheme/serialize.ss b/collects/tests/racket/serialize.rkt
similarity index 99%
rename from collects/tests/mzscheme/serialize.ss
rename to collects/tests/racket/serialize.rkt
index d41a578960..6d4317ae27 100644
--- a/collects/tests/mzscheme/serialize.ss
+++ b/collects/tests/racket/serialize.rkt
@@ -1,6 +1,6 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'serialization)
diff --git a/collects/tests/mzscheme/set.ss b/collects/tests/racket/set.rkt
similarity index 99%
rename from collects/tests/mzscheme/set.ss
rename to collects/tests/racket/set.rkt
index 1089b48cb2..af0ec0338b 100644
--- a/collects/tests/mzscheme/set.ss
+++ b/collects/tests/racket/set.rkt
@@ -1,4 +1,4 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'sets)
(require scheme/set)
diff --git a/collects/tests/mzscheme/shared-tests.ss b/collects/tests/racket/shared-tests.rkt
similarity index 100%
rename from collects/tests/mzscheme/shared-tests.ss
rename to collects/tests/racket/shared-tests.rkt
diff --git a/collects/tests/mzscheme/shared.ss b/collects/tests/racket/shared.rkt
similarity index 73%
rename from collects/tests/mzscheme/shared.ss
rename to collects/tests/racket/shared.rkt
index 145bc7fa62..c823b85688 100644
--- a/collects/tests/mzscheme/shared.ss
+++ b/collects/tests/racket/shared.rkt
@@ -1,18 +1,18 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'shared)
(require mzlib/shared)
(require (only-in mzscheme define-struct))
-(load-relative "shared-tests.ss")
+(load-relative "shared-tests.rkt")
(stest (letrec ([x x]) x) (shared ([x x]) x))
(stest (letrec ([x x]) x) (shared ([x y][y x]) x))
(namespace-require/copy 'scheme/base)
(require (only-in mzscheme define-struct))
-(load-relative "shared-tests.ss")
+(load-relative "shared-tests.rkt")
(report-errs)
diff --git a/collects/tests/mzscheme/srfi.ss b/collects/tests/racket/srfi.rkt
similarity index 100%
rename from collects/tests/mzscheme/srfi.ss
rename to collects/tests/racket/srfi.rkt
diff --git a/collects/tests/mzscheme/stream.ss b/collects/tests/racket/stream.rkt
similarity index 100%
rename from collects/tests/mzscheme/stream.ss
rename to collects/tests/racket/stream.rkt
diff --git a/collects/tests/mzscheme/string-mzlib.ss b/collects/tests/racket/string-mzlib.rkt
similarity index 99%
rename from collects/tests/mzscheme/string-mzlib.ss
rename to collects/tests/racket/string-mzlib.rkt
index e014b2c86c..45f357391a 100644
--- a/collects/tests/mzscheme/string-mzlib.ss
+++ b/collects/tests/racket/string-mzlib.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'mzlib-string)
diff --git a/collects/tests/mzscheme/string.ss b/collects/tests/racket/string.rkt
similarity index 100%
rename from collects/tests/mzscheme/string.ss
rename to collects/tests/racket/string.rkt
diff --git a/collects/tests/mzscheme/struct.ss b/collects/tests/racket/struct.rkt
similarity index 99%
rename from collects/tests/mzscheme/struct.ss
rename to collects/tests/racket/struct.rkt
index f4ad365af6..2c70cc0c85 100644
--- a/collects/tests/mzscheme/struct.ss
+++ b/collects/tests/racket/struct.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'struct)
diff --git a/collects/tests/mzscheme/structlib.ss b/collects/tests/racket/structlib.rkt
similarity index 97%
rename from collects/tests/mzscheme/structlib.ss
rename to collects/tests/racket/structlib.rkt
index 0a8ae1a494..a827649f20 100644
--- a/collects/tests/mzscheme/structlib.ss
+++ b/collects/tests/racket/structlib.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'structlib)
diff --git a/collects/tests/mzscheme/stx.ss b/collects/tests/racket/stx.rkt
similarity index 99%
rename from collects/tests/mzscheme/stx.ss
rename to collects/tests/racket/stx.rkt
index 3054b366e7..8da932c7b8 100644
--- a/collects/tests/mzscheme/stx.ss
+++ b/collects/tests/racket/stx.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'stx)
@@ -477,11 +477,11 @@
(cdddr b))
b)))
-(test '('#%kernel case-lambda (lib "scheme/init") case-lambda 0 0 0)
+(test '('#%kernel case-lambda (lib "racket/init") case-lambda 0 0 0)
identifier-binding* #'case-lambda)
-(test '("private/promise.rkt" delay* (lib "scheme/init") delay 0 0 0)
+(test '("private/promise.rkt" delay* (lib "racket/init") delay 0 0 0)
identifier-binding* #'delay)
-(test '('#%kernel #%module-begin (lib "scheme/init") #%plain-module-begin 0 0 0)
+(test '('#%kernel #%module-begin (lib "racket/init") #%plain-module-begin 0 0 0)
identifier-binding* #'#%plain-module-begin)
(require (only-in scheme/base [#%plain-module-begin #%pmb]))
(test '('#%kernel #%module-begin scheme/base #%plain-module-begin 0 0 0)
@@ -489,7 +489,7 @@
(let ([b (identifier-binding
(syntax-case (expand #'(module m scheme/base
- (require (only-in (lib "lang/htdp-intermediate.ss") [cons bcons]))
+ (require (only-in (lib "lang/htdp-intermediate.rkt") [cons bcons]))
bcons)) ()
[(mod m mz (#%mod-beg req (app call-with-values (lambda () cons) print)))
(let ([s (syntax cons)])
@@ -499,11 +499,11 @@
[(nominal nominal-base) (module-path-index-split (caddr b))])
(test '"teachprims.ss" values real)
(test 'beginner-cons cadr b)
- (test '(lib "lang/htdp-intermediate.ss") values nominal)
+ (test '(lib "lang/htdp-intermediate.rkt") values nominal)
(test 'cons cadddr b)))
(let ([b (identifier-binding
- (syntax-case (expand #'(module m (lib "lang/htdp-intermediate.ss")
+ (syntax-case (expand #'(module m (lib "lang/htdp-intermediate.rkt")
cons)) ()
[(mod m beg (#%mod-beg (app call-w-vals (lam () cons) prnt)))
(let ([s (syntax cons)])
@@ -513,7 +513,7 @@
[(nominal nominal-base) (module-path-index-split (caddr b))])
(test '"teachprims.ss" values real)
(test 'beginner-cons cadr b)
- (test '(lib "lang/htdp-intermediate.ss") values nominal)
+ (test '(lib "lang/htdp-intermediate.rkt") values nominal)
(test 'cons cadddr b)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/collects/tests/mzscheme/subprocess.ss b/collects/tests/racket/subprocess.rkt
similarity index 99%
rename from collects/tests/mzscheme/subprocess.ss
rename to collects/tests/racket/subprocess.rkt
index 247b0e18e3..54bd0e4d53 100644
--- a/collects/tests/mzscheme/subprocess.ss
+++ b/collects/tests/racket/subprocess.rkt
@@ -1,5 +1,5 @@
-(load-relative "testing.ss")
+(load-relative "testing.rkt")
(require mzlib/process)
diff --git a/collects/tests/mzscheme/sync.ss b/collects/tests/racket/sync.rkt
similarity index 99%
rename from collects/tests/mzscheme/sync.ss
rename to collects/tests/racket/sync.rkt
index cc416bac7f..f05472eeea 100644
--- a/collects/tests/mzscheme/sync.ss
+++ b/collects/tests/racket/sync.rkt
@@ -1,6 +1,6 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'synchronization)
diff --git a/collects/tests/racket/syntax-tests.rkt b/collects/tests/racket/syntax-tests.rkt
new file mode 100644
index 0000000000..f57a19bee4
--- /dev/null
+++ b/collects/tests/racket/syntax-tests.rkt
@@ -0,0 +1,9 @@
+(load-relative "loadtest.rkt")
+
+(load-in-sandbox "moddep.rkt")
+(load-in-sandbox "boundmap-test.rkt")
+(load-in-sandbox "id-table-test.rkt")
+(load-in-sandbox "cm.rkt")
+(load-in-sandbox "module-reader.rkt")
+
+(report-errs)
diff --git a/collects/tests/mzscheme/syntax.ss b/collects/tests/racket/syntax.rkt
similarity index 99%
rename from collects/tests/mzscheme/syntax.ss
rename to collects/tests/racket/syntax.rkt
index ae36fb67ec..346352d8c1 100644
--- a/collects/tests/mzscheme/syntax.ss
+++ b/collects/tests/racket/syntax.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'syntax)
@@ -1103,7 +1103,7 @@
(test 3 'non-top
(parameterize ([current-namespace ns])
(eval '(+ 1 2))))
- (test '(+ 1 2) 'repl-top
+ (test '`(+ 1 2) 'repl-top
(let ([s (open-output-bytes)])
(parameterize ([current-input-port (open-input-string "(+ 1 2)")]
[current-namespace ns]
diff --git a/collects/tests/mzscheme/tcp.ss b/collects/tests/racket/tcp.rkt
similarity index 100%
rename from collects/tests/mzscheme/tcp.ss
rename to collects/tests/racket/tcp.rkt
diff --git a/collects/tests/mzscheme/testing.ss b/collects/tests/racket/testing.rkt
similarity index 96%
rename from collects/tests/mzscheme/testing.ss
rename to collects/tests/racket/testing.rkt
index 6445d2ee51..a59573773c 100644
--- a/collects/tests/mzscheme/testing.ss
+++ b/collects/tests/racket/testing.rkt
@@ -16,7 +16,7 @@
;;; Revised^4 Report on the Algorithmic Language Scheme
;;; and the IEEE specification.
-; The format of the next line is important: file.ss relies on it
+; The format of the next line is important: file.rkt relies on it
(define cur-section '())(define errs '())
#|
@@ -51,7 +51,7 @@ transcript.
(defvar building-flat-tests? #f)
(defvar in-drscheme? #f)
-;; used when quiet testing (through "quiet.ss") to really show something
+;; used when quiet testing (through "quiet.rkt") to really show something
(defvar real-output-port #f)
(defvar real-error-port #f)
@@ -75,15 +75,15 @@ transcript.
(define number-of-exn-tests 0)
(define (load-in-sandbox file)
- (define-syntax-rule (S id) (dynamic-require 'scheme/sandbox 'id))
+ (define-syntax-rule (S id) (dynamic-require 'racket/sandbox 'id))
(let ([e ((S call-with-trusted-sandbox-configuration)
(lambda ()
(parameterize ([(S sandbox-input) current-input-port]
[(S sandbox-output) current-output-port]
[(S sandbox-error-output) current-error-port]
[(S sandbox-memory-limit) 100]) ; 100mb per box
- ((S make-evaluator) '(begin) #:requires (list 'scheme)))))])
- (e `(load-relative "testing.ss"))
+ ((S make-evaluator) '(begin) #:requires (list 'racket)))))])
+ (e `(load-relative "testing.rkt"))
(e `(define real-output-port (quote ,real-output-port)))
(e `(define real-error-port (quote ,real-error-port)))
(e `(define Section-prefix ,Section-prefix))
@@ -205,7 +205,7 @@ transcript.
[(expr) (error-test expr exn:application:type?)]
[(expr exn-type?) (thunk-error-test (lambda () (eval expr)) expr exn-type?)]))
-(require (only-in scheme [lambda err:mz:lambda])) ; so err/rt-test works with beginner.ss
+(require (only-in racket [lambda err:mz:lambda])) ; so err/rt-test works with beginner.rkt
(define-syntax err/rt-test
(lambda (stx)
(syntax-case stx ()
diff --git a/collects/tests/mzscheme/thread.ss b/collects/tests/racket/thread.rkt
similarity index 99%
rename from collects/tests/mzscheme/thread.ss
rename to collects/tests/racket/thread.rkt
index 35b0dcfe7e..5a8fe0d1ea 100644
--- a/collects/tests/mzscheme/thread.ss
+++ b/collects/tests/racket/thread.rkt
@@ -1,6 +1,6 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'threads)
diff --git a/collects/tests/mzscheme/threadlib.ss b/collects/tests/racket/threadlib.rkt
similarity index 98%
rename from collects/tests/mzscheme/threadlib.ss
rename to collects/tests/racket/threadlib.rkt
index 1ae6ebb741..b961afe92a 100644
--- a/collects/tests/mzscheme/threadlib.ss
+++ b/collects/tests/racket/threadlib.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'threadlib)
diff --git a/collects/tests/mzscheme/thrport.ss b/collects/tests/racket/thrport.rkt
similarity index 95%
rename from collects/tests/mzscheme/thrport.ss
rename to collects/tests/racket/thrport.rkt
index 20d0d31f86..aea785ef52 100644
--- a/collects/tests/mzscheme/thrport.ss
+++ b/collects/tests/racket/thrport.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'multi-threaded-ports)
@@ -8,7 +8,7 @@
; compare resulting character content to the original file
(test 0 'threaded-ports
(let*-values ([(f-in) (open-input-file
- (path->complete-path "testing.ss"
+ (path->complete-path "testing.rkt"
(current-load-relative-directory)))]
[(p-in p-out) (make-pipe)]
[(s-out) (open-output-string)]
diff --git a/collects/tests/mzscheme/trace.ss b/collects/tests/racket/trace.rkt
similarity index 100%
rename from collects/tests/mzscheme/trace.ss
rename to collects/tests/racket/trace.rkt
diff --git a/collects/tests/mzscheme/trait.ss b/collects/tests/racket/trait.rkt
similarity index 100%
rename from collects/tests/mzscheme/trait.ss
rename to collects/tests/racket/trait.rkt
diff --git a/collects/tests/mzscheme/ttt/listlib.ss b/collects/tests/racket/ttt/listlib.rkt
similarity index 100%
rename from collects/tests/mzscheme/ttt/listlib.ss
rename to collects/tests/racket/ttt/listlib.rkt
diff --git a/collects/tests/mzscheme/ttt/tic-bang.ss b/collects/tests/racket/ttt/tic-bang.rkt
similarity index 100%
rename from collects/tests/mzscheme/ttt/tic-bang.ss
rename to collects/tests/racket/ttt/tic-bang.rkt
diff --git a/collects/tests/mzscheme/ttt/tic-func.ss b/collects/tests/racket/ttt/tic-func.rkt
similarity index 100%
rename from collects/tests/mzscheme/ttt/tic-func.ss
rename to collects/tests/racket/ttt/tic-func.rkt
diff --git a/collects/tests/mzscheme/ttt/ttt.ss b/collects/tests/racket/ttt/ttt.rkt
similarity index 100%
rename from collects/tests/mzscheme/ttt/ttt.ss
rename to collects/tests/racket/ttt/ttt.rkt
diff --git a/collects/tests/racket/ttt/uinc4.rkt b/collects/tests/racket/ttt/uinc4.rkt
new file mode 100644
index 0000000000..62230a2316
--- /dev/null
+++ b/collects/tests/racket/ttt/uinc4.rkt
@@ -0,0 +1,5 @@
+
+(define also-unused 'ok)
+
+(include (build-path up "uinc.rkt"))
+
diff --git a/collects/tests/mzscheme/ttt/veclib.ss b/collects/tests/racket/ttt/veclib.rkt
similarity index 100%
rename from collects/tests/mzscheme/ttt/veclib.ss
rename to collects/tests/racket/ttt/veclib.rkt
diff --git a/collects/tests/mzscheme/udp.ss b/collects/tests/racket/udp.rkt
similarity index 99%
rename from collects/tests/mzscheme/udp.ss
rename to collects/tests/racket/udp.rkt
index 61aae4da4d..b59f3b87ff 100644
--- a/collects/tests/mzscheme/udp.ss
+++ b/collects/tests/racket/udp.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'udp)
diff --git a/collects/tests/mzscheme/uinc.ss b/collects/tests/racket/uinc.rkt
similarity index 100%
rename from collects/tests/mzscheme/uinc.ss
rename to collects/tests/racket/uinc.rkt
diff --git a/collects/tests/mzscheme/uinc2.ss b/collects/tests/racket/uinc2.rkt
similarity index 100%
rename from collects/tests/mzscheme/uinc2.ss
rename to collects/tests/racket/uinc2.rkt
diff --git a/collects/tests/racket/uinc3.rkt b/collects/tests/racket/uinc3.rkt
new file mode 100644
index 0000000000..8485dbb7b5
--- /dev/null
+++ b/collects/tests/racket/uinc3.rkt
@@ -0,0 +1,7 @@
+
+(define unused 'hello)
+
+(include (build-path "ttt" "uinc4.rkt"))
+
+
+
diff --git a/collects/tests/mzscheme/uni-norm.ss b/collects/tests/racket/uni-norm.rkt
similarity index 98%
rename from collects/tests/mzscheme/uni-norm.ss
rename to collects/tests/racket/uni-norm.rkt
index 9db87c3b94..797fd6b81b 100644
--- a/collects/tests/mzscheme/uni-norm.ss
+++ b/collects/tests/racket/uni-norm.rkt
@@ -3,7 +3,7 @@
(only-in net/url get-pure-port string->url)
(only-in mzlib/port copy-port))
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'uni-norm)
diff --git a/collects/tests/mzscheme/unicode.ss b/collects/tests/racket/unicode.rkt
similarity index 99%
rename from collects/tests/mzscheme/unicode.ss
rename to collects/tests/racket/unicode.rkt
index 7964cafc24..cb5a9c842a 100644
--- a/collects/tests/mzscheme/unicode.ss
+++ b/collects/tests/racket/unicode.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'unicode)
diff --git a/collects/tests/mzscheme/unit.ss b/collects/tests/racket/unit.rkt
similarity index 99%
rename from collects/tests/mzscheme/unit.ss
rename to collects/tests/racket/unit.rkt
index fce48778fd..0e70240bf8 100644
--- a/collects/tests/mzscheme/unit.ss
+++ b/collects/tests/racket/unit.rkt
@@ -1,10 +1,10 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'unit)
(require mzlib/unit200)
-;; Hide keywords from scheme/unit.ss:
+;; Hide keywords from scheme/unit.rkt:
(define import #f)
(define export #f)
(define link #f)
diff --git a/collects/tests/mzscheme/unitsig.ss b/collects/tests/racket/unitsig.rkt
similarity index 99%
rename from collects/tests/mzscheme/unitsig.ss
rename to collects/tests/racket/unitsig.rkt
index faf879e34a..7dff08d7b3 100644
--- a/collects/tests/mzscheme/unitsig.ss
+++ b/collects/tests/racket/unitsig.rkt
@@ -1,7 +1,7 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
-;; Hide keywords from scheme/unit.ss:
+;; Hide keywords from scheme/unit.rkt:
(define import #f)
(define export #f)
(define link #f)
@@ -178,7 +178,7 @@
()
(import)
- (include "uinc.ss")))
+ (include "uinc.rkt")))
(test 9 'include (invoke-unit/sig i1@))
@@ -189,7 +189,7 @@
(import)
(+ 3 4)
- (include "uinc3.ss")))
+ (include "uinc3.rkt")))
(test 9 'include (invoke-unit/sig i1.5@))
@@ -198,9 +198,9 @@
()
(import)
- (include "uinc.ss")
- (include "uinc2.ss")
- (include "uinc.ss")
+ (include "uinc.rkt")
+ (include "uinc2.rkt")
+ (include "uinc.rkt")
(+ x 2)))
(test 10 'include (invoke-unit/sig i2@))
@@ -212,7 +212,7 @@
(unit/sig ()
(import)
(define x 5)
- (include "binc.ss")
+ (include "binc.rkt")
y)))
; Simple:
diff --git a/collects/tests/mzscheme/unsafe.ss b/collects/tests/racket/unsafe.rkt
similarity index 99%
rename from collects/tests/mzscheme/unsafe.ss
rename to collects/tests/racket/unsafe.rkt
index 9013a3383e..2a8c440710 100644
--- a/collects/tests/mzscheme/unsafe.ss
+++ b/collects/tests/racket/unsafe.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'unsafe)
diff --git a/collects/tests/mzscheme/vector.ss b/collects/tests/racket/vector.rkt
similarity index 99%
rename from collects/tests/mzscheme/vector.ss
rename to collects/tests/racket/vector.rkt
index 90a40244aa..1ee665525c 100644
--- a/collects/tests/mzscheme/vector.ss
+++ b/collects/tests/racket/vector.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'vector)
diff --git a/collects/tests/mzscheme/version.ss b/collects/tests/racket/version.rkt
similarity index 96%
rename from collects/tests/mzscheme/version.ss
rename to collects/tests/racket/version.rkt
index d6a79d65cb..9140088f42 100644
--- a/collects/tests/mzscheme/version.ss
+++ b/collects/tests/racket/version.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'version)
@@ -13,7 +13,7 @@
;; rate of changes, this should happen in more 150 years. Either programming
;; is probably done with a direct brain link, or this software has nobody to
;; fix it because everybody went back to the trees.
- (error 'version/utils.ss "this file should be updated"))
+ (error 'version/utils.rkt "this file should be updated"))
(test #t valid-version? (version))
(for-each (lambda (v+i) (test (cadr v+i) version->integer (car v+i)))
diff --git a/collects/tests/mzscheme/will.ss b/collects/tests/racket/will.rkt
similarity index 99%
rename from collects/tests/mzscheme/will.ss
rename to collects/tests/racket/will.rkt
index 766043ef2b..3c10c75144 100644
--- a/collects/tests/mzscheme/will.ss
+++ b/collects/tests/racket/will.rkt
@@ -1,5 +1,5 @@
-(load-relative "loadtest.ss")
+(load-relative "loadtest.rkt")
(Section 'wills)
diff --git a/collects/tests/mzscheme/zo-marshal.ss b/collects/tests/racket/zo-marshal.rkt
similarity index 100%
rename from collects/tests/mzscheme/zo-marshal.ss
rename to collects/tests/racket/zo-marshal.rkt
diff --git a/collects/tests/mzscheme/ztest.ss b/collects/tests/racket/ztest.rkt
similarity index 100%
rename from collects/tests/mzscheme/ztest.ss
rename to collects/tests/racket/ztest.rkt
diff --git a/collects/tests/schelog/bible.rkt b/collects/tests/raclog/bible.rkt
similarity index 97%
rename from collects/tests/schelog/bible.rkt
rename to collects/tests/raclog/bible.rkt
index 88039d52c2..b5ad0ba087 100644
--- a/collects/tests/schelog/bible.rkt
+++ b/collects/tests/raclog/bible.rkt
@@ -1,7 +1,7 @@
#lang racket
-(require schelog
- schemeunit)
+(require raclog
+ rktunit)
;The following is the "Biblical" database from "The Art of
;Prolog", Sterling & Shapiro, ch. 1.
@@ -142,4 +142,4 @@
dad-kids)))))
(check-equal? (dad-kids-test-5)
- `((dad-kids . ((terach (abraham nachor haran)) (abraham (isaac)) (haran (lot milcah yiscah))))))
\ No newline at end of file
+ `((dad-kids . ((terach (abraham nachor haran)) (abraham (isaac)) (haran (lot milcah yiscah))))))
diff --git a/collects/tests/schelog/england.rkt b/collects/tests/raclog/england.rkt
similarity index 97%
rename from collects/tests/schelog/england.rkt
rename to collects/tests/raclog/england.rkt
index 7a4ae74535..0480262a5c 100644
--- a/collects/tests/schelog/england.rkt
+++ b/collects/tests/raclog/england.rkt
@@ -1,7 +1,7 @@
#lang racket
-(require schelog
- schemeunit)
+(require raclog
+ rktunit)
;The following is a simple database about a certain family in England.
;Should be a piece of cake, but given here so that you can hone
diff --git a/collects/tests/schelog/england2.rkt b/collects/tests/raclog/england2.rkt
similarity index 98%
rename from collects/tests/schelog/england2.rkt
rename to collects/tests/raclog/england2.rkt
index ab1775b629..59b6cab6ca 100644
--- a/collects/tests/schelog/england2.rkt
+++ b/collects/tests/raclog/england2.rkt
@@ -1,6 +1,6 @@
#lang racket
-(require schelog)
+(require raclog)
;The following is a simple database about a certain family in England.
;Should be a piece of cake, but given here so that you can hone
diff --git a/collects/tests/schelog/fac.rkt b/collects/tests/raclog/fac.rkt
similarity index 90%
rename from collects/tests/schelog/fac.rkt
rename to collects/tests/raclog/fac.rkt
index c9667ee687..c479f6a091 100644
--- a/collects/tests/schelog/fac.rkt
+++ b/collects/tests/raclog/fac.rkt
@@ -1,5 +1,5 @@
#lang racket
-(require schelog tests/eli-tester)
+(require raclog tests/eli-tester)
(define %factorial
(%rel (x y x1 y1)
diff --git a/collects/tests/schelog/games.rkt b/collects/tests/raclog/games.rkt
similarity index 98%
rename from collects/tests/schelog/games.rkt
rename to collects/tests/raclog/games.rkt
index 4fb251f8b7..179b53745a 100644
--- a/collects/tests/schelog/games.rkt
+++ b/collects/tests/raclog/games.rkt
@@ -1,8 +1,8 @@
#lang racket
-(require schelog
+(require raclog
"./puzzle.rkt"
- schemeunit)
+ rktunit)
;;This example is from Sterling & Shapiro, p. 214.
;;
diff --git a/collects/tests/schelog/holland.rkt b/collects/tests/raclog/holland.rkt
similarity index 98%
rename from collects/tests/schelog/holland.rkt
rename to collects/tests/raclog/holland.rkt
index 79f39fd4b5..f075815939 100644
--- a/collects/tests/schelog/holland.rkt
+++ b/collects/tests/raclog/holland.rkt
@@ -1,6 +1,6 @@
#lang racket
-(require schelog
+(require raclog
tests/eli-tester)
;This is a very trivial program. In Prolog, it would be:
diff --git a/collects/tests/schelog/houses.rkt b/collects/tests/raclog/houses.rkt
similarity index 99%
rename from collects/tests/schelog/houses.rkt
rename to collects/tests/raclog/houses.rkt
index 9b73f589a9..9bc27707e4 100644
--- a/collects/tests/schelog/houses.rkt
+++ b/collects/tests/raclog/houses.rkt
@@ -1,6 +1,6 @@
#lang racket
-(require schelog)
+(require raclog)
;Exercise 14.1 (iv) from Sterling & Shapiro, p. 217-8
diff --git a/collects/tests/schelog/mapcol.rkt b/collects/tests/raclog/mapcol.rkt
similarity index 94%
rename from collects/tests/schelog/mapcol.rkt
rename to collects/tests/raclog/mapcol.rkt
index 172f36b623..f628b14400 100644
--- a/collects/tests/schelog/mapcol.rkt
+++ b/collects/tests/raclog/mapcol.rkt
@@ -1,12 +1,12 @@
#lang racket
-(require (except-in schelog %member))
+(require (except-in raclog %member))
;map coloring, example from Sterling & Shapiro, p. 212
;(%member x y) holds if x is in y
-;; is this different from the %member provided by schelog? fencing that one out.
+;; is this different from the %member provided by raclog? fencing that one out.
(define %member
(%rel (X Xs Y Ys)
diff --git a/collects/tests/schelog/puzzle.rkt b/collects/tests/raclog/puzzle.rkt
similarity index 98%
rename from collects/tests/schelog/puzzle.rkt
rename to collects/tests/raclog/puzzle.rkt
index 6598f71b9a..d9f6bef25e 100644
--- a/collects/tests/schelog/puzzle.rkt
+++ b/collects/tests/raclog/puzzle.rkt
@@ -1,6 +1,6 @@
#lang racket
-(require schelog)
+(require raclog)
(provide (all-defined-out))
diff --git a/collects/tests/raclog/run-all.rkt b/collects/tests/raclog/run-all.rkt
new file mode 100644
index 0000000000..f116f0a869
--- /dev/null
+++ b/collects/tests/raclog/run-all.rkt
@@ -0,0 +1,11 @@
+#lang racket
+(require racket/runtime-path tests/eli-tester)
+(define-runtime-path here ".")
+
+(test
+ (for ([p (in-list (directory-list here))])
+ (define s (path->string p))
+ (when (regexp-match #rx"rkt$" s)
+ (unless (or (string=? "compiled" s)
+ (string=? "run-all.rkt" s))
+ (dynamic-require (build-path here p) #f)))))
\ No newline at end of file
diff --git a/collects/tests/schelog/toys.rkt b/collects/tests/raclog/toys.rkt
similarity index 97%
rename from collects/tests/schelog/toys.rkt
rename to collects/tests/raclog/toys.rkt
index 73033d4b08..30d3974d0b 100644
--- a/collects/tests/schelog/toys.rkt
+++ b/collects/tests/raclog/toys.rkt
@@ -1,9 +1,9 @@
#lang racket
-(require (except-in schelog %append))
+(require (except-in raclog %append))
;A list of trivial programs in Prolog, just so you can get used
-;to schelog syntax.
+;to raclog syntax.
;(%length l n) holds if length(l) = n
diff --git a/collects/tests/raclog/unit.rkt b/collects/tests/raclog/unit.rkt
new file mode 100644
index 0000000000..031545bb10
--- /dev/null
+++ b/collects/tests/raclog/unit.rkt
@@ -0,0 +1,560 @@
+#lang racket
+(require raclog
+ tests/eli-tester)
+
+(test
+ ; Unification tests
+ (test
+ #:failure-prefix "unify"
+ (local [(define-syntax-rule (once t1 t2)
+ (test (%which () (%= t1 t2)) => empty
+ (%more) => #f
+ (let ([tmp t1]) (%which () (%== tmp tmp))) => empty
+ (%more) => #f
+ (%which () (%let (f s) (%and (%freeze t1 f) (%melt f s) (%= s t2)))) => empty
+ (%more) => #f
+ (%which () (%let (f s) (%and (%freeze t1 f) (%melt-new f s) (%= s t2)))) => empty
+ (%more) => #f
+ (%which () (%let (s) (%and (%copy t1 s) (%= s t2)))) => empty
+ (%more) => #f))
+ (define-syntax-rule (constant t1)
+ (test (%which () (%constant t1)) => empty
+ (%more) => #f
+ (%which () (%compound t1)) => #f))
+ (define-syntax-rule (compound t1)
+ (test (%which () (%compound t1)) => empty
+ (%more) => #f
+ (%which () (%constant t1)) => #f))
+ (define-syntax-rule (never t1 t2)
+ (test (%which () (%= t1 t2)) => #f
+ (%which () (%== t1 t2)) => #f
+ (%which () (%let (f s) (%and (%freeze t1 f) (%melt f s) (%= s t2)))) => #f
+ (%which () (%let (f s) (%and (%freeze t1 f) (%melt-new f s) (%= s t2)))) => #f
+ (%which () (%let (s) (%and (%copy t1 s) (%= s t2)))) => #f))]
+ (once #t #t)
+ (once #f #f)
+ (never #f #t)
+ (never #t #f)
+ (constant #t)
+ (constant #f)
+
+ (once 1 1)
+ (never 1 2)
+ (constant 1)
+
+ (once "foo" "foo")
+ (never "foo" "bar")
+ (constant "foo")
+
+ (once #"foo" #"foo")
+ (never #"foo" #"bar")
+ (constant #"foo")
+
+ (once #\a #\a)
+ (never #\a #\b)
+ (constant #\a)
+
+ (once 'a 'a)
+ (never 'a 'b)
+ (constant 'a)
+
+ (let ([rx #rx"a"]) (once rx rx))
+ (never #rx"a" #rx"b")
+ (let ([rx #px"a"]) (once rx rx))
+ (never #px"a" #rx"b")
+ (let ([rx #rx#"a"]) (once rx rx))
+ (never #rx#"a" #rx#"b")
+ (let ([rx #px#"a"]) (once rx rx))
+ (never #px#"a" #px#"b")
+
+ (constant #rx"a")
+ (constant #px"a")
+ (constant #rx#"a")
+ (constant #px#"a")
+
+ (let ([a (string->keyword "a")]
+ [b (string->keyword "b")])
+ (once a a)
+ (never a b)
+ (constant a))
+
+ (once empty empty)
+ (never empty #f)
+ (constant empty)
+
+ (let ([a add1]
+ [b sub1])
+ (once a a)
+ (never a b)
+ (constant a))
+
+ (once (void) (void))
+ (never (void) #f)
+ (constant (void))
+
+ (once (cons 1 1) (cons 1 1))
+ (never (cons 1 2) (cons 1 1))
+ (never (cons 2 1) (cons 1 1))
+ (compound (cons 1 1))
+
+ (once (vector 1 1) (vector 1 1))
+ (never (vector 1) (vector 1 1))
+ (never (vector 1 2) (vector 1 1))
+ (never (vector 2 1) (vector 1 1))
+ (compound (vector 1 1))
+
+ (once (mcons 1 1) (mcons 1 1))
+ (never (mcons 1 2) (mcons 1 1))
+ (never (mcons 2 1) (mcons 1 1))
+ (compound (mcons 1 1))
+
+ (once (box 1) (box 1))
+ (never (box 2) (box 1))
+ (compound (box 1))
+
+ (local [(define-syntax-rule (hash-test hash)
+ (test
+ (once (hash 1 2) (hash 1 2))
+ (never (hash 2 2) (hash 1 2))
+ (never (hash 1 1) (hash 1 2))
+ (never (hash 1 1) (hash 2 2))
+ (compound (hash 1 2))))]
+ (hash-test (λ (k v) (make-hash (list (cons k v)))))
+ (hash-test (λ (k v) (make-hasheq (list (cons k v)))))
+ (hash-test (λ (k v) (make-hasheqv (list (cons k v)))))
+ (hash-test (λ (k v) (make-weak-hash (list (cons k v)))))
+ (hash-test (λ (k v) (make-weak-hasheq (list (cons k v)))))
+ (hash-test (λ (k v) (make-weak-hasheqv (list (cons k v)))))
+ (hash-test (λ (k v) (make-immutable-hash (list (cons k v)))))
+ (hash-test (λ (k v) (make-immutable-hasheq (list (cons k v)))))
+ (hash-test (λ (k v) (make-immutable-hasheqv (list (cons k v))))))
+
+ (local [(define-syntax-rule (set-test set)
+ (test
+ (once (set 1 2) (set 1 2))
+ (never (set 2 2) (set 1 2))
+ (never (set 1 1) (set 1 2))
+ (never (set 1 1) (set 2 2))
+ (constant (set 1 2))))]
+ (set-test set)
+ (set-test seteqv)
+ (set-test seteq))
+
+ (local [(define (cs-struct-test make-foo)
+ (once (make-foo 1 1) (make-foo 1 1))
+ (never (make-foo 2 1) (make-foo 1 1))
+ (never (make-foo 1 2) (make-foo 1 1))
+ (never (make-foo 2 2) (make-foo 1 1))
+ (compound (make-foo 1 1)))
+ (define (a-struct-test make-foo)
+ (never (make-foo 1 1) (make-foo 1 1))
+ (never (make-foo 2 1) (make-foo 1 1))
+ (never (make-foo 1 2) (make-foo 1 1))
+ (never (make-foo 2 2) (make-foo 1 1))
+ (constant (make-foo 1 1)))]
+ (local [(define-struct foo (x y))]
+ (test #:failure-prefix "default"
+ (a-struct-test make-foo)))
+ (local [(define-struct foo (x y) #:prefab)]
+ (test #:failure-prefix "prefab"
+ (cs-struct-test make-foo)))
+ (local [(define-struct foo (x y) #:transparent)]
+ (test #:failure-prefix "transparent"
+ (cs-struct-test make-foo)))
+ (local [(define another-inspector (make-inspector))
+ (define-struct foo (x y) #:inspector another-inspector)]
+ (test #:failure-prefix "child"
+ (cs-struct-test make-foo)))
+ (local [(define some-inspector (make-sibling-inspector))
+ (define another-inspector (make-inspector some-inspector))
+ (define-struct foo (x y) #:inspector another-inspector)]
+ (test #:failure-prefix "sibling -> child"
+ (a-struct-test make-foo))))))
+
+ (test
+ #:failure-prefix "unify + logic var"
+ (local [(define-syntax-rule (uni x v has-x has-v)
+ (test (%which (x) (%= has-x has-v)) => (list (cons 'x v))
+ (%more) => #f
+ (%which () (%let (x) (%var has-x))) => empty
+ (%more) => #f
+ (%which () (%var has-v)) => #f))
+ (define-syntax-rule (iduni ve)
+ (let ([v ve])
+ (uni x v x v)))
+ (define-syntax-rule (nouni x v has-x has-v)
+ (test (%which (x) (%= has-x has-v)) => #f
+ (%which () (%let (x) (%var has-x))) => #f
+ (%which () (%var has-v)) => #f))]
+
+ (iduni #t)
+ (iduni #f)
+ (iduni 1)
+ (iduni "foo")
+ (iduni #"foo")
+ (iduni #\a)
+ (iduni 'a)
+ (iduni #rx"a")
+ (iduni #px"a")
+ (iduni #rx#"a")
+ (iduni #px#"a")
+ (iduni (string->keyword "a"))
+ (iduni empty)
+ (iduni add1)
+ (iduni (void))
+
+ (uni x 1 (cons x 2) (cons 1 2))
+ (uni x 2 (cons 1 x) (cons 1 2))
+
+ (uni x 1 (vector x 2) (vector 1 2))
+ (uni x 2 (vector 1 x) (vector 1 2))
+
+ (uni x 1 (mcons x 2) (mcons 1 2))
+ (uni x 2 (mcons 1 x) (mcons 1 2))
+
+ (uni x 1 (box x) (box 1))
+
+ (local [(define-syntax-rule (hash-test hash)
+ (test
+ ; Logic variables not allowed as hash keys
+ (nouni x 1 (hash x 2) (hash 1 2))
+ (uni x 2 (hash 1 x) (hash 1 2))))]
+ (hash-test (λ (k v) (make-hash (list (cons k v)))))
+ (hash-test (λ (k v) (make-hasheq (list (cons k v)))))
+ (hash-test (λ (k v) (make-hasheqv (list (cons k v)))))
+ (hash-test (λ (k v) (make-weak-hash (list (cons k v)))))
+ (hash-test (λ (k v) (make-weak-hasheq (list (cons k v)))))
+ (hash-test (λ (k v) (make-weak-hasheqv (list (cons k v)))))
+ (hash-test (λ (k v) (make-immutable-hash (list (cons k v)))))
+ (hash-test (λ (k v) (make-immutable-hasheq (list (cons k v)))))
+ (hash-test (λ (k v) (make-immutable-hasheqv (list (cons k v))))))
+
+ (nouni x 1 (set x) (set 1))
+
+ (local [(define (cs-struct-test make-foo)
+ (test (uni x 1 (make-foo x 2) (make-foo 1 2))
+ (uni x 2 (make-foo 1 x) (make-foo 1 2))))
+ (define (a-struct-test make-foo)
+ (test (nouni x 1 (make-foo x 2) (make-foo 1 2))
+ (nouni x 2 (make-foo 1 x) (make-foo 1 2))))]
+ (local [(define-struct foo (x y))]
+ (test #:failure-prefix "default"
+ (a-struct-test make-foo)))
+ (local [(define-struct foo (x y) #:prefab)]
+ (test #:failure-prefix "prefab"
+ (cs-struct-test make-foo)))
+ (local [(define-struct foo (x y) #:transparent)]
+ (test #:failure-prefix "transparent"
+ (cs-struct-test make-foo)))
+ (local [(define another-inspector (make-inspector))
+ (define-struct foo (x y) #:inspector another-inspector)]
+ (test #:failure-prefix "child"
+ (cs-struct-test make-foo)))
+ (local [(define some-inspector (make-sibling-inspector))
+ (define another-inspector (make-inspector some-inspector))
+ (define-struct foo (x y) #:inspector another-inspector)]
+ (test #:failure-prefix "sibling -> child"
+ (a-struct-test make-foo))))))
+
+ ; Unit tests
+ (logic-var? (_))
+
+ (%which () (%/= 1 1)) => #f
+ (%which () (%/= 1 2)) => empty
+ (%more) => #f
+
+ (%which (x) (%/== x x)) => #f
+ (%which (x y) (%/== x y)) => `((x . _) (y . _))
+ (%more) => #f
+
+ (%which () (%/== 1 1)) => #f
+ (%which () (%/== 1 2)) => empty
+ (%more) => #f
+
+ (%which () (%< 1 2)) => empty
+ (%more) => #f
+ (%which () (%< 1 1)) => #f
+ (%which () (%< 2 1)) => #f
+ (%which () (%< 'a 2)) => #f
+ (%which () (%< 1 'b)) => #f
+ (%which () (%< 'a 'b)) => #f
+
+ (%which () (%<= 1 2)) => empty
+ (%more) => #f
+ (%which () (%<= 1 1)) => empty
+ (%more) => #f
+ (%which () (%<= 2 1)) => #f
+ (%which () (%<= 'a 2)) => #f
+ (%which () (%<= 1 'b)) => #f
+ (%which () (%<= 'a 'b)) => #f
+
+ (%which () (%= 1 1)) => empty
+ (%more) => #f
+ (%which () (%= 'a 'a)) => empty
+ (%more) => #f
+ (%which () (%= (cons 1 2) (cons 1 2))) => empty
+ (%more) => #f
+ (%which () (%= (vector 1 2) (vector 1 2))) => empty
+ (%more) => #f
+ (%which (x) (%= x 1)) => `((x . 1))
+ (%more) => #f
+ (%which (x) (%= (cons x 2) (cons 1 2))) => `((x . 1))
+ (%more) => #f
+ (%which (x) (%= (vector x 2) (vector 1 2))) => `((x . 1))
+ (%more) => #f
+ (%which (x) (%and (%= x 1) (%= x 2))) => #f
+ (%which () (%= 1 2)) => #f
+
+ (%which () (%=/= 1 1)) => #f
+ (%which () (%=/= 'a 'a)) => #f
+ (%which () (%=/= 1 2)) => empty
+ (%more) => #f
+
+ (%which () (%=:= 1 1)) => empty
+ (%more) => #f
+ (%which () (%=:= 'a 'a)) => #f
+ (%which () (%=:= 1 2)) => #f
+
+ (%which () (%== 1 1)) => empty
+ (%more) => #f
+ (%which (x) (%== x x)) => `((x . _))
+ (%more) => #f
+ (%which (x) (%== (cons 1 x) (cons 1 x))) => `((x . _))
+ (%more) => #f
+ ; XXX This answer seems wrong
+ (%which (x) (%and (%= x 1) (%== x 1))) => `((x . 1))
+ (%more) => #f
+ ; XXX This answer seems wrong
+ (%which (x y) (%and (%= x 1) (%= y 1) (%== x y))) => `((x . 1) (y . 1))
+ (%more) => #f
+ (%which (x y) (%== x y)) => #f
+ (%which (x y) (%== (cons 1 x) (cons y 2))) => #f
+
+ (%which () (%> 2 1)) => empty
+ (%more) => #f
+ (%which () (%> 1 1)) => #f
+ (%which () (%> 1 2)) => #f
+ (%which () (%> 'a 2)) => #f
+ (%which () (%> 1 'b)) => #f
+ (%which () (%> 'a 'b)) => #f
+
+ (%which () (%>= 2 1)) => empty
+ (%more) => #f
+ (%which () (%>= 1 1)) => empty
+ (%more) => #f
+ (%which () (%>= 1 2)) => #f
+ (%which () (%>= 'a 2)) => #f
+ (%which () (%>= 1 'b)) => #f
+ (%which () (%>= 'a 'b)) => #f
+
+ (%which () (%and %true %true)) => empty
+ (%more) => #f
+ (%which () (%and %fail %true)) => #f
+ (%more) => #f
+
+ (%which () (%append empty empty empty)) => empty
+ (%more) => #f
+ (%which () (%append (list 1) empty (list 1))) => empty
+ (%more) => #f
+ (%which () (%append empty (list 2) (list 2))) => empty
+ (%more) => #f
+ (%which () (%append (list 1) (list 2) (list 1 2))) => empty
+ (%more) => #f
+
+ (let ([rel %empty-rel])
+ (test (%which (y) (rel 'x y)) => #f
+ (%assert! rel () [('x 1)])
+ (%which (y) (rel 'x y)) => `([y . 1])
+ (%more) => #f
+ (%assert-after! rel () [('x 2)])
+ (%which (y) (rel 'x y)) => `([y . 2])
+ (%more) => `([y . 1])
+ (%more) => #f
+ (%assert! rel () [('x 3)])
+ (%which (y) (rel 'x y)) => `([y . 2])
+ (%more) => `([y . 1])
+ (%more) => `([y . 3])
+ (%more) => #f))
+
+ (%which (y) (%let (x) (%bag-of x (%or (%= x 1) (%= x 1) (%= x 2)) y))) => `([y . (1 1 2)])
+ (%more) => #f
+ ; XXX I don't know a program that would get these outputs
+ ;(%which (y) (%let (x) (%bag-of x XXX y))) => `([y . ()])
+ (%more) => #f
+ (%which (y) (%let (x) (%bag-of-1 x (%or (%= x 1) (%= x 1) (%= x 2)) y))) => `([y . (1 1 2)])
+ (%more) => #f
+ ; XXX I don't know a program that would get these outputs
+ ;(%which (y) (%let (x) (%bag-of-1 x XXX y))) => #f
+
+ (%which () (%compound (cons 1 1))) => empty
+ (%more) => #f
+ (%which () (%compound (vector 1 1))) => empty
+ (%more) => #f
+ (%which () (%let (x) (%and (%= x (cons 1 1)) (%compound x)))) => empty
+ (%more) => #f
+ (%which () (%compound 1)) => #f
+ (%which () (%compound "1")) => #f
+ (%which () (%compound '1)) => #f
+ (%which () (%compound empty)) => #f
+
+ (%which () (%constant (cons 1 1))) => #f
+ (%which () (%constant (vector 1 1))) => #f
+ (%which () (%let (x) (%and (%= x 1) (%constant x)))) => empty
+ (%more) => #f
+ (%which () (%constant 1)) => empty
+ (%more) => #f
+ (%which () (%constant "1")) => empty
+ (%more) => #f
+ (%which () (%constant '1)) => empty
+ (%more) => #f
+ (%which () (%constant empty)) => empty
+ (%more) => #f
+
+ (%which (x) (%let (y) (%and (%copy x y) (%= y 1)))) => `([x . _])
+ (%more) => #f
+
+ ! =error> "syntactically"
+
+ (%which () (%cut-delimiter %true)) => empty
+ (%more) => #f
+ (%which () (%cut-delimiter !)) => empty
+ (%more) => #f
+ (%which () (%cut-delimiter %fail)) => #f
+ (%which () (%or %true %true)) => empty
+ (%more) => empty
+ (%more) => #f
+ (%which () (%cut-delimiter (%or (%and ! %true) %true))) => empty
+ (%more) => #f
+
+ (%which () (%empty-rel 1 1)) => #f
+
+ (%which () %fail) => #f
+
+ ; %free-vars example from documentation
+ (local [(define %knows
+ (%rel ()
+ [('Odysseus 'TeX)]
+ [('Odysseus 'Scheme)]
+ [('Odysseus 'Prolog)]
+ [('Odysseus 'Penelope)]
+ [('Penelope 'TeX)]
+ [('Penelope 'Prolog)]
+ [('Penelope 'Odysseus)]
+ [('Telemachus 'TeX)]
+ [('Telemachus 'calculus)]))]
+ (test (%which (someone things-known)
+ (%let (x)
+ (%set-of x (%knows someone x)
+ things-known)))
+ =>
+ `((someone . _) (things-known TeX Scheme Prolog Penelope Odysseus calculus))
+ (%more) => #f
+ (%which (someone things-known)
+ (%let (x)
+ (%bag-of x
+ (%free-vars (someone)
+ (%knows someone x))
+ things-known)))
+ =>
+ `((someone . Odysseus) (things-known TeX Scheme Prolog Penelope))
+ (%more) =>
+ `((someone . Penelope) (things-known TeX Prolog Odysseus))
+ (%more) =>
+ `((someone . Telemachus) (things-known TeX calculus))
+ (%more) =>
+ #f))
+
+ (%which (x) (%let (y) (%and (%freeze x y) (%nonvar y)))) => `([x . _])
+
+ (%which () (%if-then-else %true %true %true)) => empty
+ (%more) => #f
+ (%which () (%if-then-else %true %fail %true)) => #f
+ (%which () (%if-then-else %fail %true %true)) => empty
+ (%more) => #f
+
+ (%which (x) (%is x (* 6 7))) => `([x . 42])
+ (%more) => #f
+ (%which (x) (%let (y) (%and (%= y 7) (%is x (* 6 y))))) => `([x . 42])
+ (%more) => #f
+
+ (%which () (%let (x) (%= x x))) => empty
+ (%more) => #f
+
+ (%which (x) (%let (y z) (%and (%freeze x y) (%melt y z) (%= z 1)))) => `([x . 1])
+ (%more) => #f
+
+ (%which (x) (%let (y z) (%and (%freeze x y) (%melt-new y z) (%= z 1)))) => `([x . _])
+ (%more) => #f
+
+ (%which () (%member 3 (list 1 2 3))) => empty
+ (%more) => #f
+ (%which () (%member 3 (list 1 2 3 3))) => empty
+ (%more) => empty
+ (%more) => #f
+ (%which () (%member 3 (list 1 2))) => #f
+
+ (%which () (%let (x) (%nonvar x))) => #f
+ (%which () (%let (x) (%nonvar (cons 1 x)))) => #f
+ (%which () (%let (x) (%nonvar (vector x)))) => #f
+ (%which () (%let (x) (%nonvar 1))) => empty
+ (%more) => #f
+ (%which () (%let (x) (%and (%= x 1) (%nonvar x)))) => empty
+ (%more) => #f
+
+ (%which () (%not %true)) => #f
+ (%which () (%not %fail)) => empty
+ (%more) => #f
+
+ (%which () (%or %true %true)) => empty
+ (%more) => empty
+ (%more) => #f
+ (%which () (%or %true %fail %true)) => empty
+ (%more) => empty
+ (%more) => #f
+
+ (let ([rel (%rel () [(1)] [(2) %fail])])
+ (test (%which () (rel 1)) => empty
+ (%more) => #f
+ (%which () (rel 2)) => #f))
+ (let ([rel (%rel () [(1) !] [(1) (%repeat)])])
+ (test (%which () (rel 1)) => empty
+ (%more) => #f))
+
+ (local [(define (many-%more n)
+ (if (zero? n)
+ empty
+ (and (%more)
+ (many-%more (sub1 n)))))]
+ (test (%which () (%repeat)) => empty
+ (many-%more (random 50)) => empty))
+
+ (parameterize ([use-occurs-check? #f])
+ (%which () (%let (x) (%= x (cons 1 x)))))
+ => empty
+ (parameterize ([use-occurs-check? #t])
+ (%which () (%let (x) (%= x (cons 1 x)))))
+ => #f
+
+ (%which (y) (%let (x) (%set-of x (%or (%= x 1) (%= x 1) (%= x 2)) y))) => `([y . (1 2)])
+ (%more) => #f
+ ; XXX I don't know a program that would get these outputs
+ ;(%which (y) (%let (x) (%set-of x XXX y))) => `([y . ()])
+ (%more) => #f
+ (%which (y) (%let (x) (%set-of-1 x (%or (%= x 1) (%= x 1) (%= x 2)) y))) => `([y . (1 2)])
+ (%more) => #f
+ ; XXX I don't know a program that would get these outputs
+ ;(%which (y) (%let (x) (%set-of-1 x XXX y))) => #f
+
+ (%which () %true) => empty
+ (%more) => #f
+
+ (%which () (%let (x) (%var x))) => empty
+ (%more) => #f
+ (%which () (%let (x) (%var (cons 1 x)))) => empty
+ (%more) => #f
+ (%which () (%let (x) (%var (vector x)))) => empty
+ (%more) => #f
+ (%which () (%let (x) (%var 1))) => #f
+ (%which () (%let (x) (%and (%= x 1) (%var x)))) => #f
+
+ )
\ No newline at end of file
diff --git a/collects/tests/schemeunit/all-schemeunit-tests.ss b/collects/tests/rktunit/all-rktunit-tests.rkt
similarity index 57%
rename from collects/tests/schemeunit/all-schemeunit-tests.ss
rename to collects/tests/rktunit/all-rktunit-tests.rkt
index d943eaf8eb..baf8d3cb82 100644
--- a/collects/tests/schemeunit/all-schemeunit-tests.ss
+++ b/collects/tests/rktunit/all-rktunit-tests.rkt
@@ -1,28 +1,28 @@
-#lang scheme/base
+#lang racket/base
-(require schemeunit
- "check-test.ss"
- "check-info-test.ss"
- "format-test.ss"
- "test-case-test.ss"
- "test-suite-test.ss"
- "base-test.ss"
- "location-test.ss"
- "result-test.ss"
- "test-test.ss"
- "util-test.ss"
- "text-ui-test.ss"
- "monad-test.ss"
- "hash-monad-test.ss"
- "counter-test.ss"
- "text-ui-util-test.ss")
+(require rktunit
+ "check-test.rkt"
+ "check-info-test.rkt"
+ "format-test.rkt"
+ "test-case-test.rkt"
+ "test-suite-test.rkt"
+ "base-test.rkt"
+ "location-test.rkt"
+ "result-test.rkt"
+ "test-test.rkt"
+ "util-test.rkt"
+ "text-ui-test.rkt"
+ "monad-test.rkt"
+ "hash-monad-test.rkt"
+ "counter-test.rkt"
+ "text-ui-util-test.rkt")
-(provide all-schemeunit-tests
+(provide all-rktunit-tests
failure-tests)
-(define all-schemeunit-tests
+(define all-rktunit-tests
(test-suite
- "All SchemeUnit Tests"
+ "All RktUnit Tests"
check-tests
base-tests
check-info-tests
diff --git a/collects/tests/schemeunit/base-test.ss b/collects/tests/rktunit/base-test.rkt
similarity index 78%
rename from collects/tests/schemeunit/base-test.ss
rename to collects/tests/rktunit/base-test.rkt
index 8f3e9ffbd7..3c81db7019 100644
--- a/collects/tests/schemeunit/base-test.ss
+++ b/collects/tests/rktunit/base-test.rkt
@@ -26,10 +26,10 @@
;;
;; Commentary:
-#lang scheme/base
+#lang racket/base
-(require schemeunit
- schemeunit/private/base)
+(require rktunit
+ rktunit/private/base)
(provide base-tests)
@@ -37,45 +37,45 @@
(test-suite
"All tests for base"
(test-case
- "schemeunit-test-case structure has a contract on name"
+ "rktunit-test-case structure has a contract on name"
(check-exn exn:fail?
(lambda ()
- (make-schemeunit-test-case
+ (make-rktunit-test-case
'foo
(lambda () #t)))))
(test-case
- "schemeunit-test-case structure has a contract on action"
+ "rktunit-test-case structure has a contract on action"
(check-exn exn:fail?
(lambda ()
- (make-schemeunit-test-case
+ (make-rktunit-test-case
"Name"
#f))))
(test-case
- "schemeunit-test-suite has a contract on its fields"
+ "rktunit-test-suite has a contract on its fields"
(check-exn exn:fail?
(lambda ()
- (make-schemeunit-test-suite
+ (make-rktunit-test-suite
#f
(list)
(lambda () 3)
(lambda () 2))))
(check-exn exn:fail?
(lambda ()
- (make-schemeunit-test-suite
+ (make-rktunit-test-suite
"Name"
#f
(lambda () 3)
(lambda () 2))))
(check-exn exn:fail?
(lambda ()
- (make-schemeunit-test-suite
+ (make-rktunit-test-suite
"Name"
(list)
#f
(lambda () 2))))
(check-exn exn:fail?
(lambda ()
- (make-schemeunit-test-suite
+ (make-rktunit-test-suite
"Name"
(list)
(lambda () 3)
diff --git a/collects/tests/schemeunit/check-info-test.ss b/collects/tests/rktunit/check-info-test.rkt
similarity index 88%
rename from collects/tests/schemeunit/check-info-test.ss
rename to collects/tests/rktunit/check-info-test.rkt
index 9d2b9f8917..6cb5a6d3ca 100644
--- a/collects/tests/schemeunit/check-info-test.ss
+++ b/collects/tests/rktunit/check-info-test.rkt
@@ -1,23 +1,23 @@
;;;
-;;; ---- Tests for check-util
+;;; ---- Tests for check-util
;;; Time-stamp: <2009-06-11 17:03:21 noel>
;;;
;;; Copyright (C) 2003 by Noel Welsh.
;;;
-;;; This file is part of SchemeUnit.
+;;; This file is part of RktUnit.
-;;; SchemeUnit is free software; you can redistribute it and/or
+;;; RktUnit is free software; you can redistribute it and/or
;;; modify it under the terms of the GNU Lesser General Public
;;; License as published by the Free Software Foundation; either
;;; version 2.1 of the License, or (at your option) any later version.
-;;; SchemeUnitis distributed in the hope that it will be useful,
+;;; RktUnitis distributed in the hope that it will be useful,
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
;;; Lesser General Public License for more details.
;;; You should have received a copy of the GNU Lesser General Public
-;;; License along with SchemeUnit; if not, write to the Free Software
+;;; License along with RktUnit; if not, write to the Free Software
;;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
;;; Author: Noel Welsh
@@ -25,10 +25,10 @@
;;
;; Commentary:
-#lang scheme/base
+#lang racket/base
-(require schemeunit
- schemeunit/private/check-info)
+(require rktunit
+ rktunit/private/check-info)
(provide check-info-tests)
diff --git a/collects/tests/schemeunit/check-test.ss b/collects/tests/rktunit/check-test.rkt
similarity index 97%
rename from collects/tests/schemeunit/check-test.ss
rename to collects/tests/rktunit/check-test.rkt
index 0e3b8a0331..fd2029c670 100644
--- a/collects/tests/schemeunit/check-test.ss
+++ b/collects/tests/rktunit/check-test.rkt
@@ -26,14 +26,14 @@
;;
;; Commentary:
-#lang scheme/base
+#lang racket/base
-(require scheme/runtime-path
+(require racket/runtime-path
srfi/1
- schemeunit
- schemeunit/private/check
- schemeunit/private/result
- schemeunit/private/test-suite)
+ rktunit
+ rktunit/private/check
+ rktunit/private/result
+ rktunit/private/test-suite)
(provide check-tests)
@@ -287,8 +287,8 @@
(let ((destns (make-base-namespace))
(cns (current-namespace)))
(parameterize ((current-namespace destns))
- (namespace-require '(for-syntax scheme/base))
- (namespace-require 'schemeunit/private/check)
+ (namespace-require '(for-syntax racket/base))
+ (namespace-require 'rktunit/private/check)
;; First check that the right check macro got
;; used: ie that it didn't just compile the thing
;; as an application.
diff --git a/collects/tests/schemeunit/counter-test.ss b/collects/tests/rktunit/counter-test.rkt
similarity index 90%
rename from collects/tests/schemeunit/counter-test.ss
rename to collects/tests/rktunit/counter-test.rkt
index 6ab8fbeeaa..516a3911df 100644
--- a/collects/tests/schemeunit/counter-test.ss
+++ b/collects/tests/rktunit/counter-test.rkt
@@ -25,13 +25,13 @@
;;
;;
;; Commentary:
-#lang scheme/base
+#lang racket/base
-(require scheme/match
- schemeunit
- schemeunit/private/counter
- schemeunit/private/monad
- schemeunit/private/hash-monad)
+(require racket/match
+ rktunit
+ rktunit/private/counter
+ rktunit/private/monad
+ rktunit/private/hash-monad)
(provide counter-tests)
diff --git a/collects/tests/schemeunit/format-test.ss b/collects/tests/rktunit/format-test.rkt
similarity index 83%
rename from collects/tests/schemeunit/format-test.ss
rename to collects/tests/rktunit/format-test.rkt
index 47b9da6dd7..9ac98b13c1 100644
--- a/collects/tests/schemeunit/format-test.ss
+++ b/collects/tests/rktunit/format-test.rkt
@@ -1,8 +1,8 @@
-#lang scheme/base
+#lang racket/base
-(require schemeunit
- schemeunit/private/check-info
- schemeunit/private/format)
+(require rktunit
+ rktunit/private/check-info
+ rktunit/private/format)
(provide format-tests)
diff --git a/collects/tests/schemeunit/hash-monad-test.ss b/collects/tests/rktunit/hash-monad-test.rkt
similarity index 94%
rename from collects/tests/schemeunit/hash-monad-test.ss
rename to collects/tests/rktunit/hash-monad-test.rkt
index fd42b81853..cb9eecc1a1 100644
--- a/collects/tests/schemeunit/hash-monad-test.ss
+++ b/collects/tests/rktunit/hash-monad-test.rkt
@@ -26,11 +26,11 @@
;;
;; Commentary:
-#lang scheme/base
+#lang racket/base
-(require schemeunit
- schemeunit/private/monad
- schemeunit/private/hash-monad)
+(require rktunit
+ rktunit/private/monad
+ rktunit/private/hash-monad)
(provide hash-monad-tests)
diff --git a/collects/tests/schemeunit/location-test.ss b/collects/tests/rktunit/location-test.rkt
similarity index 77%
rename from collects/tests/schemeunit/location-test.ss
rename to collects/tests/rktunit/location-test.rkt
index 52a1881f58..22ebbc2500 100644
--- a/collects/tests/schemeunit/location-test.ss
+++ b/collects/tests/rktunit/location-test.rkt
@@ -25,10 +25,10 @@
;;
;;
;; Commentary:
-#lang scheme/base
+#lang racket/base
-(require schemeunit
- schemeunit/private/location)
+(require rktunit
+ rktunit/private/location)
(provide location-tests)
@@ -43,10 +43,10 @@
(test-case
"syntax->location ok"
(around
- (with-output-to-file "test-file.ss"
- (lambda () (display "#lang scheme\n'foo\n")))
- (let* ([stx (read-syntax/lang (string->path "test-file.ss")
- (open-input-file "test-file.ss"))]
+ (with-output-to-file "test-file.rkt"
+ (lambda () (display "#lang racket\n'foo\n")))
+ (let* ([stx (read-syntax/lang (string->path "test-file.rkt")
+ (open-input-file "test-file.rkt"))]
[rep (syntax->location stx)])
(check-equal? (location-source rep)
(syntax-source stx))
@@ -54,7 +54,7 @@
(syntax-position stx))
(check-equal? (location-span rep)
(syntax-span stx)))
- (delete-file "test-file.ss")))
+ (delete-file "test-file.rkt")))
(test-case
"Emacs compatible location strings"
@@ -63,15 +63,15 @@
(syntax->location
(datum->syntax
#f #f
- (list "file.ss" 42 38 1240 2))))
- "file.ss:42:38")
+ (list "file.rkt" 42 38 1240 2))))
+ "file.rkt:42:38")
(check string=?
(location->string
(syntax->location
(datum->syntax
#f #f
- (list (string->path "file.ss") 42 38 1240 2))))
- "file.ss:42:38")
+ (list (string->path "file.rkt") 42 38 1240 2))))
+ "file.rkt:42:38")
(check string=?
(location->string
(syntax->location
@@ -84,14 +84,14 @@
(syntax->location
(datum->syntax
#f #f
- (list 'foo.ss 42 38 1240 2))))
- "foo.ss:42:38")
+ (list 'foo.rkt 42 38 1240 2))))
+ "foo.rkt:42:38")
(check string=?
(location->string
(syntax->location
(datum->syntax
#f #f
- (list "foo.ss" #f #f #f #f))))
- "foo.ss:?:?"))
+ (list "foo.rkt" #f #f #f #f))))
+ "foo.rkt:?:?"))
))
diff --git a/collects/tests/schemeunit/monad-test.ss b/collects/tests/rktunit/monad-test.rkt
similarity index 98%
rename from collects/tests/schemeunit/monad-test.ss
rename to collects/tests/rktunit/monad-test.rkt
index 92c089fc8f..7aeaa5b959 100644
--- a/collects/tests/schemeunit/monad-test.ss
+++ b/collects/tests/rktunit/monad-test.rkt
@@ -27,10 +27,10 @@
;; Commentary:
-#lang scheme/base
+#lang racket/base
-(require schemeunit
- schemeunit/private/monad)
+(require rktunit
+ rktunit/private/monad)
(provide monad-tests)
diff --git a/collects/tests/schemeunit/result-test.ss b/collects/tests/rktunit/result-test.rkt
similarity index 92%
rename from collects/tests/schemeunit/result-test.ss
rename to collects/tests/rktunit/result-test.rkt
index fd0ae973ca..a8534c1630 100644
--- a/collects/tests/schemeunit/result-test.ss
+++ b/collects/tests/rktunit/result-test.rkt
@@ -1,7 +1,7 @@
-#lang scheme/base
+#lang racket/base
-(require schemeunit
- schemeunit/private/result)
+(require rktunit
+ rktunit/private/result)
(provide result-tests)
diff --git a/collects/tests/schemeunit/run-tests.ss b/collects/tests/rktunit/run-tests.rkt
similarity index 68%
rename from collects/tests/schemeunit/run-tests.ss
rename to collects/tests/rktunit/run-tests.rkt
index 3852cb9dd3..66f89fd7e6 100644
--- a/collects/tests/schemeunit/run-tests.ss
+++ b/collects/tests/rktunit/run-tests.rkt
@@ -1,10 +1,10 @@
-#lang scheme/base
+#lang racket/base
-(require schemeunit
- schemeunit/text-ui
- "all-schemeunit-tests.ss")
+(require rktunit
+ rktunit/text-ui
+ "all-rktunit-tests.rkt")
-(run-tests all-schemeunit-tests)
+(run-tests all-rktunit-tests)
;; These tests should all error, so we switch the meaning of correct and incorrect. If the error display changes significantly, DrDr will catch it
(parameterize ([current-error-port (current-output-port)]
diff --git a/collects/tests/schemeunit/standalone-check-test.ss b/collects/tests/rktunit/standalone-check-test.rkt
similarity index 96%
rename from collects/tests/schemeunit/standalone-check-test.ss
rename to collects/tests/rktunit/standalone-check-test.rkt
index 91d1daa716..9c6615a2d2 100644
--- a/collects/tests/schemeunit/standalone-check-test.ss
+++ b/collects/tests/rktunit/standalone-check-test.rkt
@@ -29,9 +29,9 @@
;; part of the standard test suite and must be run
;; separately.
-#lang scheme/base
+#lang racket/base
-(require schemeunit/private/check)
+(require rktunit/private/check)
;; This check should succeed
(check = 1 1 0.0)
diff --git a/collects/tests/schemeunit/standalone-test-case-test.ss b/collects/tests/rktunit/standalone-test-case-test.rkt
similarity index 83%
rename from collects/tests/schemeunit/standalone-test-case-test.ss
rename to collects/tests/rktunit/standalone-test-case-test.rkt
index 742bb033dc..816f082682 100644
--- a/collects/tests/schemeunit/standalone-test-case-test.ss
+++ b/collects/tests/rktunit/standalone-test-case-test.rkt
@@ -2,10 +2,10 @@
;; semantics of checks. These tests are not part of the
;; standard test suite and must be run separately.
-#lang scheme/base
+#lang racket/base
-(require schemeunit/private/check
- schemeunit/private/test-case)
+(require rktunit/private/check
+ rktunit/private/test-case)
;; These tests should succeeds
(test-begin (check-eq? 1 1))
diff --git a/collects/tests/schemeunit/test-case-test.ss b/collects/tests/rktunit/test-case-test.rkt
similarity index 83%
rename from collects/tests/schemeunit/test-case-test.ss
rename to collects/tests/rktunit/test-case-test.rkt
index 0f3ceac97d..66fed4c00b 100644
--- a/collects/tests/schemeunit/test-case-test.ss
+++ b/collects/tests/rktunit/test-case-test.rkt
@@ -1,10 +1,10 @@
-#lang scheme/base
+#lang racket/base
-(require schemeunit/private/base
- schemeunit/private/check
- schemeunit/private/test-case
- schemeunit/private/test-suite
- schemeunit/private/result)
+(require rktunit/private/base
+ rktunit/private/check
+ rktunit/private/test-case
+ rktunit/private/test-suite
+ rktunit/private/result)
(provide test-case-tests)
diff --git a/collects/tests/schemeunit/test-suite-test.ss b/collects/tests/rktunit/test-suite-test.rkt
similarity index 95%
rename from collects/tests/schemeunit/test-suite-test.ss
rename to collects/tests/rktunit/test-suite-test.rkt
index f8e4a1909b..de7dd5511a 100644
--- a/collects/tests/schemeunit/test-suite-test.ss
+++ b/collects/tests/rktunit/test-suite-test.rkt
@@ -1,7 +1,7 @@
-#lang scheme/base
+#lang racket/base
-(require schemeunit
- schemeunit/private/check)
+(require rktunit
+ rktunit/private/check)
(define run? #f)
diff --git a/collects/tests/schemeunit/test-test.ss b/collects/tests/rktunit/test-test.rkt
similarity index 96%
rename from collects/tests/schemeunit/test-test.ss
rename to collects/tests/rktunit/test-test.rkt
index cd3f237f26..f83dd15589 100644
--- a/collects/tests/schemeunit/test-test.ss
+++ b/collects/tests/rktunit/test-test.rkt
@@ -1,12 +1,12 @@
-#lang scheme/base
+#lang racket/base
-(require (for-syntax scheme/base)
- scheme/runtime-path
+(require (for-syntax racket/base)
+ racket/runtime-path
srfi/1
srfi/13
- schemeunit
- schemeunit/private/util
- schemeunit/private/location)
+ rktunit
+ rktunit/private/util
+ rktunit/private/location)
(provide test-tests)
@@ -43,7 +43,7 @@
(let ((destns (make-base-namespace))
(cns (current-namespace)))
(parameterize ((current-namespace destns))
- (namespace-require 'schemeunit)
+ (namespace-require 'rktunit)
(check-exn (lambda (e)
(check-pred exn:fail:syntax? e)
(check string-contains (exn-message e) msg))
@@ -260,7 +260,7 @@
(test-failure-result failure))]
[loc (check-info-value
(car (filter check-location? stack)))])
- (check-regexp-match #rx"test-test\\.ss" (location->string loc)))))
+ (check-regexp-match #rx"test-test\\.rkt" (location->string loc)))))
(test-case
"Shortcuts capture location"
@@ -273,7 +273,7 @@
(test-failure-result failure)))
(loc (check-info-value
(car (filter check-location? stack)))))
- (check-regexp-match #rx"test-test\\.ss" (location->string loc)))))
+ (check-regexp-match #rx"test-test\\.rkt" (location->string loc)))))
(test-case
"All names that should be exported are exported"
diff --git a/collects/tests/schemeunit/text-ui-test.ss b/collects/tests/rktunit/text-ui-test.rkt
similarity index 93%
rename from collects/tests/schemeunit/text-ui-test.ss
rename to collects/tests/rktunit/text-ui-test.rkt
index c5daf759eb..1d9a0d95a3 100644
--- a/collects/tests/schemeunit/text-ui-test.ss
+++ b/collects/tests/rktunit/text-ui-test.rkt
@@ -26,15 +26,15 @@
;;
;; Commentary:
-#lang scheme/base
+#lang racket/base
-(require scheme/runtime-path
- scheme/pretty
- scheme/port
+(require racket/runtime-path
+ racket/pretty
+ racket/port
srfi/1
srfi/13
- schemeunit
- schemeunit/text-ui)
+ rktunit
+ rktunit/text-ui)
(provide text-ui-tests)
@@ -119,9 +119,9 @@
(with-all-output-to-string (failing-binary-test/complex-params)))])
(check string-contains
op
- "((0 1 2 3 4 5 6 7 8 9 10 11 12 13 14)
- (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14)
- (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14))")))
+ "(`(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14)
+ `(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14)
+ `(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14))")))
(test-case
"Non-binary check output is pretty printed"
@@ -129,9 +129,9 @@
(with-all-output-to-string (failing-test/complex-params)))])
(check string-contains
op
- "((0 1 2 3 4 5 6 7 8 9 10 11 12 13 14)
- (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14)
- (0 1 2 3 4 5 6 7 8 9 10 11 12 13 14))")))
+ "(`(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14)
+ `(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14)
+ `(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14))")))
(test-case
"Location trimmed when file is under current directory"
@@ -139,7 +139,7 @@
(let ((op (with-all-output-to-string (failing-test))))
(check string-contains
op
- "location: text-ui-test.ss"))))
+ "location: text-ui-test.rkt"))))
(test-case
"Name and location displayed before actual/expected"
diff --git a/collects/tests/schemeunit/text-ui-util-test.ss b/collects/tests/rktunit/text-ui-util-test.rkt
similarity index 85%
rename from collects/tests/schemeunit/text-ui-util-test.ss
rename to collects/tests/rktunit/text-ui-util-test.rkt
index bb4948db09..2cb1362eb8 100644
--- a/collects/tests/schemeunit/text-ui-util-test.ss
+++ b/collects/tests/rktunit/text-ui-util-test.rkt
@@ -25,10 +25,10 @@
;;
;;
;; Commentary:
-#lang scheme/base
+#lang racket/base
-(require schemeunit
- schemeunit/private/text-ui-util)
+(require rktunit
+ rktunit/private/text-ui-util)
(provide text-ui-util-tests)
@@ -44,12 +44,12 @@
(test-equal?
"trim-current-directory strips directory from files in current directory"
(trim-current-directory
- (path->string (build-path (current-directory) "foo.ss")))
- "foo.ss")
+ (path->string (build-path (current-directory) "foo.rkt")))
+ "foo.rkt")
(test-equal?
"trim-current-directory leaves subdirectories alone"
(trim-current-directory
- (path->string (build-path (current-directory) "foo" "bar.ss")))
- "foo/bar.ss")
+ (path->string (build-path (current-directory) "foo" "bar.rkt")))
+ "foo/bar.rkt")
))
diff --git a/collects/tests/schemeunit/util-test.ss b/collects/tests/rktunit/util-test.rkt
similarity index 84%
rename from collects/tests/schemeunit/util-test.ss
rename to collects/tests/rktunit/util-test.rkt
index 36b90a5d89..b1c534592b 100644
--- a/collects/tests/schemeunit/util-test.ss
+++ b/collects/tests/rktunit/util-test.rkt
@@ -1,7 +1,7 @@
-#lang scheme/base
+#lang racket/base
-(require schemeunit
- schemeunit/private/util)
+(require rktunit
+ rktunit/private/util)
(provide util-tests)
@@ -10,18 +10,18 @@
;; prevents the tests from loading.
;; 2 - For whatever reason, it *does* fail when loaded via PLaneT.
;; Still waiting for resolution on a bug report.
-(require/expose "check-test.ss" (make-failure-test))
+(require/expose "check-test.rkt" (make-failure-test))
(define util-tests
(test-suite
"Util tests"
(test-case
- "make-failure-test required from check-test.ss"
+ "make-failure-test required from check-test.rkt"
(begin
(check-true (procedure? make-failure-test))
(check-equal? (make-arity-at-least 2)
(procedure-arity make-failure-test))
- (check-pred schemeunit-test-case?
+ (check-pred rktunit-test-case?
(delay-test (make-failure-test "foo" string?)))))
(test-case
diff --git a/collects/tests/run-automated-tests.ss b/collects/tests/run-automated-tests.rkt
similarity index 100%
rename from collects/tests/run-automated-tests.ss
rename to collects/tests/run-automated-tests.rkt
diff --git a/collects/tests/schelog/run-all.rkt b/collects/tests/schelog/run-all.rkt
deleted file mode 100644
index b4a1bce97d..0000000000
--- a/collects/tests/schelog/run-all.rkt
+++ /dev/null
@@ -1,9 +0,0 @@
-#lang racket
-(require racket/runtime-path tests/eli-tester)
-(define-runtime-path here ".")
-(define this-file (build-path "run-all.rkt"))
-
-(test
- (for ([p (in-list (directory-list here))]
- #:when (not (equal? this-file p)))
- (dynamic-require (build-path here p) #f)))
\ No newline at end of file
diff --git a/collects/tests/schelog/unit.rkt b/collects/tests/schelog/unit.rkt
deleted file mode 100644
index c490ea2d81..0000000000
--- a/collects/tests/schelog/unit.rkt
+++ /dev/null
@@ -1,306 +0,0 @@
-#lang racket
-(require schelog
- tests/eli-tester)
-
-(test
- (logic-var? (_))
-
- (%which () (%/= 1 1)) => #f
- (%which () (%/= 1 2)) => empty
- (%more) => #f
-
- (%which (x) (%/== x x)) => #f
- (%which (x y) (%/== x y)) => `((x . _) (y . _))
- (%more) => #f
-
- (%which () (%/== 1 1)) => #f
- (%which () (%/== 1 2)) => empty
- (%more) => #f
-
- (%which () (%< 1 2)) => empty
- (%more) => #f
- (%which () (%< 1 1)) => #f
- (%which () (%< 2 1)) => #f
- (%which () (%< 'a 2)) => #f
- (%which () (%< 1 'b)) => #f
- (%which () (%< 'a 'b)) => #f
-
- (%which () (%<= 1 2)) => empty
- (%more) => #f
- (%which () (%<= 1 1)) => empty
- (%more) => #f
- (%which () (%<= 2 1)) => #f
- (%which () (%<= 'a 2)) => #f
- (%which () (%<= 1 'b)) => #f
- (%which () (%<= 'a 'b)) => #f
-
- (%which () (%= 1 1)) => empty
- (%more) => #f
- (%which () (%= 'a 'a)) => empty
- (%more) => #f
- (%which () (%= (cons 1 2) (cons 1 2))) => empty
- (%more) => #f
- (%which () (%= (vector 1 2) (vector 1 2))) => empty
- (%more) => #f
- (%which (x) (%= x 1)) => `((x . 1))
- (%more) => #f
- (%which (x) (%= (cons x 2) (cons 1 2))) => `((x . 1))
- (%more) => #f
- (%which (x) (%= (vector x 2) (vector 1 2))) => `((x . 1))
- (%more) => #f
- (%which (x) (%and (%= x 1) (%= x 2))) => #f
- (%which () (%= 1 2)) => #f
-
- (%which () (%=/= 1 1)) => #f
- (%which () (%=/= 'a 'a)) => #f
- (%which () (%=/= 1 2)) => empty
- (%more) => #f
-
- (%which () (%=:= 1 1)) => empty
- (%more) => #f
- (%which () (%=:= 'a 'a)) => #f
- (%which () (%=:= 1 2)) => #f
-
- (%which () (%== 1 1)) => empty
- (%more) => #f
- (%which (x) (%== x x)) => `((x . _))
- (%more) => #f
- (%which (x) (%== (cons 1 x) (cons 1 x))) => `((x . _))
- (%more) => #f
- ; XXX This answer seems wrong
- (%which (x) (%and (%= x 1) (%== x 1))) => `((x . 1))
- (%more) => #f
- ; XXX This answer seems wrong
- (%which (x y) (%and (%= x 1) (%= y 1) (%== x y))) => `((x . 1) (y . 1))
- (%more) => #f
- (%which (x y) (%== x y)) => #f
- (%which (x y) (%== (cons 1 x) (cons y 2))) => #f
-
- (%which () (%> 2 1)) => empty
- (%more) => #f
- (%which () (%> 1 1)) => #f
- (%which () (%> 1 2)) => #f
- (%which () (%> 'a 2)) => #f
- (%which () (%> 1 'b)) => #f
- (%which () (%> 'a 'b)) => #f
-
- (%which () (%>= 2 1)) => empty
- (%more) => #f
- (%which () (%>= 1 1)) => empty
- (%more) => #f
- (%which () (%>= 1 2)) => #f
- (%which () (%>= 'a 2)) => #f
- (%which () (%>= 1 'b)) => #f
- (%which () (%>= 'a 'b)) => #f
-
- (%which () (%and %true %true)) => empty
- (%more) => #f
- (%which () (%and %fail %true)) => #f
- (%more) => #f
-
- (%which () (%append empty empty empty)) => empty
- (%more) => #f
- (%which () (%append (list 1) empty (list 1))) => empty
- (%more) => #f
- (%which () (%append empty (list 2) (list 2))) => empty
- (%more) => #f
- (%which () (%append (list 1) (list 2) (list 1 2))) => empty
- (%more) => #f
-
- (let ([rel %empty-rel])
- (test (%which (y) (rel 'x y)) => #f
- (%assert! rel () [('x 1)])
- (%which (y) (rel 'x y)) => `([y . 1])
- (%more) => #f
- (%assert-after! rel () [('x 2)])
- (%which (y) (rel 'x y)) => `([y . 2])
- (%more) => `([y . 1])
- (%more) => #f
- (%assert! rel () [('x 3)])
- (%which (y) (rel 'x y)) => `([y . 2])
- (%more) => `([y . 1])
- (%more) => `([y . 3])
- (%more) => #f))
-
- (%which (y) (%let (x) (%bag-of x (%or (%= x 1) (%= x 1) (%= x 2)) y))) => `([y . (1 1 2)])
- (%more) => #f
- ; XXX I don't know a program that would get these outputs
- ;(%which (y) (%let (x) (%bag-of x XXX y))) => `([y . ()])
- (%more) => #f
- (%which (y) (%let (x) (%bag-of-1 x (%or (%= x 1) (%= x 1) (%= x 2)) y))) => `([y . (1 1 2)])
- (%more) => #f
- ; XXX I don't know a program that would get these outputs
- ;(%which (y) (%let (x) (%bag-of-1 x XXX y))) => #f
-
- (%which () (%compound (cons 1 1))) => empty
- (%more) => #f
- (%which () (%compound (vector 1 1))) => empty
- (%more) => #f
- (%which () (%let (x) (%and (%= x (cons 1 1)) (%compound x)))) => empty
- (%more) => #f
- (%which () (%compound 1)) => #f
- (%which () (%compound "1")) => #f
- (%which () (%compound '1)) => #f
- (%which () (%compound empty)) => #f
-
- (%which () (%constant (cons 1 1))) => #f
- (%which () (%constant (vector 1 1))) => #f
- (%which () (%let (x) (%and (%= x 1) (%constant x)))) => empty
- (%more) => #f
- (%which () (%constant 1)) => empty
- (%more) => #f
- (%which () (%constant "1")) => empty
- (%more) => #f
- (%which () (%constant '1)) => empty
- (%more) => #f
- (%which () (%constant empty)) => empty
- (%more) => #f
-
- (%which (x) (%let (y) (%and (%copy x y) (%= y 1)))) => `([x . _])
- (%more) => #f
-
- ! =error> "syntactically"
-
- (%which () (%cut-delimiter %true)) => empty
- (%more) => #f
- (%which () (%cut-delimiter !)) => empty
- (%more) => #f
- (%which () (%cut-delimiter %fail)) => #f
- (%which () (%or %true %true)) => empty
- (%more) => empty
- (%more) => #f
- (%which () (%cut-delimiter (%or (%and ! %true) %true))) => empty
- (%more) => #f
-
- (%which () (%empty-rel 1 1)) => #f
-
- (%which () %fail) => #f
-
- ; %free-vars example from documentation
- (local [(define %knows
- (%rel ()
- [('Odysseus 'TeX)]
- [('Odysseus 'Scheme)]
- [('Odysseus 'Prolog)]
- [('Odysseus 'Penelope)]
- [('Penelope 'TeX)]
- [('Penelope 'Prolog)]
- [('Penelope 'Odysseus)]
- [('Telemachus 'TeX)]
- [('Telemachus 'calculus)]))]
- (test (%which (someone things-known)
- (%let (x)
- (%set-of x (%knows someone x)
- things-known)))
- =>
- `((someone . _) (things-known TeX Scheme Prolog Penelope Odysseus calculus))
- (%more) => #f
- (%which (someone things-known)
- (%let (x)
- (%bag-of x
- (%free-vars (someone)
- (%knows someone x))
- things-known)))
- =>
- `((someone . Odysseus) (things-known TeX Scheme Prolog Penelope))
- (%more) =>
- `((someone . Penelope) (things-known TeX Prolog Odysseus))
- (%more) =>
- `((someone . Telemachus) (things-known TeX calculus))
- (%more) =>
- #f))
-
- (%which (x) (%let (y) (%and (%freeze x y) (%nonvar y)))) => `([x . _])
-
- (%which () (%if-then-else %true %true %true)) => empty
- (%more) => #f
- (%which () (%if-then-else %true %fail %true)) => #f
- (%which () (%if-then-else %fail %true %true)) => empty
- (%more) => #f
-
- (%which (x) (%is x (* 6 7))) => `([x . 42])
- (%more) => #f
- (%which (x) (%let (y) (%and (%= y 7) (%is x (* 6 y))))) => `([x . 42])
- (%more) => #f
-
- (%which () (%let (x) (%= x x))) => empty
- (%more) => #f
-
- (%which (x) (%let (y z) (%and (%freeze x y) (%melt y z) (%= z 1)))) => `([x . 1])
- (%more) => #f
-
- (%which (x) (%let (y z) (%and (%freeze x y) (%melt-new y z) (%= z 1)))) => `([x . _])
- (%more) => #f
-
- (%which () (%member 3 (list 1 2 3))) => empty
- (%more) => #f
- (%which () (%member 3 (list 1 2 3 3))) => empty
- (%more) => empty
- (%more) => #f
- (%which () (%member 3 (list 1 2))) => #f
-
- (%which () (%let (x) (%nonvar x))) => #f
- (%which () (%let (x) (%nonvar (cons 1 x)))) => #f
- (%which () (%let (x) (%nonvar (vector x)))) => #f
- (%which () (%let (x) (%nonvar 1))) => empty
- (%more) => #f
- (%which () (%let (x) (%and (%= x 1) (%nonvar x)))) => empty
- (%more) => #f
-
- (%which () (%not %true)) => #f
- (%which () (%not %fail)) => empty
- (%more) => #f
-
- (%which () (%or %true %true)) => empty
- (%more) => empty
- (%more) => #f
- (%which () (%or %true %fail %true)) => empty
- (%more) => empty
- (%more) => #f
-
- (let ([rel (%rel () [(1)] [(2) %fail])])
- (test (%which () (rel 1)) => empty
- (%more) => #f
- (%which () (rel 2)) => #f))
- (let ([rel (%rel () [(1) !] [(1) (%repeat)])])
- (test (%which () (rel 1)) => empty
- (%more) => #f))
-
- (local [(define (many-%more n)
- (if (zero? n)
- empty
- (and (%more)
- (many-%more (sub1 n)))))]
- (test (%which () (%repeat)) => empty
- (many-%more (random 50)) => empty))
-
- (parameterize ([use-occurs-check? #f])
- (%which () (%let (x) (%= x (cons 1 x)))))
- => empty
- (parameterize ([use-occurs-check? #t])
- (%which () (%let (x) (%= x (cons 1 x)))))
- => #f
-
- (%which (y) (%let (x) (%set-of x (%or (%= x 1) (%= x 1) (%= x 2)) y))) => `([y . (1 2)])
- (%more) => #f
- ; XXX I don't know a program that would get these outputs
- ;(%which (y) (%let (x) (%set-of x XXX y))) => `([y . ()])
- (%more) => #f
- (%which (y) (%let (x) (%set-of-1 x (%or (%= x 1) (%= x 1) (%= x 2)) y))) => `([y . (1 2)])
- (%more) => #f
- ; XXX I don't know a program that would get these outputs
- ;(%which (y) (%let (x) (%set-of-1 x XXX y))) => #f
-
- (%which () %true) => empty
- (%more) => #f
-
- (%which () (%let (x) (%var x))) => empty
- (%more) => #f
- (%which () (%let (x) (%var (cons 1 x)))) => empty
- (%more) => #f
- (%which () (%let (x) (%var (vector x)))) => empty
- (%more) => #f
- (%which () (%let (x) (%var 1))) => #f
- (%which () (%let (x) (%and (%= x 1) (%var x)))) => #f
-
- )
\ No newline at end of file
diff --git a/collects/tests/scribble/collect.ss b/collects/tests/scribble/collect.rkt
similarity index 100%
rename from collects/tests/scribble/collect.ss
rename to collects/tests/scribble/collect.rkt
diff --git a/collects/tests/scribble/main.ss b/collects/tests/scribble/main.rkt
similarity index 100%
rename from collects/tests/scribble/main.ss
rename to collects/tests/scribble/main.rkt
diff --git a/collects/tests/scribble/preprocessor.ss b/collects/tests/scribble/preprocessor.rkt
similarity index 100%
rename from collects/tests/scribble/preprocessor.ss
rename to collects/tests/scribble/preprocessor.rkt
diff --git a/collects/tests/scribble/reader.ss b/collects/tests/scribble/reader.rkt
similarity index 100%
rename from collects/tests/scribble/reader.ss
rename to collects/tests/scribble/reader.rkt
diff --git a/collects/tests/slatex/test.rkt b/collects/tests/slatex/test.rkt
new file mode 100644
index 0000000000..c24d2c2e06
--- /dev/null
+++ b/collects/tests/slatex/test.rkt
@@ -0,0 +1,63 @@
+#lang racket
+(require slatex/slatex-wrapper
+ tests/eli-tester
+ scheme/runtime-path)
+
+(define-runtime-path slatex-file-pth '(lib "slatex"))
+(define slatex-pth (path-only slatex-file-pth))
+
+(define tmp-file (build-path (current-directory) "test.tex")
+ #;(make-temporary-file "slatex~a.tex" #f (current-directory)))
+
+(test
+ (putenv "TEXINPUTS" (format "~a:" (path->string slatex-pth)))
+ tmp-file
+
+ (with-output-to-file tmp-file #:exists 'truncate/replace
+ (lambda ()
+ (display #<string tmp-file))
+
+ (with-handlers ([exn:fail:filesystem? void])
+ (delete-file (path-replace-suffix tmp-file #".aux")))
+ (with-handlers ([exn:fail:filesystem? void])
+ (delete-file (path-replace-suffix tmp-file #".log")))
+ (with-handlers ([exn:fail:filesystem? void])
+ (delete-file (path-replace-suffix tmp-file #".dvi")))
+
+ (delete-file tmp-file))
+
\ No newline at end of file
diff --git a/collects/tests/srfi/1/alist-test.ss b/collects/tests/srfi/1/alist-test.rkt
similarity index 99%
rename from collects/tests/srfi/1/alist-test.ss
rename to collects/tests/srfi/1/alist-test.rkt
index 6ab78110ae..6d6277e4bb 100644
--- a/collects/tests/srfi/1/alist-test.ss
+++ b/collects/tests/srfi/1/alist-test.rkt
@@ -33,7 +33,7 @@
;; stone@math.grin.edu
(module alist-test mzscheme
- (require schemeunit)
+ (require rktunit)
(require (all-except srfi/1/alist assoc)
(rename srfi/1/alist s:assoc assoc))
diff --git a/collects/tests/srfi/1/all-1-tests.ss b/collects/tests/srfi/1/all-1-tests.rkt
similarity index 96%
rename from collects/tests/srfi/1/all-1-tests.ss
rename to collects/tests/srfi/1/all-1-tests.rkt
index e9ad57fe06..6c5b992850 100644
--- a/collects/tests/srfi/1/all-1-tests.ss
+++ b/collects/tests/srfi/1/all-1-tests.rkt
@@ -1,6 +1,6 @@
(module all-1-tests mzscheme
- (require schemeunit)
+ (require rktunit)
(require "alist-test.ss"
"cons-test.ss"
"delete-test.ss"
diff --git a/collects/tests/srfi/1/cons-test.ss b/collects/tests/srfi/1/cons-test.rkt
similarity index 99%
rename from collects/tests/srfi/1/cons-test.ss
rename to collects/tests/srfi/1/cons-test.rkt
index 734db4af3b..d24a275e3e 100644
--- a/collects/tests/srfi/1/cons-test.ss
+++ b/collects/tests/srfi/1/cons-test.rkt
@@ -34,7 +34,7 @@
(module cons-test
mzscheme
- (require schemeunit)
+ (require rktunit)
(require srfi/1/cons)
(provide cons-tests)
diff --git a/collects/tests/srfi/1/delete-test.ss b/collects/tests/srfi/1/delete-test.rkt
similarity index 99%
rename from collects/tests/srfi/1/delete-test.ss
rename to collects/tests/srfi/1/delete-test.rkt
index 46a89fbbab..c721dc88fa 100644
--- a/collects/tests/srfi/1/delete-test.ss
+++ b/collects/tests/srfi/1/delete-test.rkt
@@ -34,7 +34,7 @@
(module delete-test
mzscheme
- (require schemeunit)
+ (require rktunit)
(require (all-except srfi/1/delete member))
(provide delete-tests)
diff --git a/collects/tests/srfi/1/filter-test.ss b/collects/tests/srfi/1/filter-test.rkt
similarity index 99%
rename from collects/tests/srfi/1/filter-test.ss
rename to collects/tests/srfi/1/filter-test.rkt
index d18bd1f85e..ab7a7d3d92 100644
--- a/collects/tests/srfi/1/filter-test.ss
+++ b/collects/tests/srfi/1/filter-test.rkt
@@ -34,7 +34,7 @@
(module filter-test
mzscheme
- (require schemeunit)
+ (require rktunit)
(require (all-except srfi/1/filter member))
(provide filter-tests)
diff --git a/collects/tests/srfi/1/fold-test.ss b/collects/tests/srfi/1/fold-test.rkt
similarity index 99%
rename from collects/tests/srfi/1/fold-test.ss
rename to collects/tests/srfi/1/fold-test.rkt
index bf1e8f9cc8..582ece5217 100644
--- a/collects/tests/srfi/1/fold-test.ss
+++ b/collects/tests/srfi/1/fold-test.rkt
@@ -34,7 +34,7 @@
(module fold-test
mzscheme
- (require schemeunit)
+ (require rktunit)
(require (all-except srfi/1/fold map for-each)
(rename srfi/1/fold s:map map)
(rename srfi/1/fold s:for-each for-each))
diff --git a/collects/tests/srfi/1/lset-test.ss b/collects/tests/srfi/1/lset-test.rkt
similarity index 99%
rename from collects/tests/srfi/1/lset-test.ss
rename to collects/tests/srfi/1/lset-test.rkt
index d57938e188..6acd3fc9d1 100644
--- a/collects/tests/srfi/1/lset-test.ss
+++ b/collects/tests/srfi/1/lset-test.rkt
@@ -34,7 +34,7 @@
(module lset-test
mzscheme
- (require schemeunit)
+ (require rktunit)
(require srfi/1/lset)
(provide lset-tests)
diff --git a/collects/tests/srfi/1/misc-test.ss b/collects/tests/srfi/1/misc-test.rkt
similarity index 99%
rename from collects/tests/srfi/1/misc-test.ss
rename to collects/tests/srfi/1/misc-test.rkt
index b8a72c5f2f..989715be06 100644
--- a/collects/tests/srfi/1/misc-test.ss
+++ b/collects/tests/srfi/1/misc-test.rkt
@@ -34,7 +34,7 @@
(module misc-test
mzscheme
- (require schemeunit)
+ (require rktunit)
(require (all-except srfi/1/misc append! reverse!)
(rename srfi/1/misc s:append! append!)
(rename srfi/1/misc s:reverse! reverse!))
diff --git a/collects/tests/srfi/1/predicate-test.ss b/collects/tests/srfi/1/predicate-test.rkt
similarity index 99%
rename from collects/tests/srfi/1/predicate-test.ss
rename to collects/tests/srfi/1/predicate-test.rkt
index 8f846805cc..e62d66b5f5 100644
--- a/collects/tests/srfi/1/predicate-test.ss
+++ b/collects/tests/srfi/1/predicate-test.rkt
@@ -34,7 +34,7 @@
(module predicate-test
mzscheme
- (require schemeunit)
+ (require rktunit)
(require srfi/1/predicate
srfi/1/cons)
diff --git a/collects/tests/srfi/1/run-tests.ss b/collects/tests/srfi/1/run-tests.rkt
similarity index 50%
rename from collects/tests/srfi/1/run-tests.ss
rename to collects/tests/srfi/1/run-tests.rkt
index e4cfd86d66..5f16086162 100644
--- a/collects/tests/srfi/1/run-tests.ss
+++ b/collects/tests/srfi/1/run-tests.rkt
@@ -1,5 +1,5 @@
-(require schemeunit)
-(require schemeunit/text-ui)
+(require rktunit)
+(require rktunit/text-ui)
(require "all-1-tests.ss")
(run-tests all-1-tests)
diff --git a/collects/tests/srfi/1/search-test.ss b/collects/tests/srfi/1/search-test.rkt
similarity index 99%
rename from collects/tests/srfi/1/search-test.ss
rename to collects/tests/srfi/1/search-test.rkt
index fd2e9f8e9f..12ab23f04c 100644
--- a/collects/tests/srfi/1/search-test.ss
+++ b/collects/tests/srfi/1/search-test.rkt
@@ -35,7 +35,7 @@
(module search-test
mzscheme
- (require schemeunit)
+ (require rktunit)
(require (all-except srfi/1/search member))
(provide search-tests)
diff --git a/collects/tests/srfi/1/selector-test.ss b/collects/tests/srfi/1/selector-test.rkt
similarity index 99%
rename from collects/tests/srfi/1/selector-test.ss
rename to collects/tests/srfi/1/selector-test.rkt
index ba9edd9a28..76803dc9ad 100644
--- a/collects/tests/srfi/1/selector-test.ss
+++ b/collects/tests/srfi/1/selector-test.rkt
@@ -35,7 +35,7 @@
(module selector-test
mzscheme
- (require schemeunit)
+ (require rktunit)
(require srfi/1/selector)
(provide selector-tests)
diff --git a/collects/tests/srfi/13/string-test.ss b/collects/tests/srfi/13/string-test.rkt
similarity index 99%
rename from collects/tests/srfi/13/string-test.ss
rename to collects/tests/srfi/13/string-test.rkt
index 5191748594..073ba14ff3 100644
--- a/collects/tests/srfi/13/string-test.ss
+++ b/collects/tests/srfi/13/string-test.rkt
@@ -27,7 +27,7 @@
(module string-test mzscheme
;; Noel's Test Framework: (get your copy @ schematics.sourceforge.net)
- (require schemeunit)
+ (require rktunit)
(require srfi/13/string
srfi/14/char-set
)
diff --git a/collects/tests/srfi/14/char-set-test.ss b/collects/tests/srfi/14/char-set-test.rkt
similarity index 99%
rename from collects/tests/srfi/14/char-set-test.ss
rename to collects/tests/srfi/14/char-set-test.rkt
index 4f25d619c7..67d8b0fff2 100644
--- a/collects/tests/srfi/14/char-set-test.ss
+++ b/collects/tests/srfi/14/char-set-test.rkt
@@ -27,7 +27,7 @@
(module char-set-test mzscheme
- (require schemeunit)
+ (require rktunit)
(require srfi/14/char-set)
(provide char-set-tests)
diff --git a/collects/tests/srfi/19/tests.ss b/collects/tests/srfi/19/tests.rkt
similarity index 99%
rename from collects/tests/srfi/19/tests.ss
rename to collects/tests/srfi/19/tests.rkt
index 7ef340b0a7..1851ecb8a7 100644
--- a/collects/tests/srfi/19/tests.ss
+++ b/collects/tests/srfi/19/tests.rkt
@@ -10,8 +10,8 @@
(require scheme/serialize
srfi/19/time)
-(require schemeunit
- schemeunit/text-ui)
+(require rktunit
+ rktunit/text-ui)
(define-check (check-comparisons comparison times expected)
(for ([time0 (in-list times)]
diff --git a/collects/tests/srfi/2/and-let-test.ss b/collects/tests/srfi/2/and-let-test.rkt
similarity index 99%
rename from collects/tests/srfi/2/and-let-test.ss
rename to collects/tests/srfi/2/and-let-test.rkt
index 2cd38ea1ba..03ad164fc4 100644
--- a/collects/tests/srfi/2/and-let-test.ss
+++ b/collects/tests/srfi/2/and-let-test.rkt
@@ -26,7 +26,7 @@
;; Commentary:
(module and-let-test mzscheme
- (require schemeunit)
+ (require rktunit)
(require srfi/2/and-let)
(provide and-let*-tests)
diff --git a/collects/tests/srfi/26/cut-test.ss b/collects/tests/srfi/26/cut-test.rkt
similarity index 99%
rename from collects/tests/srfi/26/cut-test.ss
rename to collects/tests/srfi/26/cut-test.rkt
index d053599e42..8f2ffb84c4 100644
--- a/collects/tests/srfi/26/cut-test.ss
+++ b/collects/tests/srfi/26/cut-test.rkt
@@ -23,7 +23,7 @@
; $Id: cut-test.ss,v 1.1 2002/06/20 15:40:52 noel Exp $
(module cut-test mzscheme
- (require schemeunit)
+ (require rktunit)
(require srfi/26/cut)
(provide cut-tests)
diff --git a/collects/tests/srfi/4/srfi-4-test.ss b/collects/tests/srfi/4/srfi-4-test.rkt
similarity index 98%
rename from collects/tests/srfi/4/srfi-4-test.ss
rename to collects/tests/srfi/4/srfi-4-test.rkt
index 3434ef1e3b..7aa4225ffb 100644
--- a/collects/tests/srfi/4/srfi-4-test.ss
+++ b/collects/tests/srfi/4/srfi-4-test.rkt
@@ -1,7 +1,7 @@
(module srfi-4-test mzscheme
- (require schemeunit)
- (require schemeunit/text-ui
+ (require rktunit)
+ (require rktunit/text-ui
srfi/4)
(provide srfi-4-tests)
diff --git a/collects/tests/srfi/40/all-srfi-40-tests.ss b/collects/tests/srfi/40/all-srfi-40-tests.rkt
similarity index 99%
rename from collects/tests/srfi/40/all-srfi-40-tests.ss
rename to collects/tests/srfi/40/all-srfi-40-tests.rkt
index bdc6627dfb..8f069f96f0 100644
--- a/collects/tests/srfi/40/all-srfi-40-tests.ss
+++ b/collects/tests/srfi/40/all-srfi-40-tests.rkt
@@ -1,5 +1,5 @@
(module all-srfi-40-tests mzscheme
- (require schemeunit)
+ (require rktunit)
(require srfi/40)
(provide all-srfi-40-tests)
diff --git a/collects/tests/srfi/40/run-tests.ss b/collects/tests/srfi/40/run-tests.rkt
similarity index 56%
rename from collects/tests/srfi/40/run-tests.ss
rename to collects/tests/srfi/40/run-tests.rkt
index ec2e6d6957..a9b0fada83 100644
--- a/collects/tests/srfi/40/run-tests.ss
+++ b/collects/tests/srfi/40/run-tests.rkt
@@ -1,5 +1,5 @@
-(require schemeunit)
-(require schemeunit/text-ui)
+(require rktunit)
+(require rktunit/text-ui)
(require "all-srfi-40-tests.ss")
(run-tests all-srfi-40-tests)
diff --git a/collects/tests/srfi/43/all-srfi-43-tests.ss b/collects/tests/srfi/43/all-srfi-43-tests.rkt
similarity index 95%
rename from collects/tests/srfi/43/all-srfi-43-tests.ss
rename to collects/tests/srfi/43/all-srfi-43-tests.rkt
index 0ee7c197d7..c4620fc684 100644
--- a/collects/tests/srfi/43/all-srfi-43-tests.ss
+++ b/collects/tests/srfi/43/all-srfi-43-tests.rkt
@@ -1,5 +1,5 @@
(module all-srfi-43-tests mzscheme
- (require schemeunit)
+ (require rktunit)
(require "constructor-tests.ss"
"predicate-tests.ss"
"iteration-tests.ss"
diff --git a/collects/tests/srfi/43/constructor-tests.ss b/collects/tests/srfi/43/constructor-tests.rkt
similarity index 99%
rename from collects/tests/srfi/43/constructor-tests.ss
rename to collects/tests/srfi/43/constructor-tests.rkt
index 217a9ffe04..c2457f093c 100644
--- a/collects/tests/srfi/43/constructor-tests.ss
+++ b/collects/tests/srfi/43/constructor-tests.rkt
@@ -1,6 +1,6 @@
(module constructor-tests mzscheme
- (require schemeunit)
+ (require rktunit)
(require srfi/43/vector-lib)
(provide constructor-tests)
diff --git a/collects/tests/srfi/43/conversion-tests.ss b/collects/tests/srfi/43/conversion-tests.rkt
similarity index 97%
rename from collects/tests/srfi/43/conversion-tests.ss
rename to collects/tests/srfi/43/conversion-tests.rkt
index 43340d7c9e..26617e5430 100644
--- a/collects/tests/srfi/43/conversion-tests.ss
+++ b/collects/tests/srfi/43/conversion-tests.rkt
@@ -1,6 +1,6 @@
(module conversion-tests mzscheme
- (require schemeunit)
+ (require rktunit)
(require srfi/43/vector-lib)
(provide conversion-tests)
diff --git a/collects/tests/srfi/43/iteration-tests.ss b/collects/tests/srfi/43/iteration-tests.rkt
similarity index 99%
rename from collects/tests/srfi/43/iteration-tests.ss
rename to collects/tests/srfi/43/iteration-tests.rkt
index 514ddd4398..a3ce6e6579 100644
--- a/collects/tests/srfi/43/iteration-tests.ss
+++ b/collects/tests/srfi/43/iteration-tests.rkt
@@ -1,6 +1,6 @@
(module iteration-tests mzscheme
- (require schemeunit)
+ (require rktunit)
(require srfi/43/vector-lib)
(provide iteration-tests)
diff --git a/collects/tests/srfi/43/mutator-tests.ss b/collects/tests/srfi/43/mutator-tests.rkt
similarity index 99%
rename from collects/tests/srfi/43/mutator-tests.ss
rename to collects/tests/srfi/43/mutator-tests.rkt
index 8ef936f896..79f1813918 100644
--- a/collects/tests/srfi/43/mutator-tests.ss
+++ b/collects/tests/srfi/43/mutator-tests.rkt
@@ -1,6 +1,6 @@
(module mutator-tests mzscheme
- (require schemeunit)
+ (require rktunit)
(require srfi/43/vector-lib)
(provide mutator-tests)
diff --git a/collects/tests/srfi/43/predicate-tests.ss b/collects/tests/srfi/43/predicate-tests.rkt
similarity index 97%
rename from collects/tests/srfi/43/predicate-tests.ss
rename to collects/tests/srfi/43/predicate-tests.rkt
index 32a82dd82d..a98b03d4eb 100644
--- a/collects/tests/srfi/43/predicate-tests.ss
+++ b/collects/tests/srfi/43/predicate-tests.rkt
@@ -1,6 +1,6 @@
(module predicate-tests mzscheme
- (require schemeunit)
+ (require rktunit)
(require srfi/43/vector-lib)
(provide predicate-tests)
diff --git a/collects/tests/srfi/43/run-tests.ss b/collects/tests/srfi/43/run-tests.rkt
similarity index 56%
rename from collects/tests/srfi/43/run-tests.ss
rename to collects/tests/srfi/43/run-tests.rkt
index bef2758593..18e001b1fe 100644
--- a/collects/tests/srfi/43/run-tests.ss
+++ b/collects/tests/srfi/43/run-tests.rkt
@@ -1,5 +1,5 @@
-(require schemeunit)
-(require schemeunit/text-ui)
+(require rktunit)
+(require rktunit/text-ui)
(require "all-srfi-43-tests.ss")
(run-tests all-srfi-43-tests)
diff --git a/collects/tests/srfi/43/searching-tests.ss b/collects/tests/srfi/43/searching-tests.rkt
similarity index 99%
rename from collects/tests/srfi/43/searching-tests.ss
rename to collects/tests/srfi/43/searching-tests.rkt
index d3fd4eaee9..e8c6ffcc06 100644
--- a/collects/tests/srfi/43/searching-tests.ss
+++ b/collects/tests/srfi/43/searching-tests.rkt
@@ -1,6 +1,6 @@
(module searching-tests mzscheme
- (require schemeunit)
+ (require rktunit)
(require srfi/43/vector-lib)
(provide searching-tests)
diff --git a/collects/tests/srfi/69/hash-tests.ss b/collects/tests/srfi/69/hash-tests.rkt
similarity index 99%
rename from collects/tests/srfi/69/hash-tests.ss
rename to collects/tests/srfi/69/hash-tests.rkt
index cb09f6feba..433c1e3817 100644
--- a/collects/tests/srfi/69/hash-tests.ss
+++ b/collects/tests/srfi/69/hash-tests.rkt
@@ -1,6 +1,6 @@
(module hash-tests mzscheme
- (require schemeunit)
+ (require rktunit)
(require srfi/1/list
(prefix h: srfi/69))
diff --git a/collects/tests/srfi/all-srfi-tests.ss b/collects/tests/srfi/all-srfi-tests.rkt
similarity index 96%
rename from collects/tests/srfi/all-srfi-tests.ss
rename to collects/tests/srfi/all-srfi-tests.rkt
index 85c7530761..4626cd8dd3 100644
--- a/collects/tests/srfi/all-srfi-tests.ss
+++ b/collects/tests/srfi/all-srfi-tests.rkt
@@ -1,6 +1,6 @@
(module all-srfi-tests mzscheme
- (require schemeunit)
+ (require rktunit)
(require "1/all-1-tests.ss"
"2/and-let-test.ss"
"4/srfi-4-test.ss"
diff --git a/collects/tests/srfi/load-srfis.ss b/collects/tests/srfi/load-srfis.rkt
similarity index 100%
rename from collects/tests/srfi/load-srfis.ss
rename to collects/tests/srfi/load-srfis.rkt
diff --git a/collects/tests/srfi/run-tests.ss b/collects/tests/srfi/run-tests.rkt
similarity index 60%
rename from collects/tests/srfi/run-tests.ss
rename to collects/tests/srfi/run-tests.rkt
index ba8d6abb63..b4ebddcd28 100644
--- a/collects/tests/srfi/run-tests.ss
+++ b/collects/tests/srfi/run-tests.rkt
@@ -1,7 +1,7 @@
#lang scheme/base
-(require schemeunit)
-(require schemeunit/text-ui)
+(require rktunit)
+(require rktunit/text-ui)
(require "all-srfi-tests.ss")
(run-tests all-srfi-tests)
diff --git a/collects/tests/srpersist/srptests.ss b/collects/tests/srpersist/srptests.rkt
similarity index 100%
rename from collects/tests/srpersist/srptests.ss
rename to collects/tests/srpersist/srptests.rkt
diff --git a/collects/tests/stepper/already-defined.ss b/collects/tests/stepper/already-defined.rkt
similarity index 100%
rename from collects/tests/stepper/already-defined.ss
rename to collects/tests/stepper/already-defined.rkt
diff --git a/collects/tests/stepper/automatic-tests.ss b/collects/tests/stepper/automatic-tests.rkt
similarity index 100%
rename from collects/tests/stepper/automatic-tests.ss
rename to collects/tests/stepper/automatic-tests.rkt
diff --git a/collects/tests/stepper/bad-letrec-test.ss b/collects/tests/stepper/bad-letrec-test.rkt
similarity index 100%
rename from collects/tests/stepper/bad-letrec-test.ss
rename to collects/tests/stepper/bad-letrec-test.rkt
diff --git a/collects/tests/stepper/constructor-redexes.ss b/collects/tests/stepper/constructor-redexes.rkt
similarity index 100%
rename from collects/tests/stepper/constructor-redexes.ss
rename to collects/tests/stepper/constructor-redexes.rkt
diff --git a/collects/tests/stepper/global-prim-reduction.ss b/collects/tests/stepper/global-prim-reduction.rkt
similarity index 100%
rename from collects/tests/stepper/global-prim-reduction.ss
rename to collects/tests/stepper/global-prim-reduction.rkt
diff --git a/collects/tests/stepper/image-test.ss b/collects/tests/stepper/image-test.rkt
similarity index 100%
rename from collects/tests/stepper/image-test.ss
rename to collects/tests/stepper/image-test.rkt
diff --git a/collects/tests/stepper/intermediate-y.ss b/collects/tests/stepper/intermediate-y.rkt
similarity index 100%
rename from collects/tests/stepper/intermediate-y.ss
rename to collects/tests/stepper/intermediate-y.rkt
diff --git a/collects/tests/stepper/jump-to-ui-test.ss b/collects/tests/stepper/jump-to-ui-test.rkt
similarity index 100%
rename from collects/tests/stepper/jump-to-ui-test.ss
rename to collects/tests/stepper/jump-to-ui-test.rkt
diff --git a/collects/tests/stepper/lambda-test.ss b/collects/tests/stepper/lambda-test.rkt
similarity index 100%
rename from collects/tests/stepper/lambda-test.ss
rename to collects/tests/stepper/lambda-test.rkt
diff --git a/collects/tests/stepper/language-level-model.ss b/collects/tests/stepper/language-level-model.rkt
similarity index 100%
rename from collects/tests/stepper/language-level-model.ss
rename to collects/tests/stepper/language-level-model.rkt
diff --git a/collects/tests/stepper/let-test.ss b/collects/tests/stepper/let-test.rkt
similarity index 100%
rename from collects/tests/stepper/let-test.ss
rename to collects/tests/stepper/let-test.rkt
diff --git a/collects/tests/stepper/letrec-test.ss b/collects/tests/stepper/letrec-test.rkt
similarity index 100%
rename from collects/tests/stepper/letrec-test.ss
rename to collects/tests/stepper/letrec-test.rkt
diff --git a/collects/tests/stepper/local-define-struct.ss b/collects/tests/stepper/local-define-struct.rkt
similarity index 100%
rename from collects/tests/stepper/local-define-struct.ss
rename to collects/tests/stepper/local-define-struct.rkt
diff --git a/collects/tests/stepper/local-test-2.ss b/collects/tests/stepper/local-test-2.rkt
similarity index 100%
rename from collects/tests/stepper/local-test-2.ss
rename to collects/tests/stepper/local-test-2.rkt
diff --git a/collects/tests/stepper/local-test.ss b/collects/tests/stepper/local-test.rkt
similarity index 100%
rename from collects/tests/stepper/local-test.ss
rename to collects/tests/stepper/local-test.rkt
diff --git a/collects/tests/stepper/long-error-message.ss b/collects/tests/stepper/long-error-message.rkt
similarity index 100%
rename from collects/tests/stepper/long-error-message.ss
rename to collects/tests/stepper/long-error-message.rkt
diff --git a/collects/tests/stepper/multiply-defined.ss b/collects/tests/stepper/multiply-defined.rkt
similarity index 100%
rename from collects/tests/stepper/multiply-defined.ss
rename to collects/tests/stepper/multiply-defined.rkt
diff --git a/collects/tests/stepper/name-chaining.ss b/collects/tests/stepper/name-chaining.rkt
similarity index 100%
rename from collects/tests/stepper/name-chaining.ss
rename to collects/tests/stepper/name-chaining.rkt
diff --git a/collects/tests/stepper/no-else-clause.ss b/collects/tests/stepper/no-else-clause.rkt
similarity index 100%
rename from collects/tests/stepper/no-else-clause.ss
rename to collects/tests/stepper/no-else-clause.rkt
diff --git a/collects/tests/stepper/non-procedure.ss b/collects/tests/stepper/non-procedure.rkt
similarity index 100%
rename from collects/tests/stepper/non-procedure.ss
rename to collects/tests/stepper/non-procedure.rkt
diff --git a/collects/tests/stepper/print-convert-test.ss b/collects/tests/stepper/print-convert-test.rkt
similarity index 100%
rename from collects/tests/stepper/print-convert-test.ss
rename to collects/tests/stepper/print-convert-test.rkt
diff --git a/collects/tests/stepper/printing-reducing-test.ss b/collects/tests/stepper/printing-reducing-test.rkt
similarity index 100%
rename from collects/tests/stepper/printing-reducing-test.ss
rename to collects/tests/stepper/printing-reducing-test.rkt
diff --git a/collects/tests/stepper/procedure-display.ss b/collects/tests/stepper/procedure-display.rkt
similarity index 100%
rename from collects/tests/stepper/procedure-display.ss
rename to collects/tests/stepper/procedure-display.rkt
diff --git a/collects/tests/stepper/right-redex.ss b/collects/tests/stepper/right-redex.rkt
similarity index 100%
rename from collects/tests/stepper/right-redex.ss
rename to collects/tests/stepper/right-redex.rkt
diff --git a/collects/tests/stepper/structures.ss b/collects/tests/stepper/structures.rkt
similarity index 100%
rename from collects/tests/stepper/structures.ss
rename to collects/tests/stepper/structures.rkt
diff --git a/collects/tests/stepper/symbol-identifier.ss b/collects/tests/stepper/symbol-identifier.rkt
similarity index 100%
rename from collects/tests/stepper/symbol-identifier.ss
rename to collects/tests/stepper/symbol-identifier.rkt
diff --git a/collects/tests/stepper/symbols.ss b/collects/tests/stepper/symbols.rkt
similarity index 100%
rename from collects/tests/stepper/symbols.ss
rename to collects/tests/stepper/symbols.rkt
diff --git a/collects/tests/stepper/syntax-error-ordering.ss b/collects/tests/stepper/syntax-error-ordering.rkt
similarity index 100%
rename from collects/tests/stepper/syntax-error-ordering.ss
rename to collects/tests/stepper/syntax-error-ordering.rkt
diff --git a/collects/tests/stepper/test-abbrev.ss b/collects/tests/stepper/test-abbrev.rkt
similarity index 100%
rename from collects/tests/stepper/test-abbrev.ss
rename to collects/tests/stepper/test-abbrev.rkt
diff --git a/collects/tests/stepper/test-engine.ss b/collects/tests/stepper/test-engine.rkt
similarity index 100%
rename from collects/tests/stepper/test-engine.ss
rename to collects/tests/stepper/test-engine.rkt
diff --git a/collects/tests/stepper/test-or.ss b/collects/tests/stepper/test-or.rkt
similarity index 100%
rename from collects/tests/stepper/test-or.ss
rename to collects/tests/stepper/test-or.rkt
diff --git a/collects/tests/stepper/through-tests.ss b/collects/tests/stepper/through-tests.rkt
similarity index 100%
rename from collects/tests/stepper/through-tests.ss
rename to collects/tests/stepper/through-tests.rkt
diff --git a/collects/tests/stepper/two-tests.ss b/collects/tests/stepper/two-tests.rkt
similarity index 100%
rename from collects/tests/stepper/two-tests.ss
rename to collects/tests/stepper/two-tests.rkt
diff --git a/collects/tests/stepper/unannotated.ss b/collects/tests/stepper/unannotated.rkt
similarity index 100%
rename from collects/tests/stepper/unannotated.ss
rename to collects/tests/stepper/unannotated.rkt
diff --git a/collects/tests/stepper/undefined.ss b/collects/tests/stepper/undefined.rkt
similarity index 100%
rename from collects/tests/stepper/undefined.ss
rename to collects/tests/stepper/undefined.rkt
diff --git a/collects/tests/stepper/world-test.ss b/collects/tests/stepper/world-test.rkt
similarity index 100%
rename from collects/tests/stepper/world-test.ss
rename to collects/tests/stepper/world-test.rkt
diff --git a/collects/tests/stepper/write-display.ss b/collects/tests/stepper/write-display.rkt
similarity index 100%
rename from collects/tests/stepper/write-display.ss
rename to collects/tests/stepper/write-display.rkt
diff --git a/collects/tests/stxparse/more-tests.ss b/collects/tests/stxparse/more-tests.rkt
similarity index 99%
rename from collects/tests/stxparse/more-tests.ss
rename to collects/tests/stxparse/more-tests.rkt
index 1e794b1da0..46fbbd80a3 100644
--- a/collects/tests/stxparse/more-tests.ss
+++ b/collects/tests/stxparse/more-tests.rkt
@@ -1,6 +1,6 @@
#lang scheme
(require syntax/parse
- schemeunit)
+ rktunit)
(require (for-syntax syntax/parse))
(define-syntax (convert-syntax-error stx)
diff --git a/collects/tests/stxparse/select.ss b/collects/tests/stxparse/select.rkt
similarity index 99%
rename from collects/tests/stxparse/select.ss
rename to collects/tests/stxparse/select.rkt
index 5cb56de502..7ff85f6bec 100644
--- a/collects/tests/stxparse/select.ss
+++ b/collects/tests/stxparse/select.rkt
@@ -1,5 +1,5 @@
#lang scheme
-(require schemeunit
+(require rktunit
syntax/parse)
(require (for-syntax syntax/parse))
(provide (all-defined-out))
diff --git a/collects/tests/stxparse/stxclass.ss b/collects/tests/stxparse/stxclass.rkt
similarity index 99%
rename from collects/tests/stxparse/stxclass.ss
rename to collects/tests/stxparse/stxclass.rkt
index da957d5c2a..2d06baf0a3 100644
--- a/collects/tests/stxparse/stxclass.ss
+++ b/collects/tests/stxparse/stxclass.rkt
@@ -1,6 +1,6 @@
#lang scheme/base
-(require schemeunit
+(require rktunit
syntax/parse
(for-syntax scheme/base syntax/parse))
diff --git a/collects/tests/stxparse/test.ss b/collects/tests/stxparse/test.rkt
similarity index 99%
rename from collects/tests/stxparse/test.ss
rename to collects/tests/stxparse/test.rkt
index 8539559364..62d41a7fe9 100644
--- a/collects/tests/stxparse/test.ss
+++ b/collects/tests/stxparse/test.rkt
@@ -2,7 +2,7 @@
(require syntax/parse
syntax/private/stxparse/rep-attrs
syntax/private/stxparse/runtime)
-(require schemeunit)
+(require rktunit)
;; tok = test pattern ok
(define-syntax tok
diff --git a/collects/tests/syntax-color/paren-tree.ss b/collects/tests/syntax-color/paren-tree.rkt
similarity index 99%
rename from collects/tests/syntax-color/paren-tree.ss
rename to collects/tests/syntax-color/paren-tree.rkt
index 44befb9041..4d7c62d1f9 100644
--- a/collects/tests/syntax-color/paren-tree.ss
+++ b/collects/tests/syntax-color/paren-tree.rkt
@@ -1,4 +1,4 @@
-(load-relative "../mzscheme/loadtest.ss")
+(load-relative "../racket/loadtest.rkt")
(require mzlib/class
syntax-color/paren-tree)
diff --git a/collects/tests/syntax-color/scheme-lexer.ss b/collects/tests/syntax-color/scheme-lexer.rkt
similarity index 100%
rename from collects/tests/syntax-color/scheme-lexer.ss
rename to collects/tests/syntax-color/scheme-lexer.rkt
diff --git a/collects/tests/syntax-color/scribble-lexer.ss b/collects/tests/syntax-color/scribble-lexer.rkt
similarity index 100%
rename from collects/tests/syntax-color/scribble-lexer.ss
rename to collects/tests/syntax-color/scribble-lexer.rkt
diff --git a/collects/tests/syntax-color/token-tree.ss b/collects/tests/syntax-color/token-tree.rkt
similarity index 99%
rename from collects/tests/syntax-color/token-tree.ss
rename to collects/tests/syntax-color/token-tree.rkt
index 1f76b8bd0f..76ba9059b2 100644
--- a/collects/tests/syntax-color/token-tree.ss
+++ b/collects/tests/syntax-color/token-tree.rkt
@@ -1,4 +1,4 @@
-(load-relative "../mzscheme/loadtest.ss")
+(load-relative "../racket/loadtest.rkt")
(require mzlib/class
syntax-color/token-tree)
diff --git a/collects/tests/test-engine/TestEngineTest.ss b/collects/tests/test-engine/TestEngineTest.rkt
similarity index 100%
rename from collects/tests/test-engine/TestEngineTest.ss
rename to collects/tests/test-engine/TestEngineTest.rkt
diff --git a/collects/tests/typed-scheme/fail/all-bad-syntax.ss b/collects/tests/typed-scheme/fail/all-bad-syntax.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/all-bad-syntax.ss
rename to collects/tests/typed-scheme/fail/all-bad-syntax.rkt
diff --git a/collects/tests/typed-scheme/fail/ann-map-funcs.ss b/collects/tests/typed-scheme/fail/ann-map-funcs.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/ann-map-funcs.ss
rename to collects/tests/typed-scheme/fail/ann-map-funcs.rkt
diff --git a/collects/tests/typed-scheme/fail/apply-dots.ss b/collects/tests/typed-scheme/fail/apply-dots.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/apply-dots.ss
rename to collects/tests/typed-scheme/fail/apply-dots.rkt
diff --git a/collects/tests/typed-scheme/fail/back-and-forth.ss b/collects/tests/typed-scheme/fail/back-and-forth.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/back-and-forth.ss
rename to collects/tests/typed-scheme/fail/back-and-forth.rkt
diff --git a/collects/tests/typed-scheme/fail/bad-ann.ss b/collects/tests/typed-scheme/fail/bad-ann.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/bad-ann.ss
rename to collects/tests/typed-scheme/fail/bad-ann.rkt
diff --git a/collects/tests/typed-scheme/fail/bad-any.ss b/collects/tests/typed-scheme/fail/bad-any.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/bad-any.ss
rename to collects/tests/typed-scheme/fail/bad-any.rkt
diff --git a/collects/tests/typed-scheme/fail/bad-first.ss b/collects/tests/typed-scheme/fail/bad-first.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/bad-first.ss
rename to collects/tests/typed-scheme/fail/bad-first.rkt
diff --git a/collects/tests/typed-scheme/fail/bad-hash-ref.ss b/collects/tests/typed-scheme/fail/bad-hash-ref.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/bad-hash-ref.ss
rename to collects/tests/typed-scheme/fail/bad-hash-ref.rkt
diff --git a/collects/tests/typed-scheme/fail/bad-map-poly.ss b/collects/tests/typed-scheme/fail/bad-map-poly.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/bad-map-poly.ss
rename to collects/tests/typed-scheme/fail/bad-map-poly.rkt
diff --git a/collects/tests/typed-scheme/fail/bad-type-app.ss b/collects/tests/typed-scheme/fail/bad-type-app.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/bad-type-app.ss
rename to collects/tests/typed-scheme/fail/bad-type-app.rkt
diff --git a/collects/tests/typed-scheme/fail/box-fail.ss b/collects/tests/typed-scheme/fail/box-fail.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/box-fail.ss
rename to collects/tests/typed-scheme/fail/box-fail.rkt
diff --git a/collects/tests/typed-scheme/fail/check-expect-fail.ss b/collects/tests/typed-scheme/fail/check-expect-fail.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/check-expect-fail.ss
rename to collects/tests/typed-scheme/fail/check-expect-fail.rkt
diff --git a/collects/tests/typed-scheme/fail/cl-bug.ss b/collects/tests/typed-scheme/fail/cl-bug.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/cl-bug.ss
rename to collects/tests/typed-scheme/fail/cl-bug.rkt
diff --git a/collects/tests/typed-scheme/fail/cnt-err1.ss b/collects/tests/typed-scheme/fail/cnt-err1.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/cnt-err1.ss
rename to collects/tests/typed-scheme/fail/cnt-err1.rkt
diff --git a/collects/tests/typed-scheme/fail/cnt-struct-err.ss b/collects/tests/typed-scheme/fail/cnt-struct-err.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/cnt-struct-err.ss
rename to collects/tests/typed-scheme/fail/cnt-struct-err.rkt
diff --git a/collects/tests/typed-scheme/fail/dotted-identity.ss b/collects/tests/typed-scheme/fail/dotted-identity.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/dotted-identity.ss
rename to collects/tests/typed-scheme/fail/dotted-identity.rkt
diff --git a/collects/tests/typed-scheme/fail/duplicate-ann.ss b/collects/tests/typed-scheme/fail/duplicate-ann.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/duplicate-ann.ss
rename to collects/tests/typed-scheme/fail/duplicate-ann.rkt
diff --git a/collects/tests/typed-scheme/fail/formal-len-mismatches.ss b/collects/tests/typed-scheme/fail/formal-len-mismatches.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/formal-len-mismatches.ss
rename to collects/tests/typed-scheme/fail/formal-len-mismatches.rkt
diff --git a/collects/tests/typed-scheme/fail/gadt.ss b/collects/tests/typed-scheme/fail/gadt.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/gadt.ss
rename to collects/tests/typed-scheme/fail/gadt.rkt
diff --git a/collects/tests/typed-scheme/fail/ht-infer.ss b/collects/tests/typed-scheme/fail/ht-infer.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/ht-infer.ss
rename to collects/tests/typed-scheme/fail/ht-infer.rkt
diff --git a/collects/tests/typed-scheme/fail/infer-dots.ss b/collects/tests/typed-scheme/fail/infer-dots.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/infer-dots.ss
rename to collects/tests/typed-scheme/fail/infer-dots.rkt
diff --git a/collects/tests/typed-scheme/fail/nested-tvars.ss b/collects/tests/typed-scheme/fail/nested-tvars.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/nested-tvars.ss
rename to collects/tests/typed-scheme/fail/nested-tvars.rkt
diff --git a/collects/tests/typed-scheme/fail/poly-expect-error.ss b/collects/tests/typed-scheme/fail/poly-expect-error.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/poly-expect-error.ss
rename to collects/tests/typed-scheme/fail/poly-expect-error.rkt
diff --git a/collects/tests/typed-scheme/fail/require-typed-wrong.ss b/collects/tests/typed-scheme/fail/require-typed-wrong.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/require-typed-wrong.ss
rename to collects/tests/typed-scheme/fail/require-typed-wrong.rkt
diff --git a/collects/tests/typed-scheme/fail/reverse-special.ss b/collects/tests/typed-scheme/fail/reverse-special.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/reverse-special.ss
rename to collects/tests/typed-scheme/fail/reverse-special.rkt
diff --git a/collects/tests/typed-scheme/fail/set-struct.ss b/collects/tests/typed-scheme/fail/set-struct.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/set-struct.ss
rename to collects/tests/typed-scheme/fail/set-struct.rkt
diff --git a/collects/tests/typed-scheme/fail/set-tests.ss b/collects/tests/typed-scheme/fail/set-tests.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/set-tests.ss
rename to collects/tests/typed-scheme/fail/set-tests.rkt
diff --git a/collects/tests/typed-scheme/fail/struct-provide.ss b/collects/tests/typed-scheme/fail/struct-provide.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/struct-provide.ss
rename to collects/tests/typed-scheme/fail/struct-provide.rkt
diff --git a/collects/tests/typed-scheme/fail/too-many-errors.ss b/collects/tests/typed-scheme/fail/too-many-errors.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/too-many-errors.ss
rename to collects/tests/typed-scheme/fail/too-many-errors.rkt
diff --git a/collects/tests/typed-scheme/fail/unbound-type.ss b/collects/tests/typed-scheme/fail/unbound-type.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/unbound-type.ss
rename to collects/tests/typed-scheme/fail/unbound-type.rkt
diff --git a/collects/tests/typed-scheme/fail/untyped-srfi1.ss b/collects/tests/typed-scheme/fail/untyped-srfi1.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/untyped-srfi1.ss
rename to collects/tests/typed-scheme/fail/untyped-srfi1.rkt
diff --git a/collects/tests/typed-scheme/fail/values-dots.ss b/collects/tests/typed-scheme/fail/values-dots.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/values-dots.ss
rename to collects/tests/typed-scheme/fail/values-dots.rkt
diff --git a/collects/tests/typed-scheme/fail/with-type-bug.ss b/collects/tests/typed-scheme/fail/with-type-bug.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/with-type-bug.ss
rename to collects/tests/typed-scheme/fail/with-type-bug.rkt
diff --git a/collects/tests/typed-scheme/fail/with-type1.ss b/collects/tests/typed-scheme/fail/with-type1.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/with-type1.ss
rename to collects/tests/typed-scheme/fail/with-type1.rkt
diff --git a/collects/tests/typed-scheme/fail/with-type2.ss b/collects/tests/typed-scheme/fail/with-type2.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/with-type2.ss
rename to collects/tests/typed-scheme/fail/with-type2.rkt
diff --git a/collects/tests/typed-scheme/fail/with-type3.ss b/collects/tests/typed-scheme/fail/with-type3.rkt
similarity index 100%
rename from collects/tests/typed-scheme/fail/with-type3.ss
rename to collects/tests/typed-scheme/fail/with-type3.rkt
diff --git a/collects/tests/typed-scheme/main.ss b/collects/tests/typed-scheme/main.rkt
similarity index 98%
rename from collects/tests/typed-scheme/main.ss
rename to collects/tests/typed-scheme/main.rkt
index bbd37489cb..048b2d4195 100644
--- a/collects/tests/typed-scheme/main.ss
+++ b/collects/tests/typed-scheme/main.rkt
@@ -2,7 +2,7 @@
(provide go go/text)
-(require schemeunit schemeunit/text-ui
+(require rktunit rktunit/text-ui
mzlib/etc scheme/port
compiler/compiler
scheme/match
diff --git a/collects/tests/typed-scheme/nightly-run.ss b/collects/tests/typed-scheme/nightly-run.rkt
similarity index 100%
rename from collects/tests/typed-scheme/nightly-run.ss
rename to collects/tests/typed-scheme/nightly-run.rkt
diff --git a/collects/tests/typed-scheme/run.ss b/collects/tests/typed-scheme/run.rkt
similarity index 100%
rename from collects/tests/typed-scheme/run.ss
rename to collects/tests/typed-scheme/run.rkt
diff --git a/collects/tests/typed-scheme/succeed/andmap.ss b/collects/tests/typed-scheme/succeed/andmap.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/andmap.ss
rename to collects/tests/typed-scheme/succeed/andmap.rkt
diff --git a/collects/tests/typed-scheme/succeed/ann-map-funcs.ss b/collects/tests/typed-scheme/succeed/ann-map-funcs.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/ann-map-funcs.ss
rename to collects/tests/typed-scheme/succeed/ann-map-funcs.rkt
diff --git a/collects/tests/typed-scheme/succeed/annotation-test.ss b/collects/tests/typed-scheme/succeed/annotation-test.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/annotation-test.ss
rename to collects/tests/typed-scheme/succeed/annotation-test.rkt
diff --git a/collects/tests/typed-scheme/succeed/apply-append.ss b/collects/tests/typed-scheme/succeed/apply-append.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/apply-append.ss
rename to collects/tests/typed-scheme/succeed/apply-append.rkt
diff --git a/collects/tests/typed-scheme/succeed/apply-dots-list.ss b/collects/tests/typed-scheme/succeed/apply-dots-list.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/apply-dots-list.ss
rename to collects/tests/typed-scheme/succeed/apply-dots-list.rkt
diff --git a/collects/tests/typed-scheme/succeed/apply-dots.ss b/collects/tests/typed-scheme/succeed/apply-dots.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/apply-dots.ss
rename to collects/tests/typed-scheme/succeed/apply-dots.rkt
diff --git a/collects/tests/typed-scheme/succeed/area.ss b/collects/tests/typed-scheme/succeed/area.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/area.ss
rename to collects/tests/typed-scheme/succeed/area.rkt
diff --git a/collects/tests/typed-scheme/succeed/bad-map-infer.ss b/collects/tests/typed-scheme/succeed/bad-map-infer.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/bad-map-infer.ss
rename to collects/tests/typed-scheme/succeed/bad-map-infer.rkt
diff --git a/collects/tests/typed-scheme/succeed/barland.ss b/collects/tests/typed-scheme/succeed/barland.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/barland.ss
rename to collects/tests/typed-scheme/succeed/barland.rkt
diff --git a/collects/tests/typed-scheme/succeed/basic-tests.ss b/collects/tests/typed-scheme/succeed/basic-tests.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/basic-tests.ss
rename to collects/tests/typed-scheme/succeed/basic-tests.rkt
diff --git a/collects/tests/typed-scheme/succeed/box-num.ss b/collects/tests/typed-scheme/succeed/box-num.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/box-num.ss
rename to collects/tests/typed-scheme/succeed/box-num.rkt
diff --git a/collects/tests/typed-scheme/succeed/broken-let-syntax.ss b/collects/tests/typed-scheme/succeed/broken-let-syntax.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/broken-let-syntax.ss
rename to collects/tests/typed-scheme/succeed/broken-let-syntax.rkt
diff --git a/collects/tests/typed-scheme/succeed/check-expect.ss b/collects/tests/typed-scheme/succeed/check-expect.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/check-expect.ss
rename to collects/tests/typed-scheme/succeed/check-expect.rkt
diff --git a/collects/tests/typed-scheme/succeed/check-within.ss b/collects/tests/typed-scheme/succeed/check-within.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/check-within.ss
rename to collects/tests/typed-scheme/succeed/check-within.rkt
diff --git a/collects/tests/typed-scheme/succeed/cl-bug.ss b/collects/tests/typed-scheme/succeed/cl-bug.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/cl-bug.ss
rename to collects/tests/typed-scheme/succeed/cl-bug.rkt
diff --git a/collects/tests/typed-scheme/succeed/cl-tests.ss b/collects/tests/typed-scheme/succeed/cl-tests.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/cl-tests.ss
rename to collects/tests/typed-scheme/succeed/cl-tests.rkt
diff --git a/collects/tests/typed-scheme/succeed/cl.ss b/collects/tests/typed-scheme/succeed/cl.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/cl.ss
rename to collects/tests/typed-scheme/succeed/cl.rkt
diff --git a/collects/tests/typed-scheme/succeed/cmdline.ss b/collects/tests/typed-scheme/succeed/cmdline.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/cmdline.ss
rename to collects/tests/typed-scheme/succeed/cmdline.rkt
diff --git a/collects/tests/typed-scheme/succeed/cps.ss b/collects/tests/typed-scheme/succeed/cps.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/cps.ss
rename to collects/tests/typed-scheme/succeed/cps.rkt
diff --git a/collects/tests/typed-scheme/succeed/datum-to-syntax.ss b/collects/tests/typed-scheme/succeed/datum-to-syntax.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/datum-to-syntax.ss
rename to collects/tests/typed-scheme/succeed/datum-to-syntax.rkt
diff --git a/collects/tests/typed-scheme/succeed/def-pred.ss b/collects/tests/typed-scheme/succeed/def-pred.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/def-pred.ss
rename to collects/tests/typed-scheme/succeed/def-pred.rkt
diff --git a/collects/tests/typed-scheme/succeed/do.ss b/collects/tests/typed-scheme/succeed/do.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/do.ss
rename to collects/tests/typed-scheme/succeed/do.rkt
diff --git a/collects/tests/typed-scheme/succeed/dot-intro.ss b/collects/tests/typed-scheme/succeed/dot-intro.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/dot-intro.ss
rename to collects/tests/typed-scheme/succeed/dot-intro.rkt
diff --git a/collects/tests/typed-scheme/succeed/dotted-identity.ss b/collects/tests/typed-scheme/succeed/dotted-identity.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/dotted-identity.ss
rename to collects/tests/typed-scheme/succeed/dotted-identity.rkt
diff --git a/collects/tests/typed-scheme/succeed/empty-or.ss b/collects/tests/typed-scheme/succeed/empty-or.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/empty-or.ss
rename to collects/tests/typed-scheme/succeed/empty-or.rkt
diff --git a/collects/tests/typed-scheme/succeed/even-odd.ss b/collects/tests/typed-scheme/succeed/even-odd.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/even-odd.ss
rename to collects/tests/typed-scheme/succeed/even-odd.rkt
diff --git a/collects/tests/typed-scheme/succeed/fix.ss b/collects/tests/typed-scheme/succeed/fix.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/fix.ss
rename to collects/tests/typed-scheme/succeed/fix.rkt
diff --git a/collects/tests/typed-scheme/succeed/fixnum.ss b/collects/tests/typed-scheme/succeed/fixnum.rkt
similarity index 93%
rename from collects/tests/typed-scheme/succeed/fixnum.ss
rename to collects/tests/typed-scheme/succeed/fixnum.rkt
index b9dfc1b918..640cdf1cfa 100644
--- a/collects/tests/typed-scheme/succeed/fixnum.ss
+++ b/collects/tests/typed-scheme/succeed/fixnum.rkt
@@ -10,7 +10,7 @@
;; really badly wrong.
(: check (All (a) ((a a -> Boolean) a a -> Boolean)))
-;; Simple check function as SchemeUnit doesn't work in Typed Scheme (yet)
+;; Simple check function as RktUnit doesn't work in Typed Scheme (yet)
(define (check f a b)
(if (f a b)
#t
diff --git a/collects/tests/typed-scheme/succeed/flonum.ss b/collects/tests/typed-scheme/succeed/flonum.rkt
similarity index 96%
rename from collects/tests/typed-scheme/succeed/flonum.ss
rename to collects/tests/typed-scheme/succeed/flonum.rkt
index d6c70ff3c3..bacb377500 100644
--- a/collects/tests/typed-scheme/succeed/flonum.ss
+++ b/collects/tests/typed-scheme/succeed/flonum.rkt
@@ -5,7 +5,7 @@
scheme/unsafe/ops)
(: check (All (a) ((a a -> Boolean) a a -> Boolean)))
-;; Simple check function as SchemeUnit doesn't work in Typed Scheme (yet)
+;; Simple check function as RktUnit doesn't work in Typed Scheme (yet)
(define (check f a b)
(if (f a b)
#t
diff --git a/collects/tests/typed-scheme/succeed/flvector.ss b/collects/tests/typed-scheme/succeed/flvector.rkt
similarity index 93%
rename from collects/tests/typed-scheme/succeed/flvector.ss
rename to collects/tests/typed-scheme/succeed/flvector.rkt
index 9ee9e90013..066d2068c1 100644
--- a/collects/tests/typed-scheme/succeed/flvector.ss
+++ b/collects/tests/typed-scheme/succeed/flvector.rkt
@@ -11,7 +11,7 @@
;; really badly wrong.
(: check (All (a) ((a a -> Boolean) a a -> Boolean)))
-;; Simple check function as SchemeUnit doesn't work in Typed Scheme (yet)
+;; Simple check function as RktUnit doesn't work in Typed Scheme (yet)
(define (check f a b)
(if (f a b)
#t
@@ -40,4 +40,4 @@
(let ([v (flvector 1. 2. 3.)])
(unsafe-flvector-set! v 0 10.)
(unsafe-flvector-ref v 0))
- 10.)
\ No newline at end of file
+ 10.)
diff --git a/collects/tests/typed-scheme/succeed/fold-left-inst.ss b/collects/tests/typed-scheme/succeed/fold-left-inst.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/fold-left-inst.ss
rename to collects/tests/typed-scheme/succeed/fold-left-inst.rkt
diff --git a/collects/tests/typed-scheme/succeed/fold-left.ss b/collects/tests/typed-scheme/succeed/fold-left.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/fold-left.ss
rename to collects/tests/typed-scheme/succeed/fold-left.rkt
diff --git a/collects/tests/typed-scheme/succeed/for-list.ss b/collects/tests/typed-scheme/succeed/for-list.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/for-list.ss
rename to collects/tests/typed-scheme/succeed/for-list.rkt
diff --git a/collects/tests/typed-scheme/succeed/for-lists.ss b/collects/tests/typed-scheme/succeed/for-lists.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/for-lists.ss
rename to collects/tests/typed-scheme/succeed/for-lists.rkt
diff --git a/collects/tests/typed-scheme/succeed/force-delay.ss b/collects/tests/typed-scheme/succeed/force-delay.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/force-delay.ss
rename to collects/tests/typed-scheme/succeed/force-delay.rkt
diff --git a/collects/tests/typed-scheme/succeed/hash-ref.ss b/collects/tests/typed-scheme/succeed/hash-ref.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/hash-ref.ss
rename to collects/tests/typed-scheme/succeed/hash-ref.rkt
diff --git a/collects/tests/typed-scheme/succeed/if-splitting-test.ss b/collects/tests/typed-scheme/succeed/if-splitting-test.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/if-splitting-test.ss
rename to collects/tests/typed-scheme/succeed/if-splitting-test.rkt
diff --git a/collects/tests/typed-scheme/succeed/infer-dots.ss b/collects/tests/typed-scheme/succeed/infer-dots.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/infer-dots.ss
rename to collects/tests/typed-scheme/succeed/infer-dots.rkt
diff --git a/collects/tests/typed-scheme/succeed/infer-funargs.ss b/collects/tests/typed-scheme/succeed/infer-funargs.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/infer-funargs.ss
rename to collects/tests/typed-scheme/succeed/infer-funargs.rkt
diff --git a/collects/tests/typed-scheme/succeed/inst-dots.ss b/collects/tests/typed-scheme/succeed/inst-dots.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/inst-dots.ss
rename to collects/tests/typed-scheme/succeed/inst-dots.rkt
diff --git a/collects/tests/typed-scheme/succeed/inst-expected.ss b/collects/tests/typed-scheme/succeed/inst-expected.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/inst-expected.ss
rename to collects/tests/typed-scheme/succeed/inst-expected.rkt
diff --git a/collects/tests/typed-scheme/succeed/int-def-colon.ss b/collects/tests/typed-scheme/succeed/int-def-colon.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/int-def-colon.ss
rename to collects/tests/typed-scheme/succeed/int-def-colon.rkt
diff --git a/collects/tests/typed-scheme/succeed/kw.ss b/collects/tests/typed-scheme/succeed/kw.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/kw.ss
rename to collects/tests/typed-scheme/succeed/kw.rkt
diff --git a/collects/tests/typed-scheme/succeed/leftist-heap.ss b/collects/tests/typed-scheme/succeed/leftist-heap.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/leftist-heap.ss
rename to collects/tests/typed-scheme/succeed/leftist-heap.rkt
diff --git a/collects/tests/typed-scheme/succeed/let-values-tests.ss b/collects/tests/typed-scheme/succeed/let-values-tests.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/let-values-tests.ss
rename to collects/tests/typed-scheme/succeed/let-values-tests.rkt
diff --git a/collects/tests/typed-scheme/succeed/list-ref-vec.ss b/collects/tests/typed-scheme/succeed/list-ref-vec.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/list-ref-vec.ss
rename to collects/tests/typed-scheme/succeed/list-ref-vec.rkt
diff --git a/collects/tests/typed-scheme/succeed/list-struct-sum.ss b/collects/tests/typed-scheme/succeed/list-struct-sum.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/list-struct-sum.ss
rename to collects/tests/typed-scheme/succeed/list-struct-sum.rkt
diff --git a/collects/tests/typed-scheme/succeed/little-schemer.ss b/collects/tests/typed-scheme/succeed/little-schemer.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/little-schemer.ss
rename to collects/tests/typed-scheme/succeed/little-schemer.rkt
diff --git a/collects/tests/typed-scheme/succeed/logic.ss b/collects/tests/typed-scheme/succeed/logic.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/logic.ss
rename to collects/tests/typed-scheme/succeed/logic.rkt
diff --git a/collects/tests/typed-scheme/succeed/lots-o-bugs.ss b/collects/tests/typed-scheme/succeed/lots-o-bugs.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/lots-o-bugs.ss
rename to collects/tests/typed-scheme/succeed/lots-o-bugs.rkt
diff --git a/collects/tests/typed-scheme/succeed/manual-examples.ss b/collects/tests/typed-scheme/succeed/manual-examples.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/manual-examples.ss
rename to collects/tests/typed-scheme/succeed/manual-examples.rkt
diff --git a/collects/tests/typed-scheme/succeed/map-nonempty.ss b/collects/tests/typed-scheme/succeed/map-nonempty.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/map-nonempty.ss
rename to collects/tests/typed-scheme/succeed/map-nonempty.rkt
diff --git a/collects/tests/typed-scheme/succeed/map1.ss b/collects/tests/typed-scheme/succeed/map1.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/map1.ss
rename to collects/tests/typed-scheme/succeed/map1.rkt
diff --git a/collects/tests/typed-scheme/succeed/map2.ss b/collects/tests/typed-scheme/succeed/map2.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/map2.ss
rename to collects/tests/typed-scheme/succeed/map2.rkt
diff --git a/collects/tests/typed-scheme/succeed/match-dots.ss b/collects/tests/typed-scheme/succeed/match-dots.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/match-dots.ss
rename to collects/tests/typed-scheme/succeed/match-dots.rkt
diff --git a/collects/tests/typed-scheme/succeed/match-dots2.ss b/collects/tests/typed-scheme/succeed/match-dots2.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/match-dots2.ss
rename to collects/tests/typed-scheme/succeed/match-dots2.rkt
diff --git a/collects/tests/typed-scheme/succeed/match-expander-problem.ss b/collects/tests/typed-scheme/succeed/match-expander-problem.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/match-expander-problem.ss
rename to collects/tests/typed-scheme/succeed/match-expander-problem.rkt
diff --git a/collects/tests/typed-scheme/succeed/match-tests.ss b/collects/tests/typed-scheme/succeed/match-tests.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/match-tests.ss
rename to collects/tests/typed-scheme/succeed/match-tests.rkt
diff --git a/collects/tests/typed-scheme/succeed/match.ss b/collects/tests/typed-scheme/succeed/match.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/match.ss
rename to collects/tests/typed-scheme/succeed/match.rkt
diff --git a/collects/tests/typed-scheme/succeed/member-pred.ss b/collects/tests/typed-scheme/succeed/member-pred.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/member-pred.ss
rename to collects/tests/typed-scheme/succeed/member-pred.rkt
diff --git a/collects/tests/typed-scheme/succeed/metrics.ss b/collects/tests/typed-scheme/succeed/metrics.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/metrics.ss
rename to collects/tests/typed-scheme/succeed/metrics.rkt
diff --git a/collects/tests/typed-scheme/succeed/module-lang.ss b/collects/tests/typed-scheme/succeed/module-lang.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/module-lang.ss
rename to collects/tests/typed-scheme/succeed/module-lang.rkt
diff --git a/collects/tests/typed-scheme/succeed/mu-rec.ss b/collects/tests/typed-scheme/succeed/mu-rec.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/mu-rec.ss
rename to collects/tests/typed-scheme/succeed/mu-rec.rkt
diff --git a/collects/tests/typed-scheme/succeed/nested-poly.ss b/collects/tests/typed-scheme/succeed/nested-poly.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/nested-poly.ss
rename to collects/tests/typed-scheme/succeed/nested-poly.rkt
diff --git a/collects/tests/typed-scheme/succeed/new-metrics.ss b/collects/tests/typed-scheme/succeed/new-metrics.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/new-metrics.ss
rename to collects/tests/typed-scheme/succeed/new-metrics.rkt
diff --git a/collects/tests/typed-scheme/succeed/no-bound-fl.ss b/collects/tests/typed-scheme/succeed/no-bound-fl.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/no-bound-fl.ss
rename to collects/tests/typed-scheme/succeed/no-bound-fl.rkt
diff --git a/collects/tests/typed-scheme/succeed/null-program.ss b/collects/tests/typed-scheme/succeed/null-program.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/null-program.ss
rename to collects/tests/typed-scheme/succeed/null-program.rkt
diff --git a/collects/tests/typed-scheme/succeed/overloading.ss b/collects/tests/typed-scheme/succeed/overloading.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/overloading.ss
rename to collects/tests/typed-scheme/succeed/overloading.rkt
diff --git a/collects/tests/typed-scheme/succeed/pair-test.ss b/collects/tests/typed-scheme/succeed/pair-test.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/pair-test.ss
rename to collects/tests/typed-scheme/succeed/pair-test.rkt
diff --git a/collects/tests/typed-scheme/succeed/param.ss b/collects/tests/typed-scheme/succeed/param.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/param.ss
rename to collects/tests/typed-scheme/succeed/param.rkt
diff --git a/collects/tests/typed-scheme/succeed/parse-path.ss b/collects/tests/typed-scheme/succeed/parse-path.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/parse-path.ss
rename to collects/tests/typed-scheme/succeed/parse-path.rkt
diff --git a/collects/tests/typed-scheme/succeed/patch.ss b/collects/tests/typed-scheme/succeed/patch.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/patch.ss
rename to collects/tests/typed-scheme/succeed/patch.rkt
diff --git a/collects/tests/typed-scheme/succeed/poly-struct.ss b/collects/tests/typed-scheme/succeed/poly-struct.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/poly-struct.ss
rename to collects/tests/typed-scheme/succeed/poly-struct.rkt
diff --git a/collects/tests/typed-scheme/succeed/poly-subtype.ss b/collects/tests/typed-scheme/succeed/poly-subtype.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/poly-subtype.ss
rename to collects/tests/typed-scheme/succeed/poly-subtype.rkt
diff --git a/collects/tests/typed-scheme/succeed/poly-tests.ss b/collects/tests/typed-scheme/succeed/poly-tests.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/poly-tests.ss
rename to collects/tests/typed-scheme/succeed/poly-tests.rkt
diff --git a/collects/tests/typed-scheme/succeed/pr9043.ss b/collects/tests/typed-scheme/succeed/pr9043.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/pr9043.ss
rename to collects/tests/typed-scheme/succeed/pr9043.rkt
diff --git a/collects/tests/typed-scheme/succeed/pr9046.ss b/collects/tests/typed-scheme/succeed/pr9046.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/pr9046.ss
rename to collects/tests/typed-scheme/succeed/pr9046.rkt
diff --git a/collects/tests/typed-scheme/succeed/pr9048.ss b/collects/tests/typed-scheme/succeed/pr9048.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/pr9048.ss
rename to collects/tests/typed-scheme/succeed/pr9048.rkt
diff --git a/collects/tests/typed-scheme/succeed/pr9053-2.ss b/collects/tests/typed-scheme/succeed/pr9053-2.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/pr9053-2.ss
rename to collects/tests/typed-scheme/succeed/pr9053-2.rkt
diff --git a/collects/tests/typed-scheme/succeed/pr9053.ss b/collects/tests/typed-scheme/succeed/pr9053.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/pr9053.ss
rename to collects/tests/typed-scheme/succeed/pr9053.rkt
diff --git a/collects/tests/typed-scheme/succeed/pr9054.ss b/collects/tests/typed-scheme/succeed/pr9054.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/pr9054.ss
rename to collects/tests/typed-scheme/succeed/pr9054.rkt
diff --git a/collects/tests/typed-scheme/succeed/provide-poly-struct.ss b/collects/tests/typed-scheme/succeed/provide-poly-struct.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/provide-poly-struct.ss
rename to collects/tests/typed-scheme/succeed/provide-poly-struct.rkt
diff --git a/collects/tests/typed-scheme/succeed/provide-sexp.ss b/collects/tests/typed-scheme/succeed/provide-sexp.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/provide-sexp.ss
rename to collects/tests/typed-scheme/succeed/provide-sexp.rkt
diff --git a/collects/tests/typed-scheme/succeed/provide-struct-untyped.ss b/collects/tests/typed-scheme/succeed/provide-struct-untyped.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/provide-struct-untyped.ss
rename to collects/tests/typed-scheme/succeed/provide-struct-untyped.rkt
diff --git a/collects/tests/typed-scheme/succeed/provide-struct.ss b/collects/tests/typed-scheme/succeed/provide-struct.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/provide-struct.ss
rename to collects/tests/typed-scheme/succeed/provide-struct.rkt
diff --git a/collects/tests/typed-scheme/succeed/provide-syntax.ss b/collects/tests/typed-scheme/succeed/provide-syntax.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/provide-syntax.ss
rename to collects/tests/typed-scheme/succeed/provide-syntax.rkt
diff --git a/collects/tests/typed-scheme/succeed/random-bits.ss b/collects/tests/typed-scheme/succeed/random-bits.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/random-bits.ss
rename to collects/tests/typed-scheme/succeed/random-bits.rkt
diff --git a/collects/tests/typed-scheme/succeed/rec-types.ss b/collects/tests/typed-scheme/succeed/rec-types.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/rec-types.ss
rename to collects/tests/typed-scheme/succeed/rec-types.rkt
diff --git a/collects/tests/typed-scheme/succeed/refinement-even.ss b/collects/tests/typed-scheme/succeed/refinement-even.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/refinement-even.ss
rename to collects/tests/typed-scheme/succeed/refinement-even.rkt
diff --git a/collects/tests/typed-scheme/succeed/require-poly.ss b/collects/tests/typed-scheme/succeed/require-poly.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/require-poly.ss
rename to collects/tests/typed-scheme/succeed/require-poly.rkt
diff --git a/collects/tests/typed-scheme/succeed/require-procedure.ss b/collects/tests/typed-scheme/succeed/require-procedure.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/require-procedure.ss
rename to collects/tests/typed-scheme/succeed/require-procedure.rkt
diff --git a/collects/tests/typed-scheme/succeed/require-substruct.ss b/collects/tests/typed-scheme/succeed/require-substruct.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/require-substruct.ss
rename to collects/tests/typed-scheme/succeed/require-substruct.rkt
diff --git a/collects/tests/typed-scheme/succeed/require-tests.ss b/collects/tests/typed-scheme/succeed/require-tests.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/require-tests.ss
rename to collects/tests/typed-scheme/succeed/require-tests.rkt
diff --git a/collects/tests/typed-scheme/succeed/require-typed-rename.ss b/collects/tests/typed-scheme/succeed/require-typed-rename.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/require-typed-rename.ss
rename to collects/tests/typed-scheme/succeed/require-typed-rename.rkt
diff --git a/collects/tests/typed-scheme/succeed/richard-bugs.ss b/collects/tests/typed-scheme/succeed/richard-bugs.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/richard-bugs.ss
rename to collects/tests/typed-scheme/succeed/richard-bugs.rkt
diff --git a/collects/tests/typed-scheme/succeed/rts-prov.ss b/collects/tests/typed-scheme/succeed/rts-prov.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/rts-prov.ss
rename to collects/tests/typed-scheme/succeed/rts-prov.rkt
diff --git a/collects/tests/typed-scheme/succeed/scratch.ss b/collects/tests/typed-scheme/succeed/scratch.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/scratch.ss
rename to collects/tests/typed-scheme/succeed/scratch.rkt
diff --git a/collects/tests/typed-scheme/succeed/seasoned-schemer.ss b/collects/tests/typed-scheme/succeed/seasoned-schemer.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/seasoned-schemer.ss
rename to collects/tests/typed-scheme/succeed/seasoned-schemer.rkt
diff --git a/collects/tests/typed-scheme/succeed/sequences.ss b/collects/tests/typed-scheme/succeed/sequences.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/sequences.ss
rename to collects/tests/typed-scheme/succeed/sequences.rkt
diff --git a/collects/tests/typed-scheme/succeed/simple-occurr.ss b/collects/tests/typed-scheme/succeed/simple-occurr.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/simple-occurr.ss
rename to collects/tests/typed-scheme/succeed/simple-occurr.rkt
diff --git a/collects/tests/typed-scheme/succeed/simple-poly.ss b/collects/tests/typed-scheme/succeed/simple-poly.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/simple-poly.ss
rename to collects/tests/typed-scheme/succeed/simple-poly.rkt
diff --git a/collects/tests/typed-scheme/succeed/star-sizes.ss b/collects/tests/typed-scheme/succeed/star-sizes.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/star-sizes.ss
rename to collects/tests/typed-scheme/succeed/star-sizes.rkt
diff --git a/collects/tests/typed-scheme/succeed/string-const.ss b/collects/tests/typed-scheme/succeed/string-const.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/string-const.ss
rename to collects/tests/typed-scheme/succeed/string-const.rkt
diff --git a/collects/tests/typed-scheme/succeed/struct-cert.ss b/collects/tests/typed-scheme/succeed/struct-cert.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/struct-cert.ss
rename to collects/tests/typed-scheme/succeed/struct-cert.rkt
diff --git a/collects/tests/typed-scheme/succeed/struct-exec.ss b/collects/tests/typed-scheme/succeed/struct-exec.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/struct-exec.ss
rename to collects/tests/typed-scheme/succeed/struct-exec.rkt
diff --git a/collects/tests/typed-scheme/succeed/struct-out.ss b/collects/tests/typed-scheme/succeed/struct-out.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/struct-out.ss
rename to collects/tests/typed-scheme/succeed/struct-out.rkt
diff --git a/collects/tests/typed-scheme/succeed/struct-path-update.ss b/collects/tests/typed-scheme/succeed/struct-path-update.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/struct-path-update.ss
rename to collects/tests/typed-scheme/succeed/struct-path-update.rkt
diff --git a/collects/tests/typed-scheme/succeed/test.ss b/collects/tests/typed-scheme/succeed/test.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/test.ss
rename to collects/tests/typed-scheme/succeed/test.rkt
diff --git a/collects/tests/typed-scheme/succeed/test2.ss b/collects/tests/typed-scheme/succeed/test2.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/test2.ss
rename to collects/tests/typed-scheme/succeed/test2.rkt
diff --git a/collects/tests/typed-scheme/succeed/time.ss b/collects/tests/typed-scheme/succeed/time.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/time.ss
rename to collects/tests/typed-scheme/succeed/time.rkt
diff --git a/collects/tests/typed-scheme/succeed/typeann-letrec.ss b/collects/tests/typed-scheme/succeed/typeann-letrec.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/typeann-letrec.ss
rename to collects/tests/typed-scheme/succeed/typeann-letrec.rkt
diff --git a/collects/tests/typed-scheme/succeed/typed-list.ss b/collects/tests/typed-scheme/succeed/typed-list.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/typed-list.ss
rename to collects/tests/typed-scheme/succeed/typed-list.rkt
diff --git a/collects/tests/typed-scheme/succeed/unholy-terror.ss b/collects/tests/typed-scheme/succeed/unholy-terror.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/unholy-terror.ss
rename to collects/tests/typed-scheme/succeed/unholy-terror.rkt
diff --git a/collects/tests/typed-scheme/succeed/values-dots.ss b/collects/tests/typed-scheme/succeed/values-dots.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/values-dots.ss
rename to collects/tests/typed-scheme/succeed/values-dots.rkt
diff --git a/collects/tests/typed-scheme/succeed/varargs-tests.ss b/collects/tests/typed-scheme/succeed/varargs-tests.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/varargs-tests.ss
rename to collects/tests/typed-scheme/succeed/varargs-tests.rkt
diff --git a/collects/tests/typed-scheme/succeed/vec-tests.ss b/collects/tests/typed-scheme/succeed/vec-tests.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/vec-tests.ss
rename to collects/tests/typed-scheme/succeed/vec-tests.rkt
diff --git a/collects/tests/typed-scheme/succeed/with-handlers.ss b/collects/tests/typed-scheme/succeed/with-handlers.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/with-handlers.ss
rename to collects/tests/typed-scheme/succeed/with-handlers.rkt
diff --git a/collects/tests/typed-scheme/succeed/with-type.ss b/collects/tests/typed-scheme/succeed/with-type.rkt
similarity index 100%
rename from collects/tests/typed-scheme/succeed/with-type.ss
rename to collects/tests/typed-scheme/succeed/with-type.rkt
diff --git a/collects/tests/typed-scheme/unit-tests/all-tests.ss b/collects/tests/typed-scheme/unit-tests/all-tests.rkt
similarity index 95%
rename from collects/tests/typed-scheme/unit-tests/all-tests.ss
rename to collects/tests/typed-scheme/unit-tests/all-tests.rkt
index 697a04734b..7d6b9f542f 100644
--- a/collects/tests/typed-scheme/unit-tests/all-tests.ss
+++ b/collects/tests/typed-scheme/unit-tests/all-tests.rkt
@@ -12,7 +12,7 @@
"subst-tests.ss" ;; pass
"infer-tests.ss" ;; pass
"contract-tests.ss"
- (r:infer infer infer-dummy) schemeunit)
+ (r:infer infer infer-dummy) rktunit)
(provide unit-tests)
diff --git a/collects/tests/typed-scheme/unit-tests/contract-tests.ss b/collects/tests/typed-scheme/unit-tests/contract-tests.rkt
similarity index 96%
rename from collects/tests/typed-scheme/unit-tests/contract-tests.ss
rename to collects/tests/typed-scheme/unit-tests/contract-tests.rkt
index 39884f0685..2da932c628 100644
--- a/collects/tests/typed-scheme/unit-tests/contract-tests.ss
+++ b/collects/tests/typed-scheme/unit-tests/contract-tests.rkt
@@ -7,7 +7,7 @@
(rep type-rep filter-rep object-rep)
(types utils union convenience)
(utils tc-utils)
- schemeunit)
+ rktunit)
(define-syntax-rule (t e)
(test-not-exn (format "~a" e) (lambda () (type->contract e (lambda _ (error "type could not be converted to contract"))))))
diff --git a/collects/tests/typed-scheme/unit-tests/infer-tests.ss b/collects/tests/typed-scheme/unit-tests/infer-tests.rkt
similarity index 99%
rename from collects/tests/typed-scheme/unit-tests/infer-tests.ss
rename to collects/tests/typed-scheme/unit-tests/infer-tests.rkt
index 7edf9b4c37..4418c8f51e 100644
--- a/collects/tests/typed-scheme/unit-tests/infer-tests.ss
+++ b/collects/tests/typed-scheme/unit-tests/infer-tests.rkt
@@ -3,7 +3,7 @@
(require (rep type-rep)
(r:infer infer)
(types convenience union utils abbrev)
- schemeunit)
+ rktunit)
diff --git a/collects/tests/typed-scheme/unit-tests/module-tests.ss b/collects/tests/typed-scheme/unit-tests/module-tests.rkt
similarity index 90%
rename from collects/tests/typed-scheme/unit-tests/module-tests.ss
rename to collects/tests/typed-scheme/unit-tests/module-tests.rkt
index 1c310c487e..188bf916bd 100644
--- a/collects/tests/typed-scheme/unit-tests/module-tests.ss
+++ b/collects/tests/typed-scheme/unit-tests/module-tests.rkt
@@ -1,5 +1,5 @@
#lang scheme
-(require "test-utils.ss" schemeunit)
+(require "test-utils.ss" rktunit)
(provide module-tests)
diff --git a/collects/tests/typed-scheme/unit-tests/parse-type-tests.ss b/collects/tests/typed-scheme/unit-tests/parse-type-tests.rkt
similarity index 99%
rename from collects/tests/typed-scheme/unit-tests/parse-type-tests.ss
rename to collects/tests/typed-scheme/unit-tests/parse-type-tests.rkt
index f7f028fb4e..8f04fa8258 100644
--- a/collects/tests/typed-scheme/unit-tests/parse-type-tests.ss
+++ b/collects/tests/typed-scheme/unit-tests/parse-type-tests.rkt
@@ -8,7 +8,7 @@
(private base-types-new base-types-extra colon)
(for-template (private base-types-new base-types-extra base-env colon))
(private parse-type)
- schemeunit)
+ rktunit)
(provide parse-type-tests)
diff --git a/collects/tests/typed-scheme/unit-tests/planet-requires.ss b/collects/tests/typed-scheme/unit-tests/planet-requires.rkt
similarity index 90%
rename from collects/tests/typed-scheme/unit-tests/planet-requires.ss
rename to collects/tests/typed-scheme/unit-tests/planet-requires.rkt
index e3bbf69f8e..1a7db776e2 100644
--- a/collects/tests/typed-scheme/unit-tests/planet-requires.ss
+++ b/collects/tests/typed-scheme/unit-tests/planet-requires.rkt
@@ -30,12 +30,12 @@
(splice-requires (map mk (syntax->list #'(files ...)))))]))))
-(provide schemeunit)
+(provide rktunit)
;; why is this neccessary?
(provide planet/multiple)
-(define-module schemeunit
- (planet/multiple ("schematics" "schemeunit.plt" 2 11)
+(define-module rktunit
+ (planet/multiple ("schematics" "rktunit.plt" 2 11)
"test.ss"
;"graphical-ui.ss"
"text-ui.ss"
@@ -44,4 +44,4 @@
#;
(planet/multiple ("cce" "fasttest.plt" 1 2)
"random.ss"
- "schemeunit.ss"))
+ "rktunit.ss"))
diff --git a/collects/tests/typed-scheme/unit-tests/remove-intersect-tests.ss b/collects/tests/typed-scheme/unit-tests/remove-intersect-tests.rkt
similarity index 99%
rename from collects/tests/typed-scheme/unit-tests/remove-intersect-tests.ss
rename to collects/tests/typed-scheme/unit-tests/remove-intersect-tests.rkt
index 39fc818dc8..46d0910d1c 100644
--- a/collects/tests/typed-scheme/unit-tests/remove-intersect-tests.ss
+++ b/collects/tests/typed-scheme/unit-tests/remove-intersect-tests.rkt
@@ -3,7 +3,7 @@
(rep type-rep)
(r:infer infer infer-dummy)
(types convenience subtype union remove-intersect)
- schemeunit)
+ rktunit)
(define-syntax (over-tests stx)
(syntax-case stx ()
diff --git a/collects/tests/typed-scheme/unit-tests/subst-tests.ss b/collects/tests/typed-scheme/unit-tests/subst-tests.rkt
similarity index 98%
rename from collects/tests/typed-scheme/unit-tests/subst-tests.ss
rename to collects/tests/typed-scheme/unit-tests/subst-tests.rkt
index 337518b101..546c4eef08 100644
--- a/collects/tests/typed-scheme/unit-tests/subst-tests.ss
+++ b/collects/tests/typed-scheme/unit-tests/subst-tests.rkt
@@ -3,7 +3,7 @@
(require "test-utils.ss" (for-syntax scheme/base)
(rep type-rep)
(types utils abbrev)
- schemeunit)
+ rktunit)
(define-syntax-rule (s img var tgt result)
(test-eq? "test" (substitute img 'var tgt) result))
diff --git a/collects/tests/typed-scheme/unit-tests/subtype-tests.ss b/collects/tests/typed-scheme/unit-tests/subtype-tests.rkt
similarity index 99%
rename from collects/tests/typed-scheme/unit-tests/subtype-tests.ss
rename to collects/tests/typed-scheme/unit-tests/subtype-tests.rkt
index c6f68f753f..9f5fe6c943 100644
--- a/collects/tests/typed-scheme/unit-tests/subtype-tests.ss
+++ b/collects/tests/typed-scheme/unit-tests/subtype-tests.rkt
@@ -5,7 +5,7 @@
(rep type-rep)
(env init-envs type-environments)
(r:infer infer infer-dummy)
- schemeunit
+ rktunit
(for-syntax scheme/base))
(provide subtype-tests)
diff --git a/collects/tests/typed-scheme/unit-tests/test-utils.ss b/collects/tests/typed-scheme/unit-tests/test-utils.rkt
similarity index 92%
rename from collects/tests/typed-scheme/unit-tests/test-utils.ss
rename to collects/tests/typed-scheme/unit-tests/test-utils.rkt
index b366273026..bcce8ab843 100644
--- a/collects/tests/typed-scheme/unit-tests/test-utils.ss
+++ b/collects/tests/typed-scheme/unit-tests/test-utils.rkt
@@ -7,7 +7,7 @@
typed-scheme/utils/utils
(for-syntax scheme/base)
(types comparison utils)
- schemeunit schemeunit/text-ui)
+ rktunit rktunit/text-ui)
(provide private typecheck (rename-out [infer r:infer]) utils env rep types)
@@ -20,7 +20,7 @@
(run-tests (mk-suite ts)))
(define (test/gui suite)
- (((dynamic-require 'schemeunit/private/gui/gui 'make-gui-runner))
+ (((dynamic-require 'rktunit/private/gui/gui 'make-gui-runner))
suite))
(define (run/gui . ts)
diff --git a/collects/tests/typed-scheme/unit-tests/type-annotation-test.ss b/collects/tests/typed-scheme/unit-tests/type-annotation-test.rkt
similarity index 98%
rename from collects/tests/typed-scheme/unit-tests/type-annotation-test.ss
rename to collects/tests/typed-scheme/unit-tests/type-annotation-test.rkt
index 30909685c2..8479820a8f 100644
--- a/collects/tests/typed-scheme/unit-tests/type-annotation-test.ss
+++ b/collects/tests/typed-scheme/unit-tests/type-annotation-test.rkt
@@ -6,7 +6,7 @@
(env type-environments type-name-env init-envs)
(utils tc-utils)
(rep type-rep)
- schemeunit)
+ rktunit)
(provide type-annotation-tests)
diff --git a/collects/tests/typed-scheme/unit-tests/type-equal-tests.ss b/collects/tests/typed-scheme/unit-tests/type-equal-tests.rkt
similarity index 98%
rename from collects/tests/typed-scheme/unit-tests/type-equal-tests.ss
rename to collects/tests/typed-scheme/unit-tests/type-equal-tests.rkt
index 430228007d..1fcd1f759d 100644
--- a/collects/tests/typed-scheme/unit-tests/type-equal-tests.ss
+++ b/collects/tests/typed-scheme/unit-tests/type-equal-tests.rkt
@@ -3,7 +3,7 @@
(require "test-utils.ss" (for-syntax scheme/base)
(rep type-rep)
(types comparison abbrev union)
- schemeunit)
+ rktunit)
(provide type-equal-tests)
diff --git a/collects/tests/typed-scheme/unit-tests/typecheck-tests.ss b/collects/tests/typed-scheme/unit-tests/typecheck-tests.rkt
similarity index 100%
rename from collects/tests/typed-scheme/unit-tests/typecheck-tests.ss
rename to collects/tests/typed-scheme/unit-tests/typecheck-tests.rkt
diff --git a/collects/tests/typed-scheme/xfail/applicative.ss b/collects/tests/typed-scheme/xfail/applicative.rkt
similarity index 100%
rename from collects/tests/typed-scheme/xfail/applicative.ss
rename to collects/tests/typed-scheme/xfail/applicative.rkt
diff --git a/collects/tests/typed-scheme/xfail/apply-map-bug.ss b/collects/tests/typed-scheme/xfail/apply-map-bug.rkt
similarity index 100%
rename from collects/tests/typed-scheme/xfail/apply-map-bug.ss
rename to collects/tests/typed-scheme/xfail/apply-map-bug.rkt
diff --git a/collects/tests/typed-scheme/xfail/rec-contract.ss b/collects/tests/typed-scheme/xfail/rec-contract.rkt
similarity index 100%
rename from collects/tests/typed-scheme/xfail/rec-contract.ss
rename to collects/tests/typed-scheme/xfail/rec-contract.rkt
diff --git a/collects/tests/units/multi-mod-sigs.ss b/collects/tests/units/multi-mod-sigs.rkt
similarity index 100%
rename from collects/tests/units/multi-mod-sigs.ss
rename to collects/tests/units/multi-mod-sigs.rkt
diff --git a/collects/tests/units/test-cert.ss b/collects/tests/units/test-cert.rkt
similarity index 100%
rename from collects/tests/units/test-cert.ss
rename to collects/tests/units/test-cert.rkt
diff --git a/collects/tests/units/test-exptime.ss b/collects/tests/units/test-exptime.rkt
similarity index 100%
rename from collects/tests/units/test-exptime.ss
rename to collects/tests/units/test-exptime.rkt
diff --git a/collects/tests/units/test-harness.ss b/collects/tests/units/test-harness.rkt
similarity index 100%
rename from collects/tests/units/test-harness.ss
rename to collects/tests/units/test-harness.rkt
diff --git a/collects/tests/units/test-runtime.ss b/collects/tests/units/test-runtime.rkt
similarity index 100%
rename from collects/tests/units/test-runtime.ss
rename to collects/tests/units/test-runtime.rkt
diff --git a/collects/tests/units/test-unit-contracts.ss b/collects/tests/units/test-unit-contracts.rkt
similarity index 100%
rename from collects/tests/units/test-unit-contracts.ss
rename to collects/tests/units/test-unit-contracts.rkt
diff --git a/collects/tests/units/test-unit.ss b/collects/tests/units/test-unit.rkt
similarity index 100%
rename from collects/tests/units/test-unit.ss
rename to collects/tests/units/test-unit.rkt
diff --git a/collects/tests/unstable/generics.ss b/collects/tests/unstable/generics.rkt
similarity index 98%
rename from collects/tests/unstable/generics.ss
rename to collects/tests/unstable/generics.rkt
index 848759568e..6a0566f570 100644
--- a/collects/tests/unstable/generics.ss
+++ b/collects/tests/unstable/generics.rkt
@@ -1,4 +1,4 @@
-#lang scheme
+#lang racket
(require unstable/generics
tests/eli-tester)
diff --git a/collects/tests/unstable/srcloc.ss b/collects/tests/unstable/srcloc.rkt
similarity index 99%
rename from collects/tests/unstable/srcloc.ss
rename to collects/tests/unstable/srcloc.rkt
index 299cbf07b8..ac7deae461 100644
--- a/collects/tests/unstable/srcloc.ss
+++ b/collects/tests/unstable/srcloc.rkt
@@ -1,9 +1,9 @@
-(load-relative "../mzscheme/loadtest.ss")
+(load-relative "../racket/loadtest.rkt")
(Section 'srcloc)
(require unstable/srcloc)
-(require scheme/shared)
+(require racket/shared)
(test #t source-location? #f)
(test #f source-location? #t)
diff --git a/collects/tests/utils/gui.ss b/collects/tests/utils/gui.rkt
similarity index 100%
rename from collects/tests/utils/gui.ss
rename to collects/tests/utils/gui.rkt
diff --git a/collects/tests/utils/mz-testing.ss b/collects/tests/utils/mz-testing.rkt
similarity index 100%
rename from collects/tests/utils/mz-testing.ss
rename to collects/tests/utils/mz-testing.rkt
diff --git a/collects/tests/utils/sexp-diff.ss b/collects/tests/utils/sexp-diff.rkt
similarity index 100%
rename from collects/tests/utils/sexp-diff.ss
rename to collects/tests/utils/sexp-diff.rkt
diff --git a/collects/tests/web-server/all-web-server-tests.rkt b/collects/tests/web-server/all-web-server-tests.rkt
new file mode 100644
index 0000000000..65b4b07ccd
--- /dev/null
+++ b/collects/tests/web-server/all-web-server-tests.rkt
@@ -0,0 +1,31 @@
+#lang racket/base
+(require rktunit
+ "configuration/all-configuration-tests.rkt"
+ "dispatchers/all-dispatchers-tests.rkt"
+ "lang/all-lang-tests.rkt"
+ "lang-test.rkt"
+ "managers/all-managers-tests.rkt"
+ "http/all-http-tests.rkt"
+ "private/all-private-tests.rkt"
+ "servlet/all-servlet-tests.rkt"
+ "stuffers-test.rkt"
+ "formlets-test.rkt"
+ "dispatch-test.rkt"
+ "servlet-env-test.rkt")
+(provide all-web-server-tests)
+
+(define all-web-server-tests
+ (test-suite
+ "Web Server"
+ all-http-tests
+ all-stuffers-tests
+ all-formlets-tests
+ all-dispatch-tests
+ all-configuration-tests
+ all-dispatchers-tests
+ all-lang-tests
+ lang-tests
+ all-managers-tests
+ all-private-tests
+ all-servlet-tests
+ servlet-env-tests))
diff --git a/collects/tests/web-server/all-web-server-tests.ss b/collects/tests/web-server/all-web-server-tests.ss
deleted file mode 100644
index 809b7e1b0c..0000000000
--- a/collects/tests/web-server/all-web-server-tests.ss
+++ /dev/null
@@ -1,31 +0,0 @@
-#lang scheme/base
-(require schemeunit
- "configuration/all-configuration-tests.ss"
- "dispatchers/all-dispatchers-tests.ss"
- "lang/all-lang-tests.ss"
- "lang-test.ss"
- "managers/all-managers-tests.ss"
- "http/all-http-tests.ss"
- "private/all-private-tests.ss"
- "servlet/all-servlet-tests.ss"
- "stuffers-test.ss"
- "formlets-test.ss"
- "dispatch-test.ss"
- "servlet-env-test.ss")
-(provide all-web-server-tests)
-
-(define all-web-server-tests
- (test-suite
- "Web Server"
- all-http-tests
- all-stuffers-tests
- all-formlets-tests
- all-dispatch-tests
- all-configuration-tests
- all-dispatchers-tests
- all-lang-tests
- lang-tests
- all-managers-tests
- all-private-tests
- all-servlet-tests
- servlet-env-tests))
diff --git a/collects/tests/web-server/configuration/all-configuration-tests.ss b/collects/tests/web-server/configuration/all-configuration-tests.rkt
similarity index 63%
rename from collects/tests/web-server/configuration/all-configuration-tests.ss
rename to collects/tests/web-server/configuration/all-configuration-tests.rkt
index eace36452a..41c99ecc30 100644
--- a/collects/tests/web-server/configuration/all-configuration-tests.ss
+++ b/collects/tests/web-server/configuration/all-configuration-tests.rkt
@@ -1,6 +1,6 @@
-#lang scheme/base
-(require schemeunit
- "configuration-table-test.ss")
+#lang racket/base
+(require rktunit
+ "configuration-table-test.rkt")
(provide all-configuration-tests)
(define all-configuration-tests
diff --git a/collects/tests/web-server/configuration/configuration-table-test.ss b/collects/tests/web-server/configuration/configuration-table-test.rkt
similarity index 98%
rename from collects/tests/web-server/configuration/configuration-table-test.ss
rename to collects/tests/web-server/configuration/configuration-table-test.rkt
index 46e8b4b741..d67e440b4d 100644
--- a/collects/tests/web-server/configuration/configuration-table-test.ss
+++ b/collects/tests/web-server/configuration/configuration-table-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme/base
-(require schemeunit
+#lang racket/base
+(require rktunit
(only-in mzlib/file
make-temporary-file)
web-server/configuration/configuration-table)
diff --git a/collects/tests/web-server/dispatch-test.ss b/collects/tests/web-server/dispatch-test.rkt
similarity index 99%
rename from collects/tests/web-server/dispatch-test.ss
rename to collects/tests/web-server/dispatch-test.rkt
index 720f5ecb26..d91d90af25 100644
--- a/collects/tests/web-server/dispatch-test.ss
+++ b/collects/tests/web-server/dispatch-test.rkt
@@ -1,9 +1,9 @@
-#lang scheme
-(require schemeunit
+#lang racket
+(require rktunit
web-server/http
web-server/dispatchers/dispatch
net/url
- scheme/stxparam
+ racket/stxparam
web-server/dispatch/coercion
web-server/dispatch/bidi-match
web-server/dispatch/http-expanders
@@ -458,5 +458,5 @@
#;(test-serve/dispatch)
-(require schemeunit/text-ui)
+(require rktunit/text-ui)
(run-tests all-dispatch-tests)
diff --git a/collects/tests/web-server/dispatchers/all-dispatchers-tests.rkt b/collects/tests/web-server/dispatchers/all-dispatchers-tests.rkt
new file mode 100644
index 0000000000..00083f7917
--- /dev/null
+++ b/collects/tests/web-server/dispatchers/all-dispatchers-tests.rkt
@@ -0,0 +1,19 @@
+#lang racket/base
+(require rktunit
+ "dispatch-passwords-test.rkt"
+ "dispatch-files-test.rkt"
+ "dispatch-servlets-test.rkt"
+ "dispatch-lang-test.rkt"
+ "dispatch-host-test.rkt"
+ "filesystem-map-test.rkt")
+(provide all-dispatchers-tests)
+
+(define all-dispatchers-tests
+ (test-suite
+ "Dispatchers"
+ dispatch-passwords-tests
+ dispatch-host-tests
+ dispatch-files-tests
+ dispatch-servlets-tests
+ dispatch-lang-tests
+ filesystem-map-tests))
diff --git a/collects/tests/web-server/dispatchers/all-dispatchers-tests.ss b/collects/tests/web-server/dispatchers/all-dispatchers-tests.ss
deleted file mode 100644
index c9ab8ab6c0..0000000000
--- a/collects/tests/web-server/dispatchers/all-dispatchers-tests.ss
+++ /dev/null
@@ -1,19 +0,0 @@
-#lang scheme/base
-(require schemeunit
- "dispatch-passwords-test.ss"
- "dispatch-files-test.ss"
- "dispatch-servlets-test.ss"
- "dispatch-lang-test.ss"
- "dispatch-host-test.ss"
- "filesystem-map-test.ss")
-(provide all-dispatchers-tests)
-
-(define all-dispatchers-tests
- (test-suite
- "Dispatchers"
- dispatch-passwords-tests
- dispatch-host-tests
- dispatch-files-tests
- dispatch-servlets-tests
- dispatch-lang-tests
- filesystem-map-tests))
diff --git a/collects/tests/web-server/dispatchers/dispatch-files-test.ss b/collects/tests/web-server/dispatchers/dispatch-files-test.rkt
similarity index 72%
rename from collects/tests/web-server/dispatchers/dispatch-files-test.ss
rename to collects/tests/web-server/dispatchers/dispatch-files-test.rkt
index d11010dae3..78b5ccf047 100644
--- a/collects/tests/web-server/dispatchers/dispatch-files-test.ss
+++ b/collects/tests/web-server/dispatchers/dispatch-files-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme
-(require schemeunit
+#lang racket
+(require rktunit
(only-in mzlib/file
file-name-from-path
make-temporary-file)
@@ -10,7 +10,7 @@
web-server/private/util
web-server/dispatchers/dispatch
(prefix-in files: web-server/dispatchers/dispatch-files)
- "../util.ss")
+ "../util.rkt")
(require/expose web-server/dispatchers/dispatch-files
(looks-like-directory?))
(provide dispatch-files-tests)
@@ -77,22 +77,22 @@
(test-equal? "file, exists, whole, no Range, get"
(collect (dispatch #t tmp-file) (req #f #"GET" empty))
- #"HTTP/1.1 200 OK\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html; charset=utf-8\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\n\r\nA titleHere's some content!")
+ #"HTTP/1.1 200 OK\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html; charset=utf-8\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\n\r\nA titleHere's some content!")
(test-equal? "file, exists, whole, no Range, head"
(collect (dispatch #t tmp-file) (req #f #"HEAD" empty))
- #"HTTP/1.1 200 OK\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html; charset=utf-8\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\n\r\n")
+ #"HTTP/1.1 200 OK\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html; charset=utf-8\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\n\r\n")
(test-equal? "file, exists, whole, Range, get"
(collect (dispatch #t tmp-file) (req #f #"GET" (list (make-header #"Range" #"bytes=0-80"))))
- #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html; charset=utf-8\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\nContent-Range: bytes 0-80/81\r\n\r\nA titleHere's some content!")
+ #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html; charset=utf-8\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\nContent-Range: bytes 0-80/81\r\n\r\nA titleHere's some content!")
(test-equal? "file, exists, whole, Range, head"
(collect (dispatch #t tmp-file) (req #f #"HEAD" (list (make-header #"Range" #"bytes=0-80"))))
- #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html; charset=utf-8\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\nContent-Range: bytes 0-80/81\r\n\r\n")
+ #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html; charset=utf-8\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\nContent-Range: bytes 0-80/81\r\n\r\n")
(test-equal? "file, exists, part, get"
(collect (dispatch #t tmp-file) (req #f #"GET" (list (make-header #"Range" #"bytes=5-9"))))
- #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html; charset=utf-8\r\nAccept-Ranges: bytes\r\nContent-Length: 5\r\nContent-Range: bytes 5-9/81\r\n\r\n>A titleHere's some content!")
+ #"HTTP/1.1 200 OK\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html; charset=utf-8\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\n\r\nA titleHere's some content!")
(test-equal? "dir, exists, no Range, head"
(collect (dispatch #t a-dir) (req #t #"HEAD" empty))
- #"HTTP/1.1 200 OK\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html; charset=utf-8\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\n\r\n")
+ #"HTTP/1.1 200 OK\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html; charset=utf-8\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\n\r\n")
(test-equal? "dir, exists, Range, get"
(collect (dispatch #t a-dir) (req #t #"GET" (list (make-header #"Range" #"bytes=0-80"))))
- #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html; charset=utf-8\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\nContent-Range: bytes 0-80/81\r\n\r\nA titleHere's some content!")
+ #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html; charset=utf-8\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\nContent-Range: bytes 0-80/81\r\n\r\nA titleHere's some content!")
(test-equal? "dir, exists, Range, head"
(collect (dispatch #t a-dir) (req #t #"HEAD" (list (make-header #"Range" #"bytes=0-80"))))
- #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html; charset=utf-8\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\nContent-Range: bytes 0-80/81\r\n\r\n")
+ #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html; charset=utf-8\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\nContent-Range: bytes 0-80/81\r\n\r\n")
(test-equal? "dir, not dir-url, get"
(collect (dispatch #t a-dir) (req #f #"GET" empty))
- #"HTTP/1.1 302 Moved Temporarily\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 0\r\nLocation: /foo/\r\n\r\n")
+ #"HTTP/1.1 302 Moved Temporarily\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 0\r\nLocation: /foo/\r\n\r\n")
(test-exn "dir, not exists, get"
exn:dispatcher?
(lambda () (collect (dispatch #f a-dir) (req #t #"GET" empty))))
@@ -120,5 +120,5 @@
exn:dispatcher?
(lambda () (collect (dispatch #f a-dir) (req #t #"HEAD" empty))))))
-#;(require (planet schematics/schemeunit:3/text-ui))
+#;(require (planet schematics/rktunit:3/text-ui))
#;(run-tests dispatch-files-tests)
diff --git a/collects/tests/web-server/dispatchers/dispatch-host-test.ss b/collects/tests/web-server/dispatchers/dispatch-host-test.rkt
similarity index 69%
rename from collects/tests/web-server/dispatchers/dispatch-host-test.ss
rename to collects/tests/web-server/dispatchers/dispatch-host-test.rkt
index aa35529908..3143d201e0 100644
--- a/collects/tests/web-server/dispatchers/dispatch-host-test.ss
+++ b/collects/tests/web-server/dispatchers/dispatch-host-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme/base
-(require schemeunit
+#lang racket/base
+(require rktunit
(only-in mzlib/file
make-temporary-file)
net/url
@@ -12,8 +12,8 @@
(require/expose web-server/dispatchers/dispatch-host
(get-host))
-(define lower-url (make-url #f #f "www.plt-scheme.org" #f #t empty empty #f))
-(define upper-url (make-url #f #f "www.PLT-scheme.org" #f #t empty empty #f))
+(define lower-url (make-url #f #f "www.racket-lang.org" #f #t empty empty #f))
+(define upper-url (make-url #f #f "www.RACKET-lang.org" #f #t empty empty #f))
(define no-host-url (make-url #f #f #f #f #t empty empty #f))
(define dispatch-host-tests
@@ -21,33 +21,33 @@
"Host"
(test-equal? "get-host - uri - lower"
- 'www.plt-scheme.org
+ 'www.racket-lang.org
(get-host lower-url empty))
(test-equal? "get-host - uri - upper"
- 'www.plt-scheme.org
+ 'www.racket-lang.org
(get-host upper-url empty))
(test-equal? "get-host - headers - lower key - lower val"
- 'www.plt-scheme.org
- (get-host no-host-url (list (make-header #"host" #"www.plt-scheme.org"))))
+ 'www.racket-lang.org
+ (get-host no-host-url (list (make-header #"host" #"www.racket-lang.org"))))
(test-equal? "get-host - headers - lower key - upper val"
- 'www.plt-scheme.org
- (get-host no-host-url (list (make-header #"host" #"www.PLT-scheme.org"))))
+ 'www.racket-lang.org
+ (get-host no-host-url (list (make-header #"host" #"www.RACKET-lang.org"))))
(test-equal? "get-host - headers - upper key - lower val"
- 'www.plt-scheme.org
- (get-host no-host-url (list (make-header #"Host" #"www.plt-scheme.org"))))
+ 'www.racket-lang.org
+ (get-host no-host-url (list (make-header #"Host" #"www.racket-lang.org"))))
(test-equal? "get-host - headers - upper key - upper val"
- 'www.plt-scheme.org
- (get-host no-host-url (list (make-header #"Host" #"www.PLT-scheme.org"))))
+ 'www.racket-lang.org
+ (get-host no-host-url (list (make-header #"Host" #"www.RACKET-lang.org"))))
(test-equal? "get-host - headers - caps key - lower val"
- 'www.plt-scheme.org
- (get-host no-host-url (list (make-header #"HOST" #"www.plt-scheme.org"))))
+ 'www.racket-lang.org
+ (get-host no-host-url (list (make-header #"HOST" #"www.racket-lang.org"))))
(test-equal? "get-host - headers - caps key - upper val"
- 'www.plt-scheme.org
- (get-host no-host-url (list (make-header #"HOST" #"www.PLT-scheme.org"))))
+ 'www.racket-lang.org
+ (get-host no-host-url (list (make-header #"HOST" #"www.RACKET-lang.org"))))
(test-equal? "get-host - none"
'none
diff --git a/collects/tests/web-server/dispatchers/dispatch-lang-test.ss b/collects/tests/web-server/dispatchers/dispatch-lang-test.rkt
similarity index 75%
rename from collects/tests/web-server/dispatchers/dispatch-lang-test.ss
rename to collects/tests/web-server/dispatchers/dispatch-lang-test.rkt
index 4e63c38897..7036604798 100644
--- a/collects/tests/web-server/dispatchers/dispatch-lang-test.ss
+++ b/collects/tests/web-server/dispatchers/dispatch-lang-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme/base
-(require schemeunit
+#lang racket/base
+(require rktunit
mzlib/etc
mzlib/list
web-server/dispatchers/dispatch
@@ -7,8 +7,8 @@
web-server/configuration/namespace
web-server/servlet/setup
(prefix-in servlets: web-server/dispatchers/dispatch-servlets)
- "servlet-test-util.ss"
- "../util.ss")
+ "servlet-test-util.rkt"
+ "../util.rkt")
(provide dispatch-lang-tests)
#;(define (mkd p)
@@ -46,12 +46,12 @@
"Web Language"
(test-exn
- "add-param.ss - Parameters, s/s/u (should fail)"
+ "add-param.rkt - Parameters, s/s/u (should fail)"
exn:fail:contract?
(lambda ()
(let* ([xs #"10"]
[ys #"17"]
- [d (mkd (build-path example-servlets "add-param.ss"))]
+ [d (mkd (build-path example-servlets "add-param.rkt"))]
[k0 (simple-xpath* '(form #:action) (call d url0 empty))]
[k1 (simple-xpath* '(form #:action) (call d (format "~a?number=~a" k0 xs)
(list (make-binding:form #"number" xs))))]
@@ -61,21 +61,21 @@
(test-add-two-numbers
mkd
- "add-simple.ss - Web Parameters, s/s/u"
- (build-path example-servlets "add-simple.ss"))
+ "add-simple.rkt - Web Parameters, s/s/u"
+ (build-path example-servlets "add-simple.rkt"))
(test-add-two-numbers
mkd
- "add.ss - s/s/u"
- (build-path example-servlets "add.ss"))
+ "add.rkt - s/s/u"
+ (build-path example-servlets "add.rkt"))
(let* ([x (random 500)]
[xs (string->bytes/utf-8 (number->string x))]
[y (random 500)]
[ys (string->bytes/utf-8 (number->string y))])
(test-equal?
- "add01.ss - no s/s, uri"
- (let* ([d (mkd (build-path example-servlets "add01.ss"))]
+ "add01.rkt - no s/s, uri"
+ (let* ([d (mkd (build-path example-servlets "add01.rkt"))]
[k0 (simple-xpath* '(form #:action) (call d url0 empty))]
[k1 (simple-xpath* '(form #:action) (call d (format "~a?first=~a" url0 xs) (list (make-binding:form #"first" xs))))]
[n (simple-xpath* '(p) (call d (format "~a?first=~a&second=~a" url0 xs ys)
@@ -86,60 +86,60 @@
(test-add-two-numbers
mkd
- "add02.ss - s/s/u, uri"
- (build-path example-servlets "add02.ss"))
+ "add02.rkt - s/s/u, uri"
+ (build-path example-servlets "add02.rkt"))
; XXX Use kont
#;(test-add-two-numbers
mkd
- "add03.ss - s/s/h"
- (build-path example-servlets "add03.ss"))
+ "add03.rkt - s/s/h"
+ (build-path example-servlets "add03.rkt"))
(test-add-two-numbers
mkd
- "add04.ss - s/s/u"
- (build-path example-servlets "add04.ss"))
+ "add04.rkt - s/s/u"
+ (build-path example-servlets "add04.rkt"))
(test-add-two-numbers
mkd
- "add06.ss - send/suspend/dispatch"
- (build-path example-servlets "add06.ss"))
+ "add06.rkt - send/suspend/dispatch"
+ (build-path example-servlets "add06.rkt"))
(test-add-two-numbers
mkd
- "add-native.ss - native continuation parts"
- (build-path example-servlets "add-native.ss"))
+ "add-native.rkt - native continuation parts"
+ (build-path example-servlets "add-native.rkt"))
(test-add-two-numbers
mkd
- "add-soft.ss - soft state"
- (build-path example-servlets "add-soft.ss"))
+ "add-soft.rkt - soft state"
+ (build-path example-servlets "add-soft.rkt"))
; XXX test something is not d-c
(test-double-counters
mkd
- "wc-fake.ss - no cells"
- (build-path example-servlets "wc-fake.ss"))
+ "wc-fake.rkt - no cells"
+ (build-path example-servlets "wc-fake.rkt"))
(test-double-counters
mkd
- "wc.ss - make-web-cell web-cell-ref web-cell-shadow"
- (build-path example-servlets "wc.ss"))
+ "wc.rkt - make-web-cell web-cell-ref web-cell-shadow"
+ (build-path example-servlets "wc.rkt"))
(test-double-counters
mkd
- "wc-comp.ss - make-web-cell web-cell-ref web-cell-shadow web-cell-component"
- (build-path example-servlets "wc-comp.ss"))
+ "wc-comp.rkt - make-web-cell web-cell-ref web-cell-shadow web-cell-component"
+ (build-path example-servlets "wc-comp.rkt"))
- (test-equal? "check-dir.ss"
- (let* ([d (mkd (build-path example-servlets "check-dir.ss"))]
+ (test-equal? "check-dir.rkt"
+ (let* ([d (mkd (build-path example-servlets "check-dir.rkt"))]
[t0 (simple-xpath* '(h2) (call d url0 empty))])
t0)
(format "The current directory: ~a" (path->string example-servlets)))
; XXX Use kont
- #;(test-equal? "quiz01.ss"
- (let* ([d (mkd (build-path example-servlets "quiz01.ss"))]
+ #;(test-equal? "quiz01.rkt"
+ (let* ([d (mkd (build-path example-servlets "quiz01.rkt"))]
[last
(foldl (lambda (_ k)
(first ((sxpath "//form/@action/text()")
@@ -149,8 +149,8 @@
(first ((sxpath "//h1/text()") (call d last (list (make-binding:form #"answer" #"0"))))))
"Quiz Results")
; XXX Use kont
- #;(test-equal? "quiz02.ss"
- (let* ([d (mkd (build-path example-servlets "quiz02.ss"))]
+ #;(test-equal? "quiz02.rkt"
+ (let* ([d (mkd (build-path example-servlets "quiz02.rkt"))]
[last
(foldl (lambda (_ k)
(first ((sxpath "//form/@action/text()")
@@ -160,10 +160,10 @@
(first ((sxpath "//h1/text()") (call d last (list (make-binding:form #"answer" #"0"))))))
"Quiz Results")
- ; XXX test web-extras.ss - redirect/get
+ ; XXX test web-extras.rkt - redirect/get
))
#|
-(require schemeunit/text-ui)
+(require rktunit/text-ui)
(run-tests dispatch-lang-tests)
|#
diff --git a/collects/tests/web-server/dispatchers/dispatch-passwords-test.ss b/collects/tests/web-server/dispatchers/dispatch-passwords-test.rkt
similarity index 95%
rename from collects/tests/web-server/dispatchers/dispatch-passwords-test.ss
rename to collects/tests/web-server/dispatchers/dispatch-passwords-test.rkt
index 4b3b579838..869c4bbb30 100644
--- a/collects/tests/web-server/dispatchers/dispatch-passwords-test.ss
+++ b/collects/tests/web-server/dispatchers/dispatch-passwords-test.rkt
@@ -1,15 +1,15 @@
-#lang scheme/base
-(require schemeunit
+#lang racket/base
+(require rktunit
(only-in mzlib/file
make-temporary-file)
net/url
- scheme/promise
- scheme/list
- scheme/serialize
+ racket/promise
+ racket/list
+ racket/serialize
web-server/http
web-server/dispatchers/dispatch
(prefix-in passwords: web-server/dispatchers/dispatch-passwords)
- "../util.ss")
+ "../util.rkt")
(provide dispatch-passwords-tests)
(require/expose web-server/dispatchers/dispatch-passwords
diff --git a/collects/tests/web-server/dispatchers/dispatch-servlets-test.ss b/collects/tests/web-server/dispatchers/dispatch-servlets-test.rkt
similarity index 75%
rename from collects/tests/web-server/dispatchers/dispatch-servlets-test.ss
rename to collects/tests/web-server/dispatchers/dispatch-servlets-test.rkt
index ab8121b174..f8bfb708c9 100644
--- a/collects/tests/web-server/dispatchers/dispatch-servlets-test.ss
+++ b/collects/tests/web-server/dispatchers/dispatch-servlets-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme/base
-(require schemeunit
+#lang racket/base
+(require rktunit
mzlib/etc
mzlib/list
web-server/http
@@ -8,8 +8,8 @@
web-server/configuration/namespace
web-server/servlet/setup
(prefix-in servlets: web-server/dispatchers/dispatch-servlets)
- "servlet-test-util.ss"
- "../util.ss")
+ "servlet-test-util.rkt"
+ "../util.rkt")
(provide dispatch-servlets-tests)
(current-server-custodian (current-custodian))
@@ -40,29 +40,29 @@
; XXX redirect/get
; XXX web-cells
- (test-pred "configure.ss"
+ (test-pred "configure.rkt"
string?
- (let* ([d (mkd (build-path example-servlets 'up "configure.ss"))]
+ (let* ([d (mkd (build-path example-servlets 'up "configure.rkt"))]
[k0 (simple-xpath* '(form #:action) (call d url0 empty))])
k0))
(test-suite
"Examples"
- (test-equal? "hello.ss - loading"
- (let* ([d (mkd (build-path example-servlets "hello.ss"))]
+ (test-equal? "hello.rkt - loading"
+ (let* ([d (mkd (build-path example-servlets "hello.rkt"))]
[t0 (simple-xpath* '(p) (call d url0 empty))])
t0)
"Hello, Web!")
- (test-add-two-numbers mkd "add.ss - send/suspend"
- (build-path example-servlets "add.ss"))
- (test-add-two-numbers mkd "add-v2.ss - send/suspend, version 2"
- (build-path example-servlets "add-v2.ss"))
- (test-add-two-numbers mkd "add-ssd.ss - send/suspend/dispatch"
- (build-path example-servlets "add-ssd.ss"))
- (test-add-two-numbers mkd "add-formlets.ss - send/formlet"
- (build-path example-servlets "add-formlets.ss"))
- (test-equal? "count.ss - state"
- (let* ([d (mkd (build-path example-servlets "count.ss"))]
+ (test-add-two-numbers mkd "add.rkt - send/suspend"
+ (build-path example-servlets "add.rkt"))
+ (test-add-two-numbers mkd "add-v2.rkt - send/suspend, version 2"
+ (build-path example-servlets "add-v2.rkt"))
+ (test-add-two-numbers mkd "add-ssd.rkt - send/suspend/dispatch"
+ (build-path example-servlets "add-ssd.rkt"))
+ (test-add-two-numbers mkd "add-formlets.rkt - send/formlet"
+ (build-path example-servlets "add-formlets.rkt"))
+ (test-equal? "count.rkt - state"
+ (let* ([d (mkd (build-path example-servlets "count.rkt"))]
[ext (lambda (c)
(rest (regexp-match #rx"This servlet was called (.+) times and (.+) times since loaded on" c)))]
[c1 (ext (simple-xpath* '(p) (call d url0 empty)))]
@@ -70,20 +70,20 @@
(list c1 c2))
(list (list "1" "1")
(list "2" "1")))
- (test-equal? "dir.ss - current-directory"
- (let* ([d (mkd (build-path example-servlets "dir.ss"))]
+ (test-equal? "dir.rkt - current-directory"
+ (let* ([d (mkd (build-path example-servlets "dir.rkt"))]
[t0 (simple-xpath* '(p em) (call d url0 empty))])
t0)
(path->string example-servlets))
- (test-pred "quiz.ss - send/suspend"
+ (test-pred "quiz.rkt - send/suspend"
string?
- (let* ([d (mkd (build-path example-servlets "quiz.ss"))])
+ (let* ([d (mkd (build-path example-servlets "quiz.rkt"))])
(foldl (lambda (_ k)
(simple-xpath* '(form #:action) (call d k (list (make-binding:form #"answer" #"0")))))
url0
(build-list 7 (lambda (i) i)))))
- (test-equal? "clear.ss - current-servlet-continuation-expiration-handler, clear-continuation-table!, send/finish, send/forward"
- (let* ([d (mkd (build-path example-servlets "clear.ss"))]
+ (test-equal? "clear.rkt - current-servlet-continuation-expiration-handler, clear-continuation-table!, send/finish, send/forward"
+ (let* ([d (mkd (build-path example-servlets "clear.rkt"))]
[k0 (simple-xpath* '(a #:href) (call d url0 empty))]
[k1 (simple-xpath* '(a #:href) (call d k0 empty))]
[k0-expired (simple-xpath* '(body) (call d k0 empty))]
@@ -98,18 +98,18 @@
(test-double-counters
mkd
- "wc-fake.ss - no cells"
- (build-path example-servlets "wc-fake.ss"))
+ "wc-fake.rkt - no cells"
+ (build-path example-servlets "wc-fake.rkt"))
(test-double-counters
mkd
- "wc.ss - make-web-cell web-cell-ref web-cell-shadow"
- (build-path example-servlets "wc.ss"))
+ "wc.rkt - make-web-cell web-cell-ref web-cell-shadow"
+ (build-path example-servlets "wc.rkt"))
; XXX Broken
- #;(test-equal? "adjust.ss - adjust-timeout!"
- (let* ([d (mkd (build-path example-servlets "adjust.ss"))]
+ #;(test-equal? "adjust.rkt - adjust-timeout!"
+ (let* ([d (mkd (build-path example-servlets "adjust.rkt"))]
[k0 (first ((sxpath "//a/@href/text()") (call d url0 empty)))])
(sleep 3)
(call d k0 empty))
- "#"))))
\ No newline at end of file
+ "#"))))
diff --git a/collects/tests/web-server/dispatchers/filesystem-map-test.ss b/collects/tests/web-server/dispatchers/filesystem-map-test.rkt
similarity index 79%
rename from collects/tests/web-server/dispatchers/filesystem-map-test.ss
rename to collects/tests/web-server/dispatchers/filesystem-map-test.rkt
index b42ce23f29..8e3944fe77 100644
--- a/collects/tests/web-server/dispatchers/filesystem-map-test.ss
+++ b/collects/tests/web-server/dispatchers/filesystem-map-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme/base
-(require schemeunit
+#lang racket/base
+(require rktunit
net/url
web-server/private/util
web-server/dispatchers/filesystem-map)
@@ -8,8 +8,8 @@
(define base-dir (collection-path "web-server"))
(define test-map (make-url->path base-dir))
(define test-valid-map (make-url->valid-path test-map))
-(define test-filter-map (filter-url->path #rx"\\.(ss|scm)$" test-map))
-(define test-filter-valid-map (filter-url->path #rx"\\.(ss|scm)$" test-valid-map))
+(define test-filter-map (filter-url->path #rx"\\.(ss|scm|rkt)$" test-map))
+(define test-filter-valid-map (filter-url->path #rx"\\.(ss|scm|rkt)$" test-valid-map))
(define (test-url->path
url->path file
@@ -31,39 +31,39 @@
(test-suite
"url->path"
(test-case "Simple case"
- (test-url->path test-map (build-path "dispatchers/filesystem-map.ss")))
+ (test-url->path test-map (build-path "dispatchers/filesystem-map.rkt")))
(test-case "Strips parameters"
- (test-url->path test-map (build-path "dispatchers/filesystem-map.ss")
- #:url-string "http://test.com/dispatchers/filesystem-map.ss;foo"))
+ (test-url->path test-map (build-path "dispatchers/filesystem-map.rkt")
+ #:url-string "http://test.com/dispatchers/filesystem-map.rkt;foo"))
(test-case "Strips outs bad '..'s"
- (test-url->path test-map (build-path "dispatchers/filesystem-map.ss")
- #:url-string "http://test.com/../../dispatchers/filesystem-map.ss"))
+ (test-url->path test-map (build-path "dispatchers/filesystem-map.rkt")
+ #:url-string "http://test.com/../../dispatchers/filesystem-map.rkt"))
(test-case "Leaves in good '..'s"
- (test-url->path test-map (build-path "dispatchers/../dispatchers/filesystem-map.ss"))))
+ (test-url->path test-map (build-path "dispatchers/../dispatchers/filesystem-map.rkt"))))
(test-suite
"url->valid-path"
(test-suite
"Preserves url->path"
(test-case "Simple case"
- (test-url->path test-valid-map (build-path "dispatchers/filesystem-map.ss")))
+ (test-url->path test-valid-map (build-path "dispatchers/filesystem-map.rkt")))
(test-case "Strips parameters"
- (test-url->path test-valid-map (build-path "dispatchers/filesystem-map.ss")
- #:url-string "http://test.com/dispatchers/filesystem-map.ss;foo"))
+ (test-url->path test-valid-map (build-path "dispatchers/filesystem-map.rkt")
+ #:url-string "http://test.com/dispatchers/filesystem-map.rkt;foo"))
(test-case "Strips outs bad '..'s"
- (test-url->path test-valid-map (build-path "dispatchers/filesystem-map.ss")
- #:url-string "http://test.com/../../dispatchers/filesystem-map.ss"))
+ (test-url->path test-valid-map (build-path "dispatchers/filesystem-map.rkt")
+ #:url-string "http://test.com/../../dispatchers/filesystem-map.rkt"))
(test-case "Leaves in good '..'s"
- (test-url->path test-valid-map (build-path "dispatchers/../dispatchers/filesystem-map.ss"))))
+ (test-url->path test-valid-map (build-path "dispatchers/../dispatchers/filesystem-map.rkt"))))
(test-case "Finds valid path underneath"
- (test-url->path test-valid-map (build-path "dispatchers/filesystem-map.ss/not-a-file")
- #:expected (build-path "dispatchers/filesystem-map.ss"))))
+ (test-url->path test-valid-map (build-path "dispatchers/filesystem-map.rkt/not-a-file")
+ #:expected (build-path "dispatchers/filesystem-map.rkt"))))
(test-suite
"filter-url->path"
(test-case "Allows right suffix"
- (test-url->path test-filter-map (build-path "dispatchers/filesystem-map.ss")))
+ (test-url->path test-filter-map (build-path "dispatchers/filesystem-map.rkt")))
(test-case "Allows right suffix"
(test-url->path test-filter-map (build-path "dispatchers/filesystem-map.scm")))
(test-case "Disallows wrong suffix"
@@ -77,5 +77,5 @@
(lambda ()
(test-url->path test-filter-map (build-path "dispatchers/filesystem-map.html")))))
(test-case "Allows content after w/ valid"
- (test-url->path test-filter-valid-map (build-path "dispatchers/filesystem-map.ss/extra/info")
- #:expected (build-path "dispatchers/filesystem-map.ss"))))))
+ (test-url->path test-filter-valid-map (build-path "dispatchers/filesystem-map.rkt/extra/info")
+ #:expected (build-path "dispatchers/filesystem-map.rkt"))))))
diff --git a/collects/tests/web-server/dispatchers/servlet-test-util.ss b/collects/tests/web-server/dispatchers/servlet-test-util.rkt
similarity index 94%
rename from collects/tests/web-server/dispatchers/servlet-test-util.ss
rename to collects/tests/web-server/dispatchers/servlet-test-util.rkt
index 4fe236c5cf..3a8891151e 100644
--- a/collects/tests/web-server/dispatchers/servlet-test-util.ss
+++ b/collects/tests/web-server/dispatchers/servlet-test-util.rkt
@@ -1,15 +1,15 @@
-#lang scheme/base
-(require schemeunit
+#lang racket/base
+(require rktunit
mzlib/list
web-server/http
- "../util.ss")
+ "../util.rkt")
(provide test-add-two-numbers
test-double-counters
url0
url0s)
-(define url0 "http://test.com/servlets/example.ss")
-(define url0s (list (build-path "servlets") (build-path "example.ss")))
+(define url0 "http://test.com/servlets/example.rkt")
+(define url0s (list (build-path "servlets") (build-path "example.rkt")))
(define (test-add-two-numbers mkd t p)
(let* ([x (random 500)]
diff --git a/collects/tests/web-server/formlets-test.ss b/collects/tests/web-server/formlets-test.rkt
similarity index 79%
rename from collects/tests/web-server/formlets-test.ss
rename to collects/tests/web-server/formlets-test.rkt
index 1d73f9c375..895e44d95e 100644
--- a/collects/tests/web-server/formlets-test.ss
+++ b/collects/tests/web-server/formlets-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme
-(require schemeunit
+#lang racket
+(require rktunit
net/url
web-server/http
web-server/formlets
@@ -301,7 +301,74 @@
#f "127.0.0.1" 80 "127.0.0.1"))
(list "Jay" (make-date 10 6) (make-date 10 8))))))
+ ; Multiple value formlets
+ (local [(define (date->xml m d)
+ (format "~a/~a" m d))
+ (define (submit t)
+ `(input ([type "submit"]) ,t))
+ (define date-formlet
+ (formlet
+ (div
+ "Month:" ,{input-int . => . month}
+ "Day:" ,{input-int . => . day})
+ (values month day)))
+
+ (define travel-formlet
+ (formlet
+ (div
+ "Name:" ,{input-string . => . name}
+ (div
+ "Arrive:" ,{date-formlet . => . (values arrive-m arrive-d)}
+ "Depart:" ,{date-formlet . => . (values depart-m depart-d)})
+ ,@(list "1" "2" "3")
+ ,(submit "Submit"))
+ (values name arrive-m arrive-d depart-m depart-d)))
+
+ (define-syntax-rule (check-equal?/values actual-expr expected-expr)
+ (call-with-values (lambda () actual-expr)
+ (lambda actual
+ (call-with-values (lambda () expected-expr)
+ (lambda expected
+ (check-equal? actual expected))))))]
+ (test-suite
+ "Date (values)"
+
+ (test-case "date->xml"
+ (check-equal? (date->xml 1 2)
+ "1/2"))
+ (test-case "date-formlet"
+ (check-equal? (formlet-display date-formlet)
+ '((div () "Month:" (input ((name "input_0") (type "text"))) "Day:" (input ((name "input_1") (type "text")))))))
+ (test-case "travel-formlet"
+ (check-equal? (formlet-display travel-formlet)
+ '((div
+ ()
+ "Name:"
+ (input ((name "input_0") (type "text")))
+ (div
+ ()
+ "Arrive:"
+ (div () "Month:" (input ((name "input_1") (type "text"))) "Day:" (input ((name "input_2") (type "text"))))
+ "Depart:"
+ (div () "Month:" (input ((name "input_3") (type "text"))) "Day:" (input ((name "input_4") (type "text")))))
+ "1"
+ "2"
+ "3"
+ (input ((type "submit")) "Submit")))))
+ (test-case "travel-formlet (proc)"
+ (check-equal?/values (formlet-process travel-formlet
+ (make-request #"GET" (string->url "http://test.com")
+ empty
+ (delay
+ (list (make-binding:form #"input_0" #"Jay")
+ (make-binding:form #"input_1" #"10")
+ (make-binding:form #"input_2" #"6")
+ (make-binding:form #"input_3" #"10")
+ (make-binding:form #"input_4" #"8")))
+ #f "127.0.0.1" 80 "127.0.0.1"))
+ (values "Jay" 10 6 10 8)))))
+
))
-(require schemeunit/text-ui)
-(run-tests all-formlets-tests)
\ No newline at end of file
+(require rktunit/text-ui)
+(run-tests all-formlets-tests)
diff --git a/collects/tests/web-server/http/all-http-tests.ss b/collects/tests/web-server/http/all-http-tests.rkt
similarity index 53%
rename from collects/tests/web-server/http/all-http-tests.ss
rename to collects/tests/web-server/http/all-http-tests.rkt
index cc1786846d..906b334a1f 100644
--- a/collects/tests/web-server/http/all-http-tests.ss
+++ b/collects/tests/web-server/http/all-http-tests.rkt
@@ -1,7 +1,7 @@
-#lang scheme/base
-(require schemeunit
- "cookies-test.ss"
- "digest-auth-test.ss")
+#lang racket/base
+(require rktunit
+ "cookies-test.rkt"
+ "digest-auth-test.rkt")
(provide all-http-tests)
(define all-http-tests
diff --git a/collects/tests/web-server/http/cookies-test.ss b/collects/tests/web-server/http/cookies-test.rkt
similarity index 97%
rename from collects/tests/web-server/http/cookies-test.ss
rename to collects/tests/web-server/http/cookies-test.rkt
index 5b634eb61e..c1f56f8227 100644
--- a/collects/tests/web-server/http/cookies-test.ss
+++ b/collects/tests/web-server/http/cookies-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme
-(require schemeunit
+#lang racket
+(require rktunit
net/url
web-server/http/request-structs
web-server/http/response-structs
@@ -21,7 +21,7 @@
"Cookies"
(test-suite
- "cookie.ss"
+ "cookie.rkt"
(test-suite
"cookie->header and make-cookie"
@@ -69,7 +69,7 @@
(list (cons #"Set-Cookie" #"name=value; Version=1")))))
(test-suite
- "cookie-parse.ss"
+ "cookie-parse.rkt"
(test-equal? "None"
(request-cookies
@@ -141,5 +141,5 @@
)))
-#;(require schemeunit/text-ui)
-#;(run-tests cookies-tests)
\ No newline at end of file
+#;(require rktunit/text-ui)
+#;(run-tests cookies-tests)
diff --git a/collects/tests/web-server/http/digest-auth-test.ss b/collects/tests/web-server/http/digest-auth-test.rkt
similarity index 99%
rename from collects/tests/web-server/http/digest-auth-test.ss
rename to collects/tests/web-server/http/digest-auth-test.rkt
index 3fc78dff62..bb31d356f4 100644
--- a/collects/tests/web-server/http/digest-auth-test.ss
+++ b/collects/tests/web-server/http/digest-auth-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme
-(require schemeunit
+#lang racket
+(require rktunit
web-server/http
net/url)
(provide digest-auth-tests)
diff --git a/collects/tests/web-server/info.ss b/collects/tests/web-server/info.rkt
similarity index 100%
rename from collects/tests/web-server/info.ss
rename to collects/tests/web-server/info.rkt
diff --git a/collects/tests/web-server/lang-test.ss b/collects/tests/web-server/lang-test.rkt
similarity index 90%
rename from collects/tests/web-server/lang-test.ss
rename to collects/tests/web-server/lang-test.rkt
index 2e5643630f..98107a4d96 100644
--- a/collects/tests/web-server/lang-test.ss
+++ b/collects/tests/web-server/lang-test.rkt
@@ -1,6 +1,6 @@
-#lang scheme/base
-(require schemeunit
- "util.ss")
+#lang racket/base
+(require rktunit
+ "util.rkt")
(provide lang-tests)
(define (catch-unsafe-context-exn thunk)
@@ -33,7 +33,7 @@
"Function application with single argument in tail position"
(let-values ([(test-m00.4)
(make-module-eval
- (module m00.4 (lib "lang.ss" "web-server")
+ (module m00.4 (lib "lang.rkt" "web-server")
(provide start)
(define (start initial)
(let ([f (let ([m 7]) m)])
@@ -44,7 +44,7 @@
"start-interaction in argument position of a function call"
(let-values ([(test-m00.3)
(make-module-eval
- (module m00.3 (lib "lang.ss" "web-server")
+ (module m00.3 (lib "lang.rkt" "web-server")
(define (foo x) 'foo)
(provide start)
(define (start initial)
@@ -55,7 +55,7 @@
"identity interaction, dispatch-start called multiple times"
(let-values ([(test-m00)
(make-module-eval
- (module m00 (lib "lang.ss" "web-server")
+ (module m00 (lib "lang.rkt" "web-server")
(define (id x) x)
(provide start)
(define (start initial)
@@ -67,7 +67,7 @@
"start-interaction in argument position of a primitive"
(let-values ([(test-m00.1)
(make-module-eval
- (module m00.1 (lib "lang.ss" "web-server")
+ (module m00.1 (lib "lang.rkt" "web-server")
(provide start)
(define (start initial)
(+ 1 initial))))])
@@ -77,7 +77,7 @@
"dispatch-start called multiple times for s-i in non-trivial context"
(let-values ([(test-m00.2)
(make-module-eval
- (module m00.2 (lib "lang.ss" "web-server")
+ (module m00.2 (lib "lang.rkt" "web-server")
(provide start)
(define (start initial)
(+ (+ 1 1) initial))))])
@@ -88,7 +88,7 @@
"start-interaction in third position"
(let-values ([(test-m01)
(make-module-eval
- (module m01 (lib "lang.ss" "web-server")
+ (module m01 (lib "lang.rkt" "web-server")
(provide start)
(define (start initial)
(+ (* 1 2) (* 3 4) initial))))])
@@ -101,7 +101,7 @@
"begin with intermediate multiple values"
(let-values ([(test)
(make-module-eval
- (module m03 (lib "lang.ss" "web-server")
+ (module m03 (lib "lang.rkt" "web-server")
(provide start)
(define (start x)
(begin (printf "Before~n")
@@ -114,7 +114,7 @@
"begin0 with intermediate multiple values"
(let-values ([(test)
(make-module-eval
- (module m03 (lib "lang.ss" "web-server")
+ (module m03 (lib "lang.rkt" "web-server")
(provide start)
(define (start x)
(begin0 x
@@ -127,7 +127,7 @@
"begin0 with multiple values"
(let-values ([(test)
(make-module-eval
- (module m03 (lib "lang.ss" "web-server")
+ (module m03 (lib "lang.rkt" "web-server")
(provide start)
(define (start x)
(let-values ([(_ ans)
@@ -145,7 +145,7 @@
"continuation invoked in non-trivial context from within proc"
(let-values ([(test-m03)
(make-module-eval
- (module m03 (lib "lang.ss" "web-server")
+ (module m03 (lib "lang.rkt" "web-server")
(provide start)
(define (start x)
(let/cc k
@@ -160,7 +160,7 @@
"non-tail-recursive 'escaping' continuation"
(let-values ([(test-m04)
(make-module-eval
- (module m04 (lib "lang.ss" "web-server")
+ (module m04 (lib "lang.rkt" "web-server")
(provide start)
(define (start ln)
(let/cc k
@@ -181,7 +181,7 @@
"tail-recursive escaping continuation"
(let-values ([(test-m05)
(make-module-eval
- (module m05 (lib "lang.ss" "web-server")
+ (module m05 (lib "lang.rkt" "web-server")
(provide start)
(define (start ln)
@@ -208,20 +208,20 @@
"curried add with call-with-serializable-current-continuation"
(let ([table-01-eval
(make-module-eval
- (module table01 mzscheme
+ (module table01 racket
(provide store-k
lookup-k)
- (define the-table (make-hash-table))
+ (define the-table (make-hash))
(define (store-k k)
(let ([key (string->symbol (symbol->string (gensym 'key)))])
- (hash-table-put! the-table key k)
+ (hash-set! the-table key k)
key))
(define (lookup-k key-pair)
- (hash-table-get the-table (car key-pair) (lambda () #f)))))])
+ (hash-ref the-table (car key-pair) (lambda () #f)))))])
(table-01-eval
- '(module m06 (lib "lang.ss" "web-server")
+ '(module m06 (lib "lang.rkt" "web-server")
(require 'table01)
(provide start)
@@ -252,7 +252,7 @@
(let-values ([(test-m06.1)
(make-module-eval
- (module m06.1 (lib "lang.ss" "web-server")
+ (module m06.1 (lib "lang.rkt" "web-server")
(provide start)
(define (gn which)
(cadr
@@ -279,7 +279,7 @@
(let-values ([(test-m06.2)
(make-module-eval
- (module m06.2 (lib "lang.ss" "web-server")
+ (module m06.2 (lib "lang.rkt" "web-server")
(provide start)
(define (gn #:page which)
(cadr
@@ -311,7 +311,7 @@
"quasi-quote with splicing: need to recertify context for qq-append"
(let-values ([(test-m01.1)
(make-module-eval
- (module m01.1 (lib "lang.ss" "web-server")
+ (module m01.1 (lib "lang.rkt" "web-server")
(provide start)
(define (start initial)
`(,@(list 1 2 initial)))))])
@@ -322,7 +322,7 @@
"recertify context test (1)"
(let-values ([(test-m01.2)
(make-module-eval
- (module m01.1 (lib "lang.ss" "web-server")
+ (module m01.1 (lib "lang.rkt" "web-server")
(provide start)
(define (start initial)
`(foo ,@(list 1 2 3)))))])
@@ -332,7 +332,7 @@
"recertify context test (2)"
(let-values ([(test-m01.3)
(make-module-eval
- (module m01.3 (lib "lang.ss" "web-server")
+ (module m01.3 (lib "lang.rkt" "web-server")
(provide start)
(define (start n)
`(n ,@(list 1 2 3)))))])
@@ -342,7 +342,7 @@
"recertify context test (3)"
(let-values ([(test-m01.4)
(make-module-eval
- (module m1 (lib "lang.ss" "web-server")
+ (module m1 (lib "lang.rkt" "web-server")
(provide start)
(define (start initial)
(define (bar n)
@@ -357,7 +357,7 @@
"mutually recursive even? and odd?"
(let-values ([(test-m07)
(make-module-eval
- (module m07 (lib "lang.ss" "web-server")
+ (module m07 (lib "lang.rkt" "web-server")
(provide start)
(define (start initial)
(letrec ([even? (lambda (n)
@@ -376,7 +376,7 @@
"call-with-serializable-current-continuation on rhs of letrec binding forms"
(let-values ([(test-m08)
(make-module-eval
- (module m08 (lib "lang.ss" "web-server")
+ (module m08 (lib "lang.rkt" "web-server")
(provide start)
(define (gn which)
(cadr
@@ -411,14 +411,14 @@
(let-values ([(nta-eval)
(make-module-eval
- (module nta mzscheme
+ (module nta racket
(provide non-tail-apply)
(define (non-tail-apply f . args)
(let ([result (apply f args)])
(printf "result = ~s~n" result)
result))))])
- (nta-eval '(module m09 (lib "lang.ss" "web-server")
+ (nta-eval '(module m09 (lib "lang.rkt" "web-server")
(require 'nta)
(provide start)
(define (start ignore)
@@ -434,7 +434,7 @@
(let-values ([(m10-eval)
(make-module-eval
- (module m10 (lib "lang.ss" "web-server")
+ (module m10 (lib "lang.rkt" "web-server")
(provide start)
(define (nta f arg)
(let ([result (f arg)])
@@ -449,7 +449,7 @@
(let-values ([(m11-eval)
(make-module-eval
- (module m11 (lib "lang.ss" "web-server")
+ (module m11 (lib "lang.rkt" "web-server")
(provide start)
(define (start ignore)
(map
@@ -465,13 +465,13 @@
(let ([ta-eval
(make-module-eval
- (module ta mzscheme
+ (module ta racket
(provide tail-apply)
(define (tail-apply f . args)
(apply f args))))])
- (ta-eval '(module m12 (lib "lang.ss" "web-server")
+ (ta-eval '(module m12 (lib "lang.rkt" "web-server")
(require 'ta)
(provide start)
(define (start initial)
@@ -487,7 +487,7 @@
(let-values ([(m13-eval)
(make-module-eval
- (module m11 (lib "lang.ss" "web-server")
+ (module m11 (lib "lang.rkt" "web-server")
(provide start)
(define (start initial)
(map
@@ -504,13 +504,13 @@
(let-values ([(ta-eval)
(make-module-eval
- (module ta mzscheme
+ (module ta racket
(provide tail-apply)
(define (tail-apply f . args)
(apply f args))))])
- (ta-eval '(module m14 (lib "lang.ss" "web-server")
+ (ta-eval '(module m14 (lib "lang.rkt" "web-server")
(require 'ta)
(provide start)
(define (start ignore)
@@ -535,7 +535,7 @@
(check-not-exn
(lambda ()
(make-module-eval
- (module data (lib "lang.ss" "web-server")
+ (module data (lib "lang.rkt" "web-server")
(require mzlib/contract)
(define x 1)
@@ -548,7 +548,7 @@
(check-not-exn
(lambda ()
(make-module-eval
- (module data (lib "lang.ss" "web-server")
+ (module data (lib "lang.rkt" "web-server")
(require mzlib/contract)
(define-struct posn (x y) #:mutable)
@@ -560,7 +560,7 @@
(check-not-exn
(lambda ()
(make-module-eval
- (module test (lib "lang.ss" "web-server")
+ (module test (lib "lang.rkt" "web-server")
(define (show-user)
(define-values (point i) (values #t 1))
i)))))))
diff --git a/collects/tests/web-server/lang/abort-resume-test.ss b/collects/tests/web-server/lang/abort-resume-test.rkt
similarity index 99%
rename from collects/tests/web-server/lang/abort-resume-test.ss
rename to collects/tests/web-server/lang/abort-resume-test.rkt
index cac992f3c5..b8305fed4c 100644
--- a/collects/tests/web-server/lang/abort-resume-test.ss
+++ b/collects/tests/web-server/lang/abort-resume-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme
-(require schemeunit
+#lang racket
+(require rktunit
web-server/lang/abort-resume)
(require/expose web-server/lang/abort-resume (web-prompt))
(provide abort-resume-tests)
@@ -306,6 +306,6 @@
))
#|
-(require schemeunit/text-ui)
+(require rktunit/text-ui)
(run-tests abort-resume-tests)
|#
diff --git a/collects/tests/web-server/lang/all-lang-tests.rkt b/collects/tests/web-server/lang/all-lang-tests.rkt
new file mode 100644
index 0000000000..e4830190cf
--- /dev/null
+++ b/collects/tests/web-server/lang/all-lang-tests.rkt
@@ -0,0 +1,21 @@
+#lang racket/base
+(require rktunit
+ "abort-resume-test.rkt"
+ "anormal-test.rkt"
+ "defun-test.rkt"
+ "file-box-test.rkt"
+ "labels-test.rkt"
+ "stuff-url-test.rkt"
+ "web-param-test.rkt")
+(provide all-lang-tests)
+
+(define all-lang-tests
+ (test-suite
+ "Web Language"
+ abort-resume-tests
+ anormal-tests
+ defun-tests
+ file-box-tests
+ labels-tests
+ stuff-url-tests
+ web-param-tests))
diff --git a/collects/tests/web-server/lang/all-lang-tests.ss b/collects/tests/web-server/lang/all-lang-tests.ss
deleted file mode 100644
index f624fa370d..0000000000
--- a/collects/tests/web-server/lang/all-lang-tests.ss
+++ /dev/null
@@ -1,21 +0,0 @@
-#lang scheme/base
-(require schemeunit
- "abort-resume-test.ss"
- "anormal-test.ss"
- "defun-test.ss"
- "file-box-test.ss"
- "labels-test.ss"
- "stuff-url-test.ss"
- "web-param-test.ss")
-(provide all-lang-tests)
-
-(define all-lang-tests
- (test-suite
- "Web Language"
- abort-resume-tests
- anormal-tests
- defun-tests
- file-box-tests
- labels-tests
- stuff-url-tests
- web-param-tests))
diff --git a/collects/tests/web-server/lang/anormal-test.ss b/collects/tests/web-server/lang/anormal-test.rkt
similarity index 99%
rename from collects/tests/web-server/lang/anormal-test.ss
rename to collects/tests/web-server/lang/anormal-test.rkt
index b9ddaeac0a..430c7099bb 100644
--- a/collects/tests/web-server/lang/anormal-test.ss
+++ b/collects/tests/web-server/lang/anormal-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme/base
-(require schemeunit
+#lang racket/base
+(require rktunit
web-server/lang/anormal
web-server/lang/util)
(provide anormal-tests)
diff --git a/collects/tests/web-server/lang/defun-test.ss b/collects/tests/web-server/lang/defun-test.rkt
similarity index 89%
rename from collects/tests/web-server/lang/defun-test.ss
rename to collects/tests/web-server/lang/defun-test.rkt
index 895d0fa62f..de10e08029 100644
--- a/collects/tests/web-server/lang/defun-test.ss
+++ b/collects/tests/web-server/lang/defun-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme/base
-(require schemeunit
+#lang racket/base
+(require rktunit
web-server/lang/defun
web-server/lang/util)
(provide defun-tests)
@@ -18,8 +18,8 @@
; XXX Doesn't work for non-exp values
#;(test-not-exn "define-struct" (lambda () (vwrap (defun (expand (syntax (define-struct posn (x y))))))))
(test-not-exn "quote-syntax" (lambda () (vwrap (defun (expand (syntax #'provide/contract-id-set-a-date-day!))))))
- #;(test-not-exn "provide/contract" (lambda () (vwrap (defun (expand (syntax (module t mzscheme
- (require mzlib/contract)
+ #;(test-not-exn "provide/contract" (lambda () (vwrap (defun (expand (syntax (module t racket
+ (require racket/contract)
(define x 1)
(provide/contract
[x integer?]))))))))
diff --git a/collects/tests/web-server/lang/file-box-test.ss b/collects/tests/web-server/lang/file-box-test.rkt
similarity index 95%
rename from collects/tests/web-server/lang/file-box-test.ss
rename to collects/tests/web-server/lang/file-box-test.rkt
index 43c66049ce..144287593b 100644
--- a/collects/tests/web-server/lang/file-box-test.ss
+++ b/collects/tests/web-server/lang/file-box-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme/base
-(require schemeunit
+#lang racket/base
+(require rktunit
web-server/lang/file-box
(only-in mzlib/file make-temporary-file))
(provide file-box-tests)
diff --git a/collects/tests/web-server/lang/labels-test.ss b/collects/tests/web-server/lang/labels-test.rkt
similarity index 92%
rename from collects/tests/web-server/lang/labels-test.ss
rename to collects/tests/web-server/lang/labels-test.rkt
index 7597000385..042b9bac1f 100644
--- a/collects/tests/web-server/lang/labels-test.ss
+++ b/collects/tests/web-server/lang/labels-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme/base
-(require schemeunit
+#lang racket/base
+(require rktunit
web-server/lang/labels)
(provide labels-tests)
diff --git a/collects/tests/web-server/lang/stuff-url-test.ss b/collects/tests/web-server/lang/stuff-url-test.rkt
similarity index 87%
rename from collects/tests/web-server/lang/stuff-url-test.ss
rename to collects/tests/web-server/lang/stuff-url-test.rkt
index 0dc672a5e1..fa25f1a6ff 100644
--- a/collects/tests/web-server/lang/stuff-url-test.ss
+++ b/collects/tests/web-server/lang/stuff-url-test.rkt
@@ -1,10 +1,10 @@
-#lang scheme/base
+#lang racket/base
(require web-server/lang/stuff-url
web-server/stuffers
- schemeunit
+ rktunit
net/url
mzlib/serialize
- "../util.ss")
+ "../util.rkt")
(provide stuff-url-tests)
(define uri0 (string->url "www.google.com"))
@@ -23,8 +23,8 @@
(lambda (k*v)
((car k*v) k*v))))
-(define m00 '(lib "mm00.ss" "web-server" "default-web-root" "htdocs" "lang-servlets"))
-(define m01 '(lib "mm01.ss" "web-server" "default-web-root" "htdocs" "lang-servlets"))
+(define m00 '(lib "mm00.rkt" "web-server" "default-web-root" "htdocs" "lang-servlets"))
+(define m01 '(lib "mm01.rkt" "web-server" "default-web-root" "htdocs" "lang-servlets"))
(define stuff-url-tests
(test-suite
@@ -46,7 +46,7 @@
(test-case "Vectors" (check-true (stuffed-url? (stuff-url test-stuffer uri0 (serialize (vector 3 1 4)))))))
(test-case
- "Using stuff-url with lang.ss"
+ "Using stuff-url with lang.rkt"
(let-values ([(ev) (make-eval/mod-path m00)])
(let* ([k0 (stuff-unstuff (ev '(serialize (dispatch-start start 'foo)))
uri0)]
diff --git a/collects/tests/web-server/lang/web-param-test.ss b/collects/tests/web-server/lang/web-param-test.rkt
similarity index 89%
rename from collects/tests/web-server/lang/web-param-test.ss
rename to collects/tests/web-server/lang/web-param-test.rkt
index e9213726ee..2c9f0f06a6 100644
--- a/collects/tests/web-server/lang/web-param-test.ss
+++ b/collects/tests/web-server/lang/web-param-test.rkt
@@ -1,6 +1,6 @@
-#lang scheme/base
-(require schemeunit
- "../util.ss")
+#lang racket/base
+(require rktunit
+ "../util.rkt")
(provide web-param-tests)
(define the-dispatch
@@ -19,7 +19,7 @@
"web-parameterize does not overwrite with multiple parameters"
(let-values ([(meval)
(make-module-eval
- (module m (lib "lang.ss" "web-server")
+ (module m (lib "lang.rkt" "web-server")
(define first (make-web-parameter #f))
(define second (make-web-parameter #f))
(provide start)
@@ -34,7 +34,7 @@
(let-values ([(meval)
(make-module-eval
- (module m (lib "lang.ss" "web-server")
+ (module m (lib "lang.rkt" "web-server")
(provide start)
(define first (make-web-parameter #f))
(define second (make-web-parameter #f))
diff --git a/collects/tests/web-server/managers/all-managers-tests.ss b/collects/tests/web-server/managers/all-managers-tests.rkt
similarity index 50%
rename from collects/tests/web-server/managers/all-managers-tests.ss
rename to collects/tests/web-server/managers/all-managers-tests.rkt
index 36223c8e97..739cab4bf4 100644
--- a/collects/tests/web-server/managers/all-managers-tests.ss
+++ b/collects/tests/web-server/managers/all-managers-tests.rkt
@@ -1,12 +1,12 @@
-#lang scheme/base
-(require schemeunit)
+#lang racket/base
+(require rktunit)
(provide all-managers-tests)
(define all-managers-tests
(test-suite
"Continuation Managers"
- ; XXX test timeout.ss
- ; XXX test none.ss
- ; XXX test lru.ss
+ ; XXX test timeout.rkt
+ ; XXX test none.rkt
+ ; XXX test lru.rkt
))
diff --git a/collects/tests/web-server/private/all-private-tests.rkt b/collects/tests/web-server/private/all-private-tests.rkt
new file mode 100644
index 0000000000..adae03de54
--- /dev/null
+++ b/collects/tests/web-server/private/all-private-tests.rkt
@@ -0,0 +1,27 @@
+#lang racket/base
+(require rktunit
+ "request-test.rkt"
+ "cache-table-test.rkt"
+ "response-test.rkt"
+ "connection-manager-test.rkt"
+ "define-closure-test.rkt"
+ "mime-types-test.rkt"
+ "url-param-test.rkt"
+ "mod-map-test.rkt"
+ "gzip-test.rkt"
+ "util-test.rkt")
+(provide all-private-tests)
+
+(define all-private-tests
+ (test-suite
+ "Internal"
+ gzip-tests
+ cache-table-tests
+ connection-manager-tests
+ define-closure-tests
+ mime-types-tests
+ mod-map-tests
+ request-tests
+ response-tests
+ url-param-tests
+ util-tests))
diff --git a/collects/tests/web-server/private/all-private-tests.ss b/collects/tests/web-server/private/all-private-tests.ss
deleted file mode 100644
index 3755a1510e..0000000000
--- a/collects/tests/web-server/private/all-private-tests.ss
+++ /dev/null
@@ -1,27 +0,0 @@
-#lang scheme/base
-(require schemeunit
- "request-test.ss"
- "cache-table-test.ss"
- "response-test.ss"
- "connection-manager-test.ss"
- "define-closure-test.ss"
- "mime-types-test.ss"
- "url-param-test.ss"
- "mod-map-test.ss"
- "gzip-test.ss"
- "util-test.ss")
-(provide all-private-tests)
-
-(define all-private-tests
- (test-suite
- "Internal"
- gzip-tests
- cache-table-tests
- connection-manager-tests
- define-closure-tests
- mime-types-tests
- mod-map-tests
- request-tests
- response-tests
- url-param-tests
- util-tests))
diff --git a/collects/tests/web-server/private/cache-table-test.ss b/collects/tests/web-server/private/cache-table-test.rkt
similarity index 92%
rename from collects/tests/web-server/private/cache-table-test.ss
rename to collects/tests/web-server/private/cache-table-test.rkt
index 03ff95d3ee..48028c50dc 100644
--- a/collects/tests/web-server/private/cache-table-test.ss
+++ b/collects/tests/web-server/private/cache-table-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme/base
-(require schemeunit
+#lang racket/base
+(require rktunit
web-server/private/cache-table)
(provide cache-table-tests)
@@ -37,6 +37,6 @@
(cache-table-lookup! ct 'foo (lambda () #f)))))))
#|
-(require (planet schematics/schemeunit:3/text-ui))
+(require (planet schematics/rktunit:3/text-ui))
(run-tests cache-table-tests)
|#
diff --git a/collects/tests/web-server/private/connection-manager-test.ss b/collects/tests/web-server/private/connection-manager-test.rkt
similarity index 97%
rename from collects/tests/web-server/private/connection-manager-test.ss
rename to collects/tests/web-server/private/connection-manager-test.rkt
index 84a4475a31..72950e37b9 100644
--- a/collects/tests/web-server/private/connection-manager-test.ss
+++ b/collects/tests/web-server/private/connection-manager-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme/base
-(require schemeunit
+#lang racket/base
+(require rktunit
web-server/private/connection-manager)
(provide connection-manager-tests)
diff --git a/collects/tests/web-server/private/define-closure-test.ss b/collects/tests/web-server/private/define-closure-test.rkt
similarity index 98%
rename from collects/tests/web-server/private/define-closure-test.ss
rename to collects/tests/web-server/private/define-closure-test.rkt
index 8adc374e02..7e35dd3f78 100644
--- a/collects/tests/web-server/private/define-closure-test.ss
+++ b/collects/tests/web-server/private/define-closure-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme/base
-(require schemeunit
+#lang racket/base
+(require rktunit
mzlib/serialize
mzlib/match
web-server/private/define-closure)
diff --git a/collects/tests/web-server/private/gzip-test.ss b/collects/tests/web-server/private/gzip-test.rkt
similarity index 95%
rename from collects/tests/web-server/private/gzip-test.ss
rename to collects/tests/web-server/private/gzip-test.rkt
index edbae00245..32c5b6d06c 100644
--- a/collects/tests/web-server/private/gzip-test.ss
+++ b/collects/tests/web-server/private/gzip-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme
-(require schemeunit
+#lang racket
+(require rktunit
web-server/private/gzip)
(provide gzip-tests)
diff --git a/collects/tests/web-server/private/mime-types-test.ss b/collects/tests/web-server/private/mime-types-test.rkt
similarity index 97%
rename from collects/tests/web-server/private/mime-types-test.ss
rename to collects/tests/web-server/private/mime-types-test.rkt
index 84ad15275d..78942cce7d 100644
--- a/collects/tests/web-server/private/mime-types-test.ss
+++ b/collects/tests/web-server/private/mime-types-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme/base
-(require schemeunit
+#lang racket/base
+(require rktunit
(only-in mzlib/file make-temporary-file)
web-server/http
web-server/private/mime-types)
diff --git a/collects/tests/web-server/private/mod-map-test.ss b/collects/tests/web-server/private/mod-map-test.rkt
similarity index 79%
rename from collects/tests/web-server/private/mod-map-test.ss
rename to collects/tests/web-server/private/mod-map-test.rkt
index b5906a16e7..df290694f4 100644
--- a/collects/tests/web-server/private/mod-map-test.ss
+++ b/collects/tests/web-server/private/mod-map-test.rkt
@@ -1,8 +1,8 @@
-#lang scheme/base
-(require schemeunit
+#lang racket/base
+(require rktunit
web-server/private/mod-map
mzlib/serialize
- "../util.ss")
+ "../util.rkt")
(provide mod-map-tests)
(define (simplify-unsimplify v)
@@ -19,8 +19,8 @@
(lambda (k*v)
((car k*v) k*v))))
-(define m00 '(lib "mm00.ss" "web-server" "default-web-root" "htdocs" "lang-servlets"))
-(define m01 '(lib "mm01.ss" "web-server" "default-web-root" "htdocs" "lang-servlets"))
+(define m00 '(lib "mm00.rkt" "web-server" "default-web-root" "htdocs" "lang-servlets"))
+(define m01 '(lib "mm01.rkt" "web-server" "default-web-root" "htdocs" "lang-servlets"))
(define mod-map-tests
(test-suite
@@ -34,7 +34,7 @@
(test-case "Vectors" (check-equal? (cidentity (vector 3 1 4)) (vector 3 1 4))))
(test-case
- "Use compress-serial and decompress-serial with lang.ss (1)"
+ "Use compress-serial and decompress-serial with lang.rkt (1)"
(let-values ([(ev) (make-eval/mod-path m00)])
(let* ([k0 (simplify-unsimplify (ev '(serialize (dispatch-start start 'foo))))]
[k1 (simplify-unsimplify (ev `(serialize (dispatch ,the-dispatch (list (deserialize ',k0) 1)))))]
@@ -42,7 +42,7 @@
(check-true (= 6 (ev `(dispatch ,the-dispatch (list (deserialize ',k2) 3))))))))
(test-case
- "Use compress-serial and decompress-serial with lang.ss (2)"
+ "Use compress-serial and decompress-serial with lang.rkt (2)"
(let-values ([(ev) (make-eval/mod-path m01)])
(let* ([k0 (simplify-unsimplify (ev '(serialize (dispatch-start start 'foo))))])
(check-true (= 7 (ev `(dispatch ,the-dispatch (list (deserialize ',k0) 7))))))))))
diff --git a/collects/tests/web-server/private/request-test.ss b/collects/tests/web-server/private/request-test.rkt
similarity index 97%
rename from collects/tests/web-server/private/request-test.ss
rename to collects/tests/web-server/private/request-test.rkt
index 2718af0a62..85adc37e5d 100644
--- a/collects/tests/web-server/private/request-test.ss
+++ b/collects/tests/web-server/private/request-test.rkt
@@ -1,5 +1,5 @@
-#lang scheme
-(require schemeunit
+#lang racket
+(require rktunit
web-server/private/connection-manager
web-server/private/timer
web-server/http/request
@@ -60,7 +60,7 @@
"URL Query"
(test-not-exn "Unfinished URL query"
(lambda ()
- (define ip (open-input-string "GET http://127.0.0.1:8080/servlets/examples/hello.ss?a=1&b: HTTP/1.1"))
+ (define ip (open-input-string "GET http://127.0.0.1:8080/servlets/examples/hello.rkt?a=1&b: HTTP/1.1"))
(read-request
(make-connection 0 (make-timer ip +inf.0 (lambda () (void)))
ip
diff --git a/collects/tests/web-server/private/response-test.ss b/collects/tests/web-server/private/response-test.rkt
similarity index 68%
rename from collects/tests/web-server/private/response-test.ss
rename to collects/tests/web-server/private/response-test.rkt
index a9aef61232..95a1303b1d 100644
--- a/collects/tests/web-server/private/response-test.ss
+++ b/collects/tests/web-server/private/response-test.rkt
@@ -1,11 +1,11 @@
-#lang scheme/base
-(require schemeunit
+#lang racket/base
+(require rktunit
xml/xml
(only-in mzlib/file
make-temporary-file)
web-server/http
web-server/http/response
- "../util.ss")
+ "../util.rkt")
(require/expose web-server/http/response
(convert-http-ranges
@@ -30,27 +30,27 @@
(output output-response
(make-response/basic 404 #"404" (current-seconds) #"text/html"
(list)))
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 0\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 0\r\n\r\n")
(test-equal? "response/basic (header)"
(output output-response
(make-response/basic 404 #"404" (current-seconds) #"text/html"
(list (make-header #"Header" #"Value"))))
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 0\r\nHeader: Value\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 0\r\nHeader: Value\r\n\r\n")
(test-equal? "response/basic (body)"
(output output-response
(make-response/basic 404 #"404" (current-seconds) #"text/html"
(list)))
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 0\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 0\r\n\r\n")
(test-equal? "response/basic (bytes body)"
(output output-response
(make-response/basic 404 #"404" (current-seconds) #"text/html"
(list)))
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 0\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 0\r\n\r\n")
(test-equal? "response/basic (both)"
(output output-response
(make-response/basic 404 #"404" (current-seconds) #"text/html"
(list (make-header #"Header" #"Value"))))
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 0\r\nHeader: Value\r\n\r\n"))
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 0\r\nHeader: Value\r\n\r\n"))
(test-suite
"response/full"
@@ -58,23 +58,23 @@
(output output-response
(make-response/full 404 #"404" (current-seconds) #"text/html"
(list) (list)))
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 0\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 0\r\n\r\n")
(test-equal? "response/full (header)"
(output output-response
(make-response/full 404 #"404" (current-seconds) #"text/html"
(list (make-header #"Header" #"Value")) (list)))
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 0\r\nHeader: Value\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 0\r\nHeader: Value\r\n\r\n")
(test-equal? "response/full (bytes body)"
(output output-response
(make-response/full 404 #"404" (current-seconds) #"text/html"
(list) (list #"Content!")))
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 8\r\n\r\nContent!")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 8\r\n\r\nContent!")
(test-equal? "response/full (both)"
(output output-response
(make-response/full 404 #"404" (current-seconds) #"text/html"
(list (make-header #"Header" #"Value")) (list #"Content!")))
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 8\r\nHeader: Value\r\n\r\nContent!"))
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 8\r\nHeader: Value\r\n\r\nContent!"))
(test-suite
"response/incremental"
@@ -82,31 +82,31 @@
(output output-response
(make-response/incremental 404 #"404" (current-seconds) #"text/html"
(list) (lambda (write) (void))))
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\n\r\n0\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\n\r\n0\r\n\r\n")
(test-equal? "response/incremental (header)"
(output output-response
(make-response/incremental 404 #"404" (current-seconds) #"text/html"
(list (make-header #"Header" #"Value"))
(lambda (write) (void))))
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\nHeader: Value\r\n\r\n0\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\nHeader: Value\r\n\r\n0\r\n\r\n")
(test-equal? "response/incremental (body)"
(output output-response
(make-response/incremental 404 #"404" (current-seconds) #"text/html"
(list)
(lambda (write) (write #"Content!"))))
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\n\r\n8\r\nContent!\r\n0\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\n\r\n8\r\nContent!\r\n0\r\n\r\n")
(test-equal? "response/incremental (bytes body)"
(output output-response
(make-response/incremental 404 #"404" (current-seconds) #"text/html"
(list)
(lambda (write) (write #"Content!"))))
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\n\r\n8\r\nContent!\r\n0\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\n\r\n8\r\nContent!\r\n0\r\n\r\n")
(test-equal? "response/incremental (both)"
(output output-response
(make-response/incremental 404 #"404" (current-seconds) #"text/html"
(list (make-header #"Header" #"Value"))
(lambda (write) (write #"Content!"))))
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\nHeader: Value\r\n\r\n8\r\nContent!\r\n0\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\nHeader: Value\r\n\r\n8\r\nContent!\r\n0\r\n\r\n")
(test-equal? "response/incremental (twice)"
(output output-response
(make-response/incremental 404 #"404" (current-seconds) #"text/html"
@@ -114,29 +114,29 @@
(lambda (write)
(write #"Content!")
(write #"Content!"))))
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\nHeader: Value\r\n\r\n8\r\nContent!\r\n8\r\nContent!\r\n0\r\n\r\n"))
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\nHeader: Value\r\n\r\n8\r\nContent!\r\n8\r\nContent!\r\n0\r\n\r\n"))
(test-suite
"Simple content"
(test-equal? "empty"
(output output-response
(list #"text/html"))
- #"HTTP/1.1 200 Okay\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 0\r\n\r\n")
+ #"HTTP/1.1 200 Okay\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 0\r\n\r\n")
(test-equal? "not"
(output output-response
(list #"text/html" "Content"))
- #"HTTP/1.1 200 Okay\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 7\r\n\r\nContent")
+ #"HTTP/1.1 200 Okay\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 7\r\n\r\nContent")
(test-equal? "not, bytes"
(output output-response
(list #"text/html" #"Content"))
- #"HTTP/1.1 200 Okay\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 7\r\n\r\nContent"))
+ #"HTTP/1.1 200 Okay\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 7\r\n\r\nContent"))
(test-suite
"xexpr"
(test-equal? "any"
(output output-response
`(html (head (title "Hey!")) (body "Content")))
- #"HTTP/1.1 200 Okay\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html; charset=utf-8\r\nContent-Length: 65\r\n\r\nHey!Content"))
+ #"HTTP/1.1 200 Okay\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html; charset=utf-8\r\nContent-Length: 65\r\n\r\nHey!Content"))
))
(define output-response/method-tests
@@ -150,31 +150,31 @@
(make-response/full 404 #"404" (current-seconds) #"text/html"
(list) (list))
#"HEAD")
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 0\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 0\r\n\r\n")
(test-equal? "response/full (header)"
(output output-response/method
(make-response/full 404 #"404" (current-seconds) #"text/html"
(list (make-header #"Header" #"Value")) (list))
#"HEAD")
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 0\r\nHeader: Value\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 0\r\nHeader: Value\r\n\r\n")
(test-equal? "response/full (body)"
(output output-response/method
(make-response/full 404 #"404" (current-seconds) #"text/html"
(list) (list #"Content!"))
#"HEAD")
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 8\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 8\r\n\r\n")
(test-equal? "response/full (bytes body)"
(output output-response/method
(make-response/full 404 #"404" (current-seconds) #"text/html"
(list) (list #"Content!"))
#"HEAD")
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 8\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 8\r\n\r\n")
(test-equal? "response/full (both)"
(output output-response/method
(make-response/full 404 #"404" (current-seconds) #"text/html"
(list (make-header #"Header" #"Value")) (list #"Content!"))
#"HEAD")
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 8\r\nHeader: Value\r\n\r\n"))
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 8\r\nHeader: Value\r\n\r\n"))
(test-suite
"response/incremental"
@@ -183,35 +183,35 @@
(make-response/incremental 404 #"404" (current-seconds) #"text/html"
(list) (lambda (write) (void)))
#"HEAD")
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\n\r\n")
(test-equal? "response/incremental (header)"
(output output-response/method
(make-response/incremental 404 #"404" (current-seconds) #"text/html"
(list (make-header #"Header" #"Value"))
(lambda (write) (void)))
#"HEAD")
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\nHeader: Value\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\nHeader: Value\r\n\r\n")
(test-equal? "response/incremental (body)"
(output output-response/method
(make-response/incremental 404 #"404" (current-seconds) #"text/html"
(list)
(lambda (write) (write #"Content!")))
#"HEAD")
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\n\r\n")
(test-equal? "response/incremental (bytes body)"
(output output-response/method
(make-response/incremental 404 #"404" (current-seconds) #"text/html"
(list)
(lambda (write) (write #"Content!")))
#"HEAD")
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\n\r\n")
(test-equal? "response/incremental (both)"
(output output-response/method
(make-response/incremental 404 #"404" (current-seconds) #"text/html"
(list (make-header #"Header" #"Value"))
(lambda (write) (write #"Content!")))
#"HEAD")
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\nHeader: Value\r\n\r\n")
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\nHeader: Value\r\n\r\n")
(test-equal? "response/incremental (twice)"
(output output-response/method
(make-response/incremental 404 #"404" (current-seconds) #"text/html"
@@ -220,7 +220,7 @@
(write #"Content!")
(write #"Content!")))
#"HEAD")
- #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\nHeader: Value\r\n\r\n"))
+ #"HTTP/1.1 404 404\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nTransfer-Encoding: chunked\r\nHeader: Value\r\n\r\n"))
(test-suite
"Simple content"
@@ -228,17 +228,17 @@
(output output-response/method
(list #"text/html")
#"HEAD")
- #"HTTP/1.1 200 Okay\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 0\r\n\r\n")
+ #"HTTP/1.1 200 Okay\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 0\r\n\r\n")
(test-equal? "not"
(output output-response/method
(list #"text/html" #"Content")
#"HEAD")
- #"HTTP/1.1 200 Okay\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 7\r\n\r\n")
+ #"HTTP/1.1 200 Okay\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 7\r\n\r\n")
(test-equal? "not, bytes"
(output output-response/method
(list #"text/html" #"Content")
#"HEAD")
- #"HTTP/1.1 200 Okay\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nContent-Length: 7\r\n\r\n"))
+ #"HTTP/1.1 200 Okay\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nContent-Length: 7\r\n\r\n"))
(test-suite
"xexpr"
@@ -246,7 +246,7 @@
(output output-response/method
`(html (head (title "Hey!")) (body "Content"))
#"HEAD")
- #"HTTP/1.1 200 Okay\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html; charset=utf-8\r\nContent-Length: 65\r\n\r\n"))))
+ #"HTTP/1.1 200 Okay\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html; charset=utf-8\r\nContent-Length: 65\r\n\r\n"))))
(define response-tests
(test-suite
@@ -278,74 +278,74 @@
(test-equal? "(get) whole file - no Range header"
(output output-file tmp-file #"GET" #"text/html" #f)
- #"HTTP/1.1 200 OK\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\n\r\nA titleHere's some content!")
+ #"HTTP/1.1 200 OK\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\n\r\nA titleHere's some content!")
(test-equal? "(get) whole file - Range header present"
(output output-file tmp-file #"GET" #"text/html" '((0 . 80)))
- #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\nContent-Range: bytes 0-80/81\r\n\r\nA titleHere's some content!")
+ #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\nContent-Range: bytes 0-80/81\r\n\r\nA titleHere's some content!")
(test-equal? "(get) single range - suffix range larger than file"
(output output-file tmp-file #"GET" #"text/html" '((#f . 90)))
- #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\nContent-Range: bytes 0-80/81\r\n\r\nA titleHere's some content!")
+ #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nAccept-Ranges: bytes\r\nContent-Length: 81\r\nContent-Range: bytes 0-80/81\r\n\r\nA titleHere's some content!")
(test-equal? "(get) single range - 10 bytes from the start"
(output output-file tmp-file #"GET" #"text/html" '((0 . 9)))
- #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nAccept-Ranges: bytes\r\nContent-Length: 10\r\nContent-Range: bytes 0-9/81\r\n\r\n")
+ #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nAccept-Ranges: bytes\r\nContent-Length: 10\r\nContent-Range: bytes 71-80/81\r\n\r\ndy>")
(test-equal? "(get) single range - 10 bytes from past the end"
(output output-file tmp-file #"GET" #"text/html" '((76 . 86)))
- #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nAccept-Ranges: bytes\r\nContent-Length: 5\r\nContent-Range: bytes 76-80/81\r\n\r\nhtml>")
+ #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nAccept-Ranges: bytes\r\nContent-Length: 5\r\nContent-Range: bytes 76-80/81\r\n\r\nhtml>")
(test-equal? "(get) single range - 10 bytes from the middle"
(output output-file tmp-file #"GET" #"text/html" '((10 . 19)))
- #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: text/html\r\nAccept-Ranges: bytes\r\nContent-Length: 10\r\nContent-Range: bytes 10-19/81\r\n\r\nd>A")
+ #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: Racket\r\nContent-Type: text/html\r\nAccept-Ranges: bytes\r\nContent-Length: 10\r\nContent-Range: bytes 10-19/81\r\n\r\nd>A")
(test-equal? "(get) multiple ranges"
(output output-file/boundary tmp-file #"GET" #"text/html" '((10 . 19) (30 . 39) (50 . 59)) #"BOUNDARY")
- #"HTTP/1.1 206 Partial content\r\nDate: REDACTED GMT\r\nLast-Modified: REDACTED GMT\r\nServer: PLT Scheme\r\nContent-Type: multipart/byteranges; boundary=BOUNDARY\r\nAccept-Ranges: bytes\r\nContent-Length: 260\r\n\r\n--BOUNDARY\r\nContent-Type: text/html\r\nContent-Range: bytes 10-19/81\r\n\r\nd>A\r\n--BOUNDARY\r\nContent-Type: text/html\r\nContent-Range: bytes 30-39/81\r\n\r\ntle>A\r\n--BOUNDARY\r\nContent-Type: text/html\r\nContent-Range: bytes 30-39/81\r\n\r\ntle>A\r\n--BOUNDARY\r\nContent-Type: text/html\r\nContent-Range: bytes 30-39/81\r\n\r\ntle>A\r\n--BOUNDARY\r\nContent-Type: text/html\r\nContent-Range: bytes 30-39/81\r\n\r\ntle>url "http://test.com/servlets/example.ss"))
+(define url0 (string->url "http://test.com/servlets/example.rkt"))
(define web-tests
(test-suite
diff --git a/collects/tests/web-server/stuffers-test.ss b/collects/tests/web-server/stuffers-test.rkt
similarity index 98%
rename from collects/tests/web-server/stuffers-test.ss
rename to collects/tests/web-server/stuffers-test.rkt
index a082e25061..7baae5d620 100644
--- a/collects/tests/web-server/stuffers-test.ss
+++ b/collects/tests/web-server/stuffers-test.rkt
@@ -1,10 +1,10 @@
-#lang scheme
-(require schemeunit
+#lang racket
+(require rktunit
web-server/stuffers
web-server/private/servlet
web-server/http
net/url
- scheme/serialize)
+ racket/serialize)
(provide all-stuffers-tests)
(define (stuffer-test s)
@@ -127,6 +127,6 @@
(check-not-false (is-url-too-big? (make-bytes 3000 65)))))))))
#|
-(require (planet schematics/schemeunit:3/text-ui))
+(require (planet schematics/rktunit:3/text-ui))
(run-tests all-stuffers-tests)
|#
diff --git a/collects/tests/web-server/template/examples/blog-xexpr.ss b/collects/tests/web-server/template/examples/blog-xexpr.rkt
similarity index 99%
rename from collects/tests/web-server/template/examples/blog-xexpr.ss
rename to collects/tests/web-server/template/examples/blog-xexpr.rkt
index 807b7c4a62..eb299abd1c 100644
--- a/collects/tests/web-server/template/examples/blog-xexpr.ss
+++ b/collects/tests/web-server/template/examples/blog-xexpr.rkt
@@ -1,4 +1,4 @@
-#lang scheme
+#lang racket
(require web-server/servlet
xml
web-server/servlet-env)
diff --git a/collects/tests/web-server/template/examples/blog.ss b/collects/tests/web-server/template/examples/blog.rkt
similarity index 98%
rename from collects/tests/web-server/template/examples/blog.ss
rename to collects/tests/web-server/template/examples/blog.rkt
index 34e0c12a82..cbbe8fa654 100644
--- a/collects/tests/web-server/template/examples/blog.ss
+++ b/collects/tests/web-server/template/examples/blog.rkt
@@ -1,4 +1,4 @@
-#lang scheme
+#lang racket
(require web-server/templates
web-server/servlet
web-server/servlet-env)
diff --git a/collects/tests/web-server/template/examples/run.ss b/collects/tests/web-server/template/examples/run.rkt
similarity index 99%
rename from collects/tests/web-server/template/examples/run.ss
rename to collects/tests/web-server/template/examples/run.rkt
index ec85009b99..12de38c4b0 100644
--- a/collects/tests/web-server/template/examples/run.ss
+++ b/collects/tests/web-server/template/examples/run.rkt
@@ -1,4 +1,4 @@
-#lang scheme
+#lang racket
(require web-server/templates)
(include-template "static.html")
diff --git a/collects/tests/web-server/util.ss b/collects/tests/web-server/util.rkt
similarity index 97%
rename from collects/tests/web-server/util.ss
rename to collects/tests/web-server/util.rkt
index a91ba7e682..593ca99ec9 100644
--- a/collects/tests/web-server/util.ss
+++ b/collects/tests/web-server/util.rkt
@@ -1,5 +1,5 @@
-#lang scheme
-(require (for-syntax scheme/base)
+#lang racket
+(require (for-syntax racket/base)
web-server/private/connection-manager
web-server/http
web-server/private/web-server-structs
@@ -161,7 +161,7 @@
[(_ (module m-id . rest))
#'(let ([ns (make-base-empty-namespace)])
(parameterize ([current-namespace ns])
- (namespace-require 'scheme/base)
+ (namespace-require 'racket/base)
(namespace-require 'web-server/http)
(namespace-require 'web-server/lang/abort-resume)
(namespace-require 'mzlib/serialize)
@@ -178,7 +178,7 @@
(define (make-eval/mod-path pth)
(let ([ns (make-base-empty-namespace)])
(parameterize ([current-namespace ns])
- (namespace-require 'scheme/base)
+ (namespace-require 'racket/base)
(namespace-require 'web-server/http)
(namespace-require 'web-server/lang/abort-resume)
(namespace-require 'mzlib/serialize)
diff --git a/collects/tests/xml/info.ss b/collects/tests/xml/info.rkt
similarity index 100%
rename from collects/tests/xml/info.ss
rename to collects/tests/xml/info.rkt
diff --git a/collects/tests/xml/test-clark.ss b/collects/tests/xml/test-clark.rkt
similarity index 95%
rename from collects/tests/xml/test-clark.ss
rename to collects/tests/xml/test-clark.rkt
index 73046af197..1b94b46cac 100644
--- a/collects/tests/xml/test-clark.ss
+++ b/collects/tests/xml/test-clark.rkt
@@ -1,8 +1,8 @@
-#lang scheme
-(require schemeunit
- schemeunit/text-ui
+#lang racket
+(require rktunit
+ rktunit/text-ui
xml
- scheme/runtime-path)
+ racket/runtime-path)
(define (validate-xml? xml)
(error 'validate-xml? "Not implemented"))
diff --git a/collects/tests/xml/test.ss b/collects/tests/xml/test.rkt
similarity index 99%
rename from collects/tests/xml/test.ss
rename to collects/tests/xml/test.rkt
index 15edaf5db7..3862212969 100644
--- a/collects/tests/xml/test.ss
+++ b/collects/tests/xml/test.rkt
@@ -1,10 +1,10 @@
-#lang scheme
-(require schemeunit
- schemeunit/text-ui
+#lang racket
+(require rktunit
+ rktunit/text-ui
xml
xml/plist
mzlib/etc
- "to-list.ss")
+ "to-list.rkt")
;; test-bad-read-input : format-str str -> void
;; First argument is the input, second is the error message
diff --git a/collects/tests/xml/to-list.ss b/collects/tests/xml/to-list.rkt
similarity index 99%
rename from collects/tests/xml/to-list.ss
rename to collects/tests/xml/to-list.rkt
index 526cbfa8cc..e5715cb84a 100644
--- a/collects/tests/xml/to-list.ss
+++ b/collects/tests/xml/to-list.rkt
@@ -1,4 +1,4 @@
-#lang scheme
+#lang racket
(require xml)
(provide (all-defined-out))
diff --git a/collects/tests/xml/xml-snip-bug.rkt b/collects/tests/xml/xml-snip-bug.rkt
new file mode 100644
index 0000000000..bdcb9f9470
--- /dev/null
+++ b/collects/tests/xml/xml-snip-bug.rkt
@@ -0,0 +1,3943 @@
+#reader(lib"read.ss""wxme")WXME0108 ##
+#|
+ This file uses the PLT Scheme editor format.
+ Open this file in DrScheme version 4.2.5.12 or later to read it.
+
+ Most likely, it was created by saving a program in DrScheme,
+ and it probably contains a program with non-text elements
+ (such as images or comment boxes).
+
+ http://www.plt-scheme.org
+|#
+ 44 7 #"wxtext\0"
+3 1 6 #"wxtab\0"
+1 1 8 #"wxmedia\0"
+4 1 8 #"wximage\0"
+2 0 34 #"(lib \"syntax-browser.ss\" \"mrlib\")\0"
+1 0 16 #"drscheme:number\0"
+3 0 44 #"(lib \"number-snip.ss\" \"drscheme\" \"private\")\0"
+1 0 36 #"(lib \"comment-snip.ss\" \"framework\")\0"
+1 0 43 #"(lib \"collapsed-snipclass.ss\" \"framework\")\0"
+0 0 19 #"drscheme:sexp-snip\0"
+0 0 40 #"(lib \"image-core.ss\" \"2htdp\" \"private\")\0"
+1 0 36 #"(lib \"cache-image-snip.ss\" \"mrlib\")\0"
+1 0 33 #"(lib \"bullet-snip.ss\" \"browser\")\0"
+0 0 29 #"drscheme:bindings-snipclass%\0"
+1 0 25 #"(lib \"matrix.ss\" \"htdp\")\0"
+1 0 22 #"drscheme:lambda-snip%\0"
+1 0 8 #"gb:core\0"
+5 0 10 #"gb:canvas\0"
+5 0 17 #"gb:editor-canvas\0"
+5 0 10 #"gb:slider\0"
+5 0 9 #"gb:gauge\0"
+5 0 11 #"gb:listbox\0"
+5 0 12 #"gb:radiobox\0"
+5 0 10 #"gb:choice\0"
+5 0 8 #"gb:text\0"
+5 0 11 #"gb:message\0"
+5 0 10 #"gb:button\0"
+5 0 12 #"gb:checkbox\0"
+5 0 18 #"gb:vertical-panel\0"
+5 0 9 #"gb:panel\0"
+5 0 20 #"gb:horizontal-panel\0"
+5 0 33 #"(lib \"readable.ss\" \"guibuilder\")\0"
+1 0 56
+#"(lib \"hrule-snip.ss\" \"macro-debugger\" \"syntax-browser\")\0"
+1 0 45 #"(lib \"image-snipr.ss\" \"slideshow\" \"private\")\0"
+1 0 26 #"drscheme:pict-value-snip%\0"
+0 0 38 #"(lib \"pict-snipclass.ss\" \"slideshow\")\0"
+2 0 55 #"(lib \"vertical-separator-snip.ss\" \"stepper\" \"private\")\0"
+1 0 18 #"drscheme:xml-snip\0"
+1 0 31 #"(lib \"xml-snipclass.ss\" \"xml\")\0"
+1 0 21 #"drscheme:scheme-snip\0"
+2 0 34 #"(lib \"scheme-snipclass.ss\" \"xml\")\0"
+1 0 10 #"text-box%\0"
+1 0 32 #"(lib \"text-snipclass.ss\" \"xml\")\0"
+1 0 15 #"test-case-box%\0"
+2 0 1 6 #"wxloc\0"
+ 0 0 1277 0 1 #"\0"
+0 75 1 #"\0"
+0 12 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 0 9
+#"Standard\0"
+0 75 12 #"Courier New\0"
+0 12 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 2 1
+#"\0"
+0 -1 1 #"\0"
+1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 24
+#"framework:default-color\0"
+0 -1 1 #"\0"
+1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1
+#"\0"
+0 -1 1 #"\0"
+1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 150 0 150 0 0 0 -1 -1 2 15
+#"text:ports out\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 150 0 150 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 255 0 0 0 0 0 -1
+-1 2 15 #"text:ports err\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 175 0 0 0 -1 -1 2 17
+#"text:ports value\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 175 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 34 139 34 0 0 0 -1
+-1 2 27 #"Matching Parenthesis Style\0"
+0 -1 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 34 139 34 0 0 0 -1
+-1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 38 38 128 0
+0 0 -1 -1 2 37 #"framework:syntax-color:scheme:symbol\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 38 38 128 0
+0 0 -1 -1 2 38 #"framework:syntax-color:scheme:keyword\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 38 38 128 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 194 116 31 0
+0 0 -1 -1 2 38 #"framework:syntax-color:scheme:comment\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 194 116 31 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 41 128 38 0
+0 0 -1 -1 2 37 #"framework:syntax-color:scheme:string\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 41 128 38 0
+0 0 -1 -1 2 39 #"framework:syntax-color:scheme:constant\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 41 128 38 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 -1 -1 2 42 #"framework:syntax-color:scheme:parenthesis\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 2 36 #"framework:syntax-color:scheme:error\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 36 #"framework:syntax-color:scheme:other\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 81 112 203 0
+0 0 -1 -1 2 38 #"drscheme:check-syntax:lexically-bound\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 81 112 203 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 2 28
+#"drscheme:check-syntax:set!d\0"
+0 -1 1 #"\0"
+1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 2 1
+#"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 68 0 203 0 0
+0 -1 -1 2 31 #"drscheme:check-syntax:imported\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 68 0 203 0 0
+0 -1 -1 2 37 #"datalog:syntax-colors:scheme:keyword\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 38 38 128 0
+0 0 -1 -1 2 41 #"datalog:syntax-colors:scheme:parenthesis\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 2 36 #"datalog:syntax-colors:scheme:string\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 2 37 #"datalog:syntax-colors:scheme:comment\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 194 116 31 0
+0 0 -1 -1 2 35 #"datalog:syntax-colors:scheme:error\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 160 32 240 0
+0 0 -1 -1 2 40 #"datalog:syntax-colors:scheme:identifier\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 160 32 240 0
+0 0 -1 -1 2 37 #"datalog:syntax-colors:scheme:default\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 4 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 4 4 #"XML\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 8 1 #"\0"
+0 -1 1 #"\0"
+1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 8 24
+#"drscheme:text:ports err\0"
+0 -1 1 #"\0"
+1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 4 1
+#"\0"
+0 71 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 4 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 255 0 0 0 -1
+-1 4 1 #"\0"
+0 71 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 0 255 0 0 0 -1
+-1 4 1 #"\0"
+0 71 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1.0 1.0 1.0 0 100 0 0 0 0 -1
+-1 0 1 #"\0"
+0 -1 1 #"\0"
+1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 200 0 0 0 0 0 -1 -1 0 1
+#"\0"
+0 75 12 #"Courier New\0"
+0.0 12 90 -1 90 -1 3 -1 0 1 0 1 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 1 -1 4 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 255 255 0 -1 -1 0
+1 #"\0"
+0 75 1 #"\0"
+0.0 10 90 -1 90 -1 3 -1 0 1 0 1 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 1 -1 0 1 #"\0"
+0 75 15 #"Lucida Console\0"
+0.0 10 90 -1 90 -1 1 -1 0 1 0 1 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 1 -1 2 41 #"profj:syntax-colors:scheme:block-comment\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 194 116 31 0
+0 0 -1 -1 2 35 #"profj:syntax-colors:scheme:keyword\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 139 0 139 0
+0 0 -1 -1 2 37 #"profj:syntax-colors:scheme:prim-type\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 139 0 139 0
+0 0 -1 -1 2 38 #"profj:syntax-colors:scheme:identifier\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 38 38 128 0
+0 0 -1 -1 2 34 #"profj:syntax-colors:scheme:string\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 2 35 #"profj:syntax-colors:scheme:literal\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 2 35 #"profj:syntax-colors:scheme:comment\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 194 116 31 0
+0 0 -1 -1 2 33 #"profj:syntax-colors:scheme:error\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 2 35 #"profj:syntax-colors:scheme:default\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 37 #"profj:syntax-colors:scheme:uncovered\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 35 #"profj:syntax-colors:scheme:covered\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 139 0 139 0
+0 0 -1 -1 0 1 #"\0"
+0 75 7 #"Monaco\0"
+0.0 12 90 -1 90 -1 1 -1 0 1 0 1 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 1 -1 22 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 14 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 4 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 20 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 15 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 17 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 22 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 165 0 0
+0 0 -1 -1 14 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 165 0 0
+0 0 -1 -1 4 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 165 0 0
+0 0 -1 -1 15 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 165 0 0
+0 0 -1 -1 17 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 165 0 0
+0 0 -1 -1 20 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 165 0 0
+0 0 -1 -1 26 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 19 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 19 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 165 0 0
+0 0 -1 -1 22 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 14 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 4 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 19 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 17 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 15 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 20 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 26 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 65 105 225 0
+0 0 -1 -1 26 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 165 0 0
+0 0 -1 -1 24 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 24 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 165 0 0
+0 0 -1 -1 24 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 2 1 #"\0"
+0 71 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 71 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 100 0 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 90 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 38 38 128 0
+0 0 -1 -1 0 1 #"\0"
+0 75 23 #"Lucida Sans Typewriter\0"
+0.0 12 90 -1 90 -1 1 -1 0 1 0 1 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 1 -1 2 14 #"Html Standard\0"
+0 -1 1 #"\0"
+1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 4 1
+#"\0"
+0 71 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 148 0 211 0
+0 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 4 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 100 0 0 0
+0 -1 -1 2 40 #"framework:syntax-coloring:scheme:symbol\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 38 38 128 0
+0 0 -1 -1 2 41 #"framework:syntax-coloring:scheme:keyword\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 38 38 128 0
+0 0 -1 -1 2 41 #"framework:syntax-coloring:scheme:comment\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 194 116 31 0
+0 0 -1 -1 2 40 #"framework:syntax-coloring:scheme:string\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 41 128 38 0
+0 0 -1 -1 2 42 #"framework:syntax-coloring:scheme:constant\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 41 128 38 0
+0 0 -1 -1 2 45 #"framework:syntax-coloring:scheme:parenthesis\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 -1 -1 2 39 #"framework:syntax-coloring:scheme:error\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 2 39 #"framework:syntax-coloring:scheme:other\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 49 #"drscheme:check-syntax:lexically-bound-identifier\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 81 112 203 0
+0 0 -1 -1 2 42 #"drscheme:check-syntax:imported-identifier\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 68 0 203 0 0
+0 -1 -1 2 37 #"profj:syntax-coloring:scheme:keyword\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 39 #"profj:syntax-coloring:scheme:prim-type\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 139 0 139 0
+0 0 -1 -1 2 40 #"profj:syntax-coloring:scheme:identifier\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 38 38 128 0
+0 0 -1 -1 2 36 #"profj:syntax-coloring:scheme:string\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 2 37 #"profj:syntax-coloring:scheme:literal\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 2 37 #"profj:syntax-coloring:scheme:comment\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 194 116 31 0
+0 0 -1 -1 2 35 #"profj:syntax-coloring:scheme:error\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 2 37 #"profj:syntax-coloring:scheme:default\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 39 #"profj:syntax-coloring:scheme:uncovered\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 37 #"profj:syntax-coloring:scheme:covered\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 139 0 139 0
+0 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 255 255
+0 0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 128 106 255
+0 0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 119 255 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 47 208 28 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 65 209 60 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 203 91 55 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+0.0 15 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 70 1 #"\0"
+2.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 -2 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 -2 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 50 205 50 0
+0 0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.5 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 -1 1 #"\0"
+1.5 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.5 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 178 34 34 0
+0 0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 101 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 101 1 #"\0"
+0 -1 1 #"\0"
+2.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 70 1 #"\0"
+2.0 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+2.0 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.5 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 101 1 #"\0"
+0 -1 1 #"\0"
+1.5 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.5 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 153 0 0 0 0
+0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.2 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 -1 1 #"\0"
+1.2 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.2 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 101 1 #"\0"
+0 -1 1 #"\0"
+1.2 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 36 36 140 0
+0 0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+0.8 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 0 -1 101 1 #"\0"
+0 70 1 #"\0"
+0.6000000000000001 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0
+1.0 0 0 255 0 0 0 0 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+2.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 101 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 68 64 108 0
+0 0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 0 -1 2 36 #"honu:syntax-coloring:scheme:keyword\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 40 #"honu:syntax-coloring:scheme:parenthesis\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 -1 -1 2 35 #"honu:syntax-coloring:scheme:string\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 2 36 #"honu:syntax-coloring:scheme:literal\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 2 36 #"honu:syntax-coloring:scheme:comment\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 194 116 31 0
+0 0 -1 -1 2 34 #"honu:syntax-coloring:scheme:error\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 2 39 #"honu:syntax-coloring:scheme:identifier\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 38 38 128 0
+0 0 -1 -1 2 36 #"honu:syntax-coloring:scheme:default\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 70 1 #"\0"
+0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+0 -1 101 1 #"\0"
+0 70 1 #"\0"
+0.75 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 36 36 140 0
+0 0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.5 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+2.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 -2 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 -2 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 50 205 50 0
+0 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.5 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.5 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 178 34 34 0
+0 0 -1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 -1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+0.8 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 0 -1 2 1 #"\0"
+0 70 1 #"\0"
+0.6000000000000001 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0
+1.0 0 0 255 0 0 0 0 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 153 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 36 36 140 0
+0 0 -1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 4 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 0 1 #"\0"
+0 75 8 #"Courier\0"
+0.0 14 90 -1 90 -1 3 -1 0 1 0 1 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 1 -1 4 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 175 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 248 20 64 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 2 1 #"\0"
+0 71 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 100 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 2 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 2 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 2 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.5 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.5 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+2.0 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 2 1 #"\0"
+0 75 1 #"\0"
+2.0 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+0.75 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 94 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 200 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 80 80 248 0
+0 0 -1 -1 2 1 #"\0"
+0 71 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 80 80 248 0
+0 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 2 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 80 80 248 0
+0 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 2 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 80 80 248 0
+0 0 -1 -1 111 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 107 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 106 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 110 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 111 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 178 34 34 0
+0 0 -1 -1 106 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 178 34 34 0
+0 0 -1 -1 110 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 178 34 34 0
+0 0 -1 -1 111 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 106 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 108 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 107 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 110 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 248 20 64 0
+0 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.2000000476837158 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0
+1.0 0 0 0 0 0 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.2000000476837158 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0
+1.0 0 0 255 0 0 0 -1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 68 64 108 0
+0 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+0.800000011920929 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0
+1.0 0 0 255 0 0 0 0 -1 2 1 #"\0"
+0 70 1 #"\0"
+0.6000000238418579 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0
+1.0 0 0 255 0 0 0 0 -1 2 1 #"\0"
+0 70 1 #"\0"
+0.800000011920929 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0
+1.0 0 0 0 0 0 0 1 -1 2 1 #"\0"
+0 70 1 #"\0"
+0.800000011920929 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0
+1.0 0 0 0 0 0 0 1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 68 64 108 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 60 248 52 0
+0 0 -1 -1 2 1 #"\0"
+0 70 6 #"Arial\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 6 #"Arial\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 2 1 #"\0"
+0 70 6 #"Arial\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 2 1 #"\0"
+0 70 6 #"Arial\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 80 80 248 0
+0 0 -1 -1 2 1 #"\0"
+0 70 6 #"Arial\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 80 80 248 0
+0 0 -1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 153 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 75 1 #"\0"
+0.800000011920929 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0
+1.0 68 64 108 0 0 0 0 -1 2 1 #"\0"
+0 70 1 #"\0"
+0.800000011920929 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0
+1.0 0 0 0 0 0 0 0 -1 2 1 #"\0"
+0 75 1 #"\0"
+0.800000011920929 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0
+1.0 132 60 36 0 0 0 0 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 81 112 204 0
+0 0 -1 -1 2 47 #"drscheme:check-syntax:lexically-bound-variable\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 81 112 204 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 122 81 204 0
+0 0 -1 -1 2 40 #"drscheme:check-syntax:imported-variable\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 122 81 204 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 51 204 0 0
+0 -1 -1 2 45 #"drscheme:check-syntax:lexically-bound-syntax\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 51 204 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 68 0 204 0 0
+0 -1 -1 2 38 #"drscheme:check-syntax:imported-syntax\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 68 0 204 0 0
+0 -1 -1 0 1 #"\0"
+0 75 8 #"Courier\0"
+0.0 14 90 -1 90 -1 1 -1 0 1 0 1 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 37 #"syntax-coloring:Scheme Color:keyword\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 2 36 #"syntax-coloring:Scheme Color:string\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 2 37 #"syntax-coloring:Scheme Color:literal\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 105 105 105
+0 0 0 -1 -1 2 37 #"syntax-coloring:Scheme Color:comment\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 105 105 105
+0 0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 248 20 64 0
+0 0 -1 -1 2 35 #"syntax-coloring:Scheme Color:error\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 248 20 64 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 36 36 140 0
+0 0 -1 -1 2 40 #"syntax-coloring:Scheme Color:identifier\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 36 36 140 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 -1 -1 2 35 #"syntax-coloring:Scheme Color:other\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 40 25 15 0 0
+0 -1 -1 2 30 #"drscheme:check-syntax:keyword\0"
+0 -1 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 40 25 15 0 0
+0 -1 -1 2 39 #"drscheme:check-syntax:unbound-variable\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 248 20 64 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 36 36 140 0
+0 0 -1 -1 2 37 #"drscheme:check-syntax:bound-variable\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 36 36 140 0
+0 0 -1 -1 2 32 #"drscheme:check-syntax:primitive\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 36 36 140 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 51 135 39 0
+0 0 -1 -1 2 31 #"drscheme:check-syntax:constant\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 51 135 39 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 165 0 0
+0 0 -1 -1 2 32 #"drscheme:check-syntax:tail-call\0"
+0 -1 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 165 0 0
+0 0 -1 -1 2 27 #"drscheme:check-syntax:base\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 -1 -1 2 29 #"syntax-coloring:Java:keyword\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 100 0 0 0
+0 -1 -1 2 28 #"syntax-coloring:Java:string\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 100 0 0 0
+0 -1 -1 2 29 #"syntax-coloring:Java:literal\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 100 0 0 0
+0 -1 -1 2 29 #"syntax-coloring:Java:comment\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 105 105 105
+0 0 0 -1 -1 2 27 #"syntax-coloring:Java:error\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 248 20 64 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 139 0 0
+0 -1 -1 2 32 #"syntax-coloring:Java:identifier\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 139 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 169 169 169
+0 0 0 -1 -1 2 29 #"syntax-coloring:Java:default\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 169 169 169
+0 0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 40 25 15 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 165 0 0
+0 0 -1 -1 0 1 #"\0"
+0 75 1 #"\0"
+0.0 12 90 -1 90 -1 3 -1 0 1 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 1 -1 0 1 #"\0"
+0 75 8 #"Courier\0"
+0.0 12 90 -1 90 -1 1 -1 0 1 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 1 -1 0 1 #"\0"
+0 75 12 #"Courier New\0"
+0.0 12 90 90 90 90 3 3 0 1 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255 255
+255 1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0 0
+0 1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 40 25 15 0 0 0
+1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 248 20 64 0 0
+0 1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 36 36 140 0 0
+0 1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 51 135 39 0 0
+0 1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0 0
+0 1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 0 1 #"\0"
+0 75 8 #"Courier\0"
+0.0 13 90 -1 90 -1 1 -1 0 1 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 150 0 150 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 175 0 0
+0 -1 -1 0 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 0 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 90 90 3 3 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0 0
+1 1 0 13 #"h-link-style\0"
+0 70 1 #"\0"
+1.0 0 90 90 90 90 3 3 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0 0
+1 1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 2 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 2 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 80 80 248 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 2 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 80 80 248 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+1 330 335 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 335 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 248 20 64 0
+0 0 -1 -1 338 1 #"\0"
+1 330 2 1 #"\0"
+0 -1 1 #"\0"
+2.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 340 1 #"\0"
+1 330 341 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 341 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.5 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 344 1 #"\0"
+1 330 2 1 #"\0"
+0 -1 1 #"\0"
+0.75 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 335 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 0 1 #"\0"
+0 75 1 #"\0"
+0.0 12 90 90 90 90 3 3 0 1 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255 255
+255 1 1 2 1 #"\0"
+0 71 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 90 90 3 3 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 80 80 248 0 0
+0 1 1 2 1 #"\0"
+0 71 1 #"\0"
+1.0 0 90 90 90 90 3 3 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 80 80 248 0 0
+0 1 1 2 1 #"\0"
+0 71 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 100 0 0 0 0
+1 1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 100 0 0 0 0
+1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0 0
+1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 128 0 0 0
+1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 165 42 42 0 0
+0 1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 150 0 150 0 0
+0 1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 94 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0 0
+1 1 0 1 #"\0"
+0 75 7 #"Monaco\0"
+0.0 12 90 90 90 90 3 3 0 1 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255 255
+255 1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 0 1 #"\0"
+0 70 1 #"\0"
+0.0 12 90 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 2 1 #"\0"
+0 70 1 #"\0"
+2.0 0 92 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 0 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 363 1 #"\0"
+1 330 0 1 #"\0"
+0 70 1 #"\0"
+1.0 -2 90 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 365 1 #"\0"
+1 330 364 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 50 205 50 0 0
+0 1 1 0 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 93 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 93 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 248 20 64 0 0
+0 1 1 369 1 #"\0"
+1 330 362 1 #"\0"
+1 330 371 1 #"\0"
+0 75 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 371 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 93 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 335 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 93 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0 0
+0 1 1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 36 36 140 0 0
+0 1 1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 153 0 0 0 0 0
+1 1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 2 1 #"\0"
+0 70 1 #"\0"
+1.5 0 92 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 382 1 #"\0"
+1 330 335 1 #"\0"
+0 70 1 #"\0"
+0.800000011920929 0 90 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0
+0 0 0 0 0 0 0 1 335 1 #"\0"
+0 70 1 #"\0"
+0.6000000238418579 0 90 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0
+0 0 0 0 0 0 0 1 2 1 #"\0"
+0 70 1 #"\0"
+1.2000000476837158 0 92 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0
+0 0 0 0 0 0 1 1 386 1 #"\0"
+1 330 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0 0
+0 1 1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 68 64 108 0 0
+0 1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 -2 90 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 0 1 #"\0"
+0 75 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0 0
+0 1 1 0 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 153 0 0 0 0 0
+1 1 0 1 #"\0"
+0 75 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 36 36 140 0 0
+0 1 1 0 1 #"\0"
+0 70 1 #"\0"
+1.2000000476837158 0 92 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0
+0 0 0 0 0 0 1 1 394 1 #"\0"
+1 330 0 1 #"\0"
+1 330 0 1 #"\0"
+0 70 1 #"\0"
+1.5 0 92 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 397 1 #"\0"
+1 330 0 1 #"\0"
+0 75 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 396 1 #"\0"
+0 70 1 #"\0"
+0.800000011920929 0 90 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0
+0 0 0 0 0 0 0 1 396 1 #"\0"
+0 70 1 #"\0"
+0.6000000238418579 0 90 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0
+0 0 0 0 0 0 0 1 396 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 93 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 0 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 93 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 248 20 64 0 0
+0 1 1 403 1 #"\0"
+1 330 335 1 #"\0"
+0 75 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0 0
+0 1 1 399 1 #"\0"
+1 330 406 1 #"\0"
+0 75 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0 0
+0 1 1 396 1 #"\0"
+0 75 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0 0
+0 1 1 0 1 #"\0"
+0 75 7 #"Monaco\0"
+0.0 10 90 90 90 90 3 3 0 1 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255 255
+255 1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 175 0 0 0
+1 1 0 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 200 0 0 0 0 0
+1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 60 248 52 0 0
+0 1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 -1 90 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 94 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 248 20 64 0 0
+0 1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 90 90 90 3 3 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255 255
+0 1 1 43 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0 1
+1 43 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 0 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 178 34 34
+255 255 255 -1 -1 0 1 #"\0"
+0 75 8 #"Courier\0"
+0.0 14 90 -1 90 -1 1 -1 0 1 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 165 0 0 0
+0 1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 -3 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 3 0 153 0 0 0
+1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 -3 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 102 102 102 0
+0 0 1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 80 80 248 0 0
+0 1 1 0 1 #"\0"
+0 75 12 #"Courier New\0"
+0.0 12 90 -1 90 -1 3 -1 0 1 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 90 90 90 90 3 3 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 80 80 248 0 0
+0 1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 160 32 240 0 0
+0 1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 90 90 90 3 3 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 248 20 64 0 0
+0 1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 90 90 90 90 3 3 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 80 80 248 0 0
+0 1 1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 -1 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.5 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 153 0 0 0 0
+0 -1 -1 0 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 1 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 -1 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 80 80 248 0
+0 0 -1 -1 2 1 #"\0"
+0 70 6 #"Arial\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 60 248 52 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 0 -1 -1 111 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 106 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 109 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 111 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 107 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 106 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 110 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 0 1 #"\0"
+0 75 8 #"Courier\0"
+0.0 13 90 -1 90 -1 1 -1 0 1 0 1 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 1 -1 2 1 #"\0"
+0 75 1 #"\0"
+0.800000011920929 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0
+1.0 36 36 140 0 0 0 1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 69 0 255
+69 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 99 71
+255 99 71 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 139 0 0 139
+0 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 248 20 64
+248 20 64 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 178 34 34
+178 34 34 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 220 20 60
+220 20 60 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 20 147
+255 20 147 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 176 48 96
+176 48 96 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 205 92 92
+205 92 92 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 199 21 133
+199 21 133 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 208 32 144
+208 32 144 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 240 128 128
+240 128 128 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 105 180
+255 105 180 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 219 112 147
+219 112 147 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 182 193
+255 182 193 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 188 143 143
+188 143 143 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 192 203
+255 192 203 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 218 112 214
+218 112 214 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 240 245
+255 240 245 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 250 250
+255 250 250 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 210 105 30
+210 105 30 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 139 69 19
+139 69 19 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 132 60 36
+132 60 36 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 140 0
+255 140 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 127 80
+255 127 80 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 160 82 45
+160 82 45 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 165 0
+255 165 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 250 128 114
+250 128 114 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 205 133 63
+205 133 63 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 184 134 11
+184 134 11 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 218 165 32
+218 165 32 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 244 164 96
+244 164 96 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 160 122
+255 160 122 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 233 150 122
+233 150 122 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 215 0
+255 215 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 255 0
+255 255 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 128 128 0
+128 128 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 222 184 135
+222 184 135 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 210 180 140
+210 180 140 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 222 173
+255 222 173 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 218 185
+255 218 185 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 240 230 140
+240 230 140 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 189 183 107
+189 183 107 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 228 181
+255 228 181 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 245 222 179
+245 222 179 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 228 196
+255 228 196 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 238 232 170
+238 232 170 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 235 205
+255 235 205 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 234 234 173
+234 234 173 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 239 213
+255 239 213 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 228 225
+255 228 225 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 250 205
+255 250 205 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 250 235 215
+250 235 215 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 248 220
+255 248 220 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 250 250 210
+250 250 210 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 253 245 230
+253 245 230 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 250 240 230
+250 240 230 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 255 224
+255 255 224 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 245 238
+255 245 238 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 245 245 220
+245 245 220 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 250 240
+255 250 240 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 255 240
+255 255 240 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 60 248 52 60
+248 52 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 124 252 0
+124 252 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 127 255 0
+127 255 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 173 255 47
+173 255 47 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 154 205 50
+154 205 50 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 107 142 35
+107 142 35 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 85 107 47 85
+107 47 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 143 188 139
+143 188 139 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 255 0 0
+255 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 100 0 0
+100 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 50 205 50 50
+205 50 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 34 139 34 34
+139 34 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 255 127 0
+255 127 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 250 154 0
+250 154 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 46 139 87 46
+139 87 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 60 179 113
+60 179 113 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 112 216 144
+112 216 144 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 144 238 144
+144 238 144 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 152 251 152
+152 251 152 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 102 205 170
+102 205 170 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 64 224 208
+64 224 208 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 32 178 170
+32 178 170 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 72 209 204
+72 209 204 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 240 255 240
+240 255 240 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 245 255 250
+245 255 250 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 65 105 225
+65 105 225 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 30 144 255
+30 144 255 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 191 255 0
+191 255 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 100 149 237
+100 149 237 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 70 130 180
+70 130 180 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 135 206 250
+135 206 250 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 206 209 0
+206 209 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 255 255 0
+255 255 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 139 139 0
+139 139 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 128 128 0
+128 128 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 135 206 235
+135 206 235 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 95 158 160
+95 158 160 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 47 79 79 47
+79 79 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 119 136 153
+119 136 153 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 112 128 144
+112 128 144 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 176 196 222
+176 196 222 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 173 216 230
+173 216 230 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 176 224 230
+176 224 230 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 175 238 238
+175 238 238 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 224 255 255
+224 255 255 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 240 248 255
+240 248 255 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 240 255 255
+240 255 255 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 205 0 0
+205 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 139 0 0
+139 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 25 25 112 25
+25 112 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 36 36 140 36
+36 140 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 80 80 248 80
+80 248 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 75 0 130 75
+0 130 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 138 43 226
+138 43 226 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 123 104 238
+123 104 238 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 106 90 205
+106 90 205 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 160 32 240
+160 32 240 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 72 61 139 72
+61 139 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 148 0 211
+148 0 211 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 153 50 204
+153 50 204 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 147 112 219
+147 112 219 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 186 85 211
+186 85 211 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 0 255
+255 0 255 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 139 0 139
+139 0 139 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 238 130 238
+238 130 238 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 221 160 221
+221 160 221 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 230 230 250
+230 230 250 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 216 191 216
+216 191 216 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 248 248 255
+248 248 255 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 255 255
+255 255 255 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 245 245 245
+245 245 245 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 220 220 220
+220 220 220 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 211 211 211
+211 211 211 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 192 192 192
+192 192 192 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 190 190 190
+190 190 190 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 169 169 169
+169 169 169 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 105 105 105
+105 105 105 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 36 36 140 0
+0 0 -1 -1 0 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+0 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 36 36 140 0
+0 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 248 20 64 0
+0 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 -2 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 4 1 #"\0"
+0 70 1 #"\0"
+0.0 12 90 -1 90 -1 3 -1 0 1 0 1 0 0 0.0 0.0 0.0 0.0 0.0 0.0 150 0 150
+255 255 255 1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 255 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 16 #"Times New Roman\0"
+1.0 1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Courier New\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Courier New\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Courier New\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 0 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+2 -1 0 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+2 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 1.0 1.0 1.0 0.0 0.0 0.0 0 0 0 248
+248 250 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 1.0 1.0 1.0 0.0 0.0 0.0 0 0 0 248
+248 250 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 3 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 102 153
+248 248 250 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 255 248
+248 250 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 3 -1 -1 -1 -1 -1 -1 1 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 255 248
+248 250 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 4 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 178 34 34 0
+0 0 -1 -1 4 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 4 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 178 34 34
+255 255 255 -1 -1 107 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 178 34 34 0
+0 0 -1 -1 2 1 #"\0"
+0 75 1 #"\0"
+0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 0 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.2 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.2 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 109 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 112 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 109 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 2 1 #"\0"
+0 70 7 #"Geneva\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Geneva\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Geneva\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Monaco\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Monaco\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Monaco\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 6 #"Times\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 6 #"Times\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 6 #"Times\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Helvetica\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Helvetica\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Helvetica\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"Courier\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"Courier\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"Courier\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Symbol\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Symbol\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Symbol\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #".Keyboard\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #".Keyboard\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #".Keyboard\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #".LastResort\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #".LastResort\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #".LastResort\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 14 #"Lucida Grande\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 14 #"Lucida Grande\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 14 #"Lucida Grande\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 14 #"Zapf Dingbats\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 14 #"Zapf Dingbats\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 14 #"Zapf Dingbats\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 21 #".TimesLTMM_1_Wt_1_Wd\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 21 #".TimesLTMM_1_Wt_1_Wd\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 21 #".TimesLTMM_1_Wt_1_Wd\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 26 #".HelveLTMM_170_Wt_1200_Wd\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 26 #".HelveLTMM_170_Wt_1200_Wd\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 26 #".HelveLTMM_170_Wt_1200_Wd\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 6 #"Osaka\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 6 #"Osaka\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 6 #"Osaka\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 15 #"Osaka\342\210\222\347\255\211\345\271\205\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 15 #"Osaka\342\210\222\347\255\211\345\271\205\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 15 #"Osaka\342\210\222\347\255\211\345\271\205\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 22 #"Apple LiGothic Medium\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 22 #"Apple LiGothic Medium\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 22 #"Apple LiGothic Medium\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"AppleGothic\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"AppleGothic\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"AppleGothic\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Monaco CY\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Monaco CY\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Monaco CY\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 17 #"Lucida Grande CY\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 17 #"Lucida Grande CY\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 17 #"Lucida Grande CY\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 9 #"Times CY\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 9 #"Times CY\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 9 #"Times CY\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 4 #"Hei\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 4 #"Hei\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 4 #"Hei\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Geneva CE\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Geneva CE\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Geneva CE\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Monaco CE\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Monaco CE\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Monaco CE\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 9 #"Times CE\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 9 #"Times CE\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 9 #"Times CE\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"Helvetica CE\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"Helvetica CE\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"Helvetica CE\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"Courier CE\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"Courier CE\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"Courier CE\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 26
+(
+ #"\343\203\222\343\203\251\343\202\256\343\203\216\350"
+ #"\247\222\343\202\264 Pro W6\0"
+) 0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 26
+(
+ #"\343\203\222\343\203\251\343\202\256\343\203\216\350"
+ #"\247\222\343\202\264 Pro W6\0"
+) 0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 26
+(
+ #"\343\203\222\343\203\251\343\202\256\343\203\216\350"
+ #"\247\222\343\202\264 Pro W6\0"
+) 0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 26
+(
+ #"\343\203\222\343\203\251\343\202\256\343\203\216\350"
+ #"\247\222\343\202\264 Pro W3\0"
+) 0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 26
+(
+ #"\343\203\222\343\203\251\343\202\256\343\203\216\350"
+ #"\247\222\343\202\264 Pro W3\0"
+) 0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 26
+(
+ #"\343\203\222\343\203\251\343\202\256\343\203\216\350"
+ #"\247\222\343\202\264 Pro W3\0"
+) 0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 26
+(
+ #"\343\203\222\343\203\251\343\202\256\343\203\216\344"
+ #"\270\270\343\202\264 Pro W4\0"
+) 0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 26
+(
+ #"\343\203\222\343\203\251\343\202\256\343\203\216\344"
+ #"\270\270\343\202\264 Pro W4\0"
+) 0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 26
+(
+ #"\343\203\222\343\203\251\343\202\256\343\203\216\344"
+ #"\270\270\343\202\264 Pro W4\0"
+) 0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 26
+(
+ #"\343\203\222\343\203\251\343\202\256\343\203\216\346"
+ #"\230\216\346\234\235 Pro W6\0"
+) 0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 26
+(
+ #"\343\203\222\343\203\251\343\202\256\343\203\216\346"
+ #"\230\216\346\234\235 Pro W6\0"
+) 0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 26
+(
+ #"\343\203\222\343\203\251\343\202\256\343\203\216\346"
+ #"\230\216\346\234\235 Pro W6\0"
+) 0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 26
+(
+ #"\343\203\222\343\203\251\343\202\256\343\203\216\346"
+ #"\230\216\346\234\235 Pro W3\0"
+) 0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 26
+(
+ #"\343\203\222\343\203\251\343\202\256\343\203\216\346"
+ #"\230\216\346\234\235 Pro W3\0"
+) 0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 26
+(
+ #"\343\203\222\343\203\251\343\202\256\343\203\216\346"
+ #"\230\216\346\234\235 Pro W3\0"
+) 0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 13 #".Aqua \343\201\213\343\201\252\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #".Aqua \343\201\213\343\201\252\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #".Aqua \343\201\213\343\201\252\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"\345\215\216\346\226\207\347\273\206\351\273\221\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"\345\215\216\346\226\207\347\273\206\351\273\221\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"\345\215\216\346\226\207\347\273\206\351\273\221\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 26
+(
+ #"\343\203\222\343\203\251\343\202\256\343\203\216\350"
+ #"\247\222\343\202\264 Std W8\0"
+) 0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 26
+(
+ #"\343\203\222\343\203\251\343\202\256\343\203\216\350"
+ #"\247\222\343\202\264 Std W8\0"
+) 0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 26
+(
+ #"\343\203\222\343\203\251\343\202\256\343\203\216\350"
+ #"\247\222\343\202\264 Std W8\0"
+) 0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 15 #"Geeza Pro Bold\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 15 #"Geeza Pro Bold\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 15 #"Geeza Pro Bold\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 17 #"Lucida Grande CE\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 17 #"Lucida Grande CE\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 17 #"Lucida Grande CE\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"\345\204\267\351\273\221 Pro\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"\345\204\267\351\273\221 Pro\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"\345\204\267\351\273\221 Pro\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Geeza Pro\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Geeza Pro\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Geeza Pro\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 26
+(
+ #".Aqua \343\201\213\343\201\252 "
+ #"\343\203\234\343\203\274\343\203\253\343\203\211\0"
+) 0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 26
+(
+ #".Aqua \343\201\213\343\201\252 "
+ #"\343\203\234\343\203\274\343\203\253\343\203\211\0"
+) 0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 26
+(
+ #".Aqua \343\201\213\343\201\252 "
+ #"\343\203\234\343\203\274\343\203\253\343\203\211\0"
+) 0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 70 13 #"\345\215\216\346\226\207\351\273\221\344\275\223\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"\345\215\216\346\226\207\351\273\221\344\275\223\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"\345\215\216\346\226\207\351\273\221\344\275\223\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"Zapfino\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"Zapfino\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"Zapfino\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"Trebuchet MS\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"Trebuchet MS\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"Trebuchet MS\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"Arial Narrow\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"Arial Narrow\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"Arial Narrow\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 6 #"Arial\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 6 #"Arial\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 6 #"Arial\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Courier New\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Courier New\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Courier New\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 16 #"Times New Roman\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 16 #"Times New Roman\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 16 #"Times New Roman\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"Hoefler Text\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"Hoefler Text\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"Hoefler Text\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 23 #"Hoefler Text Ornaments\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 23 #"Hoefler Text Ornaments\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 23 #"Hoefler Text Ornaments\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Marker Felt\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Marker Felt\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Marker Felt\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Impact\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Impact\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Impact\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 5 #"Skia\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 5 #"Skia\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 5 #"Skia\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Copperplate\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Copperplate\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Copperplate\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 15 #"Apple Chancery\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 15 #"Apple Chancery\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 15 #"Apple Chancery\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 18 #"Copperplate Light\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 18 #"Copperplate Light\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 18 #"Copperplate Light\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Baskerville\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Baskerville\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Baskerville\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 21 #"Baskerville Semibold\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 21 #"Baskerville Semibold\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 21 #"Baskerville Semibold\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"Big Caslon\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"Big Caslon\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"Big Caslon\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 22 #"Arial Rounded MT Bold\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 22 #"Arial Rounded MT Bold\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 22 #"Arial Rounded MT Bold\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 16 #"Brush Script MT\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 16 #"Brush Script MT\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 16 #"Brush Script MT\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 20 #"American Typewriter\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 20 #"American Typewriter\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 20 #"American Typewriter\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 30 #"American Typewriter Condensed\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 30 #"American Typewriter Condensed\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 30 #"American Typewriter Condensed\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 26 #"American Typewriter Light\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 26 #"American Typewriter Light\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 26 #"American Typewriter Light\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 36 #"American Typewriter Condensed Light\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 36 #"American Typewriter Condensed Light\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 36 #"American Typewriter Condensed Light\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Futura\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Futura\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Futura\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 17 #"Futura Condensed\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 17 #"Futura Condensed\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 17 #"Futura Condensed\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 18 #"Optima ExtraBlack\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 18 #"Optima ExtraBlack\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 18 #"Optima ExtraBlack\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"Herculanum\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"Herculanum\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"Herculanum\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Gill Sans\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Gill Sans\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Gill Sans\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 16 #"Gill Sans Light\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 16 #"Gill Sans Light\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 16 #"Gill Sans Light\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 14 #"Comic Sans MS\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 14 #"Comic Sans MS\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 14 #"Comic Sans MS\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 15 #"Helvetica Neue\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 15 #"Helvetica Neue\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 15 #"Helvetica Neue\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 30 #"Helvetica Neue Bold Condensed\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 30 #"Helvetica Neue Bold Condensed\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 30 #"Helvetica Neue Bold Condensed\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 26 #"Helvetica Neue UltraLight\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 26 #"Helvetica Neue UltraLight\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 26 #"Helvetica Neue UltraLight\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 21 #"Helvetica Neue Light\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 21 #"Helvetica Neue Light\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 21 #"Helvetica Neue Light\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 31 #"Helvetica Neue Black Condensed\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 31 #"Helvetica Neue Black Condensed\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 31 #"Helvetica Neue Black Condensed\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"Papyrus\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"Papyrus\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"Papyrus\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Optima\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Optima\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Optima\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Andale Mono\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Andale Mono\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Andale Mono\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"Verdana\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"Verdana\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"Verdana\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 6 #"Didot\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 6 #"Didot\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 6 #"Didot\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Arial Black\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Arial Black\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Arial Black\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"Georgia\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"Georgia\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"Georgia\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 9 #"Webdings\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 9 #"Webdings\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 9 #"Webdings\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Cochin\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Cochin\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 7 #"Cochin\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"BiauKai\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"BiauKai\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"BiauKai\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 19 #"Apple LiSung Light\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 19 #"Apple LiSung Light\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 19 #"Apple LiSung Light\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"AppleMyungjo\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"AppleMyungjo\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"AppleMyungjo\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"#\352\266\201\354\204\234\354\262\264\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"#\352\266\201\354\204\234\354\262\264\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"#\352\266\201\354\204\234\354\262\264\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 15 #"#\355\227\244\353\223\234\353\235\274\354\235\270A\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 15 #"#\355\227\244\353\223\234\353\235\274\354\235\270A\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 15 #"#\355\227\244\353\223\234\353\235\274\354\235\270A\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"#\355\225\204\352\270\260\354\262\264\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"#\355\225\204\352\270\260\354\262\264\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"#\355\225\204\352\270\260\354\262\264\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"#PC\353\252\205\354\241\260\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"#PC\353\252\205\354\241\260\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"#PC\353\252\205\354\241\260\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Geneva CY\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Geneva CY\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Geneva CY\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Charcoal CY\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Charcoal CY\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 12 #"Charcoal CY\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"Helvetica CY\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"Helvetica CY\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"Helvetica CY\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 4 #"Kai\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 4 #"Kai\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 4 #"Kai\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"\345\215\216\346\226\207\345\256\213\344\275\223\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"\345\215\216\346\226\207\345\256\213\344\275\223\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"\345\215\216\346\226\207\345\256\213\344\275\223\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"Chalkboard\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"Chalkboard\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"Chalkboard\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 21 #"Euphemia UCAS Italic\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 21 #"Euphemia UCAS Italic\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 21 #"Euphemia UCAS Italic\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"\345\204\267\345\256\213 Pro\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"\345\204\267\345\256\213 Pro\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 11 #"\345\204\267\345\256\213 Pro\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 9 #"Ayuthaya\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 9 #"Ayuthaya\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 9 #"Ayuthaya\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 9 #"Thonburi\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 9 #"Thonburi\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 9 #"Thonburi\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"\345\215\216\346\226\207\346\245\267\344\275\223\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"\345\215\216\346\226\207\346\245\267\344\275\223\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"\345\215\216\346\226\207\346\245\267\344\275\223\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 19 #"Euphemia UCAS Bold\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 19 #"Euphemia UCAS Bold\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 19 #"Euphemia UCAS Bold\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"InaiMathi\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"InaiMathi\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"InaiMathi\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 14 #"Euphemia UCAS\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 14 #"Euphemia UCAS\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 14 #"Euphemia UCAS\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 16 #"Chalkboard Bold\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 16 #"Chalkboard Bold\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 16 #"Chalkboard Bold\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 6 #"Silom\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 6 #"Silom\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 6 #"Silom\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"\345\215\216\346\226\207\344\273\277\345\256\213\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"\345\215\216\346\226\207\344\273\277\345\256\213\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 13 #"\345\215\216\346\226\207\344\273\277\345\256\213\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 15 #"GB18030 Bitmap\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 15 #"GB18030 Bitmap\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 15 #"GB18030 Bitmap\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Krungthep\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Krungthep\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 10 #"Krungthep\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 6 #"Sathu\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 6 #"Sathu\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 6 #"Sathu\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 21 #"Plantagenet Cherokee\0"
+0.0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 21 #"Plantagenet Cherokee\0"
+0.0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 21 #"Plantagenet Cherokee\0"
+0.0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 75 1 #"\0"
+0.8 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+1 -1 2 1 #"\0"
+0 70 1 #"\0"
+0.8 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+1 -1 2 1 #"\0"
+0 70 1 #"\0"
+0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+1 -1 2 1 #"\0"
+0 75 1 #"\0"
+0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+1 -1 2 1 #"\0"
+0 70 1 #"\0"
+0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+0 -1 2 1 #"\0"
+0 75 1 #"\0"
+0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+0 -1 0 1 #"\0"
+0 70 1 #"\0"
+0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+0 -1 0 1 #"\0"
+0 75 1 #"\0"
+0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+0 -1 0 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+2 -1 0 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+2 -1 0 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 2 -1 0 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+2 -1 0 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+2 -1 0 1 #"\0"
+0 75 1 #"\0"
+0.8 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+1 -1 0 1 #"\0"
+0 70 1 #"\0"
+0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+1 -1 0 1 #"\0"
+0 70 1 #"\0"
+0.8 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+0 -1 0 1 #"\0"
+0 70 1 #"\0"
+0.6400000000000001 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0
+1.0 0 0 0 0 0 0 1 -1 0 1 #"\0"
+0 75 1 #"\0"
+0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+1 -1 0 1 #"\0"
+0 70 1 #"\0"
+0.8 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+1 -1 0 1 #"\0"
+0 70 1 #"\0"
+1.2 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+2 -1 0 1 #"\0"
+0 70 1 #"\0"
+1.2 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 2 -1 0 1 #"\0"
+0 70 1 #"\0"
+1.5 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+2 -1 0 1 #"\0"
+0 70 1 #"\0"
+1.5 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 2 -1 0 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+2 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.5 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 112 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 108 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 108 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 178 34 34 0
+0 0 -1 -1 112 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 178 34 34 0
+0 0 -1 -1 0 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 94 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 75 1 #"\0"
+0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 36 36 140 0
+0 0 0 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 2 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 108 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 178 34 34
+255 255 255 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 106 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 178 34 34
+255 255 255 -1 -1 0 1 #"\0"
+0 75 12 #"Courier New\0"
+0.0 10 90 -1 90 -1 3 -1 0 1 0 1 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 1 -1 112 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 178 34 34
+255 255 255 -1 -1 109 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 178 34 34 0
+0 0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 153 0 0 0 0
+0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 -1 -1 0 1 #"\0"
+0 75 12 #"Courier New\0"
+0.0 7 90 -1 90 -1 3 -1 0 1 0 1 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255 255
+255 1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 160 0 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 92 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 160 0 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 92 -1 90 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 90 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 90 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 160 0 0 0
+0 -1 -1 101 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+2 -1 101 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.5 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 34 139 34 0
+0 0 -1 -1 109 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 178 34 34
+255 255 255 -1 -1 110 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 178 34 34
+255 255 255 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+1 -1 101 1 #"\0"
+0 70 1 #"\0"
+0.8 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 68 64 108 0
+0 0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 36 36 140 0
+0 0 1 -1 101 1 #"\0"
+0 75 1 #"\0"
+0.8 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 36 36 140 0
+0 0 1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+2 -1 4 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 255 0 0 0
+0 -1 -1 0 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 255 0 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 2 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 -1 1 #"\0"
+1.0 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 -1 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 4 1 #"\0"
+0 71 1 #"\0"
+1.0 0 -1 -1 94 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 101 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+2.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.2 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 75 1 #"\0"
+0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+1 -1 101 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 75 1 #"\0"
+0.8 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 110 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 90 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 64 128 0 0
+0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 255 0 0 0
+0 -1 -1 0 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 255 0 0 0
+0 2 -1 2 1 #"\0"
+0 70 6 #"Arial\0"
+0.75 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 2 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 2 1 #"\0"
+0 75 1 #"\0"
+0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 36 36 140 0
+0 0 1 -1 2 1 #"\0"
+0 75 1 #"\0"
+0.8 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 36 36 140 0
+0 0 1 -1 19 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 75 1 #"\0"
+1.0 0 92 -1 93 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 69 0 255
+69 0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 99 71
+255 99 71 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 139 0 0 139
+0 0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 0 0 255
+0 0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 178 34 34
+178 34 34 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 220 20 60
+220 20 60 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 20 147
+255 20 147 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 176 48 96
+176 48 96 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 205 92 92
+205 92 92 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 199 21 133
+199 21 133 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 208 32 144
+208 32 144 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 240 128 128
+240 128 128 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 105 180
+255 105 180 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 219 112 147
+219 112 147 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 182 193
+255 182 193 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 188 143 143
+188 143 143 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 192 203
+255 192 203 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 218 112 214
+218 112 214 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 240 245
+255 240 245 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 250 250
+255 250 250 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 210 105 30
+210 105 30 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 139 69 19
+139 69 19 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 132 60 36
+132 60 36 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 140 0
+255 140 0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 127 80
+255 127 80 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 160 82 45
+160 82 45 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 165 0
+255 165 0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 250 128 114
+250 128 114 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 205 133 63
+205 133 63 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 184 134 11
+184 134 11 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 218 165 32
+218 165 32 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 244 164 96
+244 164 96 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 160 122
+255 160 122 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 233 150 122
+233 150 122 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 215 0
+255 215 0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 255 0
+255 255 0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 128 128 0
+128 128 0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 222 184 135
+222 184 135 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 210 180 140
+210 180 140 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 222 173
+255 222 173 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 218 185
+255 218 185 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 240 230 140
+240 230 140 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 189 183 107
+189 183 107 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 228 181
+255 228 181 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 245 222 179
+245 222 179 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 228 196
+255 228 196 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 238 232 170
+238 232 170 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 235 205
+255 235 205 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 234 234 173
+234 234 173 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 239 213
+255 239 213 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 228 225
+255 228 225 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 250 205
+255 250 205 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 250 235 215
+250 235 215 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 248 220
+255 248 220 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 250 250 210
+250 250 210 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 253 245 230
+253 245 230 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 250 240 230
+250 240 230 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 255 224
+255 255 224 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 245 238
+255 245 238 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 245 245 220
+245 245 220 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 250 240
+255 250 240 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 255 240
+255 255 240 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 255 0 0
+255 0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 124 252 0
+124 252 0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 127 255 0
+127 255 0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 173 255 47
+173 255 47 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 154 205 50
+154 205 50 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 107 142 35
+107 142 35 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 85 107 47 85
+107 47 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 143 188 139
+143 188 139 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 100 0 0
+100 0 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 50 205 50 50
+205 50 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 34 139 34 34
+139 34 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 255 127 0
+255 127 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 250 154 0
+250 154 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 46 139 87 46
+139 87 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 60 179 113
+60 179 113 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 112 216 144
+112 216 144 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 144 238 144
+144 238 144 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 152 251 152
+152 251 152 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 102 205 170
+102 205 170 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 64 224 208
+64 224 208 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 32 178 170
+32 178 170 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 72 209 204
+72 209 204 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 240 255 240
+240 255 240 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 245 255 250
+245 255 250 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 65 105 225
+65 105 225 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 30 144 255
+30 144 255 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 191 255 0
+191 255 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 100 149 237
+100 149 237 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 70 130 180
+70 130 180 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 135 206 250
+135 206 250 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 206 209 0
+206 209 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 255 255 0
+255 255 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 139 139 0
+139 139 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 128 128 0
+128 128 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 135 206 235
+135 206 235 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 95 158 160
+95 158 160 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 47 79 79 47
+79 79 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 119 136 153
+119 136 153 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 112 128 144
+112 128 144 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 176 196 222
+176 196 222 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 173 216 230
+173 216 230 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 176 224 230
+176 224 230 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 175 238 238
+175 238 238 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 224 255 255
+224 255 255 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 240 248 255
+240 248 255 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 240 255 255
+240 255 255 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 205 0 0
+205 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 139 0 0
+139 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 25 25 112 25
+25 112 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 36 36 140 36
+36 140 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 255 0 0
+255 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 75 0 130 75
+0 130 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 138 43 226
+138 43 226 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 123 104 238
+123 104 238 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 106 90 205
+106 90 205 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 160 32 240
+160 32 240 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 72 61 139 72
+61 139 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 148 0 211
+148 0 211 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 153 50 204
+153 50 204 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 147 112 219
+147 112 219 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 186 85 211
+186 85 211 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 0 255
+255 0 255 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 139 0 139
+139 0 139 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 238 130 238
+238 130 238 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 221 160 221
+221 160 221 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 230 230 250
+230 230 250 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 216 191 216
+216 191 216 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 248 248 255
+248 248 255 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 255 255
+255 255 255 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 245 245 245
+245 245 245 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 220 220 220
+220 220 220 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 211 211 211
+211 211 211 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 192 192 192
+192 192 192 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 190 190 190
+190 190 190 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 169 169 169
+169 169 169 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 105 105 105
+105 105 105 -1 -1 101 1 #"\0"
+0 70 1 #"\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+228 225 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 224
+255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 255 255
+255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 255 224
+255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 245
+245 245 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 107 142 35 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 107 142 35
+255 255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 107 142 35
+224 255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 139 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 139 0 0 255
+255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 139 0 0 224
+255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 139 0 0 255
+228 225 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 70 130 180 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 70 130 180
+255 255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 70 130 180
+224 255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 70 130 180
+255 228 225 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 47 79 79 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 47 79 79 255
+255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 47 79 79 224
+255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 47 79 79 255
+228 225 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 139 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 139 255
+255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 139 224
+255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 47 79 79 245
+245 245 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 160 32 240
+255 255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 160 32 240
+224 255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 165 0
+255 255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 165 0
+224 255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 250 128 114
+0 0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 250 128 114
+255 255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 250 128 114
+224 255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 250 128 114
+245 245 245 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 250 128 114
+255 228 225 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 184 134 11 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 184 134 11
+255 255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 184 134 11
+224 255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 184 134 11
+245 245 245 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 184 134 11
+255 228 225 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 128 128 0 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 128 128 0
+255 255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 128 128 0
+224 255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 169 169 169
+0 0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 169 169 169
+255 255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 169 169 169
+224 255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 169 169 169
+255 228 225 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 169 169 169
+245 245 245 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 192 46 214 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 90 -1 94 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 255 0 0 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 94 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 57 89 216 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 90 -1 -1 94 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 102 102 255
+0 0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 94 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 102 102 255
+0 0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 94 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 249 148 40 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 51 174 51 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 60 194 57 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 94 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 151 69 43 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 94 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 50 163 255 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 94 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 166 0 255 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 94 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 175 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 94 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 38 38 128 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 94 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 38 38 128 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 94 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 194 116 31 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 94 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 132 60 36 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 94 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 81 112 203 0
+0 0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 94 -1 -1 0 1 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 68 0 203 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 1 1.0 1.0 1.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+228 225 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 0 0 255
+255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 255 255
+255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 255 0 0 224
+255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 224
+255 255 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 1 0.0 0.0 0.0 0.0 0.0 0.0 0 0 255 224
+255 255 -1 -1 2 1 #"\0"
+0 70 8 #"Courier\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"Courier\0"
+1.0 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 2 1 #"\0"
+0 70 8 #"Courier\0"
+1.0 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 0 0 255 0 0
+0 -1 -1 2 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 192 192 192
+0 0 0 -1 -1 2 1 #"\0"
+0 70 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 192 192 192
+0 0 0 -1 -1 22 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 14 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 22 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 178 34 34 0
+0 0 -1 -1 14 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 178 34 34 0
+0 0 -1 -1 20 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 1.0 1.0 1.0 178 34 34 0
+0 0 -1 -1 22 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 15 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 14 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 20 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 0 255
+255 255 -1 -1 4 1 #"\0"
+0 -1 1 #"\0"
+1.0 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1.0 1.0 1.0 1.0 1.0 1.0 0 0 0 0 0 0
+-1 -1 0 20 0 26 3 12 #"#lang racket"
+0 0 26 3 4 #"/gui"
+0 0 4 29 1 #"\n"
+0 0 4 29 1 #"\n"
+0 0 22 3 1 #"("
+0 0 15 3 6 #"define"
+0 0 4 3 1 #" "
+0 0 22 3 1 #"("
+0 0 14 3 11 #"single-line"
+0 0 4 3 1 #" "
+0 0 14 3 4 #"name"
+0 0 4 3 1 #" "
+0 0 14 3 4 #"link"
+0 0 22 3 1 #")"
+0 0 4 29 1 #"\n"
+0 0 4 3 2 #" "
+0 38 58 4 0 0 0 0 5 0 43 3 8 #""
+0 40 14 43 1 0 0 0 1 0 14 3 4 #"name"
+0 0 0 0 43 3 4 #""
+0 0 0 0 22 3 1 #")"
+0 0 4 29 1 #"\n"
+0 0 4 29 1 #"\n"
+0 0
diff --git a/collects/tests/xml/xml-snip-bug.ss b/collects/tests/xml/xml-snip-bug.ss
deleted file mode 100644
index 943285eebf..0000000000
--- a/collects/tests/xml/xml-snip-bug.ss
+++ /dev/null
@@ -1,3884 +0,0 @@
-#reader(lib"read.ss""wxme")WXME0108 ##
-#|
- This file is in PLT Scheme editor format.
- Open this file in DrScheme version 370 or later to read it.
-
- Most likely, it was created by saving a program in DrScheme,
- and it probably contains a program with non-text elements
- (such as images or comment boxes).
-
- http://www.plt-scheme.org
-|#
- 45 7 #"wxtext\0"
-3 1 6 #"wxtab\0"
-1 1 8 #"wxmedia\0"
-4 1 8 #"wximage\0"
-2 0 34 #"(lib \"syntax-browser.ss\" \"mrlib\")\0"
-1 0 16 #"drscheme:number\0"
-3 0 44 #"(lib \"number-snip.ss\" \"drscheme\" \"private\")\0"
-1 0 36 #"(lib \"comment-snip.ss\" \"framework\")\0"
-1 0 43 #"(lib \"collapsed-snipclass.ss\" \"framework\")\0"
-0 0 19 #"drscheme:sexp-snip\0"
-0 0 36 #"(lib \"cache-image-snip.ss\" \"mrlib\")\0"
-1 0 33 #"(lib \"bullet-snip.ss\" \"browser\")\0"
-0 0 29 #"drscheme:bindings-snipclass%\0"
-1 0 25 #"(lib \"matrix.ss\" \"htdp\")\0"
-1 0 22 #"drscheme:lambda-snip%\0"
-1 0 8 #"gb:core\0"
-5 0 10 #"gb:canvas\0"
-5 0 17 #"gb:editor-canvas\0"
-5 0 10 #"gb:slider\0"
-5 0 9 #"gb:gauge\0"
-5 0 11 #"gb:listbox\0"
-5 0 12 #"gb:radiobox\0"
-5 0 10 #"gb:choice\0"
-5 0 8 #"gb:text\0"
-5 0 11 #"gb:message\0"
-5 0 10 #"gb:button\0"
-5 0 12 #"gb:checkbox\0"
-5 0 18 #"gb:vertical-panel\0"
-5 0 9 #"gb:panel\0"
-5 0 20 #"gb:horizontal-panel\0"
-5 0 33 #"(lib \"readable.ss\" \"guibuilder\")\0"
-1 0 56
-(
- #"(lib \"hrule-snip.ss\" \"macro-debugger\" \"syntax-browse"
- #"r\")\0"
-) 1 0 18 #"java-comment-box%\0"
-1 0 23 #"java-interactions-box%\0"
-1 0 45 #"(lib \"image-snipr.ss\" \"slideshow\" \"private\")\0"
-1 0 26 #"drscheme:pict-value-snip%\0"
-0 0 38 #"(lib \"pict-snipclass.ss\" \"slideshow\")\0"
-2 0 55
-(
- #"(lib \"vertical-separator-snip.ss\" \"stepper\" \"private"
- #"\")\0"
-) 1 0 18 #"drscheme:xml-snip\0"
-1 0 31 #"(lib \"xml-snipclass.ss\" \"xml\")\0"
-1 0 21 #"drscheme:scheme-snip\0"
-2 0 34 #"(lib \"scheme-snipclass.ss\" \"xml\")\0"
-1 0 10 #"text-box%\0"
-1 0 32 #"(lib \"text-snipclass.ss\" \"xml\")\0"
-1 0 15 #"test-case-box%\0"
-2 0 1 6 #"wxloc\0"
-00000000000 1 1269 0 1 #"\0"
-0 75 1 #"\0"
-0 10 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 0 9
-#"Standard\0"
-0 75 15 #"Lucida Console\0"
-0 10 90 -1 90 -1 1 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 24
-#"framework:default-color\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 150 0 150 0 0 0 -1 -1 2 15
-#"text:ports out\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 150 0 150 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 15
-#"text:ports err\0"
-0 -1 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 175 0 0 0 -1 -1 2 17
-#"text:ports value\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 175 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 27
-#"Matching Parenthesis Style\0"
-0 -1 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 37
-#"framework:syntax-color:scheme:symbol\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 38
-#"framework:syntax-color:scheme:keyword\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 194 116 31 0 0 0 -1 -1 2
-38 #"framework:syntax-color:scheme:comment\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 194 116 31 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 41 128 38 0 0 0 -1 -1 2 37
-#"framework:syntax-color:scheme:string\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 41 128 38 0 0 0 -1 -1 2 39
-#"framework:syntax-color:scheme:constant\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 41 128 38 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 2 42
-#"framework:syntax-color:scheme:parenthesis\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 36
-#"framework:syntax-color:scheme:error\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 36
-#"framework:syntax-color:scheme:other\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 81 112 203 0 0 0 -1 -1 2
-38 #"drscheme:check-syntax:lexically-bound\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 81 112 203 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 68 0 203 0 0 0 -1 -1 2 31
-#"drscheme:check-syntax:imported\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 68 0 203 0 0 0 -1 -1 2 41
-#"profj:syntax-colors:scheme:block-comment\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 194 116 31 0 0 0 -1 -1 2
-35 #"profj:syntax-colors:scheme:keyword\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 139 0 139 0 0 0 -1 -1 2 37
-#"profj:syntax-colors:scheme:prim-type\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 139 0 139 0 0 0 -1 -1 2 38
-#"profj:syntax-colors:scheme:identifier\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 34
-#"profj:syntax-colors:scheme:string\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 35
-#"profj:syntax-colors:scheme:literal\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 35
-#"profj:syntax-colors:scheme:comment\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 194 116 31 0 0 0 -1 -1 2
-33 #"profj:syntax-colors:scheme:error\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 35
-#"profj:syntax-colors:scheme:default\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 37
-#"profj:syntax-colors:scheme:uncovered\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 35
-#"profj:syntax-colors:scheme:covered\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 139 0 139 0 0 0 -1 -1 4 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 4 4
-#"XML\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 8 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 8 24
-#"drscheme:text:ports err\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 4 1
-#"\0"
-0 71 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 4 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 4 1
-#"\0"
-0 71 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 4 1
-#"\0"
-0 71 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 100 0 0 0 0 -1 -1 0 1
-#"\0"
-0 75 1 #"\0"
-0 12 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 0 1
-#"\0"
-0 75 7 #"Monaco\0"
-0 12 90 -1 90 -1 1 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 4 1
-#"\0"
-0 -1 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 255 255 0 -1 -1 0 1
-#"\0"
-0 75 15 #"Lucida Console\0"
-0 10 90 -1 90 -1 1 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 0 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 200 0 0 0 0 0 -1 -1 22 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 14 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 4 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 20 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 15 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 17 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 22 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 165 0 0 0 0 -1 -1 14 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 165 0 0 0 0 -1 -1 4 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 165 0 0 0 0 -1 -1 15 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 165 0 0 0 0 -1 -1 17 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 165 0 0 0 0 -1 -1 20 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 165 0 0 0 0 -1 -1 26 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 19 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 19 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 165 0 0 0 0 -1 -1 22 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 14
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 4
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 19
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 17
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 15
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 20
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 26
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 2
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 65 105 225 0 0 0 -1 -1 26
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 165 0 0 0 0 -1 -1 24 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 24 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 165 0 0 0 0 -1 -1 24 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 2
-1 #"\0"
-0 71 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 71 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 100 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 90 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 0 1
-#"\0"
-0 75 23 #"Lucida Sans Typewriter\0"
-0 12 90 -1 90 -1 1 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 2
-14 #"Html Standard\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 4 1
-#"\0"
-0 71 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 148 0 211 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 4 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 100 0 0 0 0 -1 -1 0 1
-#"\0"
-0 75 12 #"Courier New\0"
-0 12 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 2
-40 #"framework:syntax-coloring:scheme:symbol\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 41
-#"framework:syntax-coloring:scheme:keyword\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 41
-#"framework:syntax-coloring:scheme:comment\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 194 116 31 0 0 0 -1 -1 2
-40 #"framework:syntax-coloring:scheme:string\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 41 128 38 0 0 0 -1 -1 2 42
-#"framework:syntax-coloring:scheme:constant\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 41 128 38 0 0 0 -1 -1 2 45
-#"framework:syntax-coloring:scheme:parenthesis\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 2 39
-#"framework:syntax-coloring:scheme:error\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 39
-#"framework:syntax-coloring:scheme:other\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 49
-#"drscheme:check-syntax:lexically-bound-identifier\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 81 112 203 0 0 0 -1 -1 2
-42 #"drscheme:check-syntax:imported-identifier\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 68 0 203 0 0 0 -1 -1 2 37
-#"profj:syntax-coloring:scheme:keyword\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 39
-#"profj:syntax-coloring:scheme:prim-type\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 139 0 139 0 0 0 -1 -1 2 40
-#"profj:syntax-coloring:scheme:identifier\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 36
-#"profj:syntax-coloring:scheme:string\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 37
-#"profj:syntax-coloring:scheme:literal\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 37
-#"profj:syntax-coloring:scheme:comment\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 194 116 31 0 0 0 -1 -1 2
-35 #"profj:syntax-coloring:scheme:error\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 37
-#"profj:syntax-coloring:scheme:default\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 39
-#"profj:syntax-coloring:scheme:uncovered\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 37
-#"profj:syntax-coloring:scheme:covered\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 139 0 139 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 255 255 0 0 0 -1 -1 2
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 128 106 255 0 0 0 -1 -1 2
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 119 255 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 47 208 28 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 65 209 60 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 203 91 55 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-0 15 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-2 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 -2 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 -2 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 50 205 50 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1.5 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 -1 1 #"\0"
-1.5 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1.5 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 90
-1 #"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 90 1
-#"\0"
-0 -1 1 #"\0"
-2 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-2 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-2 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1.5 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 90 1
-#"\0"
-0 -1 1 #"\0"
-1.5 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1.5 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 153 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1.2 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 -1 1 #"\0"
-1.2 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1.2 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 90 1
-#"\0"
-0 -1 1 #"\0"
-1.2 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 36 36 140 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-0.8 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 0 -1 90 1
-#"\0"
-0 70 1 #"\0"
-0.6000000000000001 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0
-0 0 0 -1 90 1 #"\0"
-0 75 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-2 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 -1 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 -1 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 90 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 68 64 108 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 0 -1 2
-36 #"honu:syntax-coloring:scheme:keyword\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 40
-#"honu:syntax-coloring:scheme:parenthesis\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 2 35
-#"honu:syntax-coloring:scheme:string\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 36
-#"honu:syntax-coloring:scheme:literal\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 36
-#"honu:syntax-coloring:scheme:comment\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 194 116 31 0 0 0 -1 -1 2
-34 #"honu:syntax-coloring:scheme:error\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 39
-#"honu:syntax-coloring:scheme:identifier\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 36
-#"honu:syntax-coloring:scheme:default\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 -1 90 1
-#"\0"
-0 70 1 #"\0"
-0.75 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 36 36 140 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1.5 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 2
-1 #"\0"
-0 70 1 #"\0"
-2 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 -2 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 -2 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 50 205 50 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1.5 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1.5 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 2
-1 #"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-0.8 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 0 -1 2 1
-#"\0"
-0 70 1 #"\0"
-0.6000000000000001 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0
-0 0 0 -1 2 1 #"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 153 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 36 36 140 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 4 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 0 1
-#"\0"
-0 75 8 #"Courier\0"
-0 14 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 4 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 175 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 248 20 64 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 2 1
-#"\0"
-0 71 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 100 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 2 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 2 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 2 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1.5 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-1.5 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 2
-1 #"\0"
-0 70 1 #"\0"
-2 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-2 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-0.75 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 94 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 200 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 80 80 248 0 0 0 -1 -1 2 1
-#"\0"
-0 71 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 80 80 248 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 2 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 80 80 248 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 2 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 80 80 248 0 0 0 -1 -1 101
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 97 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 96 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 100 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 101 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 96 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 100
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 101
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 96
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 2
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 98
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 97
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1
-100 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 2
-1 #"\0"
-0 70 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 248 20 64 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1.2000000476837158 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0
-0 -1 -1 2 1 #"\0"
-0 70 1 #"\0"
-1.2000000476837158 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0
-0 0 -1 -1 2 1 #"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 68 64 108 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-0.800000011920929 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0
-0 0 0 -1 2 1 #"\0"
-0 70 1 #"\0"
-0.6000000238418579 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0
-0 0 0 -1 2 1 #"\0"
-0 70 1 #"\0"
-0.800000011920929 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0
-0 1 -1 2 1 #"\0"
-0 70 1 #"\0"
-0.800000011920929 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0
-0 1 -1 2 1 #"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 68 64 108 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 60 248 52 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Arial\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Arial\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Arial\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Arial\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 80 80 248 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Arial\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 80 80 248 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 153 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-0.800000011920929 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 68 64 108
-0 0 0 0 -1 2 1 #"\0"
-0 70 1 #"\0"
-0.800000011920929 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0
-0 0 -1 2 1 #"\0"
-0 75 1 #"\0"
-0.800000011920929 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36
-0 0 0 0 -1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 81 112 204 0 0 0 -1 -1 2
-47 #"drscheme:check-syntax:lexically-bound-variable\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 81 112 204 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 122 81 204 0 0 0 -1 -1 2
-40 #"drscheme:check-syntax:imported-variable\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 122 81 204 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 51 204 0 0 0 -1 -1 2 45
-#"drscheme:check-syntax:lexically-bound-syntax\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 51 204 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 68 0 204 0 0 0 -1 -1 2 38
-#"drscheme:check-syntax:imported-syntax\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 68 0 204 0 0 0 -1 -1 0 1
-#"\0"
-0 75 8 #"Courier\0"
-0 14 90 -1 90 -1 1 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 37
-#"syntax-coloring:Scheme Color:keyword\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 36
-#"syntax-coloring:Scheme Color:string\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 37
-#"syntax-coloring:Scheme Color:literal\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 105 105 105 0 0 0 -1 -1 2
-37 #"syntax-coloring:Scheme Color:comment\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 105 105 105 0 0 0 -1 -1 2
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 248 20 64 0 0 0 -1 -1 2 35
-#"syntax-coloring:Scheme Color:error\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 248 20 64 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 36 36 140 0 0 0 -1 -1 2 40
-#"syntax-coloring:Scheme Color:identifier\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 36 36 140 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 2 35
-#"syntax-coloring:Scheme Color:other\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 40 25 15 0 0 0 -1 -1 2 30
-#"drscheme:check-syntax:keyword\0"
-0 -1 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 40 25 15 0 0 0 -1 -1 2 39
-#"drscheme:check-syntax:unbound-variable\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 248 20 64 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 36 36 140 0 0 0 -1 -1 2 37
-#"drscheme:check-syntax:bound-variable\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 36 36 140 0 0 0 -1 -1 2 32
-#"drscheme:check-syntax:primitive\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 36 36 140 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 51 135 39 0 0 0 -1 -1 2 31
-#"drscheme:check-syntax:constant\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 51 135 39 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 165 0 0 0 0 -1 -1 2 32
-#"drscheme:check-syntax:tail-call\0"
-0 -1 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 165 0 0 0 0 -1 -1 2 27
-#"drscheme:check-syntax:base\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 2 29
-#"syntax-coloring:Java:keyword\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 100 0 0 0 0 -1 -1 2 28
-#"syntax-coloring:Java:string\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 100 0 0 0 0 -1 -1 2 29
-#"syntax-coloring:Java:literal\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 100 0 0 0 0 -1 -1 2 29
-#"syntax-coloring:Java:comment\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 105 105 105 0 0 0 -1 -1 2
-27 #"syntax-coloring:Java:error\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 248 20 64 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 139 0 0 0 -1 -1 2 32
-#"syntax-coloring:Java:identifier\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 0 0 139 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 169 169 169 0 0 0 -1 -1 2
-29 #"syntax-coloring:Java:default\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 93 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 169 169 169 0 0 0 -1 -1 2
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 40 25 15 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 165 0 0 0 0 -1 -1 0 1
-#"\0"
-0 75 1 #"\0"
-0 12 90 -1 90 -1 3 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 0 1
-#"\0"
-0 75 8 #"Courier\0"
-0 12 90 -1 90 -1 1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 0 1
-#"\0"
-0 75 12 #"Courier New\0"
-0 12 90 90 90 90 3 3 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 1 1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 40 25 15 0 0 0 1 1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 248 20 64 0 0 0 1 1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 36 36 140 0 0 0 1 1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 51 135 39 0 0 0 1 1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 1 1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 #"\0"
-0 75 8 #"Courier\0"
-0 13 90 -1 90 -1 1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 150 0 150 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 175 0 0 0 -1 -1 0 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 0 1
-#"\0"
-0 70 1 #"\0"
-1 0 90 90 90 90 3 3 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 1 1 0 13
-#"h-link-style\0"
-0 70 1 #"\0"
-1 0 90 90 90 90 3 3 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 1 1 2 1 #"\0"
-0 -1 1 #"\0"
-1 2 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 2 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 80 80 248 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 2 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 80 80 248 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-1 321 326 1 #"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 326 1
-#"\0"
-0 75 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 248 20 64 0 0 0 -1 -1 329
-1 #"\0"
-1 321 2 1 #"\0"
-0 -1 1 #"\0"
-2 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 331 1
-#"\0"
-1 321 332 1 #"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 332 1
-#"\0"
-0 75 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1.5 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 335 1
-#"\0"
-1 321 2 1 #"\0"
-0 -1 1 #"\0"
-0.75 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 326 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 0 1
-#"\0"
-0 75 1 #"\0"
-0 12 90 90 90 90 3 3 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 1 2 1
-#"\0"
-0 71 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 90 90 90 90 3 3 1 0 0 0 0 0 0 0 0 1 1 1 80 80 248 0 0 0 1 1 2 1
-#"\0"
-0 71 1 #"\0"
-1 0 90 90 90 90 3 3 1 0 0 0 0 0 0 0 0 1 1 1 80 80 248 0 0 0 1 1 2 1
-#"\0"
-0 71 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 0 100 0 0 0 0 1 1 2 1 #"\0"
-0 75 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 0 100 0 0 0 0 1 1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 1 1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 0 0 128 0 0 0 1 1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 165 42 42 0 0 0 1 1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 150 0 150 0 0 0 1 1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 90 90 94 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 1 1 0 1 #"\0"
-0 75 7 #"Monaco\0"
-0 12 90 90 90 90 3 3 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 90 90 90 90 3 3 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 0 1 #"\0"
-0 70 1 #"\0"
-0 12 90 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 2 1 #"\0"
-0 70 1 #"\0"
-2 0 92 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 #"\0"
-0 70 1 #"\0"
-1 0 92 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 354 1 #"\0"
-1 321 0 1 #"\0"
-0 70 1 #"\0"
-1 -2 90 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 356 1 #"\0"
-1 321 355 1 #"\0"
-0 70 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 50 205 50 0 0 0 1 1 0 1
-#"\0"
-0 70 1 #"\0"
-1 0 90 90 93 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 90 90 93 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 248 20 64 0 0 0 1 1 360 1
-#"\0"
-1 321 353 1 #"\0"
-1 321 362 1 #"\0"
-0 75 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 362 1 #"\0"
-0 75 1 #"\0"
-1 0 92 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 90 90 93 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 326 1 #"\0"
-0 70 1 #"\0"
-1 0 90 90 93 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 2 1 #"\0"
-0 75 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 1 1 2 1
-#"\0"
-0 75 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 36 36 140 0 0 0 1 1 2 1
-#"\0"
-0 75 1 #"\0"
-1 0 92 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 153 0 0 0 0 0 1 1 2 1 #"\0"
-0 75 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 2 1 #"\0"
-0 75 1 #"\0"
-1 0 92 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 2 1 #"\0"
-0 70 1 #"\0"
-1.5 0 92 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 373 1
-#"\0"
-1 321 326 1 #"\0"
-0 70 1 #"\0"
-0.800000011920929 0 90 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0
-0 1 326 1 #"\0"
-0 70 1 #"\0"
-0.6000000238418579 0 90 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0
-0 1 2 1 #"\0"
-0 70 1 #"\0"
-1.2000000476837158 0 92 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0
-1 1 377 1 #"\0"
-1 321 2 1 #"\0"
-0 75 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 1 1 2 1
-#"\0"
-0 75 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 68 64 108 0 0 0 1 1 2 1
-#"\0"
-0 70 1 #"\0"
-1 -2 90 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 #"\0"
-0 75 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 1 1 0 1
-#"\0"
-0 75 1 #"\0"
-1 0 92 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 153 0 0 0 0 0 1 1 0 1 #"\0"
-0 75 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 36 36 140 0 0 0 1 1 0 1
-#"\0"
-0 70 1 #"\0"
-1.2000000476837158 0 92 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0
-1 1 385 1 #"\0"
-1 321 0 1 #"\0"
-1 321 0 1 #"\0"
-0 70 1 #"\0"
-1.5 0 92 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 388 1
-#"\0"
-1 321 0 1 #"\0"
-0 75 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 387 1 #"\0"
-0 70 1 #"\0"
-0.800000011920929 0 90 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0
-0 1 387 1 #"\0"
-0 70 1 #"\0"
-0.6000000238418579 0 90 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0
-0 1 387 1 #"\0"
-0 70 1 #"\0"
-1 0 90 90 93 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 1 #"\0"
-0 70 1 #"\0"
-1 0 90 90 93 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 248 20 64 0 0 0 1 1 394 1
-#"\0"
-1 321 326 1 #"\0"
-0 75 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 1 1 390 1
-#"\0"
-1 321 397 1 #"\0"
-0 75 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 1 1 387 1
-#"\0"
-0 75 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 1 1 0 1
-#"\0"
-0 75 7 #"Monaco\0"
-0 10 90 90 90 90 3 3 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 0 0 175 0 0 0 1 1 0 1 #"\0"
-0 70 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 200 0 0 0 0 0 1 1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 60 248 52 0 0 0 1 1 2 1
-#"\0"
-0 70 1 #"\0"
-1 -1 90 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 90 90 94 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 248 20 64 0 0 0 1 1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 90 90 90 3 3 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 255 255 0 1 1 45 1
-#"\0"
-0 70 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 45 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 0 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 178 34 34 255 255 255 -1
--1 0 1 #"\0"
-0 75 8 #"Courier\0"
-0 14 90 -1 90 -1 1 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 255 165 0 0 0 0 1 1 2 1
-#"\0"
-0 70 1 #"\0"
-1 -3 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 3 0 153 0 0 0 1 1 2 1 #"\0"
-0 70 1 #"\0"
-1 -3 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 102 102 102 0 0 0 1 1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 80 80 248 0 0 0 1 1 0 1
-#"\0"
-0 75 12 #"Courier New\0"
-0 12 90 -1 90 -1 3 -1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-1 0 90 90 90 90 3 3 1 0 0 0 0 0 0 0 0 1 1 1 80 80 248 0 0 0 1 1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 160 32 240 0 0 0 1 1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 90 90 90 3 3 1 0 0 0 0 0 0 0 0 1 1 1 248 20 64 0 0 0 1 1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 90 90 90 90 3 3 0 0 0 0 0 0 0 0 0 1 1 1 80 80 248 0 0 0 1 1 2 1
-#"\0"
-0 70 1 #"\0"
-1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 -1 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-1.5 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 153 0 0 0 0 0 -1 -1 0 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 1 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 -1 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 80 80 248 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Arial\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 60 248 52 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 255 255 0 -1 -1 101
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 96 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 99 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 101 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 97 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 96 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 100
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 0 1
-#"\0"
-0 75 8 #"Courier\0"
-0 13 90 -1 90 -1 1 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-0.800000011920929 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 36 36 140
-0 0 0 1 -1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 69 0 255 69 0 -1 -1 2
-1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 99 71 255 99 71 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 139 0 0 139 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 248 20 64 248 20 64 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 178 34 34 178 34 34 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 220 20 60 220 20 60 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 20 147 255 20 147 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 176 48 96 176 48 96 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 205 92 92 205 92 92 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 199 21 133 199 21 133 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 208 32 144 208 32 144 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 240 128 128 240 128 128 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 105 180 255 105 180 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 219 112 147 219 112 147 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 182 193 255 182 193 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 188 143 143 188 143 143 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 192 203 255 192 203 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 218 112 214 218 112 214 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 240 245 255 240 245 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 250 250 255 250 250 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 210 105 30 210 105 30 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 139 69 19 139 69 19 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 132 60 36 132 60 36 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 140 0 255 140 0 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 127 80 255 127 80 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 160 82 45 160 82 45 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 165 0 255 165 0 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 250 128 114 250 128 114 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 205 133 63 205 133 63 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 184 134 11 184 134 11 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 218 165 32 218 165 32 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 244 164 96 244 164 96 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 160 122 255 160 122 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 233 150 122 233 150 122 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 215 0 255 215 0 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 255 0 255 255 0 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 128 128 0 128 128 0 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 222 184 135 222 184 135 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 210 180 140 210 180 140 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 222 173 255 222 173 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 218 185 255 218 185 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 240 230 140 240 230 140 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 189 183 107 189 183 107 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 228 181 255 228 181 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 245 222 179 245 222 179 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 228 196 255 228 196 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 238 232 170 238 232 170 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 235 205 255 235 205 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 234 234 173 234 234 173 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 239 213 255 239 213 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 228 225 255 228 225 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 250 205 255 250 205 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 250 235 215 250 235 215 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 248 220 255 248 220 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 250 250 210 250 250 210 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 253 245 230 253 245 230 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 250 240 230 250 240 230 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 255 224 255 255 224 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 245 238 255 245 238 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 245 245 220 245 245 220 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 250 240 255 250 240 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 255 240 255 255 240 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 60 248 52 60 248 52 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 124 252 0 124 252 0 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 127 255 0 127 255 0 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 173 255 47 173 255 47 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 154 205 50 154 205 50 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 107 142 35 107 142 35 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 85 107 47 85 107 47 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 143 188 139 143 188 139 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 255 0 0 255 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 100 0 0 100 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 50 205 50 50 205 50 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 34 139 34 34 139 34 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 255 127 0 255 127 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 250 154 0 250 154 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 46 139 87 46 139 87 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 60 179 113 60 179 113 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 112 216 144 112 216 144 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 144 238 144 144 238 144 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 152 251 152 152 251 152 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 102 205 170 102 205 170 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 64 224 208 64 224 208 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 32 178 170 32 178 170 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 72 209 204 72 209 204 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 240 255 240 240 255 240 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 245 255 250 245 255 250 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 65 105 225 65 105 225 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 30 144 255 30 144 255 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 191 255 0 191 255 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 100 149 237 100 149 237 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 70 130 180 70 130 180 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 135 206 250 135 206 250 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 206 209 0 206 209 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 255 255 0 255 255 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 139 139 0 139 139 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 128 128 0 128 128 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 135 206 235 135 206 235 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 95 158 160 95 158 160 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 47 79 79 47 79 79 -1 -1 2
-1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 119 136 153 119 136 153 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 112 128 144 112 128 144 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 176 196 222 176 196 222 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 173 216 230 173 216 230 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 176 224 230 176 224 230 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 175 238 238 175 238 238 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 224 255 255 224 255 255 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 240 248 255 240 248 255 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 240 255 255 240 255 255 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 205 0 0 205 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 139 0 0 139 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 25 25 112 25 25 112 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 36 36 140 36 36 140 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 80 80 248 80 80 248 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 75 0 130 75 0 130 -1 -1 2
-1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 138 43 226 138 43 226 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 123 104 238 123 104 238 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 106 90 205 106 90 205 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 160 32 240 160 32 240 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 72 61 139 72 61 139 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 148 0 211 148 0 211 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 153 50 204 153 50 204 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 147 112 219 147 112 219 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 186 85 211 186 85 211 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 0 255 255 0 255 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 139 0 139 139 0 139 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 238 130 238 238 130 238 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 221 160 221 221 160 221 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 230 230 250 230 230 250 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 216 191 216 216 191 216 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 248 248 255 248 248 255 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 255 255 255 255 255 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 245 245 245 245 245 245 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 220 220 220 220 220 220 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 211 211 211 211 211 211 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 192 192 192 192 192 192 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 190 190 190 190 190 190 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 169 169 169 169 169 169 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 105 105 105 105 105 105 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 36 36 140 0 0 0 -1 -1 0 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 -1 2 1 #"\0"
-0 75 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 36 36 140 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 248 20 64 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 -2 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 4 1
-#"\0"
-0 70 1 #"\0"
-0 12 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 0 0 0 150 0 150 255 255 255 1 -1
-2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 255 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 16 #"Times New Roman\0"
-1 1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Courier New\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Courier New\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Courier New\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 0 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 2 -1 0 1 #"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 2 -1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 248 248 250 -1 -1 2
-1 #"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 248 248 250 -1 -1 2
-1 #"\0"
-0 70 1 #"\0"
-1 3 -1 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 102 153 248 248 250 -1
--1 2 1 #"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 255 248 248 250 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 3 -1 -1 -1 -1 -1 -1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 255 248 248 250 -1 -1
-2 1 #"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 4 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 4 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 4
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 178 34 34 255 255 255 -1
--1 97 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 0 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1.2 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1.2 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 99 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 102 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 99
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 2
-1 #"\0"
-0 70 7 #"Geneva\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Geneva\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Geneva\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Monaco\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Monaco\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Monaco\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Times\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Times\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Times\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Helvetica\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Helvetica\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Helvetica\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"Courier\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"Courier\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"Courier\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Symbol\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Symbol\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Symbol\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #".Keyboard\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #".Keyboard\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #".Keyboard\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #".LastResort\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #".LastResort\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #".LastResort\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 14 #"Lucida Grande\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 14 #"Lucida Grande\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 14 #"Lucida Grande\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 14 #"Zapf Dingbats\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 14 #"Zapf Dingbats\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 14 #"Zapf Dingbats\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 21 #".TimesLTMM_1_Wt_1_Wd\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 21 #".TimesLTMM_1_Wt_1_Wd\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 21 #".TimesLTMM_1_Wt_1_Wd\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26 #".HelveLTMM_170_Wt_1200_Wd\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26 #".HelveLTMM_170_Wt_1200_Wd\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26 #".HelveLTMM_170_Wt_1200_Wd\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Osaka\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Osaka\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Osaka\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 15 #"Osaka\342\210\222\347\255\211\345\271\205\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 15 #"Osaka\342\210\222\347\255\211\345\271\205\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 15 #"Osaka\342\210\222\347\255\211\345\271\205\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 22 #"Apple LiGothic Medium\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 22 #"Apple LiGothic Medium\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 22 #"Apple LiGothic Medium\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"AppleGothic\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"AppleGothic\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"AppleGothic\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Monaco CY\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Monaco CY\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Monaco CY\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 17 #"Lucida Grande CY\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 17 #"Lucida Grande CY\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 17 #"Lucida Grande CY\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 9 #"Times CY\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 9 #"Times CY\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 9 #"Times CY\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 4 #"Hei\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 4 #"Hei\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 4 #"Hei\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Geneva CE\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Geneva CE\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Geneva CE\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Monaco CE\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Monaco CE\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Monaco CE\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 9 #"Times CE\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 9 #"Times CE\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 9 #"Times CE\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"Helvetica CE\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"Helvetica CE\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"Helvetica CE\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"Courier CE\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"Courier CE\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"Courier CE\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #"\343\203\222\343\203\251\343\202\256\343\203\216\350\247\222\343"
- #"\202\264 Pro W6\0"
-) 0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #"\343\203\222\343\203\251\343\202\256\343\203\216\350\247\222\343"
- #"\202\264 Pro W6\0"
-) 0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #"\343\203\222\343\203\251\343\202\256\343\203\216\350\247\222\343"
- #"\202\264 Pro W6\0"
-) 0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #"\343\203\222\343\203\251\343\202\256\343\203\216\350\247\222\343"
- #"\202\264 Pro W3\0"
-) 0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #"\343\203\222\343\203\251\343\202\256\343\203\216\350\247\222\343"
- #"\202\264 Pro W3\0"
-) 0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #"\343\203\222\343\203\251\343\202\256\343\203\216\350\247\222\343"
- #"\202\264 Pro W3\0"
-) 0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #"\343\203\222\343\203\251\343\202\256\343\203\216\344\270\270\343"
- #"\202\264 Pro W4\0"
-) 0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #"\343\203\222\343\203\251\343\202\256\343\203\216\344\270\270\343"
- #"\202\264 Pro W4\0"
-) 0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #"\343\203\222\343\203\251\343\202\256\343\203\216\344\270\270\343"
- #"\202\264 Pro W4\0"
-) 0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #"\343\203\222\343\203\251\343\202\256\343\203\216\346\230\216\346"
- #"\234\235 Pro W6\0"
-) 0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #"\343\203\222\343\203\251\343\202\256\343\203\216\346\230\216\346"
- #"\234\235 Pro W6\0"
-) 0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #"\343\203\222\343\203\251\343\202\256\343\203\216\346\230\216\346"
- #"\234\235 Pro W6\0"
-) 0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #"\343\203\222\343\203\251\343\202\256\343\203\216\346\230\216\346"
- #"\234\235 Pro W3\0"
-) 0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #"\343\203\222\343\203\251\343\202\256\343\203\216\346\230\216\346"
- #"\234\235 Pro W3\0"
-) 0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #"\343\203\222\343\203\251\343\202\256\343\203\216\346\230\216\346"
- #"\234\235 Pro W3\0"
-) 0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #".Aqua \343\201\213\343\201\252\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #".Aqua \343\201\213\343\201\252\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #".Aqua \343\201\213\343\201\252\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"\345\215\216\346\226\207\347\273\206\351\273\221\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"\345\215\216\346\226\207\347\273\206\351\273\221\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"\345\215\216\346\226\207\347\273\206\351\273\221\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #"\343\203\222\343\203\251\343\202\256\343\203\216\350\247\222\343"
- #"\202\264 Std W8\0"
-) 0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #"\343\203\222\343\203\251\343\202\256\343\203\216\350\247\222\343"
- #"\202\264 Std W8\0"
-) 0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #"\343\203\222\343\203\251\343\202\256\343\203\216\350\247\222\343"
- #"\202\264 Std W8\0"
-) 0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 15 #"Geeza Pro Bold\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 15 #"Geeza Pro Bold\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 15 #"Geeza Pro Bold\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 17 #"Lucida Grande CE\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 17 #"Lucida Grande CE\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 17 #"Lucida Grande CE\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"\345\204\267\351\273\221 Pro\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"\345\204\267\351\273\221 Pro\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"\345\204\267\351\273\221 Pro\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Geeza Pro\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Geeza Pro\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Geeza Pro\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #".Aqua \343\201\213\343\201\252 \343\203\234\343\203\274\343\203\253"
- #"\343\203\211\0"
-) 0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #".Aqua \343\201\213\343\201\252 \343\203\234\343\203\274\343\203\253"
- #"\343\203\211\0"
-) 0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26
-(
- #".Aqua \343\201\213\343\201\252 \343\203\234\343\203\274\343\203\253"
- #"\343\203\211\0"
-) 0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"\345\215\216\346\226\207\351\273\221\344\275\223\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"\345\215\216\346\226\207\351\273\221\344\275\223\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"\345\215\216\346\226\207\351\273\221\344\275\223\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"Zapfino\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"Zapfino\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"Zapfino\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"Trebuchet MS\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"Trebuchet MS\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"Trebuchet MS\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"Arial Narrow\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"Arial Narrow\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"Arial Narrow\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Arial\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Arial\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Arial\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Courier New\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Courier New\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Courier New\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 16 #"Times New Roman\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 16 #"Times New Roman\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 16 #"Times New Roman\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"Hoefler Text\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"Hoefler Text\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"Hoefler Text\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 23 #"Hoefler Text Ornaments\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 23 #"Hoefler Text Ornaments\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 23 #"Hoefler Text Ornaments\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Marker Felt\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Marker Felt\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Marker Felt\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Impact\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Impact\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Impact\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 5 #"Skia\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 5 #"Skia\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 5 #"Skia\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Copperplate\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Copperplate\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Copperplate\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 15 #"Apple Chancery\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 15 #"Apple Chancery\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 15 #"Apple Chancery\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 18 #"Copperplate Light\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 18 #"Copperplate Light\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 18 #"Copperplate Light\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Baskerville\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Baskerville\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Baskerville\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 21 #"Baskerville Semibold\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 21 #"Baskerville Semibold\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 21 #"Baskerville Semibold\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"Big Caslon\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"Big Caslon\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"Big Caslon\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 22 #"Arial Rounded MT Bold\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 22 #"Arial Rounded MT Bold\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 22 #"Arial Rounded MT Bold\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 16 #"Brush Script MT\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 16 #"Brush Script MT\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 16 #"Brush Script MT\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 20 #"American Typewriter\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 20 #"American Typewriter\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 20 #"American Typewriter\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 30 #"American Typewriter Condensed\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 30 #"American Typewriter Condensed\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 30 #"American Typewriter Condensed\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26 #"American Typewriter Light\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26 #"American Typewriter Light\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26 #"American Typewriter Light\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 36 #"American Typewriter Condensed Light\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 36 #"American Typewriter Condensed Light\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 36 #"American Typewriter Condensed Light\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Futura\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Futura\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Futura\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 17 #"Futura Condensed\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 17 #"Futura Condensed\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 17 #"Futura Condensed\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 18 #"Optima ExtraBlack\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 18 #"Optima ExtraBlack\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 18 #"Optima ExtraBlack\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"Herculanum\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"Herculanum\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"Herculanum\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Gill Sans\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Gill Sans\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Gill Sans\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 16 #"Gill Sans Light\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 16 #"Gill Sans Light\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 16 #"Gill Sans Light\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 14 #"Comic Sans MS\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 14 #"Comic Sans MS\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 14 #"Comic Sans MS\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 15 #"Helvetica Neue\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 15 #"Helvetica Neue\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 15 #"Helvetica Neue\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 30 #"Helvetica Neue Bold Condensed\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 30 #"Helvetica Neue Bold Condensed\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 30 #"Helvetica Neue Bold Condensed\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26 #"Helvetica Neue UltraLight\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26 #"Helvetica Neue UltraLight\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 26 #"Helvetica Neue UltraLight\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 21 #"Helvetica Neue Light\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 21 #"Helvetica Neue Light\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 21 #"Helvetica Neue Light\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 31 #"Helvetica Neue Black Condensed\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 31 #"Helvetica Neue Black Condensed\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 31 #"Helvetica Neue Black Condensed\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"Papyrus\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"Papyrus\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"Papyrus\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Optima\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Optima\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Optima\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Andale Mono\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Andale Mono\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Andale Mono\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"Verdana\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"Verdana\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"Verdana\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Didot\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Didot\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Didot\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Arial Black\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Arial Black\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Arial Black\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"Georgia\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"Georgia\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"Georgia\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 9 #"Webdings\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 9 #"Webdings\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 9 #"Webdings\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Cochin\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Cochin\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 7 #"Cochin\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"BiauKai\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"BiauKai\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"BiauKai\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 19 #"Apple LiSung Light\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 19 #"Apple LiSung Light\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 19 #"Apple LiSung Light\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"AppleMyungjo\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"AppleMyungjo\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"AppleMyungjo\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"#\352\266\201\354\204\234\354\262\264\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"#\352\266\201\354\204\234\354\262\264\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"#\352\266\201\354\204\234\354\262\264\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 15 #"#\355\227\244\353\223\234\353\235\274\354\235\270A\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 15 #"#\355\227\244\353\223\234\353\235\274\354\235\270A\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 15 #"#\355\227\244\353\223\234\353\235\274\354\235\270A\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"#\355\225\204\352\270\260\354\262\264\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"#\355\225\204\352\270\260\354\262\264\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"#\355\225\204\352\270\260\354\262\264\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"#PC\353\252\205\354\241\260\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"#PC\353\252\205\354\241\260\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"#PC\353\252\205\354\241\260\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Geneva CY\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Geneva CY\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Geneva CY\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Charcoal CY\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Charcoal CY\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 12 #"Charcoal CY\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"Helvetica CY\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"Helvetica CY\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"Helvetica CY\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 4 #"Kai\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 4 #"Kai\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 4 #"Kai\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"\345\215\216\346\226\207\345\256\213\344\275\223\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"\345\215\216\346\226\207\345\256\213\344\275\223\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"\345\215\216\346\226\207\345\256\213\344\275\223\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"Chalkboard\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"Chalkboard\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"Chalkboard\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 21 #"Euphemia UCAS Italic\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 21 #"Euphemia UCAS Italic\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 21 #"Euphemia UCAS Italic\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"\345\204\267\345\256\213 Pro\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"\345\204\267\345\256\213 Pro\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 11 #"\345\204\267\345\256\213 Pro\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 9 #"Ayuthaya\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 9 #"Ayuthaya\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 9 #"Ayuthaya\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 9 #"Thonburi\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 9 #"Thonburi\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 9 #"Thonburi\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"\345\215\216\346\226\207\346\245\267\344\275\223\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"\345\215\216\346\226\207\346\245\267\344\275\223\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"\345\215\216\346\226\207\346\245\267\344\275\223\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 19 #"Euphemia UCAS Bold\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 19 #"Euphemia UCAS Bold\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 19 #"Euphemia UCAS Bold\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"InaiMathi\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"InaiMathi\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"InaiMathi\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 14 #"Euphemia UCAS\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 14 #"Euphemia UCAS\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 14 #"Euphemia UCAS\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 16 #"Chalkboard Bold\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 16 #"Chalkboard Bold\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 16 #"Chalkboard Bold\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Silom\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Silom\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Silom\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"\345\215\216\346\226\207\344\273\277\345\256\213\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"\345\215\216\346\226\207\344\273\277\345\256\213\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 13 #"\345\215\216\346\226\207\344\273\277\345\256\213\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 15 #"GB18030 Bitmap\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 15 #"GB18030 Bitmap\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 15 #"GB18030 Bitmap\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Krungthep\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Krungthep\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 10 #"Krungthep\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Sathu\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Sathu\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 6 #"Sathu\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 21 #"Plantagenet Cherokee\0"
-0 72 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 21 #"Plantagenet Cherokee\0"
-0 72 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 21 #"Plantagenet Cherokee\0"
-0 72 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-0.8 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-0.8 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 -1 2 1
-#"\0"
-0 75 1 #"\0"
-0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 -1 0 1
-#"\0"
-0 70 1 #"\0"
-0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 -1 0 1
-#"\0"
-0 75 1 #"\0"
-0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 -1 0 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 2 -1 0 1 #"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 2 -1 0 1 #"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 2 -1 0 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 2 -1 0 1 #"\0"
-0 75 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 2 -1 0 1 #"\0"
-0 75 1 #"\0"
-0.8 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 -1 0 1
-#"\0"
-0 70 1 #"\0"
-0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 -1 0 1
-#"\0"
-0 70 1 #"\0"
-0.8 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 -1 0 1
-#"\0"
-0 70 1 #"\0"
-0.6400000000000001 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0
-0 1 -1 0 1 #"\0"
-0 75 1 #"\0"
-0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 -1 0 1
-#"\0"
-0 70 1 #"\0"
-0.8 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 -1 0 1
-#"\0"
-0 70 1 #"\0"
-1.2 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 2 -1 0 1
-#"\0"
-0 70 1 #"\0"
-1.2 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 2 -1 0 1
-#"\0"
-0 70 1 #"\0"
-1.5 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 2 -1 0 1
-#"\0"
-0 70 1 #"\0"
-1.5 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 2 -1 0 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 2 -1 2 1 #"\0"
-0 75 1 #"\0"
-1.5 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 102
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 98 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 -1 -1 98 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 102
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 0 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 94 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 36 36 140 0 0 0 0 -1 2 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 98 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 178 34 34 255 255 255 -1
--1 90 1 #"\0"
-0 75 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 96 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 178 34 34 255 255 255 -1
--1 0 1 #"\0"
-0 75 12 #"Courier New\0"
-0 10 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 102
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 178 34 34 255 255 255 -1
--1 99 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 153 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 0 1
-#"\0"
-0 75 12 #"Courier New\0"
-0 7 90 -1 90 -1 3 -1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 255 255 255 1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 160 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 92 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 160 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 92 -1 90 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 90 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 90 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 160 0 0 0 0 -1 -1 90 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 2 -1 90 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1.5 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 34 139 34 0 0 0 -1 -1 99
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 178 34 34 255 255 255 -1
--1 100 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 178 34 34 255 255 255 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-0.8 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 68 64 108 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 36 36 140 0 0 0 1 -1 90
-1 #"\0"
-0 75 1 #"\0"
-0.8 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 36 36 140 0 0 0 1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 2 -1 4 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 255 0 0 0 0 -1 -1 0 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 255 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 2 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 -1 1 #"\0"
-1 -1 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 -1 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 4 1
-#"\0"
-0 71 1 #"\0"
-1 0 -1 -1 94 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-2 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1.2 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 -1 90 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-0.8 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 100 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 90 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 64 128 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 255 0 0 0 0 -1 -1 0 1
-#"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 255 0 0 0 0 2 -1 2 1
-#"\0"
-0 70 6 #"Arial\0"
-0.75 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 1 #"\0"
-1 2 -1 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-0.8 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 36 36 140 0 0 0 1 -1 2 1
-#"\0"
-0 75 1 #"\0"
-0.8 0 -1 -1 93 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 36 36 140 0 0 0 1 -1 19
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 75 1 #"\0"
-1 0 92 -1 93 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 69 0 255 69 0 -1 -1 90
-1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 99 71 255 99 71 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 139 0 0 139 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 0 0 255 0 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 178 34 34 178 34 34 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 220 20 60 220 20 60 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 20 147 255 20 147 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 176 48 96 176 48 96 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 205 92 92 205 92 92 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 199 21 133 199 21 133 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 208 32 144 208 32 144 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 240 128 128 240 128 128 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 105 180 255 105 180 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 219 112 147 219 112 147 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 182 193 255 182 193 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 188 143 143 188 143 143 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 192 203 255 192 203 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 218 112 214 218 112 214 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 240 245 255 240 245 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 250 250 255 250 250 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 210 105 30 210 105 30 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 139 69 19 139 69 19 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 132 60 36 132 60 36 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 140 0 255 140 0 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 127 80 255 127 80 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 160 82 45 160 82 45 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 165 0 255 165 0 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 250 128 114 250 128 114 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 205 133 63 205 133 63 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 184 134 11 184 134 11 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 218 165 32 218 165 32 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 244 164 96 244 164 96 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 160 122 255 160 122 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 233 150 122 233 150 122 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 215 0 255 215 0 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 255 0 255 255 0 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 128 128 0 128 128 0 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 222 184 135 222 184 135 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 210 180 140 210 180 140 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 222 173 255 222 173 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 218 185 255 218 185 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 240 230 140 240 230 140 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 189 183 107 189 183 107 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 228 181 255 228 181 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 245 222 179 245 222 179 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 228 196 255 228 196 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 238 232 170 238 232 170 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 235 205 255 235 205 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 234 234 173 234 234 173 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 239 213 255 239 213 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 228 225 255 228 225 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 250 205 255 250 205 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 250 235 215 250 235 215 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 248 220 255 248 220 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 250 250 210 250 250 210 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 253 245 230 253 245 230 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 250 240 230 250 240 230 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 255 224 255 255 224 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 245 238 255 245 238 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 245 245 220 245 245 220 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 250 240 255 250 240 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 255 240 255 255 240 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 255 0 0 255 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 124 252 0 124 252 0 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 127 255 0 127 255 0 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 173 255 47 173 255 47 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 154 205 50 154 205 50 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 107 142 35 107 142 35 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 85 107 47 85 107 47 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 143 188 139 143 188 139 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 100 0 0 100 0 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 50 205 50 50 205 50 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 34 139 34 34 139 34 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 255 127 0 255 127 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 250 154 0 250 154 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 46 139 87 46 139 87 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 60 179 113 60 179 113 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 112 216 144 112 216 144 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 144 238 144 144 238 144 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 152 251 152 152 251 152 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 102 205 170 102 205 170 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 64 224 208 64 224 208 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 32 178 170 32 178 170 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 72 209 204 72 209 204 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 240 255 240 240 255 240 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 245 255 250 245 255 250 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 65 105 225 65 105 225 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 30 144 255 30 144 255 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 191 255 0 191 255 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 100 149 237 100 149 237 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 70 130 180 70 130 180 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 135 206 250 135 206 250 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 206 209 0 206 209 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 255 255 0 255 255 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 139 139 0 139 139 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 128 128 0 128 128 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 135 206 235 135 206 235 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 95 158 160 95 158 160 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 47 79 79 47 79 79 -1 -1 90
-1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 119 136 153 119 136 153 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 112 128 144 112 128 144 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 176 196 222 176 196 222 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 173 216 230 173 216 230 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 176 224 230 176 224 230 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 175 238 238 175 238 238 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 224 255 255 224 255 255 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 240 248 255 240 248 255 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 240 255 255 240 255 255 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 205 0 0 205 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 139 0 0 139 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 25 25 112 25 25 112 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 36 36 140 36 36 140 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 255 0 0 255 -1 -1 90 1
-#"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 75 0 130 75 0 130 -1 -1 90
-1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 138 43 226 138 43 226 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 123 104 238 123 104 238 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 106 90 205 106 90 205 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 160 32 240 160 32 240 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 72 61 139 72 61 139 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 148 0 211 148 0 211 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 153 50 204 153 50 204 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 147 112 219 147 112 219 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 186 85 211 186 85 211 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 0 255 255 0 255 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 139 0 139 139 0 139 -1 -1
-90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 238 130 238 238 130 238 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 221 160 221 221 160 221 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 230 230 250 230 230 250 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 216 191 216 216 191 216 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 248 248 255 248 248 255 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 255 255 255 255 255 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 245 245 245 245 245 245 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 220 220 220 220 220 220 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 211 211 211 211 211 211 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 192 192 192 192 192 192 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 190 190 190 190 190 190 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 169 169 169 169 169 169 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 105 105 105 105 105 105 -1
--1 90 1 #"\0"
-0 70 1 #"\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 2
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 255 228 225 -1 -1 2
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 224 255 255 -1 -1 2
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 255 255 255 255 -1 -1
-2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 255 224 255 255 -1 -1
-2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 245 245 245 -1 -1 2
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 107 142 35 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 107 142 35 255 255 255 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 107 142 35 224 255 255 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 139 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 139 0 0 255 255 255 -1 -1
-2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 139 0 0 224 255 255 -1 -1
-2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 139 0 0 255 228 225 -1 -1
-2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 70 130 180 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 70 130 180 255 255 255 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 70 130 180 224 255 255 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 70 130 180 255 228 225 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 47 79 79 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 47 79 79 255 255 255 -1 -1
-2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 47 79 79 224 255 255 -1 -1
-2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 47 79 79 255 228 225 -1 -1
-2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 139 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 139 255 255 255 -1 -1
-2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 139 224 255 255 -1 -1
-2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 47 79 79 245 245 245 -1 -1
-2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 160 32 240 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 160 32 240 255 255 255 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 160 32 240 224 255 255 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 255 165 0 255 255 255 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 255 165 0 224 255 255 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 250 128 114 0 0 0 -1 -1 2
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 250 128 114 255 255 255 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 250 128 114 224 255 255 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 250 128 114 245 245 245 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 250 128 114 255 228 225 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 184 134 11 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 184 134 11 255 255 255 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 184 134 11 224 255 255 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 184 134 11 245 245 245 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 184 134 11 255 228 225 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 128 128 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 128 128 0 255 255 255 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 128 128 0 224 255 255 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 169 169 169 0 0 0 -1 -1 2
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 169 169 169 255 255 255 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 169 169 169 224 255 255 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 169 169 169 255 228 225 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 1 0 0 0 1 0 0 0 0 0 0 169 169 169 245 245 245 -1
--1 2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 192 46 214 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 90 -1 94 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 255 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 94 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 57 89 216 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 90 -1 -1 94 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 102 102 255 0 0 0 -1 -1 2
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 94 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 102 102 255 0 0 0 -1 -1 2
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 94 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 249 148 40 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 51 174 51 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 60 194 57 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 94 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 151 69 43 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 94 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 50 163 255 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 94 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 166 0 255 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 94 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 175 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 94 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 94 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 38 38 128 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 94 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 194 116 31 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 94 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 132 60 36 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 94 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 81 112 203 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 94 -1 -1 0 1 0 0 0 0 0 0 0 1 1 1 68 0 203 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 255 255 255 -1 -1 2
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 2
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 255 228 225 -1 -1 2
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 0 0 255 255 255 -1 -1
-2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 255 255 255 255 -1 -1
-2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 255 0 0 224 255 255 -1 -1
-2 1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 224 255 255 -1 -1 2
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 92 -1 -1 -1 -1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 255 224 255 255 -1 -1
-2 1 #"\0"
-0 70 8 #"Courier\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"Courier\0"
-1 0 92 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 2 1
-#"\0"
-0 70 8 #"Courier\0"
-1 0 92 -1 -1 -1 -1 -1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 255 0 0 0 -1 -1 2 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 192 192 192 0 0 0 -1 -1 2
-1 #"\0"
-0 70 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 192 192 192 0 0 0 -1 -1 22
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 14 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1 22 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 14 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 20 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 1 1 1 178 34 34 0 0 0 -1 -1 22 1
-#"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 15
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 14
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 20
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 255 255 255 -1 -1 4
-1 #"\0"
-0 -1 1 #"\0"
-1 0 -1 -1 -1 -1 -1 -1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 -1 -1
-00000000002 0 00000000000 39 00000000000 19 0 26 3 16
-#"#lang scheme/gui"
-0 0 4 29 1 #"\n"
-0 0 4 29 1 #"\n"
-0 0 22 3 1 #"("
-0 0 15 3 6 #"define"
-0 0 4 3 1 #" "
-0 0 22 3 1 #"("
-0 0 14 3 11 #"single-line"
-0 0 4 3 1 #" "
-0 0 14 3 4 #"name"
-0 0 4 3 1 #" "
-0 0 14 3 4 #"link"
-0 0 22 3 1 #")"
-0 0 4 29 1 #"\n"
-0 0 4 3 2 #" "
-0 39 00000000060 4 0 00000000000 1 00000000001 41 00000000000 5 0 45 3 8
-#""
-0 41 00000000014 45 1 00000000000 1 00000000000 1 0 14 3 4 #"name"
-0 00000000000 0 0 45 3 4 #""
-0 00000000000 0 0 22 3 1 #")"
-0 0 4 29 1 #"\n"
-0 0 4 29 1 #"\n"
-0 00000000000
diff --git a/collects/tex2page/info.ss b/collects/tex2page/info.rkt
similarity index 100%
rename from collects/tex2page/info.ss
rename to collects/tex2page/info.rkt
diff --git a/collects/tex2page/main.ss b/collects/tex2page/main.rkt
similarity index 100%
rename from collects/tex2page/main.ss
rename to collects/tex2page/main.rkt
diff --git a/collects/tex2page/start.ss b/collects/tex2page/start.rkt
similarity index 100%
rename from collects/tex2page/start.ss
rename to collects/tex2page/start.rkt
diff --git a/collects/tex2page/tex2page-aux.ss b/collects/tex2page/tex2page-aux.rkt
similarity index 100%
rename from collects/tex2page/tex2page-aux.ss
rename to collects/tex2page/tex2page-aux.rkt
diff --git a/collects/tex2page/tex2page.ss b/collects/tex2page/tex2page.rkt
similarity index 100%
rename from collects/tex2page/tex2page.ss
rename to collects/tex2page/tex2page.rkt
diff --git a/collects/texpict/balloon.ss b/collects/texpict/balloon.rkt
similarity index 100%
rename from collects/texpict/balloon.ss
rename to collects/texpict/balloon.rkt
diff --git a/collects/texpict/code.ss b/collects/texpict/code.rkt
similarity index 100%
rename from collects/texpict/code.ss
rename to collects/texpict/code.rkt
diff --git a/collects/texpict/face-demo.ss b/collects/texpict/face-demo.rkt
similarity index 100%
rename from collects/texpict/face-demo.ss
rename to collects/texpict/face-demo.rkt
diff --git a/collects/texpict/face.ss b/collects/texpict/face.rkt
similarity index 100%
rename from collects/texpict/face.ss
rename to collects/texpict/face.rkt
diff --git a/collects/texpict/flash.ss b/collects/texpict/flash.rkt
similarity index 100%
rename from collects/texpict/flash.ss
rename to collects/texpict/flash.rkt
diff --git a/collects/texpict/mrpict-sig.ss b/collects/texpict/mrpict-sig.rkt
similarity index 100%
rename from collects/texpict/mrpict-sig.ss
rename to collects/texpict/mrpict-sig.rkt
diff --git a/collects/texpict/mrpict-unit.ss b/collects/texpict/mrpict-unit.rkt
similarity index 100%
rename from collects/texpict/mrpict-unit.ss
rename to collects/texpict/mrpict-unit.rkt
diff --git a/collects/texpict/mrpict.ss b/collects/texpict/mrpict.rkt
similarity index 100%
rename from collects/texpict/mrpict.ss
rename to collects/texpict/mrpict.rkt
diff --git a/collects/texpict/pict-value-snip.ss b/collects/texpict/pict-value-snip.rkt
similarity index 100%
rename from collects/texpict/pict-value-snip.ss
rename to collects/texpict/pict-value-snip.rkt
diff --git a/collects/texpict/private/common-sig.ss b/collects/texpict/private/common-sig.rkt
similarity index 100%
rename from collects/texpict/private/common-sig.ss
rename to collects/texpict/private/common-sig.rkt
diff --git a/collects/texpict/private/common-unit.ss b/collects/texpict/private/common-unit.rkt
similarity index 100%
rename from collects/texpict/private/common-unit.ss
rename to collects/texpict/private/common-unit.rkt
diff --git a/collects/texpict/private/mrpict-extra.ss b/collects/texpict/private/mrpict-extra.rkt
similarity index 100%
rename from collects/texpict/private/mrpict-extra.ss
rename to collects/texpict/private/mrpict-extra.rkt
diff --git a/collects/texpict/private/mrpict-sig.ss b/collects/texpict/private/mrpict-sig.rkt
similarity index 100%
rename from collects/texpict/private/mrpict-sig.ss
rename to collects/texpict/private/mrpict-sig.rkt
diff --git a/collects/texpict/private/texpict-extra.ss b/collects/texpict/private/texpict-extra.rkt
similarity index 100%
rename from collects/texpict/private/texpict-extra.ss
rename to collects/texpict/private/texpict-extra.rkt
diff --git a/collects/texpict/private/texpict-sig.ss b/collects/texpict/private/texpict-sig.rkt
similarity index 100%
rename from collects/texpict/private/texpict-sig.ss
rename to collects/texpict/private/texpict-sig.rkt
diff --git a/collects/texpict/slideshow-run.ss b/collects/texpict/slideshow-run.rkt
similarity index 100%
rename from collects/texpict/slideshow-run.ss
rename to collects/texpict/slideshow-run.rkt
diff --git a/collects/texpict/slideshow.ss b/collects/texpict/slideshow.rkt
similarity index 100%
rename from collects/texpict/slideshow.ss
rename to collects/texpict/slideshow.rkt
diff --git a/collects/texpict/symbol.ss b/collects/texpict/symbol.rkt
similarity index 100%
rename from collects/texpict/symbol.ss
rename to collects/texpict/symbol.rkt
diff --git a/collects/texpict/texpict-sig.ss b/collects/texpict/texpict-sig.rkt
similarity index 100%
rename from collects/texpict/texpict-sig.ss
rename to collects/texpict/texpict-sig.rkt
diff --git a/collects/texpict/texpict-unit.ss b/collects/texpict/texpict-unit.rkt
similarity index 100%
rename from collects/texpict/texpict-unit.ss
rename to collects/texpict/texpict-unit.rkt
diff --git a/collects/texpict/texpict.ss b/collects/texpict/texpict.rkt
similarity index 100%
rename from collects/texpict/texpict.ss
rename to collects/texpict/texpict.rkt
diff --git a/collects/texpict/utils.ss b/collects/texpict/utils.rkt
similarity index 100%
rename from collects/texpict/utils.ss
rename to collects/texpict/utils.rkt
diff --git a/collects/trace/calltrace-lib.ss b/collects/trace/calltrace-lib.rkt
similarity index 100%
rename from collects/trace/calltrace-lib.ss
rename to collects/trace/calltrace-lib.rkt
diff --git a/collects/trace/calltrace.ss b/collects/trace/calltrace.rkt
similarity index 100%
rename from collects/trace/calltrace.ss
rename to collects/trace/calltrace.rkt
diff --git a/collects/trace/info.ss b/collects/trace/info.rkt
similarity index 100%
rename from collects/trace/info.ss
rename to collects/trace/info.rkt
diff --git a/collects/trace/main.ss b/collects/trace/main.rkt
similarity index 100%
rename from collects/trace/main.ss
rename to collects/trace/main.rkt
diff --git a/collects/trace/scribblings/info.ss b/collects/trace/scribblings/info.rkt
similarity index 100%
rename from collects/trace/scribblings/info.ss
rename to collects/trace/scribblings/info.rkt
diff --git a/collects/trace/stacktrace.ss b/collects/trace/stacktrace.rkt
similarity index 100%
rename from collects/trace/stacktrace.ss
rename to collects/trace/stacktrace.rkt
diff --git a/collects/typed-scheme/env/init-envs.ss b/collects/typed-scheme/env/init-envs.rkt
similarity index 100%
rename from collects/typed-scheme/env/init-envs.ss
rename to collects/typed-scheme/env/init-envs.rkt
diff --git a/collects/typed-scheme/env/lexical-env.ss b/collects/typed-scheme/env/lexical-env.rkt
similarity index 100%
rename from collects/typed-scheme/env/lexical-env.ss
rename to collects/typed-scheme/env/lexical-env.rkt
diff --git a/collects/typed-scheme/env/type-alias-env.ss b/collects/typed-scheme/env/type-alias-env.rkt
similarity index 100%
rename from collects/typed-scheme/env/type-alias-env.ss
rename to collects/typed-scheme/env/type-alias-env.rkt
diff --git a/collects/typed-scheme/env/type-env.ss b/collects/typed-scheme/env/type-env.rkt
similarity index 100%
rename from collects/typed-scheme/env/type-env.ss
rename to collects/typed-scheme/env/type-env.rkt
diff --git a/collects/typed-scheme/env/type-environments.ss b/collects/typed-scheme/env/type-environments.rkt
similarity index 100%
rename from collects/typed-scheme/env/type-environments.ss
rename to collects/typed-scheme/env/type-environments.rkt
diff --git a/collects/typed-scheme/env/type-name-env.ss b/collects/typed-scheme/env/type-name-env.rkt
similarity index 100%
rename from collects/typed-scheme/env/type-name-env.ss
rename to collects/typed-scheme/env/type-name-env.rkt
diff --git a/collects/typed-scheme/infer/constraint-structs.ss b/collects/typed-scheme/infer/constraint-structs.rkt
similarity index 100%
rename from collects/typed-scheme/infer/constraint-structs.ss
rename to collects/typed-scheme/infer/constraint-structs.rkt
diff --git a/collects/typed-scheme/infer/constraints.ss b/collects/typed-scheme/infer/constraints.rkt
similarity index 100%
rename from collects/typed-scheme/infer/constraints.ss
rename to collects/typed-scheme/infer/constraints.rkt
diff --git a/collects/typed-scheme/infer/dmap.ss b/collects/typed-scheme/infer/dmap.rkt
similarity index 100%
rename from collects/typed-scheme/infer/dmap.ss
rename to collects/typed-scheme/infer/dmap.rkt
diff --git a/collects/typed-scheme/infer/infer-dummy.ss b/collects/typed-scheme/infer/infer-dummy.rkt
similarity index 100%
rename from collects/typed-scheme/infer/infer-dummy.ss
rename to collects/typed-scheme/infer/infer-dummy.rkt
diff --git a/collects/typed-scheme/infer/infer-unit.ss b/collects/typed-scheme/infer/infer-unit.rkt
similarity index 100%
rename from collects/typed-scheme/infer/infer-unit.ss
rename to collects/typed-scheme/infer/infer-unit.rkt
diff --git a/collects/typed-scheme/infer/infer.ss b/collects/typed-scheme/infer/infer.rkt
similarity index 100%
rename from collects/typed-scheme/infer/infer.ss
rename to collects/typed-scheme/infer/infer.rkt
diff --git a/collects/typed-scheme/infer/promote-demote.ss b/collects/typed-scheme/infer/promote-demote.rkt
similarity index 100%
rename from collects/typed-scheme/infer/promote-demote.ss
rename to collects/typed-scheme/infer/promote-demote.rkt
diff --git a/collects/typed-scheme/infer/restrict.ss b/collects/typed-scheme/infer/restrict.rkt
similarity index 100%
rename from collects/typed-scheme/infer/restrict.ss
rename to collects/typed-scheme/infer/restrict.rkt
diff --git a/collects/typed-scheme/infer/signatures.ss b/collects/typed-scheme/infer/signatures.rkt
similarity index 100%
rename from collects/typed-scheme/infer/signatures.ss
rename to collects/typed-scheme/infer/signatures.rkt
diff --git a/collects/typed-scheme/info.ss b/collects/typed-scheme/info.rkt
similarity index 100%
rename from collects/typed-scheme/info.ss
rename to collects/typed-scheme/info.rkt
diff --git a/collects/typed-scheme/lang/reader.ss b/collects/typed-scheme/lang/reader.rkt
similarity index 100%
rename from collects/typed-scheme/lang/reader.ss
rename to collects/typed-scheme/lang/reader.rkt
diff --git a/collects/typed-scheme/language-info.ss b/collects/typed-scheme/language-info.rkt
similarity index 100%
rename from collects/typed-scheme/language-info.ss
rename to collects/typed-scheme/language-info.rkt
diff --git a/collects/typed-scheme/main.ss b/collects/typed-scheme/main.rkt
similarity index 100%
rename from collects/typed-scheme/main.ss
rename to collects/typed-scheme/main.rkt
diff --git a/collects/typed-scheme/minimal.ss b/collects/typed-scheme/minimal.rkt
similarity index 100%
rename from collects/typed-scheme/minimal.ss
rename to collects/typed-scheme/minimal.rkt
diff --git a/collects/typed-scheme/no-check.ss b/collects/typed-scheme/no-check.rkt
similarity index 100%
rename from collects/typed-scheme/no-check.ss
rename to collects/typed-scheme/no-check.rkt
diff --git a/collects/typed-scheme/no-check/lang/reader.ss b/collects/typed-scheme/no-check/lang/reader.rkt
similarity index 100%
rename from collects/typed-scheme/no-check/lang/reader.ss
rename to collects/typed-scheme/no-check/lang/reader.rkt
diff --git a/collects/typed-scheme/private/annotate-classes.ss b/collects/typed-scheme/private/annotate-classes.rkt
similarity index 100%
rename from collects/typed-scheme/private/annotate-classes.ss
rename to collects/typed-scheme/private/annotate-classes.rkt
diff --git a/collects/typed-scheme/private/base-env-indexing-abs.ss b/collects/typed-scheme/private/base-env-indexing-abs.rkt
similarity index 100%
rename from collects/typed-scheme/private/base-env-indexing-abs.ss
rename to collects/typed-scheme/private/base-env-indexing-abs.rkt
diff --git a/collects/typed-scheme/private/base-env-indexing-old.ss b/collects/typed-scheme/private/base-env-indexing-old.rkt
similarity index 100%
rename from collects/typed-scheme/private/base-env-indexing-old.ss
rename to collects/typed-scheme/private/base-env-indexing-old.rkt
diff --git a/collects/typed-scheme/private/base-env-indexing.ss b/collects/typed-scheme/private/base-env-indexing.rkt
similarity index 100%
rename from collects/typed-scheme/private/base-env-indexing.ss
rename to collects/typed-scheme/private/base-env-indexing.rkt
diff --git a/collects/typed-scheme/private/base-env-numeric.ss b/collects/typed-scheme/private/base-env-numeric.rkt
similarity index 100%
rename from collects/typed-scheme/private/base-env-numeric.ss
rename to collects/typed-scheme/private/base-env-numeric.rkt
diff --git a/collects/typed-scheme/private/base-env.ss b/collects/typed-scheme/private/base-env.rkt
similarity index 100%
rename from collects/typed-scheme/private/base-env.ss
rename to collects/typed-scheme/private/base-env.rkt
diff --git a/collects/typed-scheme/private/base-special-env.ss b/collects/typed-scheme/private/base-special-env.rkt
similarity index 100%
rename from collects/typed-scheme/private/base-special-env.ss
rename to collects/typed-scheme/private/base-special-env.rkt
diff --git a/collects/typed-scheme/private/base-types-extra.ss b/collects/typed-scheme/private/base-types-extra.rkt
similarity index 100%
rename from collects/typed-scheme/private/base-types-extra.ss
rename to collects/typed-scheme/private/base-types-extra.rkt
diff --git a/collects/typed-scheme/private/base-types-new.ss b/collects/typed-scheme/private/base-types-new.rkt
similarity index 100%
rename from collects/typed-scheme/private/base-types-new.ss
rename to collects/typed-scheme/private/base-types-new.rkt
diff --git a/collects/typed-scheme/private/base-types.ss b/collects/typed-scheme/private/base-types.rkt
similarity index 100%
rename from collects/typed-scheme/private/base-types.ss
rename to collects/typed-scheme/private/base-types.rkt
diff --git a/collects/typed-scheme/private/colon.ss b/collects/typed-scheme/private/colon.rkt
similarity index 100%
rename from collects/typed-scheme/private/colon.ss
rename to collects/typed-scheme/private/colon.rkt
diff --git a/collects/typed-scheme/private/env-lang.ss b/collects/typed-scheme/private/env-lang.rkt
similarity index 100%
rename from collects/typed-scheme/private/env-lang.ss
rename to collects/typed-scheme/private/env-lang.rkt
diff --git a/collects/typed-scheme/private/extra-procs.ss b/collects/typed-scheme/private/extra-procs.rkt
similarity index 100%
rename from collects/typed-scheme/private/extra-procs.ss
rename to collects/typed-scheme/private/extra-procs.rkt
diff --git a/collects/typed-scheme/private/internal.ss b/collects/typed-scheme/private/internal.rkt
similarity index 100%
rename from collects/typed-scheme/private/internal.ss
rename to collects/typed-scheme/private/internal.rkt
diff --git a/collects/typed-scheme/private/optimize.ss b/collects/typed-scheme/private/optimize.rkt
similarity index 100%
rename from collects/typed-scheme/private/optimize.ss
rename to collects/typed-scheme/private/optimize.rkt
diff --git a/collects/typed-scheme/private/parse-type.ss b/collects/typed-scheme/private/parse-type.rkt
similarity index 100%
rename from collects/typed-scheme/private/parse-type.ss
rename to collects/typed-scheme/private/parse-type.rkt
diff --git a/collects/typed-scheme/private/prims.ss b/collects/typed-scheme/private/prims.rkt
similarity index 100%
rename from collects/typed-scheme/private/prims.ss
rename to collects/typed-scheme/private/prims.rkt
diff --git a/collects/typed-scheme/private/type-annotation.ss b/collects/typed-scheme/private/type-annotation.rkt
similarity index 100%
rename from collects/typed-scheme/private/type-annotation.ss
rename to collects/typed-scheme/private/type-annotation.rkt
diff --git a/collects/typed-scheme/private/type-contract.ss b/collects/typed-scheme/private/type-contract.rkt
similarity index 100%
rename from collects/typed-scheme/private/type-contract.ss
rename to collects/typed-scheme/private/type-contract.rkt
diff --git a/collects/typed-scheme/private/type-env-lang.ss b/collects/typed-scheme/private/type-env-lang.rkt
similarity index 100%
rename from collects/typed-scheme/private/type-env-lang.ss
rename to collects/typed-scheme/private/type-env-lang.rkt
diff --git a/collects/typed-scheme/private/typed-renaming.ss b/collects/typed-scheme/private/typed-renaming.rkt
similarity index 100%
rename from collects/typed-scheme/private/typed-renaming.ss
rename to collects/typed-scheme/private/typed-renaming.rkt
diff --git a/collects/typed-scheme/private/with-types.ss b/collects/typed-scheme/private/with-types.rkt
similarity index 88%
rename from collects/typed-scheme/private/with-types.ss
rename to collects/typed-scheme/private/with-types.rkt
index 9e0c85dd6d..52b506a54a 100644
--- a/collects/typed-scheme/private/with-types.ss
+++ b/collects/typed-scheme/private/with-types.rkt
@@ -2,29 +2,29 @@
(require (for-syntax scheme/base syntax/parse mzlib/etc scheme/match)
scheme/require
- "base-env.ss"
- "base-special-env.ss"
- "base-env-numeric.ss"
- "base-env-indexing-old.ss"
- "extra-procs.ss"
- "prims.ss"
- "base-types.ss"
+ "base-env.rkt"
+ "base-special-env.rkt"
+ "base-env-numeric.rkt"
+ "base-env-indexing-old.rkt"
+ "extra-procs.rkt"
+ "prims.rkt"
+ "base-types.rkt"
racket/contract/regions racket/contract/base
(for-syntax
- "base-types-extra.ss"
+ "base-types-extra.rkt"
unstable/debug
- (path-up "env/type-name-env.ss"
- "env/type-alias-env.ss"
- "infer/infer-dummy.ss"
- "private/parse-type.ss"
- "private/type-contract.ss"
- "typecheck/typechecker.ss"
- "env/type-environments.ss"
- "env/type-env.ss"
- "infer/infer.ss"
- "utils/tc-utils.ss"
- "types/utils.ss")
- (except-in (path-up "utils/utils.ss" "types/convenience.ss" "types/abbrev.ss") infer ->)))
+ (path-up "env/type-name-env.rkt"
+ "env/type-alias-env.rkt"
+ "infer/infer-dummy.rkt"
+ "private/parse-type.rkt"
+ "private/type-contract.rkt"
+ "typecheck/typechecker.rkt"
+ "env/type-environments.rkt"
+ "env/type-env.rkt"
+ "infer/infer.rkt"
+ "utils/tc-utils.rkt"
+ "types/utils.rkt")
+ (except-in (path-up "utils/utils.rkt" "types/convenience.rkt" "types/abbrev.rkt") infer ->)))
(provide with-type)
diff --git a/collects/typed-scheme/rep/filter-rep.ss b/collects/typed-scheme/rep/filter-rep.rkt
similarity index 100%
rename from collects/typed-scheme/rep/filter-rep.ss
rename to collects/typed-scheme/rep/filter-rep.rkt
diff --git a/collects/typed-scheme/rep/free-variance.ss b/collects/typed-scheme/rep/free-variance.rkt
similarity index 100%
rename from collects/typed-scheme/rep/free-variance.ss
rename to collects/typed-scheme/rep/free-variance.rkt
diff --git a/collects/typed-scheme/rep/interning.ss b/collects/typed-scheme/rep/interning.rkt
similarity index 100%
rename from collects/typed-scheme/rep/interning.ss
rename to collects/typed-scheme/rep/interning.rkt
diff --git a/collects/typed-scheme/rep/object-rep.ss b/collects/typed-scheme/rep/object-rep.rkt
similarity index 100%
rename from collects/typed-scheme/rep/object-rep.ss
rename to collects/typed-scheme/rep/object-rep.rkt
diff --git a/collects/typed-scheme/rep/rep-utils.ss b/collects/typed-scheme/rep/rep-utils.rkt
similarity index 100%
rename from collects/typed-scheme/rep/rep-utils.ss
rename to collects/typed-scheme/rep/rep-utils.rkt
diff --git a/collects/typed-scheme/rep/type-rep.ss b/collects/typed-scheme/rep/type-rep.rkt
similarity index 100%
rename from collects/typed-scheme/rep/type-rep.ss
rename to collects/typed-scheme/rep/type-rep.rkt
diff --git a/collects/typed-scheme/scribblings/utils.ss b/collects/typed-scheme/scribblings/utils.rkt
similarity index 100%
rename from collects/typed-scheme/scribblings/utils.ss
rename to collects/typed-scheme/scribblings/utils.rkt
diff --git a/collects/typed-scheme/typecheck/check-subforms-unit.ss b/collects/typed-scheme/typecheck/check-subforms-unit.rkt
similarity index 100%
rename from collects/typed-scheme/typecheck/check-subforms-unit.ss
rename to collects/typed-scheme/typecheck/check-subforms-unit.rkt
diff --git a/collects/typed-scheme/typecheck/def-binding.ss b/collects/typed-scheme/typecheck/def-binding.rkt
similarity index 100%
rename from collects/typed-scheme/typecheck/def-binding.ss
rename to collects/typed-scheme/typecheck/def-binding.rkt
diff --git a/collects/typed-scheme/typecheck/find-annotation.ss b/collects/typed-scheme/typecheck/find-annotation.rkt
similarity index 100%
rename from collects/typed-scheme/typecheck/find-annotation.ss
rename to collects/typed-scheme/typecheck/find-annotation.rkt
diff --git a/collects/typed-scheme/typecheck/internal-forms.ss b/collects/typed-scheme/typecheck/internal-forms.rkt
similarity index 100%
rename from collects/typed-scheme/typecheck/internal-forms.ss
rename to collects/typed-scheme/typecheck/internal-forms.rkt
diff --git a/collects/typed-scheme/typecheck/provide-handling.ss b/collects/typed-scheme/typecheck/provide-handling.rkt
similarity index 100%
rename from collects/typed-scheme/typecheck/provide-handling.ss
rename to collects/typed-scheme/typecheck/provide-handling.rkt
diff --git a/collects/typed-scheme/typecheck/signatures.ss b/collects/typed-scheme/typecheck/signatures.rkt
similarity index 100%
rename from collects/typed-scheme/typecheck/signatures.ss
rename to collects/typed-scheme/typecheck/signatures.rkt
diff --git a/collects/typed-scheme/typecheck/tc-app-helper.ss b/collects/typed-scheme/typecheck/tc-app-helper.rkt
similarity index 100%
rename from collects/typed-scheme/typecheck/tc-app-helper.ss
rename to collects/typed-scheme/typecheck/tc-app-helper.rkt
diff --git a/collects/typed-scheme/typecheck/tc-app.ss b/collects/typed-scheme/typecheck/tc-app.rkt
similarity index 100%
rename from collects/typed-scheme/typecheck/tc-app.ss
rename to collects/typed-scheme/typecheck/tc-app.rkt
diff --git a/collects/typed-scheme/typecheck/tc-dots-unit.ss b/collects/typed-scheme/typecheck/tc-dots-unit.rkt
similarity index 100%
rename from collects/typed-scheme/typecheck/tc-dots-unit.ss
rename to collects/typed-scheme/typecheck/tc-dots-unit.rkt
diff --git a/collects/typed-scheme/typecheck/tc-envops.ss b/collects/typed-scheme/typecheck/tc-envops.rkt
similarity index 100%
rename from collects/typed-scheme/typecheck/tc-envops.ss
rename to collects/typed-scheme/typecheck/tc-envops.rkt
diff --git a/collects/typed-scheme/typecheck/tc-expr-unit.ss b/collects/typed-scheme/typecheck/tc-expr-unit.rkt
similarity index 100%
rename from collects/typed-scheme/typecheck/tc-expr-unit.ss
rename to collects/typed-scheme/typecheck/tc-expr-unit.rkt
diff --git a/collects/typed-scheme/typecheck/tc-if.ss b/collects/typed-scheme/typecheck/tc-if.rkt
similarity index 100%
rename from collects/typed-scheme/typecheck/tc-if.ss
rename to collects/typed-scheme/typecheck/tc-if.rkt
diff --git a/collects/typed-scheme/typecheck/tc-lambda-unit.ss b/collects/typed-scheme/typecheck/tc-lambda-unit.rkt
similarity index 100%
rename from collects/typed-scheme/typecheck/tc-lambda-unit.ss
rename to collects/typed-scheme/typecheck/tc-lambda-unit.rkt
diff --git a/collects/typed-scheme/typecheck/tc-let-unit.ss b/collects/typed-scheme/typecheck/tc-let-unit.rkt
similarity index 100%
rename from collects/typed-scheme/typecheck/tc-let-unit.ss
rename to collects/typed-scheme/typecheck/tc-let-unit.rkt
diff --git a/collects/typed-scheme/typecheck/tc-metafunctions.ss b/collects/typed-scheme/typecheck/tc-metafunctions.rkt
similarity index 100%
rename from collects/typed-scheme/typecheck/tc-metafunctions.ss
rename to collects/typed-scheme/typecheck/tc-metafunctions.rkt
diff --git a/collects/typed-scheme/typecheck/tc-structs.ss b/collects/typed-scheme/typecheck/tc-structs.rkt
similarity index 100%
rename from collects/typed-scheme/typecheck/tc-structs.ss
rename to collects/typed-scheme/typecheck/tc-structs.rkt
diff --git a/collects/typed-scheme/typecheck/tc-toplevel.ss b/collects/typed-scheme/typecheck/tc-toplevel.rkt
similarity index 100%
rename from collects/typed-scheme/typecheck/tc-toplevel.ss
rename to collects/typed-scheme/typecheck/tc-toplevel.rkt
diff --git a/collects/typed-scheme/typecheck/typechecker.ss b/collects/typed-scheme/typecheck/typechecker.rkt
similarity index 100%
rename from collects/typed-scheme/typecheck/typechecker.ss
rename to collects/typed-scheme/typecheck/typechecker.rkt
diff --git a/collects/typed-scheme/typed-reader.ss b/collects/typed-scheme/typed-reader.rkt
similarity index 100%
rename from collects/typed-scheme/typed-reader.ss
rename to collects/typed-scheme/typed-reader.rkt
diff --git a/collects/typed-scheme/typed-scheme.ss b/collects/typed-scheme/typed-scheme.rkt
similarity index 100%
rename from collects/typed-scheme/typed-scheme.ss
rename to collects/typed-scheme/typed-scheme.rkt
diff --git a/collects/typed-scheme/types/abbrev.ss b/collects/typed-scheme/types/abbrev.rkt
similarity index 100%
rename from collects/typed-scheme/types/abbrev.ss
rename to collects/typed-scheme/types/abbrev.rkt
diff --git a/collects/typed-scheme/types/comparison.ss b/collects/typed-scheme/types/comparison.rkt
similarity index 100%
rename from collects/typed-scheme/types/comparison.ss
rename to collects/typed-scheme/types/comparison.rkt
diff --git a/collects/typed-scheme/types/convenience.ss b/collects/typed-scheme/types/convenience.rkt
similarity index 100%
rename from collects/typed-scheme/types/convenience.ss
rename to collects/typed-scheme/types/convenience.rkt
diff --git a/collects/typed-scheme/types/printer.ss b/collects/typed-scheme/types/printer.rkt
similarity index 100%
rename from collects/typed-scheme/types/printer.ss
rename to collects/typed-scheme/types/printer.rkt
diff --git a/collects/typed-scheme/types/remove-intersect.ss b/collects/typed-scheme/types/remove-intersect.rkt
similarity index 100%
rename from collects/typed-scheme/types/remove-intersect.ss
rename to collects/typed-scheme/types/remove-intersect.rkt
diff --git a/collects/typed-scheme/types/resolve.ss b/collects/typed-scheme/types/resolve.rkt
similarity index 100%
rename from collects/typed-scheme/types/resolve.ss
rename to collects/typed-scheme/types/resolve.rkt
diff --git a/collects/typed-scheme/types/subtype.ss b/collects/typed-scheme/types/subtype.rkt
similarity index 100%
rename from collects/typed-scheme/types/subtype.ss
rename to collects/typed-scheme/types/subtype.rkt
diff --git a/collects/typed-scheme/types/type-table.ss b/collects/typed-scheme/types/type-table.rkt
similarity index 100%
rename from collects/typed-scheme/types/type-table.ss
rename to collects/typed-scheme/types/type-table.rkt
diff --git a/collects/typed-scheme/types/union.ss b/collects/typed-scheme/types/union.rkt
similarity index 100%
rename from collects/typed-scheme/types/union.ss
rename to collects/typed-scheme/types/union.rkt
diff --git a/collects/typed-scheme/types/utils.ss b/collects/typed-scheme/types/utils.rkt
similarity index 100%
rename from collects/typed-scheme/types/utils.ss
rename to collects/typed-scheme/types/utils.rkt
diff --git a/collects/typed-scheme/utils/any-wrap.ss b/collects/typed-scheme/utils/any-wrap.rkt
similarity index 100%
rename from collects/typed-scheme/utils/any-wrap.ss
rename to collects/typed-scheme/utils/any-wrap.rkt
diff --git a/collects/typed-scheme/utils/require-contract.ss b/collects/typed-scheme/utils/require-contract.rkt
similarity index 100%
rename from collects/typed-scheme/utils/require-contract.ss
rename to collects/typed-scheme/utils/require-contract.rkt
diff --git a/collects/typed-scheme/utils/stxclass-util.ss b/collects/typed-scheme/utils/stxclass-util.rkt
similarity index 100%
rename from collects/typed-scheme/utils/stxclass-util.ss
rename to collects/typed-scheme/utils/stxclass-util.rkt
diff --git a/collects/typed-scheme/utils/syntax-traversal.ss b/collects/typed-scheme/utils/syntax-traversal.rkt
similarity index 100%
rename from collects/typed-scheme/utils/syntax-traversal.ss
rename to collects/typed-scheme/utils/syntax-traversal.rkt
diff --git a/collects/typed-scheme/utils/tc-utils.ss b/collects/typed-scheme/utils/tc-utils.rkt
similarity index 100%
rename from collects/typed-scheme/utils/tc-utils.ss
rename to collects/typed-scheme/utils/tc-utils.rkt
diff --git a/collects/typed-scheme/utils/unit-utils.ss b/collects/typed-scheme/utils/unit-utils.rkt
similarity index 100%
rename from collects/typed-scheme/utils/unit-utils.ss
rename to collects/typed-scheme/utils/unit-utils.rkt
diff --git a/collects/typed-scheme/utils/utils.ss b/collects/typed-scheme/utils/utils.rkt
similarity index 100%
rename from collects/typed-scheme/utils/utils.ss
rename to collects/typed-scheme/utils/utils.rkt
diff --git a/collects/typed/file/gif.ss b/collects/typed/file/gif.rkt
similarity index 100%
rename from collects/typed/file/gif.ss
rename to collects/typed/file/gif.rkt
diff --git a/collects/typed/file/md5.ss b/collects/typed/file/md5.rkt
similarity index 100%
rename from collects/typed/file/md5.ss
rename to collects/typed/file/md5.rkt
diff --git a/collects/typed/file/tar.ss b/collects/typed/file/tar.rkt
similarity index 100%
rename from collects/typed/file/tar.ss
rename to collects/typed/file/tar.rkt
diff --git a/collects/typed/framework/framework.ss b/collects/typed/framework/framework.rkt
similarity index 96%
rename from collects/typed/framework/framework.ss
rename to collects/typed/framework/framework.rkt
index ee624fbc61..f5341ed57c 100644
--- a/collects/typed/framework/framework.ss
+++ b/collects/typed/framework/framework.rkt
@@ -35,7 +35,7 @@
((Instance Horizontal-Panel%) ((Instance Button%) (Instance Event%) -> Void) ((Instance Button%) (Instance Event%) -> Void) -> (values Any Any))])
(require/typed/provide "prefs-contract.ss"
- [preferences:get-drscheme:large-letters-font (-> (U #f (Pair String Integer)))])
+ [preferences:get-drracket:large-letters-font (-> (U #f (Pair String Integer)))])
(require (only-in "prefs-contract.ss" preferences:get))
(provide preferences:get)
diff --git a/collects/typed/framework/prefs-contract.ss b/collects/typed/framework/prefs-contract.rkt
similarity index 71%
rename from collects/typed/framework/prefs-contract.ss
rename to collects/typed/framework/prefs-contract.rkt
index dd62fb14d3..9abefcc0c9 100644
--- a/collects/typed/framework/prefs-contract.ss
+++ b/collects/typed/framework/prefs-contract.rkt
@@ -4,10 +4,10 @@
framework/framework)
(provide (rename-out [-preferences:get preferences:get])
- preferences:get-drscheme:large-letters-font)
+ preferences:get-drracket:large-letters-font)
-(define (preferences:get-drscheme:large-letters-font)
- (preferences:get 'drscheme:large-letters-font))
+(define (preferences:get-drracket:large-letters-font)
+ (preferences:get 'drracket:large-letters-font))
(define-syntax (-preferences:get stx)
(syntax-case stx (quote)
diff --git a/collects/typed/mred/mred.ss b/collects/typed/mred/mred.rkt
similarity index 100%
rename from collects/typed/mred/mred.ss
rename to collects/typed/mred/mred.rkt
diff --git a/collects/typed/net/base64.ss b/collects/typed/net/base64.rkt
similarity index 100%
rename from collects/typed/net/base64.ss
rename to collects/typed/net/base64.rkt
diff --git a/collects/typed/net/cgi.ss b/collects/typed/net/cgi.rkt
similarity index 100%
rename from collects/typed/net/cgi.ss
rename to collects/typed/net/cgi.rkt
diff --git a/collects/typed/net/cookie.ss b/collects/typed/net/cookie.rkt
similarity index 100%
rename from collects/typed/net/cookie.ss
rename to collects/typed/net/cookie.rkt
diff --git a/collects/typed/net/dns.ss b/collects/typed/net/dns.rkt
similarity index 100%
rename from collects/typed/net/dns.ss
rename to collects/typed/net/dns.rkt
diff --git a/collects/typed/net/ftp.ss b/collects/typed/net/ftp.rkt
similarity index 100%
rename from collects/typed/net/ftp.ss
rename to collects/typed/net/ftp.rkt
diff --git a/collects/typed/net/gifwrite.ss b/collects/typed/net/gifwrite.rkt
similarity index 100%
rename from collects/typed/net/gifwrite.ss
rename to collects/typed/net/gifwrite.rkt
diff --git a/collects/typed/net/head.ss b/collects/typed/net/head.rkt
similarity index 100%
rename from collects/typed/net/head.ss
rename to collects/typed/net/head.rkt
diff --git a/collects/typed/net/imap.ss b/collects/typed/net/imap.rkt
similarity index 100%
rename from collects/typed/net/imap.ss
rename to collects/typed/net/imap.rkt
diff --git a/collects/typed/net/mime.ss b/collects/typed/net/mime.rkt
similarity index 100%
rename from collects/typed/net/mime.ss
rename to collects/typed/net/mime.rkt
diff --git a/collects/typed/net/nntp.ss b/collects/typed/net/nntp.rkt
similarity index 100%
rename from collects/typed/net/nntp.ss
rename to collects/typed/net/nntp.rkt
diff --git a/collects/typed/net/pop3.ss b/collects/typed/net/pop3.rkt
similarity index 100%
rename from collects/typed/net/pop3.ss
rename to collects/typed/net/pop3.rkt
diff --git a/collects/typed/net/qp.ss b/collects/typed/net/qp.rkt
similarity index 100%
rename from collects/typed/net/qp.ss
rename to collects/typed/net/qp.rkt
diff --git a/collects/typed/net/sendmail.ss b/collects/typed/net/sendmail.rkt
similarity index 100%
rename from collects/typed/net/sendmail.ss
rename to collects/typed/net/sendmail.rkt
diff --git a/collects/typed/net/sendurl.ss b/collects/typed/net/sendurl.rkt
similarity index 100%
rename from collects/typed/net/sendurl.ss
rename to collects/typed/net/sendurl.rkt
diff --git a/collects/typed/net/smtp.ss b/collects/typed/net/smtp.rkt
similarity index 100%
rename from collects/typed/net/smtp.ss
rename to collects/typed/net/smtp.rkt
diff --git a/collects/typed/net/uri-codec.ss b/collects/typed/net/uri-codec.rkt
similarity index 100%
rename from collects/typed/net/uri-codec.ss
rename to collects/typed/net/uri-codec.rkt
diff --git a/collects/typed/net/url.ss b/collects/typed/net/url.rkt
similarity index 100%
rename from collects/typed/net/url.ss
rename to collects/typed/net/url.rkt
diff --git a/collects/typed/private/utils.ss b/collects/typed/private/utils.rkt
similarity index 100%
rename from collects/typed/private/utils.ss
rename to collects/typed/private/utils.rkt
diff --git a/collects/typed/private/wrap.ss b/collects/typed/private/wrap.rkt
similarity index 100%
rename from collects/typed/private/wrap.ss
rename to collects/typed/private/wrap.rkt
diff --git a/collects/typed/scheme.ss b/collects/typed/scheme.rkt
similarity index 100%
rename from collects/typed/scheme.ss
rename to collects/typed/scheme.rkt
diff --git a/collects/typed/scheme/base.ss b/collects/typed/scheme/base.rkt
similarity index 100%
rename from collects/typed/scheme/base.ss
rename to collects/typed/scheme/base.rkt
diff --git a/collects/typed/scheme/base/lang/reader.ss b/collects/typed/scheme/base/lang/reader.rkt
similarity index 100%
rename from collects/typed/scheme/base/lang/reader.ss
rename to collects/typed/scheme/base/lang/reader.rkt
diff --git a/collects/typed/scheme/lang/reader.ss b/collects/typed/scheme/lang/reader.rkt
similarity index 100%
rename from collects/typed/scheme/lang/reader.ss
rename to collects/typed/scheme/lang/reader.rkt
diff --git a/collects/typed/scheme/system.ss b/collects/typed/scheme/system.rkt
similarity index 100%
rename from collects/typed/scheme/system.ss
rename to collects/typed/scheme/system.rkt
diff --git a/collects/typed/srfi/14.ss b/collects/typed/srfi/14.rkt
similarity index 100%
rename from collects/typed/srfi/14.ss
rename to collects/typed/srfi/14.rkt
diff --git a/collects/typed/test-engine/scheme-tests.ss b/collects/typed/test-engine/scheme-tests.rkt
similarity index 100%
rename from collects/typed/test-engine/scheme-tests.ss
rename to collects/typed/test-engine/scheme-tests.rkt
diff --git a/collects/typed/test-engine/type-env-ext.ss b/collects/typed/test-engine/type-env-ext.rkt
similarity index 100%
rename from collects/typed/test-engine/type-env-ext.ss
rename to collects/typed/test-engine/type-env-ext.rkt
diff --git a/collects/unstable/bytes.ss b/collects/unstable/bytes.rkt
similarity index 96%
rename from collects/unstable/bytes.ss
rename to collects/unstable/bytes.rkt
index d6da04b714..f8e096ecee 100644
--- a/collects/unstable/bytes.ss
+++ b/collects/unstable/bytes.rkt
@@ -1,5 +1,5 @@
-#lang scheme
-(require scheme/serialize)
+#lang racket
+(require racket/serialize)
(provide/contract
[read/bytes (bytes? . -> . serializable?)]
diff --git a/collects/unstable/class-iop.ss b/collects/unstable/class-iop.rkt
similarity index 98%
rename from collects/unstable/class-iop.ss
rename to collects/unstable/class-iop.rkt
index 1cc78b4780..db0c8a98c1 100644
--- a/collects/unstable/class-iop.ss
+++ b/collects/unstable/class-iop.rkt
@@ -1,10 +1,10 @@
-#lang scheme/base
+#lang racket/base
;; owner: ryanc
-(require scheme/class
- (for-syntax scheme/base
+(require racket/class
+ (for-syntax racket/base
syntax/parse
unstable/syntax
- "private/class-iop-ct.ss"))
+ "private/class-iop-ct.rkt"))
(provide define-interface
define-interface/dynamic
define-interface-expander
diff --git a/collects/unstable/contract.ss b/collects/unstable/contract.rkt
similarity index 98%
rename from collects/unstable/contract.ss
rename to collects/unstable/contract.rkt
index 1440da087d..58812d3d57 100644
--- a/collects/unstable/contract.ss
+++ b/collects/unstable/contract.rkt
@@ -1,5 +1,5 @@
-#lang scheme/base
-(require scheme/contract)
+#lang racket/base
+(require racket/contract)
(define path-element?
(or/c path-string? (symbols 'up 'same)))
diff --git a/collects/unstable/debug.ss b/collects/unstable/debug.rkt
similarity index 93%
rename from collects/unstable/debug.ss
rename to collects/unstable/debug.rkt
index 750c573cd8..b8960d053e 100644
--- a/collects/unstable/debug.ss
+++ b/collects/unstable/debug.rkt
@@ -1,4 +1,4 @@
-#lang scheme/base
+#lang racket/base
(provide debug)
diff --git a/collects/unstable/dirs.ss b/collects/unstable/dirs.rkt
similarity index 100%
rename from collects/unstable/dirs.ss
rename to collects/unstable/dirs.rkt
diff --git a/collects/unstable/exn.ss b/collects/unstable/exn.rkt
similarity index 97%
rename from collects/unstable/exn.ss
rename to collects/unstable/exn.rkt
index e20207676f..7d9cdf3cea 100644
--- a/collects/unstable/exn.ss
+++ b/collects/unstable/exn.rkt
@@ -1,4 +1,4 @@
-#lang scheme/base
+#lang racket/base
(require mzlib/contract)
;; network-error: symbol string . values -> void
diff --git a/collects/unstable/file.ss b/collects/unstable/file.rkt
similarity index 93%
rename from collects/unstable/file.ss
rename to collects/unstable/file.rkt
index 829a96ba66..389bcd1fd2 100644
--- a/collects/unstable/file.ss
+++ b/collects/unstable/file.rkt
@@ -1,6 +1,6 @@
-#lang scheme/base
+#lang racket/base
; Responsible: Jay McCarthy
-(require scheme/contract)
+(require racket/contract)
(define (exn:fail:filesystem:exists? x)
(and (exn:fail:filesystem? x)
diff --git a/collects/unstable/find.ss b/collects/unstable/find.rkt
similarity index 98%
rename from collects/unstable/find.ss
rename to collects/unstable/find.rkt
index 3fc197e7e3..86fdbb2afd 100644
--- a/collects/unstable/find.ss
+++ b/collects/unstable/find.rkt
@@ -1,5 +1,5 @@
-#lang scheme/base
-(require scheme/contract
+#lang racket/base
+(require racket/contract
unstable/struct)
(provide/contract
diff --git a/collects/unstable/generics.ss b/collects/unstable/generics.rkt
similarity index 97%
rename from collects/unstable/generics.ss
rename to collects/unstable/generics.rkt
index 9c098974be..ccc38511cb 100644
--- a/collects/unstable/generics.ss
+++ b/collects/unstable/generics.rkt
@@ -1,7 +1,7 @@
-#lang scheme/base
-(require scheme/local
- (for-syntax scheme/base
- scheme/local))
+#lang racket/base
+(require racket/local
+ (for-syntax racket/base
+ racket/local))
(define-for-syntax (keyword-stx? v)
(keyword? (syntax->datum v)))
@@ -135,7 +135,7 @@
(raise-type-error 'generic name-str this))))))
...)))]))
-(require scheme/stxparam)
+(require racket/stxparam)
(define-syntax-parameter define/generic
(lambda (stx)
(raise-syntax-error 'define/generic "only allowed inside define-methods" stx)))
@@ -158,7 +158,7 @@
(map (λ (g) (datum->syntax #'mthds (syntax->datum g)))
specs)])
(syntax/loc stx
- (let ([fake #'generics] ; This is to get the arrow to show up in DrScheme. It is ? arrow, so it isn't that nice.
+ (let ([fake #'generics] ; This is to get the arrow to show up in DrRacket. It is ? arrow, so it isn't that nice.
; XXX this could be a signal to the guard to error early, but is seems okay to allow
; missing methods
[mthd-generic #f]
diff --git a/collects/unstable/gui/notify.ss b/collects/unstable/gui/notify.rkt
similarity index 88%
rename from collects/unstable/gui/notify.ss
rename to collects/unstable/gui/notify.rkt
index 927bef3c6a..368ea8d445 100644
--- a/collects/unstable/gui/notify.ss
+++ b/collects/unstable/gui/notify.rkt
@@ -1,17 +1,17 @@
-#lang scheme/base
+#lang racket/base
;; owner: ryanc
-(require scheme/list
- scheme/class
- scheme/gui
- "../private/notify.ss")
-(provide (all-from-out "../private/notify.ss")
+(require racket/list
+ racket/class
+ racket/gui
+ "../private/notify.rkt")
+(provide (all-from-out "../private/notify.rkt")
menu-option/notify-box
menu-group/notify-box
check-box/notify-box
choice/notify-box)
;; GUI elements tied to notify-boxes
-;; See unstable/private/notify.ss for the non-gui parts of notify-boxes.
+;; See unstable/private/notify.rkt for the non-gui parts of notify-boxes.
(define (menu-option/notify-box parent label nb)
(define menu-item
diff --git a/collects/unstable/gui/prefs.ss b/collects/unstable/gui/prefs.rkt
similarity index 73%
rename from collects/unstable/gui/prefs.ss
rename to collects/unstable/gui/prefs.rkt
index a9b4faa71f..80c14e4659 100644
--- a/collects/unstable/gui/prefs.ss
+++ b/collects/unstable/gui/prefs.rkt
@@ -1,6 +1,6 @@
-#lang scheme/base
+#lang racket/base
;; owner: ryanc
-(require (for-syntax scheme/base syntax/parse)
+(require (for-syntax racket/base syntax/parse)
framework/framework)
(provide pref:get/set)
diff --git a/collects/unstable/hash.ss b/collects/unstable/hash.rkt
similarity index 94%
rename from collects/unstable/hash.ss
rename to collects/unstable/hash.rkt
index a93d09da3e..5d622a3014 100644
--- a/collects/unstable/hash.ss
+++ b/collects/unstable/hash.rkt
@@ -1,4 +1,4 @@
-#lang scheme/base
+#lang racket/base
(provide hash-union)
diff --git a/collects/unstable/info.ss b/collects/unstable/info.rkt
similarity index 100%
rename from collects/unstable/info.ss
rename to collects/unstable/info.rkt
diff --git a/collects/unstable/interval-map.ss b/collects/unstable/interval-map.rkt
similarity index 99%
rename from collects/unstable/interval-map.ss
rename to collects/unstable/interval-map.rkt
index ea62078b8b..de3ec855fc 100644
--- a/collects/unstable/interval-map.ss
+++ b/collects/unstable/interval-map.rkt
@@ -1,8 +1,8 @@
-#lang scheme/base
+#lang racket/base
;; owned by ryanc
-(require scheme/contract
- scheme/promise
- scheme/dict
+(require racket/contract
+ racket/promise
+ racket/dict
unstable/skip-list)
;; NOTE-1
diff --git a/collects/unstable/list.ss b/collects/unstable/list.rkt
similarity index 97%
rename from collects/unstable/list.ss
rename to collects/unstable/list.rkt
index 5f8182c6c0..ab35a6f026 100644
--- a/collects/unstable/list.ss
+++ b/collects/unstable/list.rkt
@@ -1,7 +1,7 @@
-#lang scheme/base
-(require scheme/contract
- scheme/dict
- (for-syntax scheme/base))
+#lang racket/base
+(require racket/contract
+ racket/dict
+ (for-syntax racket/base))
; list-prefix : list? list? -> boolean?
; Is l a prefix or r?
diff --git a/collects/unstable/location.ss b/collects/unstable/location.rkt
similarity index 100%
rename from collects/unstable/location.ss
rename to collects/unstable/location.rkt
diff --git a/collects/unstable/match.ss b/collects/unstable/match.rkt
similarity index 73%
rename from collects/unstable/match.ss
rename to collects/unstable/match.rkt
index 584b665192..45887f3b49 100644
--- a/collects/unstable/match.ss
+++ b/collects/unstable/match.rkt
@@ -1,6 +1,6 @@
-#lang scheme/base
+#lang racket/base
-(require scheme/match (for-syntax scheme/base))
+(require racket/match (for-syntax racket/base))
(provide ==)
diff --git a/collects/unstable/mutated-vars.ss b/collects/unstable/mutated-vars.rkt
similarity index 97%
rename from collects/unstable/mutated-vars.ss
rename to collects/unstable/mutated-vars.rkt
index a585a2c321..1665b82024 100644
--- a/collects/unstable/mutated-vars.ss
+++ b/collects/unstable/mutated-vars.rkt
@@ -1,6 +1,6 @@
-#lang scheme/base
+#lang racket/base
-(require (for-template scheme/base)
+(require (for-template racket/base)
syntax/boundmap syntax/kerncase)
;; mapping telling whether an identifer is mutated
diff --git a/collects/unstable/net/url.ss b/collects/unstable/net/url.rkt
similarity index 95%
rename from collects/unstable/net/url.ss
rename to collects/unstable/net/url.rkt
index 11e55a0138..f53d6e69f7 100644
--- a/collects/unstable/net/url.ss
+++ b/collects/unstable/net/url.rkt
@@ -1,6 +1,6 @@
-#lang scheme/base
-(require scheme/list
- scheme/contract
+#lang racket/base
+(require racket/list
+ racket/contract
net/url)
(provide/contract
@@ -32,7 +32,7 @@
;; (define (url-replace-path proc in-url)
;; (foo in-url #:path proc #:query '()))
-;; ripped this off from url-unit.ss
+;; ripped this off from url-unit.rkt
(define (url-path->string strs)
(apply string-append
(apply append
diff --git a/collects/unstable/path.ss b/collects/unstable/path.rkt
similarity index 99%
rename from collects/unstable/path.ss
rename to collects/unstable/path.rkt
index 965f6055b1..0ed877ca13 100644
--- a/collects/unstable/path.ss
+++ b/collects/unstable/path.rkt
@@ -1,4 +1,4 @@
-#lang scheme
+#lang racket
(require unstable/list
unstable/contract)
diff --git a/collects/unstable/poly-c.ss b/collects/unstable/poly-c.rkt
similarity index 98%
rename from collects/unstable/poly-c.ss
rename to collects/unstable/poly-c.rkt
index d85c4ecb29..ff94778a12 100644
--- a/collects/unstable/poly-c.ss
+++ b/collects/unstable/poly-c.rkt
@@ -1,6 +1,6 @@
-#lang scheme/base
+#lang racket/base
-(require scheme/bool scheme/contract)
+(require racket/bool racket/contract)
(provide poly/c parametric/c opaque/c memory/c)
diff --git a/collects/unstable/private/class-iop-ct.ss b/collects/unstable/private/class-iop-ct.rkt
similarity index 97%
rename from collects/unstable/private/class-iop-ct.ss
rename to collects/unstable/private/class-iop-ct.rkt
index 271ddf0fbe..fc6c462f01 100644
--- a/collects/unstable/private/class-iop-ct.ss
+++ b/collects/unstable/private/class-iop-ct.rkt
@@ -1,7 +1,7 @@
-#lang scheme/base
+#lang racket/base
;; owner: ryanc
-(require (for-template scheme/base
- scheme/class)
+(require (for-template racket/base
+ racket/class)
syntax/parse
syntax/stx)
diff --git a/collects/unstable/private/notify.ss b/collects/unstable/private/notify.rkt
similarity index 95%
rename from collects/unstable/private/notify.ss
rename to collects/unstable/private/notify.rkt
index 1c53ce6910..71b630aa43 100644
--- a/collects/unstable/private/notify.ss
+++ b/collects/unstable/private/notify.rkt
@@ -1,8 +1,8 @@
-#lang scheme/base
+#lang racket/base
;; owner: ryanc
-(require (for-syntax scheme/base syntax/parse unstable/syntax)
- scheme/list
- scheme/class)
+(require (for-syntax racket/base syntax/parse unstable/syntax)
+ racket/list
+ racket/class)
(provide define-notify
notify-box%
notify-box/pref)
diff --git a/collects/unstable/scribblings/bytes.scrbl b/collects/unstable/scribblings/bytes.scrbl
index 8933dd9ae4..7d7141133c 100644
--- a/collects/unstable/scribblings/bytes.scrbl
+++ b/collects/unstable/scribblings/bytes.scrbl
@@ -1,11 +1,11 @@
#lang scribble/doc
@(require scribble/base
scribble/manual
- "utils.ss"
+ "utils.rkt"
(for-label unstable/bytes
- scheme/serialize
- scheme/contract
- scheme/base))
+ racket/serialize
+ racket/contract
+ racket/base))
@title[#:tag "bytes"]{Bytes}
@@ -19,10 +19,10 @@
@defproc[(read/bytes [b bytes?])
serializable?]{
- @scheme[read]s a value from @scheme[b] and returns it.
+ @racket[read]s a value from @racket[b] and returns it.
}
@defproc[(write/bytes [v serializable?])
bytes?]{
- @scheme[write]s @scheme[v] to a bytes and returns it.
+ @racket[write]s @racket[v] to a bytes and returns it.
}
diff --git a/collects/unstable/scribblings/class-iop.scrbl b/collects/unstable/scribblings/class-iop.scrbl
index 7a7b2f9652..04154533e6 100644
--- a/collects/unstable/scribblings/class-iop.scrbl
+++ b/collects/unstable/scribblings/class-iop.scrbl
@@ -1,28 +1,28 @@
#lang scribble/manual
@(require scribble/eval
- "utils.ss"
+ "utils.rkt"
(for-label unstable/class-iop
- scheme/class
- scheme/contract
- scheme/base))
+ racket/class
+ racket/contract
+ racket/base))
@title[#:tag "class-iop"]{Interface-Oriented Programming for Classes}
@(define the-eval (make-base-eval))
-@(the-eval '(require scheme/class unstable/class-iop))
+@(the-eval '(require racket/class unstable/class-iop))
@defmodule[unstable/class-iop]
-@unstable[@author+email["Ryan Culpepper" "ryanc@plt-scheme.org"]]
+@unstable[@author+email["Ryan Culpepper" "ryanc@racket-lang.org"]]
@defform[(define-interface name-id (super-ifc-id ...) (method-id ...))]{
-Defines @scheme[name-id] as a static interface extending the
-interfaces named by the @scheme[super-ifc-id]s and containing the
-methods specified by the @scheme[method-id]s.
+Defines @racket[name-id] as a static interface extending the
+interfaces named by the @racket[super-ifc-id]s and containing the
+methods specified by the @racket[method-id]s.
A static interface name is used by the checked method call variants
-(@scheme[send/i], @scheme[send*/i], and @scheme[send/apply/i]). When
+(@racket[send/i], @racket[send*/i], and @racket[send/apply/i]). When
used as an expression, a static interface name evaluates to an
interface value.
@@ -41,14 +41,14 @@ stack<%>
@defform[(define-interface/dynamic name-id ifc-expr (method-id ...))]{
-Defines @scheme[name-id] as a static interface with dynamic
-counterpart @scheme[ifc-expr], which must evaluate to an interface
+Defines @racket[name-id] as a static interface with dynamic
+counterpart @racket[ifc-expr], which must evaluate to an interface
value. The static interface contains the methods named by the
-@scheme[method-id]s. A run-time error is raised if any
-@scheme[method-id] is not a member of the dynamic interface
-@scheme[ifc-expr].
+@racket[method-id]s. A run-time error is raised if any
+@racket[method-id] is not a member of the dynamic interface
+@racket[ifc-expr].
-Use @scheme[define-interface/dynamic] to wrap interfaces from other
+Use @racket[define-interface/dynamic] to wrap interfaces from other
sources.
@examples[#:eval the-eval
@@ -59,15 +59,15 @@ object<%>
@defform[(send/i obj-exp static-ifc-id method-id arg-expr ...)]{
-Checked variant of @scheme[send].
+Checked variant of @racket[send].
-The argument @scheme[static-ifc-id] must be defined as a static
-interface. The method @scheme[method-id] must be a member of the
-static interface @scheme[static-ifc-id]; otherwise a compile-time
+The argument @racket[static-ifc-id] must be defined as a static
+interface. The method @racket[method-id] must be a member of the
+static interface @racket[static-ifc-id]; otherwise a compile-time
error is raised.
-The value of @scheme[obj-expr] must be an instance of the interface
-@scheme[static-ifc-id]; otherwise, a run-time error is raised.
+The value of @racket[obj-expr] must be an instance of the interface
+@racket[static-ifc-id]; otherwise, a run-time error is raised.
@examples[#:eval the-eval
(define s (new stack%))
@@ -79,7 +79,7 @@ The value of @scheme[obj-expr] must be an instance of the interface
@defform[(send*/i obj-expr static-ifc-id (method-id arg-expr ...) ...)]{
-Checked variant of @scheme[send*].
+Checked variant of @racket[send*].
@examples[#:eval the-eval
(send*/i s stack<%>
@@ -90,7 +90,7 @@ Checked variant of @scheme[send*].
@defform[(send/apply/i obj-expr static-ifc-id method-id arg-expr ... list-arg-expr)]{
-Checked variant of @scheme[send/apply].
+Checked variant of @racket[send/apply].
@examples[#:eval the-eval
(send/apply/i s stack<%> push (list 5))
@@ -99,13 +99,13 @@ Checked variant of @scheme[send/apply].
@defform[(define/i id static-ifc-id expr)]{
-Checks that @scheme[expr] evaluates to an instance of
-@scheme[static-ifc-id] before binding it to @scheme[id]. If
-@scheme[id] is subsequently changed (with @scheme[set!]), the check is
+Checks that @racket[expr] evaluates to an instance of
+@racket[static-ifc-id] before binding it to @racket[id]. If
+@racket[id] is subsequently changed (with @racket[set!]), the check is
performed again.
No dynamic object check is performed when calling a method (using
-@scheme[send/i], etc) on a name defined via @scheme[define/i].
+@racket[send/i], etc) on a name defined via @racket[define/i].
}
@@ -116,12 +116,12 @@ No dynamic object check is performed when calling a method (using
([maybe-default-expr (code:blank)
default-expr])]]]{
-Checked versions of @scheme[init] and @scheme[init-field]. The value
-attached to each @scheme[id] is checked against the given interface.
+Checked versions of @racket[init] and @racket[init-field]. The value
+attached to each @racket[id] is checked against the given interface.
No dynamic object check is performed when calling a method (using
-@scheme[send/i], etc) on a name bound via one of these forms. Note
-that in the case of @scheme[init-field/i] this check omission is
+@racket[send/i], etc) on a name bound via one of these forms. Note
+that in the case of @racket[init-field/i] this check omission is
unsound in the presence of mutation from outside the class. This
should be fixed.
diff --git a/collects/unstable/scribblings/contract.scrbl b/collects/unstable/scribblings/contract.scrbl
index b45903e751..dc7ec4fc5f 100644
--- a/collects/unstable/scribblings/contract.scrbl
+++ b/collects/unstable/scribblings/contract.scrbl
@@ -1,10 +1,10 @@
#lang scribble/doc
@(require scribble/base
scribble/manual
- "utils.ss"
+ "utils.rkt"
(for-label unstable/contract
- scheme/contract
- scheme/base))
+ racket/contract
+ racket/base))
@title[#:tag "contract"]{Contracts}
@@ -17,11 +17,11 @@ Contract for non-empty strings.
}
@defthing[port-number? contract?]{
-Equivalent to @scheme[(between/c 1 65535)].
+Equivalent to @racket[(between/c 1 65535)].
}
@defthing[path-element? contract?]{
-Equivalent to @scheme[(or/c path-string? (symbols 'up 'same))].
+Equivalent to @racket[(or/c path-string? (symbols 'up 'same))].
}
@addition{Ryan Culpepper}
@@ -32,29 +32,29 @@ Equivalent to @scheme[(or/c path-string? (symbols 'up 'same))].
contract?]{
Produces a contract that, when applied to a value, first tests the
-value with @scheme[predicate]; if @scheme[predicate] returns true, the
-@scheme[then-contract] is applied; otherwise, the
-@scheme[else-contract] is applied. The resulting contract is a flat
-contract if both @scheme[then-contract] and @scheme[else-contract] are
+value with @racket[predicate]; if @racket[predicate] returns true, the
+@racket[then-contract] is applied; otherwise, the
+@racket[else-contract] is applied. The resulting contract is a flat
+contract if both @racket[then-contract] and @racket[else-contract] are
flat contracts.
For example, the following contract enforces that if a value is a
procedure, it is a thunk; otherwise it can be any (non-procedure)
value:
- @schemeblock[(if/c procedure? (-> any) any/c)]
+ @racketblock[(if/c procedure? (-> any) any/c)]
Note that the following contract is @bold{not} equivalent:
- @schemeblock[(or/c (-> any) any/c) (code:comment "wrong!")]
-The last contract is the same as @scheme[any/c] because
-@scheme[or/c] tries flat contracts before higher-order contracts.
+ @racketblock[(or/c (-> any) any/c) (code:comment "wrong!")]
+The last contract is the same as @racket[any/c] because
+@racket[or/c] tries flat contracts before higher-order contracts.
}
@defproc[(rename-contract [contract contract?]
[name any/c])
contract?]{
-Produces a contract that acts like @scheme[contract] but with the name
-@scheme[name].
+Produces a contract that acts like @racket[contract] but with the name
+@racket[name].
-The resulting contract is a flat contract if @scheme[contract] is a
+The resulting contract is a flat contract if @racket[contract] is a
flat contract.
}
diff --git a/collects/unstable/scribblings/debug.scrbl b/collects/unstable/scribblings/debug.scrbl
index ff7bf79ae7..47c43caed3 100644
--- a/collects/unstable/scribblings/debug.scrbl
+++ b/collects/unstable/scribblings/debug.scrbl
@@ -1,11 +1,11 @@
#lang scribble/doc
@(require scribble/base
scribble/manual scribble/eval
- "utils.ss"
+ "utils.rkt"
(for-label unstable/debug
- scheme/serialize
- scheme/contract
- scheme/base))
+ racket/serialize
+ racket/contract
+ racket/base))
@title[#:tag "debug"]{Debugging}
@(define the-eval (make-base-eval))
@@ -17,7 +17,7 @@
@defform*[[(debug (f args ...))
(debug f args ...)]]{
-Produce debugging output for the application of @scheme[f], including the values of @scheme[args].
+Produce debugging output for the application of @racket[f], including the values of @racket[args].
@examples[#:eval the-eval
(debug (+ 3 4 (* 5 6)))
(debug + 1 2 3)
diff --git a/collects/unstable/scribblings/dirs.scrbl b/collects/unstable/scribblings/dirs.scrbl
index 271498b501..a39a5e3509 100644
--- a/collects/unstable/scribblings/dirs.scrbl
+++ b/collects/unstable/scribblings/dirs.scrbl
@@ -1,11 +1,11 @@
#lang scribble/manual
-@(require scribble/eval "utils.ss" (for-label scheme unstable/dirs))
+@(require scribble/eval "utils.rkt" (for-label racket unstable/dirs))
@(define unsyntax #f)
@(define (new-evaluator)
(let* ([e (make-base-eval)])
- (e '(require (for-syntax scheme/base)
+ (e '(require (for-syntax racket/base)
unstable/dirs))
e))
@@ -21,7 +21,7 @@
@unstable[@author+email["Carl Eastlund" "cce@ccs.neu.edu"]]
This library defines utilities dealing with the directory paths used by the
-PLT Scheme distribution.
+Racket distribution.
@defproc[(path->directory-relative-string
[path path-string?]
@@ -31,21 +31,21 @@ PLT Scheme distribution.
library-relative-directories])
(or/c string? (one-of/c default))]{
-Produces a string rendering of @scheme[path], replacing distribution-specific
+Produces a string rendering of @racket[path], replacing distribution-specific
paths (normally: collections, user-installed collections, or PLanet cache) with
short abbreviations.
The set of paths and their abbreviations may be overridden by the
-@scheme[#:dirs] option, which accepts an association list. Its keys must be
-thunks which produce a path. Its values may be either @scheme[#f] for no
+@racket[#:dirs] option, which accepts an association list. Its keys must be
+thunks which produce a path. Its values may be either @racket[#f] for no
abbreviation (the directory prefix is simply omitted) or any other value to be
-@scheme[display]ed in the output. For instance, @filepath{document.txt}
-relative to a path abbreviated @scheme["path"] would be rendered as
-@scheme["/document.txt"].
+@racket[display]ed in the output. For instance, @filepath{document.txt}
+relative to a path abbreviated @racket["path"] would be rendered as
+@racket["/document.txt"].
If the path is not relative to one of the given directories, the default return
value is a string rendering of the unmodified path. This default may be
-overridden by providing @scheme[default].
+overridden by providing @racket[default].
@defexamples[#:eval evaluator
(path->directory-relative-string
@@ -69,10 +69,10 @@ overridden by providing @scheme[default].
@defthing[library-relative-directories (listof (cons (-> path?) any/c))]{
Represents the default directory substitutions for
-@scheme[path->directory-relative-string]. By default, the collections directory
-is replaced by @schemeresult[collects], the user-installed collections directory
-is replaced by @schemeresult[user], and the PLaneT cache is replaced by
-@schemeresult[planet].
+@racket[path->directory-relative-string]. By default, the collections directory
+is replaced by @racketresult[collects], the user-installed collections directory
+is replaced by @racketresult[user], and the PLaneT cache is replaced by
+@racketresult[planet].
}
@@ -80,7 +80,7 @@ is replaced by @schemeresult[user], and the PLaneT cache is replaced by
Represents the directory substitutions used by @exec{setup-plt}. The
collections directory is omitted, the user-installed collections directory is
-replaced by @schemeresult[user], and the PLaneT cache is replaced by
-@schemeresult[planet].
+replaced by @racketresult[user], and the PLaneT cache is replaced by
+@racketresult[planet].
}
diff --git a/collects/unstable/scribblings/exn.scrbl b/collects/unstable/scribblings/exn.scrbl
index 01335e6649..4a63d0f22e 100644
--- a/collects/unstable/scribblings/exn.scrbl
+++ b/collects/unstable/scribblings/exn.scrbl
@@ -1,10 +1,10 @@
#lang scribble/doc
@(require scribble/base
scribble/manual
- "utils.ss"
+ "utils.rkt"
(for-label unstable/exn
- scheme/contract
- scheme/base))
+ racket/contract
+ racket/base))
@title[#:tag "exn"]{Exceptions}
@@ -16,10 +16,10 @@
[fmt string?]
[v any/c] ...)
void]{
- Like @scheme[error], but throws a @scheme[exn:fail:network].
+ Like @racket[error], but throws a @racket[exn:fail:network].
}
@defproc[(exn->string [exn (or/c exn? any/c)])
string?]{
- Formats @scheme[exn] with @scheme[(error-display-handler)] as a string.
+ Formats @racket[exn] with @racket[(error-display-handler)] as a string.
}
diff --git a/collects/unstable/scribblings/file.scrbl b/collects/unstable/scribblings/file.scrbl
index ef7012d29d..cb87f077a4 100644
--- a/collects/unstable/scribblings/file.scrbl
+++ b/collects/unstable/scribblings/file.scrbl
@@ -1,19 +1,19 @@
#lang scribble/doc
@(require scribble/base
scribble/manual
- "utils.ss"
+ "utils.rkt"
(for-label unstable/file
- scheme/file
- scheme/contract
- scheme/base))
+ racket/file
+ racket/contract
+ racket/base))
@title[#:tag "file"]{Filesystem}
@defmodule[unstable/file]
-@unstable[@author+email["Jay McCarthy" "jay@plt-scheme.org"]]
+@unstable[@author+email["Jay McCarthy" "jay@racket-lang.org"]]
@defproc[(make-directory*/ignore-exists-exn [pth path-string?])
void]{
- Like @scheme[make-directory*], except it ignores errors when the path already exists. Useful to deal with race conditions on processes that create directories.
+ Like @racket[make-directory*], except it ignores errors when the path already exists. Useful to deal with race conditions on processes that create directories.
}
\ No newline at end of file
diff --git a/collects/unstable/scribblings/find.scrbl b/collects/unstable/scribblings/find.scrbl
index 44479a6484..a5a3f496cc 100644
--- a/collects/unstable/scribblings/find.scrbl
+++ b/collects/unstable/scribblings/find.scrbl
@@ -1,20 +1,20 @@
#lang scribble/manual
@(require scribble/eval
- "utils.ss"
+ "utils.rkt"
(for-label unstable/find
- scheme/contract
- scheme/shared
- scheme/base))
+ racket/contract
+ racket/shared
+ racket/base))
@title[#:tag "find"]{Find}
@(define the-eval (make-base-eval))
@(the-eval '(require unstable/find))
-@(the-eval '(require scheme/shared))
+@(the-eval '(require racket/shared))
@defmodule[unstable/find]
-@unstable[@author+email["Ryan Culpepper" "ryanc@plt-scheme.org"]]
+@unstable[@author+email["Ryan Culpepper" "ryanc@racket-lang.org"]]
@defproc[(find [pred (-> any/c any/c)]
[x any/c]
@@ -23,23 +23,23 @@
[#:get-children get-children (or/c #f (-> any/c (or/c #f list?))) #f])
list?]{
-Returns a list of all values satisfying @scheme[pred] contained in
-@scheme[x] (possibly including @scheme[x] itself).
+Returns a list of all values satisfying @racket[pred] contained in
+@racket[x] (possibly including @racket[x] itself).
-If @scheme[stop-on-found?] is true, the children of values satisfying
-@scheme[pred] are not examined. If @scheme[stop] is a procedure, then
-the children of values for which @scheme[stop] returns true are not
-examined (but the values themselves are; @scheme[stop] is applied
-after @scheme[pred]). Only the current branch of the search is
+If @racket[stop-on-found?] is true, the children of values satisfying
+@racket[pred] are not examined. If @racket[stop] is a procedure, then
+the children of values for which @racket[stop] returns true are not
+examined (but the values themselves are; @racket[stop] is applied
+after @racket[pred]). Only the current branch of the search is
stopped, not the whole search.
The search recurs through pairs, vectors, boxes, and the accessible
-fields of structures. If @scheme[get-children] is a procedure, it can
+fields of structures. If @racket[get-children] is a procedure, it can
override the default notion of a value's children by returning a list
(if it returns false, the default notion of children is used).
-No cycle detection is done, so @scheme[find] on a cyclic graph may
-diverge. To do cycle checking yourself, use @scheme[stop] and a
+No cycle detection is done, so @racket[find] on a cyclic graph may
+diverge. To do cycle checking yourself, use @racket[stop] and a
mutable table.
@examples[#:eval the-eval
@@ -63,8 +63,8 @@ mutable table.
[#:default default any/c (lambda () (error ....))])
any/c]{
-Like @scheme[find], but only returns the first match. If no
-matches are found, @scheme[default] is applied as a thunk if it is a
+Like @racket[find], but only returns the first match. If no
+matches are found, @racket[default] is applied as a thunk if it is a
procedure or returned otherwise.
@examples[#:eval the-eval
diff --git a/collects/unstable/scribblings/generics.scrbl b/collects/unstable/scribblings/generics.scrbl
index bfa9035768..043c1309bc 100644
--- a/collects/unstable/scribblings/generics.scrbl
+++ b/collects/unstable/scribblings/generics.scrbl
@@ -1,12 +1,12 @@
#lang scribble/manual
-@(require "utils.ss" (for-label scheme/base unstable/generics))
+@(require "utils.rkt" (for-label racket/base unstable/generics))
@title{Generics}
@defmodule[unstable/generics]
@unstable["Eli Barzilay"
- @author+email["Jay McCarthy" "jay@plt-scheme.org"]]
+ @author+email["Jay McCarthy" "jay@racket-lang.org"]]
@defform/subs[(define-generics (name prop:name name?)
[method . kw-formals*]
@@ -24,18 +24,18 @@
[name? identifier?]
[method identifier?])]{
-Defines @scheme[name] as a transformer binding for the static information about a new generic group.
+Defines @racket[name] as a transformer binding for the static information about a new generic group.
-Defines @scheme[prop:name] as a structure
+Defines @racket[prop:name] as a structure
type property. Structure types implementing this generic group should have this property where the value is a vector
-with one element per @scheme[method] where each value is
-either @scheme[#f] or a procedure with the same arity as specified by @scheme[kw-formals*].
-(@scheme[kw-formals*] is similar to the @scheme[kw-formals] used by @scheme[lambda], except no expression is given for optional arguments.)
+with one element per @racket[method] where each value is
+either @racket[#f] or a procedure with the same arity as specified by @racket[kw-formals*].
+(@racket[kw-formals*] is similar to the @racket[kw-formals] used by @racket[lambda], except no expression is given for optional arguments.)
The arity of each method is checked by the guard on the structure type property.
-Defines @scheme[name?] as a predicate identifying instances of structure types that implement this generic group.
+Defines @racket[name?] as a predicate identifying instances of structure types that implement this generic group.
-Defines each @scheme[method] as a generic procedure that calls the corresponding method on values where @scheme[name?] is true. Each method must have a required by-position argument that is @scheme[free-identifier=?] to @scheme[name]. This argument is used in the generic definition to locate the specialization.
+Defines each @racket[method] as a generic procedure that calls the corresponding method on values where @racket[name?] is true. Each method must have a required by-position argument that is @racket[free-identifier=?] to @racket[name]. This argument is used in the generic definition to locate the specialization.
}
@@ -48,12 +48,12 @@ Defines each @scheme[method] as a generic procedure that calls the corresponding
Expands to
-@schemeblock[(define-generics (name _prop:name _name?)
+@racketblock[(define-generics (name _prop:name _name?)
[method . kw-formals*]
...)]
-where @scheme[_prop:name] and @scheme[_name?] are created with the lexical
-context of @scheme[name].
+where @racket[_prop:name] and @racket[_name?] are created with the lexical
+context of @racket[name].
}
@@ -61,15 +61,15 @@ context of @scheme[name].
#:contracts
([name identifier?])]{
-@scheme[name] must be a transformer binding for the static information about a new generic group.
+@racket[name] must be a transformer binding for the static information about a new generic group.
-Expands to a value usable as the property value for the structure type property of the @scheme[name] generic group.
+Expands to a value usable as the property value for the structure type property of the @racket[name] generic group.
-If the @scheme[definition]s define the methods of @scheme[name], then they are used in the property value.
+If the @racket[definition]s define the methods of @racket[name], then they are used in the property value.
-If any method of @scheme[name] is not defined, then @scheme[#f] is used to signify that the structure type does not implement the particular method.
+If any method of @racket[name] is not defined, then @racket[#f] is used to signify that the structure type does not implement the particular method.
-Allows @scheme[define/generic] to appear in @scheme[definition ...].
+Allows @racket[define/generic] to appear in @racket[definition ...].
}
@@ -78,9 +78,9 @@ Allows @scheme[define/generic] to appear in @scheme[definition ...].
([local-name identifier?]
[method-name identifier?])]{
-When used inside @scheme[define-methods], binds @scheme[local-name] to the generic for @scheme[method-name]. This is useful for method specializations to use the generic methods on other values.
+When used inside @racket[define-methods], binds @racket[local-name] to the generic for @racket[method-name]. This is useful for method specializations to use the generic methods on other values.
-Syntactically an error when used outside @scheme[define-methods].
+Syntactically an error when used outside @racket[define-methods].
}
@@ -88,7 +88,7 @@ Syntactically an error when used outside @scheme[define-methods].
@(require scribble/eval)
@(define (new-evaluator)
(let* ([e (make-base-eval)])
- (e '(require (for-syntax scheme/base)
+ (e '(require (for-syntax racket/base)
unstable/generics))
e))
diff --git a/collects/unstable/scribblings/gui/notify.scrbl b/collects/unstable/scribblings/gui/notify.scrbl
index 32cd6ac650..a01f28353a 100644
--- a/collects/unstable/scribblings/gui/notify.scrbl
+++ b/collects/unstable/scribblings/gui/notify.scrbl
@@ -1,19 +1,19 @@
#lang scribble/manual
@(require scribble/eval
- "../utils.ss"
+ "../utils.rkt"
(for-label unstable/gui/notify
- scheme/contract
- scheme/class
- scheme/base))
+ racket/contract
+ racket/class
+ racket/base))
@title[#:tag "gui-notify"]{Notify-boxes}
@(define the-eval (make-base-eval))
-@(the-eval '(require scheme/class unstable/private/notify))
+@(the-eval '(require racket/class unstable/private/notify))
@defmodule[unstable/gui/notify]
-@unstable[@author+email["Ryan Culpepper" "ryanc@plt-scheme.org"]]
+@unstable[@author+email["Ryan Culpepper" "ryanc@racket-lang.org"]]
@defclass[notify-box% object% ()]{
@@ -29,7 +29,7 @@ listeners when the contents of the cell is changed.
]
@defconstructor[([value any/c])]{
- Creates a notify-box initially containing @scheme[value].
+ Creates a notify-box initially containing @racket[value].
}
@defmethod[(get) any/c]{
Gets the value currently stored in the notify-box.
@@ -54,8 +54,8 @@ listeners when the contents of the cell is changed.
[#:readonly? readonly? boolean? #f])
(is-a?/c notify-box%)]{
-Creates a notify-box with an initial value of @scheme[(proc)]. Unless
-@scheme[readonly?] is true, @scheme[proc] is invoked on the new value
+Creates a notify-box with an initial value of @racket[(proc)]. Unless
+@racket[readonly?] is true, @racket[proc] is invoked on the new value
when the notify-box is updated.
Useful for tying a notify-box to a preference or parameter. Of course,
@@ -77,13 +77,13 @@ reflected in the notify-box.
@defform[(define-notify name value-expr)
#:contracts ([value-expr (is-a?/c notify-box%)])]{
-Class-body form. Declares @scheme[name] as a field and
-@schemeidfont{get-@scheme[name]}, @schemeidfont{set-@scheme[name]},
-and @schemeidfont{listen-@scheme[name]} as methods that delegate to
+Class-body form. Declares @racket[name] as a field and
+@racketidfont{get-@racket[name]}, @racketidfont{set-@racket[name]},
+and @racketidfont{listen-@racket[name]} as methods that delegate to
the @method[notify-box% get], @method[notify-box% set], and
-@method[notify-box% listen] methods of @scheme[value].
+@method[notify-box% listen] methods of @racket[value].
-The @scheme[value-expr] argument must evaluate to a notify-box, not
+The @racket[value-expr] argument must evaluate to a notify-box, not
just the initial contents for a notify box.
Useful for aggregating many notify-boxes together into one
@@ -110,9 +110,9 @@ Useful for aggregating many notify-boxes together into one
[notify-box (is-a?/c notify-box%)])
(is-a?/c checkable-menu-item%)]{
-Creates a @scheme[checkable-menu-item%] tied to @scheme[notify-box]. The menu item is
-checked whenever @scheme[(send notify-box get)] is true. Clicking the
-menu item toggles the value of @scheme[notify-box] and invokes its listeners.
+Creates a @racket[checkable-menu-item%] tied to @racket[notify-box]. The menu item is
+checked whenever @racket[(send notify-box get)] is true. Clicking the
+menu item toggles the value of @racket[notify-box] and invokes its listeners.
}
@defproc[(check-box/notify-box
@@ -122,9 +122,9 @@ menu item toggles the value of @scheme[notify-box] and invokes its listeners.
[notify-box (is-a?/c notify-box%)])
(is-a?/c check-box%)]{
-Creates a @scheme[check-box%] tied to @scheme[notify-box]. The
-check-box is checked whenever @scheme[(send notify-box get)] is
-true. Clicking the check box toggles the value of @scheme[notify-box]
+Creates a @racket[check-box%] tied to @racket[notify-box]. The
+check-box is checked whenever @racket[(send notify-box get)] is
+true. Clicking the check box toggles the value of @racket[notify-box]
and invokes its listeners.
}
@@ -136,12 +136,12 @@ and invokes its listeners.
[notify-box (is-a?/c notify-box%)])
(is-a?/c choice%)]{
-Creates a @scheme[choice%] tied to @scheme[notify-box]. The choice
-control has the value @scheme[(send notify-box get)] selected, and
-selecting a different choice updates @scheme[notify-box] and invokes
+Creates a @racket[choice%] tied to @racket[notify-box]. The choice
+control has the value @racket[(send notify-box get)] selected, and
+selecting a different choice updates @racket[notify-box] and invokes
its listeners.
-If the value of @scheme[notify-box] is not in @scheme[choices], either
+If the value of @racket[notify-box] is not in @racket[choices], either
initially or upon an update, an error is raised.
}
@@ -151,9 +151,9 @@ initially or upon an update, an error is raised.
[notify-box (is-a?/c notify-box%)])
(listof (is-a?/c checkable-menu-item%))]{
-Returns a list of @scheme[checkable-menu-item%] controls tied to
-@scheme[notify-box]. A menu item is checked when its label is
-@scheme[(send notify-box get)]. Clicking a menu item updates
-@scheme[notify-box] to its label and invokes @scheme[notify-box]'s
+Returns a list of @racket[checkable-menu-item%] controls tied to
+@racket[notify-box]. A menu item is checked when its label is
+@racket[(send notify-box get)]. Clicking a menu item updates
+@racket[notify-box] to its label and invokes @racket[notify-box]'s
listeners.
}
diff --git a/collects/unstable/scribblings/gui/prefs.scrbl b/collects/unstable/scribblings/gui/prefs.scrbl
index a8ec5e4cac..e331c4dbec 100644
--- a/collects/unstable/scribblings/gui/prefs.scrbl
+++ b/collects/unstable/scribblings/gui/prefs.scrbl
@@ -1,21 +1,21 @@
#lang scribble/manual
-@(require "../utils.ss"
+@(require "../utils.rkt"
(for-label unstable/gui/prefs
- scheme/contract
- scheme/base))
+ racket/contract
+ racket/base))
@title[#:tag "gui-prefs"]{Preferences}
@defmodule[unstable/gui/prefs]
-@unstable[@author+email["Ryan Culpepper" "ryanc@plt-scheme.org"]]
+@unstable[@author+email["Ryan Culpepper" "ryanc@racket-lang.org"]]
@defproc[(pref:get/set [pref symbol?])
(case-> (-> any/c) (-> any/c void?))]{
Returns a procedure that when applied to zero arguments retrieves the
current value of the preference
-(@schememodname[framework/preferences]) named @scheme[pref] and when
-applied to one argument updates the preference named @scheme[pref].
+(@racketmodname[framework/preferences]) named @racket[pref] and when
+applied to one argument updates the preference named @racket[pref].
}
diff --git a/collects/unstable/scribblings/hash.scrbl b/collects/unstable/scribblings/hash.scrbl
index 4eb96384c0..05e01713b6 100644
--- a/collects/unstable/scribblings/hash.scrbl
+++ b/collects/unstable/scribblings/hash.scrbl
@@ -2,10 +2,10 @@
@(require scribble/base
scribble/manual
scribble/eval
- "utils.ss"
+ "utils.rkt"
(for-label unstable/hash
- scheme/contract
- scheme/base))
+ racket/contract
+ racket/base))
@(define the-eval (make-base-eval))
@(the-eval '(require unstable/hash))
@@ -17,11 +17,11 @@
@unstable[@author+email["Sam Tobin-Hochstadt" "samth@ccs.neu.edu"]]
@defproc[(hash-union [t1 hash?] [t2 hash?] [combine (any/c any/c any/c . -> . any/c)]) hash?]{
-Produces the combination of @scheme[t1] and @scheme[t2]. If either
-@scheme[t1] or @scheme[t2] has a value for key @scheme[k], then the
-result has the same value for @scheme[k]. If both @scheme[t1] and
-@scheme[t2] have a value for @scheme[k], the result has the value
-@scheme[(combine k (hash-ref t1 k) (hash-ref t2 k))] for @scheme[k].
+Produces the combination of @racket[t1] and @racket[t2]. If either
+@racket[t1] or @racket[t2] has a value for key @racket[k], then the
+result has the same value for @racket[k]. If both @racket[t1] and
+@racket[t2] have a value for @racket[k], the result has the value
+@racket[(combine k (hash-ref t1 k) (hash-ref t2 k))] for @racket[k].
@examples[#:eval the-eval
(hash-union #hash((a . 5) (b . 0)) #hash((d . 12) (c . 1)) (lambda (k v1 v2) v1))
diff --git a/collects/unstable/scribblings/interval-map.scrbl b/collects/unstable/scribblings/interval-map.scrbl
index 96e0d8e37a..128ad5c2c0 100644
--- a/collects/unstable/scribblings/interval-map.scrbl
+++ b/collects/unstable/scribblings/interval-map.scrbl
@@ -1,32 +1,32 @@
#lang scribble/manual
@(require scribble/eval
- "utils.ss"
+ "utils.rkt"
(for-label unstable/interval-map
- scheme/contract
- scheme/dict
- scheme/base))
+ racket/contract
+ racket/dict
+ racket/base))
@title[#:tag "interval-map"]{Interval Maps}
@(define the-eval (make-base-eval))
@(the-eval '(require unstable/interval-map))
-@(the-eval '(require scheme/dict))
+@(the-eval '(require racket/dict))
@defmodule[unstable/interval-map]
-@unstable[@author+email["Ryan Culpepper" "ryanc@plt-scheme.org"]]
+@unstable[@author+email["Ryan Culpepper" "ryanc@racket-lang.org"]]
An interval-map is a mutable dictionary-like data structure where
mappings are added by @emph{half-open} intervals and queried by
discrete points. Interval-maps can be used with any total
order. Internally, an interval-map uses a skip-list
-(@schememodname[unstable/skip-list]) of intervals for efficient query
+(@racketmodname[unstable/skip-list]) of intervals for efficient query
and update.
-Interval-maps implement the dictionary (@schememodname[scheme/dict])
-interface to a limited extent. Only @scheme[dict-ref] and the
-iteraction-based methods (@scheme[dict-iterate-first],
-@scheme[dict-map], etc) are supported. For the iteration-based
+Interval-maps implement the dictionary (@racketmodname[racket/dict])
+interface to a limited extent. Only @racket[dict-ref] and the
+iteraction-based methods (@racket[dict-iterate-first],
+@racket[dict-map], etc) are supported. For the iteration-based
methods, the mapping's keys are considered the pairs of the start and
end positions of the mapping's intervals.
@@ -43,13 +43,13 @@ end positions of the mapping's intervals.
[translate (or/c (any/c any/c . -> . (any/c . -> . any/c)) #f) #f])
interval-map?]{
-Makes a new empty interval-map. The interval-map uses @scheme[=?] and
-@scheme[] to order the endpoints of intervals.
+Makes a new empty interval-map. The interval-map uses @racket[=?] and
+@racket[] to order the endpoints of intervals.
-If @scheme[translate] is a procedure, the interval-map supports
+If @racket[translate] is a procedure, the interval-map supports
contraction and expansion of regions of its domain via
-@scheme[interval-map-contract!] and @scheme[interval-map-expand!]. See
-also @scheme[make-numeric-interval-map].
+@racket[interval-map-contract!] and @racket[interval-map-expand!]. See
+also @racket[make-numeric-interval-map].
}
@defproc[(make-numeric-interval-map)
@@ -59,7 +59,7 @@ Makes a new empty interval-map suitable for representing numeric
ranges.
Equivalent to
-@schemeblock[
+@racketblock[
(make-interval-map = < (lambda (x y) (lambda (z) (+ z (- y x)))))
]
}
@@ -67,15 +67,15 @@ Equivalent to
@defproc[(interval-map? [v any/c])
boolean?]{
-Returns @scheme[#t] if @scheme[v] is an interval-map, @scheme[#f]
+Returns @racket[#t] if @racket[v] is an interval-map, @racket[#f]
otherwise.
}
@defproc[(interval-map-with-translate? [v any/c])
boolean?]{
-Returns @scheme[#t] if @scheme[v] is an interval-map constructed with
-support for translation of keys, @scheme[#f] otherwise.
+Returns @racket[#t] if @racket[v] is an interval-map constructed with
+support for translation of keys, @racket[#f] otherwise.
}
@defproc[(interval-map-ref [interval-map interval-map?]
@@ -83,8 +83,8 @@ support for translation of keys, @scheme[#f] otherwise.
[default any/c (lambda () (error ....))])
any/c]{
-Return the value associated with @scheme[position] in
-@scheme[interval-map]. If no mapping is found, @scheme[default] is
+Return the value associated with @racket[position] in
+@racket[interval-map]. If no mapping is found, @racket[default] is
applied if it is a procedure, or returned otherwise.
}
@@ -94,13 +94,13 @@ applied if it is a procedure, or returned otherwise.
[value any/c])
void?]{
-Updates @scheme[interval-map], associating every position in
-[@scheme[start], @scheme[end]) with @scheme[value].
+Updates @racket[interval-map], associating every position in
+[@racket[start], @racket[end]) with @racket[value].
-Existing interval mappings contained in [@scheme[start], @scheme[end])
+Existing interval mappings contained in [@racket[start], @racket[end])
are destroyed, and partly overlapping intervals are truncated. See
-@scheme[interval-map-update*!] for an updating procedure that
-preserves distinctions within [@scheme[start], @scheme[end]).
+@racket[interval-map-update*!] for an updating procedure that
+preserves distinctions within [@racket[start], @racket[end]).
}
@defproc[(interval-map-update*! [interval-map interval-map?]
@@ -110,13 +110,13 @@ preserves distinctions within [@scheme[start], @scheme[end]).
[default any/c (lambda () (error ....))])
void?]{
-Updates @scheme[interval-map], associating every position in
-[@scheme[start], @scheme[end]) with the result of applying
-@scheme[updater] to the position's previously associated value, or to
-the default value produced by @scheme[default] if no mapping exists.
+Updates @racket[interval-map], associating every position in
+[@racket[start], @racket[end]) with the result of applying
+@racket[updater] to the position's previously associated value, or to
+the default value produced by @racket[default] if no mapping exists.
-Unlike @scheme[interval-map-set!], @scheme[interval-map-update*!]
-preserves existing distinctions within [@scheme[start], @scheme[end]).
+Unlike @racket[interval-map-set!], @racket[interval-map-update*!]
+preserves existing distinctions within [@racket[start], @racket[end]).
}
@defproc[(interval-map-remove! [interval-map interval-map?]
@@ -124,8 +124,8 @@ preserves existing distinctions within [@scheme[start], @scheme[end]).
[end any/c])
void?]{
-Removes the value associated with every position in [@scheme[start],
-@scheme[end]).
+Removes the value associated with every position in [@racket[start],
+@racket[end]).
}
@defproc[(interval-map-expand! [interval-map interval-map-with-translate?]
@@ -133,13 +133,13 @@ Removes the value associated with every position in [@scheme[start],
[end any/c])
void?]{
-Expands @scheme[interval-map]'s domain by introducing a gap
-[@scheme[start], @scheme[end]) and adjusting intervals after
-@scheme[start] using @scheme[(_translate start end)].
+Expands @racket[interval-map]'s domain by introducing a gap
+[@racket[start], @racket[end]) and adjusting intervals after
+@racket[start] using @racket[(_translate start end)].
-If @scheme[interval-map] was not constructed with a
-@scheme[_translate] argument, an exception is raised. If
-@scheme[start] is not less than @scheme[end], an exception is raised.
+If @racket[interval-map] was not constructed with a
+@racket[_translate] argument, an exception is raised. If
+@racket[start] is not less than @racket[end], an exception is raised.
}
@defproc[(interval-map-contract! [interval-map interval-map-with-translate?]
@@ -147,13 +147,13 @@ If @scheme[interval-map] was not constructed with a
[end any/c])
void?]{
-Contracts @scheme[interval-map]'s domain by removing all mappings on
-the interval [@scheme[start], @scheme[end]) and adjusting intervals
-after @scheme[end] using @scheme[(_translate end start)].
+Contracts @racket[interval-map]'s domain by removing all mappings on
+the interval [@racket[start], @racket[end]) and adjusting intervals
+after @racket[end] using @racket[(_translate end start)].
-If @scheme[interval-map] was not constructed with a
-@scheme[_translate] argument, an exception is raised. If
-@scheme[start] is not less than @scheme[end], an exception is raised.
+If @racket[interval-map] was not constructed with a
+@racket[_translate] argument, an exception is raised. If
+@racket[start] is not less than @racket[end], an exception is raised.
}
@defproc[(interval-map-cons*! [interval-map interval-map?]
@@ -164,7 +164,7 @@ If @scheme[interval-map] was not constructed with a
void?]{
Same as the following:
-@schemeblock[
+@racketblock[
(interval-map-update*! interval-map start end
(lambda (old) (cons v old))
default)
@@ -174,6 +174,6 @@ Same as the following:
@defproc[(interval-map-iter? [v any/c])
boolean?]{
-Returns @scheme[#t] if @scheme[v] represents a position in an
-interval-map, @scheme[#f] otherwise.
+Returns @racket[#t] if @racket[v] represents a position in an
+interval-map, @racket[#f] otherwise.
}
diff --git a/collects/unstable/scribblings/list.scrbl b/collects/unstable/scribblings/list.scrbl
index fbacc79c64..76509f6291 100644
--- a/collects/unstable/scribblings/list.scrbl
+++ b/collects/unstable/scribblings/list.scrbl
@@ -2,12 +2,12 @@
@(require scribble/base
scribble/manual
scribble/eval
- "utils.ss"
- (for-label scheme/dict
+ "utils.rkt"
+ (for-label racket/dict
unstable/list
syntax/id-table
- scheme/contract
- scheme/base))
+ racket/contract
+ racket/base))
@(define the-eval (make-base-eval))
@(the-eval '(require unstable/list))
@@ -21,7 +21,7 @@
@defproc[(list-prefix? [l list?]
[r list?])
boolean?]{
- True if @scheme[l] is a prefix of @scheme[r].
+ True if @racket[l] is a prefix of @racket[r].
@examples[#:eval the-eval
(list-prefix? '(1 2) '(1 2 3 4 5))
]
@@ -30,7 +30,7 @@
@addition{Sam Tobin-Hochstadt}
@defproc[(filter-multiple [l list?] [f procedure?] ...) (values list? ...)]{
-Produces @scheme[(values (filter f l) ...)].
+Produces @racket[(values (filter f l) ...)].
@examples[#:eval the-eval
(filter-multiple (list 1 2 3 4 5) even? odd?)
@@ -38,9 +38,9 @@ Produces @scheme[(values (filter f l) ...)].
}
@defproc[(extend [l1 list?] [l2 list?] [v any/c]) list?]{
-Extends @scheme[l2] to be as long as @scheme[l1] by adding @scheme[(-
-(length l1) (length l2))] copies of @scheme[v] to the end of
-@scheme[l2].
+Extends @racket[l2] to be as long as @racket[l1] by adding @racket[(-
+(length l1) (length l2))] copies of @racket[v] to the end of
+@racket[l2].
@examples[#:eval the-eval
(extend '(1 2 3) '(a) 'b)
@@ -57,18 +57,18 @@ Extends @scheme[l2] to be as long as @scheme[l1] by adding @scheme[(-
equal?])
(or/c any/c #f)]{
-Returns the first duplicate item in @scheme[lst]. More precisely, it
-returns the first @scheme[_x] such that there was a previous
-@scheme[_y] where @scheme[(same? (extract-key _x) (extract-key _y))].
+Returns the first duplicate item in @racket[lst]. More precisely, it
+returns the first @racket[_x] such that there was a previous
+@racket[_y] where @racket[(same? (extract-key _x) (extract-key _y))].
-The @scheme[same?] argument can either be an equivalence predicate
-such as @scheme[equal?] or @scheme[eqv?] or a dictionary. In the
-latter case, the elements of the list are mapped to @scheme[#t] in the
+The @racket[same?] argument can either be an equivalence predicate
+such as @racket[equal?] or @racket[eqv?] or a dictionary. In the
+latter case, the elements of the list are mapped to @racket[#t] in the
dictionary until an element is discovered that is already mapped to a
-true value. The procedures @scheme[equal?], @scheme[eqv?], and
-@scheme[eq?] automatically use a dictionary for speed.
+true value. The procedures @racket[equal?], @racket[eqv?], and
+@racket[eq?] automatically use a dictionary for speed.
-@(the-eval '(require syntax/id-table scheme/dict))
+@(the-eval '(require syntax/id-table racket/dict))
@examples[#:eval the-eval
(check-duplicate '(1 2 3 4))
(check-duplicate '(1 2 3 2 1))
@@ -89,8 +89,8 @@ true value. The procedures @scheme[equal?], @scheme[eqv?], and
...)
(values (listof B_1) ... (listof B_n))]{
-Produces lists of the respective values of @scheme[f] applied to the elements in
-@scheme[lst ...] sequentially.
+Produces lists of the respective values of @racket[f] applied to the elements in
+@racket[lst ...] sequentially.
@defexamples[
#:eval the-eval
diff --git a/collects/unstable/scribblings/match.scrbl b/collects/unstable/scribblings/match.scrbl
index cd7b64cce4..8a7aa59990 100644
--- a/collects/unstable/scribblings/match.scrbl
+++ b/collects/unstable/scribblings/match.scrbl
@@ -2,14 +2,14 @@
@(require scribble/base
scribble/manual
scribble/eval
- "utils.ss"
+ "utils.rkt"
(for-label unstable/match
- scheme/match
- scheme/contract
- scheme/base))
+ racket/match
+ racket/contract
+ racket/base))
@(define the-eval (make-base-eval))
-@(the-eval '(require unstable/match scheme/match))
+@(the-eval '(require unstable/match racket/match))
@title[#:tag "match"]{Match}
@@ -19,9 +19,9 @@
@defform*[[(== val comparator) (== val)]]{
A @tech[#:doc '(lib "scribblings/reference/reference.scrbl")]{match expander}
-which checks if the matched value is the same as @scheme[val] when
-compared by @scheme[comparator]. If @scheme[comparator] is
-not provided, it defaults to @scheme[equal?].
+which checks if the matched value is the same as @racket[val] when
+compared by @racket[comparator]. If @racket[comparator] is
+not provided, it defaults to @racket[equal?].
@examples[#:eval the-eval
(match (list 1 2 3)
diff --git a/collects/unstable/scribblings/mutated-vars.scrbl b/collects/unstable/scribblings/mutated-vars.scrbl
index ac7f8d772a..15a8eb938d 100644
--- a/collects/unstable/scribblings/mutated-vars.scrbl
+++ b/collects/unstable/scribblings/mutated-vars.scrbl
@@ -1,9 +1,9 @@
#lang scribble/manual
@(require scribble/eval
- "utils.ss"
+ "utils.rkt"
(for-label unstable/mutated-vars
- scheme/contract
- scheme/base))
+ racket/contract
+ racket/base))
@title[#:tag "mutated-vars"]{Finding Mutated Variables}
@@ -16,15 +16,15 @@
@defproc[(find-mutated-vars [stx syntax?]) void?]{ Traverses
-@scheme[stx], which should be @scheme[module-level-form] in the sense
+@racket[stx], which should be @racket[module-level-form] in the sense
of the grammar for
@tech[#:doc '(lib "scribblings/reference/reference.scrbl")]{fully-expanded} forms,
and records all of the variables that are mutated.}
@defproc[(is-var-mutated? [id identifier?]) boolean?]{
-Produces @scheme[#t] if @scheme[id] is mutated by an expression
- previously passed to @scheme[find-mutated-vars], otherwise
- produces @scheme[#f].
+Produces @racket[#t] if @racket[id] is mutated by an expression
+ previously passed to @racket[find-mutated-vars], otherwise
+ produces @racket[#f].
@examples[#:eval the-eval
diff --git a/collects/unstable/scribblings/net.scrbl b/collects/unstable/scribblings/net.scrbl
index ff4e9c925f..d0c1b8c934 100644
--- a/collects/unstable/scribblings/net.scrbl
+++ b/collects/unstable/scribblings/net.scrbl
@@ -1,7 +1,7 @@
#lang scribble/doc
@(require scribble/base
scribble/manual
- "utils.ss")
+ "utils.rkt")
@title[#:tag "net" #:style 'toc]{Net}
diff --git a/collects/unstable/scribblings/net/url.scrbl b/collects/unstable/scribblings/net/url.scrbl
index e9f1073fdb..e77550ae64 100644
--- a/collects/unstable/scribblings/net/url.scrbl
+++ b/collects/unstable/scribblings/net/url.scrbl
@@ -1,11 +1,11 @@
#lang scribble/doc
@(require scribble/base
scribble/manual
- "../utils.ss"
+ "../utils.rkt"
(for-label unstable/net/url
net/url
- scheme/contract
- scheme/base))
+ racket/contract
+ racket/base))
@title[#:tag "url"]{URLs}
@@ -16,11 +16,11 @@
@defproc[(url-replace-path [proc ((listof path/param?) . -> . (listof path/param?))]
[u url?])
url?]{
- Replaces the URL path of @scheme[u] with @scheme[proc] of the former path.
+ Replaces the URL path of @racket[u] with @racket[proc] of the former path.
}
@defproc[(url-path->string [url-path (listof path/param?)])
string?]{
- Formats @scheme[url-path] as a string with @scheme["/"] as a delimiter
+ Formats @racket[url-path] as a string with @racket["/"] as a delimiter
and no params.
}
diff --git a/collects/unstable/scribblings/path.scrbl b/collects/unstable/scribblings/path.scrbl
index 4b94d1a633..29329b18b4 100644
--- a/collects/unstable/scribblings/path.scrbl
+++ b/collects/unstable/scribblings/path.scrbl
@@ -1,11 +1,11 @@
#lang scribble/doc
@(require scribble/base
scribble/manual
- "utils.ss"
+ "utils.rkt"
(for-label unstable/path
unstable/contract
- scheme/contract
- scheme/base))
+ racket/contract
+ racket/base))
@title[#:tag "path"]{Path}
@@ -15,29 +15,29 @@
@defproc[(explode-path* [p path-string?])
(listof path-element?)]{
- Like @scheme[normalize-path], but does not resolve symlinks.
+ Like @racket[normalize-path], but does not resolve symlinks.
}
@defproc[(path-without-base [base path-string?]
[p path-string?])
(listof path-element?)]{
- Returns, as a list, the portion of @scheme[p] after @scheme[base],
- assuming @scheme[base] is a prefix of @scheme[p].
+ Returns, as a list, the portion of @racket[p] after @racket[base],
+ assuming @racket[base] is a prefix of @racket[p].
}
@defproc[(directory-part [p path-string?])
path?]{
- Returns the directory part of @scheme[p], returning @scheme[(current-directory)]
+ Returns the directory part of @racket[p], returning @racket[(current-directory)]
if it is relative.
}
@defproc[(build-path-unless-absolute [base path-string?]
[p path-string?])
path?]{
- Prepends @scheme[base] to @scheme[p], unless @scheme[p] is absolute.
+ Prepends @racket[base] to @racket[p], unless @racket[p] is absolute.
}
@defproc[(strip-prefix-ups [p (listof path-element?)])
(listof path-element?)]{
- Removes all the prefix @scheme[".."]s from @scheme[p].
+ Removes all the prefix @racket[".."]s from @racket[p].
}
diff --git a/collects/unstable/scribblings/poly-c.scrbl b/collects/unstable/scribblings/poly-c.scrbl
index 422b243046..55090d6c6f 100644
--- a/collects/unstable/scribblings/poly-c.scrbl
+++ b/collects/unstable/scribblings/poly-c.scrbl
@@ -1,15 +1,15 @@
#lang scribble/manual
@(require scribble/eval
- "utils.ss"
+ "utils.rkt"
(for-label unstable/poly-c
- scheme/contract
- scheme/base))
+ racket/contract
+ racket/base))
@title[#:tag "poly-c"]{Polymorphic Contracts}
@(define (build-eval)
(let* ([e (make-base-eval)])
- (e '(require unstable/poly-c scheme/contract))
+ (e '(require unstable/poly-c racket/contract))
e))
@defmodule[unstable/poly-c]
@@ -20,16 +20,16 @@
@defform[(poly/c (x ...) c)]{
Creates a contract for polymorphic functions that may inspect their arguments.
-Each function is protected by @scheme[c], where each @scheme[x] is bound in
-@scheme[c] and refers to a polymorphic type that is instantiated each time the
+Each function is protected by @racket[c], where each @racket[x] is bound in
+@racket[c] and refers to a polymorphic type that is instantiated each time the
function is applied.
-At each application of a function, the @scheme[poly/c] contract constructs a new
-weak, @scheme[eq?]-based hash table for each @scheme[x]. Values flowing into
-the polymorphic function (i.e. values protected by some @scheme[x] in negative
-position with respect to @scheme[poly/c]) are stored in the hash table. Values
-flowing out of the polymorphic function (i.e. protected by some @scheme[x] in
-positive position with respect to @scheme[poly/c]) are checked for their
+At each application of a function, the @racket[poly/c] contract constructs a new
+weak, @racket[eq?]-based hash table for each @racket[x]. Values flowing into
+the polymorphic function (i.e. values protected by some @racket[x] in negative
+position with respect to @racket[poly/c]) are stored in the hash table. Values
+flowing out of the polymorphic function (i.e. protected by some @racket[x] in
+positive position with respect to @racket[poly/c]) are checked for their
presence in the hash table. If they are present, they are returned; otherwise,
a contract violation is signalled.
@@ -48,15 +48,15 @@ a contract violation is signalled.
@defform[(parametric/c (x ...) c)]{
Creates a contract for parametric polymorphic functions. Each function is
-protected by @scheme[c], where each @scheme[x] is bound in @scheme[c] and refers
+protected by @racket[c], where each @racket[x] is bound in @racket[c] and refers
to a polymorphic type that is instantiated each time the function is applied.
-At each application of a function, the @scheme[parametric/c] contract constructs
-a new opaque wrapper for each @scheme[x]; values flowing into the polymorphic
-function (i.e. values protected by some @scheme[x] in negative position with
-respect to @scheme[parametric/c]) are wrapped in the corresponding opaque
+At each application of a function, the @racket[parametric/c] contract constructs
+a new opaque wrapper for each @racket[x]; values flowing into the polymorphic
+function (i.e. values protected by some @racket[x] in negative position with
+respect to @racket[parametric/c]) are wrapped in the corresponding opaque
wrapper. Values flowing out of the polymorphic function (i.e. values protected
-by some @scheme[x] in positive position with respect to @scheme[parametric/c])
+by some @racket[x] in positive position with respect to @racket[parametric/c])
are checked for the appropriate wrapper. If they have it, they are unwrapped;
if they do not, a contract violation is signalled.
@@ -78,7 +78,7 @@ This function constructs a contract that records values flowing in one direction
in a fresh, weak hash table, and looks up values flowing in the other direction,
signalling a contract violation if those values are not in the table.
-If @scheme[positive?] is true, values in positive position get stored and values
+If @racket[positive?] is true, values in positive position get stored and values
in negative position are checked. Otherwise, the reverse happens.
}
@@ -89,7 +89,7 @@ This function constructs a contract that wraps values flowing in one direction
in a unique, opaque wrapper, and unwraps values flowing in the other direction,
signalling a contract violation if those values are not wrapped.
-If @scheme[positive?] is true, values in positive position get wrapped and
+If @racket[positive?] is true, values in positive position get wrapped and
values in negative position get unwrapped. Otherwise, the reverse happens.
}
diff --git a/collects/unstable/scribblings/sequence.scrbl b/collects/unstable/scribblings/sequence.scrbl
index 9aa52d790b..0ea7904c88 100644
--- a/collects/unstable/scribblings/sequence.scrbl
+++ b/collects/unstable/scribblings/sequence.scrbl
@@ -3,7 +3,7 @@
scribble/manual
scribble/eval
scribblings/reference/mz
- "utils.ss"
+ "utils.rkt"
(for-label unstable/sequence
racket/contract
racket/base))
diff --git a/collects/unstable/scribblings/skip-list.scrbl b/collects/unstable/scribblings/skip-list.scrbl
index 57b9feeaad..50d5b63871 100644
--- a/collects/unstable/scribblings/skip-list.scrbl
+++ b/collects/unstable/scribblings/skip-list.scrbl
@@ -1,35 +1,35 @@
#lang scribble/manual
@(require scribble/eval
- "utils.ss"
+ "utils.rkt"
(for-label unstable/skip-list
- scheme/contract
- scheme/dict
- scheme/base))
+ racket/contract
+ racket/dict
+ racket/base))
@title[#:tag "skip-list"]{Skip Lists}
@(define the-eval (make-base-eval))
@(the-eval '(require unstable/skip-list))
-@(the-eval '(require scheme/dict))
+@(the-eval '(require racket/dict))
@defmodule[unstable/skip-list]
-@unstable[@author+email["Ryan Culpepper" "ryanc@plt-scheme.org"]]
+@unstable[@author+email["Ryan Culpepper" "ryanc@racket-lang.org"]]
Skip lists are a simple, efficient data structure for mutable
dictionaries with totally ordered keys. They were described in the
paper ``Skip Lists: A Probabilistic Alternative to Balanced Trees'' by
William Pugh in Communications of the ACM, June 1990, 33(6) pp668-676.
-A skip-list is a dictionary (@scheme[dict?] from
-@schememodname[scheme/dict]). It also supports extensions of the
+A skip-list is a dictionary (@racket[dict?] from
+@racketmodname[racket/dict]). It also supports extensions of the
dictionary interface for iterator-based search and mutation.
@defproc[(make-skip-list [=? (any/c any/c . -> . any/c)]
[ (any/c any/c . -> . any/c)])
skip-list?]{
-Makes a new empty skip-list. The skip-list uses @scheme[=?] and @scheme[] to order keys.
+Makes a new empty skip-list. The skip-list uses @racket[=?] and @racket[] to order keys.
@examples[#:eval the-eval
(define skip-list (make-skip-list = <))
@@ -45,7 +45,7 @@ Makes a new empty skip-list. The skip-list uses @scheme[=?] and @scheme[] to o
@defproc[(skip-list? [v any/c])
boolean?]{
-Returns @scheme[#t] if @scheme[v] is a skip-list, @scheme[#f]
+Returns @racket[#t] if @racket[v] is a skip-list, @racket[#f]
otherwise.
}
@@ -76,10 +76,10 @@ otherwise.
[iter skip-list-iter?])
any/c]]]{
-Implementations of @scheme[dict-ref], @scheme[dict-set!],
-@scheme[dict-remove!], @scheme[dict-count],
-@scheme[dict-iterate-first], @scheme[dict-iterate-next],
-@scheme[dict-iterate-key], and @scheme[dict-iterate-value],
+Implementations of @racket[dict-ref], @racket[dict-set!],
+@racket[dict-remove!], @racket[dict-count],
+@racket[dict-iterate-first], @racket[dict-iterate-next],
+@racket[dict-iterate-key], and @racket[dict-iterate-value],
respectively.
}
@@ -98,9 +98,9 @@ respectively.
(or/c skip-list-iter? #f)]]]{
Return the position of, respectively, the greatest key less than
-@scheme[key], the greatest key less than or equal to @scheme[key], the
-least key greater than @scheme[key], and the least key greater than or
-equal to @scheme[key].
+@racket[key], the greatest key less than or equal to @racket[key], the
+least key greater than @racket[key], and the least key greater than or
+equal to @racket[key].
}
@deftogether[[
@@ -113,8 +113,8 @@ equal to @scheme[key].
[value any/c])
void?]]]{
-Set the key and value, respectively, at the position @scheme[iter] in
-@scheme[skip-list].
+Set the key and value, respectively, at the position @racket[iter] in
+@racket[skip-list].
@bold{Warning:} Changing a position's key to be less than its
predecessor's key or greater than its successor's key results in an
@@ -125,6 +125,6 @@ behave incorrectly.
@defproc[(skip-list-iter? [v any/c])
boolean?]{
-Returns @scheme[#t] if @scheme[v] represents a position in a
-skip-list, @scheme[#f] otherwise.
+Returns @racket[#t] if @racket[v] represents a position in a
+skip-list, @racket[#f] otherwise.
}
diff --git a/collects/unstable/scribblings/srcloc.scrbl b/collects/unstable/scribblings/srcloc.scrbl
index afbea445de..18985747a4 100644
--- a/collects/unstable/scribblings/srcloc.scrbl
+++ b/collects/unstable/scribblings/srcloc.scrbl
@@ -1,11 +1,11 @@
#lang scribble/manual
-@(require scribble/eval "utils.ss" (for-label scheme/base unstable/srcloc unstable/location))
+@(require scribble/eval "utils.rkt" (for-label racket/base unstable/srcloc unstable/location))
@(define unsyntax #f)
@(define (new-evaluator)
(let* ([e (make-base-eval)])
- (e '(require (for-syntax scheme/base)
+ (e '(require (for-syntax racket/base)
unstable/srcloc
unstable/location))
e))
@@ -28,9 +28,9 @@ location of a particular piece of source code.
@unstable[@author+email["Carl Eastlund" "cce@ccs.neu.edu"]]
This module defines utilities for manipulating representations of source
-locations, including both @scheme[srcloc] structures and all the values accepted
-by @scheme[datum->syntax]'s third argument: syntax objects, lists, vectors, and
-@scheme[#f].
+locations, including both @racket[srcloc] structures and all the values accepted
+by @racket[datum->syntax]'s third argument: syntax objects, lists, vectors, and
+@racket[#f].
@deftogether[(
@defproc[(source-location? [x any/c]) boolean?]{}
@@ -39,8 +39,8 @@ by @scheme[datum->syntax]'s third argument: syntax objects, lists, vectors, and
)]{
These functions recognize valid source location representations. The first,
-@scheme[source-location?], recognizes @scheme[srcloc] structures, syntax
-objects, lists, and vectors with appropriate structure, as well as @scheme[#f].
+@racket[source-location?], recognizes @racket[srcloc] structures, syntax
+objects, lists, and vectors with appropriate structure, as well as @racket[#f].
The latter predicates recognize only valid lists and vectors, respectively.
@examples[#:eval evaluator
@@ -59,9 +59,9 @@ The latter predicates recognize only valid lists and vectors, respectively.
@defproc[(check-source-location! [name symbol?] [x any/c]) void?]{
This procedure checks that its input is a valid source location. If it is, the
-procedure returns @scheme[(void)]. If it is not,
-@scheme[check-source-location!] raises a detailed error message in terms of
-@scheme[name] and the problem with @scheme[x].
+procedure returns @racket[(void)]. If it is not,
+@racket[check-source-location!] raises a detailed error message in terms of
+@racket[name] and the problem with @racket[x].
@examples[#:eval evaluator
(check-source-location! 'this-example #f)
@@ -84,9 +84,9 @@ procedure returns @scheme[(void)]. If it is not,
)]{
These procedures combine multiple (zero or more) source locations, merging
-locations within the same source and reporting @scheme[#f] for locations that
+locations within the same source and reporting @racket[#f] for locations that
span sources. They also convert the result to the desired representation:
-@scheme[srcloc], list, vector, or syntax object, respectively.
+@racket[srcloc], list, vector, or syntax object, respectively.
@examples[#:eval evaluator
(build-source-location)
@@ -116,7 +116,7 @@ span sources. They also convert the result to the desired representation:
@defproc[(source-location-known? [loc source-location?]) boolean?]{
This predicate reports whether a given source location contains more information
-than simply @scheme[#f].
+than simply @racket[#f].
@examples[#:eval evaluator
(source-location-known? #f)
@@ -158,7 +158,7 @@ These accessors extract the fields of a source location.
(or/c exact-nonnegative-integer? #f)]{
This accessor produces the end position of a source location (the sum of its
-position and span, if both are numbers) or @scheme[#f].
+position and span, if both are numbers) or @racket[#f].
@examples[#:eval evaluator
(source-location-end #f)
@@ -177,9 +177,9 @@ position and span, if both are numbers) or @scheme[#f].
[#:position position (or/c exact-nonnegative-integer? #f)]
[#:span span (or/c exact-positive-integer? #f)])
source-location?]{
-Produces a modified version of @scheme[loc], replacing its fields with
-@scheme[source], @scheme[line], @scheme[column], @scheme[position], and/or
-@scheme[span], if given.
+Produces a modified version of @racket[loc], replacing its fields with
+@racket[source], @racket[line], @racket[column], @racket[position], and/or
+@racket[span], if given.
@examples[#:eval evaluator
(update-source-location #f #:source 'here)
@@ -195,7 +195,7 @@ Produces a modified version of @scheme[loc], replacing its fields with
These procedures convert source locations to strings for use in error messages.
The first produces a string describing the source location; the second appends
-@scheme[": "] to the string if it is non-empty.
+@racket[": "] to the string if it is non-empty.
@examples[#:eval evaluator
(source-location->string (make-srcloc 'here 1 2 3 4))
@@ -234,9 +234,9 @@ definition itself and quoting the source location of the macro's arguments.
@defform*[[(quote-srcloc) (quote-srcloc form) (quote-srcloc form #:module-source expr)]]{
-Quotes the source location of @scheme[form] as a @scheme[srcloc]
-structure, using the location of the whole @scheme[(quote-srcloc)]
-expression if no @scheme[expr] is given. Uses relative directories
+Quotes the source location of @racket[form] as a @racket[srcloc]
+structure, using the location of the whole @racket[(quote-srcloc)]
+expression if no @racket[expr] is given. Uses relative directories
for paths found within the collections tree, the user's collections directory,
or the PLaneT cache.
@@ -260,8 +260,8 @@ or the PLaneT cache.
@defform*[[(quote-character-span) (quote-character-span form)]]
)]{
-Quote various fields of the source location of @scheme[form], or of
-the whole macro application if no @scheme[form] is given.
+Quote various fields of the source location of @racket[form], or of
+the whole macro application if no @racket[form] is given.
@examples[#:eval (new-evaluator)
(list (quote-source-file)
@@ -295,15 +295,15 @@ the whole macro application if no @scheme[form] is given.
)]{
Quote the name of the module in which the form is compiled. The
-@scheme[quote-module-name] form produces a string or a symbol, while
-@scheme[quote-module-path] produces a @tech[#:doc reference-path]{module path}.
+@racket[quote-module-name] form produces a string or a symbol, while
+@racket[quote-module-path] produces a @tech[#:doc reference-path]{module path}.
These forms use relative names for modules found in the collections or PLaneT
cache; their results are suitable for printing, but not for accessing libraries
-programmatically, such as via @scheme[dynamic-require].
+programmatically, such as via @racket[dynamic-require].
@defexamples[#:eval (new-evaluator)
-(module A scheme
+(module A racket
(require unstable/location)
(define-syntax-rule (name) (quote-module-name))
(define-syntax-rule (path) (quote-module-path))
@@ -313,7 +313,7 @@ programmatically, such as via @scheme[dynamic-require].
(require 'A)
a-name
a-path
-(module B scheme
+(module B racket
(require unstable/location)
(require 'A)
(define b-name (name))
diff --git a/collects/unstable/scribblings/string.scrbl b/collects/unstable/scribblings/string.scrbl
index 43363c7474..d695ddea9c 100644
--- a/collects/unstable/scribblings/string.scrbl
+++ b/collects/unstable/scribblings/string.scrbl
@@ -1,11 +1,11 @@
#lang scribble/doc
@(require scribble/base
scribble/manual
- "utils.ss"
+ "utils.rkt"
(for-label unstable/string
- scheme/serialize
- scheme/contract
- scheme/base))
+ racket/serialize
+ racket/contract
+ racket/base))
@title[#:tag "string"]{Strings}
@@ -15,15 +15,15 @@
@defproc[(lowercase-symbol! [sb (or/c string? bytes?)])
symbol?]{
- Returns @scheme[sb] as a lowercase symbol.
+ Returns @racket[sb] as a lowercase symbol.
}
@defproc[(read/string [s string?])
serializable?]{
- @scheme[read]s a value from @scheme[s] and returns it.
+ @racket[read]s a value from @racket[s] and returns it.
}
@defproc[(write/string [v serializable?])
string?]{
- @scheme[write]s @scheme[v] to a string and returns it.
+ @racket[write]s @racket[v] to a string and returns it.
}
diff --git a/collects/unstable/scribblings/struct.scrbl b/collects/unstable/scribblings/struct.scrbl
index 3ebb5f8c29..9f0961fb24 100644
--- a/collects/unstable/scribblings/struct.scrbl
+++ b/collects/unstable/scribblings/struct.scrbl
@@ -1,9 +1,9 @@
#lang scribble/manual
@(require scribble/eval
- "utils.ss"
+ "utils.rkt"
(for-label unstable/struct
- scheme/contract
- scheme/base))
+ racket/contract
+ racket/base))
@title[#:tag "struct"]{Structs}
@@ -12,13 +12,13 @@
@defmodule[unstable/struct]
-@unstable[@author+email["Ryan Culpepper" "ryanc@plt-scheme.org"]]
+@unstable[@author+email["Ryan Culpepper" "ryanc@racket-lang.org"]]
@defform[(make struct-id expr ...)]{
-Creates an instance of @scheme[struct-id], which must be bound as a
-struct name. The number of @scheme[expr]s is statically checked
-against the number of fields associated with @scheme[struct-id]. If
+Creates an instance of @racket[struct-id], which must be bound as a
+struct name. The number of @racket[expr]s is statically checked
+against the number of fields associated with @racket[struct-id]. If
they are different, or if the number of fields is not known, an error
is raised at compile time.
@@ -33,15 +33,15 @@ is raised at compile time.
[#:on-opaque on-opaque (or/c 'error 'return-false 'skip) 'error])
(or/c list? #f)]{
-Returns a list containing the struct instance @scheme[v]'s
-fields. Unlike @scheme[struct->vector], the struct name itself is not
+Returns a list containing the struct instance @racket[v]'s
+fields. Unlike @racket[struct->vector], the struct name itself is not
included.
-If any fields of @scheme[v] are inaccessible via the current inspector
-the behavior of @scheme[struct->list] is determined by
-@scheme[on-opaque]. If @scheme[on-opaque] is @scheme['error] (the
-default), an error is raised. If it is @scheme['return-false],
-@scheme[struct->list] returns @scheme[#f]. If it is @scheme['skip],
+If any fields of @racket[v] are inaccessible via the current inspector
+the behavior of @racket[struct->list] is determined by
+@racket[on-opaque]. If @racket[on-opaque] is @racket['error] (the
+default), an error is raised. If it is @racket['return-false],
+@racket[struct->list] returns @racket[#f]. If it is @racket['skip],
the inaccessible fields are omitted from the list.
@examples[#:eval the-eval
diff --git a/collects/unstable/scribblings/syntax.scrbl b/collects/unstable/scribblings/syntax.scrbl
index ac2459fc98..d65d6b82d4 100644
--- a/collects/unstable/scribblings/syntax.scrbl
+++ b/collects/unstable/scribblings/syntax.scrbl
@@ -2,32 +2,32 @@
@(require scribble/struct
scribble/decode
scribble/eval
- "utils.ss"
- (for-label scheme/base
- scheme/contract
+ "utils.rkt"
+ (for-label racket/base
+ racket/contract
unstable/syntax))
@(define the-eval (make-base-eval))
@(the-eval '(require unstable/syntax))
-@(the-eval '(require (for-syntax scheme/base unstable/syntax)))
+@(the-eval '(require (for-syntax racket/base unstable/syntax)))
@title[#:tag "syntax"]{Syntax}
@defmodule[unstable/syntax]
-@unstable[@author+email["Ryan Culpepper" "ryanc@plt-scheme.org"]]
+@unstable[@author+email["Ryan Culpepper" "ryanc@racket-lang.org"]]
@defparam[current-syntax-context stx (or/c syntax? false/c)]{
-The current contextual syntax object, defaulting to @scheme[#f]. It
+The current contextual syntax object, defaulting to @racket[#f]. It
determines the special form name that prefixes syntax errors created
-by @scheme[wrong-syntax].
+by @racket[wrong-syntax].
@;{
-If it is a syntax object with a @scheme['report-error-as] syntax
+If it is a syntax object with a @racket['report-error-as] syntax
property whose value is a symbol, then that symbol is used as the
special form name. Otherwise, the same rules apply as in
-@scheme[raise-syntax-error].
+@racket[raise-syntax-error].
}
}
@@ -36,12 +36,12 @@ special form name. Otherwise, the same rules apply as in
any]{
Raises a syntax error using the result of
-@scheme[(current-syntax-context)] as the ``major'' syntax object and
-the provided @scheme[stx] as the specific syntax object. (The latter,
-@scheme[stx], is usually the one highlighted by DrScheme.) The error
+@racket[(current-syntax-context)] as the ``major'' syntax object and
+the provided @racket[stx] as the specific syntax object. (The latter,
+@racket[stx], is usually the one highlighted by DrRacket.) The error
message is constructed using the format string and arguments, and it
is prefixed with the special form name as described under
-@scheme[current-syntax-context].
+@racket[current-syntax-context].
@examples[#:eval the-eval
(wrong-syntax #'here "expected ~s" 'there)
@@ -49,23 +49,23 @@ is prefixed with the special form name as described under
(wrong-syntax #'here "expected ~s" 'there))
]
-A macro using @scheme[wrong-syntax] might set the syntax context at the very
+A macro using @racket[wrong-syntax] might set the syntax context at the very
beginning of its transformation as follows:
-@SCHEMEBLOCK[
+@RACKETBLOCK[
(define-syntax (my-macro stx)
(parameterize ((current-syntax-context stx))
(syntax-case stx ()
___)))
]
-Then any calls to @scheme[wrong-syntax] during the macro's
-transformation will refer to @scheme[my-macro] (more precisely, the name that
-referred to @scheme[my-macro] where the macro was used, which may be
+Then any calls to @racket[wrong-syntax] during the macro's
+transformation will refer to @racket[my-macro] (more precisely, the name that
+referred to @racket[my-macro] where the macro was used, which may be
different due to renaming, prefixing, etc).
@;{
A macro that expands into a helper macro can insert its own name into
syntax errors raised by the helper macro by installing a
-@scheme['report-error-as] syntax property on the helper macro
+@racket['report-error-as] syntax property on the helper macro
expression.
@examples[#:eval the-eval
@@ -90,10 +90,10 @@ expression.
@defform[(define/with-syntax pattern expr)]{
-Definition form of @scheme[with-syntax]. That is, it matches the
-syntax object result of @scheme[expr] against @scheme[pattern] and
+Definition form of @racket[with-syntax]. That is, it matches the
+syntax object result of @racket[expr] against @racket[pattern] and
creates pattern variable definitions for the pattern variables of
-@scheme[pattern].
+@racket[pattern].
@examples[#:eval the-eval
(define/with-syntax (px ...) #'(a b c))
@@ -104,8 +104,8 @@ creates pattern variable definitions for the pattern variables of
@defform[(define-pattern-variable id expr)]{
-Evaluates @scheme[expr] and binds it to @scheme[id] as a pattern
-variable, so @scheme[id] can be used in subsequent @scheme[syntax]
+Evaluates @racket[expr] and binds it to @racket[id] as a pattern
+variable, so @racket[id] can be used in subsequent @racket[syntax]
patterns.
@examples[#:eval the-eval
@@ -119,7 +119,7 @@ patterns.
@defform[(with-temporaries (temp-id ...) . body)]{
-Evaluates @scheme[body] with each @scheme[temp-id] bound as a pattern
+Evaluates @racket[body] with each @racket[temp-id] bound as a pattern
variable to a freshly generated identifier.
@examples[#:eval the-eval
@@ -131,7 +131,7 @@ variable to a freshly generated identifier.
@defproc[(generate-temporary [name-base any/c 'g]) identifier?]{
Generates one fresh identifier. Singular form of
-@scheme[generate-temporaries]. If @scheme[name-base] is supplied, it
+@racket[generate-temporaries]. If @racket[name-base] is supplied, it
is used as the basis for the identifier's name.
}
@@ -139,7 +139,7 @@ is used as the basis for the identifier's name.
@defproc[(generate-n-temporaries [n exact-nonnegative-integer?])
(listof identifier?)]{
-Generates a list of @scheme[n] fresh identifiers.
+Generates a list of @racket[n] fresh identifiers.
}
@@ -150,39 +150,39 @@ Generates a list of @scheme[n] fresh identifiers.
Parameter for tracking disappeared uses. Tracking is ``enabled'' when
the parameter has a non-false value. This is done automatically by
-forms like @scheme[with-disappeared-uses].
+forms like @racket[with-disappeared-uses].
}
@defform[(with-disappeared-uses stx-expr)
#:contracts ([stx-expr syntax?])]{
-Evaluates the @scheme[stx-expr], catching identifiers looked up using
-@scheme[syntax-local-value/catch]. Adds the caught identifiers to the
-@scheme['disappeared-uses] syntax property of the resulting syntax
+Evaluates the @racket[stx-expr], catching identifiers looked up using
+@racket[syntax-local-value/catch]. Adds the caught identifiers to the
+@racket['disappeared-uses] syntax property of the resulting syntax
object.
}
@defform[(with-catching-disappeared-uses body-expr)]{
-Evaluates the @scheme[body-expr], catching identifiers looked up using
-@scheme[syntax-local-value/catch]. Returns two values: the result of
-@scheme[body-expr] and the list of caught identifiers.
+Evaluates the @racket[body-expr], catching identifiers looked up using
+@racket[syntax-local-value/catch]. Returns two values: the result of
+@racket[body-expr] and the list of caught identifiers.
}
@defproc[(syntax-local-value/catch [id identifier?] [predicate (-> any/c boolean?)])
any/c]{
-Looks up @scheme[id] in the syntactic environment (as
-@scheme[syntax-local-value]). If the lookup succeeds and returns a
-value satisfying the predicate, the value is returned and @scheme[id]
+Looks up @racket[id] in the syntactic environment (as
+@racket[syntax-local-value]). If the lookup succeeds and returns a
+value satisfying the predicate, the value is returned and @racket[id]
is recorded (``caught'') as a disappeared use. If the lookup fails or
-if the value does not satisfy the predicate, @scheme[#f] is returned
+if the value does not satisfy the predicate, @racket[#f] is returned
and the identifier is not recorded as a disappeared use.
-If not used within the extent of a @scheme[with-disappeared-uses] form
+If not used within the extent of a @racket[with-disappeared-uses] form
or similar, has no effect.
}
@@ -190,9 +190,9 @@ or similar, has no effect.
@defproc[(record-disappeared-uses [ids (listof identifier?)])
void?]{
-Add @scheme[ids] to the current disappeared uses.
+Add @racket[ids] to the current disappeared uses.
-If not used within the extent of a @scheme[with-disappeared-uses] form
+If not used within the extent of a @racket[with-disappeared-uses] form
or similar, has no effect.
}
@@ -203,7 +203,7 @@ or similar, has no effect.
[v (or/c string? symbol? identifier? keyword? char? number?)] ...)
symbol?]{
-Like @scheme[format], but produces a symbol. The format string must
+Like @racket[format], but produces a symbol. The format string must
use only @litchar{~a} placeholders. Identifiers in the argument list
are automatically converted to symbols.
@@ -220,11 +220,11 @@ are automatically converted to symbols.
[v (or/c string? symbol? identifier? keyword? char? number?)] ...)
identifier?]{
-Like @scheme[format-symbol], but converts the symbol into an
-identifier using @scheme[lctx] for the lexical context, @scheme[src]
-for the source location, @scheme[props] for the properties, and
-@scheme[cert] for the inactive certificates. (See
-@scheme[datum->syntax].)
+Like @racket[format-symbol], but converts the symbol into an
+identifier using @racket[lctx] for the lexical context, @racket[src]
+for the source location, @racket[props] for the properties, and
+@racket[cert] for the inactive certificates. (See
+@racket[datum->syntax].)
The format string must use only @litchar{~a} placeholders. Identifiers
in the argument list are automatically converted to symbols.
@@ -244,7 +244,7 @@ in the argument list are automatically converted to symbols.
(better-make-pred none-such)
]
-(Scribble doesn't show it, but the DrScheme pinpoints the location of
+(Scribble doesn't show it, but the DrRacket pinpoints the location of
the second error but not of the first.)
}
@@ -252,7 +252,7 @@ the second error but not of the first.)
[stx syntax?])
syntax?]{
-Applies the renamings of @scheme[intdef-ctx] to @scheme[stx].
+Applies the renamings of @racket[intdef-ctx] to @racket[stx].
}
@@ -260,9 +260,9 @@ Applies the renamings of @scheme[intdef-ctx] to @scheme[stx].
[intdef-ctx (or/c internal-definition-context? #f) #f])
any]{
-Evaluates @scheme[stx] as an expression in the current transformer
+Evaluates @racket[stx] as an expression in the current transformer
environment (that is, at phase level 1), optionally extended with
-@scheme[intdef-ctx].
+@racket[intdef-ctx].
@examples[#:eval the-eval
(define-syntax (show-me stx)
@@ -296,8 +296,8 @@ environment (that is, at phase level 1), optionally extended with
@defform[(with-syntax* ([pattern stx-expr] ...)
body ...+)]{
-Similar to @scheme[with-syntax], but the pattern variables are bound in the remaining
-@scheme[stx-expr]s as well as the @scheme[body]s, and the @scheme[pattern]s need not
+Similar to @racket[with-syntax], but the pattern variables are bound in the remaining
+@racket[stx-expr]s as well as the @racket[body]s, and the @racket[pattern]s need not
bind distinct pattern variables; later bindings shadow earlier bindings.
@examples[#:eval the-eval
@@ -308,7 +308,7 @@ bind distinct pattern variables; later bindings shadow earlier bindings.
}
@defproc[(syntax-map [f (-> syntax? A)] [stxl syntax?] ...) (listof A)]{
-Performs @scheme[(map f (syntax->list stxl) ...)].
+Performs @racket[(map f (syntax->list stxl) ...)].
@examples[#:eval the-eval
(syntax-map syntax-e #'(a b c))]
diff --git a/collects/unstable/scribblings/unstable.scrbl b/collects/unstable/scribblings/unstable.scrbl
index c7ac1bb5a6..093c06a43a 100644
--- a/collects/unstable/scribblings/unstable.scrbl
+++ b/collects/unstable/scribblings/unstable.scrbl
@@ -1,7 +1,7 @@
#lang scribble/doc
@(require scribble/base
scribble/manual
- (for-syntax scheme/base scheme/path)
+ (for-syntax racket/base racket/path)
(for-label scribble/base))
@title[#:tag "unstable"]{Unstable}
@@ -9,9 +9,9 @@
@defmodule[unstable]
This manual documents some of the libraries available in the
-@schememodname[unstable] collection.
+@racketmodname[unstable] collection.
-The name @schememodname[unstable] is intended as a warning that the @bold{interfaces} in particular are unstable. Developers of planet packages and external projects should avoid using modules in the unstable collection. Contracts may change, names may change or disappear, even entire modules may move or disappear without warning to the outside world.
+The name @racketmodname[unstable] is intended as a warning that the @bold{interfaces} in particular are unstable. Developers of planet packages and external projects should avoid using modules in the unstable collection. Contracts may change, names may change or disappear, even entire modules may move or disappear without warning to the outside world.
Developers of unstable libraries must follow the guidelines in
@secref{guidelines}.
@@ -20,10 +20,10 @@ Developers of unstable libraries must follow the guidelines in
@;{--------}
-@section[#:tag "guidelines"]{Guidelines for developing @schememodname[unstable] libraries}
+@section[#:tag "guidelines"]{Guidelines for developing @racketmodname[unstable] libraries}
Any collection developer may add modules to the
-@schememodname[unstable] collection.
+@racketmodname[unstable] collection.
Every module needs an owner to be responsible for it.
@@ -42,22 +42,22 @@ collections tree and update them if necessary. Notify users of major
changes.
Place new modules according to the following rules. (These rules are
-necessary for maintaining PLT's separate text, gui, and drscheme
+necessary for maintaining PLT's separate text, gui, and drracket
distributions.)
@itemize[
@item{Non-GUI modules go under @tt{unstable} (or subcollections
thereof). Put the documentation in @tt{unstable/scribblings} and
-include with @scheme[include-section] from
+include with @racket[include-section] from
@tt{unstable/scribblings/unstable.scrbl}.}
@item{GUI modules go under @tt{unstable/gui}. Put the documentation
in @tt{unstable/scribblings/gui} and include them with
-@scheme[include-section] from @tt{unstable/scribblings/gui.scrbl}.}
+@racket[include-section] from @tt{unstable/scribblings/gui.scrbl}.}
-@item{Do not add modules depending on DrScheme to the
-@schememodname[unstable] collection.}
+@item{Do not add modules depending on DrRacket to the
+@racketmodname[unstable] collection.}
@item{Put tests in @tt{tests/unstable}.}
]
diff --git a/collects/unstable/scribblings/utils.ss b/collects/unstable/scribblings/utils.rkt
similarity index 100%
rename from collects/unstable/scribblings/utils.ss
rename to collects/unstable/scribblings/utils.rkt
diff --git a/collects/unstable/sequence.ss b/collects/unstable/sequence.rkt
similarity index 95%
rename from collects/unstable/sequence.ss
rename to collects/unstable/sequence.rkt
index 22851e4bf8..1d3ecf88a4 100644
--- a/collects/unstable/sequence.ss
+++ b/collects/unstable/sequence.rkt
@@ -1,6 +1,6 @@
-#lang scheme/base
+#lang racket/base
-(require (for-syntax scheme/base))
+(require (for-syntax racket/base))
(provide in-syntax in-pairs in-sequence-forever sequence-lift)
diff --git a/collects/unstable/skip-list.ss b/collects/unstable/skip-list.rkt
similarity index 99%
rename from collects/unstable/skip-list.ss
rename to collects/unstable/skip-list.rkt
index 99ecbca911..9607336628 100644
--- a/collects/unstable/skip-list.ss
+++ b/collects/unstable/skip-list.rkt
@@ -1,6 +1,6 @@
-#lang scheme/base
-(require scheme/contract
- scheme/dict)
+#lang racket/base
+(require racket/contract
+ racket/dict)
;; owned by ryanc
#|
@@ -13,7 +13,7 @@ Levels are indexed starting at 1, as in the paper.
|#
#|
-(require (rename-in scheme/unsafe/ops
+(require (rename-in racket/unsafe/ops
[unsafe-vector-length vector-length]
[unsafe-vector-ref vector-ref]
[unsafe-vector-set! vector-set!]))
diff --git a/collects/unstable/srcloc.ss b/collects/unstable/srcloc.rkt
similarity index 99%
rename from collects/unstable/srcloc.ss
rename to collects/unstable/srcloc.rkt
index e48fc8f5cf..d83f887caa 100644
--- a/collects/unstable/srcloc.ss
+++ b/collects/unstable/srcloc.rkt
@@ -1,7 +1,7 @@
#lang racket/base
;; Unstable library by: Carl Eastlund
-;; intended for use in scheme/contract, so don't try to add contracts!
+;; intended for use in racket/contract, so don't try to add contracts!
(provide
diff --git a/collects/unstable/string.ss b/collects/unstable/string.rkt
similarity index 96%
rename from collects/unstable/string.ss
rename to collects/unstable/string.rkt
index 5bc4e3575b..8b8eabc92a 100644
--- a/collects/unstable/string.ss
+++ b/collects/unstable/string.rkt
@@ -1,5 +1,5 @@
-#lang scheme
-(require scheme/serialize)
+#lang racket
+(require racket/serialize)
(define (read/string str)
(read (open-input-string str)))
diff --git a/collects/unstable/struct.ss b/collects/unstable/struct.rkt
similarity index 100%
rename from collects/unstable/struct.ss
rename to collects/unstable/struct.rkt
diff --git a/collects/unstable/syntax.ss b/collects/unstable/syntax.rkt
similarity index 100%
rename from collects/unstable/syntax.ss
rename to collects/unstable/syntax.rkt
diff --git a/collects/version/check.ss b/collects/version/check.rkt
similarity index 100%
rename from collects/version/check.ss
rename to collects/version/check.rkt
diff --git a/collects/version/info.ss b/collects/version/info.rkt
similarity index 100%
rename from collects/version/info.ss
rename to collects/version/info.rkt
diff --git a/collects/version/patchlevel.ss b/collects/version/patchlevel.rkt
similarity index 100%
rename from collects/version/patchlevel.ss
rename to collects/version/patchlevel.rkt
diff --git a/collects/version/tool.ss b/collects/version/tool.rkt
similarity index 100%
rename from collects/version/tool.ss
rename to collects/version/tool.rkt
diff --git a/collects/version/utils.ss b/collects/version/utils.rkt
similarity index 100%
rename from collects/version/utils.ss
rename to collects/version/utils.rkt
diff --git a/collects/waterworld/waterworld.ss b/collects/waterworld/waterworld.rkt
similarity index 100%
rename from collects/waterworld/waterworld.ss
rename to collects/waterworld/waterworld.rkt
diff --git a/collects/waterworld/wwdoc.ss b/collects/waterworld/wwdoc.rkt
similarity index 100%
rename from collects/waterworld/wwdoc.ss
rename to collects/waterworld/wwdoc.rkt
diff --git a/collects/web-server/configuration/configuration-table-structs.ss b/collects/web-server/configuration/configuration-table-structs.rkt
similarity index 98%
rename from collects/web-server/configuration/configuration-table-structs.ss
rename to collects/web-server/configuration/configuration-table-structs.rkt
index 18453e2931..48bbe8f7d6 100644
--- a/collects/web-server/configuration/configuration-table-structs.ss
+++ b/collects/web-server/configuration/configuration-table-structs.rkt
@@ -1,9 +1,9 @@
-#lang scheme/base
+#lang racket/base
(require mzlib/contract
net/url)
(require web-server/http/response-structs
web-server/http/request-structs
- "../private/util.ss")
+ "../private/util.rkt")
; configuration-table = (make-configuration-table nat nat num host-table (listof (cons str host-table)))
(define-struct configuration-table
diff --git a/collects/web-server/configuration/configuration-table.ss b/collects/web-server/configuration/configuration-table.rkt
similarity index 97%
rename from collects/web-server/configuration/configuration-table.ss
rename to collects/web-server/configuration/configuration-table.rkt
index 69b897e24c..d92363cca2 100644
--- a/collects/web-server/configuration/configuration-table.ss
+++ b/collects/web-server/configuration/configuration-table.rkt
@@ -1,7 +1,7 @@
-#lang scheme
-(require scheme/pretty
- scheme/runtime-path
- "configuration-table-structs.ss"
+#lang racket
+(require racket/pretty
+ racket/runtime-path
+ "configuration-table-structs.rkt"
web-server/http/bindings)
(define configuration-table-sexpr? list?)
@@ -15,7 +15,7 @@
(define-runtime-path default-configuration-table-path
(list 'lib
- "web-server/default-web-root/configuration-table.ss"))
+ "web-server/default-web-root/configuration-table.rkt"))
(define (get-binding key bindings default)
(first (get-binding* key bindings (list default))))
diff --git a/collects/web-server/configuration/namespace.ss b/collects/web-server/configuration/namespace.rkt
similarity index 78%
rename from collects/web-server/configuration/namespace.ss
rename to collects/web-server/configuration/namespace.rkt
index 212ee93b24..57bb7f7aeb 100644
--- a/collects/web-server/configuration/namespace.ss
+++ b/collects/web-server/configuration/namespace.rkt
@@ -1,13 +1,12 @@
-#lang scheme
-(require scheme/runtime-path)
+#lang racket
+(require racket/runtime-path)
-(define-runtime-module-path mzscheme-module-spec mzscheme)
-#;(define-runtime-module-path mred-module-spec mred) ; XXX Sometimes I need these, but not always
+(define-runtime-module-path racket-module-spec racket)
(define mred-module-spec 'mred)
-(define default-to-be-copied-module-specs (list mzscheme-module-spec mred-module-spec))
+(define default-to-be-copied-module-specs (list racket-module-spec mred-module-spec))
-(define-runtime-module-path scheme/base-module-spec scheme/base)
+(define-runtime-module-path racket/base-module-spec racket/base)
(define (make-make-servlet-namespace
#:to-be-copied-module-specs [to-be-copied-module-specs empty])
@@ -26,7 +25,7 @@
(define new-namespace (make-base-empty-namespace))
(define additional-names (map get-name additional-specs))
(parameterize ([current-namespace new-namespace])
- (namespace-require scheme/base-module-spec)
+ (namespace-require racket/base-module-spec)
(for-each (lambda (name)
(with-handlers ([exn:fail? void])
(when name
diff --git a/collects/web-server/configuration/responders.ss b/collects/web-server/configuration/responders.rkt
similarity index 99%
rename from collects/web-server/configuration/responders.ss
rename to collects/web-server/configuration/responders.rkt
index b5e48f631c..c73ba8c104 100644
--- a/collects/web-server/configuration/responders.ss
+++ b/collects/web-server/configuration/responders.rkt
@@ -1,5 +1,5 @@
-#lang scheme
-(require scheme/runtime-path
+#lang racket
+(require racket/runtime-path
net/url
web-server/private/xexpr
web-server/http/response-structs
diff --git a/collects/web-server/default-web-root/conf/collect-garbage.html b/collects/web-server/default-web-root/conf/collect-garbage.html
index 48017d9299..35011db4da 100644
--- a/collects/web-server/default-web-root/conf/collect-garbage.html
+++ b/collects/web-server/default-web-root/conf/collect-garbage.html
@@ -2,6 +2,6 @@
Garbage Collect Ran
The garbage collection routine has run.
-Powered by PLT
+Powered by Racket