all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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



  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.