From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Phil Sainty Newsgroups: gmane.emacs.bugs Subject: bug#27397: [PATCH] New commands for bulk tracing of elisp functions Date: Tue, 20 Jun 2017 00:17:38 +1200 Message-ID: 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> <87poe0i3mw.fsf@detlef> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Trace: blaine.gmane.org 1497874697 20619 195.159.176.226 (19 Jun 2017 12:18:17 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 19 Jun 2017 12:18:17 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1 Cc: 27397@debbugs.gnu.org, Dmitry Gutov To: Michael Albinus Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Jun 19 14:18:11 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 1dMvdA-0004v7-UM for geb-bug-gnu-emacs@m.gmane.org; Mon, 19 Jun 2017 14:18:09 +0200 Original-Received: from localhost ([::1]:42283 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dMvdF-0005ey-TZ for geb-bug-gnu-emacs@m.gmane.org; Mon, 19 Jun 2017 08:18:13 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:34862) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dMvd9-0005ei-S2 for bug-gnu-emacs@gnu.org; Mon, 19 Jun 2017 08:18:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dMvd4-0002y7-Sg for bug-gnu-emacs@gnu.org; Mon, 19 Jun 2017 08:18:07 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:53039) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dMvd4-0002y3-O8 for bug-gnu-emacs@gnu.org; Mon, 19 Jun 2017 08:18:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dMvd4-0007Aw-JR for bug-gnu-emacs@gnu.org; Mon, 19 Jun 2017 08:18:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Phil Sainty Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 19 Jun 2017 12:18: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.149787467027564 (code B ref 27397); Mon, 19 Jun 2017 12:18:02 +0000 Original-Received: (at 27397) by debbugs.gnu.org; 19 Jun 2017 12:17:50 +0000 Original-Received: from localhost ([127.0.0.1]:55716 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dMvcs-0007AV-B8 for submit@debbugs.gnu.org; Mon, 19 Jun 2017 08:17:50 -0400 Original-Received: from smtp-1.orcon.net.nz ([60.234.4.34]:41221) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dMvcp-0007AH-T2 for 27397@debbugs.gnu.org; Mon, 19 Jun 2017 08:17:48 -0400 Original-Received: from [150.107.172.99] (port=45528 helo=[192.168.20.102]) by smtp-1.orcon.net.nz with esmtpa (Exim 4.86_2) (envelope-from ) id 1dMvch-0007nm-33; Tue, 20 Jun 2017 00:17:39 +1200 In-Reply-To: <87poe0i3mw.fsf@detlef> Content-Language: en-US X-GeoIP: NZ X-Spam_score: -1.0 X-Spam_score_int: -9 X-Spam_bar: - 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:133756 Archived-At: On 20/06/17 00:05, Michael Albinus wrote: > 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))))))) Meanwhile I was experimenting with load-history along these lines: (require 'seq) (defun trace-library (library) "Trace functions defined by LIBRARY." (mapcar 'trace-function-background (mapcar 'cdr (seq-filter (lambda (x) (and (consp x) (eq (car x) 'defun))) (load-history-filename-element (load-history-regexp library))))))