guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Broken Backtraces, and Part of a Solution


From: Noah Lavine
Subject: Re: Broken Backtraces, and Part of a Solution
Date: Wed, 18 Apr 2012 21:08:05 -0400

On Wed, Apr 18, 2012 at 8:56 PM, Andy Wingo <address@hidden> wrote:
> On Wed 18 Apr 2012 17:02, Noah Lavine <address@hidden> writes:
>
>> The problem is that narrow-stack->vector returns #(). It does this
>> because the stack is narrowed to nothing. The narrowing really happens
>> in the functions scm_make_stack and narrow_stack, in stacks.c.
>>
>> The reason it narrows to nothing is the third argument to
>> narrow-stack->vector, tag. On my Guile build, tag evaluates to
>> '("start-stack").
>
> Aaaaah.  I was seeing something like this as well but I didn't figure
> out why.  Thanks for tracking this down!  The reason is that the type of
> make-prompt-tag changed, and the stack narrowing code didn't adapt
> accordingly.  We need to change to default to consider generic objects
> as eq?-compared prompt tags.

I agree, but you still couldn't use procedures or integers as prompt
tags if you wanted make-stack to work, because those are special
cases. That's why I thought of just changing the interface to
make-stack to specify what you want - it's such a weird restriction
that someone could be bitten by it and have a lot of trouble tracking
it down. And because an argument can mean three different things, code
that uses make-stack is hard to understand (or at least it was for
me).

What do you think?

Noah



reply via email to

[Prev in Thread] Current Thread [Next in Thread]