From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Rudolf =?UTF-8?Q?Adamkovi=C4=8D?= via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#60830: 30.0.50; The *Compilation* buffer does not recognize Lua errors Date: Sun, 10 Dec 2023 23:53:28 +0100 Message-ID: References: <909EF5E1-6F30-4A35-84E8-2EF4333115FD@gmail.com> <4996E536-72CE-4E6A-9C75-CF7307A82469@gmail.com> <8170D896-5520-4A5E-83F0-51C99BD54802@gmail.com> <57BD4380-6307-469B-9DE7-FF1BCD44B679@gmail.com> Reply-To: Rudolf =?UTF-8?Q?Adamkovi=C4=8D?= Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="31294"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 60830@debbugs.gnu.org, Stefan Kangas , Stefan Monnier To: Mattias =?UTF-8?Q?Engdeg=C3=A5rd?= Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Dec 10 23:54:15 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1rCSgg-0007w5-E9 for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 10 Dec 2023 23:54:14 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rCSgH-0007BR-Gq; Sun, 10 Dec 2023 17:53:49 -0500 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 1rCSgG-0007AY-Gi for bug-gnu-emacs@gnu.org; Sun, 10 Dec 2023 17:53:48 -0500 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rCSgG-00087I-8v for bug-gnu-emacs@gnu.org; Sun, 10 Dec 2023 17:53:48 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rCSgT-0008CB-Ko for bug-gnu-emacs@gnu.org; Sun, 10 Dec 2023 17:54:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Rudolf =?UTF-8?Q?Adamkovi=C4=8D?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 10 Dec 2023 22:54:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 60830 X-GNU-PR-Package: emacs Original-Received: via spool by 60830-submit@debbugs.gnu.org id=B60830.170224883931493 (code B ref 60830); Sun, 10 Dec 2023 22:54:01 +0000 Original-Received: (at 60830) by debbugs.gnu.org; 10 Dec 2023 22:53:59 +0000 Original-Received: from localhost ([127.0.0.1]:51931 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCSgQ-0008Bt-Q9 for submit@debbugs.gnu.org; Sun, 10 Dec 2023 17:53:59 -0500 Original-Received: from pv50p00im-zteg10011401.me.com ([17.58.6.41]:43834) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rCSgM-0008BQ-AB for 60830@debbugs.gnu.org; Sun, 10 Dec 2023 17:53:58 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=me.com; s=1a1hai; t=1702248814; bh=064pvrDsPyWMzJg+7vEZMHJmmFcjchT4U2qNrXOcjGc=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type; b=Cu/aRmznjKHbOMY53eBcIdf7kBhS6rpUkDc/fvpsWkOzNnYmI00yUeFJ79ATW+ld8 n0XLb79/OsiyvmJLVU+otvSLOxUSmGTEUARlIsaU+wo4Au2UQ8vPKZXqcIOPZXegVL 2IR2sqUKcgK3pqxFk8G/6O/2v84iq9rdBEn+ffkNqjVwdzFylFMdjgBCKpvQz/hbbL CdGMFGfoC72lKdZ5hofOgVI988/CEDWOCSPLm8ySBzvkaGDx1qCnkMcflhIVP27jUW lI2OkMnFIyhXthwUkpvikwv9FjxLqEu0P/wPaPGzgjVQBB5flhR5A4f6BIQiu8Lp+4 5Ivdsyrwl+OXg== Original-Received: from Rudolfs-MacBook-Air.local (pv50p00im-dlb-asmtp-mailmevip.me.com [17.56.9.10]) by pv50p00im-zteg10011401.me.com (Postfix) with ESMTPSA id E642EDC0181; Sun, 10 Dec 2023 22:53:31 +0000 (UTC) In-Reply-To: <57BD4380-6307-469B-9DE7-FF1BCD44B679@gmail.com> X-Proofpoint-GUID: OjAIR_A0pPRVdFL0aDVZoWCwHlVmShJl X-Proofpoint-ORIG-GUID: OjAIR_A0pPRVdFL0aDVZoWCwHlVmShJl X-Proofpoint-Virus-Version: vendor=fsecure engine=1.1.170-22c6f66c430a71ce266a39bfe25bc2903e8d5c8f:6.0.517, 18.0.572, 17.0.605.474.0000000 definitions=2022-06-21_01:2022-06-21_01, 2020-02-14_11, 2020-01-23_02 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 clxscore=1015 spamscore=0 bulkscore=0 mlxscore=0 malwarescore=0 phishscore=0 suspectscore=0 mlxlogscore=826 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2308100000 definitions=main-2312100201 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:275945 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Mattias Engdeg=C3=A5rd writes: > [...] Windows file names [...] tests [...] give us no indication. Good catch! I added more tests and updated the code to handle DOS/Windows paths. >> How do false positives and performance tie to "beauty"? > > It's a figure of speech. I see. > [...] precisely what versions of Lua [...] information should go into > the entry of compilation.txt (and the comments describing the new > entries in compilation-error-regexp-alist-alist). So that we can be 100% sure, today I compiled and tested the patch against the last four versions of Lua, as well as, the famously speedy fork LuaJIT. It works correctly in all cases. I added the version information to the appropriate places. I am attaching a new version of the patch. Thank you! Rudy --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Make-the-Compilation-mode-recognize-Lua-errors.patch >From 880989d695929f2488418d69f56f465537c48110 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rudolf=20Adamkovi=C4=8D?= Date: Tue, 3 Oct 2023 09:07:40 +0200 Subject: [PATCH] Make the Compilation mode recognize Lua errors Emacs comes with built-in support for the Lua programming language in the form of the Lua mode and now also the Lua Tree-sitter mode. This patch further improves Lua support in Emacs by making the Compilation mode recognize Lua errors and stack traces. Reported as bug#60830. * etc/compilation.txt (Lua): Add an example of a Lua error message with a stack trace. * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): Add regexps to aid Lua development, namely the 'lua' regexp that matches Lua errors and the 'lua-stack' regexp that matches Lua stack frames. * test/lisp/progmodes/compile-tests.el (compile-tests--test-regexps-data): (compile-test-error-regexps): Test the new 'lua' and 'lua-stack' regexps added to the 'compilation-error-regexp-alist-alist'. --- etc/NEWS | 5 +++++ etc/compilation.txt | 13 ++++++++++++ lisp/progmodes/compile.el | 8 +++++++ test/lisp/progmodes/compile-tests.el | 31 ++++++++++++++++++++++++++-- 4 files changed, 55 insertions(+), 2 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 33afb34b029..079afe01d7d 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -407,6 +407,11 @@ This is because it partly acts by modifying other rules which may occasionally be surprising. It can be re-enabled by adding 'omake' to 'compilation-error-regexp-alist'. +*** Lua errors and stack traces are now recognized. +The compilation mode now recognizes Lua language errors and stack +traces. Every Lua error is recognized as a compilation error, and +every Lua stack frame is recognized as a compilation info. + ** Project +++ diff --git a/etc/compilation.txt b/etc/compilation.txt index 5f6ecb09cc2..aaab9cd3bbe 100644 --- a/etc/compilation.txt +++ b/etc/compilation.txt @@ -344,6 +344,19 @@ In /home/janneke/vc/guile/examples/gud-break.scm: 1033: 0 [stderr "~a:hello world\n" (# # #)] +* Lua 5.1, 5.2, 5.3, 5.4, and LuaJIT 2.1 + +/usr/bin/lua: database.lua:31: assertion failed! +stack traceback: + [C]: in function 'assert' + database.lua:31: in field 'statement' + database.lua:42: in field 'table' + database.lua:55: in field 'row' + database.lua:63: in field 'value' + io.lua: in main chunk + [C]: in ? + + * Lucid Compiler, lcc 3.x symbol: lcc diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 5522c1afc55..c97874e590e 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -362,6 +362,14 @@ compilation-error-regexp-alist-alist (ruby-Test::Unit "^ [[ ]?\\([^ (].*\\):\\([1-9][0-9]*\\)\\(\\]\\)?:in " 1 2) + ;; Tested with Lua 5.1, 5.2, 5.3, 5.4, and LuaJIT 2.1. + (lua + "^[^\n\t]+?: \\([^\n\t]+?\\):\\([0-9]+?\\): .+\nstack traceback:\n\t" + 1 2 nil 2 1) + (lua-stack + "^\t\\(?:\\[C\\]:\\|\\([^\n\t]+?\\):\\(?:\\([0-9]+?\\):\\)?\\) in " + 1 2 nil 0 1) + (gmake ;; Set GNU make error messages as INFO level. ;; It starts with the name of the make program which is variable, diff --git a/test/lisp/progmodes/compile-tests.el b/test/lisp/progmodes/compile-tests.el index d497644c389..be3b5723d24 100644 --- a/test/lisp/progmodes/compile-tests.el +++ b/test/lisp/progmodes/compile-tests.el @@ -206,6 +206,33 @@ compile-tests--test-regexps-data 1 0 31 "/usr/include/c++/3.3/backward/iostream.h") (gcc-include " from test_clt.cc:1:" 1 nil 1 "test_clt.cc") + ;; Lua + (lua "lua: database.lua:10: assertion failed!\nstack traceback:\n\t" + 6 nil 10 "database.lua") + (lua "lua 5.4: database 2.lua:10: assertion failed!\nstack traceback:\n\t" + 10 nil 10 "database 2.lua") + (lua "/usr/local/bin/lua: core/database.lua:20: assertion failed!\nstack traceback:\n\t" + 21 nil 20 "core/database.lua") + (lua "C:\\Lua\\Lua.exe: Core\\Database.lua:20: assertion failed!\nstack traceback:\n\t" + 17 nil 20 "Core\\Database.lua") + (lua "lua: /tmp/database.lua:20: assertion failed!\nstack traceback:\n\t" + 6 nil 20 "/tmp/database.lua") + (lua "Lua.exe: C:\\Temp\\Database.lua:20: assertion failed!\nstack traceback:\n\t" + 10 nil 20 "C:\\Temp\\Database.lua") + (lua-stack " database.lua: in field 'statement'" + 2 nil nil "database.lua" 0) + (lua-stack " database.lua:10: in field 'statement'" + 2 nil 10 "database.lua" 0) + (lua-stack " core/database.lua:20: in field 'statement'" + 2 nil 20 "core/database.lua" 0) + (lua-stack " database 2.lua: in field 'statement'" + 2 nil nil "database 2.lua" 0) + (lua-stack " Core\\Database.lua:20: in field 'statement'" + 2 nil 20 "Core\\Database.lua" 0) + (lua-stack " /tmp/database.lua: in field 'statement'" + 2 nil nil "/tmp/database.lua" 0) + (lua-stack " C:\\Core\\Database.lua: in field 'statement'" + 2 nil nil "C:\\Core\\Database.lua" 0) ;; gmake (gmake "make: *** [Makefile:20: all] Error 2" 12 nil 20 "Makefile" 0) (gmake "make[4]: *** [sub/make.mk:19: all] Error 127" 15 nil 19 @@ -507,9 +534,9 @@ compile-test-error-regexps 1 15 5 "alpha.c"))) (compile--test-error-line test)) - (should (eq compilation-num-errors-found 100)) + (should (eq compilation-num-errors-found 106)) (should (eq compilation-num-warnings-found 35)) - (should (eq compilation-num-infos-found 28))))) + (should (eq compilation-num-infos-found 35))))) (ert-deftest compile-test-grep-regexps () "Test the `grep-regexp-alist' regexps. -- 2.39.3 (Apple Git-145) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable --=20 "Be especially critical of any statement following the word 'obviously.'" -- Anna Pell Wheeler, 1883-1966 Rudolf Adamkovi=C4=8D [he/him] Studenohorsk=C3=A1 25 84103 Bratislava Slovakia --=-=-=--