From: "Basil L. Contovounesios" <contovob@tcd.ie>
To: Alan Mackenzie <acm@muc.de>
Cc: Glenn Morris <rgm@gnu.org>, Lars Ingebrigtsen <larsi@gnus.org>,
emacs-devel@gnu.org
Subject: Re: master c4d34d2: CC Mode: Enhance C++ Mode raw strings to multi-line strings for any language
Date: Thu, 19 Aug 2021 01:15:04 +0100 [thread overview]
Message-ID: <87k0kiguif.fsf@tcd.ie> (raw)
In-Reply-To: <YR1x6fvkihPBnDou@ACM> (Alan Mackenzie's message of "Wed, 18 Aug 2021 20:47:37 +0000")
Alan Mackenzie [2021-08-18 20:47 +0000] wrote:
>> To my above configuration, I added --enable-checking=structs, and with
>> that I can reproduce the hang using your recipe above.
>
>> But with TEST_LOAD_EL=yes, the test runs to completion. This suggests
>> there is some bug in the compilation of some .el file -
>> electric-test.el, perhaps? Are we talking about a .elc or a .eln here?
>
> You say c-beginning-of-macro seems to be hanging.
Yes, that's as deep as I got with print debugging before calling it a
night.
> js.el advises c-beginning-of-macro (along with two other CC Mode
> functions), and this may have something to do with it.
>
> At least, if I comment out all the lines in test/lisp/electric-tests.el
> with "js" in them (apart from the first occurrence, where one just
> comments out "js-mode" from the line), then the hang doesn't happen.
>
> Something to think about.
Indeed, if I comment out all the js-mode-related
define-electric-pair-test forms, as well as the js-mode inside
define-electric-pair-test, then
make TEST_LOAD_EL=no test/electric-tests
no longer hangs, but electric-pair-open-extra-newline fails.
Tonight, I tried the following approach instead (in an unedited source
tree):
0. C-x p c make TEST_LOAD_EL=no test/electric-tests RET
1. M-! pkill -SIGUSR2 -f ert-run-tests RET
I repeated this a few times, and the *emacs-compilation* buffer reliably
contained the same backtrace:
--8<---------------cut here---------------start------------->8---
Test electric-layout-plainer-c-mode-use-c-style backtrace:
c-tnt-chng-cleanup(nil [(nil . t) #<buffer *Test buffer (electric-la
#f(compiled-function () #<bytecode 0x1ce6cae08acf>)()
c-point-syntax()
electric-layout-for-c-style-du-jour(123)
electric-layout-post-self-insert-function-1()
electric-layout-post-self-insert-function()
self-insert-command(1 123)
funcall-interactively(self-insert-command 1 123)
call-interactively(self-insert-command)
#f(compiled-function () #<bytecode -0x8b013aec04deab5>)()
ert--call-with-test-buffer(nil #f(compiled-function () #<bytecode -0
#f(compiled-function () #<bytecode -0x10479e86da51cfc>)()
ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
ert-run-test(#s(ert-test :name electric-layout-plainer-c-mode-use-c-
ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
ert-run-tests((not (or (tag :unstable) (tag :nativecomp))) #f(compil
ert-run-tests-batch((not (or (tag :unstable) (tag :nativecomp))))
ert-run-tests-batch-and-exit((not (or (tag :unstable) (tag :nativeco
eval((ert-run-tests-batch-and-exit '(not (or (tag :unstable) (tag :n
command-line-1(("-L" ":." "-L" "./../../elpa/packages/url-http-ntlm/
command-line()
normal-top-level()
Test electric-layout-plainer-c-mode-use-c-style condition:
Buffer: *Test buffer (electric-layout-plainer-c-mode-use-c-style)*
(quit)
QUIT 5/478 electric-layout-plainer-c-mode-use-c-style (54.497779 sec)
--8<---------------cut here---------------end--------------->8---
Sprinkling some prints in c-tnt-chng-cleanup revealed that the following
loop never terminates:
(let ((undo-in-progress t))
(while (not (eq (setq buffer-undo-list
(primitive-undo 1 buffer-undo-list))
saved-undo-list))))
HTH,
--
Basil
next prev parent reply other threads:[~2021-08-19 0:15 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20210812190845.13266.82536@vcs0.savannah.gnu.org>
[not found] ` <20210812190847.E372A20997@vcs0.savannah.gnu.org>
2021-08-13 14:20 ` master c4d34d2: CC Mode: Enhance C++ Mode raw strings to multi-line strings for any language Lars Ingebrigtsen
2021-08-13 19:52 ` Alan Mackenzie
2021-08-14 11:53 ` Lars Ingebrigtsen
2021-08-14 14:53 ` Alan Mackenzie
2021-08-14 19:30 ` Lars Ingebrigtsen
2021-08-14 23:24 ` Glenn Morris
2021-08-14 23:31 ` Lars Ingebrigtsen
2021-08-15 6:12 ` Eli Zaretskii
2021-08-15 15:23 ` Alan Mackenzie
2021-08-16 11:29 ` Lars Ingebrigtsen
2021-08-17 19:37 ` Basil L. Contovounesios
2021-08-18 0:02 ` Basil L. Contovounesios
2021-08-18 14:48 ` Lars Ingebrigtsen
2021-08-18 17:07 ` Basil L. Contovounesios
2021-08-18 17:37 ` Alan Mackenzie
2021-08-18 19:20 ` Alan Mackenzie
2021-08-18 20:47 ` Alan Mackenzie
2021-08-19 0:15 ` Basil L. Contovounesios [this message]
2021-08-20 10:48 ` Alan Mackenzie
2021-08-20 21:20 ` Alan Mackenzie
2021-08-20 22:43 ` Basil L. Contovounesios
2021-08-21 9:55 ` Alan Mackenzie
2021-08-21 7:15 ` Eli Zaretskii
2021-08-21 10:00 ` Alan Mackenzie
2021-08-21 10:04 ` Eli Zaretskii
2021-08-19 0:13 ` Basil L. Contovounesios
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87k0kiguif.fsf@tcd.ie \
--to=contovob@tcd.ie \
--cc=acm@muc.de \
--cc=emacs-devel@gnu.org \
--cc=larsi@gnus.org \
--cc=rgm@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.