GNU logs - #79880, boring messages


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79880: func-arity should take into account that advices change arity
Resent-From: Jonas Bernoulli <jonas@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 25 Nov 2025 20:22:15 +0000
Resent-Message-ID: <handler.79880.B.17641021283913 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 79880
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: 79880 <at> debbugs.gnu.org, monnier@HIDDEN
X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN, Stefan Monnier <monnier@HIDDEN>
Received: via spool by submit <at> debbugs.gnu.org id=B.17641021283913
          (code B ref -1); Tue, 25 Nov 2025 20:22:15 +0000
Received: (at submit) by debbugs.gnu.org; 25 Nov 2025 20:22:08 +0000
Received: from localhost ([127.0.0.1]:41840 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vNzY7-00010q-Nm
	for submit <at> debbugs.gnu.org; Tue, 25 Nov 2025 15:22:08 -0500
Received: from lists.gnu.org ([2001:470:142::17]:44308)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <jonas@HIDDEN>) id 1vMzBS-0008Eh-J5
 for submit <at> debbugs.gnu.org; Sat, 22 Nov 2025 20:46:35 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <jonas@HIDDEN>) id 1vMzBB-0003nf-CS
 for bug-gnu-emacs@HIDDEN; Sat, 22 Nov 2025 20:46:21 -0500
Received: from mail.hostpark.net ([212.243.197.30])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <jonas@HIDDEN>) id 1vMzB2-0002pW-IU
 for bug-gnu-emacs@HIDDEN; Sat, 22 Nov 2025 20:46:15 -0500
Received: from localhost (localhost [127.0.0.1])
 by mail.hostpark.net (Postfix) with ESMTP id D9652162C9;
 Sun, 23 Nov 2025 02:45:51 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=bernoul.li; h=
 content-type:content-type:mime-version:message-id:date:date
 :subject:subject:from:from; s=sel2011a; t=1763862351; bh=k7UUChl
 ou1TYkq6b5nf1mR67vQJuPkiofv2Hm5ICqbU=; b=tDIW2s2Qh2dEcSWYQwEZuvE
 kk8rtZifAeCIFOjl7wuV4AWiHQvQd5ram1BNnuZbv/Mu1t765AtXHPla5sTvMyzd
 LBZupPF3ugiijm1pAppvTjoXYLrj9HOoUQ8YKgW5Q5xT2JchMBzNjEobhuGgSJ2f
 TmZKF3Y+oj9gpwtP3nn4=
X-Virus-Scanned: by Hostpark/NetZone Mailprotection at hostpark.net
Received: from mail.hostpark.net ([127.0.0.1])
 by localhost (mail0.hostpark.net [127.0.0.1]) (amavis, port 10224) with ESMTP
 id xVCIA9zRMJ-p; Sun, 23 Nov 2025 02:45:51 +0100 (CET)
Received: from customer (localhost [127.0.0.1])
 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange secp256r1 server-signature RSA-PSS (2048 bits) server-digest
 SHA256) (No client certificate requested)
 by mail.hostpark.net (Postfix) with ESMTPSA id 341D9162C7;
 Sun, 23 Nov 2025 02:45:50 +0100 (CET)
From: Jonas Bernoulli <jonas@HIDDEN>
Date: Sun, 23 Nov 2025 02:45:50 +0100
Message-ID: <87see5iks1.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
Received-SPF: pass client-ip=212.243.197.30; envelope-from=jonas@HIDDEN;
 helo=mail.hostpark.net
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001,
 RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,
 SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 0.9 (/)
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: -0.1 (/)

Hello,

Advising a function changes its arity.

(defun foo (a))

(func-arity 'foo)
  => (1 . 1)

(advice-add 'foo :around (lambda (fn a) (funcall fn a)))

(func-arity 'foo)
  => (0 . many)

I think that's problematic.  E.g., if a function gains a new argument
and a package would like to support both the old and the new version,
then it could use `func-arity' to determine whether to pass the new
argument or not, but this breaks if a third-party advises the same
function.

This could be dealt with by adding a new argument to `func-arity',
which controls whether any advice is peeled before determining the
arity.  I tend to think it should peel by default (i.e., the current
behavior looks like a bug to me).

I've been using a wrapper like this:

(defun my-func-arity (fn)
  (func-arity
   (advice--cd*r
    (if (symbolp fn) (symbol-function fn) fn))))

Thanks,
Jonas




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: Jonas Bernoulli <jonas@HIDDEN>
Subject: bug#79880: Acknowledgement (func-arity should take into account
 that advices change arity)
Message-ID: <handler.79880.B.17641021283913.ack <at> debbugs.gnu.org>
References: <87see5iks1.fsf@HIDDEN>
X-Gnu-PR-Message: ack 79880
X-Gnu-PR-Package: emacs
Reply-To: 79880 <at> debbugs.gnu.org
Date: Tue, 25 Nov 2025 20:22:16 +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-gnu-emacs@HIDDEN

If you wish to submit further information on this problem, please
send it to 79880 <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
79880: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D79880
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-gnu-emacs@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#79880: func-arity should take into account that advices change arity
Resent-From: Stefan Monnier <monnier@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-gnu-emacs@HIDDEN
Resent-Date: Tue, 25 Nov 2025 20:32:04 +0000
Resent-Message-ID: <handler.79880.B.176410271518854 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 79880
X-GNU-PR-Package: emacs
X-GNU-PR-Keywords: 
To: Jonas Bernoulli <jonas@HIDDEN>
Cc: 79880 <at> debbugs.gnu.org
X-Debbugs-Original-Cc: bug-gnu-emacs@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.176410271518854
          (code B ref -1); Tue, 25 Nov 2025 20:32:04 +0000
Received: (at submit) by debbugs.gnu.org; 25 Nov 2025 20:31:55 +0000
Received: from localhost ([127.0.0.1]:42328 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1vNzha-0004t2-9D
	for submit <at> debbugs.gnu.org; Tue, 25 Nov 2025 15:31:54 -0500
Received: from lists.gnu.org ([2001:470:142::17]:45894)
 by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.84_2) (envelope-from <monnier@HIDDEN>)
 id 1vNLdi-0001XZ-S2
 for submit <at> debbugs.gnu.org; Sun, 23 Nov 2025 20:45:16 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <monnier@HIDDEN>)
 id 1vNLdY-000668-0s
 for bug-gnu-emacs@HIDDEN; Sun, 23 Nov 2025 20:45:04 -0500
Received: from mailscanner.iro.umontreal.ca ([132.204.25.50])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <monnier@HIDDEN>)
 id 1vNLdW-0002C0-PU
 for bug-gnu-emacs@HIDDEN; Sun, 23 Nov 2025 20:45:03 -0500
Received: from pmg2.iro.umontreal.ca (localhost.localdomain [127.0.0.1])
 by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id C813D81703;
 Sun, 23 Nov 2025 20:45:01 -0500 (EST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca;
 s=mail; t=1763948701;
 bh=OhO4tVRDV4JJ/WEitY/uQlRs8awp1VLQlZQGwb3VJF8=;
 h=From:To:Cc:Subject:In-Reply-To:References:Date:From;
 b=HFoc2uuiwHYiygGKjCFsAY8pO0BDi99GmQn+aZ0NHk9wwDu+WV0HnQzz0RWKXBx8y
 /+nuDsVnw+CayhHLK261oFjU7FFFkF0K2jnLP1Y45PqPlztcOBmnGOM4CHwD/Ya2dd
 uX0i4QxKtnahVkictLAy/po6OssEKFvj1B/L30vvngS7umPds+0n9zepVO7BGgVQcT
 8Q9lT4wVDzLx6ZA3t8Ww3Oh6EXy6AWhYUt1yBcjt1RY5/ROkyJB9FIdLy/s5R/lqTY
 Ce6poWtqi7WxnGAeYcrRdFDGTPTHJScPEv5xNuYQfXGgwkjNVBD3soau6cTmpESazQ
 sEifCvnQ4Vfdw==
Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1])
 by pmg2.iro.umontreal.ca (Proxmox) with ESMTP id 0915E8053B;
 Sun, 23 Nov 2025 20:45:01 -0500 (EST)
Received: from asado (unknown [181.28.45.30])
 by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id D58431207B0;
 Sun, 23 Nov 2025 20:44:59 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <87see5iks1.fsf@HIDDEN>
Message-ID: <jwvwm3gcikc.fsf-monnier+emacs@HIDDEN>
References: <87see5iks1.fsf@HIDDEN>
Date: Sun, 23 Nov 2025 20:44:56 -0500
User-Agent: Gnus/5.13 (Gnus v5.13)
MIME-Version: 1.0
Content-Type: text/plain
X-SPAM-INFO: Spam detection results:  0
 ALL_TRUSTED                -1 Passed through trusted hosts only via SMTP
 AWL -0.249 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DKIM_SIGNED               0.1 Message has a DKIM or DK signature,
 not necessarily valid
 DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature
 DKIM_VALID_AU -0.1 Message has a valid DKIM or DK signature from author's
 domain
 DKIM_VALID_EF -0.1 Message has a valid DKIM or DK signature from envelope-from
 domain
X-SPAM-LEVEL: 
Received-SPF: pass client-ip=132.204.25.50;
 envelope-from=monnier@HIDDEN; helo=mailscanner.iro.umontreal.ca
X-Spam_score_int: -42
X-Spam_score: -4.3
X-Spam_bar: ----
X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3,
 RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,
 SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
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 (-)

> I think that's problematic.  E.g., if a function gains a new argument
> and a package would like to support both the old and the new version,
> then it could use `func-arity' to determine whether to pass the new
> argument or not, but this breaks if a third-party advises the same
> function.

    (condition-case nil
        (foo bar baz)
      (wrong-number-of-arguments
       (foo bar)))

is the standard way to deal with changes in API.
I recommend not to use `func-arity`, ever.


        Stefan






Last modified: Tue, 25 Nov 2025 20:45:01 UTC

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