From: Nikodemus S. <tsi...@cc...> - 2004-06-22 10:00:04
|
On Fri, 18 Jun 2004, Christophe Rhodes wrote: > Is anyone out there interested in a little bit of work? Attached is a > tacky implementation of a single-stepper, extremely lightly tested (to > the point that I haven't even tried to see if it builds). This is exceedingly funky! By tacky, do you mean the insertion of the signalling forms, or something else? > TODO: > * make it only step onto forms that were in some sense present in the > original source; For general-purpose use that would probably be better, but I think there is educational value in seeing the non-original forms. Maybe another bit of policy based control, eg. debug-internals (which could conceivably be used elsewhere as well)? > * possibly other stuff that I haven't thought of; Intermediate values would be nice. ;-) Cheers, -- Nikodemus "Not as clumsy or random as a C++ or Java. An elegant weapon for a more civilized time." |
From: Christophe R. <cs...@ca...> - 2004-06-22 22:44:52
|
Nikodemus Siivola <tsi...@cc...> writes: > On Fri, 18 Jun 2004, Christophe Rhodes wrote: > >> Is anyone out there interested in a little bit of work? Attached is a >> tacky implementation of a single-stepper, extremely lightly tested (to >> the point that I haven't even tried to see if it builds). > > This is exceedingly funky! > > By tacky, do you mean the insertion of the signalling forms, or something > else? That's basically what I mean. It doesn't have the inherent cleverness of the cmucl-style stepper: working out which assembly instructions are at code section boundaries; replacing those instructions with trapping ones; handling the trap and performing the displaced instruction on continuing. On the other hand, it does have the virtue of standing a chance of being maintainable... >> TODO: >> * make it only step onto forms that were in some sense present in the >> original source; > > For general-purpose use that would probably be better, but I think > there is educational value in seeing the non-original forms. Maybe > another bit of policy based control, eg. debug-internals (which > could conceivably be used elsewhere as well)? Possibly. >> * possibly other stuff that I haven't thought of; > > Intermediate values would be nice. ;-) Yes, Andreas mentioned this on IRC too. It's a SMOP, but not so S, because displaying intermediate values goes something like `(let ((values (multiple-value-list ,before-form))) (signal 'step-condition :after-form ',after-form :before-form ',before-form :values values) (values-list values)) but that's an implicit PROGN, so will go through IR1-CONVERT-PROGN... Patches welcome :-) Cheers, Christophe -- http://www-jcsu.jesus.cam.ac.uk/~csr21/ +44 1223 510 299/+44 7729 383 757 (set-pprint-dispatch 'number (lambda (s o) (declare (special b)) (format s b))) (defvar b "~&Just another Lisp hacker~%") (pprint #36rJesusCollegeCambridge) |