Subject: bug#33216: using custom optimization options eats goops object

From: Jan Nieuwenhuizen <[email-masked]>
Date: Wed, 31 Oct 2018 15:51:31 +0100

Hi!

When running `step.scm' (attached) the expected behaviour is exit 0.

Using auto compilation or default optimization options, that's what
happens

--8<---------------cut here---------------start------------->8---
$ rm -f step.go && guile -e '(step)' step.scm 
15:39:41 janneke@dundal:~/src/bug-0
--8<---------------cut here---------------end--------------->8---

However, when compiled with a particular set of optimization options
(see attached compile.scm), I get

--8<---------------cut here---------------start------------->8---
$ rm -f step.go && guile -L . -C . compile.scm && guile -L . -C . -e '(step)'

;;; WARNING (buggy (#:eliminate-dead-code? #f #:cse? #f))
Backtrace:
           4 (apply-smob/1 #<catch-closure 12356e0>)
In ice-9/boot-9.scm:
    705:2  3 (call-with-prompt ("prompt") #<procedure 148f620 at ice-9/eval.scm:330:13 ()> #<procedure default…>)
In ice-9/eval.scm:
    619:8  2 (_ #(#(#<directory (guile-user) 12ed140>)))
In oop/goops.scm:
   1490:4  1 (cache-miss ())
In unknown file:
           0 (scm-error goops-error #f "No applicable method for ~S in call ~S" (#<<generic> .status (1)> (…)) #)

ERROR: In procedure scm-error:
No applicable method for #<<generic> .status (1)> in call (.status ())
[1]15:40:09 janneke@dundal:~/src/bug-0
--8<---------------cut here---------------end--------------->8---

The error message seems to suggest that <node> `one' is now the empty
list.

This is with  Guile 2.2.4 from current Guix master.

Greetings,
janneke

-- 
Jan Nieuwenhuizen <[email-masked]> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com