From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "Thompson, David" Newsgroups: gmane.lisp.guile.user Subject: Re: MOP issues with Date: Fri, 29 Jan 2021 11:07:04 -0500 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000a396b705ba0c3239" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="6650"; mail-complaints-to="usenet@ciao.gmane.io" To: Guile User Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Fri Jan 29 17:07:51 2021 Return-path: Envelope-to: guile-user@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l5WJK-0001ca-GT for guile-user@m.gmane-mx.org; Fri, 29 Jan 2021 17:07:50 +0100 Original-Received: from localhost ([::1]:41930 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l5WJJ-0002yJ-CS for guile-user@m.gmane-mx.org; Fri, 29 Jan 2021 11:07:49 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:35166) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l5WIt-0002yB-Ie for guile-user@gnu.org; Fri, 29 Jan 2021 11:07:23 -0500 Original-Received: from mail-vs1-xe29.google.com ([2607:f8b0:4864:20::e29]:46668) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1l5WIp-0004Vp-Or for guile-user@gnu.org; Fri, 29 Jan 2021 11:07:23 -0500 Original-Received: by mail-vs1-xe29.google.com with SMTP id 186so5070381vsz.13 for ; Fri, 29 Jan 2021 08:07:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=worcester-edu.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=jMmXwst4Bvj+0YNvjx/8ursyznAz4881tTdEJc0YnxE=; b=WsqGmqI2zxxo4t6j7GZH1B0+9K/JWouYvj0BrIhY+fKsb5xLUR30bGXfXhYCvr4pGH CWYYkXxcdBACQsUhorVSxKsRWmXxpinAMiUsR1cGQf8AAK4fDdseej14Eiolr3fstqed 2hRHRObBBFi11v6lrokJ4XkGf88lmhkt8+SzkUZ8heyraGdQf5sbg9P4ItH8Ysao2dwU QgROUU26OF1vtEBvSAF/xaIFimawYEXPAI3vDzMPpr+D7uGI27a3NUWBGElIlRV9T3Gp 2u5TZH9A6wbcQitZUYaJ10X90bwlY5zcWFFioyT/ong+j+EukozxD+jglUYGowjdjGZc bYcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=jMmXwst4Bvj+0YNvjx/8ursyznAz4881tTdEJc0YnxE=; b=TpTN4tkehaAGo1F/SDDd3D+NOOutzqXZzNb+ilcxVNZ61siwgDhtqJSmSeQUlUfa/B cL5/ioWQnmismqtYOLDUKOJdBpIwsF4Xy0jkY3DIo6p4DwLdl670i0s5PCatpTLGrey/ ZBIiDDbiOz6KyO5Gxk8RLYVCiLt9vngk9gjs9rCq8Es3dnAe0aY0jd61zZjuHoFtpDha IPJbgHiYpltApIujTCSzX6/pyrbRK6pl7hnxk9vQpSbQosX6Q5awsvBSE6YmKQOvKWQB yRsw255Ud00+gPlk4a8vSpUZep7H2E7rRx1YI5hdyH6qwhtIdp/3kOOVy0Zr2Dq8FdPU 0jeA== X-Gm-Message-State: AOAM53323LK3BrLiCuibxiOL50V1w7A0N3QrIipgU6XuEZ12stLGIox1 3CGJM1i1QZBOflmJ+s6a0xtFwYgUxflUex/QBVL0Lgtbjgzuzg== X-Google-Smtp-Source: ABdhPJxlPDB1EnkEZb//DfWw+ojn0cHhaH42T8IvzJF/zQ046xlqZqhXsoiNfHUDnGS4aiGKlLoTOjNM/53Hehat0Q8= X-Received: by 2002:a67:e412:: with SMTP id d18mr3038663vsf.59.1611936435494; Fri, 29 Jan 2021 08:07:15 -0800 (PST) In-Reply-To: Received-SPF: pass client-ip=2607:f8b0:4864:20::e29; envelope-from=dthompson2@worcester.edu; helo=mail-vs1-xe29.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.io gmane.lisp.guile.user:17197 Archived-At: --000000000000a396b705ba0c3239 Content-Type: text/plain; charset="UTF-8" Sigh... I screwed up the example code. Here's a fixed version: (use-modules (oop goops) (srfi srfi-111)) (define-class ()) (define (boxed-slot? slot) (get-keyword #:box? (slot-definition-options slot))) (define-method (compute-getter-method (class ) slot) (if (boxed-slot? slot) (make #:specializers (list class) #:procedure (let ((slot-name (slot-definition-name slot))) (lambda (obj) (unbox (slot-ref obj slot-name))))) (next-method))) (define-method (compute-setter-method (class ) slot) (if (boxed-slot? slot) (make #:specializers (list class ) #:procedure (let ((slot-name (slot-definition-name slot))) (lambda (obj value) (set-box! (slot-ref obj slot-name) value)))) (next-method))) (define-class ( )) (define-class () (bar #:accessor bar #:box? #t #:init-form (box 123)) #:metaclass ) (define-class () (bar #:accessor bar #:box? #t #:init-form (box 123)) #:metaclass ) ;; This works: (pk (+ (bar (make )) 456)) ;; This throws an error: (pk (+ (bar (make )) 456)) Attached is a quick patch I threw together that makes the example code work. Did I find a bug??? - Dave --000000000000a396b705ba0c3239 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-goops-Preserve-all-slot-options-in-redefinable-class.patch" Content-Disposition: attachment; filename="0001-goops-Preserve-all-slot-options-in-redefinable-class.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kkihaa9z0 RnJvbSAwNGFiZjhlYjYyZGQ1OGZhM2Q3ZmYzZjA5MjRhNGFmZjJjZjAwMGM0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBUaG9tcHNvbiA8ZHRob21wc29uQHZpc3RhaGlnaGVy bGVhcm5pbmcuY29tPgpEYXRlOiBGcmksIDI5IEphbiAyMDIxIDExOjA0OjU2IC0wNTAwClN1Ympl Y3Q6IFtQQVRDSF0gZ29vcHM6IFByZXNlcnZlIGFsbCBzbG90IG9wdGlvbnMgaW4gcmVkZWZpbmFi bGUgY2xhc3Nlcy4KCi0tLQogbW9kdWxlL29vcC9nb29wcy5zY20gfCAxNiArKysrKysrKystLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL21vZHVsZS9vb3AvZ29vcHMuc2NtIGIvbW9kdWxlL29vcC9nb29wcy5zY20KaW5k ZXggZGY2ZGY0ZjdiLi5hODBiZTZhN2EgMTAwNjQ0Ci0tLSBhL21vZHVsZS9vb3AvZ29vcHMuc2Nt CisrKyBiL21vZHVsZS9vb3AvZ29vcHMuc2NtCkBAIC0zMDgxLDE4ICszMDgxLDIwIEBAIHZhcntp bml0YXJnc30uIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNs b3QtZGVmaW5pdGlvbi1uYW1lIHMpKSkKICAgICAgICAgICAgICAgIChyZWYgKHNsb3QtZGVmaW5p dGlvbi1zbG90LXJlZi9yYXcgcyopKQogICAgICAgICAgICAgICAgKHNldCEgKHNsb3QtZGVmaW5p dGlvbi1zbG90LXNldCEgcyopKSkKLSAgICAgICAgICAobWFrZSAoY2xhc3Mtb2YgcykgIzpuYW1l IChzbG90LWRlZmluaXRpb24tbmFtZSBzKQotICAgICAgICAgICAgICAgICM6Z2V0dGVyIChzbG90 LWRlZmluaXRpb24tZ2V0dGVyIHMpCi0gICAgICAgICAgICAgICAgIzpzZXR0ZXIgKHNsb3QtZGVm aW5pdGlvbi1zZXR0ZXIgcykKLSAgICAgICAgICAgICAgICAjOmFjY2Vzc29yIChzbG90LWRlZmlu aXRpb24tYWNjZXNzb3IgcykKLSAgICAgICAgICAgICAgICAjOmluaXQta2V5d29yZCAoc2xvdC1k ZWZpbml0aW9uLWluaXQta2V5d29yZCBzKQotICAgICAgICAgICAgICAgICM6aW5pdC10aHVuayAo c2xvdC1kZWZpbml0aW9uLWluaXQtdGh1bmsgcykKKyAgICAgICAgICAoYXBwbHkgbWFrZSAoY2xh c3Mtb2YgcykKICAgICAgICAgICAgICAgICAjOmFsbG9jYXRpb24gIzp2aXJ0dWFsCiAgICAgICAg ICAgICAgICAgOzsgVE9ETzogTWFrZSBmYXN0ZXIuCiAgICAgICAgICAgICAgICAgIzpzbG90LXJl ZiAobGFtYmRhIChvKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVmIChzbG90LXJl ZiBvICdpbmRpcmVjdC1zbG90cykpKQogICAgICAgICAgICAgICAgICM6c2xvdC1zZXQhIChsYW1i ZGEgKG8gdikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXQhIChzbG90LXJlZiBv ICdpbmRpcmVjdC1zbG90cykgdikpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo c2V0ISAoc2xvdC1yZWYgbyAnaW5kaXJlY3Qtc2xvdHMpIHYpKQorICAgICAgICAgICAgICAgIChs ZXQgbG9vcCAoKG9wdGlvbnMgKHNsb3QtZGVmaW5pdGlvbi1vcHRpb25zIHMpKSkKKyAgICAgICAg ICAgICAgICAgIChtYXRjaCBvcHRpb25zCisgICAgICAgICAgICAgICAgICAgICgoKSAnKCkpCisg ICAgICAgICAgICAgICAgICAgICgoKG9yICM6YWxsb2NhdGlvbiAjOnNsb3QtcmVmICM6c2xvdC1z ZXQhKSBfIC4gcmVzdCkKKyAgICAgICAgICAgICAgICAgICAgIChsb29wIHJlc3QpKQorICAgICAg ICAgICAgICAgICAgICAoKGt3IGFyZyAuIHJlc3QpCisgICAgICAgICAgICAgICAgICAgICAoY29u cyoga3cgYXJnIChsb29wIHJlc3QpKSkpKSkpKQogICAgICAgIChlbHNlIHMpKSkKICAgICAodW5s ZXNzIChlcXVhbD8gKGxpc3QtaGVhZCBzbG90cyAobGVuZ3RoIHN0YXRpYy1zbG90cykpCiAgICAg ICAgICAgICAgICAgICAgIHN0YXRpYy1zbG90cykKLS0gCjIuMjUuMQoK --000000000000a396b705ba0c3239--