- bug fixes are related to allocation and runstack space
- a `touch' within a future can complete before the `touch'ing
future is itself `touch'ed
- also make `length' safe (and JIT-inlined)
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
this meant that if some line were supposed to be indented in the third
column and you had two tabs and a space on that line, the indenter
would leave it alone. Now, if it sees tabs in the line anywhere, it just
decides that the line is not properly indented and re-indents it
(always using spaces)
Also: started a tabber test suite
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
It was very hard to figure out why � is invalid. Both the XML 1.0 and 1.1 specs say that a CharRef can be '&#' [0-9]+ ';' (sec 4.1), but there is a note on the side that it must also be a valid Char. The Char definition (sec 2.2) then lays out which characters are valid. (The 1.0 and 1.1 specs disagree though.) I've gone with the 1.1 definition.
I did not update the rest of the reader to disallow those characters in pcdata segments. If this hurts you or you morally disagree, submit another PR, please.
- fail gracefully with pre 1.4 Cairo
- clip all drawing for an empty clipping region
- disallow `is-empty?' on a region without a DC
(since the test depends on the DC dimensions)
- rename old `racket/stream' to `racket/sequence', and adjust
to avoid stateful iterations
- add a new `racket/stream' library with a `strean-cons' that is based
on SRFI 41
- adjust `for' and some sequence constructors like `in-range' to
work more directly with streams
This avoids constraint explosions in some cases, notably when working
with polydots and plain variable arity functions at the same time.
However, this also weakens inference a bit (breaks it for
unholy-terror and related tests), but not in a way that affects any
practical use cases that I know of.
- syntax is now (generator formals body ...+)
- add `generator?'
- remove common run-time code from the `generator' macro expansion
- doc fixes
- start test suite
(It's possible to have issues with "localhost", for example when there's
something in a $LOCALDOMAIN environment variable, which made this test
fail on certain machines.)
- abstract over JIT inlining of fsemaphore operations
- fix problems with non-parallel fsemaphores
- adjust tests so they don't assume too much concurrency
- clarify fsemaphore vs. semaphore in the docs