From unknown Thu Jun 19 14:02:14 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#46175 <46175@debbugs.gnu.org> To: bug#46175 <46175@debbugs.gnu.org> Subject: Status: Redefinable classes clobber custom slot options Reply-To: bug#46175 <46175@debbugs.gnu.org> Date: Thu, 19 Jun 2025 21:02:14 +0000 retitle 46175 Redefinable classes clobber custom slot options reassign 46175 guile submitter 46175 "Thompson, David" severity 46175 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Fri Jan 29 11:43:54 2021 Received: (at submit) by debbugs.gnu.org; 29 Jan 2021 16:43:54 +0000 Received: from localhost ([127.0.0.1]:52848 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5WsD-0000qm-EB for submit@debbugs.gnu.org; Fri, 29 Jan 2021 11:43:54 -0500 Received: from lists.gnu.org ([209.51.188.17]:53306) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l5WsA-0000qd-AS for submit@debbugs.gnu.org; Fri, 29 Jan 2021 11:43:52 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:40788) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l5Ws9-0006Ml-Qw for bug-guile@gnu.org; Fri, 29 Jan 2021 11:43:50 -0500 Received: from mail-vs1-xe2e.google.com ([2607:f8b0:4864:20::e2e]:33381) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1l5Ws7-00048f-LI for bug-guile@gnu.org; Fri, 29 Jan 2021 11:43:49 -0500 Received: by mail-vs1-xe2e.google.com with SMTP id e15so5181263vsa.0 for ; Fri, 29 Jan 2021 08:43:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=worcester-edu.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=rFWaf5Et2LnXm7Vp1WU+TahUQQYgPGCbDlzjbRMuqCY=; b=sWsP/5BKz2vFisb2ynrLj2d7YwciRtNfxRNL332eL++KA9ezK+v23BBAdpiHTOvlwa XR4fkZMHn/izmcLB6+wtxDM4bH2aKJVpBAW0lx6J+vgF/nbQoUt7q6Q1bN5ECecvRrWp Zhrt6ahioBNowc0EPo8OlPnulixPmUEHGjXILFhdmjUrzCndEtwyugY27haOijyTOH98 9PmqivlSsi/SnsD0jhzncOcfYPaGOvdGcyZrN//uvbJPVD+D6Y7dDz/+2GB/d10pt7k+ qtwv7Bc/16Afp3vvYodmDdvHhwpz7SfY+HrNSelcsbCFN5TXWS1hwl6iGEVaCWIQb9JE qnbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=rFWaf5Et2LnXm7Vp1WU+TahUQQYgPGCbDlzjbRMuqCY=; b=IrnEXhfSyX6yKTiXmuIKk7l/ccV8FgynmQWbxiwawRotf+UOsYY5ptzUcRze5g/Swh rKdRFF7m9iaPtjS9jY3ILoFF7ca3zUARmQEFvQHPEU5E008sNtC3rHtDPfP/QqoevrY1 iJALa0ygH05ih0aoZVG0YxOm7eb0EYeWbK72x0uuYM9zQUVu5o3P9DUTCWKy3o+3RAXx i/y2HGgms8R7gruDSf/qOb9tdGE+mA141YhLFeC1X2jjvcq5psZlFnocpFGYEAfDN3tQ lKOof6UXaLtV7QEi9atXGzKUjuFElD0+obS7B8ty2pjlYjTU2XLziWtXUv73MfGtl1un Ejkg== X-Gm-Message-State: AOAM530qyeR2NqPFysEvvWcyvWzWOuhXqbmin0e975QPTGYHUOQoz0bd TIQHboGbn63/jZq/0NRFtlOkC+YSKlygvxxrMNaDdXPZ7xM/bw== X-Google-Smtp-Source: ABdhPJxEWVPqoP3mUUC0qyntXM8bLSg/7LJ19geqvA27aSJ5k8TjZasJhEwIhLGK5E6JjkzI+amkc1tWxNHO6Pk4GY4= X-Received: by 2002:a67:6b46:: with SMTP id g67mr2957892vsc.60.1611938626053; Fri, 29 Jan 2021 08:43:46 -0800 (PST) MIME-Version: 1.0 From: "Thompson, David" Date: Fri, 29 Jan 2021 11:43:35 -0500 Message-ID: Subject: Redefinable classes clobber custom slot options To: bug-guile@gnu.org Content-Type: multipart/mixed; boundary="000000000000354c2405ba0cb514" Received-SPF: pass client-ip=2607:f8b0:4864:20::e2e; envelope-from=dthompson2@worcester.edu; helo=mail-vs1-xe2e.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-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --000000000000354c2405ba0cb514 Content-Type: text/plain; charset="UTF-8" The compute-slots method for does a transformation of #:allocation #:instance slots to #:allocation #:virtual slots, but in doing so it discards all slot options besides the standard ones. This means that a metaclass that inherits from won't work as expected if it relies upon custom slot options. Test case: (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 patch that preserves all slot options that redefinable classes do not need to alter, including custom ones. How does it look? - Dave --000000000000354c2405ba0cb514 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_kkiijzsf0 RnJvbSBjYmM0MzQ1Mjc5MzgxODIzODllYmU3MmMyNTg1ODdkMTM3YTg1ODkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBUaG9tcHNvbiA8ZHRob21wc29uQHZpc3RhaGlnaGVy bGVhcm5pbmcuY29tPgpEYXRlOiBGcmksIDI5IEphbiAyMDIxIDExOjA0OjU2IC0wNTAwClN1Ympl Y3Q6IFtQQVRDSF0gZ29vcHM6IFByZXNlcnZlIGFsbCBzbG90IG9wdGlvbnMgaW4gcmVkZWZpbmFi bGUgY2xhc3Nlcy4KCiogbW9kdWxlL2dvb3BzLnNjbSAoY29tcHV0ZS1zbG90cyk6IEZpeCA8cmVk ZWZpbmFibGUtY2xhc3M+IHNsb3QKICB0cmFuc2Zvcm1hdGlvbi4KLS0tCiBtb2R1bGUvb29wL2dv b3BzLnNjbSB8IDE2ICsrKysrKysrKy0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlv bnMoKyksIDcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbW9kdWxlL29vcC9nb29wcy5zY20g Yi9tb2R1bGUvb29wL2dvb3BzLnNjbQppbmRleCBkZjZkZjRmN2IuLmE4MGJlNmE3YSAxMDA2NDQK LS0tIGEvbW9kdWxlL29vcC9nb29wcy5zY20KKysrIGIvbW9kdWxlL29vcC9nb29wcy5zY20KQEAg LTMwODEsMTggKzMwODEsMjAgQEAgdmFye2luaXRhcmdzfS4iCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoc2xvdC1kZWZpbml0aW9uLW5hbWUgcykpKQogICAgICAg ICAgICAgICAgKHJlZiAoc2xvdC1kZWZpbml0aW9uLXNsb3QtcmVmL3JhdyBzKikpCiAgICAgICAg ICAgICAgICAoc2V0ISAoc2xvdC1kZWZpbml0aW9uLXNsb3Qtc2V0ISBzKikpKQotICAgICAgICAg IChtYWtlIChjbGFzcy1vZiBzKSAjOm5hbWUgKHNsb3QtZGVmaW5pdGlvbi1uYW1lIHMpCi0gICAg ICAgICAgICAgICAgIzpnZXR0ZXIgKHNsb3QtZGVmaW5pdGlvbi1nZXR0ZXIgcykKLSAgICAgICAg ICAgICAgICAjOnNldHRlciAoc2xvdC1kZWZpbml0aW9uLXNldHRlciBzKQotICAgICAgICAgICAg ICAgICM6YWNjZXNzb3IgKHNsb3QtZGVmaW5pdGlvbi1hY2Nlc3NvciBzKQotICAgICAgICAgICAg ICAgICM6aW5pdC1rZXl3b3JkIChzbG90LWRlZmluaXRpb24taW5pdC1rZXl3b3JkIHMpCi0gICAg ICAgICAgICAgICAgIzppbml0LXRodW5rIChzbG90LWRlZmluaXRpb24taW5pdC10aHVuayBzKQor ICAgICAgICAgIChhcHBseSBtYWtlIChjbGFzcy1vZiBzKQogICAgICAgICAgICAgICAgICM6YWxs b2NhdGlvbiAjOnZpcnR1YWwKICAgICAgICAgICAgICAgICA7OyBUT0RPOiBNYWtlIGZhc3Rlci4K ICAgICAgICAgICAgICAgICAjOnNsb3QtcmVmIChsYW1iZGEgKG8pCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChyZWYgKHNsb3QtcmVmIG8gJ2luZGlyZWN0LXNsb3RzKSkpCiAgICAgICAg ICAgICAgICAgIzpzbG90LXNldCEgKGxhbWJkYSAobyB2KQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKHNldCEgKHNsb3QtcmVmIG8gJ2luZGlyZWN0LXNsb3RzKSB2KSkpKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChzZXQhIChzbG90LXJlZiBvICdpbmRpcmVjdC1zbG90 cykgdikpCisgICAgICAgICAgICAgICAgKGxldCBsb29wICgob3B0aW9ucyAoc2xvdC1kZWZpbml0 aW9uLW9wdGlvbnMgcykpKQorICAgICAgICAgICAgICAgICAgKG1hdGNoIG9wdGlvbnMKKyAgICAg ICAgICAgICAgICAgICAgKCgpICcoKSkKKyAgICAgICAgICAgICAgICAgICAgKCgob3IgIzphbGxv Y2F0aW9uICM6c2xvdC1yZWYgIzpzbG90LXNldCEpIF8gLiByZXN0KQorICAgICAgICAgICAgICAg ICAgICAgKGxvb3AgcmVzdCkpCisgICAgICAgICAgICAgICAgICAgICgoa3cgYXJnIC4gcmVzdCkK KyAgICAgICAgICAgICAgICAgICAgIChjb25zKiBrdyBhcmcgKGxvb3AgcmVzdCkpKSkpKSkpCiAg ICAgICAgKGVsc2UgcykpKQogICAgICh1bmxlc3MgKGVxdWFsPyAobGlzdC1oZWFkIHNsb3RzIChs ZW5ndGggc3RhdGljLXNsb3RzKSkKICAgICAgICAgICAgICAgICAgICAgc3RhdGljLXNsb3RzKQot LSAKMi4yNS4xCgo= --000000000000354c2405ba0cb514-- From debbugs-submit-bounces@debbugs.gnu.org Sat Mar 20 15:02:54 2021 Received: (at 46175-done) by debbugs.gnu.org; 20 Mar 2021 19:02:54 +0000 Received: from localhost ([127.0.0.1]:53128 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNgs9-0007eU-Qm for submit@debbugs.gnu.org; Sat, 20 Mar 2021 15:02:54 -0400 Received: from fanzine.igalia.com ([178.60.130.6]:54358) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lNgs4-0007eC-0w for 46175-done@debbugs.gnu.org; Sat, 20 Mar 2021 15:02:51 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:References:Subject:Cc:To:From; bh=UHot+yyjKfnB00mEXbIENF7mXIOkrLnHfrU2FU7EWhY=; b=r+yLzuVVN+6z4MOwBrkhY3cXs+yHpgrHQp3BCMrFFjlEl/3WTRHQEolNT2CY/SOKriAtG/134+pS/xERs+VY6T36c2CRwADT7+snvyrkzzM4K/Cu/4U557sNUjvmxrEC/crs25SDtDmqK0LCUkAZSxRNojK6NA3aEdpQct6mJO/MNNDWJ23EyWKnw6nBluEEw/IUBqMnGQCco2WLFS2obDuXnzSTAY5Dnx4mtq0TpNyXmJYOE3tSP+sKHdRE3kysEP0oqPZtNMapWnEsYK66wguTzPCwjsu6ZTfdDODbVwvB0Xmix4t/8JpIC57F6X0lYtmLhEy+0tMMGgGU5kBCVA==; Received: from 82-65-63-215.subs.proxad.net ([82.65.63.215] helo=sparrow) by fanzine.igalia.com with esmtpsa (Cipher TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim) id 1lNgrw-0006kC-O3; Sat, 20 Mar 2021 20:02:41 +0100 From: Andy Wingo To: "Thompson, David" Subject: Re: bug#46175: Redefinable classes clobber custom slot options References: Date: Sat, 20 Mar 2021 20:02:29 +0100 In-Reply-To: (David Thompson's message of "Fri, 29 Jan 2021 11:43:35 -0500") Message-ID: <87lfahwsvu.fsf@pobox.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: 46175-done Cc: 46175-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.3 (/) On Fri 29 Jan 2021 17:43, "Thompson, David" writes: > The compute-slots method for does a transformation > of #:allocation #:instance slots to #:allocation #:virtual slots, but > in doing so it discards all slot options besides the standard ones. > This means that a metaclass that inherits from > won't work as expected if it relies upon custom slot options. Thanks for the report; patch applied! Andy From unknown Thu Jun 19 14:02:14 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sun, 18 Apr 2021 11:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator