Stepper
-------

Changes for 8.9:

None.

Changes for 8.8:

Test cases & better support for templates, better
support for begin with at most one non-skipped subexpression

Changes for 8.7:

Bug fixes in & around templates & begin

Changes for 8.6:

None.

Changes for 8.5:

None.

Changes for 8.4:

None.

Changes for 8.3:

Fixed a number of bugs.

Changes for 8.2:

Printing is now unified across the stepper and all
implementations of teaching languages.

Changes for 8.1:

Stepper now enabled for #lang-based teaching languages.
Mike Sperber did all of the work to make this happen!

Changes for 8.0:

Bug fix.

Changes for 7.9:

pass through uses of #%variable-reference in expnded code

Changes for 7.8:

None

Changes for 7.7:

Refactor and cleanup of step storage, repair of early-stepping bug

Changes for 7.6:

Stepper uses color preferences for display (including white-on-black)

Changes for 7.5:

New button layout.

Changes for 7.4:

None

Changes for 7.3:

Bug fixes.

Changes for 7.2:

Stepper now renames properly to avoid collisions on renamed variables.

Changes for 7.1:

Stepper no longer scrolls up to the top every time when stepping forward.

Changes for 7.0:

Bug fixes, refactoring.

Changes for 6.12:

None.

Changes for 6.11:

None.

Changes for 6.10:

None.

Changes for 6.9:

None.

Changes for 6.8:

None.

Changes for 6.7:

Several bug fixes.

Changes for 6.6:

Moved parts of stepper to Typed Racket.

Snips are now shown correctly in #lang htdp/bsl et al.

Miscellaneous cleanup and bugfixes.

Changes for 6.5:

None.

Changes for 6.4:

Enable stepper for #lang-based languages.

Changes for 6.3:

Many many bugfixes, lots of preparation for #lang-based htdp languages.
Lots of code cleanup, rackety, logging using define-logger, etc.

Changes for 6.2:

None.

Changes for 6.1.1:

None.

Changes for 6.1:

Bugfixes.

Changes for 6.0.1:

None.

Changes for 6.0:

Minor bug fixes.

Changes for 5.3.6:

None.

Changes for 5.3.4:

None.

Changes for 5.3.3:

None.

Changes for 5.3.2:

None.

Changes for 5.3.1:

Addded external interface, for third-party stepper developers.

Changes for 5.3:

Minor bug fixes.

Changes for v5.2.1:

Fix occasional race condition bug on startup, lovely new icon work by
Neil Toronto.

Changes for v5.2:

None.

Changes for v5.1.2:

Support for 'require' in stepped programs, fixed a number of
bugs,  lots of cleanup & refactoring, some documentation
changes.

Changes for v5.1.1:

None.

Changes for v5.1:

Quite a bit of rackety, retabbing, refactoring. There's no longer a closure
table, but instead functions expand into applicable structures.  Cleanup of
unnecessary function arguments. Got rid of '2vals' idiom. Improved jump
to ... error messages.

Changes for v5.0.2:

Bug fixes, Big Bang working again. Define-struct in local not working.

Changes for v5.0.1:

None.

Changes for v5.0:

Bug fixes, computes all steps ahead of time (some time in last few revs)?

Changes for v4.2.5:

None.

Changes for v4.2.4:

Bug fixes.

Changes for v4.2.3:

Bug fixes, show first step as soon as it appears.

Changes for v4.2.2:

Minor bug fixes.

Changes for v4.2.1:

Minor bug fixes.

Changes for v4.2:

It's now possible to jump to the evaluation of a selected expression in
the stepper.

Changes for v4.1.5:

Minor bug fixes.

Changes for v4.1.4:

None.

Changes for v4.1.3:

Minor bug fixes.

Changes for v4.1.2:

None.

Changes for v4.1.1:

Check-expect now reduces to a boolean in the stepper. Also, this history file
now appears with the most recent entries at the top....

Changes for v4.1:

none.

Changes for v4.0.1:

none.

Changes for v4.0:

overhauled support for check-expect, check-within, check-error.

Changes for v372:

support for check-expect, check-within, and check-error

Changes for v371:

None.

Changes for v370:

Added "End" button to stepper interface.

Stepper supports "begin0".  Again, you'll never know it unless you use
the PLTSTEPPERUNSAFE environment variable.

There's a known bug with expressions of the form (let <bindings> (begin
...)). (It's displayed as (let () X) rather than (begin X).)

Changes for v361:

Bug fix for test cases

Changes for v360:

Stepper supports 'begin'.  You'll never know it unless you use the
PLTSTEPPERUNSAFE environment variable, though.

Changes for v351:

Minor bug fixes

Changes for v350:

None.

Changes for v300: 

Major changes.  The stepper now handles mutation, though it doesn't yet handle
'begin', so the advanced language is not defaultly steppable.  Enable stepping
for the advanced language using the PLTSTEPPERUNSAFE environment variable.

This change has also prompted an interface change; rather than splitting the
stepper window into three panes, there is just one pane, with a simple
left-right split between before & after.  The reason for this is that in the
presence of mutation, it's no longer the case that the "finished" expressions
never change, which means that they can't always be shared between the left and
right hand sides.

Changes for v209:

None.

Changes for v208:

minor bug fixes.

Changes for v207:

None.

Changes for v206p1:

None.

Changes for v206:

Stepper supports intermediate, minor bug fixes, major rewrite of interface
 between reconstruct and display.

Changes for v205:

v. minor bug fixes.

Changes for v204:

none.

Changes for v203:

Much more systematic unwinding, intermediate almost ready, redesigned test suite

Changes for v201:

Minor bug fixes.

Changes for v200:

Total rewrite for new syntax. Addition of test suites.
Addition of somewhat more systematic macro unwinding.
Lots of bug fixes.

Changes for v103:

PRs fixed: 1564, 1277, 1536, 1500, 1561, 1468, 1599, 1631

Changes for v102:

Stepper handles intermediate level.
UI redesigned to use "side-by-side" reduction.

Changes for v101:

all steps scroll to bottom automatically.
constants like 'pi' are explicitly expanded in a step.
stepper uses fewer threads internally.
