[plt-scheme] questions about graphical debugger
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!