From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Michael Albinus Newsgroups: gmane.emacs.bugs Subject: bug#27397: [PATCH] New commands for bulk tracing of elisp functions Date: Mon, 19 Jun 2017 14:05:43 +0200 Message-ID: <87poe0i3mw.fsf@detlef> References: <1348823a-7623-8146-8cc0-8c0eff13e458@orcon.net.nz> <34fcc090-6a8b-42de-b6c8-df182f8de938@yandex.ru> <8760fs5sjw.fsf@detlef> <871sqg5mig.fsf@detlef> <6282010c-b2ec-ebca-35b7-a382b30ea3f0@orcon.net.nz> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1497873980 12938 195.159.176.226 (19 Jun 2017 12:06:20 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 19 Jun 2017 12:06:20 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) Cc: 27397@debbugs.gnu.org, Dmitry Gutov To: Phil Sainty Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Jun 19 14:06:16 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dMvRf-00036J-6d for geb-bug-gnu-emacs@m.gmane.org; Mon, 19 Jun 2017 14:06:15 +0200 Original-Received: from localhost ([::1]:42219 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dMvRk-0006ls-DN for geb-bug-gnu-emacs@m.gmane.org; Mon, 19 Jun 2017 08:06:20 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:59997) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dMvRX-0006kM-Uq for bug-gnu-emacs@gnu.org; Mon, 19 Jun 2017 08:06:09 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dMvRT-0005ZN-0H for bug-gnu-emacs@gnu.org; Mon, 19 Jun 2017 08:06:07 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:53022) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dMvRS-0005ZE-Sj for bug-gnu-emacs@gnu.org; Mon, 19 Jun 2017 08:06:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dMvRS-0006tS-M9 for bug-gnu-emacs@gnu.org; Mon, 19 Jun 2017 08:06:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Michael Albinus Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 19 Jun 2017 12:06:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 27397 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 27397-submit@debbugs.gnu.org id=B27397.149787395726481 (code B ref 27397); Mon, 19 Jun 2017 12:06:02 +0000 Original-Received: (at 27397) by debbugs.gnu.org; 19 Jun 2017 12:05:57 +0000 Original-Received: from localhost ([127.0.0.1]:55698 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dMvRN-0006t3-F9 for submit@debbugs.gnu.org; Mon, 19 Jun 2017 08:05:57 -0400 Original-Received: from mout.gmx.net ([212.227.17.21]:52252) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dMvRL-0006so-Do for 27397@debbugs.gnu.org; Mon, 19 Jun 2017 08:05:56 -0400 Original-Received: from detlef.gmx.de ([212.86.44.161]) by mail.gmx.com (mrgmx102 [212.227.17.168]) with ESMTPSA (Nemesis) id 0Mhej1-1d8x5P3CoV-00MsA0; Mon, 19 Jun 2017 14:05:44 +0200 In-Reply-To: <6282010c-b2ec-ebca-35b7-a382b30ea3f0@orcon.net.nz> (Phil Sainty's message of "Mon, 19 Jun 2017 23:00:07 +1200") X-Provags-ID: V03:K0:WUDi0OEqwVw4m5WZlw+O4W8k2xAudihOczQPpnOUMkurL9Tt40I NbuqDG8yKyC/OiRk0D91svFirxwclQnzaypQUB65awrvo0FE0W1fg6uh0RP5oxsmldxV42b +oaxzxBSa93xrGmYbPL3wQfahWGu3NumLM8sB89hk0nzlkraygcxSZVYMMXF/jlPY/gH0Y/ 9/OcqXzOphCEtstJQnLqw== X-UI-Out-Filterresults: notjunk:1;V01:K0:mVuWmZ6vXA0=:qTVBvtlRC8ljiyhKELAVe2 JHMYQIqsWrCQBugM9Ee2mxzu+Nx/o7kPJsm+BX79oH15nEE/SvBV46EWS1cUKaMiwpg4xMB4H gKKmNI+eOlp9pOxwNuYMSPMGNwTCokb6kVUcEbhFj8X0pjmp1XkY/D8QiQQjxa3LgdDmLr4KW R6obNmZmtCicFfQxEF/cqGmAaKOw6AcqsDviKnhpqIs/wfcT6M1Pf7Rl0yBEUdXfWNt6TYljG v2bl7UY+pcc8wT2utoTZpkcdnIxIW1bsx0OHZ24g4nbjPAkmeLiY72JsxMJ9tPBXVXma2Syj5 kfVMq4ld0EbQRVnD6XLybfi1LXIr5RqBjrffAWq/Spdrx2nT0/bizDXPIa+xQLe44KiP2/Y8o y0MayJGFtwG66iI0WQzci2zW0C3kFHHgo7Se+Z0svjjRvKc2bEUSfw+WUxnxjra2XNmfBdY8n ypoIjeK3+Gu1B3DT1810V3LJlJ5QxwUXkLzjmbqGFf9a8getmrqqDYzocZk41aH4OvmPJsdbT FB4+uQuXOIKl7rxpPvU9x9dxmwy3nDYnnZoJg5H5W4qYq1BgxOYZHmeP4Ig0+0qdd1gPai1Ld sIq2LqwjawW+5i02QhVi5tx6u9hG8Atfpk/d4y3S8CsBa/5Wpd7FHwxAF3sMd+Xm1vo94WX2F eDI78v8vc/BLdgwPUhIR9vlOWFAFycT726F3mbA0EoNy4+0aA37z3OoSZeH79PMax+RXouYGq zBKf85OqsZ4c4HQG7oRVs3g54X3u6dJMAuJi/8L9L3AvguadClk9UD5N97EJihMuRL8bDd2s X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:133753 Archived-At: Phil Sainty writes: > I think `trace-library' would be the appropriate name? As usual, I don't care too much about function names :-) > Of course we can't guarantee that library foo.el adheres to a foo-* > naming scheme for all its functions (or that other libraries don't > define any foo-* functions). Would we just ignore this and trace > everything starting with foo- on the assumption that this is good > enough? Or would we parse the library in order to trace that library's > functions precisely? We cannot assume that library 'foo prefixes all its functions with "foo-". Even Tramp libraries have functions which do not fit this scheme, for historical reasons. So we shall parse indead every function for the library it belongs to. It shouldn't be too hard, based on `autoloadp', `find-lisp-object-file-name' and friends, see the implementation in `describe-function-1'. Something like this is a very rudimentary implementation: (defun my-find-library (fun) "Find library FUN is defined in. In case of subroutines, return t" (when (fboundp fun) (let ((def (symbol-function fun))) (cond ((autoloadp def) (cadr def)) ((subrp def) t) (t (file-name-base (find-lisp-object-file-name fun nil))))))) > -Phil Best regards, Michael.