Subject: bug#17355: closed (Re: bug#17355: #:getter procedure returns unexpected value in GOOPS)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 21 Jun 2016 13:13:02 +0000

Your bug report

#17355: #:getter procedure returns unexpected value in GOOPS

which was filed against the guile package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
17355: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17355
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#17355: #:getter procedure returns unexpected value in GOOPS
From: Andy Wingo <[email-masked]>
To: "Diogo F. S. Ramos" <[email-masked]>
Cc: [email-masked]
Date: Tue, 21 Jun 2016 15:12:22 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Thanks for the report!  This is fixed in Guile 2.0.11 and in 2.1.x,
though the full situation is a bit strange.

See: http://thread.gmane.org/gmane.lisp.guile.user/11218/focus=11813

Regards,

Andy

On Sun 27 Apr 2014 03:43, "Diogo F. S. Ramos" <[email-masked]> writes:

> When using GOOPS, if a class has a second slot, the #:getter procedure
> of the first slot returns the value of the second slot when applied to
> an instance of a subclass.
>
> (use-modules (oop goops))
>
> (define-class <foo> ()
>   (a #:init-form 'foo #:getter foo-a)
>   (b #:init-form 42))
>
> (define-class <bar> (<foo>)
>   (a #:init-form 'bar))
>
>   (foo-a (make <foo>)) => foo
>   (foo-a (make <bar>)) => 42
>
> I expected:
>
>   (foo-a (make <bar>)) => bar
>
> I'm using Guile 2.0.11.

Subject: #:getter procedure returns unexpected value in GOOPS
From: "Diogo F. S. Ramos" <[email-masked]>
To: [email-masked]
Date: Sat, 26 Apr 2014 22:43:41 -0300
List-Id: <debbugs-submit.debbugs.gnu.org>

When using GOOPS, if a class has a second slot, the #:getter procedure
of the first slot returns the value of the second slot when applied to
an instance of a subclass.

--8<---------------cut here---------------start------------->8---
(use-modules (oop goops))

(define-class <foo> ()
  (a #:init-form 'foo #:getter foo-a)
  (b #:init-form 42))

(define-class <bar> (<foo>)
  (a #:init-form 'bar))
--8<---------------cut here---------------end--------------->8---

  (foo-a (make <foo>)) => foo
  (foo-a (make <bar>)) => 42

I expected:

  (foo-a (make <bar>)) => bar

I'm using Guile 2.0.11.