GNU bug report logs - #45717
27.1; Error with apostrophe in JSX comment

Previous Next

Package: emacs;

Reported by: Jakobsson Mattias <mattias.jakobsson <at> smhi.se>

Date: Thu, 7 Jan 2021 16:35:02 UTC

Severity: normal

Tags: confirmed

Found in version 27.1

Done: Dmitry Gutov <dgutov <at> yandex.ru>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 45717 in the body.
You can then email your comments to 45717 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#45717; Package emacs. (Thu, 07 Jan 2021 16:35:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jakobsson Mattias <mattias.jakobsson <at> smhi.se>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Thu, 07 Jan 2021 16:35:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Jakobsson Mattias <mattias.jakobsson <at> smhi.se>
To: "bug-gnu-emacs <at> gnu.org" <bug-gnu-emacs <at> gnu.org>
Subject: 27.1; Error with apostrophe in JSX comment
Date: Thu, 7 Jan 2021 16:26:09 +0000
[Message part 1 (text/plain, inline)]
Dear emacs developers,

I get the errors in the Recent messages further below if I edit (e.g., by inserting a newline)
a JSX file with the content between the ``` below. If I remove the apostrophe from
"don't" in the comment the errors goes away.

```
import React from "react";

const MyComponent = ({ someList }) => (
  <div
    className={someList.filter(
      // don't include an apostrophe in this comment
      (cls) => cls !== "someclass"
    )}
  />
);

export default MyComponent;
```

Regards, Mattias

In GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30)
 of 2020-08-22 built on c21618
Windowing system distributor 'The X.Org Foundation', version
11.0.12008000
System Description: Red Hat Enterprise Linux 8.3 (Ootpa)


Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Error during redisplay: (jit-lock-function 1) signaled (error "Variable
binding depth exceeds max-specpdl-size")
Error in post-command-hook (jit-lock--antiblink-post-command): (error
"Variable binding depth exceeds max-specpdl-size")
Error during redisplay: (internal--syntax-propertize 29) signaled
(error "Variable binding depth exceeds max-specpdl-size")
back-to-indentation: internal--syntax-propertize did not move syntax-
propertize--doneError during redisplay: (jit-lock-function 28) signaled
(error "Variable binding depth exceeds max-specpdl-size")
Error during redisplay: (jit-lock-function 28) signaled (error
"Variable binding depth exceeds max-specpdl-size")
Making completion list...


Configured using:
 'configure --prefix=/home/a001919/.local/emacs/27.1 --with-json'


Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND DBUS GSETTINGS GLIB NOTIFY INOTIFY
LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ XFT ZLIB
TOOLKIT_SCROLL_BARS
GTK3 X11 XDBE XIM MODULES THREADS JSON PDUMPER GMP


Important settings:
  value of $LANG: en_GB.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix


Major mode: JavaScript[JSX]


Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t


Load-path shadows:
None found.


Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
format-spec rfc822 mml mml-sec password-cache epa derived epg epg-
config
gnus-util rmail rmail-loaddefs text-property-search time-date mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils vc-
git
diff-mode easy-mmode js json subr-x map seq byte-opt gv bytecomp
byte-compile cconv imenu cc-mode cc-fonts easymenu cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs cl-loaddefs cl-lib
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset
image
regexp-opt fringe tabulated-list replace newcomment text-mode elisp-
mode
lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core term/tty-colors frame minibuffer cl-generic cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite charscript charprop
case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote threads dbusbind
inotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)


Memory information:
((conses 16 75570 6537)
 (symbols 48 9507 1)
 (strings 32 25092 1661)
 (string-bytes 1 947253)
 (vectors 16 14494)
 (vector-slots 8 181430 11864)
 (floats 8 25 40)
 (intervals 56 246 0)
 (buffers 1000 14))

[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#45717; Package emacs. (Sun, 31 Oct 2021 02:42:01 GMT) Full text and rfc822 format available.

Message #8 received at 45717 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Kangas <stefan <at> marxist.se>
To: Jakobsson Mattias <mattias.jakobsson <at> smhi.se>
Cc: 45717 <at> debbugs.gnu.org
Subject: Re: bug#45717: 27.1; Error with apostrophe in JSX comment
Date: Sat, 30 Oct 2021 19:41:10 -0700
tags 45717 + confirmed
thanks

Jakobsson Mattias <mattias.jakobsson <at> smhi.se> writes:

> I get the errors in the Recent messages further below if I edit (e.g., by inserting a newline)
> a JSX file with the content between the ``` below. If I remove the apostrophe from
> "don't" in the comment the errors goes away.
>
> ```
> import React from "react";
>
> const MyComponent = ({ someList }) => (
>   <div
>     className={someList.filter(
>       // don't include an apostrophe in this comment
>       (cls) => cls !== "someclass"
>     )}
>   />
> );
>
> export default MyComponent;
> ```

I tried reproducing this on current master, but I don't see any message.
However, I do see incorrect highlighting after the comment with the
apostrophe, so something is clearly still not working as it should.




Added tag(s) confirmed. Request was from Stefan Kangas <stefan <at> marxist.se> to control <at> debbugs.gnu.org. (Sun, 31 Oct 2021 02:42:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#45717; Package emacs. (Wed, 03 Nov 2021 01:35:02 GMT) Full text and rfc822 format available.

Message #13 received at 45717 <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Stefan Kangas <stefan <at> marxist.se>,
 Jakobsson Mattias <mattias.jakobsson <at> smhi.se>,
 Jackson Hamilton <jackson <at> jacksonrayhamilton.com>
Cc: 45717 <at> debbugs.gnu.org
Subject: Re: bug#45717: 27.1; Error with apostrophe in JSX comment
Date: Wed, 3 Nov 2021 04:34:16 +0300
On 31.10.2021 05:41, Stefan Kangas wrote:
> tags 45717 + confirmed
> thanks
> 
> Jakobsson Mattias<mattias.jakobsson <at> smhi.se>  writes:
> 
>> I get the errors in the Recent messages further below if I edit (e.g., by inserting a newline)
>> a JSX file with the content between the ``` below. If I remove the apostrophe from
>> "don't" in the comment the errors goes away.
>>
>> ```
>> import React from "react";
>>
>> const MyComponent = ({ someList }) => (
>>    <div
>>      className={someList.filter(
>>        // don't include an apostrophe in this comment
>>        (cls) => cls !== "someclass"
>>      )}
>>    />
>> );
>>
>> export default MyComponent;
>> ```
> I tried reproducing this on current master, but I don't see any message.
> However, I do see incorrect highlighting after the comment with the
> apostrophe, so something is clearly still not working as it should.

I do see errors in this scenario, especially after trying to edit or 
move around. Like:

js-jsx--syntax-propertize-extend-region: Lisp nesting exceeds 
‘max-lisp-eval-depth’Error during redisplay: (jit-lock-function 1) 
signaled (error "Lisp nesting exceeds ‘max-lisp-eval-depth’")

Adding Jackson to Cc, perhaps he'll have time and inclination to 
investigate this.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#45717; Package emacs. (Sat, 20 Nov 2021 02:33:01 GMT) Full text and rfc822 format available.

Message #16 received at 45717 <at> debbugs.gnu.org (full text, mbox):

From: Jackson Ray Hamilton <jackson <at> jacksonrayhamilton.com>
To: Dmitry Gutov <dgutov <at> yandex.ru>, Stefan Kangas <stefan <at> marxist.se>,
 Jakobsson Mattias <mattias.jakobsson <at> smhi.se>
Cc: 45717 <at> debbugs.gnu.org
Subject: Re: bug#45717: 27.1; Error with apostrophe in JSX comment
Date: Fri, 19 Nov 2021 18:32:06 -0800
Hi, thanks for bringing this to our attention.

This code seems to throw js-jsx--syntax-propertize-extend-region into an 
infinite loop.  M-x toggle-debug-on-error and M-x eval-expression 
(js-jsx--syntax-propertize-extend-region 69 240) shows the stack trace; 
(backward-sexp) ultimately causes (syntax-propertize), thus the loop.

Using M-x edebug-defun to debug js-jsx--syntax-propertize-extend-region, 
after pressing space a bunch of times to step through it, I see it’s 
trying to jump from “)}” to the “{” in “className={”.  The presence of 
the apostrophe somehow interrupts the intended logic.

I tried adding parse-sexp-ignore-comments to the let and it suppressed 
the infinite loop but caused a scan-error (which is immediately caught) 
which seems wrong to me.

I tried adding (parse-sexp-ignore-comments t) to the let and encountered 
another infinite loop.

Tricky.  For now, I’ll leave the mailing list with my notes.

On 11/2/21 6:34 PM, Dmitry Gutov wrote:
> On 31.10.2021 05:41, Stefan Kangas wrote:
>> tags 45717 + confirmed
>> thanks
>>
>> Jakobsson Mattias<mattias.jakobsson <at> smhi.se>  writes:
>>
>>> I get the errors in the Recent messages further below if I edit 
>>> (e.g., by inserting a newline)
>>> a JSX file with the content between the ``` below. If I remove the 
>>> apostrophe from
>>> "don't" in the comment the errors goes away.
>>>
>>> ```
>>> import React from "react";
>>>
>>> const MyComponent = ({ someList }) => (
>>>    <div
>>>      className={someList.filter(
>>>        // don't include an apostrophe in this comment
>>>        (cls) => cls !== "someclass"
>>>      )}
>>>    />
>>> );
>>>
>>> export default MyComponent;
>>> ```
>> I tried reproducing this on current master, but I don't see any message.
>> However, I do see incorrect highlighting after the comment with the
>> apostrophe, so something is clearly still not working as it should.
>
> I do see errors in this scenario, especially after trying to edit or 
> move around. Like:
>
> js-jsx--syntax-propertize-extend-region: Lisp nesting exceeds 
> ‘max-lisp-eval-depth’Error during redisplay: (jit-lock-function 1) 
> signaled (error "Lisp nesting exceeds ‘max-lisp-eval-depth’")
>
> Adding Jackson to Cc, perhaps he'll have time and inclination to 
> investigate this.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#45717; Package emacs. (Sun, 02 Jun 2024 20:56:02 GMT) Full text and rfc822 format available.

Message #19 received at 45717 <at> debbugs.gnu.org (full text, mbox):

From: Jakub Ječmínek <kuba <at> kubajecminek.cz>
To: Jackson Ray Hamilton <jackson <at> jacksonrayhamilton.com>
Cc: 45717 <at> debbugs.gnu.org, Stefan Kangas <stefan <at> marxist.se>,
 Jakobsson Mattias <mattias.jakobsson <at> smhi.se>, Dmitry Gutov <dgutov <at> yandex.ru>
Subject: Re: bug#45717: 27.1; Error with apostrophe in JSX comment
Date: Sun, 02 Jun 2024 20:54:42 +0000
I'm unable to reproduce this on (almost) current master.  Can somebody
else please double check and eventually close this?

Thanks.





Reply sent to Dmitry Gutov <dgutov <at> yandex.ru>:
You have taken responsibility. (Tue, 04 Jun 2024 01:09:02 GMT) Full text and rfc822 format available.

Notification sent to Jakobsson Mattias <mattias.jakobsson <at> smhi.se>:
bug acknowledged by developer. (Tue, 04 Jun 2024 01:09:02 GMT) Full text and rfc822 format available.

Message #24 received at 45717-done <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Jakub Ječmínek <kuba <at> kubajecminek.cz>,
 Jackson Ray Hamilton <jackson <at> jacksonrayhamilton.com>
Cc: 45717-done <at> debbugs.gnu.org, Stefan Kangas <stefan <at> marxist.se>,
 Jakobsson Mattias <mattias.jakobsson <at> smhi.se>
Subject: Re: bug#45717: 27.1; Error with apostrophe in JSX comment
Date: Tue, 4 Jun 2024 04:07:57 +0300
On 02/06/2024 23:54, Jakub Ječmínek via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:
> I'm unable to reproduce this on (almost) current master.  Can somebody
> else please double check and eventually close this?

Indeed, looks like this got fixed sometimes between Emacs 28 and 29.

I'll close the report, thanks for the update. And of course let us know 
if it returns.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 02 Jul 2024 11:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 24 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.