GNU bug report logs - #1343
[PATCH] trace package

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Severity: wishlist; Reported by: Vitaly Mayatskikh <v.mayatskih@HIDDEN>; Keywords: moreinfo patch; merged with #6464, #27397; dated Fri, 14 Nov 2008 00:05:06 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 1343 <at> debbugs.gnu.org:


Received: (at 1343) by debbugs.gnu.org; 13 Sep 2022 11:11:10 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Sep 13 07:11:10 2022
Received: from localhost ([127.0.0.1]:49027 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1oY3or-0008PS-TK
	for submit <at> debbugs.gnu.org; Tue, 13 Sep 2022 07:11:10 -0400
Received: from quimby.gnus.org ([95.216.78.240]:35200)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>)
 id 1oY3or-0008PD-5R; Tue, 13 Sep 2022 07:11:09 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Type:MIME-Version:Message-ID:Date:References:
 In-Reply-To:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:
 Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:
 Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=Xn61QfnSFxwLeVXEUZXgdeVXQYByo8LsLZCIbYZo5GQ=; b=SNYU1IaiNx9YNvbfJDVPKfJrf+
 EQCygVp9BbE6QFOxQGs582KPDqIzbPpN0QKWILnW/Y95Nrh/7WNneLRXXj3NMVBs2LyZTKRJmOzgY
 7ihVw3d4K64O0nqhnJViYnZ76mgPiO+toSAfVBSXueeNOvkVF0bTcUlxO6VaV8qzXBl8=;
Received: from [84.212.220.105] (helo=joga)
 by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1oY3oi-0001zi-Oy; Tue, 13 Sep 2022 13:11:02 +0200
From: Lars Ingebrigtsen <larsi@HIDDEN>
To: Michael Albinus <michael.albinus@HIDDEN>
Subject: Re: bug#27397: [PATCH] New commands for bulk tracing of elisp
 functions
In-Reply-To: <87h71cu3jr.fsf@HIDDEN> (Michael Albinus's message of "Mon, 12
 Sep 2022 15:26:32 +0200")
References: <1348823a-7623-8146-8cc0-8c0eff13e458@HIDDEN>
 <94d27dbb-46d3-1d6f-4849-251a0929d413@HIDDEN>
 <70000e90-328c-c084-3e3c-bbde96b16110@HIDDEN>
 <adbc18a1-20ef-5261-6d8e-149b13d61674@HIDDEN>
 <6b195c26-066c-870f-3432-0b24c6f619ec@HIDDEN>
 <d8ba5a45-ae3b-7f05-1749-ca5032d4bee9@HIDDEN>
 <m3sgruykj3.fsf@HIDDEN>
 <83fa3d61-9173-c3f6-32b6-87c7c09502b7@HIDDEN>
 <15f4e949736351f2d98fdee0b57e4d24@HIDDEN>
 <87leqqdtb4.fsf_-_@HIDDEN> <87h71cu3jr.fsf@HIDDEN>
X-Now-Playing: Laurel Halo's _Quarantine_: "Joy"
Date: Tue, 13 Sep 2022 13:11:00 +0200
Message-ID: <87wna74ji3.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 @@CONTACT_ADDRESS@@ for details.
 Content preview:  Michael Albinus <michael.albinus@HIDDEN> writes: > I would
 appreciate if `trace-package' and `trace-library' would know a > similar
 mechanism. It could be a function declaration in the function > definition,
 like > > (declare (debug t) inhibit-trace [...] 
 Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 1343
Cc: Phil Sainty <psainty@HIDDEN>, 1343 <at> debbugs.gnu.org,
 27397 <at> debbugs.gnu.org, Dmitry Gutov <dgutov@HIDDEN>
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: -3.3 (---)

Michael Albinus <michael.albinus@HIDDEN> writes:

> I would appreciate if `trace-package' and `trace-library' would know a
> similar mechanism. It could be a function declaration in the function
> definition, like
>
> (declare (debug t) inhibit-trace ...)

Makes sense to me.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#1343; Package emacs. Full text available.

Message received at 1343 <at> debbugs.gnu.org:


Received: (at 1343) by debbugs.gnu.org; 13 Sep 2022 07:34:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Sep 13 03:34:36 2022
Received: from localhost ([127.0.0.1]:48677 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1oY0RI-0002ij-Ft
	for submit <at> debbugs.gnu.org; Tue, 13 Sep 2022 03:34:36 -0400
Received: from mout.gmx.net ([212.227.15.18]:47149)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <michael.albinus@HIDDEN>)
 id 1oY0RG-0002iS-JQ; Tue, 13 Sep 2022 03:34:35 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;
 s=badeba3b8450; t=1663054460;
 bh=22ar2hiDJYSLxDKTVXpu1Qi5E+wbnpZCV381a9CpyUs=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date;
 b=gIm4mg31RXVY7wu7V1T545rS7QxPz4PcN5jU+GK9cNV3WXtr0zTuvak635FVDXYjl
 ySpZ8hjBzET4fdo3DiV9JQime0gaUBP1j5AZTg2ZN3Qbqcdu5im37ALM4AjsjXzVwW
 6GPkKGW6fZTvx99tBx/NfZ+hRyuUR4Jq6lqRu5MM=
X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c
Received: from gandalf.gmx.de ([213.220.148.100]) by mail.gmx.net (mrgmx005
 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MStCe-1okhSH3tqI-00UL7V; Tue, 13
 Sep 2022 09:34:20 +0200
From: Michael Albinus <michael.albinus@HIDDEN>
To: Phil Sainty <psainty@HIDDEN>
Subject: Re: bug#1343: bug#27397: [PATCH] New commands for bulk tracing of
 elisp functions
In-Reply-To: <59bc6087e71b0c370ea4fe94fba25c43@HIDDEN> (Phil
 Sainty's message of "Tue, 13 Sep 2022 10:17:24 +1200")
References: <1348823a-7623-8146-8cc0-8c0eff13e458@HIDDEN>
 <94d27dbb-46d3-1d6f-4849-251a0929d413@HIDDEN>
 <70000e90-328c-c084-3e3c-bbde96b16110@HIDDEN>
 <adbc18a1-20ef-5261-6d8e-149b13d61674@HIDDEN>
 <6b195c26-066c-870f-3432-0b24c6f619ec@HIDDEN>
 <d8ba5a45-ae3b-7f05-1749-ca5032d4bee9@HIDDEN>
 <m3sgruykj3.fsf@HIDDEN>
 <83fa3d61-9173-c3f6-32b6-87c7c09502b7@HIDDEN>
 <15f4e949736351f2d98fdee0b57e4d24@HIDDEN>
 <87leqqdtb4.fsf_-_@HIDDEN> <87h71cu3jr.fsf@HIDDEN>
 <59bc6087e71b0c370ea4fe94fba25c43@HIDDEN>
Date: Tue, 13 Sep 2022 09:34:18 +0200
Message-ID: <87h71bn2x1.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Provags-ID: V03:K1:ijQhC80XjEwOKLTn8g+W0DGRu6VVQu0im56wB66I8q2/a401sOh
 5EA+64mONuXmapdskHLM6FX/QtJdFQ4XTlWS8YBtK2B3urBViFZWPfu+fXLoMWg4Y2DiMeM
 9/PbK63xG4EJG12fh5DkXwfmGe7oO12lM594c2JtUvutzBphpgODFzIDeIkQmRhprfnGEYL
 vf9JfRsAUtF807MxAwU1Q==
X-Spam-Flag: NO
X-UI-Out-Filterresults: notjunk:1;V03:K0:g09AsDiKB1o=:sLVnpe0R9br0J3RxoLftiV
 jFTr9pQf3Ojxr8Grjuq5SQTQJWLsIwcJsAYTvYFekrywRkGyCK7NJ5o4x0oTw5FMV57rIxICw
 ed0zIKRcq12R6+AmeWVWAXffTepXv/27+bKFFxNb22X2nOSVqrue/qD+H9pnVdiRGMQq250Yy
 TlER4tchBfmYD6Q49laDc4PmHrvipNZRblMhRTrpPCzbBF2RlNUpwxfq5N+h+BDtAK3DCojVA
 I7LrxXtgPJHi8NY9VaaI4fQ4NDgpHKnrKshDk9GukHQtfKa6uPRdjjjcY91XyrDEdksL1/P8M
 jAD9C8XgMLd0EPwjB8ZCzE3LruiLYOtAlXMf8loeb7ln44KQueegmb0Dkx6vv/qI9Pp73i2g3
 15WJFyRcCRBdztvCJd+XKk4oa2/YQ8EZmmwvDO40jnzFe9qc5bclgCKnY5hJjlzWscp9nXEbn
 CNUmWzuwqZQNfHW9pscSaqoRhHGpcR4W99CwoGw6oCm4kK0gIggqsL5bB0deiMzUifJhDG/s7
 3K/BgkcWfiKAG0NMyQgL95XhJuE2jJ9BuQ03qL95Nwm8C0RYkNgjlT7whjsWbXRP5DIdt17SV
 8yXjwrywCDAic2ysyHUD9dOOKWU0LZHrz5vTZS2YgN+MABmiC2AT7HrF9LthwQ5EzF4DB1qzc
 dzzCmJqNMP0Ypf4yQFeE+4d9KrozrltkKaz/FtmEnvC2sALu+/82u69ok0c69EbcN3UDrKduX
 KVwYLJmCIS0pp6zwYbfswF++fQNAE+9rFOkV0z5q2I48LiCJ0kUobpTyoqaaj+dvqHMgTgtNq
 hFZO1qrAkPz8qhGUVI3NYZTUsVJTmpZ8F8LXnFSFajC+7PTL1rsbjuRDt9vB/yTU2+TyYbmp0
 ZKwb18Aj8rezU9LJY2daZjlzcZsXPqWtG4TViD6NVM8GE3jDGlu4x+AV2I0VSsUURklT7s+Lw
 TXiCD+Qafb3ZepvSKVnpv0KFbxzyJ5WSH3AABbrUr/wPwXdZDtitcWZsNnpXfCq+P6UiuF0dZ
 BCIPiPay7Wtl6pF3RS7cWKLV4ZX0CBC4SCAf350bgH8CvVIMXRLWyFG84NLR97pnKW8y2XdiE
 qUBXshDQRyvx+4gqES4Hsrwgrnq+x+/eKd8tWQHO/qF0b66uL3iGFAvGsifAYZHVb1WjdIGHq
 HeUnyJdwbV+5L8iUFix0VZMKcy
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 1343
Cc: 1343 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>,
 27397 <at> debbugs.gnu.org, Dmitry Gutov <dgutov@HIDDEN>
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.7 (-)

Phil Sainty <psainty@HIDDEN> writes:

Hi Phil,

>> There are also chatty functions, which ... add serious noise
>> For that reason, Tramp marks such functions with a function
>> property,
>> Or, dynamically, the global variable inhibit-trace could keep a
>> value
>> of such functions suppressed for trace.
>
> Oddly enough, this had also occurred to me yesterday as a useful
> improvement.

So it must be a good idea :-)

> No problem.  I think the example dates back to the info on tracing
> which used to appear in (info "(tramp) Traces and Profiles") but
> I'd noticed that had been deleted when I was rebasing this work.

Yep. After I had recognized that the instructions in the Tramp manual
aren't robust enough, I've moved this into Tramp core. It can be
activated now with a proper tramp-verbose.

> -Phil

Best regards, Michael.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#1343; Package emacs. Full text available.

Message received at 1343 <at> debbugs.gnu.org:


Received: (at 1343) by debbugs.gnu.org; 12 Sep 2022 22:17:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Sep 12 18:17:34 2022
Received: from localhost ([127.0.0.1]:48309 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1oXrkD-0005Gi-NZ
	for submit <at> debbugs.gnu.org; Mon, 12 Sep 2022 18:17:33 -0400
Received: from smtp-3.orcon.net.nz ([60.234.4.44]:48735)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <psainty@HIDDEN>)
 id 1oXrkB-0005GU-Qp; Mon, 12 Sep 2022 18:17:32 -0400
Received: from [10.253.37.70] (port=48200 helo=webmail.orcon.net.nz)
 by smtp-3.orcon.net.nz with esmtpa (Exim 4.90_1)
 (envelope-from <psainty@HIDDEN>)
 id 1oXrk4-0007kF-OB; Tue, 13 Sep 2022 10:17:24 +1200
Received: from ip-116-251-140-135.kinect.net.nz ([116.251.140.135])
 via [10.253.37.253] by webmail.orcon.net.nz
 with HTTP (HTTP/1.1 POST); Tue, 13 Sep 2022 10:17:24 +1200
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
Date: Tue, 13 Sep 2022 10:17:24 +1200
From: Phil Sainty <psainty@HIDDEN>
To: Michael Albinus <michael.albinus@HIDDEN>
Subject: Re: bug#1343: bug#27397: [PATCH] New commands for bulk tracing of
 elisp functions
In-Reply-To: <87h71cu3jr.fsf@HIDDEN>
References: <1348823a-7623-8146-8cc0-8c0eff13e458@HIDDEN>
 <94d27dbb-46d3-1d6f-4849-251a0929d413@HIDDEN>
 <70000e90-328c-c084-3e3c-bbde96b16110@HIDDEN>
 <adbc18a1-20ef-5261-6d8e-149b13d61674@HIDDEN>
 <6b195c26-066c-870f-3432-0b24c6f619ec@HIDDEN>
 <d8ba5a45-ae3b-7f05-1749-ca5032d4bee9@HIDDEN>
 <m3sgruykj3.fsf@HIDDEN>
 <83fa3d61-9173-c3f6-32b6-87c7c09502b7@HIDDEN>
 <15f4e949736351f2d98fdee0b57e4d24@HIDDEN>
 <87leqqdtb4.fsf_-_@HIDDEN> <87h71cu3jr.fsf@HIDDEN>
Message-ID: <59bc6087e71b0c370ea4fe94fba25c43@HIDDEN>
X-Sender: psainty@HIDDEN
User-Agent: Orcon Webmail
X-GeoIP: --
X-Spam_score: -2.9
X-Spam_score_int: -28
X-Spam_bar: --
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 1343
Cc: 1343 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>,
 27397 <at> debbugs.gnu.org, Dmitry Gutov <dgutov@HIDDEN>
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.7 (-)

On 2022-09-13 01:26, Michael Albinus wrote:
> There are also chatty functions, which ... add serious noise
> 
> For that reason, Tramp marks such functions with a function property,
> 
> Or, dynamically, the global variable inhibit-trace could keep a value
> of such functions suppressed for trace.

Oddly enough, this had also occurred to me yesterday as a useful
improvement.  I was thinking of a global list of functions not to
be traced, but your symbol property approach seems like a good idea
as well.  Perhaps "both" is good.  For symbol properties I think
there would need to be a variable to control whether or not that
was respected, to make it relatively easy to force them to be traced
regardless.


> I wouldn't use `tramp' as example for `trace-library'.

No problem.  I think the example dates back to the info on tracing
which used to appear in (info "(tramp) Traces and Profiles") but
I'd noticed that had been deleted when I was rebasing this work.


-Phil





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#1343; Package emacs. Full text available.

Message received at 1343 <at> debbugs.gnu.org:


Received: (at 1343) by debbugs.gnu.org; 12 Sep 2022 13:26:52 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Sep 12 09:26:52 2022
Received: from localhost ([127.0.0.1]:44626 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1oXjSd-0006Zz-VT
	for submit <at> debbugs.gnu.org; Mon, 12 Sep 2022 09:26:52 -0400
Received: from mout.gmx.net ([212.227.17.20]:53733)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <michael.albinus@HIDDEN>)
 id 1oXjSb-0006Zg-RO; Mon, 12 Sep 2022 09:26:50 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net;
 s=badeba3b8450; t=1662989196;
 bh=EIxH/dtgLhrSmHgGH0I5H+HDu377UdZcK9RQZDREkJw=;
 h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date;
 b=kprAYCyp78x+QRgMD6Oz8vJBJXCpYs24rQGj0PSoa4EpYYG41iZVl+6O/LQDP3bL/
 QBzsqaOx1XtRxRwQMYDM37PFzlSTlVcuB9KZYPkMKnqHJGdQhyZMwi64jjQ7bsg5lu
 DAJZk9WW8ckq3mz4mv7/Sp487Zlf5GlCwhtBncas=
X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c
Received: from gandalf.gmx.de ([79.140.119.44]) by mail.gmx.net (mrgmx104
 [212.227.17.168]) with ESMTPSA (Nemesis) id 1McH5Q-1p3mQ338hQ-00cfcu; Mon, 12
 Sep 2022 15:26:35 +0200
From: Michael Albinus <michael.albinus@HIDDEN>
To: Lars Ingebrigtsen <larsi@HIDDEN>
Subject: Re: bug#27397: [PATCH] New commands for bulk tracing of elisp
 functions
In-Reply-To: <87leqqdtb4.fsf_-_@HIDDEN> (Lars Ingebrigtsen's message of
 "Sun, 11 Sep 2022 13:49:51 +0200")
References: <1348823a-7623-8146-8cc0-8c0eff13e458@HIDDEN>
 <94d27dbb-46d3-1d6f-4849-251a0929d413@HIDDEN>
 <70000e90-328c-c084-3e3c-bbde96b16110@HIDDEN>
 <adbc18a1-20ef-5261-6d8e-149b13d61674@HIDDEN>
 <6b195c26-066c-870f-3432-0b24c6f619ec@HIDDEN>
 <d8ba5a45-ae3b-7f05-1749-ca5032d4bee9@HIDDEN>
 <m3sgruykj3.fsf@HIDDEN>
 <83fa3d61-9173-c3f6-32b6-87c7c09502b7@HIDDEN>
 <15f4e949736351f2d98fdee0b57e4d24@HIDDEN>
 <87leqqdtb4.fsf_-_@HIDDEN>
Date: Mon, 12 Sep 2022 15:26:32 +0200
Message-ID: <87h71cu3jr.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Provags-ID: V03:K1:5rxCsKDt6kE1DbMHMWIqr4JVeqaZEG1uqoqTiu5cr4yBRA2u7sI
 7oJuT6nru/iQV+WTFngiRz+jNRSDAKrXP+rFcLax3B7mo37Dba/+mdBpvNDE2AzDER44pUR
 BYTfbEByi7ZeAR4WkstgcV9NXHybEXUjG1h7X/a+R8godHdu9TOlUGZIoN+pATXOmXR4HNj
 +RFTOnJDqtmlZ8+jekj7w==
X-Spam-Flag: NO
X-UI-Out-Filterresults: notjunk:1;V03:K0:0P6nhGiE8YY=:cQmKERM0/ClVuQmauOMmFR
 98G736NbYnVp5om0eWn18Z1fH5h+eWjIzALUpO/LWVSYxyUBAm04jU067yQ1tGR+VBUYr/JaT
 p01HDDi8eGf0EPOoje+uieOYGuPgJfYR/8gBK+tFC7axwoxkbTkXOFwv8poYixydxsWXZo9zs
 nPfdt3CN4pXBYtfuM9Us29G3vH9M2k8rIJozFTzyRKjIkAltegjkuTCsAiCAw6Sft4WohiBWU
 Yp+DmTjn9m5D3CwSeMaHvUdojdUC7n6pfCsXn39tJwrS0KOutKXVimxLb1Te7DEjh1xYjIugO
 +fLREcFfY9Okd+1cP4v3GB6z521vLwdnyBYL7fTVsbkd/hNOqL/E3BtoG0YBUaZn9bT6cMMjJ
 fsGLT1ABmEwhvnNr+xsVQfbRK1NHoaxw5uXnllD3KtueC4lWYSmCRt5FJt29oSpvWCJsgV8qM
 d0jz+h0P/scgCp5ufEcjBHYRL/oXRMz70X4wS3rZYkd6yIk7A7qBz7AyqDhTiyPs34TAybcqd
 mcKWGd356iZzuw4gwN4BxTkoT/0FcaQqrmpm4U6kUA2V/5Y02hIJzK4c3fNiOu6tdEeNmLmK7
 KNPckcOjyzsW6XBkS+yrGHm+RLIV/iqjJQ7oik8mROZifSYKgTIqZbtMvXSqEE6jvR549wltM
 gH4/+DCkHpW9ioQpGvJNRlCkm+7Sy/WUVi8fueqYegFjFhcSH9ZSxByQsXPqJhp6LBhlvF0PS
 yY3RxqAA6DPyJKmtVsOlVnj+dsKpsykMZvXteQn3lnpFB47p2bMIgEfOZlTfWq3Qix0fgE3Sn
 hhBoR9n+AdJUY4HeYaOLfS5fF1pQz3PN+knBYCQ2NFsh2xO2r1BkWLE6ARIUNCQzyfQJLALAt
 uavwr82Yf4QVneWl6QdMhiYaSwFJAPU+0UgdmmfNfH+5acTaILmPgfqF5zc+p8/B2s/xtL/vk
 qfx54QfdVD2q2otD3Ph7drP4gGgbLkr1pXjMprqmHb9IyO/+bt+uQ3vg5LLCJi+8WxJMk7Elc
 STFTyHwibQAGcFFbLN1ZgapD/98zQHorfUtkyH27FhjmWCocBfWkLL9ip4K2go2Bix9ovX/HR
 3QRLdWL6BIOzBE3a9HXkdmPwI7DtJBcWseJWk272k39kcOLvQEU+fB9ns3LDsAuYEoCt9Gf5+
 QmwCKp/+p95KNOWCTTncEEK2xC
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 1343
Cc: Phil Sainty <psainty@HIDDEN>, 1343 <at> debbugs.gnu.org,
 27397 <at> debbugs.gnu.org, Dmitry Gutov <dgutov@HIDDEN>
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.7 (-)

Lars Ingebrigtsen <larsi@HIDDEN> writes:

Hi,

> I have not tried the patch myself -- does anybody have any comments
> here?  It seems like useful functionality to me.

Yes, and I also agree with the comments of Eli.

One additional point:

> +@deffn Command trace-package prefix &optional buffer context after-load
> +This function calls @code{trace-function-background} for all functions
> +with names starting with @var{prefix}.

Tramp does something like this already. However, not all Tramp functions
shall be traced. For example, there is `tramp-read-passwd', which
returns the password retireved from auth-sources, or
interactively. Obviously, it shouldn't be traced when asking users for a
Tramp trace.

There are also chatty functions, which don't need to be traces, like
`tramp-message' and friends. They add serious noise to the trace, w/o
additional information.

For that reason, Tramp marks such functions with a function property,
which is to be taken into account when activating traces for all Tramp
functions. Like this:

--8<---------------cut here---------------start------------->8---
(put #'tramp-read-passwd 'tramp-suppress-trace t)
--8<---------------cut here---------------end--------------->8---

I would appreciate if `trace-package' and `trace-library' would know a
similar mechanism. It could be a function declaration in the function
definition, like

--8<---------------cut here---------------start------------->8---
(declare (debug t) inhibit-trace ...)
--8<---------------cut here---------------end--------------->8---

Or, dynamically, the global variable inhibit-trace could keep a value of
such functions suppressed for trace.

Of course there is `untrace-function', but it is inconvenient to teach
users calling all of them. And if they forget it, their password will be
exposed (for example).

> +;;;###autoload
> +(defun trace-library (library &optional buffer context after-load)
> +  "Trace functions defined by LIBRARY.
> +For example, to trace tramp.el functions, you could use:
> +
> +\\[trace-library] RET tramp RET

I wouldn't use `tramp' as example for `trace-library'. Tramp consists of
a dozen of libraries, and several of them must be activated in order to
get useful traces. So as example, another library might be better
suited.

Best regards, Michael.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#1343; Package emacs. Full text available.

Message received at 1343 <at> debbugs.gnu.org:


Received: (at 1343) by debbugs.gnu.org; 11 Sep 2022 12:33:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 11 08:33:59 2022
Received: from localhost ([127.0.0.1]:41072 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1oXM9v-0003Vy-8D
	for submit <at> debbugs.gnu.org; Sun, 11 Sep 2022 08:33:59 -0400
Received: from eggs.gnu.org ([209.51.188.92]:52218)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>)
 id 1oXM9s-0003Ve-KW; Sun, 11 Sep 2022 08:33:57 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:40390)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1oXM9m-0005Tx-Vh; Sun, 11 Sep 2022 08:33:50 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=VjlQqvTPtgTQe48SHqWyP2qqPSCNcxaJTra9xENaa4E=; b=rjTFfW/msTc+
 soOuP0kWmDgpziqZQwmNOysvINoHKkbuYDaai60JyfU7o/GPh17m4911FjfFpuqGgWd51TA0Togue
 fxHxZ7dzk1IGA9fycHafIqbCPeaUCearBX8VUWwx9lO/0WoS5SMPQ3Pd1nhpPSPFHAFZjzAlBuJ1a
 2uG1RZ6NB7lwiT0WruJeDHmF7PEuSdwFELezuD15aNQ/SuVgo8PYemqraq/Pj/XI90qOrsMTGdV1k
 PUhCTJblLkcvCJiJZ2Xl1s4OpJgP0MiIsNUptgYCKFve+nJwMniFqXqv8XmmsL+bMZAZRgpw/vSaW
 fIrqtcpMz7WQ93m98drlyQ==;
Received: from [87.69.77.57] (port=2947 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1oXM9m-0003k4-6W; Sun, 11 Sep 2022 08:33:50 -0400
Date: Sun, 11 Sep 2022 15:33:32 +0300
Message-Id: <83y1uq850j.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Lars Ingebrigtsen <larsi@HIDDEN>
In-Reply-To: <87leqqdtb4.fsf_-_@HIDDEN> (message from Lars Ingebrigtsen on
 Sun, 11 Sep 2022 13:49:51 +0200)
Subject: Re: bug#27397: [PATCH] New commands for bulk tracing of elisp
 functions
References: <1348823a-7623-8146-8cc0-8c0eff13e458@HIDDEN>
 <94d27dbb-46d3-1d6f-4849-251a0929d413@HIDDEN>
 <70000e90-328c-c084-3e3c-bbde96b16110@HIDDEN>
 <adbc18a1-20ef-5261-6d8e-149b13d61674@HIDDEN>
 <6b195c26-066c-870f-3432-0b24c6f619ec@HIDDEN>
 <d8ba5a45-ae3b-7f05-1749-ca5032d4bee9@HIDDEN>
 <m3sgruykj3.fsf@HIDDEN>
 <83fa3d61-9173-c3f6-32b6-87c7c09502b7@HIDDEN>
 <15f4e949736351f2d98fdee0b57e4d24@HIDDEN>
 <87leqqdtb4.fsf_-_@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 1343
Cc: psainty@HIDDEN, 1343 <at> debbugs.gnu.org, 27397 <at> debbugs.gnu.org,
 michael.albinus@HIDDEN, dgutov@HIDDEN
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: -3.3 (---)

> Cc: 1343 <at> debbugs.gnu.org, 27397 <at> debbugs.gnu.org,
>  Michael Albinus <michael.albinus@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>
> From: Lars Ingebrigtsen <larsi@HIDDEN>
> Date: Sun, 11 Sep 2022 13:49:51 +0200
> 
> Phil Sainty <psainty@HIDDEN> writes:
> 
> > After a brief hiatus, I've resumed (maybe completed) my work on this.
> >
> > The branch scratch/bulk-tracing contains the updated code for Emacs 29
> > (rebased over master).
> 
> For reference, I've included the diff between master and the branch
> below.
> 
> I have not tried the patch myself -- does anybody have any comments
> here?  It seems like useful functionality to me.

Yes, it is useful.

The documentation uses UK English spelling ("behaviour").  (Perhaps
today this is justified, but since a few days will have passed until
this is landed, I think we should use US English conventions
nonetheless.)

I see lack of important detail where stuff like 'context' and
'trace-value' is described: at the very least the manual should say
whether the text will be inserted verbatim, or with something like
newlines and/or other decorations added.

IMO, the description of trace-value should be before all the untrace-*
functions.

Why isn't trace-is-traceable-p documented in the manual?  It sounds
relevant to the discussion of the restrictions.

I think the description should be updated fore native-compilation (it
only mentions byte-compilation).

The hunk from modes.texi seems unrelated.

The NEWS entry should have a single-line heading that is a full
sentence ending with a period.

Please verify that doc strings of functions mention all the
arguments.  (E.g., trace-currently-traced doesn't.)

Thanks.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#1343; Package emacs. Full text available.
Added tag(s) moreinfo. Request was from Lars Ingebrigtsen <larsi@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 1343 <at> debbugs.gnu.org:


Received: (at 1343) by debbugs.gnu.org; 11 Sep 2022 11:50:08 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Sep 11 07:50:08 2022
Received: from localhost ([127.0.0.1]:41023 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1oXLTS-0008UI-N8
	for submit <at> debbugs.gnu.org; Sun, 11 Sep 2022 07:50:08 -0400
Received: from quimby.gnus.org ([95.216.78.240]:39772)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>)
 id 1oXLTO-0008TT-UX; Sun, 11 Sep 2022 07:50:05 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org;
 s=20200322; h=Content-Type:MIME-Version:Message-ID:Date:References:
 In-Reply-To:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:
 Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender:
 Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:
 List-Subscribe:List-Post:List-Owner:List-Archive;
 bh=r5b5ztAs9odQ2P8PtuPpJ5o+nqEg77NPRtwk+UQfOWM=; b=Eou0Y+atzUVCFcUL41D/+tMkRD
 9h6Ss23yYzhRHGKjt2kIAfxZhP2YQnPUhYbZlyOlAhMO38cZScYSfFXl6bYkPvT2i/qdDhm4pxirT
 Tu1tjVqqudYS5qOhSthzmztATltGsYYoSM0XbformcQcs71TFB4umezzQgL9qe00ii4k=;
Received: from [84.212.220.105] (helo=joga)
 by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.92) (envelope-from <larsi@HIDDEN>)
 id 1oXLTD-00041Y-Kn; Sun, 11 Sep 2022 13:49:55 +0200
From: Lars Ingebrigtsen <larsi@HIDDEN>
To: Phil Sainty <psainty@HIDDEN>
Subject: Re: bug#27397: [PATCH] New commands for bulk tracing of elisp
 functions
In-Reply-To: <15f4e949736351f2d98fdee0b57e4d24@HIDDEN> (Phil
 Sainty's message of "Fri, 15 Jul 2022 16:08:46 +1200")
References: <1348823a-7623-8146-8cc0-8c0eff13e458@HIDDEN>
 <94d27dbb-46d3-1d6f-4849-251a0929d413@HIDDEN>
 <70000e90-328c-c084-3e3c-bbde96b16110@HIDDEN>
 <adbc18a1-20ef-5261-6d8e-149b13d61674@HIDDEN>
 <6b195c26-066c-870f-3432-0b24c6f619ec@HIDDEN>
 <d8ba5a45-ae3b-7f05-1749-ca5032d4bee9@HIDDEN>
 <m3sgruykj3.fsf@HIDDEN>
 <83fa3d61-9173-c3f6-32b6-87c7c09502b7@HIDDEN>
 <15f4e949736351f2d98fdee0b57e4d24@HIDDEN>
X-Now-Playing: Earwig's _Under My Skin I Am Laughing_: "Every Day Shines"
Date: Sun, 11 Sep 2022 13:49:51 +0200
Message-ID: <87leqqdtb4.fsf_-_@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 @@CONTACT_ADDRESS@@ for details.
 Content preview:  Phil Sainty <psainty@HIDDEN> writes: > After a brief
 hiatus,
 I've resumed (maybe completed) my work on this. > > The branch
 scratch/bulk-tracing
 contains the updated code for Emacs 29 > (rebased over master). 
 Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 1343
Cc: 1343 <at> debbugs.gnu.org, 27397 <at> debbugs.gnu.org,
 Michael Albinus <michael.albinus@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>
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: -3.3 (---)

Phil Sainty <psainty@HIDDEN> writes:

> After a brief hiatus, I've resumed (maybe completed) my work on this.
>
> The branch scratch/bulk-tracing contains the updated code for Emacs 29
> (rebased over master).

For reference, I've included the diff between master and the branch
below.

I have not tried the patch myself -- does anybody have any comments
here?  It seems like useful functionality to me.

diff --git a/doc/lispref/debugging.texi b/doc/lispref/debugging.texi
index 058c931954..6bdcf33a95 100644
--- a/doc/lispref/debugging.texi
+++ b/doc/lispref/debugging.texi
@@ -20,14 +20,10 @@ Debugging
 You can use Edebug, a source-level debugger for Emacs Lisp.
 
 @item
-@cindex tracing Lisp programs
-You can trace the execution of functions involved in the problem using
-the tracing facilities provided by the @file{trace.el} package.  This
-package provides the functions @code{trace-function-foreground} and
-@code{trace-function-background} for tracing function calls, and
-@code{trace-values} for adding values of select variables to the
-trace.  For the details, see the documentation of these facilities in
-@file{trace.el}.
+You can trace the execution of functions involved in the problem
+(logging function calls, their arguments and return values, and other
+context values) using the tracing facilities provided by the
+@file{trace.el} package.
 
 @item
 If a syntactic problem is preventing Lisp from even reading the
@@ -59,6 +55,7 @@ Debugging
 * Syntax Errors::       How to find syntax errors.
 * Test Coverage::       Ensuring you have tested all branches in your code.
 * Profiling::           Measuring the resources that your code uses.
+* Tracing::             Log function calls, arguments, and return values.
 @end menu
 
 @node Debugger
@@ -1072,3 +1069,327 @@ Profiling
 debugging Emacs.  It actually stops the Lisp-level @kbd{M-x
 profiler-@dots{}} commands described above from working.
 @end ifnottex
+
+
+@node Tracing
+@section Tracing
+@cindex tracing
+@cindex trace
+@cindex trace functions
+@cindex tracing Lisp programs
+
+You can trace the execution of functions using the tracing facilities
+provided by the @file{trace.el} library.  Many functions can be traced
+at the same time.  The commands @code{trace-function-foreground} and
+@code{trace-function-background} add a new trace to a single specified
+function.  The commands @code{trace-package}, @code{trace-regexp}, and
+@code{trace-library} enable traces to be added to functions en masse.
+Traces can also be added to autoloaded functions -- the associated
+function will be traced if and when it is defined.
+
+@vindex trace-buffer
+Calls to traced functions, including the values of their arguments and
+their return values, are logged to the @file{*trace-output*} buffer
+(or another buffer as specified -- either by the @code{trace-buffer}
+user option, or as the @var{buffer} argument to a tracing command).
+
+@anchor{trace context}
+@cindex @code{context} in trace functions
+Optional @var{context} expressions are also evaluated, both when the
+associated function is called and again when it returns, with the
+value logged within square brackets alongside the call-time arguments
+or return value respectively.  This could be used to track the current
+buffer or position of point, for instance.  If @var{context} is a
+function, it will be called (with no arguments) to obtain the value to
+be inserted into the trace output buffer.
+
+Finally, you may add explicit calls to @code{trace-values} to your
+code, to log arbitrary values to the trace buffer at any time.
+
+@anchor{background and foreground tracing}
+@cindex foreground tracing
+@cindex background tracing
+When using ``foreground'' tracing, the output buffer will be displayed
+whenever a traced function is called.  When using ``background''
+tracing the output buffer is not forcibly displayed.  Because
+foreground tracing affects the window configuration, it should not be
+used to trace functions that switch buffers, or have other
+display-oriented behaviour.  To avoid such problems, all bulk tracing
+commands use background tracing -- @code{trace-function-foreground} is
+the only command providing foreground tracing.
+
+@menu
+* Commands for Tracing::  Commands and variables.
+* Restrictions on Tracing:: Limitations on what can be traced.
+* Examples of Tracing::   Usage examples.
+@end menu
+
+@node Commands for Tracing
+@subsection Commands and variables for tracing functions
+
+@defopt trace-buffer
+This variable defines the buffer where trace output will be logged to
+by default.  Trace commands can be passed a @var{buffer} argument to
+specify a non-default output buffer.
+@end defopt
+
+@defvar inhibit-trace
+If this variable is non-@code{nil}, all tracing is temporarily
+inhibited (including any calls to @code{trace-values}).
+@end defvar
+
+@deffn Command trace-function-background function &optional buffer context
+This function adds a background trace (@pxref{background and
+foreground tracing}) to @var{function}.  When called interactively, it
+prompts for @var{function} in the minibuffer.  With a prefix argument,
+it also prompts for the trace output @var{buffer} (defaulting to the
+value of @code{trace-buffer}), and a Lisp expression @var{context}
+(@pxref{trace context}).
+
+If @var{function} is an autoload, the associated function will be
+traced if and when it is defined.
+
+Calling @code{trace-function-background} for an already-traced
+@var{function} will update the optional argument behaviours to respect
+the new values (and change to background tracing, if foreground
+tracing was previously used).
+@end deffn
+
+@deffn Command trace-function-foreground function &optional buffer context
+This function adds a foreground trace (@pxref{background and
+foreground tracing}) to @var{function}.  When called interactively, it
+prompts for @var{function} in the minibuffer.  With a prefix argument,
+it also prompts for the trace output @var{buffer} (defaulting to the
+value of @code{trace-buffer}), and a Lisp expression @var{context}
+(@pxref{trace context}).
+
+If @var{function} is an autoload, the associated function will be
+traced if and when it is defined.
+
+Calling @code{trace-function-foreground} for an already-traced
+@var{function} will update the optional argument behaviours to respect
+the new values (and change to foreground tracing, if background
+tracing was previously used).
+@end deffn
+
+@deffn Command trace-package prefix &optional buffer context after-load
+This function calls @code{trace-function-background} for all functions
+with names starting with @var{prefix}.
+
+For any autoload declarations matching @var{prefix}, the associated
+function will be traced if and when it is defined.
+
+With a prefix argument, also prompt for the trace output @var{buffer}
+(defaulting to the value of @code{trace-buffer}); a Lisp expression
+@var{context} (@pxref{trace context}); and boolean query
+@var{after-load}.  If @var{after-load} is non-@code{nil} then
+re-process @var{prefix} after loading any file.
+
+Calling @code{trace-package} again for the same @var{prefix} will
+update the optional argument behaviours to respect the new values.
+@end deffn
+
+@deffn Command trace-regexp regexp &optional buffer context after-load
+This function calls @code{trace-function-background} for all functions
+matching in @var{regexp}.
+
+Background tracing is used.  Switch to the trace output buffer to view
+the results.  For any autoload declarations matching @var{regexp}, the
+associated function will be traced if and when it is defined.
+
+With a prefix argument, also prompt for the trace output @var{buffer}
+(defaulting to the value of @code{trace-buffer}); a Lisp expression
+@var{context} (@pxref{trace context}); and boolean query
+@var{after-load}.  If @var{after-load} is non-@code{nil} then
+re-process @var{regexp} after loading any file.
+
+Calling @code{trace-regexp} again for the same @var{regexp} will
+update the optional argument behaviours to respect the new values.
+
+@strong{Warning:} Do not attempt to trace all functions.  Tracing too
+many functions at one time will render Emacs unusable.
+@end deffn
+
+@deffn Command trace-library library &optional buffer context after-load
+This function calls @code{trace-function-background} for all functions
+currently defined in @var{library} according to @var{load-history}.
+
+For any autoload declarations with a file name matching @var{library},
+the associated function will be traced if and when it is defined.
+(Autoload file names will not match if @var{library} specifies a
+longer, more specific path.)
+
+With a prefix argument, also prompt for the trace output @var{buffer}
+(defaulting to the value of @code{trace-buffer}); a Lisp expression
+@var{context} (@pxref{trace context}); and boolean query
+@var{after-load}.  If @var{after-load} is non-@code{nil} then
+re-process @var{library} after loading it, (ensuring that all of its
+functions will be traced).
+
+Calling @code{trace-library} again for the same @var{library} will
+update the optional argument behaviours to respect the new values.
+@end deffn
+
+@deffn Command trace-currently-traced &optional display-message
+This function returns the list of currently traced function symbols.
+When called interactively, or if @var{display-message} is
+non-@code{nil}, it displays the list as a message.
+@end deffn
+
+@deffn Command untrace-function function
+This function removes the trace on @var{function}.  This has no effect
+if @var{function} was not being traced.  When called interactively, it
+prompts for @var{function} in the minibuffer.
+@end deffn
+
+@deffn Command untrace-package prefix
+This function calls @code{untrace-function} for all functions with
+names starting with @var{prefix}.  When called interactively, it
+prompts for @var{prefix} in the minibuffer.
+@end deffn
+
+@deffn Command untrace-regexp regexp
+This function calls @code{untrace-function} for all functions matching
+@var{regexp}.  When called interactively, it prompts for @var{regexp}
+in the minibuffer.
+@end deffn
+
+@deffn Command untrace-library library
+This function calls @code{untrace-function} for all functions defined
+in @var{library}.  When called interactively, it prompts for
+@var{library} in the minibuffer.
+@end deffn
+
+@deffn Command untrace-all
+This function calls @code{untrace-function} for all functions.
+@end deffn
+
+@deffn Function trace-values &rest values
+This function inserts a message showing @var{values} into the trace
+buffer.  You can add explicit calls to @code{trace-values} into your
+functions in order to provide additional tracing information.
+@end deffn
+
+
+@node Restrictions on Tracing
+@subsection Limitations on what can be traced
+
+@itemize @bullet
+@item
+Only functions/macros/subrs that are called via their function cell
+will generate trace output; hence, you won't get trace output for:
+
+@itemize @bullet
+@item
+Macros that were expanded during compilation.
+
+@item
+Subrs called directly from other subrs/C-code.
+
+@item
+Byte-compiled calls to subrs that have special byte-codes associated
+with them:
+
+@example
+(sort (cl-loop for sym being the symbols
+               if (and (subrp (symbol-function sym))
+                       (plist-get (symbol-plist sym)
+                                  'byte-opcode))
+               collect sym)
+      (lambda (s1 s2)
+        (string< (symbol-name s1) (symbol-name s2))))
+@end example
+@end itemize
+
+@item
+Tracing too many functions at one time will render Emacs unusable.  Do
+not attempt to trace all functions, and take care with the arguments
+passed to the bulk tracing commands @code{trace-package} and
+@code{trace-regexp}.
+
+@item
+Foreground tracing should not be used to trace functions that switch
+buffers, or have other display-oriented behaviour.
+
+@item
+Each function can only be subject to a single trace.  When a function
+which is already being traced is targeted by any tracing command, the
+new trace criteria (including optional argument values) will replace
+the previous trace criteria for that function.
+
+Note that this also means there is no need to un-trace a function in
+order to re-trace it with different arguments.
+
+@item
+All the restrictions that apply to @file{nadvice.el} also apply to
+tracing (as tracing is implemented using advice).  @xref{Advising
+Functions}.
+@end itemize
+
+@node Examples of Tracing
+@subsection Usage examples for function tracing
+
+The following is example trace output, including a context list
+expression, for a function which also makes a call to
+@code{trace-values}.  The left hand column indicates the evaluation
+depth of the function call.
+
+@example
+@group
+1 -> (funcname arg1 arg2) [(context1 context2)]
+1 -> (trace-values value1 value2)
+1 <- funcname: return [(context1 context2)]
+@end group
+@end example
+
+The trace output display of recursion/nesting levels can be
+demonstrated by tracing a recursive function, such as a simplistic
+factorial implementation:
+
+@example
+@group
+(defun fact (n)
+  "Calculate factorial of N."
+  (if (eql n 0) 1
+    (* n (fact (1- n)))))
+     @result{} fact
+
+(trace-function 'fact)
+     @result{} fact
+
+Now, evaluating this...
+
+(fact 4)
+     @result{} 24
+
+...will generate the following in *trace-buffer*:
+
+1 -> fact: n=4
+| 2 -> fact: n=3
+| | 3 -> fact: n=2
+| | | 4 -> fact: n=1
+| | | | 5 -> fact: n=0
+| | | | 5 <- fact: 1
+| | | 4 <- fact: 1
+| | 3 <- fact: 2
+| 2 <- fact: 6
+1 <- fact: 24
+@end group
+
+Try the following for some more interesting trace output:
+
+@group
+(defun ack (x y z)
+  (if (= x 0)
+      (+ y z)
+    (if (and (<= x 2) (= z 0))
+        (1- x)
+      (if (and (> x 2) (= z 0))
+          y
+        (ack (1- x) y (ack x y (1- z)))))))
+
+(trace-function 'ack)
+
+(ack 3 3 1)
+@end group
+@end example
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index a3d1d80408..64f31cdf3d 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -669,6 +669,7 @@ Top
 * Syntax Errors::           How to find syntax errors.
 * Test Coverage::           Ensuring you have tested all branches in your code.
 * Profiling::               Measuring the resources that your code uses.
+* Tracing::                 Log function calls, arguments, and return values.
 
 The Lisp Debugger
 
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index e94093318f..ad2b175afb 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -2507,15 +2507,13 @@ %-Constructs
 @item %%
 The character @samp{%}---this is how to include a literal @samp{%} in a
 string in which @code{%}-constructs are allowed.
-@end table
-
-The following @code{%}-construct is still supported, but it is
-obsolete, since you can get the same result using the variable
-@code{mode-name}.
 
-@table @code
 @item %m
-The value of @code{mode-name}.
+Obsolete; use the @code{mode-name} variable instead.  The @code{%m}
+construct is still supported, but it is inadequate, as it produces an
+empty string if the value of the @code{mode-name} variable is a
+non-string mode-line construct (for example, in
+@code{emacs-lisp-mode}).
 @end table
 
 @node Properties in Mode
diff --git a/etc/NEWS b/etc/NEWS
index 57845df979..9728edc303 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1918,6 +1918,16 @@ The newly created buffer will be displayed via 'display-buffer', which
 can be customized through the usual mechanism of 'display-buffer-alist'
 and friends.
 
+** Trace
+
++++
+*** New commands 'trace-package', 'trace-regexp', and 'trace-library'
+(and their counterparts 'untrace-package', 'untrace-regexp', and
+'untrace-library') allow for the bulk tracing of calls to functions
+with names matching a specified prefix or regexp, or functions defined
+by a specified file.  New command 'trace-currently-traced' lists the
+traced function symbols.
+
 ** Tramp
 
 ---
diff --git a/lisp/emacs-lisp/trace.el b/lisp/emacs-lisp/trace.el
index c2f6c16226..a4fcfd50b0 100644
--- a/lisp/emacs-lisp/trace.el
+++ b/lisp/emacs-lisp/trace.el
@@ -40,8 +40,6 @@
 
 ;; Restrictions:
 ;; =============
-;; - Traced subrs when called interactively will always show nil as the
-;;   value of their arguments.
 ;; - Only functions/macros/subrs that are called via their function cell will
 ;;   generate trace output, hence, you won't get trace output for:
 ;;   + Subrs called directly from other subrs/C-code
@@ -52,14 +50,28 @@
 
 ;; Usage:
 ;; ======
-;; - To trace a function say `M-x trace-function', which will ask you for the
+;; - To trace a function use `M-x trace-function', which will ask you for the
 ;;   name of the function/subr/macro to trace.
 ;; - If you want to trace a function that switches buffers or does other
 ;;   display oriented stuff use `M-x trace-function-background', which will
 ;;   generate the trace output silently in the background without popping
 ;;   up windows and doing other irritating stuff.
-;; - To untrace a function say `M-x untrace-function'.
-;; - To untrace all currently traced functions say `M-x untrace-all'.
+;; - `M-x trace-package' will ask you for a function name prefix, and trace
+;;   (in the background) all matching functions.
+;; - `M-x trace-regexp' will ask you for a function name pattern (regexp),
+;;   and trace (in the background) all matching functions.
+;; - `M-x trace-library' will ask you for a library name, and trace (in the
+;;   background) all functions defined by that file.
+;; - Interactively in all cases, a prefix argument can be used to prompt
+;;   for the output buffer and context arguments and, for bulk tracing
+;;   commands, whether or not the traces should be automatically updated
+;;   after loading lisp files.
+;; - To untrace a function use `M-x untrace-function'.
+;; - To untrace multiple functions by prefix use `M-x untrace-package'.
+;; - To untrace multiple functions by regexp use `M-x untrace-regexp'.
+;; - To untrace multiple functions by file use `M-x untrace-library'.
+;; - To untrace all currently traced functions use `M-x untrace-all'.
+;; - To list all currently traced functions use `M-x trace-currently-traced'.
 
 ;; Examples:
 ;; =========
@@ -120,6 +132,23 @@
 
 ;;; Change Log:
 
+;; 2017-06-17  Phil Sainty
+;;	* New commands `trace-package', `untrace-package', `trace-regexp',
+;;	  `untrace-regexp', `trace-library', `untrace-library'.
+;;      * Documentation added to the elisp reference manual.
+;;
+;; 2012-2014  Stefan Monnier, Glenn Morris
+;;	* Adapted for nadvice.el
+;;	* New `context' argument and display in trace buffer
+;;	* `trace-function' renamed to (and now an alias of)
+;;	  `trace-function-foreground'
+;;
+;; 2005-02-27  Stefan Monnier
+;;	* New `inhibit-trace' variable
+;;
+;; 1998-04-05  Stephen Eglen
+;;	* New customize group `trace'
+;;
 ;; Revision 2.0 1993/05/18 00:41:16 hans
 ;;	* Adapted for advice.el 2.0; it now also works
 ;;	  for GNU Emacs-19 and Lemacs
@@ -134,6 +163,8 @@
 
 ;;; Code:
 
+(eval-when-compile (require 'cl-macs))
+
 (defgroup trace nil
   "Tracing facility for Emacs Lisp functions."
   :prefix "trace-"
@@ -181,7 +212,7 @@ trace-entry-message
             ;; FIXME: Make it so we can click the function name to jump to its
             ;; definition and/or untrace it.
             (cons function args)
-            context)))
+            (if context (format " [%s]" context) ""))))
 
 (defun trace-exit-message (function level value context)
   "Generate a string that describes that FUNCTION has exited.
@@ -197,7 +228,7 @@ trace-exit-message
             function
             ;; Do this so we'll see strings:
             value
-            context)))
+            (if context (format " [%s]" context) ""))))
 
 (defvar trace--timer nil)
 
@@ -218,8 +249,14 @@ trace-make-advice
 FUNCTION is the name of the traced function.
 BUFFER is the buffer where the trace should be printed.
 BACKGROUND if nil means to display BUFFER.
-CONTEXT if non-nil should be a function that returns extra info that should
-be printed along with the arguments in the trace."
+CONTEXT, if non-nil, should be either a function or an expression
+that returns extra info, which will be printed after the
+arguments or return value in the trace."
+  (setq context (if context
+                    (if (functionp context)
+                        context
+                      (trace-make-context context))
+                  (lambda () "")))
   (lambda (body &rest args)
     (let ((trace-level (1+ trace-level))
           (trace-buffer (get-buffer-create buffer))
@@ -227,6 +264,7 @@ trace-make-advice
           (ctx (funcall context)))
       (unless inhibit-trace
         (with-current-buffer trace-buffer
+          (setq-local page-delimiter (format "^%s" (regexp-quote trace-separator)))
           (setq-local window-point-insertion-type t)
           (unless background (trace--display-buffer trace-buffer))
           (goto-char (point-max))
@@ -255,41 +293,70 @@ trace-function-internal
   "Add trace advice for FUNCTION."
   (advice-add
    function :around
-   (trace-make-advice function (or buffer trace-buffer) background
-                      (or context (lambda () "")))
+   (trace-make-advice function (or buffer trace-buffer) background context)
    `((name . ,trace-advice-name) (depth . -100))))
 
-(defun trace-is-traced (function)
+(defun trace-is-traceable-p (sym)
+  "Whether the given symbol is a traceable function.
+Autoloaded functions are traceable."
+  (or (functionp sym) (macrop sym)))
+
+(defun trace-is-traced-p (function)
+  "Whether FUNCTION is currently traced."
   (advice-member-p trace-advice-name function))
 
-(defun trace--read-args (prompt)
-  "Read a function name, prompting with string PROMPT.
-If `current-prefix-arg' is non-nil, also read a buffer and a \"context\"
-\(Lisp expression).  Return (FUNCTION BUFFER FUNCTION-CONTEXT)."
-  (cons
-   (let ((default (function-called-at-point)))
-     (intern (completing-read (format-prompt prompt default)
-                              obarray 'fboundp t nil nil
-                              (if default (symbol-name default)))))
-   (when current-prefix-arg
-     (list
-      (read-buffer "Output to buffer" trace-buffer)
-      (let ((exp
-             (read-from-minibuffer "Context expression: "
-                                   nil read-expression-map t
-                                   'read-expression-history)))
-        (lambda ()
-          (let ((print-circle t)
-                (print-escape-newlines t))
-            (concat " [" (prin1-to-string (eval exp t)) "]"))))))))
+(define-obsolete-function-alias 'trace-is-traced 'trace-is-traced-p "29.1")
+
+(defun trace-currently-traced (&optional display-message)
+  "Return the list of currently traced function symbols.
+Interactively, display the list as a message."
+  (interactive "p")
+  (let ((tracelist (cl-loop for sym being the symbols
+                            if (trace-is-traced-p sym)
+                            collect sym)))
+    (when display-message
+      (message "%S" tracelist))
+    tracelist))
+
+(defun trace--read-function (prompt)
+  "Read a function name, prompting with string PROMPT."
+  (let ((default (function-called-at-point)))
+    (intern (completing-read (format-prompt prompt default)
+                             obarray 'trace-is-traceable-p t nil nil
+                             (if default (symbol-name default))))))
+
+(defun trace--read-library (&optional prompt)
+  "Read a library name, prompting with string PROMPT."
+  (completing-read
+   (or prompt "Library: ")
+   (apply-partially 'locate-file-completion-table
+                    load-path (get-load-suffixes))))
+
+(defun trace--read-extra-args ()
+  "Read a buffer and a \"context\" (Lisp expression).
+Return (BUFFER CONTEXT)."
+  (list
+   (read-buffer "Output to buffer" trace-buffer)
+   (when-let ((exp (read-from-minibuffer
+                    "Context expression: "
+                    nil read-expression-map t
+                    'read-expression-history "nil")))
+     (trace-make-context exp))))
+
+(defun trace-make-context (exp)
+  "Return a context function for expression EXP."
+  (lambda ()
+    (let ((print-circle t)
+          (print-escape-newlines t))
+      (prin1-to-string (eval exp t)))))
 
 ;;;###autoload
 (defun trace-function-foreground (function &optional buffer context)
   "Trace calls to function FUNCTION.
-With a prefix argument, also prompt for the trace buffer (default
-`trace-buffer'), and a Lisp expression CONTEXT.  When called from
-Lisp, CONTEXT should be a function of no arguments which returns
-a value to insert into BUFFER during the trace.
+With a prefix argument, also prompt for the trace output BUFFER
+\(default `trace-buffer'), and a Lisp expression CONTEXT.
+When called from Lisp, CONTEXT should be a function of no arguments
+which returns a value to insert into BUFFER during the trace.
 
 Tracing a function causes every call to that function to insert
 into BUFFER Lisp-style trace messages that display the function's
@@ -302,8 +369,14 @@ trace-function-foreground
 functions that switch buffers, or do any other display-oriented
 stuff - use `trace-function-background' instead.
 
+Calling `trace-function-foreground' again for the same FUNCTION
+will update the optional argument behaviours to respect the new
+values.
+
 To stop tracing a function, use `untrace-function' or `untrace-all'."
-  (interactive (trace--read-args "Trace function"))
+  (interactive
+   (cons (trace--read-function "Trace function")
+         (and current-prefix-arg (trace--read-extra-args))))
   (trace-function-internal function buffer nil context))
 
 ;;;###autoload
@@ -311,26 +384,290 @@ trace-function-background
   "Trace calls to function FUNCTION, quietly.
 This is like `trace-function-foreground', but without popping up
 the output buffer or changing the window configuration."
-  (interactive (trace--read-args "Trace function in background"))
+  (interactive
+   (cons (trace--read-function "Trace function in background")
+         (and current-prefix-arg (trace--read-extra-args))))
   (trace-function-internal function buffer t context))
 
 ;;;###autoload
 (defalias 'trace-function 'trace-function-foreground)
 
 (defun untrace-function (function)
-  "Untraces FUNCTION and possibly activates all remaining advice.
-Activation is performed with `ad-update', hence remaining advice will get
-activated only if the advice of FUNCTION is currently active.  If FUNCTION
-was not traced this is a noop."
+  "Remove trace from FUNCTION.  If FUNCTION was not traced this is a noop."
   (interactive
    (list (intern (completing-read "Untrace function: "
-                                  obarray #'trace-is-traced t))))
+                                  obarray #'trace-is-traced-p t))))
   (advice-remove function trace-advice-name))
 
+;;;###autoload
+(defun trace-package (prefix &optional buffer context after-load)
+  "Trace all functions with names starting with PREFIX.
+For example, to trace all diff functions, do the following:
+
+\\[trace-package] RET diff- RET
+
+Background tracing is used.  Switch to the trace output buffer to
+view the results.  For any autoload declarations matching PREFIX,
+the associated function will be traced if and when it is defined.
+
+With a prefix argument, also prompt for the optional arguments.
+If AFTER-LOAD is non-nil then re-process PREFIX after loading any
+file.  See `trace-function-foreground' for details of BUFFER and
+CONTEXT, and of foreground vs background tracing.
+
+Calling `trace-package' again for the same PREFIX will update the
+optional argument behaviours to respect the new values.
+
+See also `untrace-package'."
+  ;; Derived in part from `elp-instrument-package'.
+  (interactive
+   (cons (completing-read "Prefix of package to trace: "
+                          obarray #'trace-is-traceable-p)
+         (and current-prefix-arg
+              (nconc (trace--read-extra-args)
+                     (list (y-or-n-p "Update traces after loading files?"))))))
+  (when (zerop (length prefix))
+    (error "Tracing all Emacs functions would render Emacs unusable"))
+  (mapc (lambda (name)
+          (trace-function-background (intern name) buffer context))
+        (all-completions prefix obarray #'trace-is-traceable-p))
+  (message
+   "Tracing to %s.  Use %s to untrace a package, or %s to remove all traces."
+   (or buffer trace-buffer)
+   (substitute-command-keys "\\[untrace-package]")
+   (substitute-command-keys "\\[untrace-all]"))
+  ;; Handle `after-load' argument.
+  (when after-load
+    (trace--after-load 'prefix prefix buffer context)))
+
+(defun untrace-package (prefix)
+  "Remove all traces from functions with names starting with PREFIX.
+
+See also `trace-package'."
+  (interactive
+   (list (completing-read "Prefix of package to untrace: "
+                          obarray #'trace-is-traced-p)))
+  (if (and (zerop (length prefix))
+           (y-or-n-p "Remove all function traces?"))
+      (untrace-all)
+    (mapc (lambda (name)
+            (untrace-function (intern name)))
+          (all-completions prefix obarray #'trace-is-traced-p)))
+  ;; Remove any `after-load' behaviour.
+  (trace--remove-after-load 'prefix prefix))
+
+;;;###autoload
+(defun trace-regexp (regexp &optional buffer context after-load)
+  "Trace all functions with names matching REGEXP.
+For example, to trace indentation-related functions, you could try:
+
+\\[trace-regexp] RET indent\\|offset RET
+
+Warning: Do not attempt to trace all functions.  Tracing too many
+functions at one time will render Emacs unusable.
+
+Background tracing is used.  Switch to the trace output buffer to
+view the results.  For any autoload declarations matching REGEXP,
+the associated function will be traced if and when it is defined.
+
+With a prefix argument, also prompt for the optional arguments.
+If AFTER-LOAD is non-nil then re-process REGEXP after loading any
+file.  See `trace-function-foreground' for details of BUFFER and
+CONTEXT, and of foreground vs background tracing.
+
+Calling `trace-regexp' again for the same REGEXP will update the
+optional argument behaviours to respect the new values.
+
+See also `untrace-regexp'."
+  (interactive
+   (cons (read-regexp "Regexp matching functions to trace: ")
+         (and current-prefix-arg
+              (nconc (trace--read-extra-args)
+                     (list (y-or-n-p "Update traces after loading files?"))))))
+  (when (member regexp '("" "." ".+" ".*"))
+    ;; Not comprehensive, but it catches the most likely attempts.
+    (error "Tracing all Emacs functions would render Emacs unusable"))
+  (mapatoms
+   (lambda (sym)
+     (and (trace-is-traceable-p sym)
+          (string-match-p regexp (symbol-name sym))
+          (trace-function-background sym buffer context))))
+  (message
+   "Tracing to %s.  Use %s to untrace by regexp, or %s to remove all traces."
+   (or buffer trace-buffer)
+   (substitute-command-keys "\\[untrace-regexp]")
+   (substitute-command-keys "\\[untrace-all]"))
+  ;; Handle `after-load' argument.
+  (when after-load
+    (trace--after-load 'regexp regexp buffer context)))
+
+(defun untrace-regexp (regexp)
+  "Remove all traces from functions with names matching REGEXP.
+
+See also `trace-regexp'."
+  (interactive
+   (list (read-regexp "Regexp matching functions to untrace: ")))
+  (if (and (zerop (length regexp))
+           (y-or-n-p "Remove all function traces?"))
+      (untrace-all)
+    (mapatoms
+     (lambda (sym)
+       (and (trace-is-traced-p sym)
+            (string-match-p regexp (symbol-name sym))
+            (untrace-function sym)))))
+  ;; Remove any `after-load' behaviour.
+  (trace--remove-after-load 'regexp regexp))
+
+;;;###autoload
+(defun trace-library (library &optional buffer context after-load)
+  "Trace functions defined by LIBRARY.
+For example, to trace tramp.el functions, you could use:
+
+\\[trace-library] RET tramp RET
+
+Background tracing is used.  Switch to the trace output buffer to
+view the results.  For any autoload declarations with a file name
+matching LIBRARY, the associated function will be traced if and
+when it is defined.  (Autoload file names will not match if LIBRARY
+specifies a longer, more specific path.)
+
+With a prefix argument, also prompt for the optional arguments.
+If AFTER-LOAD is non-nil then re-process LIBRARY after loading it
+\(ensuring that all of its functions will be traced).  See
+`trace-function-foreground' for details of BUFFER and CONTEXT,
+and of foreground vs background tracing.
+
+Calling `trace-library' again for the same LIBRARY will update the
+optional argument behaviours to respect the new values.
+
+See also `untrace-library'."
+  (interactive
+   (cons (trace--read-library)
+         (and current-prefix-arg
+              (nconc (trace--read-extra-args)
+                     (list (y-or-n-p "Update traces after loading this library?"))))))
+  ;; Build list of library functions and autoloads.
+  (let ((defs (nconc (trace--library-defuns library)
+                     (trace--library-autoloads library))))
+    ;; Trace each of those definitions.
+    (mapc (lambda (func)
+            (trace-function-background func buffer context))
+          defs))
+  ;; Handle `after-load' argument.
+  (when after-load
+    (trace--after-load 'library library buffer context)))
+
+(defun trace--library-defuns (library)
+  "Returns a list of loaded function definitions associated with LIBRARY."
+  (delq nil (mapcar (lambda (x)
+                      (and (consp x)
+                           (eq (car x) 'defun)
+                           (cdr x)))
+                    (cdr (load-history-filename-element
+                          (load-history-regexp library))))))
+
+(defun trace--library-autoloads (library)
+  "Returns a list of all current autoloads associated with LIBRARY.
+
+Autoload file names will not match if LIBRARY specifies a longer,
+more specific path than that of the autoload declaration itself."
+  (let* ((functions nil)
+         (filepattern (load-history-regexp library))
+         (predicate (apply-partially 'trace--library-provides-autoload-p
+                                     filepattern)))
+    (mapatoms (lambda (sym)
+                (when (funcall predicate sym)
+                  (push sym functions))))
+    functions))
+
+(defun trace--library-provides-autoload-p (filepattern sym)
+  "Whether symbol SYM is an autoload associated with FILEPATTERN.
+
+FILEPATTERN should be the result of calling `load-history-regexp'."
+  (when (fboundp sym)
+    (let ((f (symbol-function sym)))
+      (and (autoloadp f)
+           (string-match filepattern (cadr f))))))
+
+(defun untrace-library (library)
+  "Remove all traces from functions defined by LIBRARY.
+
+See also `trace-library'."
+  (interactive (list (trace--read-library)))
+  ;; Remove traces from known LIBRARY defuns.
+  ;; (Also process autoloads, in case LIBRARY is unloaded.)
+  (let ((defs (nconc (trace--library-defuns library)
+                     (trace--library-autoloads library))))
+    (mapc (lambda (func)
+            (when (trace-is-traced-p func)
+              (untrace-function func)))
+          defs))
+  ;; Remove any `after-load' behaviour.
+  (trace--remove-after-load 'library library))
+
+(defvar trace--after-load-alist nil
+  "List of trace types to update after loading.
+
+Each list item has the form ((TYPE . VALUE) BUFFER CONTEXT),
+where TYPE is one of the symbols `prefix', `regexp', or `library';
+and VALUE is the respective first argument to `trace-package',
+`trace-regexp', or `trace-library'; with BUFFER and CONTEXT being
+the values of those arguments as they were passed to the same
+function.")
+
+(defun trace--after-load (type value &optional buffer context)
+  "Arrange to update traces after libraries are loaded.
+
+TYPE is one of the symbols `prefix', `regexp', or `library';
+VALUE is the respective first argument to `trace-package',
+`trace-regexp', or `trace-library'; and BUFFER and CONTEXT are
+the values of those arguments as they were passed to the same
+function.
+
+Adds `trace--after-load-function' to `after-load-functions'."
+  ;; Remove any existing spec for this (TYPE VALUE) key.
+  (trace--remove-after-load type value)
+  ;; Add the new spec.
+  (push (list (cons type value) buffer context)
+        trace--after-load-alist)
+  ;; Arrange to call `trace--after-load-function'.
+  (add-hook 'after-load-functions #'trace--after-load-function))
+
+(defun trace--after-load-function (file)
+  "React to FILE being loaded.  Callback for `after-load-functions'.
+
+See also `trace--after-load'."
+  (dolist (spec trace--after-load-alist)
+    (cl-destructuring-bind ((type . value) buffer context)
+        spec
+      (cl-case type
+        (prefix (trace-package value nil buffer context))
+        (regexp (trace-regexp value nil buffer context))
+        (library (when (string-match (load-history-regexp value) file)
+                   (trace-library value nil buffer context)))))))
+
+(defun trace--remove-after-load (type value)
+  "Remove any (TYPE . VALUE) entry from `trace--after-load-alist'.
+
+Remove `trace--after-load-function' from `after-load-functions'
+if it is no longer needed."
+  (setq trace--after-load-alist
+        (cl-delete (cons type value) trace--after-load-alist
+                   :key #'car :test #'equal))
+  (unless trace--after-load-alist
+    (remove-hook 'after-load-functions #'trace--after-load-function)))
+
+(defun trace--remove-after-load-all ()
+  "Reset `trace--after-load-alist'.
+Remove `trace--after-load-function' from `after-load-functions'"
+  (setq trace--after-load-alist nil)
+  (remove-hook 'after-load-functions #'trace--after-load-function))
+
 (defun untrace-all ()
-  "Untraces all currently traced functions."
+  "Remove traces from all currently traced functions."
   (interactive)
-  (mapatoms #'untrace-function))
+  (mapatoms #'untrace-function)
+  (trace--remove-after-load-all))
 
 (provide 'trace)
 




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#1343; Package emacs. Full text available.

Message received at 1343 <at> debbugs.gnu.org:


Received: (at 1343) by debbugs.gnu.org; 15 Jul 2022 11:09:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jul 15 07:09:41 2022
Received: from localhost ([127.0.0.1]:39655 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1oCJCW-0003Nm-Si
	for submit <at> debbugs.gnu.org; Fri, 15 Jul 2022 07:09:41 -0400
Received: from smtp-1.orcon.net.nz ([60.234.4.34]:39523)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <psainty@HIDDEN>)
 id 1oCJCU-0003NY-0C; Fri, 15 Jul 2022 07:09:39 -0400
Received: from [10.253.37.70] (port=36330 helo=webmail.orcon.net.nz)
 by smtp-1.orcon.net.nz with esmtpa (Exim 4.90_1)
 (envelope-from <psainty@HIDDEN>)
 id 1oCJCP-0002Ry-5S; Fri, 15 Jul 2022 23:09:33 +1200
Received: from ip-116-251-140-135.kinect.net.nz ([116.251.140.135])
 via [10.253.37.253] by webmail.orcon.net.nz
 with HTTP (HTTP/1.1 POST); Fri, 15 Jul 2022 23:09:33 +1200
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
Date: Fri, 15 Jul 2022 23:09:33 +1200
From: Phil Sainty <psainty@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#1343: bug#27397: [PATCH] New commands for bulk tracing of
 elisp functions
In-Reply-To: <83pmi6sxlz.fsf@HIDDEN>
References: <1348823a-7623-8146-8cc0-8c0eff13e458@HIDDEN>
 <94d27dbb-46d3-1d6f-4849-251a0929d413@HIDDEN>
 <70000e90-328c-c084-3e3c-bbde96b16110@HIDDEN>
 <adbc18a1-20ef-5261-6d8e-149b13d61674@HIDDEN>
 <6b195c26-066c-870f-3432-0b24c6f619ec@HIDDEN>
 <d8ba5a45-ae3b-7f05-1749-ca5032d4bee9@HIDDEN>
 <m3sgruykj3.fsf@HIDDEN>
 <83fa3d61-9173-c3f6-32b6-87c7c09502b7@HIDDEN>
 <15f4e949736351f2d98fdee0b57e4d24@HIDDEN>
 <83pmi6sxlz.fsf@HIDDEN>
Message-ID: <5463685802691e2f284a7cb239d3d28f@HIDDEN>
X-Sender: psainty@HIDDEN
User-Agent: Orcon Webmail
X-GeoIP: --
X-Spam_score: -2.9
X-Spam_score_int: -28
X-Spam_bar: --
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 1343
Cc: 1343 <at> debbugs.gnu.org, larsi@HIDDEN, 27397 <at> debbugs.gnu.org,
 michael.albinus@HIDDEN, dgutov@HIDDEN
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 (-)

On 2022-07-15 18:23, Eli Zaretskii wrote:
> Thanks, but please add documentation at some point (I mean the
> manual).

I did document these changes in the elisp manual to the extent
that any of the trace functionality is documented (which is
minimally).

The key documentation would probably be for the functionality
which was already present, rather than for the changes I've made
here; so anyone familiar with trace.el might add that.  I'll try
to throw something together from commentary and docstrings in
the near future though (including the new changes), assuming no
one else does so first.


-Phil





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#1343; Package emacs. Full text available.

Message received at 1343 <at> debbugs.gnu.org:


Received: (at 1343) by debbugs.gnu.org; 15 Jul 2022 06:23:39 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jul 15 02:23:38 2022
Received: from localhost ([127.0.0.1]:39263 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1oCEjf-0003dp-Rk
	for submit <at> debbugs.gnu.org; Fri, 15 Jul 2022 02:23:38 -0400
Received: from eggs.gnu.org ([209.51.188.92]:33918)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>)
 id 1oCEjb-0003dW-96; Fri, 15 Jul 2022 02:23:34 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:57634)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1oCEjV-0006y1-IG; Fri, 15 Jul 2022 02:23:25 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=6nizwPwjgysLYnLb4IN/png2wm322sNZ2gDMOkoiRPc=; b=Uw79VcVACvZ8
 hRk1uYYDirddmNcYCz8HSZ14kIBUiK2XaimdjUjs38k3fZPxcR6asMyaNh1AD+pGQ4UM0Kpc36AtH
 4fBmK6M8COt7W/viEjzGa8WgRWkXW8qwrL2HElyR4ZQpwdFf8EpBOQX3tkbXalEDvfivWthzMlDbp
 h5mfin30QZf0Z4+zdYOC+WihzrBhhUb8X3XrHCPUiLwTTX1soDxdz5ACV4rLgWDKKvsBpmGAFwvpT
 9o4mzIl7btGlMq4tvBET9Ypy4BZFmijIR93ix708QXdKaNmdPi6X4xaYdG48CpqyBHrLeo/3d2Nje
 ob1Vbd99d3AgMdsJcIpeuA==;
Received: from [87.69.77.57] (port=3919 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1oCEjU-0000wz-UN; Fri, 15 Jul 2022 02:23:25 -0400
Date: Fri, 15 Jul 2022 09:23:20 +0300
Message-Id: <83pmi6sxlz.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Phil Sainty <psainty@HIDDEN>
In-Reply-To: <15f4e949736351f2d98fdee0b57e4d24@HIDDEN> (message
 from Phil Sainty on Fri, 15 Jul 2022 16:08:46 +1200)
Subject: Re: bug#1343: bug#27397: [PATCH] New commands for bulk tracing of
 elisp functions
References: <1348823a-7623-8146-8cc0-8c0eff13e458@HIDDEN>
 <94d27dbb-46d3-1d6f-4849-251a0929d413@HIDDEN>
 <70000e90-328c-c084-3e3c-bbde96b16110@HIDDEN>
 <adbc18a1-20ef-5261-6d8e-149b13d61674@HIDDEN>
 <6b195c26-066c-870f-3432-0b24c6f619ec@HIDDEN>
 <d8ba5a45-ae3b-7f05-1749-ca5032d4bee9@HIDDEN>
 <m3sgruykj3.fsf@HIDDEN>
 <83fa3d61-9173-c3f6-32b6-87c7c09502b7@HIDDEN>
 <15f4e949736351f2d98fdee0b57e4d24@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 1343
Cc: 1343 <at> debbugs.gnu.org, larsi@HIDDEN, 27397 <at> debbugs.gnu.org,
 michael.albinus@HIDDEN, dgutov@HIDDEN
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: -3.3 (---)

> Cc: Lars Ingebrigtsen <larsi@HIDDEN>,
>  Michael Albinus <michael.albinus@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>
> Date: Fri, 15 Jul 2022 16:08:46 +1200
> From: Phil Sainty <psainty@HIDDEN>
> 
> After a brief hiatus, I've resumed (maybe completed) my work on this.
> 
> The branch scratch/bulk-tracing contains the updated code for Emacs 29
> (rebased over master).
> 
> NEWS is:
> 
> *** New commands 'trace-package', 'trace-regexp', and 'trace-library'
> (and their counterparts 'untrace-package', 'untrace-regexp', and
> 'untrace-library') allow for the bulk tracing of calls to functions
> with names matching a specified prefix or regexp, or functions defined
> by a specified file.  New command 'trace-currently-traced' lists the
> traced function symbols.

Thanks, but please add documentation at some point (I mean the
manual).




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#1343; Package emacs. Full text available.

Message received at 1343 <at> debbugs.gnu.org:


Received: (at 1343) by debbugs.gnu.org; 15 Jul 2022 04:08:58 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jul 15 00:08:57 2022
Received: from localhost ([127.0.0.1]:39178 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1oCCdN-0008UZ-Gi
	for submit <at> debbugs.gnu.org; Fri, 15 Jul 2022 00:08:57 -0400
Received: from smtp-1.orcon.net.nz ([60.234.4.34]:54017)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <psainty@HIDDEN>)
 id 1oCCdH-0008UB-3G; Fri, 15 Jul 2022 00:08:55 -0400
Received: from [10.253.37.70] (port=22451 helo=webmail.orcon.net.nz)
 by smtp-1.orcon.net.nz with esmtpa (Exim 4.90_1)
 (envelope-from <psainty@HIDDEN>)
 id 1oCCdD-0003UQ-0X; Fri, 15 Jul 2022 16:08:47 +1200
Received: from ip-116-251-140-135.kinect.net.nz ([116.251.140.135])
 via [10.253.37.253] by webmail.orcon.net.nz
 with HTTP (HTTP/1.1 POST); Fri, 15 Jul 2022 16:08:46 +1200
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII;
 format=flowed
Content-Transfer-Encoding: 7bit
Date: Fri, 15 Jul 2022 16:08:46 +1200
From: Phil Sainty <psainty@HIDDEN>
To: 27397 <at> debbugs.gnu.org, 1343 <at> debbugs.gnu.org
Subject: Re: bug#1343: bug#27397: [PATCH] New commands for bulk tracing of
 elisp functions
In-Reply-To: <83fa3d61-9173-c3f6-32b6-87c7c09502b7@HIDDEN>
References: <1348823a-7623-8146-8cc0-8c0eff13e458@HIDDEN>
 <94d27dbb-46d3-1d6f-4849-251a0929d413@HIDDEN>
 <70000e90-328c-c084-3e3c-bbde96b16110@HIDDEN>
 <adbc18a1-20ef-5261-6d8e-149b13d61674@HIDDEN>
 <6b195c26-066c-870f-3432-0b24c6f619ec@HIDDEN>
 <d8ba5a45-ae3b-7f05-1749-ca5032d4bee9@HIDDEN>
 <m3sgruykj3.fsf@HIDDEN>
 <83fa3d61-9173-c3f6-32b6-87c7c09502b7@HIDDEN>
Message-ID: <15f4e949736351f2d98fdee0b57e4d24@HIDDEN>
X-Sender: psainty@HIDDEN
User-Agent: Orcon Webmail
X-GeoIP: --
X-Spam_score: -2.9
X-Spam_score_int: -28
X-Spam_bar: --
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 1343
Cc: Lars Ingebrigtsen <larsi@HIDDEN>,
 Michael Albinus <michael.albinus@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>
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 (-)

After a brief hiatus, I've resumed (maybe completed) my work on this.

The branch scratch/bulk-tracing contains the updated code for Emacs 29
(rebased over master).

NEWS is:

*** New commands 'trace-package', 'trace-regexp', and 'trace-library'
(and their counterparts 'untrace-package', 'untrace-regexp', and
'untrace-library') allow for the bulk tracing of calls to functions
with names matching a specified prefix or regexp, or functions defined
by a specified file.  New command 'trace-currently-traced' lists the
traced function symbols.


-Phil





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#1343; Package emacs. Full text available.

Message received at 1343 <at> debbugs.gnu.org:


Received: (at 1343) by debbugs.gnu.org; 21 Oct 2021 20:29:10 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Oct 21 16:29:09 2021
Received: from localhost ([127.0.0.1]:58704 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1mdegX-0000HU-MG
	for submit <at> debbugs.gnu.org; Thu, 21 Oct 2021 16:29:09 -0400
Received: from mail-pf1-f177.google.com ([209.85.210.177]:37561)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>)
 id 1mdegV-0000GQ-1l; Thu, 21 Oct 2021 16:29:07 -0400
Received: by mail-pf1-f177.google.com with SMTP id q19so1691660pfl.4;
 Thu, 21 Oct 2021 13:29:06 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:from:in-reply-to:references:user-agent
 :mime-version:date:message-id:subject:to:cc;
 bh=bvl05SMFvzVm8C2p/d4pSfQhY7XgWM7h3okfz+lSRws=;
 b=jKUxYI5Odxf2g8sH0zYPxfiPLsUFEkFqfSyfl0CRmyEdiMlPnWYSYUMdWvtGuZSCkT
 DgcM0mXLvNAqHQtjuyda8r//br9oBY98MyTWhO740eJmmS6XdUe1owJDItcz78j4DHoE
 MvKcW9B9+vP+tpWdTBapR+20t+ER4t1AQnHuWzUtYddGRIEdzpuaeDff09iW3PiWeOsm
 //Nari2BtBIOuEwiN6MaLcjIElTCkcQXMox3WpeFifCHtgNjndzhLzl95+1N9P5920ip
 lgpKrksDsf+Y0A2ADgmvp6/d+zRDPW2ToH9dRWW3LXrm4lLBiKIYFNZqJhG8hTb3DMtW
 +DQQ==
X-Gm-Message-State: AOAM531IZDbeff57m6O0xNEVIwlCIcmqY+rw5Zsmy5QW3FkJ/5/RrmdH
 4yNC/LjQ992KAklHJ76W9KY4JI4SJUx8rNd+amk=
X-Google-Smtp-Source: ABdhPJyazVREq4ncUbHYtPWvn6YaaYRgjRt8tVzoEiAz9Kf9yPHUISM5sf6u63UJhXl1s0GiO6s9GKVMFwW1UcQKHu8=
X-Received: by 2002:aa7:978b:0:b0:44c:abf1:a8b8 with SMTP id
 o11-20020aa7978b000000b0044cabf1a8b8mr8256524pfp.35.1634848141329; Thu, 21
 Oct 2021 13:29:01 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Thu, 21 Oct 2021 13:29:01 -0700
From: Stefan Kangas <stefan@HIDDEN>
In-Reply-To: <11b5a271-413d-9134-116e-3370030e99e1@HIDDEN> (Phil
 Sainty's message of "Sun, 18 Apr 2021 02:01:38 +1200")
References: <1348823a-7623-8146-8cc0-8c0eff13e458@HIDDEN>
 <94d27dbb-46d3-1d6f-4849-251a0929d413@HIDDEN>
 <70000e90-328c-c084-3e3c-bbde96b16110@HIDDEN>
 <adbc18a1-20ef-5261-6d8e-149b13d61674@HIDDEN>
 <6b195c26-066c-870f-3432-0b24c6f619ec@HIDDEN>
 <d8ba5a45-ae3b-7f05-1749-ca5032d4bee9@HIDDEN> <m3sgruykj3.fsf@HIDDEN>
 <83fa3d61-9173-c3f6-32b6-87c7c09502b7@HIDDEN>
 <CADwFkmmFhDvn1XHz2HpDuiLhJqOU2Kiq3iWLaNZFoZDL-qU-CQ@HIDDEN>
 <11b5a271-413d-9134-116e-3370030e99e1@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Date: Thu, 21 Oct 2021 13:29:01 -0700
Message-ID: <CADwFkm=ZOhoQAQiE5Aj_8mRPyqXZDd-WpgL1JUuAcoSABAtaUQ@HIDDEN>
Subject: Re: bug#1343: [PATCH] trace package
To: Phil Sainty <psainty@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 1343
Cc: 1343 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>,
 27397 <at> debbugs.gnu.org
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.5 (/)

Phil Sainty <psainty@HIDDEN> writes:

> Hi Stefan,
>
> On 17/04/21 5:51 pm, Stefan Kangas wrote:
>> (That was almost 2 years ago.)
>> Any updates here?
>
> Unfortunately not.  I think I briefly resumed work on that at
> the time, but it almost immediately got sidelined again.

Is there anything stopping us from adding what you have so far?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#1343; Package emacs. Full text available.

Message received at 1343 <at> debbugs.gnu.org:


Received: (at 1343) by debbugs.gnu.org; 17 Apr 2021 14:01:44 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 10:01:44 2021
Received: from localhost ([127.0.0.1]:44081 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lXlW3-00011L-Gx
	for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 10:01:44 -0400
Received: from smtp-1.orcon.net.nz ([60.234.4.34]:44067)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <psainty@HIDDEN>)
 id 1lXlW1-000115-L3; Sat, 17 Apr 2021 10:01:42 -0400
Received: from [101.53.216.162] (port=13442 helo=[192.168.20.103])
 by smtp-1.orcon.net.nz with esmtpa (Exim 4.90_1)
 (envelope-from <psainty@HIDDEN>)
 id 1lXlVz-0002Hz-C8; Sun, 18 Apr 2021 02:01:39 +1200
Subject: Re: bug#1343: [PATCH] trace package
To: Stefan Kangas <stefan@HIDDEN>
References: <1348823a-7623-8146-8cc0-8c0eff13e458@HIDDEN>
 <94d27dbb-46d3-1d6f-4849-251a0929d413@HIDDEN>
 <70000e90-328c-c084-3e3c-bbde96b16110@HIDDEN>
 <adbc18a1-20ef-5261-6d8e-149b13d61674@HIDDEN>
 <6b195c26-066c-870f-3432-0b24c6f619ec@HIDDEN>
 <d8ba5a45-ae3b-7f05-1749-ca5032d4bee9@HIDDEN> <m3sgruykj3.fsf@HIDDEN>
 <83fa3d61-9173-c3f6-32b6-87c7c09502b7@HIDDEN>
 <CADwFkmmFhDvn1XHz2HpDuiLhJqOU2Kiq3iWLaNZFoZDL-qU-CQ@HIDDEN>
From: Phil Sainty <psainty@HIDDEN>
Message-ID: <11b5a271-413d-9134-116e-3370030e99e1@HIDDEN>
Date: Sun, 18 Apr 2021 02:01:38 +1200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101
 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <CADwFkmmFhDvn1XHz2HpDuiLhJqOU2Kiq3iWLaNZFoZDL-qU-CQ@HIDDEN>
Content-Type: text/plain; charset=utf-8
Content-Language: en-GB
Content-Transfer-Encoding: 7bit
X-GeoIP: NZ
X-Spam_score: -2.9
X-Spam_score_int: -28
X-Spam_bar: --
X-Spam-Score: 2.9 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  Hi Stefan, On 17/04/21 5:51 pm, Stefan Kangas wrote: > (That
 was almost 2 years ago.) > Any updates here? Unfortunately not. I think I
 briefly resumed work on that at the time,
 but it almost immediately got sidelined again. 
 Content analysis details:   (2.9 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
 low trust [60.234.4.34 listed in list.dnswl.org]
 3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
 [101.53.216.162 listed in zen.spamhaus.org]
 0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (psainty[at]orcon.net.nz)
 -0.0 SPF_PASS               SPF: sender matches SPF record
 -0.0 NICE_REPLY_A           Looks like a legit reply (A)
X-Debbugs-Envelope-To: 1343
Cc: 1343 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>,
 27397 <at> debbugs.gnu.org
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.9 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  Hi Stefan, On 17/04/21 5:51 pm, Stefan Kangas wrote: > (That
    was almost 2 years ago.) > Any updates here? Unfortunately not. I think I
    briefly resumed work on that at the time, but it almost immediately got sidelined
    again. 
 
 Content analysis details:   (1.9 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  3.6 RCVD_IN_SBL_CSS        RBL: Received via a relay in Spamhaus SBL-CSS
                             [101.53.216.162 listed in zen.spamhaus.org]
 -0.7 RCVD_IN_DNSWL_LOW      RBL: Sender listed at https://www.dnswl.org/,
                             low trust
                             [60.234.4.34 listed in list.dnswl.org]
  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider (psainty[at]orcon.net.nz)
 -0.0 SPF_PASS               SPF: sender matches SPF record
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager
 -0.0 NICE_REPLY_A           Looks like a legit reply (A)

Hi Stefan,

On 17/04/21 5:51 pm, Stefan Kangas wrote:
> (That was almost 2 years ago.)
> Any updates here?

Unfortunately not.  I think I briefly resumed work on that at
the time, but it almost immediately got sidelined again.

-Phil




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#1343; Package emacs. Full text available.

Message received at 1343 <at> debbugs.gnu.org:


Received: (at 1343) by debbugs.gnu.org; 17 Apr 2021 05:51:46 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Apr 17 01:51:46 2021
Received: from localhost ([127.0.0.1]:42070 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1lXdrq-00030R-K7
	for submit <at> debbugs.gnu.org; Sat, 17 Apr 2021 01:51:46 -0400
Received: from mail-pg1-f170.google.com ([209.85.215.170]:39865)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>)
 id 1lXdrl-000305-2Z; Sat, 17 Apr 2021 01:51:40 -0400
Received: by mail-pg1-f170.google.com with SMTP id j32so5807188pgm.6;
 Fri, 16 Apr 2021 22:51:36 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:in-reply-to:references:user-agent
 :mime-version:date:message-id:subject:to:cc;
 bh=9sJ109i8Bur19lEUU2LJiUXmpiP50i7XjEPYduQPl9Y=;
 b=Wjz0KspB+iMw7O64OCNG2LV+4GFY8aSPsklIFsOJ61UgyE00yiK5rEh602zQc817mO
 0jpuTcP+gvqTQoxwYED/roHGVjjapjGGnFjMNFy9ZtQOdxB+YASkv65A0WLbsBeD9Cyh
 SmT7W9/Byb0qipA19h7RUY7QxiXhEZRpbkpYkoMkAg/CpTR2xeEYWBn2vpqI4nq1WGOj
 VO9BRei8ooReq5OslIVDgTIYuCnOsMxu34eYaWyhlUDjE4fdb5GrFl0NVvdUQpDodAH7
 kY4WkMK9fgmnLLGUaniPKIdOIKGKjafIotE+sBHyo9JR9WQu0blgoKk8NZdjgUg/to9/
 Mfog==
X-Gm-Message-State: AOAM5303aIdysxxfYvpIGcvYmCrW2suoHGEXOjWMZxIJtxG4dgfNuPh4
 j90TnncCdFDg8jr6Gt1Rbq3l3h2OzBdgYr0rdJ8=
X-Google-Smtp-Source: ABdhPJzH9pViNfw2ssz0lIVNZhVS07cPBS9yOVxM8zfuVBj3SWfb07ULfG0nF5bxdNzXqAyfkz5ETFJk8PNQIXjY7X8=
X-Received: by 2002:aa7:828f:0:b029:200:6e27:8c8f with SMTP id
 s15-20020aa7828f0000b02902006e278c8fmr10636314pfm.44.1618638691245; Fri, 16
 Apr 2021 22:51:31 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Sat, 17 Apr 2021 00:51:30 -0500
From: Stefan Kangas <stefan@HIDDEN>
In-Reply-To: <83fa3d61-9173-c3f6-32b6-87c7c09502b7@HIDDEN> (Phil
 Sainty's message of "Fri, 28 Jun 2019 23:25:56 +1200")
References: <1348823a-7623-8146-8cc0-8c0eff13e458@HIDDEN>
 <94d27dbb-46d3-1d6f-4849-251a0929d413@HIDDEN>
 <70000e90-328c-c084-3e3c-bbde96b16110@HIDDEN>
 <adbc18a1-20ef-5261-6d8e-149b13d61674@HIDDEN>
 <6b195c26-066c-870f-3432-0b24c6f619ec@HIDDEN>
 <d8ba5a45-ae3b-7f05-1749-ca5032d4bee9@HIDDEN> <m3sgruykj3.fsf@HIDDEN>
 <83fa3d61-9173-c3f6-32b6-87c7c09502b7@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)
MIME-Version: 1.0
Date: Sat, 17 Apr 2021 00:51:30 -0500
Message-ID: <CADwFkmmFhDvn1XHz2HpDuiLhJqOU2Kiq3iWLaNZFoZDL-qU-CQ@HIDDEN>
Subject: Re: bug#1343: [PATCH] trace package
To: Phil Sainty <psainty@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 1343
Cc: 1343 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi@HIDDEN>,
 27397 <at> debbugs.gnu.org
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.5 (/)

Hi Phil,

Phil Sainty <psainty@HIDDEN> writes:

> On 28/06/19 6:01 AM, Lars Ingebrigtsen wrote:
>> The consensus seemed to be that adding commands for tracing a large
>> number of functions was welcome, even if Michael had some usability
>> concerns.  But it was never applied?
>
> Correct.  This has been languishing on my to-do list for a
> long time (albeit not forgotten about), as my time has been
> pretty limited, and I've been spending it on other projects.
>
> With so-long.el hopefully out of the way for now, and seeing
> as how you've raised it, I'll try to get back to this next
> (I had a bunch of work-in-progress based on the previous
> discussions at the time I stashed it).

(That was almost 2 years ago.)

Any updates here?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#1343; Package emacs. Full text available.

Message received at 1343 <at> debbugs.gnu.org:


Received: (at 1343) by debbugs.gnu.org; 28 Jun 2019 11:26:05 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Jun 28 07:26:05 2019
Received: from localhost ([127.0.0.1]:40443 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hgp13-0001x7-DC
	for submit <at> debbugs.gnu.org; Fri, 28 Jun 2019 07:26:05 -0400
Received: from smtp-4.orcon.net.nz ([60.234.4.59]:35151)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <psainty@HIDDEN>)
 id 1hgp0z-0001wb-SC; Fri, 28 Jun 2019 07:26:03 -0400
Received: from [116.251.203.174] (port=37728 helo=[192.168.20.103])
 by smtp-4.orcon.net.nz with esmtpa (Exim 4.86_2)
 (envelope-from <psainty@HIDDEN>)
 id 1hgp0v-00031V-Da; Fri, 28 Jun 2019 23:25:57 +1200
Subject: Re: bug#1343: bug#27397: [PATCH] New commands for bulk tracing of
 elisp functions
To: Lars Ingebrigtsen <larsi@HIDDEN>
References: <1348823a-7623-8146-8cc0-8c0eff13e458@HIDDEN>
 <94d27dbb-46d3-1d6f-4849-251a0929d413@HIDDEN>
 <70000e90-328c-c084-3e3c-bbde96b16110@HIDDEN>
 <adbc18a1-20ef-5261-6d8e-149b13d61674@HIDDEN>
 <6b195c26-066c-870f-3432-0b24c6f619ec@HIDDEN>
 <d8ba5a45-ae3b-7f05-1749-ca5032d4bee9@HIDDEN> <m3sgruykj3.fsf@HIDDEN>
From: Phil Sainty <psainty@HIDDEN>
Message-ID: <83fa3d61-9173-c3f6-32b6-87c7c09502b7@HIDDEN>
Date: Fri, 28 Jun 2019 23:25:56 +1200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.7.0
MIME-Version: 1.0
In-Reply-To: <m3sgruykj3.fsf@HIDDEN>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-GeoIP: NZ
X-Spam_score: -2.9
X-Spam_score_int: -28
X-Spam_bar: --
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 1343
Cc: 1343 <at> debbugs.gnu.org, 27397 <at> debbugs.gnu.org
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.7 (-)

Hi Lars,

On 28/06/19 6:01 AM, Lars Ingebrigtsen wrote:
> The consensus seemed to be that adding commands for tracing a large
> number of functions was welcome, even if Michael had some usability
> concerns.  But it was never applied?

Correct.  This has been languishing on my to-do list for a
long time (albeit not forgotten about), as my time has been
pretty limited, and I've been spending it on other projects.

With so-long.el hopefully out of the way for now, and seeing
as how you've raised it, I'll try to get back to this next
(I had a bunch of work-in-progress based on the previous
discussions at the time I stashed it).


-Phil




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#1343; Package emacs. Full text available.

Message received at 1343 <at> debbugs.gnu.org:


Received: (at 1343) by debbugs.gnu.org; 27 Jun 2019 18:01:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Jun 27 14:01:59 2019
Received: from localhost ([127.0.0.1]:39557 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hgYic-0006Jt-RT
	for submit <at> debbugs.gnu.org; Thu, 27 Jun 2019 14:01:59 -0400
Received: from quimby.gnus.org ([80.91.231.51]:46358)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <larsi@HIDDEN>)
 id 1hgYib-0006Hp-7G; Thu, 27 Jun 2019 14:01:57 -0400
Received: from cm-84.212.202.86.getinternet.no ([84.212.202.86] helo=stories)
 by quimby.gnus.org with esmtpsa
 (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89)
 (envelope-from <larsi@HIDDEN>)
 id 1hgYiX-0008O5-3v; Thu, 27 Jun 2019 20:01:55 +0200
From: Lars Ingebrigtsen <larsi@HIDDEN>
To: Phil Sainty <psainty@HIDDEN>
Subject: Re: bug#27397: [PATCH] New commands for bulk tracing of elisp
 functions
References: <1348823a-7623-8146-8cc0-8c0eff13e458@HIDDEN>
 <94d27dbb-46d3-1d6f-4849-251a0929d413@HIDDEN>
 <70000e90-328c-c084-3e3c-bbde96b16110@HIDDEN>
 <adbc18a1-20ef-5261-6d8e-149b13d61674@HIDDEN>
 <6b195c26-066c-870f-3432-0b24c6f619ec@HIDDEN>
 <d8ba5a45-ae3b-7f05-1749-ca5032d4bee9@HIDDEN>
Date: Thu, 27 Jun 2019 20:01:52 +0200
In-Reply-To: <d8ba5a45-ae3b-7f05-1749-ca5032d4bee9@HIDDEN> (Phil
 Sainty's message of "Sun, 18 Jun 2017 23:22:31 +1200")
Message-ID: <m3sgruykj3.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Report: Spam detection software, running on the system "quimby.gnus.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 @@CONTACT_ADDRESS@@ for details.
 Content preview:  Phil Sainty <psainty@HIDDEN> writes: > (I guess I'll
 follow up next weekend if no one has anything to add > in the interim.) The
 consensus seemed to be that adding commands for tracing a large number of
 functions was welcome, even if Michael had some usability concerns. But it
 was never applied? 
 Content analysis details:   (-2.9 points, 5.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -1.0 ALL_TRUSTED            Passed through trusted hosts only via SMTP
 -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%
 [score: 0.0000]
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 1343
Cc: 1343 <at> debbugs.gnu.org, 27397 <at> debbugs.gnu.org
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 (-)

Phil Sainty <psainty@HIDDEN> writes:

> (I guess I'll follow up next weekend if no one has anything to add
> in the interim.)

The consensus seemed to be that adding commands for tracing a large
number of functions was welcome, even if Michael had some usability
concerns.  But it was never applied?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#1343; Package emacs. Full text available.
Forcibly Merged 1343 6464 27397. Request was from Noam Postavsky <npostavs@HIDDEN> to control <at> debbugs.gnu.org. Full text available.
Merged 1343 6464. Request was from Glenn Morris <rgm@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at (unknown):


Received: (at unknown) by unknown; unknown
X-Spam-Checker-Version: SpamAssassin 3.2.3-bugs.debian.org_2005_01_02
	(2007-08-08) on rzlab.ucr.edu
X-Spam-Level: 
X-Spam-Status: No, score=-10.0 required=4.0 tests=BAYES_00,IMPRONONCABLE_2,
	MURPHY_DRUGS_REL8,RCVD_IN_DNSWL_MED,X_DEBBUGS_NO_ACK autolearn=ham
	version=3.2.3-bugs.debian.org_2005_01_02
Received: (at quiet) by emacsbugs.donarmstrong.com; 13 Nov 2008 23:58:39 +0000
Received: from fencepost.gnu.org (fencepost.gnu.org [140.186.70.10])
	by rzlab.ucr.edu (8.13.8/8.13.8/Debian-3) with ESMTP id mADNwaZw019886
	for <quiet@HIDDEN>; Thu, 13 Nov 2008 15:58:37 -0800
Received: from rgm by fencepost.gnu.org with local (Exim 4.67)
	(envelope-from <rgm@HIDDEN>)
	id 1L0m54-0002a8-Cd
	for quiet@HIDDEN; Thu, 13 Nov 2008 18:58:34 -0500
From: Vitaly Mayatskikh <v.mayatskih@HIDDEN>
To: quiet <at> debbugs.gnu.org
Subject: [PATCH] trace package
Date: Tue, 11 Nov 2008 21:24:02 +0100
Lines: 66
X-From-Line: emacs-devel-bounces+rgm=gnu.org@HIDDEN  Tue Nov 11 15:23:21 2008
Received: from mail.gnu.org ([199.232.76.166]:45056 helo=mx10.gnu.org)
	by fencepost.gnu.org with esmtp (Exim 4.67)
	(envelope-from <emacs-devel-bounces+rgm=gnu.org@HIDDEN>)
	id 1Kzzlh-00019z-8v
	for rgm@HIDDEN; Tue, 11 Nov 2008 15:23:21 -0500
Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60)
	(envelope-from <emacs-devel-bounces+rgm=gnu.org@HIDDEN>)
	id 1Kzzoh-0001ZN-PL
	for rgm@HIDDEN; Tue, 11 Nov 2008 15:26:28 -0500
Received: from lists.gnu.org ([199.232.76.165]:49476)
	by monty-python.gnu.org with esmtp (Exim 4.60)
	(envelope-from <emacs-devel-bounces+rgm=gnu.org@HIDDEN>)
	id 1Kzzog-0001ZB-1e
	for rgm@HIDDEN; Tue, 11 Nov 2008 15:26:26 -0500
Received: from localhost ([127.0.0.1]:43470 helo=lists.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.43)
	id 1Kzzof-0000bB-Qb
	for rgm@HIDDEN; Tue, 11 Nov 2008 15:26:25 -0500
Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43)
	id 1Kzzma-0007rm-9P
	for emacs-devel@HIDDEN; Tue, 11 Nov 2008 15:24:16 -0500
Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43)
	id 1KzzmY-0007qs-Be
	for emacs-devel@HIDDEN; Tue, 11 Nov 2008 15:24:15 -0500
Received: from [199.232.76.173] (port=42861 helo=monty-python.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.43) id 1KzzmY-0007qV-2u
	for emacs-devel@HIDDEN; Tue, 11 Nov 2008 15:24:14 -0500
Received: from ug-out-1314.google.com ([66.249.92.172]:36941)
	by monty-python.gnu.org with esmtp (Exim 4.60)
	(envelope-from <v.mayatskih@HIDDEN>) id 1KzzmW-0001H9-Kq
	for emacs-devel@HIDDEN; Tue, 11 Nov 2008 15:24:13 -0500
Received: by ug-out-1314.google.com with SMTP id 36so1015749uga.17
	for <emacs-devel@HIDDEN>; Tue, 11 Nov 2008 12:24:06 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma;
	h=domainkey-signature:received:received:date:message-id:from:to
	:subject:user-agent:mime-version:content-type;
	bh=DPB6Kmmvrt756roox2IBYR626R79yMPzOKeRDSKYKjI=;
	b=wDYXvMwL4/MvpTRXysxmKT+CZEidLAcTP/UxezIKbmqtse5YMrw5MxWYlvkBx0Yh95
	IXwvRQnvIq6AK7+2meDcHKUXpUz6anLG4nixeZdLzFmlRhehV5HBcQkx/gcoMyM5EJq6
	7HT1QVOVjvfRQuIqO5EWSrARAkUomvLUS1EC8=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma;
	h=date:message-id:from:to:subject:user-agent:mime-version
	:content-type;
	b=C66HSUuGiLTUruozWNX6wvciT12p5DdCphiM4IGRFNhdxfJumzwgwkstVjKy3z4tMr
	KVxWiwIP2pYJi4bzxzlsP+7/xZgL7Wpjj4IWXBtdvZxfyzef9CUI9aLdLI+AqIrMyvjS
	IH8ygwiwozpC2UxlsiV0AxutTw1rbfMAI7/wQ=
Received: by 10.210.22.8 with SMTP id 8mr9594688ebv.46.1226435046701;
	Tue, 11 Nov 2008 12:24:06 -0800 (PST)
Received: from gravicappa.englab.brq.redhat.com (r10ni46.net.upc.cz
	[78.45.116.46])
	by mx.google.com with ESMTPS id 7sm2004616eyg.9.2008.11.11.12.24.04
	(version=TLSv1/SSLv3 cipher=RC4-MD5);
	Tue, 11 Nov 2008 12:24:05 -0800 (PST)
X-Debbugs-No-Ack: yes
X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 2)
X-BeenThere: emacs-devel@HIDDEN
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "Emacs development discussions." <emacs-devel.gnu.org>
List-Unsubscribe: <http://lists.gnu.org/mailman/listinfo/emacs-devel>,
	<mailto:emacs-devel-request@HIDDEN?subject=unsubscribe>
List-Archive: <http://lists.gnu.org/pipermail/emacs-devel>
List-Post: <mailto:emacs-devel@HIDDEN>
List-Help: <mailto:emacs-devel-request@HIDDEN?subject=help>
List-Subscribe: <http://lists.gnu.org/mailman/listinfo/emacs-devel>,
	<mailto:emacs-devel-request@HIDDEN?subject=subscribe>
Errors-To: emacs-devel-bounces+rgm=gnu.org@HIDDEN
X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4)
Message-ID: <7g8wrnqitx.fsf@HIDDEN>
User-Agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Sender: Glenn Morris <rgm@HIDDEN>

Severity: wishlist
Tags: patch

[ resent from
  http://lists.gnu.org/archive/html/emacs-devel/2008-11/msg00347.html ]


trace.el has functions trace-function and trace-function-background,
which allows to add function or macro for tracing. Sometimes it is
useful to trace a bunch of functions in one package, like it is done
in elp.el (Emacs Lisp Profiler), but trace.el lacks this
facility. This patch introduces 3 functions to help with package
tracing: trace-package, trace-package-background and untrace-package.

Index: lisp/emacs-lisp/trace.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/emacs-lisp/trace.el,v
retrieving revision 1.22
diff -p -u -w -r1.22 trace.el
--- lisp/emacs-lisp/trace.el	10 Jun 2008 16:08:46 -0000	1.22
+++ lisp/emacs-lisp/trace.el	10 Nov 2008 19:40:37 -0000
@@ -153,6 +153,7 @@
 ;;; Code:
 
 (require 'advice)
+(require 'cl)
 
 (defgroup trace nil
   "Tracing facility for Emacs Lisp functions."
@@ -297,6 +298,37 @@ was not traced this is a noop."
   (ad-do-advised-functions (function)
     (untrace-function function)))
 
+(macrolet ((defun-trace-package (name background doc)
+	     `(defun ,name (prefix &optional buffer)
+		,doc
+		(interactive
+		 (list
+		  (completing-read "Prefix of package to trace: " obarray)
+		  (read-buffer "Output to buffer: " trace-buffer)))
+		(if (zerop (length prefix))
+		    (error "Tracing all Emacs functions would render Emacs unusable"))
+		(dolist (fun (mapcar 'intern (all-completions prefix obarray 'fboundp t)))
+		  (trace-function-internal fun buffer ,background)))))
+  (defun-trace-package trace-package nil
+    "Traces all functions which start with PREFIX. Trace output going to BUFFER.
+For example, to trace all TRACE functions, do the following:
+
+    \\[trace-package] RET trace- RET")
+  (defun-trace-package trace-package-background t
+    "Traces all functions which start with PREFIX. Trace output going quietly
+to BUFFER. For example, to trace all TRACE functions, do the following:
+
+    \\[trace-package] RET trace- RET"))
+
+(defun untrace-package (prefix)
+  "Untraces all functions which start with PREFIX, and possibly activates
+all remaining advice."
+  (interactive
+   (list
+    (completing-read "Prefix of package to untrace: " obarray)))
+  (dolist (fun (mapcar 'intern (all-completions prefix obarray 'trace-is-traced t)))
+    (untrace-function fun)))
+
 (provide 'trace)
 
 ;; arch-tag: cfd170a7-4932-4331-8c8b-b7151942e5a1

--
wbr, Vitaly




Report stored:
bug#1343; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Tue, 13 Sep 2022 11:15:02 UTC

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