I started from tabs that are not on the beginning of lines, and in
several places I did further cleanings.
If you're worried about knowing who wrote some code, for example, if you
get to this commit in "git blame", then note that you can use the "-w"
flag in many git commands to ignore whitespaces. For example, to see
per-line authors, use "git blame -w <file>". Another example: to see
the (*much* smaller) non-whitespace changes in this (or any other)
commit, use "git log -p -w -1 <sha1>".
For example, a syntactic form box is labeled with "SYNTAX". Forms
such as `defform' and `defthing' now support a `#:kind' option
for setting the label.
Also, use keywords for `make-pen' and `make-brush'.
Adding `make-pen' and `make-color' creates many conflicts among
teaching libraries, such as `2htdp/image'. These are easy to fix
up in the tree, but adding such obvious names to `racket/draw'
may create other compatibility problems, so we might have to reconsider
the names.
In consultation with Asumu.
It looks like run-teaching-program hasn't been touched in quite a while.
To begin with, the "rewrite-module" function used to add code to print
out values of non-define exprs, but this is no longer necessary. In fact,
the only thing that it does now is to discard "provide" statements, and
even this may be unnecessary. I rewrote big chunks of this (short) file
to introduce defines, eliminate unnecessary functions, and add stepper-
skip-completely annotations to the requires associated with teachpacks.
Also, it appears that the 'rep' argument to expand-teaching-program
was entirely superfluous; I removed it from the argument list, and also
from the three places in the main tree (deinprogramm, lang, and the stepper)
that call this function.
Let me know of any problems seen with teachpack requires....
Namely, not the singular record signature, but the signature
constructors of `define-record-procedures-parametric'.
(We'd done this before, but that patch got reverted, without the
doc part getting reinstated.)
Such as this, submitted by Torsten Grust:
(define-record-procedures-parametric stream_ stream-of
make-stream
stream?
(stream-head stream-tail))
(define stream
(lambda (t)
(signature (stream-of t (-> (stream t))))))
(: from (number -> (stream number)))
(define from
(lambda (n)
(make-stream n (lambda () (from (+ n 1))))))
(: foo (stream number))
(define foo (from 1))
The problem was that the arbitaries got evaluated too eagerly.
This commit fix an unintentional change introduced by this commit:
c7d67f9bab
(and it also adds in test cases for what that commit appears to have
been doing)
Assuming everyone agrees that the behavior for first rest from back
in 2010 is the behavior we still want (and the lack of release notes
on the subject makes me believe that we do), then:
Please include in 5.2.
(that is, I think that the complaints coming from the
tests\deinprogramm\test-docs-complete.rkt message are
now pointing out things for which there is actually no
documentation, instead of pointing out the need for
different declare-exporting declarations)