[plt-scheme] questions about graphical debugger

From: Eli Barzilay (eli at barzilay.org)
Date: Wed Jul 29 12:39:04 EDT 2009

On Jul 29, Gregory Cooper wrote:
> I suspect you're using a language level that does some implicit
> expansion of your code before evaluation.  The debugger steps
> through the expanded code (whose semantics are somewhat different),
> and attempts to map the state of the evaluator back to the original
> source.  The issue of #<void> for top-level expressions has come up
> before, and I'm not sure why it can't be fixed.  (Eli?)

Reading the original message, it looks like the problem is that all
toplevel expressions in the `scheme' (and `scheme/base') languages are
wrapped in a print'expression, so you see the result of that instead
of the result of evaluation.  I don't know much about the annotations
that the debugger is using, but reporting the voids is clearly not a
good feature.

Matthew: maybe it's better to have those wrappers print the value and
also return it?  It seems to me harmless to do that.

> If you run it in, for example, Pretty Big, I think the results will
> be more in line with your expectations.

Using pretty big should be strongly discouraged.  It's a legacy
language, and now that we've spent some considerable time in v4, it's
getting farther away from current code.

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the users mailing list.