unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#48011: 27.2; Emacs freezes in modula 2 mode when entering a :
@ 2021-04-25  7:53 Dan Čermák
  2021-04-25  8:58 ` Eli Zaretskii
  2021-05-25 13:02 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 2 replies; 9+ messages in thread
From: Dan Čermák @ 2021-04-25  7:53 UTC (permalink / raw)
  To: 48011

[-- Attachment #1: Type: text/plain, Size: 13249 bytes --]

This is a forward of https://bugzilla.redhat.com/show_bug.cgi?id=1950158

Emacs 27.2 freezes when editing a file that ends with .mod (i.e. it
opens the file in Modula 2 mode) after one enters a ':'. The UI simply
hangs until one interrupts it with C-g.

This happens with emacs -Q as well as with the Emacs flatpak (thus I
assume that it is not Fedora specific).


Cheers,

Dan

In GNU Emacs 27.2 (build 1, x86_64-redhat-linux-gnu, GTK+ Version 3.24.27, cairo version 1.16.0)
 of 2021-03-27 built on buildvm-x86-31.iad2.fedoraproject.org
Windowing system distributor 'Fedora Project', version 11.0.12011000
System Description: Fedora 33 (Server Edition)

Recent messages:

Configured using:
 'configure --build=x86_64-redhat-linux-gnu
 --host=x86_64-redhat-linux-gnu --program-prefix=
 --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
 --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
 --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
 --libexecdir=/usr/libexec --localstatedir=/var
 --sharedstatedir=/var/lib --mandir=/usr/share/man
 --infodir=/usr/share/info --with-dbus --with-gif --with-jpeg --with-png
 --with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3
 --with-gpm=no --with-xwidgets --with-modules --with-harfbuzz
 --with-cairo --with-json build_alias=x86_64-redhat-linux-gnu
 host_alias=x86_64-redhat-linux-gnu CC=gcc 'CFLAGS=-DMAIL_USE_LOCKF -O2
 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches
 -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
 -Wp,-D_GLIBCXX_ASSERTIONS
 -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong
 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
 -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection'
 LDFLAGS=-Wl,-z,relro
 PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'

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

Important settings:
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: notmuch-search

Minor modes in effect:
  git-identity-magit-mode: t
  magit-todos-mode: t
  global-git-commit-mode: t
  magit-auto-revert-mode: t
  recentf-mode: t
  tracking-mode: t
  telega-patrons-mode: t
  hl-line-mode: t
  which-key-mode: t
  zoom-mode: t
  editorconfig-mode: t
  engine-mode: t
  modern-c++-font-lock-global-mode: t
  global-diff-hl-mode: t
  global-display-line-numbers-mode: t
  display-line-numbers-mode: t
  show-smartparens-global-mode: t
  show-smartparens-mode: t
  smartparens-global-mode: t
  smartparens-mode: t
  show-paren-mode: t
  projectile-mode: t
  flycheck-color-mode-line-mode: t
  global-flycheck-mode: t
  flycheck-mode: t
  company-statistics-mode: t
  helm-mode: t
  shell-dirtrack-mode: t
  helm--remap-mouse-mode: t
  async-bytecomp-package-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-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
  buffer-read-only: t
  column-number-mode: 1
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/dan/.emacs.d/elpa/cmake-mode-20210104.1831/cmake-mode hides /usr/share/emacs/site-lisp/cmake/cmake-mode
/home/dan/.emacs.d/elpa/clang-format-20191106.950/clang-format hides /usr/share/emacs/site-lisp/site-start.d/clang-format

Features:
(shadow yaml-imenu ansible-doc company-ansible company-ansible-keywords
yaml-mode tabify cal-move ledger-mode ledger-check ledger-texi
ledger-test ledger-sort ledger-report ledger-reconcile ledger-occur
ledger-fonts ledger-fontify ledger-state ledger-complete ledger-schedule
ledger-init ledger-xact ledger-post ledger-exec ledger-navigate
ledger-context ledger-commodities ledger-regex smartparens-c cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs rpm-spec-mode pulse magit-extras forge-list forge-commands
forge-semi forge-bitbucket buck forge-gogs gogs forge-gitea gtea
forge-gitlab glab forge-github ghub-graphql treepy gsexp ghub
forge-notify forge-revnote forge-pullreq forge-issue forge-topic
bug-reference forge-post forge-repo forge forge-core forge-db closql
emacsql-sqlite emacsql emacsql-compiler url-http url-auth url-gw
git-identity hydra magit-todos pcre2el rxt re-builder hl-todo
magit-bookmark magit-submodule magit-obsolete magit-blame magit-stash
magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone
magit-remote magit-commit magit-sequence magit-notes magit-worktree
magit-tag magit-merge magit-branch magit-reset magit-files magit-refs
magit-status magit magit-repos magit-apply magit-wip magit-log
which-func magit-diff smerge-mode diff git-commit log-edit add-log
magit-core magit-autorevert magit-margin magit-transient magit-process
with-editor magit-mode transient magit-git magit-section magit-utils
lsp-diagnostics lsp-modeline lsp-headerline lsp-icons lsp-ui
lsp-ui-flycheck lsp-ui-doc xwidget lsp-ui-imenu lsp-ui-peek
lsp-ui-sideline lsp-ui-util vc-mtn vc-hg vc-bzr vc-src vc-sccs vc-svn
vc-cvs vc-rcs lsp-zig lsp-steep lsp-svelte lsp-sqls lsp-yaml lsp-xml
lsp-vimscript lsp-vhdl lsp-vetur lsp-html lsp-verilog lsp-vala
lsp-terraform lsp-tex lsp-sorbet lsp-solargraph lsp-rust lsp-rf lsp-r
lsp-purescript lsp-pyls lsp-pwsh lsp-php lsp-perl lsp-ocaml lsp-nix
lsp-nim lsp-lua lsp-kotlin lsp-json lsp-javascript lsp-haxe lsp-groovy
lsp-hack lsp-go lsp-completion lsp-gdscript lsp-fsharp lsp-fortran
lsp-eslint lsp-erlang lsp-elixir lsp-elm lsp-dockerfile lsp-dhall lsp-d
lsp-css lsp-csharp lsp-crystal lsp-cmake lsp-clojure lsp-clangd lsp-bash
lsp-angular lsp-ada lsp-actionscript lsp-mode lsp-protocol spinner
smartparens-markdown markdown-mode lv inline imenu f s
smartparens-python python sh-script smie executable qp sort gnus-alias
footnote mail-extr shr-color shr recentf tree-widget helm-x-files
helm-for-files helm-bookmark helm-adaptive bookmark pp windmove ripgrep
perl-mode rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc
rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns
nxml-mode nxml-outln nxml-rap smartparens-html sgml-mode nxml-util
nxml-enc xmltok conf-mode i3wm-config-mode editorconfig-core
editorconfig-core-handle editorconfig-fnmatch tramp-sh image-file
tramp-cache helm-external helm-net winner tramp-archive tramp-gvfs
zeroconf helm-command helm-elisp helm-eval edebug backtrace helm-info
misearch multi-isearch view emojify apropos tar-mode arc-mode
archive-mode ht mule-util gnutls network-stream nsm warnings slack
slack-company slack-unread slack-websocket slack-thread-event
slack-room-event slack-star-event slack-reaction-event slack-reply-event
slack-typing slack-slash-commands slack-message-event slack-event
slack-dialog-edit-element-buffer slack-dialog-buffer slack-dialog
slack-stars-buffer slack-search-result-buffer
slack-thread-message-compose-buffer slack-file-list-buffer
slack-file-info-buffer slack-all-threads-buffer slack-message-buffer
slack-user-profile-buffer slack-pinned-items-buffer slack-pinned-item
slack-thread-message-buffer slack-room-info-buffer slack-room-buffer
slack-message-share-buffer slack-message-edit-buffer
slack-room-message-compose-buffer slack-message-compose-buffer
slack-message-attachment-preview-buffer slack-action slack-star
slack-reminder slack-search slack-message-reaction slack-message-editor
slack-message-sender slack-message-notification alert log4e gntp
slack-buffer slack-message-formatter slack-thread slack-im slack-channel
slack-group slack-conversations slack-create-message slack-attachment
slack-selectable slack-bot-message slack-user-message slack-file
slack-message slack-message-faces slack-unescape slack-block
slack-mrkdwn slack-usergroup slack-reaction slack-modeline slack-room
slack-counts slack-user slack-bot slack-dnd-status slack-emoji
slack-image slack-request slack-log request lui tracking shorten
slack-team slack-team-ws slack-util websocket telega-obsolete telega
telega-tdlib-events telega-webpage visual-fill-column telega-root
telega-info telega-chat telega-modes image-mode exif telega-company
telega-user telega-notifications notifications dbus telega-voip
telega-msg telega-tme telega-sticker telega-i18n telega-vvnote bindat
telega-ffplay telega-media telega-sort telega-filter telega-ins
telega-folders telega-inline telega-tdlib telega-util
rainbow-identifiers org-agenda org-refile smartparens-org org ob
ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src
ob-comint org-pcomplete org-list org-faces org-entities noutline outline
org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys
org-compat org-macs org-loaddefs svg dom telega-server telega-core
cursor-sensor telega-customize emacsbug sendmail server notmuch hl-line
notmuch-tree notmuch-jump notmuch-hello notmuch-show notmuch-print
notmuch-crypto notmuch-mua notmuch-message notmuch-draft
notmuch-maildir-fcc notmuch-address notmuch-company notmuch-parser
notmuch-wash coolj notmuch-query goto-addr icalendar diary-lib
diary-loaddefs cal-menu calendar cal-loaddefs notmuch-tag crm
notmuch-lib notmuch-version notmuch-compat message rmc puny rfc822 mml
mailabbrev gmm-utils mailheader mm-view mml-smime mml-sec epa derived
epg epg-config gnus-util rmail rmail-loaddefs mail-utils
text-property-search smime dig mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr company-oddmuse
company-keywords company-etags company-gtags company-dabbrev-code
company-dabbrev company-files company-clang company-capf company-cmake
company-semantic company-template company-bbdb flyspell ispell
highlight-indent-guides heaven-and-hell which-key init zoom
shell-command+ eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg
esh-module esh-groups esh-util wgrep flycheck-ledger editorconfig crux
rfc-mode company-graphviz-dot graphviz-dot-mode avy company-web
company-css web-completion-data powerline powerline-separators
powerline-themes cap-words superword subword engine-mode go-projectile
autorevert vc-git go-rename go-guru go-eldoc go-mode url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
mailcap find-file ffap etags fileloop generator xref project
modern-cpp-font-lock git-link url-util dired dired-loaddefs diff-hl
log-view pcvs-util vc-dir ewoc vc vc-dispatcher diff-mode
display-line-numbers smartparens-config smartparens-text smartparens
paren yasnippet-snippets yasnippet projectile grep compile ibuf-ext
ibuffer ibuffer-loaddefs thingatpt flycheck-color-mode-line face-remap
flycheck find-func dash company-statistics company pcase cus-edit
cus-start cus-load wid-edit helm-mode helm-files filenotify tramp
tramp-loaddefs trampver tramp-integration files-x tramp-compat shell
pcomplete comint ansi-color ring parse-time iso8601 time-date ls-lisp
helm-buffers helm-occur helm-tags helm-locate helm-grep helm-regexp
format-spec helm-utils helm-help helm-types helm async-bytecomp advice
helm-global-bindings helm-easymenu helm-source helm-multi-match helm-lib
async helm-config solarized-theme auth-source-pass
solarized-light-high-contrast-theme solarized-palettes solarized
solarized-faces color diminish cl-extra help-mode use-package
use-package-ensure use-package-delight use-package-diminish
use-package-bind-key bind-key easy-mmode use-package-core finder-inf
erlang-start clang-rename clang-include-fixer let-alist clang-format xml
tex-site rx edmacro kmacro info package easymenu browse-url url-handlers
url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache json subr-x map url-vars seq byte-opt gv bytecomp
byte-compile cconv 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 xwidget-internal cairo move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 1682829 568564)
 (symbols 48 67764 41)
 (strings 32 388434 107969)
 (string-bytes 1 12714393)
 (vectors 16 225420)
 (vector-slots 8 11251247 742094)
 (floats 8 7272 2983)
 (intervals 56 39684 17198)
 (buffers 1000 149))

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 877 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#48011: 27.2; Emacs freezes in modula 2 mode when entering a :
  2021-04-25  7:53 bug#48011: 27.2; Emacs freezes in modula 2 mode when entering a : Dan Čermák
@ 2021-04-25  8:58 ` Eli Zaretskii
  2021-04-25 10:37   ` Gregory Heytings
  2021-05-25 13:02 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  1 sibling, 1 reply; 9+ messages in thread
From: Eli Zaretskii @ 2021-04-25  8:58 UTC (permalink / raw)
  To: Dan Čermák; +Cc: 48011

> From: Dan Čermák <dan.cermak@cgc-instruments.com>
> Date: Sun, 25 Apr 2021 09:53:17 +0200
> 
> This is a forward of https://bugzilla.redhat.com/show_bug.cgi?id=1950158
> 
> Emacs 27.2 freezes when editing a file that ends with .mod (i.e. it
> opens the file in Modula 2 mode) after one enters a ':'. The UI simply
> hangs until one interrupts it with C-g.
> 
> This happens with emacs -Q as well as with the Emacs flatpak (thus I
> assume that it is not Fedora specific).

I cannot reproduce this using the recipe in the Bugzilla report,
neither in Emacs 27.2 nor in the current master branch.  I see no
hang.

If C-g interrupts the hang, please set debug-on-signal non-nil, repeat
the recipe, press C-g, and post the Lisp backtrace here.

Thanks.






^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#48011: 27.2; Emacs freezes in modula 2 mode when entering a :
  2021-04-25  8:58 ` Eli Zaretskii
@ 2021-04-25 10:37   ` Gregory Heytings
  2021-04-26 10:40     ` Dan Čermák
  2021-05-25  4:18     ` Lars Ingebrigtsen
  0 siblings, 2 replies; 9+ messages in thread
From: Gregory Heytings @ 2021-04-25 10:37 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Dan Čermák, 48011

[-- Attachment #1: Type: text/plain, Size: 869 bytes --]


>
> I cannot reproduce this using the recipe in the Bugzilla report, neither 
> in Emacs 27.2 nor in the current master branch.  I see no hang.
>

The recipe isn't precise enough:

emacs -Q foo.mod
set SPC PROD SPC : SPC

Emacs hangs after the second SPC.  This bug is an old one, Emacs 24 has 
the same problem.  In fact an ever shorter recipe also works:

emacs -Q foo.mod
: SPC

>
> If C-g interrupts the hang, please set debug-on-signal non-nil, repeat 
> the recipe, press C-g, and post the Lisp backtrace here.
>

You probably meant "debug-on-quit".  Here is the backtrace:

smie-default-backward-token()
m2-smie-refine-colon()
m2-smie-backward-token()
smie-blink-matching-open()
self-insert-command(1 32)
funcall-interactively(self-insert-command 1 32)
call-interactively(self-insert-command nil nil)
command-execute(self-insert-command)

And here is the patch.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-diff; name=Fix-infloop-in-Modula-2-mode.patch, Size: 1143 bytes --]

From 462ca0654d2aa2a2b6506f2e9a1a9ceb8e683cad Mon Sep 17 00:00:00 2001
From: Gregory Heytings <gregory@heytings.org>
Date: Sun, 25 Apr 2021 10:33:48 +0000
Subject: [PATCH] Fix infloop in Modula-2 mode

* lisp/progmodes/modula2.el (m2-smie-refine-colon): Stop looping when
point does not move with forward-sexp (Bug#48011)
---
 lisp/progmodes/modula2.el | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/lisp/progmodes/modula2.el b/lisp/progmodes/modula2.el
index 2a0374aa81..5756d91831 100644
--- a/lisp/progmodes/modula2.el
+++ b/lisp/progmodes/modula2.el
@@ -201,7 +201,10 @@ m2-smie-refine-colon
          ((zerop (length tok))
           (let ((forward-sexp-function nil))
             (condition-case nil
-                (forward-sexp -1)
+                (let ((p (point)))
+                  (forward-sexp -1)
+                  (if (= p (point))
+                      (setq res ":")))
               (scan-error (setq res ":")))))
          ((member tok '("|" "OF" "..")) (setq res ":-case"))
          ((member tok '(":" "END" ";" "BEGIN" "VAR" "RECORD" "PROCEDURE"))
-- 
2.30.2


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* bug#48011: 27.2; Emacs freezes in modula 2 mode when entering a :
  2021-04-25 10:37   ` Gregory Heytings
@ 2021-04-26 10:40     ` Dan Čermák
  2021-04-26 12:18       ` Eli Zaretskii
  2021-05-25  4:18     ` Lars Ingebrigtsen
  1 sibling, 1 reply; 9+ messages in thread
From: Dan Čermák @ 2021-04-26 10:40 UTC (permalink / raw)
  To: Gregory Heytings, Eli Zaretskii; +Cc: 48011

[-- Attachment #1: Type: text/plain, Size: 189 bytes --]

Gregory Heytings <gregory@heytings.org> writes:

> And here is the patch.

I can confirm that the patch solves the problem for me.

Can it be pushed to the Emacs repository?


Cheers,

Dan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 877 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#48011: 27.2; Emacs freezes in modula 2 mode when entering a :
  2021-04-26 10:40     ` Dan Čermák
@ 2021-04-26 12:18       ` Eli Zaretskii
  0 siblings, 0 replies; 9+ messages in thread
From: Eli Zaretskii @ 2021-04-26 12:18 UTC (permalink / raw)
  To: Dan Čermák; +Cc: 48011, gregory

> From: Dan Čermák <dan.cermak@cgc-instruments.com>
> Cc: 48011@debbugs.gnu.org
> Date: Mon, 26 Apr 2021 12:40:59 +0200
> 
> Gregory Heytings <gregory@heytings.org> writes:
> 
> > And here is the patch.
> 
> I can confirm that the patch solves the problem for me.
> 
> Can it be pushed to the Emacs repository?

We are waiting for Gregory's legal paperwork to come though, and will
install then.

Thanks for testing the patch.





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#48011: 27.2; Emacs freezes in modula 2 mode when entering a :
  2021-04-25 10:37   ` Gregory Heytings
  2021-04-26 10:40     ` Dan Čermák
@ 2021-05-25  4:18     ` Lars Ingebrigtsen
  1 sibling, 0 replies; 9+ messages in thread
From: Lars Ingebrigtsen @ 2021-05-25  4:18 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: Dan Čermák, 48011

Gregory Heytings <gregory@heytings.org> writes:

> And here is the patch.

Thanks; applied to Emacs 28.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#48011: 27.2; Emacs freezes in modula 2 mode when entering a :
  2021-04-25  7:53 bug#48011: 27.2; Emacs freezes in modula 2 mode when entering a : Dan Čermák
  2021-04-25  8:58 ` Eli Zaretskii
@ 2021-05-25 13:02 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2021-05-25 13:09   ` Gregory Heytings
  1 sibling, 1 reply; 9+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-05-25 13:02 UTC (permalink / raw)
  To: Dan Čermák; +Cc: 48011

> This is a forward of https://bugzilla.redhat.com/show_bug.cgi?id=1950158
> Emacs 27.2 freezes when editing a file that ends with .mod (i.e. it
> opens the file in Modula 2 mode) after one enters a ':'. The UI simply
> hangs until one interrupts it with C-g.

First, I was super happy to see a bug report about modula2.el's
indentation code (which I kind of presumed was never used).  But I'm
starting to think that the real problem here is that you actually didn't
open a Modula-2 file.

What kind of file was that `.mod` file?


        Stefan






^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#48011: 27.2; Emacs freezes in modula 2 mode when entering a :
  2021-05-25 13:02 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2021-05-25 13:09   ` Gregory Heytings
  2021-05-25 14:47     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 9+ messages in thread
From: Gregory Heytings @ 2021-05-25 13:09 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: Dan Čermák, 48011


>> This is a forward of 
>> https://bugzilla.redhat.com/show_bug.cgi?id=1950158 Emacs 27.2 freezes 
>> when editing a file that ends with .mod (i.e. it opens the file in 
>> Modula 2 mode) after one enters a ':'. The UI simply hangs until one 
>> interrupts it with C-g.
>
> First, I was super happy to see a bug report about modula2.el's 
> indentation code (which I kind of presumed was never used).
>

Alas, the original bug report says: "I'm not actually programming in 
Modula-2, but the product I'm using typically names files with the .mod 
suffix."

>
> But I'm starting to think that the real problem here is that you 
> actually didn't open a Modula-2 file.
>
> What kind of file was that `.mod` file?
>

Why is this important?  Even if the file is not actually a Modula-2 file, 
Emacs should not freeze when the user types ":": with emacs -Q foo.mod, 
type "a:", and Emacs freezes (until the user presses C-g).





^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#48011: 27.2; Emacs freezes in modula 2 mode when entering a :
  2021-05-25 13:09   ` Gregory Heytings
@ 2021-05-25 14:47     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 0 replies; 9+ messages in thread
From: Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2021-05-25 14:47 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: Dan Čermák, 48011

>> What kind of file was that `.mod` file?
> Why is this important?

Because maybe we should change the auto-mode-alist rule not to use
`modula2-mode` for `.mod` files.

> Even if the file is not actually a Modula-2 file,
> Emacs should not freeze when the user types ":":

No doubt.  And AFAIK this has now been fixed.

But even if `modula2-mode` doesn't freeze, using it for non-Modula-2
files is not necessarily a good idea ;-)


        Stefan






^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-05-25 14:47 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-25  7:53 bug#48011: 27.2; Emacs freezes in modula 2 mode when entering a : Dan Čermák
2021-04-25  8:58 ` Eli Zaretskii
2021-04-25 10:37   ` Gregory Heytings
2021-04-26 10:40     ` Dan Čermák
2021-04-26 12:18       ` Eli Zaretskii
2021-05-25  4:18     ` Lars Ingebrigtsen
2021-05-25 13:02 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-05-25 13:09   ` Gregory Heytings
2021-05-25 14:47     ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).