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>".
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....
this situation:
<a x="<b
and, in particular, not do this:
<a x="<b></b>
Looking into this a bit, it isnt' clear how to do this without actually
parsing the whole buffer, something that doesn't seem to be worth
the effort with the amount of use that the XML boxes seem to get
So, for now: closes PR 5440
remove stepper/private/lazy-highlighting.rkt
in stepper/private/macro-unwind.rkt:
- in fall-through, add lazy-proc to lazy #%app special case
in stepper/private/model.rkt
- in send-step, dont use highlight-table, just match top called fn in mark-list
instead
in tests/stepper/
- add lazy stepper tests for filter and fold
in stepper/private/macro-unwind.rkt
- in fall-through, add special #%app case for force
in stepper/private/reconstruct.rkt
- in recon-inner, in called app case, combine force case with other lazy fns
in tests/stepper/
- add test for lazy cond unwinding problem
- in recon-inner, in called app case
- add other force fns to force case (!!, !list, !!list)
- add other list fns
(list?, length, list-ref, etc)
in stepper/private/lazy-highlighting.rkt
- add various list fns (list?, length, list-ref, etc)
in stepper/private/macro-unwind.rkt
- in unwind-cond, disable check of user-source and user-position
in tests/stepper/
- add test for various list fns
- modify cond for stepper
- add support for multiple values in stepper
- add inspector to multiple-values struct
- hide split-values call in ~define-values
in tests/stepper/
- add tests for cond
in stepper/private/annotate.rkt
- in annotate/top-level, allow arbitrary top-level terms
(no error in else case), otherwise exprs like let throws error
in stepper/private/
reconstruct.rkt
lazy-highlighting.rkt
- add support for eq? eqv? equal? lazy fns
in stepper/private/marks.rkt
- in mark-binding-value, add exception handler to catch undefined vars, so
display-mark in break works with recursive fns
in /tests/stepper/automatic-tests.rkt
through-tests.rkt
- add inf list example from icfp paper
in stepper/private/model.rkt
- refactor send-step to use cond instead of unless
- in send-step, when highlight-stack = null and last-rhs != null (and lhs !=
last-rhs), send a step with lhs = last-rhs (previously skipped whenever
highlight-stack = null)
- basic filter example wasnt showing result without this
- in icfp inf list example, this shows some intermediate forcing states
- all other existing tests passed
- in recon-inner, called app case, add first fn to list of special lazy fns
- in recon-value, add handling of running promises not found by
recon-inner search
- add optional so-far param to recon-value
- add unknown-promises-table and add case in recon-value to handle
in stepper/private/lazy-highlighting.rkt
- add (first,0) pair
in stepper/private/model.rkt
- modify lazy fn "skipping" (from lazy-highlighting.rkt) to use the skips
only when last-rhs-exp = null; o.w. skipping is handled solely by
examining last-rhs-exp
in tests/stepper/
- add take example from icfp paper
- add tests for unknown promises
- in recon-value, add cases to handle list and cons
- in recon-inner, in app called case, add case to handle lazy list fns
that contain unannotated !'s (ie cadr, cdddr, second, third, etc)
in stepper/private/model.rkt
- add highlight-stack
- in send-step, add various skip conditions when lhs = ellipses
add file stepper/private/lazy-highlighting.rkt
in tests/stepper/through-tests.rkt
tests/stepper/automatic-tests.rkt
- add tests for list and cons fns