Stepper ------- Changes for 8.15: Bug fixes, thanks to Mike Sperber and Robby Findler Changes for 8.14: None. Changes for 8.13: None. Changes fro 8.12: Bug fix, thanks to both Robby and Mike Sperber. Changes for 8.11: None. Changes for 8.10: Bug fixes 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 (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.