[Yhc] mapping lambda names to code

Stefan O'Rear stefanor at cox.net
Fri Jun 22 03:52:06 EDT 2007


On Fri, Jun 22, 2007 at 01:12:33PM +0530, Kartik Vaddadi wrote:
> Hello,
> When I compile a program that contains a lambda, the compiler assigns it
> a name like LAMBDA245. Is there any simple way to retrieve the body of
> the lambda, in an automated way, perhaps by modifying the compiler?
> 
> I'm building a tracer/debugger that shows the structure of the heap,
> using a redex trail-like data structure, and it describes indirections
> in the heap well, except when lambdas are involved. In the latter case,
> the compiler-generated names obviously mean nothing to the user and
> don't help him identify which of the lambdas in the code was evaluated.
> Is there any easy way to map the name of the lambda to its body (as
> Haskell source, not bytecode) without doing a source-to-source
> transformation? Thanks.

I started a project exactly like that a few months ago (stagnant for
reasons that don't affect you at all); while reading Simon Marlow's
publications list earlier today, I stumbled on an interesting reference
- Freja, the first of the Haskell debuggers, operated in exactly this
way, using an instrumented GHC (maybe it was HBC? the paper didn't say)
runtime system.  Might be worth checking out.

I think it would be a good idea for Yhc to generate lambda names using
an encoded form of the token location.

Stefan


More information about the Yhc mailing list