[Top][All Lists]

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

Re: Segment fault when Guile displays a backtrace

From: Ludovic Courtès
Subject: Re: Segment fault when Guile displays a backtrace
Date: Tue, 10 Jul 2007 23:31:13 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1 (gnu/linux)


xeos <address@hidden> writes:

> I have found a bug on cvs guile. It has been reproduced by two users
> more too. When Guile crashed when it evaluates a wrong expression of
> the form:
>   (set! 'symbol value)
> Guile should throw (and it do throw) a exeption, Nevertheless it
> crashed in the middle of backtrace log.

This won't be fixed in 1.8.2 because it needs some more thought.

Basically, this has to do with memoization of the generalized `set!'.
The `(quote symbol)' is being weirdly memoized:

  $ guile -c "(set! 'x 2)"
  ERROR: In procedure memoization:
  ERROR: Bad variable (address@hidden #-1#) in expression (set! (address@hidden 
#-1#) 2).

As you can see, the memoized thing is a recursive list, hence the
endless recursion while unmemoizing the faulty expression to display the

The real fix may be to remove the `macroexp ()' function, as already
suggested by the comment in there.  Thus I'll look at it after 1.8.2 is
out (if no one fixes it in the meantime  ;-)).


reply via email to

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