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--
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
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.