From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.devel Subject: New branch feature/named-lambdas. Date: Mon, 17 Jul 2023 10:14:46 +0000 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="32162"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Jul 17 12:16:01 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qLLGq-0008DF-Hb for ged-emacs-devel@m.gmane-mx.org; Mon, 17 Jul 2023 12:16:00 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qLLFx-0001gI-VN; Mon, 17 Jul 2023 06:15:07 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qLLFv-0001fZ-Ew for emacs-devel@gnu.org; Mon, 17 Jul 2023 06:15:03 -0400 Original-Received: from mx3.muc.de ([193.149.48.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qLLFt-0004vm-1x for emacs-devel@gnu.org; Mon, 17 Jul 2023 06:15:03 -0400 Original-Received: (qmail 13164 invoked by uid 3782); 17 Jul 2023 12:14:47 +0200 Original-Received: from acm.muc.de (p4fe15519.dip0.t-ipconnect.de [79.225.85.25]) (using STARTTLS) by colin.muc.de (tmda-ofmipd) with ESMTP; Mon, 17 Jul 2023 12:14:47 +0200 Original-Received: (qmail 5220 invoked by uid 1000); 17 Jul 2023 10:14:46 -0000 Content-Disposition: inline X-Submission-Agent: TMDA/1.3.x (Ph3nix) X-Primary-Address: acm@muc.de Received-SPF: pass client-ip=193.149.48.5; envelope-from=acm@muc.de; helo=mx3.muc.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:307924 Archived-At: Hello, Emacs. I've just committed the first version of branch feature/named-lambdas. This will output the @dfn{defining symbol} of any anonymous functions in backtraces. For example, in (defun foo () "foo doc string" (lambda (bar) "lambda doc string" (car bar))) M-: (funcall (foo) 'baz) will produce this backtrace: Debugger entered--Lisp error: (wrong-type-argument listp baz) car(baz) {foo} #f(compiled-function (bar) "lambda doc string" #)(baz) <============================= funcall({foo} #f(compiled-function (bar) "lambda doc string" #) baz) (progn (funcall (foo) 'baz)) elisp--eval-last-sexp(nil) eval-last-sexp(nil) funcall-interactively(eval-last-sexp nil) command-execute(eval-last-sexp) .. Note the {foo} on the third and fourth lines. This is (usually) the defun where the lambda was defined, and is helpful in locating its source code. This was achieved by adding an extra defining-symbol field to each of the three forms of function (interpreted, byte-compiled, native-compiled). It is indended that this version of Emacs will continue to handle functions compiled without this enhancement. -- Alan Mackenzie (Nuremberg, Germany).