Subject: Re: ACL debugging
From: Erik Naggum <>
Date: 1998/06/03
Newsgroups: comp.lang.lisp
Message-ID: <>

* 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.

  "Where do you want to go to jail today?"
			-- U.S. Department of Justice Windows 98 slogan