GNU logs - #34185, boring messages


Message sent to bug-guile@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#34185: GOOPS - metaclass with extra-slots made trying to define a getter, a setter or an accessor will raise an exception
Resent-From: David Pirotte <david@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guile@HIDDEN
Resent-Date: Thu, 24 Jan 2019 01:21:02 +0000
Resent-Message-ID: <handler.34185.B.15482928038525 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 34185
X-GNU-PR-Package: guile
X-GNU-PR-Keywords: 
To: 34185 <at> debbugs.gnu.org, guile-devel@HIDDEN
X-Debbugs-Original-To: <bug-guile@HIDDEN>, guile-devel <guile-devel@HIDDEN>
Received: via spool by submit <at> debbugs.gnu.org id=B.15482928038525
          (code B ref -1); Thu, 24 Jan 2019 01:21:02 +0000
Received: (at submit) by debbugs.gnu.org; 24 Jan 2019 01:20:03 +0000
Received: from localhost ([127.0.0.1]:43180 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gmTgZ-0002DQ-Eq
	for submit <at> debbugs.gnu.org; Wed, 23 Jan 2019 20:20:03 -0500
Received: from eggs.gnu.org ([209.51.188.92]:55736)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <david@HIDDEN>) id 1gmTgW-0002Cs-Sl
 for submit <at> debbugs.gnu.org; Wed, 23 Jan 2019 20:20:01 -0500
Received: from lists.gnu.org ([209.51.188.17]:41306)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <david@HIDDEN>) id 1gmTgR-0006i0-KB
 for submit <at> debbugs.gnu.org; Wed, 23 Jan 2019 20:19:55 -0500
Received: from eggs.gnu.org ([209.51.188.92]:37681)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <david@HIDDEN>) id 1gmTgM-0006zK-V8
 for bug-guile@HIDDEN; Wed, 23 Jan 2019 20:19:54 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=0.1 required=5.0 tests=BAYES_50,RCVD_IN_DNSWL_LOW
 autolearn=disabled version=3.3.2
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <david@HIDDEN>) id 1gmTgM-0006fI-7A
 for bug-guile@HIDDEN; Wed, 23 Jan 2019 20:19:50 -0500
Received: from maximusconfessor.all2all.org ([79.99.200.102]:53366)
 by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <david@HIDDEN>)
 id 1gmTgL-0006d4-Sd; Wed, 23 Jan 2019 20:19:50 -0500
Received: from localhost (localhost [127.0.0.1])
 by maximusconfessor.all2all.org (Postfix) with ESMTP id 00D3B1BE00E6;
 Thu, 24 Jan 2019 02:19:47 +0100 (CET)
Received: from maximusconfessor.all2all.org ([127.0.0.1])
 by localhost (maximusconfessor.all2all.org [127.0.0.1]) (amavisd-new,
 port 10024)
 with ESMTP id MNstDJac7BCz; Thu, 24 Jan 2019 02:19:46 +0100 (CET)
Received: from capac (unknown [177.98.10.100])
 by maximusconfessor.all2all.org (Postfix) with ESMTPSA id C6ADE1BE00E0;
 Thu, 24 Jan 2019 02:19:45 +0100 (CET)
Date: Wed, 23 Jan 2019 23:19:39 -0200
From: David Pirotte <david@HIDDEN>
Message-ID: <20190123231939.0a6115e6@capac>
X-Mailer: Claws Mail 3.17.2 (GTK+ 2.24.32; x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
 boundary="Sig_/0RnbqR+A..mrpnw3ro8uSHw"; protocol="application/pgp-signature"
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Received-From: 79.99.200.102
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--Sig_/0RnbqR+A..mrpnw3ro8uSHw
Content-Type: multipart/mixed; boundary="MP_/=Fbyds6quu6u=hiWGWlrem1"

--MP_/=Fbyds6quu6u=hiWGWlrem1
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Hello,

Using a metaclass that defines extra-slots, will only work if the extra-slo=
ts are
made 'exclusively' using the expression:

	(make <slot> #:name name)

If one tries to pass a setter, a getter or an accessor, it raises an except=
ion.
Attached a code snipset to reproduce the error: drop it anywhere and load i=
t, then
enter ',bt' to see the backtrace ...

	I pasted the error I get, below my signature, so one can compare
	I am using Guile 2.2.4.1-cdb19

As you can see, the error is triggered by (oop goops) add-method! - called =
by=20
compute-slot-accessors - which complains that the accessor name (or getter =
or setter
name) is not a valid generic function.

Though I think it should be automatically created if it does not exists, I =
also
tried to create it - which you may try uncommenting line 20 and 21 of the c=
ode
snipset - but that didn't solve the problem.

Thanks,
David


scheme@(guile-user)> (load "/usr/alto/projects/g-golf/foo-acc.scm")
;;; note: source file /usr/alto/projects/g-golf/foo-acc.scm
;;;       newer than compiled /home/david/.cache/guile/ccache/2.2-LE-8-3.A/=
usr/alto/projects/g-golf/foo-acc.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=3D0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /usr/alto/projects/g-golf/foo-acc.scm
;;; compiled /home/david/.cache/guile/ccache/2.2-LE-8-3.A/usr/alto/projects=
/g-golf/foo-acc.scm.go
scm-error!x

Entering a new prompt.  Type `,bt' for a backtrace or `,q' to continue.
scheme@(foo-acc) [1]> ,bt
In ice-9/boot-9.scm:
   2316:4  7 (save-module-excursion _)
  3835:12  6 (_)
In /usr/alto/projects/g-golf/foo-acc.scm:
     36:0  5 (_)
In oop/goops.scm:
   3032:4  4 (_ _ . _)
   2925:2  3 (_ #<<foo-class> <foo> 563eb337f360> _)
In srfi/srfi-1.scm:
    640:9  2 (for-each #<procedure 563eb2b3b4c0 at oop/goops.scm:2720:3 (sl=
ot)> (#<<slot> x 563eb337f=E2=80=A6> =E2=80=A6))
In oop/goops.scm:
   2730:9  1 (_ #<<slot> x 563eb337f1b0>)
In unknown file:
           0 (scm-error goops-error #f "~S is not a valid generic function"=
 (!x) ())
scheme@(foo-acc) [1]>=20

--MP_/=Fbyds6quu6u=hiWGWlrem1
Content-Type: text/x-scheme
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment; filename=foo-acc.scm


(define-module (foo-acc)
  #:use-module (oop goops)

  #:export (<foo-class>
            <foo>))


(define %props
  '("x"
    "y"))


(define-class <foo-class> (<class>))

(define (compute-extra-slots props slots)
  (map (lambda (prop)
         (let ((name (string->symbol prop))
               (acc (string->symbol (string-append "!" prop)))
               #;(gen (make <generic> #:name acc)))
           #;(module-define! (current-module) acc gen)
           #;(make <slot> #:name name)
           #;(make <slot> #:name name #:getter name)
           (make <slot> #:name name #:accessor acc)))
    props))

(define-method (compute-slots (class <foo-class>))
  (let* ((slots (next-method))
         (extra (compute-extra-slots %props slots)))
    (slot-set! class 'direct-slots
               (append (slot-ref class 'direct-slots)
                       extra))
    (append slots extra)))


(define-class <foo> ()
  #:metaclass <foo-class>)

--MP_/=Fbyds6quu6u=hiWGWlrem1--

--Sig_/0RnbqR+A..mrpnw3ro8uSHw
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEhCJlRZtBM3furJHe83T9k6MFetcFAlxJEqsACgkQ83T9k6MF
etc7BwgAm4VDw9kzp+bPBsbXcpnP5cwHzk5MVqvP7I54w9qEaVFmYHgSPHWFkusH
JVHalbVJfolA5N7ZPwDwFXjoXB3olbi+EdKeoLGUAvmGRLRmHVKv7w4I/X+JL3tK
ORpDwt6NOSfgA5BL/r+JFo121AYNrpRYdntC809r4P74zO0ancbbvKml0kesGAJ8
hP0SOQr4vycuSUege86kZolrLaorwu1DxBG+BG+3sUFsshDE6oIIg7dtAqSYmpB4
d1fsqrcl0vqgtY9D/qpBrKfTb6oiEhoMVlriHCTgZoGVVJUrDCuzLsphlnaQeLnH
B+WuIIpXnfJ45rmqvoPbucaQhfcLTA==
=/KNs
-----END PGP SIGNATURE-----

--Sig_/0RnbqR+A..mrpnw3ro8uSHw--




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: David Pirotte <david@HIDDEN>
Subject: bug#34185: Acknowledgement (GOOPS - metaclass with extra-slots
 made trying to define a getter, a setter or an accessor will raise an
 exception)
Message-ID: <handler.34185.B.15482928038525.ack <at> debbugs.gnu.org>
References: <20190123231939.0a6115e6@capac>
X-Gnu-PR-Message: ack 34185
X-Gnu-PR-Package: guile
Reply-To: 34185 <at> debbugs.gnu.org
Date: Thu, 24 Jan 2019 01:21:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-guile@HIDDEN

If you wish to submit further information on this problem, please
send it to 34185 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
34185: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D34185
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems



Last modified: Mon, 25 Nov 2019 12:00:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.