Re: backtrace and gc

2000-03-16 Thread Mikael Djurfeldt

Ole Myren Rohne <[EMAIL PROTECTED]> writes:

> Exception during backtrace does occur in some situations on my Dec 16
> 16:05 build. I think it was there before as well, but I used to blame
> guile-gtk for crashes during backtrace.

I think, then, that we safely can assume that this bug is not caused
by recent changes, and that not getting "Exception during backtrace"
is due to managing signals at fewer places.  (The code continues to
run after the segmentation fault.)

Is this phenomenon specific to using (ice-9 streams) or does it occur
during other circumstances as well?



Re: backtrace and gc

2000-03-16 Thread Ole Myren Rohne

Mikael Djurfeldt writes:
 > This should, in principle, only affect GC if you have defined
 > GUILE_NEW_GC_SCHEME in __scm.h.  Did you do that?

No.

 > Is it possible for you to tell me exactly the time and date when you
 > checked out your Guile?

I did cvs update guile-core on Mar 16 08:15

 > since you say that you have observed the
 > "Exception during backtrace" for some time.  Do you know for how long?

Exception during backtrace does occur in some situations on my Dec 16
16:05 build. I think it was there before as well, but I used to blame
guile-gtk for crashes during backtrace.

Thanks, Ole



Re: backtrace and gc

2000-03-16 Thread Mikael Djurfeldt

Ole Myren Rohne <[EMAIL PROTECTED]> writes:

> While investigating my streams, throw and backtrace problem, I came
> across the following peculiarity - still on today's cvs version
> 
> Regards, Ole
> 
> guile> (if #f '() (throw 'test 0))
> ERROR: In procedure throw in expression (throw (quote test) 0):
> ERROR: unhandled-exception: test 0
> ABORT: (misc-error)
> 
> Type "(backtrace)" to get more information.
> guile> (backtrace)
> 
> Backtrace:
> 0* #f
> 1  [throw . #]

Thanks for your bug-report.

There has recently been three large changes to Guile:

1. The removal of a call to SCM_ASYNC_TICK from SCM_ALLOW_INTS.

This could be the reason why you no longer get `Exception during
displaying of backtrace: signal'.  This problem can probably be solved
by calling SCM_ASYNC_TICK from suitable place within the backtrace
printing routines.  (We have to discuss this problem, though.  I'll
bring it up on the list later.)

2. The introduction of 2-word cells

This influences the GC.

3. The introduction of a new GC scheme.

This should, in principle, only affect GC if you have defined
GUILE_NEW_GC_SCHEME in __scm.h.  Did you do that?


Is it possible for you to tell me exactly the time and date when you
checked out your Guile?


Probably, though, this problem isn't caused by any of these changes,
but by some earlier change, since you say that you have observed the
"Exception during backtrace" for some time.  Do you know for how long?


Best regards,
/mdj



backtrace and gc

2000-03-16 Thread Ole Myren Rohne

While investigating my streams, throw and backtrace problem, I came
across the following peculiarity - still on today's cvs version

Regards, Ole

guile> (if #f '() (throw 'test 0))
ERROR: In procedure throw in expression (throw (quote test) 0):
ERROR: unhandled-exception: test 0
ABORT: (misc-error)

Type "(backtrace)" to get more information.
guile> (backtrace)

Backtrace:
0* #f
1  [throw . #]




-- 



streams, throw and backtrace

2000-03-16 Thread Ole Myren Rohne

The purpose of this report is to show how changing (if #f '() (begin
...)) into (cond (#f '()) (else ...)) makes the backtracing go crazy.

Regards, Ole

guile> (use-modules (ice-9 streams))
guile> (debug-enable 'backtrace)
(stack 2 debug backtrace depth 20 maxdepth 1000 frames 3 indent 10 width 79 
procnames cheap)
guile> (stream->list (letrec ((loop (lambda (i) (cond (#f '()) (else (and (= i 30) 
(throw (quote test) i)) (cons i (delay (loop (+ i 1) (delay (loop 0

Backtrace:
[...]
14(cond (#f (quote ())) (#t (and (= i 30) (throw # i)) (cons i (delay #
15*   (and (= i 30) (throw (quote test) i))
16[throw test 30]

ERROR: In procedure throw in expression (throw (quote test) i):
ERROR: unhandled-exception: test 30
ABORT: (misc-error)
guile> (stream->list (letrec ((loop (lambda (i) (if #f '() (begin (and (= i 30) (throw 
(quote test) i)) (cons i (delay (loop (+ i 1) (delay (loop 0

Backtrace:
[...]
14(if #f (quote ()) (begin (and (= i 30) (throw # i)) (cons i (delay #
15

At this point, the current CVS version freeze, whereas earlier versions said
`Exception during displaying of backtrace: signal'
--