Subject: Re: ACL debugging From: Erik Naggum <cl@naggum.no> Date: 1998/06/03 Newsgroups: comp.lang.lisp Message-ID: <3105884493025213@naggum.no> * Jeffrey Mark Siskind | One difficulty with providing source-level editor-based stepping in | Common Lisp in contrast to C is that Common Lisp provides macros that can | do arbitrary (potentially non-local) code rewrites that may be difficult | or impossible for the stepper to undo. Try running a command-line | stepper on code that uses LOOP, Series, Iterate, PCL, LM-Prolog, Joshua, | Screamer, or one of the many expert system shells written as macrology on | top of Common Lisp and you will see why. I wonder if I'm missing something, but all the Common Lisp steppers I have used have been source-level steppers in the trivial sense -- they could not step through compiled code in the first place -- all they could do was to step source-level forms. macro functions were called to return a new form to step through -- never saw a macro expansion function that returned compiled code, either, so the macro form would be eminently "undoable" in the sense that you already know what it was to begin with. I'm not sure I _want_ to step through compiled code, either -- it isn't the compiler that I'm debugging. I'm usually quite happy to step through the macro expansions, though, since I'm debugging macro expansions that interact in weird ways more often than I'm debugging "straight" code. not that I wouldn't like a more "visual" interface that highlighted the expression under stepping and replaced sub-forms with their values, including macro expansiosn, but this should a be a lot easier to write than a source-level stepper or debugger that worked with compiled code and debug information. I still wonder if I have missed something really obvious, again. #:Erik -- "Where do you want to go to jail today?" -- U.S. Department of Justice Windows 98 slogan