* bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment @ 2024-06-12 19:20 Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors [not found] ` <handler.71525.B.171822007123849.ack@debbugs.gnu.org> 2024-06-13 5:49 ` bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Eli Zaretskii 0 siblings, 2 replies; 19+ messages in thread From: Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-06-12 19:20 UTC (permalink / raw) To: 71525 [-- Attachment #1: Type: text/plain, Size: 18947 bytes --] After rebuilding today, enabling the eshell-tramp module and calling sudo is causing a `delete-region` subcall (presumably from within `tramp-wait-for-output`?) to spin within `interval_deletion_adjustment` (or it might be repeatedly calling it?). NOTE: this happens after authentication. To reproduce: 1. `emacs -Q` 2. `M-x eval-expression RET (require 'eshell) RET` 3. `M-x eval-expression RET (add-to-list 'eshell-modules-list 'eshell-tramp)`. 4. `M-x eshell` 5. `sudo /usr/bin/echo` 6. Authenticate, press enter, and watch Emacs lock up and go to 100% CPU usage. I've collected two backtraces: one with native compilation (with-native-comp.txt) and one after re-evaluating (with-eval.txt) the appropriate files (tramp-sh.el, tramp.el) to rule out compilation issues. See attached. In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, cairo version 1.18.0) of 2024-06-12 built on Laptop Repository revision: 6893c327e982528fdc93e3a956a4b6830a09ea3f Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12101013 System Description: Arch Linux Configured using: 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games --with-modules --without-m17n-flt --without-selinux --without-pop --without-gconf --enable-link-time-optimization --with-native-compilation=yes --with-xinput2 --with-x-toolkit=no --without-toolkit-scroll-bars --without-xft --without-xaw3d --without-gsettings --with-cairo-xcb --with-sound=no --with-tree-sitter --without-gpm --without-compress-install '--program-transform-name=s/\([ec]tags\)/\1.emacs/' 'CFLAGS=-march=native -mtune=native -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -flto=auto' 'LDFLAGS=-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,-z,pack-relative-relocs -Wl,-z,noexecstack -flto=auto'' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS HARFBUZZ JPEG LCMS2 LIBOTF LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY OLDXMENU PDUMPER PNG RSVG SECCOMP SQLITE3 THREADS TIFF TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM ZLIB Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: ELisp/l Minor modes in effect: notmuch-bookmarks-mode: t rainbow-mode: t rainbow-delimiters-mode: t ligature-mode: t windmove-mode: t global-atomic-chrome-edit-mode: t i3bar-mode: t ednc-mode: t exwm-xsettings-mode: t exwm-background-mode: t exwm-systemtray-mode: t exwm-randr-mode: t ws-butler-mode: t auto-compile-on-load-mode: t auto-compile-on-save-mode: t auto-compile-mode: t save-place-mode: t savehist-mode: t openwith-mode: t org-super-agenda-mode: t global-org-modern-mode: t goto-address-prog-mode: t eat-eshell-mode: t magit-todos-mode: t global-git-commit-mode: t dired-async-mode: t magit-auto-revert-mode: t server-mode: t recentf-mode: t global-treesit-auto-mode: t yas-global-mode: t yas-minor-mode: t async-bytecomp-package-mode: t sudo-edit-indicator-mode: t global-auto-revert-mode: t vertico-mode: t corfu-popupinfo-mode: t global-corfu-mode: t corfu-mode: t isearch-mb-mode: t pixel-scroll-precision-mode: t global-hl-todo-mode: t hl-todo-mode: t all-the-icons-completion-mode: t marginalia-mode: t global-page-break-lines-mode: t page-break-lines-mode: t global-anzu-mode: t anzu-mode: t global-jinx-mode: t evil-goggles-mode: t global-evil-surround-mode: t evil-surround-mode: t global-evil-collection-unimpaired-mode: t evil-collection-unimpaired-mode: t evil-mode: t evil-local-mode: t desktop-environment-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t prettify-symbols-mode: t tab-bar-history-mode: t tab-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t window-divider-mode: t minibuffer-regexp-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/notmuch hides /usr/share/emacs/site-lisp/notmuch /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/notmuch-wash hides /usr/share/emacs/site-lisp/notmuch-wash /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/notmuch-tree hides /usr/share/emacs/site-lisp/notmuch-tree /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/notmuch-tag hides /usr/share/emacs/site-lisp/notmuch-tag /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/notmuch-show hides /usr/share/emacs/site-lisp/notmuch-show /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/notmuch-query hides /usr/share/emacs/site-lisp/notmuch-query /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/notmuch-print hides /usr/share/emacs/site-lisp/notmuch-print /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/notmuch-parser hides /usr/share/emacs/site-lisp/notmuch-parser /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/notmuch-mua hides /usr/share/emacs/site-lisp/notmuch-mua /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/notmuch-message hides /usr/share/emacs/site-lisp/notmuch-message /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/notmuch-maildir-fcc hides /usr/share/emacs/site-lisp/notmuch-maildir-fcc /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/notmuch-lib hides /usr/share/emacs/site-lisp/notmuch-lib /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/notmuch-jump hides /usr/share/emacs/site-lisp/notmuch-jump /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/notmuch-hello hides /usr/share/emacs/site-lisp/notmuch-hello /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/notmuch-draft hides /usr/share/emacs/site-lisp/notmuch-draft /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/notmuch-crypto hides /usr/share/emacs/site-lisp/notmuch-crypto /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/notmuch-compat hides /usr/share/emacs/site-lisp/notmuch-compat /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/notmuch-company hides /usr/share/emacs/site-lisp/notmuch-company /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/notmuch-address hides /usr/share/emacs/site-lisp/notmuch-address /home/steb/.cache/emacs/elpa/notmuch-20240529.1054/coolj hides /usr/share/emacs/site-lisp/coolj /home/steb/.cache/emacs/elpa/protobuf-mode-20240222.1652/protobuf-mode hides /usr/share/emacs/site-lisp/protobuf-mode /home/steb/.cache/emacs/elpa/transient-20240609.2020/transient hides /usr/share/emacs/30.0.50/lisp/transient /home/steb/.cache/emacs/elpa/modus-themes-20240227.715/theme-loaddefs hides /usr/share/emacs/30.0.50/lisp/theme-loaddefs Features: (shadow sort mail-extr semantic/symref/grep semantic/symref semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw cedet emacsbug consult-xref flymake-cc vc evil-collection-eglot eglot external-completion jsonrpc evil-collection-ert ert ewoc evil-collection-flymake flymake cc-mode cc-fonts cc-guess cc-menus cc-cmds tramp-rclone evil-collection-vterm vterm vterm-module term/xterm xterm eshell-syntax-highlighting em-elecslash em-tramp em-extpipe em-glob em-basic em-alias tramp-cmds tramp-cache time-stamp tramp-sshfs tramp-fuse evil-collection-vc-git vc-git vc-dispatcher evil-collection-consult consult magit-bookmark org-bookmark-heading notmuch-bookmarks evil-collection-bookmark bookmark buffer-move info-colors ffap misearch multi-isearch rainbow-mode rainbow-delimiters ligature mule-util evil-collection-helpful helpful cc-langs trace cl-print evil-collection-edebug edebug evil-collection-debug debug backtrace info-look help-fns radix-tree evil-collection-elisp-refs elisp-refs vertico-repeat app-launcher windmove pinentry evil-collection-atomic-chrome atomic-chrome websocket bindat i3bar ednc filechooser dbus exwm-xsettings xcb-xsettings exwm-background exwm-systemtray xcb-systemtray xcb-xembed exwm-randr xcb-randr exwm exwm-input xcb-keysyms xcb-xkb exwm-manage exwm-floating xcb-cursor xcb-render exwm-layout exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xproto xcb-types xcb-debug cus-start posframe visual-wrap face-remap visual-fill-column evil-org ws-butler oc-basic bibtex ol-man ol-info ol-docview evil-collection-doc-view doc-view jka-compr evil-collection-image image-mode exif auto-compile saveplace tramp-sh savehist openwith org-super-agenda ts ht org-habit org-crypt org-protocol ob-http ob-http-mode org-modern ob-dot ob-latex ob-python evil-collection-python python ob-gnuplot ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar evil-org-agenda org-agenda ox-html table ox-ascii ox-publish ox org-element org-persist org-id org-refile org-element-ast inline avl-tree ob-calc calc-store calc-trail calc-ext evil-collection-calc calc calc-loaddefs calc-macs ob-shell evil-collection-org org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro evil-collection-xref xref org-src evil-collection-sh-script sh-script smie executable ob-comint org-pcomplete org-list org-footnote org-faces org-entities ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs org-compat org-version org-macs evil-collection-notmuch notmuch 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 goto-addr icalendar diary-lib diary-loaddefs evil-collection-calendar cal-menu calendar cal-loaddefs notmuch-tag notmuch-lib notmuch-compat mm-view mml-smime smime dig eshell-prompt-extras em-dirs em-ls em-prompt em-hist em-unix em-pred esh-mode esh-var evil-collection-eat eat evil-collection-term term disp-table ehelp eshell esh-cmd generator esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-module-loaddefs esh-util evil-collection-forge forge-repos forge-topics forge-tablist hl-line forge-commands forge-semi forge-bitbucket buck forge-gogs gogs forge-gitea gtea forge-gitlab glab forge-github ghub-graphql treepy gsexp ghub url-http url-gw nsm url-auth let-alist gnutls forge-notify forge-revnote forge-pullreq forge-issue forge-topic yaml bug-reference forge-post evil-collection-markdown-mode markdown-mode edit-indirect evil-collection-outline noutline outline forge-repo forge forge-core forge-db closql emacsql-sqlite-common emacsql emacsql-compiler eieio-base evil-collection-magit-todos magit-todos pcre2el rxt re-builder f s evil-collection-grep grep evil-collection-compile compile evil-collection-magit magit-submodule 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 evil-collection-magit-repos magit-repos magit-apply magit-wip magit-log which-func evil-collection-imenu imenu magit-diff smerge-mode diff diff-mode track-changes easy-mmode git-commit evil-collection-log-edit log-edit message sendmail yank-media puny dired-async dired-aux evil-collection-dired dired dired-loaddefs rfc822 mml mml-sec evil-collection-epa epa derived epg rfc6068 epg-config gnus-util text-property-search mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log magit-core magit-autorevert magit-margin magit-transient magit-process with-editor server magit-mode transient magit-git magit-base evil-collection-magit-section magit-section cursor-sensor crm recentf tree-widget treesit-auto yasnippet async-bytecomp async sudo-edit tramp trampver tramp-integration files-x tramp-message tramp-compat shell pcomplete evil-collection-comint comint ansi-osc parse-time iso8601 time-date format-spec ansi-color tramp-loaddefs autorevert filenotify project vertico corfu-popupinfo evil-collection-corfu corfu orderless isearch-mb pixel-scroll cua-base hl-todo all-the-icons-completion all-the-icons all-the-icons-faces all-the-icons-data-material-icons all-the-icons-data-fluentui-system-icons all-the-icons-data-fontawesome-4 all-the-icons-data-weather-icons all-the-icons-data-vscode-codicons all-the-icons-data-octicons all-the-icons-data-mfixx all-the-icons-data-file-icons all-the-icons-data-devopicons all-the-icons-data-alltheicons svg dom xml marginalia page-break-lines anzu modus-vivendi-theme modus-themes jinx evil-goggles pulse color evil-textobj-tree-sitter evil-textobj-tree-sitter-thing-at-point evil-textobj-tree-sitter-core treesit evil-args evil-surround evil-collection-unimpaired evil-collection-tabulated-list evil-collection-tab-bar evil-collection-simple evil-collection-replace evil-collection-process-menu evil-collection-package-menu evil-collection-kmacro evil-collection-info evil-collection-indent evil-collection-help evil-collection-elisp-mode evil-collection-eldoc evil-collection-custom evil-collection-buff-menu evil-collection annalist evil evil-integration evil-maps evil-commands evil-digraphs pcase reveal evil-jumps evil-command-window evil-types evil-search evil-ex evil-macros evil-repeat evil-states evil-core comp-run advice evil-common thingatpt rect evil-vars ring edmacro kmacro general dash mode-local find-func no-littering compat finder-inf notmuch-version info all-the-icons-completion-autoloads all-the-icons-dired-autoloads all-the-icons-ibuffer-autoloads all-the-icons-autoloads app-launcher-autoloads aria2-autoloads atomic-chrome-autoloads auto-compile-autoloads bash-completion-autoloads bluetooth-autoloads buffer-move-autoloads calibre-autoloads cape-autoloads casual-autoloads casual-dired-autoloads casual-info-autoloads clojure-mode-autoloads consult-eglot-autoloads consult-project-extra-autoloads consult-autoloads corfu-autoloads coverage-autoloads csv-mode-autoloads dape-autoloads devdocs-autoloads dired-filter-autoloads dired-hacks-utils-autoloads dired-k-autoloads discomfort-autoloads debase-autoloads disk-usage-autoloads eat-autoloads edit-indirect-autoloads ednc-autoloads eff-autoloads ellama-autoloads ement-autoloads eshell-prompt-extras-autoloads eshell-syntax-highlighting-autoloads eshell-vterm-autoloads evil-anzu-autoloads anzu-autoloads evil-args-autoloads evil-collection-autoloads annalist-autoloads evil-goggles-autoloads evil-nerd-commenter-autoloads evil-org-autoloads evil-surround-autoloads evil-autoloads evil-textobj-tree-sitter-autoloads evm-mode-autoloads expand-region-autoloads exwm-autoloads filechooser-autoloads flymake-ruff-autoloads general-autoloads git-link-autoloads git-modes-autoloads gnuplot-autoloads goto-chg-autoloads graphviz-dot-mode-autoloads helpful-autoloads elisp-refs-autoloads htmlize-autoloads i3bar-autoloads igist-autoloads info-colors-autoloads isearch-mb-autoloads iwindow-autoloads jinx-autoloads journalctl-autoloads kotlin-mode-autoloads ligature-autoloads link-hint-autoloads avy-autoloads llm-autoloads magit-todos-autoloads hl-todo-autoloads f-autoloads marginalia-autoloads mastodon-autoloads microdata-autoloads modus-themes-autoloads named-pipe-autoloads nftables-mode-autoloads no-littering-autoloads notmuch-transient-autoloads nov-autoloads esxml-autoloads kv-autoloads ob-async-autoloads ob-http-autoloads ol-notmuch-autoloads notmuch-autoloads openwith-autoloads orderless-autoloads org-bookmark-heading-autoloads org-download-autoloads async-autoloads org-margin-autoloads org-modern-autoloads org-super-agenda-autoloads orgit-forge-autoloads orgit-autoloads forge-autoloads markdown-mode-autoloads magit-autoloads git-commit-autoloads ghub-autoloads closql-autoloads emacsql-autoloads ox-pandoc-autoloads ht-autoloads package-lint-flymake-autoloads package-lint-autoloads page-break-lines-autoloads password-store-autoloads pcre2el-autoloads pdf-tools-autoloads persist-autoloads pinentry-autoloads pkgbuild-mode-autoloads playerctl-autoloads plz-autoloads posframe-autoloads proced-narrow-autoloads protobuf-mode-autoloads pulseaudio-control-autoloads qrencode-autoloads rainbow-delimiters-autoloads rainbow-mode-autoloads request-autoloads rg-autoloads rmsbolt-autoloads rust-playground-autoloads solidity-mode-autoloads spinner-autoloads ssh-config-mode-autoloads sudo-edit-autoloads svg-lib-autoloads systemctl-autoloads systemd-autoloads tablist-autoloads taxy-magit-section-autoloads taxy-autoloads magit-section-autoloads tmr-autoloads transient-autoloads treepy-autoloads treesit-auto-autoloads ts-autoloads s-autoloads dash-autoloads tzc-autoloads udev-mode-autoloads vala-mode-autoloads cc-styles cc-align cc-engine cc-vars cc-defs vertico-autoloads vimrc-mode-autoloads visual-fill-column-autoloads vterm-autoloads vundo-autoloads wat-ts-mode-autoloads watch-autoloads web-mode-autoloads websocket-autoloads wgrep-autoloads whisper-autoloads with-editor-autoloads wordnut-autoloads ws-butler-autoloads xelb-autoloads yaml-autoloads yasnippet-autoloads comp comp-cstr cl-extra help-mode comp-common warnings rx xdg package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cus-edit pp cus-load icons wid-edit cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine 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 emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting font-render-setting cairo xinput2 x multi-tty move-toolbar make-network-process native-compile emacs) Memory information: ((conses 16 1393955 1049946) (symbols 48 74675 2) (strings 32 379763 68125) (string-bytes 1 12693577) (vectors 16 139684) (vector-slots 8 1625666 443250) (floats 8 715 7279) (intervals 56 21960 9365) (buffers 992 46)) [-- Attachment #2: with-eval.txt --] [-- Type: text/plain, Size: 12820 bytes --] #0 0x000059ee4b16dd06 in interval_deletion_adjustment () #1 0x000059ee4b1718ab in offset_intervals () #2 0x000059ee4b08a4ae in del_range_2 () #3 0x000059ee4b08b922 in del_range_1 () #4 0x000059ee4b0e43ec in Fdelete_region () #5 0x000059ee4b0f1730 in eval_sub () #6 0x000059ee4b0f2650 in Flet () #7 0x000059ee4b0f15ae in eval_sub () #8 0x000059ee4b0dc0c0 in Fsave_current_buffer () #9 0x000059ee4b0f15ae in eval_sub () #10 0x000059ee4b0f2200 in FletX () #11 0x000059ee4b0f15ae in eval_sub () #12 0x000059ee4b0f3290 in funcall_lambda () #13 0x000059ee4b0f7489 in apply_lambda () #14 0x000059ee4b0f0f79 in eval_sub () #15 0x000059ee4b0f2650 in Flet () #16 0x000059ee4b0f15ae in eval_sub () #17 0x000059ee4b0f3290 in funcall_lambda () #18 0x000059ee4b0f7489 in apply_lambda () #19 0x000059ee4b0f0f79 in eval_sub () #20 0x000059ee4b0f2650 in Flet () #21 0x000059ee4b0f15ae in eval_sub () #22 0x000059ee4b0f1b76 in Fprog1 () #23 0x000059ee4b0f15ae in eval_sub () #24 0x000059ee4b0f29eb in Funwind_protect () #25 0x000059ee4b0f15ae in eval_sub () #26 0x000059ee4b0f2650 in Flet () #27 0x000059ee4b0f15ae in eval_sub () #28 0x000059ee4b0f1a20 in Fif () #29 0x000059ee4b0f15ae in eval_sub () #30 0x000059ee4b0f3290 in funcall_lambda () #31 0x000059ee4b0f7489 in apply_lambda () #32 0x000059ee4b0f0f79 in eval_sub () #33 0x000059ee4b0f2650 in Flet () #34 0x000059ee4b0f15ae in eval_sub () #35 0x000059ee4b0f3290 in funcall_lambda () #36 0x000059ee4b0f7489 in apply_lambda () #37 0x000059ee4b0f0f79 in eval_sub () #38 0x000059ee4b0f2650 in Flet () #39 0x000059ee4b0f15ae in eval_sub () #40 0x000059ee4b0f1b76 in Fprog1 () #41 0x000059ee4b0f15ae in eval_sub () #42 0x000059ee4b0f29eb in Funwind_protect () #43 0x000059ee4b0f15ae in eval_sub () #44 0x000059ee4b0f2650 in Flet () #45 0x000059ee4b0f15ae in eval_sub () #46 0x000059ee4b0f1a20 in Fif () #47 0x000059ee4b0f15ae in eval_sub () #48 0x000059ee4b0f2200 in FletX () #49 0x000059ee4b0f15ae in eval_sub () #50 0x000059ee4b0f1970 in Fprogn () #51 0x000059ee4b0eef7a in internal_catch () #52 0x000059ee4b0f15ae in eval_sub () #53 0x000059ee4b0f1a20 in Fif () #54 0x000059ee4b0f15ae in eval_sub () #55 0x000059ee4b0f2de9 in internal_lisp_condition_case () #56 0x000059ee4b0f15ae in eval_sub () #57 0x000059ee4b0f2650 in Flet () #58 0x000059ee4b0f15ae in eval_sub () #59 0x000059ee4b0f1a20 in Fif () #60 0x000059ee4b0f15ae in eval_sub () #61 0x000059ee4b0f3290 in funcall_lambda () #62 0x000059ee4b0f7489 in apply_lambda () #63 0x000059ee4b0f0f79 in eval_sub () #64 0x000059ee4b0f1a20 in Fif () #65 0x000059ee4b0f15ae in eval_sub () #66 0x000059ee4b0f3290 in funcall_lambda () #67 0x000059ee4b0f7489 in apply_lambda () #68 0x000059ee4b0f0f79 in eval_sub () #69 0x000059ee4b0f2650 in Flet () #70 0x000059ee4b0f15ae in eval_sub () #71 0x000059ee4b0f3290 in funcall_lambda () #72 0x000059ee4b0f7489 in apply_lambda () #73 0x000059ee4b0f0f79 in eval_sub () #74 0x000059ee4b0f1900 in For () #75 0x000059ee4b0f15ae in eval_sub () #76 0x000059ee4b0f3290 in funcall_lambda () #77 0x000059ee4b0f7489 in apply_lambda () #78 0x000059ee4b0f0f79 in eval_sub () #79 0x000059ee4b0f1a20 in Fif () #80 0x000059ee4b0f15ae in eval_sub () #81 0x000059ee4b0f19a5 in Fif () #82 0x000059ee4b0f15ae in eval_sub () #83 0x000059ee4b0f3290 in funcall_lambda () #84 0x000059ee4b0f7489 in apply_lambda () #85 0x000059ee4b0f0f79 in eval_sub () #86 0x000059ee4b0f274e in Flet () #87 0x000059ee4b0f15ae in eval_sub () #88 0x000059ee4b0f1970 in Fprogn () #89 0x000059ee4b0eef7a in internal_catch () #90 0x000059ee4b0f15ae in eval_sub () #91 0x000059ee4b0f2650 in Flet () #92 0x000059ee4b0f15ae in eval_sub () #93 0x000059ee4b0e6020 in Fsave_restriction () #94 0x000059ee4b0f15ae in eval_sub () #95 0x000059ee4b0dc4c0 in Fsave_excursion () #96 0x000059ee4b0f15ae in eval_sub () #97 0x000059ee4b0f29eb in Funwind_protect () #98 0x000059ee4b0f15ae in eval_sub () #99 0x000059ee4b0dc0c0 in Fsave_current_buffer () #100 0x000059ee4b0f15ae in eval_sub () #101 0x000059ee4b0f1970 in Fprogn () #102 0x000059ee4b0f15ae in eval_sub () #103 0x000059ee4b0f29eb in Funwind_protect () #104 0x000059ee4b0f15ae in eval_sub () #105 0x000059ee4b0f2200 in FletX () #106 0x000059ee4b0f15ae in eval_sub () #107 0x000059ee4b0f2200 in FletX () #108 0x000059ee4b0f15ae in eval_sub () #109 0x000059ee4b0f2650 in Flet () #110 0x000059ee4b0f15ae in eval_sub () #111 0x000059ee4b0f2650 in Flet () #112 0x000059ee4b0f15ae in eval_sub () #113 0x000059ee4b0f2200 in FletX () #114 0x000059ee4b0f15ae in eval_sub () #115 0x000059ee4b0f1970 in Fprogn () #116 0x000059ee4b0f15ae in eval_sub () #117 0x000059ee4b0f15ae in eval_sub () #118 0x000059ee4b0f1a20 in Fif () #119 0x000059ee4b0f15ae in eval_sub () #120 0x000059ee4b0f3290 in funcall_lambda () #121 0x000059ee4b0f3aca in Ffuncall () #122 0x000059ee4b0f4be0 in Fapply () #123 0x000059ee4b0f17e3 in eval_sub () #124 0x000059ee4b0f1970 in Fprogn () #125 0x000059ee4b0f15ae in eval_sub () #126 0x000059ee4b0f29eb in Funwind_protect () #127 0x000059ee4b0f15ae in eval_sub () #128 0x000059ee4b0f2650 in Flet () #129 0x000059ee4b0f15ae in eval_sub () #130 0x000059ee4b0f1b76 in Fprog1 () #131 0x000059ee4b0f15ae in eval_sub () #132 0x000059ee4b0f15ae in eval_sub () #133 0x000059ee4b0f2200 in FletX () #134 0x000059ee4b0f15ae in eval_sub () #135 0x000059ee4b0f3290 in funcall_lambda () #136 0x000059ee4b0f3aca in Ffuncall () #137 0x000059ee4b0f4be0 in Fapply () #138 0x000059ee4b0f17e3 in eval_sub () #139 0x000059ee4b0f1970 in Fprogn () #140 0x000059ee4b0eef7a in internal_catch () #141 0x000059ee4b0f15ae in eval_sub () #142 0x000059ee4b0f1970 in Fprogn () #143 0x000059ee4b0eef7a in internal_catch () #144 0x000059ee4b0f15ae in eval_sub () #145 0x000059ee4b0f1c5b in Fsetq () #146 0x000059ee4b0f15ae in eval_sub () #147 0x000059ee4b0f1a20 in Fif () #148 0x000059ee4b0f15ae in eval_sub () #149 0x000059ee4b0f2650 in Flet () #150 0x000059ee4b0f15ae in eval_sub () #151 0x000059ee4b0f15ae in eval_sub () #152 0x000059ee4b0f29eb in Funwind_protect () #153 0x000059ee4b0f15ae in eval_sub () #154 0x000059ee4b0f2650 in Flet () #155 0x000059ee4b0f15ae in eval_sub () #156 0x000059ee4b0f2200 in FletX () #157 0x000059ee4b0f15ae in eval_sub () #158 0x000059ee4b0f1970 in Fprogn () #159 0x000059ee4b0f15ae in eval_sub () #160 0x000059ee4b0f29eb in Funwind_protect () #161 0x000059ee4b0f15ae in eval_sub () #162 0x000059ee4b0f2650 in Flet () #163 0x000059ee4b0f15ae in eval_sub () #164 0x000059ee4b0f15ae in eval_sub () #165 0x000059ee4b0f2650 in Flet () #166 0x000059ee4b0f15ae in eval_sub () #167 0x000059ee4b0f3290 in funcall_lambda () #168 0x000059ee4b0f3aca in Ffuncall () #169 0x000059ee4b0f4be0 in Fapply () #170 0x000059ee4b155efa in Fmake_process () #171 0x00007021d12a2dd3 in F657368656c6c2d6761746865722d70726f636573732d6f7574707574_eshell_gather_process_output_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-proc-276ac638-b9009414.eln #172 0x000059ee4b0f3aca in Ffuncall () #173 0x00007021d123ea1d in F657368656c6c2d636f6e6e656374696f6e2d6c6f63616c2d636f6d6d616e64_eshell_connection_local_command_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-ext-9adf61a7-391dc0d5.eln #174 0x000059ee4b0f3aca in Ffuncall () #175 0x00007021d123eca0 in F657368656c6c2d65787465726e616c2d636f6d6d616e64_eshell_external_command_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-ext-9adf61a7-391dc0d5.eln #176 0x000059ee4b0f3aca in Ffuncall () #177 0x00007021d125bf16 in F657368656c6c2d706c61696e2d636f6d6d616e64_eshell_plain_command_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #178 0x000059ee4b0f3aca in Ffuncall () #179 0x00007021d125b96d in F657368656c6c2d6e616d65642d636f6d6d616e64_eshell_named_command_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #180 0x000059ee4b0f1730 in eval_sub () #181 0x000059ee4b0f3073 in Feval () #182 0x000059ee4b0f3aca in Ffuncall () #183 0x00007021d125acdc in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #184 0x000059ee4b14a039 in exec_byte_code () #185 0x000059ee4b0f3aca in Ffuncall () #186 0x000059ee4b0f17e3 in eval_sub () #187 0x000059ee4b0f2650 in Flet () #188 0x000059ee4b0f15ae in eval_sub () #189 0x000059ee4b0f3073 in Feval () #190 0x000059ee4b0f3aca in Ffuncall () #191 0x00007021d125939c in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #192 0x000059ee4b0f3aca in Ffuncall () #193 0x00007021d125ac92 in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #194 0x000059ee4b0f3aca in Ffuncall () #195 0x00007021d125a155 in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #196 0x000059ee4b14a039 in exec_byte_code () #197 0x000059ee4b0f3aca in Ffuncall () #198 0x000059ee4b0f17e3 in eval_sub () #199 0x000059ee4b0f2650 in Flet () #200 0x000059ee4b0f15ae in eval_sub () #201 0x000059ee4b0f3073 in Feval () #202 0x000059ee4b0f3aca in Ffuncall () #203 0x00007021d125939c in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #204 0x000059ee4b0f1730 in eval_sub () #205 0x000059ee4b0f2de9 in internal_lisp_condition_case () #206 0x000059ee4b0f15ae in eval_sub () #207 0x000059ee4b0f3073 in Feval () #208 0x000059ee4b0f3aca in Ffuncall () #209 0x00007021d1258650 in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #210 0x000059ee4b0f3aca in Ffuncall () #211 0x00007021d12583bf in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #212 0x000059ee4b14a039 in exec_byte_code () #213 0x000059ee4b0f3aca in Ffuncall () #214 0x000059ee4b0f17e3 in eval_sub () #215 0x000059ee4b0f2650 in Flet () #216 0x000059ee4b0f15ae in eval_sub () #217 0x000059ee4b0f3073 in Feval () #218 0x000059ee4b0f3aca in Ffuncall () #219 0x00007021d125939c in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #220 0x000059ee4b0f3aca in Ffuncall () #221 0x00007021d125a9b1 in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #222 0x000059ee4b0f3aca in Ffuncall () #223 0x00007021d125a155 in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #224 0x000059ee4b0f3aca in Ffuncall () #225 0x00007021d125a9b1 in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #226 0x000059ee4b14a039 in exec_byte_code () #227 0x000059ee4b0f3aca in Ffuncall () #228 0x000059ee4b0f17e3 in eval_sub () #229 0x000059ee4b0f2650 in Flet () #230 0x000059ee4b0f15ae in eval_sub () #231 0x000059ee4b0f3073 in Feval () #232 0x000059ee4b0f3aca in Ffuncall () #233 0x00007021d125939c in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #234 0x000059ee4b0f3aca in Ffuncall () #235 0x00007021d1256027 in F657368656c6c2d726573756d652d6576616c_eshell_resume_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #236 0x000059ee4b0f3aca in Ffuncall () #237 0x00007021d12557b5 in F657368656c6c2d6576616c2d636f6d6d616e64_eshell_eval_command_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #238 0x000059ee4b0f3aca in Ffuncall () #239 0x00007021d117ef81 in F657368656c6c2d73656e642d696e707574_eshell_send_input_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-mode-29140b27-601e69ac.eln #240 0x000059ee4b0f3aca in Ffuncall () #241 0x000059ee4b0e5a22 in Ffuncall_interactively () #242 0x000059ee4b0f3aca in Ffuncall () #243 0x000059ee4b0f69e3 in Fcall_interactively () #244 0x00007021d30ba8a5 in F636f6d6d616e642d65786563757465_command_execute_0 () at /usr/bin/../lib/emacs/30.0.50/native-lisp/30.0.50-227e13ca/preloaded/simple-fab5b0cf-c39c6ea4.eln #245 0x000059ee4b0f3aca in Ffuncall () #246 0x000059ee4b0560c1 in command_loop_1.lto_priv () #247 0x000059ee4b0ef037 in internal_condition_case () #248 0x000059ee4b053eae in command_loop_2 () #249 0x000059ee4b0eef7a in internal_catch () #250 0x000059ee4b055c03 in command_loop.lto_priv () #251 0x000059ee4b1d71eb in recursive_edit_1.isra () #252 0x000059ee4b057980 in Frecursive_edit () #253 0x000059ee4af251ea in main () [-- Attachment #3: with-native-comp.txt --] [-- Type: text/plain, Size: 8917 bytes --] #0 0x00005e3281ce5ce7 in interval_deletion_adjustment () #1 0x00005e3281ce98ab in offset_intervals () #2 0x00005e3281c024ae in del_range_2 () #3 0x00005e3281c03922 in del_range_1 () #4 0x00005e3281cc2ac5 in exec_byte_code () #5 0x00005e3281c6baca in Ffuncall () #6 0x00007b975f9204b8 in F7472616d702d73656e642d636f6d6d616e64_tramp_send_command_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/tramp-sh-c6a0d036-f0745ec2.eln #7 0x00005e3281c6baca in Ffuncall () #8 0x00007b975f90efca in F7472616d702d6f70656e2d7368656c6c_tramp_open_shell_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/tramp-sh-c6a0d036-f0745ec2.eln #9 0x00005e3281c6baca in Ffuncall () #10 0x00007b975f9100e3 in F7472616d702d6f70656e2d636f6e6e656374696f6e2d73657475702d696e7465726163746976652d7368656c6c_tramp_open_connection_setup_interactive_shell_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/tramp-sh-c6a0d036-f0745ec2.eln #11 0x00005e3281c6baca in Ffuncall () #12 0x00007b975f91f63d in F7472616d702d6d617962652d6f70656e2d636f6e6e656374696f6e_tramp_maybe_open_connection_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/tramp-sh-c6a0d036-f0745ec2.eln #13 0x00005e3281c6baca in Ffuncall () #14 0x00007b975f920585 in F7472616d702d73656e642d636f6d6d616e64_tramp_send_command_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/tramp-sh-c6a0d036-f0745ec2.eln #15 0x00005e3281c6baca in Ffuncall () #16 0x00007b975f921239 in F7472616d702d73656e642d636f6d6d616e642d616e642d636865636b_tramp_send_command_and_check_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/tramp-sh-c6a0d036-f0745ec2.eln #17 0x00005e3281c6baca in Ffuncall () #18 0x00007b975f9217e0 in F7472616d702d626172662d756e6c6573732d6f6b6179_tramp_barf_unless_okay_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/tramp-sh-c6a0d036-f0745ec2.eln #19 0x00005e3281c6baca in Ffuncall () #20 0x00007b975f922006 in F7472616d702d73656e642d636f6d6d616e642d616e642d72656164_tramp_send_command_and_read_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/tramp-sh-c6a0d036-f0745ec2.eln #21 0x00005e3281c6baca in Ffuncall () #22 0x00007b975f8f4f7e in F7472616d702d73682d68616e646c652d6d616b652d70726f63657373_tramp_sh_handle_make_process_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/tramp-sh-c6a0d036-f0745ec2.eln #23 0x00005e3281c6baca in Ffuncall () #24 0x00005e3281c6cbe0 in Fapply () #25 0x00007b975f90720a in F7472616d702d73682d66696c652d6e616d652d68616e646c6572_tramp_sh_file_name_handler_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/tramp-sh-c6a0d036-f0745ec2.eln #26 0x00005e3281c6baca in Ffuncall () #27 0x00005e3281c6cbe0 in Fapply () #28 0x00005e3281cc2039 in exec_byte_code () #29 0x00005e3281c6baca in Ffuncall () #30 0x00005e3281c6cbe0 in Fapply () #31 0x00005e3281ccdefa in Fmake_process () #32 0x00007b975ffc1dd3 in F657368656c6c2d6761746865722d70726f636573732d6f7574707574_eshell_gather_process_output_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-proc-276ac638-b9009414.eln #33 0x00005e3281c6baca in Ffuncall () #34 0x00007b975fd68a1d in F657368656c6c2d636f6e6e656374696f6e2d6c6f63616c2d636f6d6d616e64_eshell_connection_local_command_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-ext-9adf61a7-391dc0d5.eln #35 0x00005e3281c6baca in Ffuncall () #36 0x00007b975fd68ca0 in F657368656c6c2d65787465726e616c2d636f6d6d616e64_eshell_external_command_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-ext-9adf61a7-391dc0d5.eln #37 0x00005e3281c6baca in Ffuncall () #38 0x00007b975fd85f16 in F657368656c6c2d706c61696e2d636f6d6d616e64_eshell_plain_command_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #39 0x00005e3281c6baca in Ffuncall () #40 0x00007b975fd8596d in F657368656c6c2d6e616d65642d636f6d6d616e64_eshell_named_command_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #41 0x00005e3281c69730 in eval_sub () #42 0x00005e3281c6b073 in Feval () #43 0x00005e3281c6baca in Ffuncall () #44 0x00007b975fd84cdc in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #45 0x00005e3281cc2039 in exec_byte_code () #46 0x00005e3281c6baca in Ffuncall () #47 0x00005e3281c697e3 in eval_sub () #48 0x00005e3281c6a650 in Flet () #49 0x00005e3281c695ae in eval_sub () #50 0x00005e3281c6b073 in Feval () #51 0x00005e3281c6baca in Ffuncall () #52 0x00007b975fd8339c in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #53 0x00005e3281c6baca in Ffuncall () #54 0x00007b975fd84c92 in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #55 0x00005e3281c6baca in Ffuncall () #56 0x00007b975fd84155 in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #57 0x00005e3281cc2039 in exec_byte_code () #58 0x00005e3281c6baca in Ffuncall () #59 0x00005e3281c697e3 in eval_sub () #60 0x00005e3281c6a650 in Flet () #61 0x00005e3281c695ae in eval_sub () #62 0x00005e3281c6b073 in Feval () #63 0x00005e3281c6baca in Ffuncall () #64 0x00007b975fd8339c in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #65 0x00005e3281c69730 in eval_sub () #66 0x00005e3281c6ade9 in internal_lisp_condition_case () #67 0x00005e3281c695ae in eval_sub () #68 0x00005e3281c6b073 in Feval () #69 0x00005e3281c6baca in Ffuncall () #70 0x00007b975fd82650 in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #71 0x00005e3281c6baca in Ffuncall () #72 0x00007b975fd823bf in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #73 0x00005e3281cc2039 in exec_byte_code () #74 0x00005e3281c6baca in Ffuncall () #75 0x00005e3281c697e3 in eval_sub () #76 0x00005e3281c6a650 in Flet () #77 0x00005e3281c695ae in eval_sub () #78 0x00005e3281c6b073 in Feval () #79 0x00005e3281c6baca in Ffuncall () #80 0x00007b975fd8339c in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #81 0x00005e3281c6baca in Ffuncall () #82 0x00007b975fd849b1 in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #83 0x00005e3281c6baca in Ffuncall () #84 0x00007b975fd84155 in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #85 0x00005e3281c6baca in Ffuncall () #86 0x00007b975fd849b1 in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #87 0x00005e3281cc2039 in exec_byte_code () #88 0x00005e3281c6baca in Ffuncall () #89 0x00005e3281c697e3 in eval_sub () #90 0x00005e3281c6a650 in Flet () #91 0x00005e3281c695ae in eval_sub () #92 0x00005e3281c6b073 in Feval () #93 0x00005e3281c6baca in Ffuncall () #94 0x00007b975fd8339c in F657368656c6c2d646f2d6576616c_eshell_do_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #95 0x00005e3281c6baca in Ffuncall () #96 0x00007b975fd80027 in F657368656c6c2d726573756d652d6576616c_eshell_resume_eval_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #97 0x00005e3281c6baca in Ffuncall () #98 0x00007b975fd7f7b5 in F657368656c6c2d6576616c2d636f6d6d616e64_eshell_eval_command_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-cmd-40a07574-cc16f19e.eln #99 0x00005e3281c6baca in Ffuncall () #100 0x00007b975fd24f81 in F657368656c6c2d73656e642d696e707574_eshell_send_input_0 () at /home/steb/.config/emacs/eln-cache/30.0.50-227e13ca/esh-mode-29140b27-601e69ac.eln #101 0x00005e3281c6baca in Ffuncall () #102 0x00005e3281c5da22 in Ffuncall_interactively () #103 0x00005e3281c6baca in Ffuncall () #104 0x00005e3281c6e9e3 in Fcall_interactively () #105 0x00007b976156c8a5 in F636f6d6d616e642d65786563757465_command_execute_0 () at /usr/bin/../lib/emacs/30.0.50/native-lisp/30.0.50-227e13ca/preloaded/simple-fab5b0cf-c39c6ea4.eln #106 0x00005e3281c6baca in Ffuncall () #107 0x00005e3281bce0c1 in command_loop_1.lto_priv () #108 0x00005e3281c67037 in internal_condition_case () #109 0x00005e3281bcbeae in command_loop_2 () #110 0x00005e3281c66f7a in internal_catch () #111 0x00005e3281bcdc03 in command_loop.lto_priv () #112 0x00005e3281d4f1eb in recursive_edit_1.isra () #113 0x00005e3281bcf980 in Frecursive_edit () #114 0x00005e3281a9d1ea in main () ^ permalink raw reply [flat|nested] 19+ messages in thread
[parent not found: <handler.71525.B.171822007123849.ack@debbugs.gnu.org>]
* bug#71525: Acknowledgement (30.0.50; Spin in delete-region/interval_deletion_adjustment) [not found] ` <handler.71525.B.171822007123849.ack@debbugs.gnu.org> @ 2024-06-13 5:14 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors 2024-06-13 5:52 ` bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment " Eli Zaretskii 0 siblings, 1 reply; 19+ messages in thread From: Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-06-13 5:14 UTC (permalink / raw) To: 71525 I just ran into this bug with jinx calling `next-single-char-property-change` and hanging forever. NOTE: I last compiled Emacs on the 8th, so the issue must have been introduced some time between now and then. ^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Spin in delete-region/interval_deletion_adjustment) 2024-06-13 5:14 ` bug#71525: Acknowledgement (30.0.50; Spin in delete-region/interval_deletion_adjustment) Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-06-13 5:52 ` Eli Zaretskii 2024-06-13 15:32 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 1 reply; 19+ messages in thread From: Eli Zaretskii @ 2024-06-13 5:52 UTC (permalink / raw) To: Steven Allen; +Cc: 71525 > Date: Wed, 12 Jun 2024 22:14:49 -0700 > From: Steven Allen via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org> > > > I just ran into this bug with jinx calling > `next-single-char-property-change` and hanging forever. > > NOTE: I last compiled Emacs on the 8th, so the issue must have been > introduced some time between now and then. Yes, please update from Git and try again. There were a couple of bugs fixed meanwhile which could explain what you see. ^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Spin in delete-region/interval_deletion_adjustment) 2024-06-13 5:52 ` bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment " Eli Zaretskii @ 2024-06-13 15:32 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors 2024-06-13 15:52 ` Eli Zaretskii 0 siblings, 1 reply; 19+ messages in thread From: Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-06-13 15:32 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 71525 > Yes, please update from Git and try again. There were a couple of > bugs fixed meanwhile which could explain what you see. Ah, no, I mean the bug was introduced between the 8th and the 12th. Between: - e2527dd9fd376b15d2f59ae440858b442b069577 (8th) - 6893c327e982528fdc93e3a956a4b6830a09ea3f (12th) ^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Spin in delete-region/interval_deletion_adjustment) 2024-06-13 15:32 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-06-13 15:52 ` Eli Zaretskii 2024-06-13 16:00 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors 2024-06-13 19:18 ` Jim Porter 0 siblings, 2 replies; 19+ messages in thread From: Eli Zaretskii @ 2024-06-13 15:52 UTC (permalink / raw) To: Steven Allen, Jim Porter; +Cc: 71525 > From: Steven Allen <steven@stebalien.com> > Cc: 71525@debbugs.gnu.org > Date: Thu, 13 Jun 2024 08:32:14 -0700 > > > > Yes, please update from Git and try again. There were a couple of > > bugs fixed meanwhile which could explain what you see. > > Ah, no, I mean the bug was introduced between the 8th and the 12th. > Between: > > - e2527dd9fd376b15d2f59ae440858b442b069577 (8th) > - 6893c327e982528fdc93e3a956a4b6830a09ea3f (12th) I see a couple of Eshell-related changes, but no obvious suspects. Can someone please reproduce this and post a detailed backtrace, including Lisp backtrace? Jim, are you looking into this? ^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Spin in delete-region/interval_deletion_adjustment) 2024-06-13 15:52 ` Eli Zaretskii @ 2024-06-13 16:00 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors 2024-06-13 16:06 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors 2024-06-13 19:18 ` Jim Porter 1 sibling, 1 reply; 19+ messages in thread From: Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-06-13 16:00 UTC (permalink / raw) To: Eli Zaretskii, Jim Porter; +Cc: 71525 Eli Zaretskii <eliz@gnu.org> writes: > I see a couple of Eshell-related changes, but no obvious suspects. > > Can someone please reproduce this and post a detailed backtrace, > including Lisp backtrace? Jim, are you looking into this? It's hanging in the C code, not lisp. I believe the issue is: https://lists.gnu.org/archive/html/emacs-devel/2024-06/msg00241.html So I'm trying that patch now. If that doesn't work, I'll produce a backtrace sometime later today. ^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Spin in delete-region/interval_deletion_adjustment) 2024-06-13 16:00 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-06-13 16:06 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors 2024-06-13 16:31 ` Eli Zaretskii 0 siblings, 1 reply; 19+ messages in thread From: Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-06-13 16:06 UTC (permalink / raw) To: Eli Zaretskii, Jim Porter; +Cc: 71525 Steven Allen <steven@stebalien.com> writes: > Eli Zaretskii <eliz@gnu.org> writes: >> I see a couple of Eshell-related changes, but no obvious suspects. >> >> Can someone please reproduce this and post a detailed backtrace, >> including Lisp backtrace? Jim, are you looking into this? > > It's hanging in the C code, not lisp. I believe the issue is: > > https://lists.gnu.org/archive/html/emacs-devel/2024-06/msg00241.html > > So I'm trying that patch now. > > If that doesn't work, I'll produce a backtrace sometime later today. I can confirm that the linked patch fixes the issue. Would you still like me to produce a backtrace? ^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Spin in delete-region/interval_deletion_adjustment) 2024-06-13 16:06 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-06-13 16:31 ` Eli Zaretskii 2024-06-13 21:47 ` Dmitry Gutov 0 siblings, 1 reply; 19+ messages in thread From: Eli Zaretskii @ 2024-06-13 16:31 UTC (permalink / raw) To: Steven Allen; +Cc: jporterbugs, 71525 > From: Steven Allen <steven@stebalien.com> > Cc: 71525@debbugs.gnu.org > Date: Thu, 13 Jun 2024 09:06:07 -0700 > > > Steven Allen <steven@stebalien.com> writes: > > Eli Zaretskii <eliz@gnu.org> writes: > >> I see a couple of Eshell-related changes, but no obvious suspects. > >> > >> Can someone please reproduce this and post a detailed backtrace, > >> including Lisp backtrace? Jim, are you looking into this? > > > > It's hanging in the C code, not lisp. I believe the issue is: > > > > https://lists.gnu.org/archive/html/emacs-devel/2024-06/msg00241.html > > > > So I'm trying that patch now. > > > > If that doesn't work, I'll produce a backtrace sometime later today. > > I can confirm that the linked patch fixes the issue. Would you still > like me to produce a backtrace? No need, thanks. That issue is already on someone's table. ^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Spin in delete-region/interval_deletion_adjustment) 2024-06-13 16:31 ` Eli Zaretskii @ 2024-06-13 21:47 ` Dmitry Gutov 2024-06-13 23:41 ` Dmitry Gutov 0 siblings, 1 reply; 19+ messages in thread From: Dmitry Gutov @ 2024-06-13 21:47 UTC (permalink / raw) To: Eli Zaretskii, Steven Allen; +Cc: jporterbugs, 71525 On 13/06/2024 19:31, Eli Zaretskii wrote: >> From: Steven Allen<steven@stebalien.com> >> Cc:71525@debbugs.gnu.org >> Date: Thu, 13 Jun 2024 09:06:07 -0700 >> >> >> Steven Allen<steven@stebalien.com> writes: >>> Eli Zaretskii<eliz@gnu.org> writes: >>>> I see a couple of Eshell-related changes, but no obvious suspects. >>>> >>>> Can someone please reproduce this and post a detailed backtrace, >>>> including Lisp backtrace? Jim, are you looking into this? >>> It's hanging in the C code, not lisp. I believe the issue is: >>> >>> https://lists.gnu.org/archive/html/emacs-devel/2024-06/msg00241.html >>> >>> So I'm trying that patch now. >>> >>> If that doesn't work, I'll produce a backtrace sometime later today. >> I can confirm that the linked patch fixes the issue. Would you still >> like me to produce a backtrace? > No need, thanks. That issue is already on someone's table. I think I see it now. The thing is, decode_coding_c_string already calls adjust_markers_for_insert through decode_coding_object->decode_coding->produce_chars->insert_from_gap And the extra call moves the markers too far. Unfortunately, it's called with BEFORE_MARKERS=nil, and the above call chain makes it difficult to pass through the extra argument. Perhaps we should do this? diff --git a/src/process.c b/src/process.c index eb526311c53..3c6cbe9b188 100644 --- a/src/process.c +++ b/src/process.c @@ -6423,9 +6423,17 @@ read_and_insert_process_output (struct Lisp_Process *p, char *buf, specbind (Qinhibit_modification_hooks, Qt); decode_coding_c_string (process_coding, (unsigned char *) buf, nread, curbuf); - adjust_markers_for_insert (PT, PT_BYTE, - PT + process_coding->produced_char, - PT_BYTE + process_coding->produced, true); + /* The previous call adjusts the markers, except for those + exactly at PT (it inserts with BEFORE_MARKERS=nil). */ + struct Lisp_Marker *m; + for (m = BUF_MARKERS (current_buffer); m; m = m->next) + { + if (m->bytepos == PT_BYTE) + { + m->bytepos = PT_BYTE + process_coding->produced; + m->charpos = PT + process_coding->produced_char; + } + } unbind_to (count1, Qnil); read_process_output_set_last_coding_system (p, process_coding); That doesn't adjust the overlays, however (the adjust_overlays_for_insert call inside adjust_markers_for_insert). And doing the same trick with them seems more difficult. ^ permalink raw reply related [flat|nested] 19+ messages in thread
* bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Spin in delete-region/interval_deletion_adjustment) 2024-06-13 21:47 ` Dmitry Gutov @ 2024-06-13 23:41 ` Dmitry Gutov 2024-06-14 7:13 ` Eli Zaretskii 0 siblings, 1 reply; 19+ messages in thread From: Dmitry Gutov @ 2024-06-13 23:41 UTC (permalink / raw) To: Eli Zaretskii, Steven Allen; +Cc: jporterbugs, 71525 [-- Attachment #1: Type: text/plain, Size: 589 bytes --] On 14/06/2024 00:47, Dmitry Gutov wrote: > The thing is, decode_coding_c_string already calls > adjust_markers_for_insert through > > decode_coding_object->decode_coding->produce_chars->insert_from_gap > > And the extra call moves the markers too far. > > Unfortunately, it's called with BEFORE_MARKERS=nil, and the above call > chain makes it difficult to pass through the extra argument. We can do it through the coding_system structure, though. See attached. It fixes the freezes in my testing. It seems like the least invasive possible fix, but better suggestions welcome. [-- Attachment #2: dst_before_markers.diff --] [-- Type: text/x-patch, Size: 6084 bytes --] diff --git a/src/coding.c b/src/coding.c index 5e4e92ea6e2..138aaa22e6a 100644 --- a/src/coding.c +++ b/src/coding.c @@ -5698,6 +5698,7 @@ setup_coding_system (Lisp_Object coding_system, struct coding_system *coding) coding->default_char = XFIXNUM (CODING_ATTR_DEFAULT_CHAR (attrs)); coding->carryover_bytes = 0; coding->raw_destination = 0; + coding->dst_before_markers = 0; coding_type = CODING_ATTR_TYPE (attrs); if (EQ (coding_type, Qundecided)) @@ -7209,7 +7210,7 @@ produce_chars (struct coding_system *coding, Lisp_Object translation_table, produced = dst - (coding->destination + coding->produced); if (BUFFERP (coding->dst_object) && produced_chars > 0) - insert_from_gap (produced_chars, produced, 0); + insert_from_gap (produced_chars, produced, 0, coding->dst_before_markers); coding->produced += produced; coding->produced_char += produced_chars; return carryover; @@ -7814,7 +7815,7 @@ encode_coding (struct coding_system *coding) } while (coding->consumed_char < coding->src_chars); if (BUFFERP (coding->dst_object) && coding->produced_char > 0) - insert_from_gap (coding->produced_char, coding->produced, 0); + insert_from_gap (coding->produced_char, coding->produced, 0, coding->dst_before_markers); SAFE_FREE (); } @@ -8008,7 +8009,7 @@ decode_coding_gap (struct coding_system *coding, ptrdiff_t bytes) } coding->produced = bytes; coding->produced_char = chars; - insert_from_gap (chars, bytes, 1); + insert_from_gap (chars, bytes, 1, coding->dst_before_markers); return; } } @@ -9980,7 +9981,7 @@ encode_string_utf_8 (Lisp_Object string, Lisp_Object buffer, struct buffer *oldb = current_buffer; current_buffer = XBUFFER (buffer); - insert_from_gap (outbytes, outbytes, false); + insert_from_gap (outbytes, outbytes, false, false); current_buffer = oldb; } return val; @@ -10290,7 +10291,7 @@ #define UTF_8_SEQUENCE_LENGTH(c) \ struct buffer *oldb = current_buffer; current_buffer = XBUFFER (buffer); - insert_from_gap (outchars, outbytes, false); + insert_from_gap (outchars, outbytes, false, false); current_buffer = oldb; } return val; diff --git a/src/coding.h b/src/coding.h index 8905e36838d..2e031d8cc55 100644 --- a/src/coding.h +++ b/src/coding.h @@ -428,6 +428,9 @@ #define CODING_MODE_SAFE_ENCODING 0x10 /* Set to true if charbuf contains an annotation. */ bool_bf annotated : 1; + /* True to insert before markers in the DST_OBJECT buffer. */ + bool_bf dst_before_markers : 1; + /* Used internally in coding.c. See the comment of detect_ascii. */ unsigned eol_seen : 3; diff --git a/src/decompress.c b/src/decompress.c index fcdbb40fc90..6c342e54355 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -310,7 +310,7 @@ DEFUN ("zlib-decompress-region", Fzlib_decompress_region, inflate_status = inflate (&stream, Z_NO_FLUSH); pos_byte += avail_in - stream.avail_in; decompressed = avail_out - stream.avail_out; - insert_from_gap (decompressed, decompressed, 0); + insert_from_gap (decompressed, decompressed, 0, false); unwind_data.nbytes += decompressed; maybe_quit (); } diff --git a/src/insdel.c b/src/insdel.c index fbf71e1e595..8f8e7b7d71d 100644 --- a/src/insdel.c +++ b/src/insdel.c @@ -1129,10 +1129,12 @@ insert_from_gap_1 (ptrdiff_t nchars, ptrdiff_t nbytes, bool text_at_gap_tail) /* Insert a sequence of NCHARS chars which occupy NBYTES bytes starting at GAP_END_ADDR - NBYTES (if text_at_gap_tail) and at - GPT_ADDR (if not text_at_gap_tail). */ + GPT_ADDR (if not text_at_gap_tail). + + If BEFORE_MARKERS is true, insert before markers. */ void -insert_from_gap (ptrdiff_t nchars, ptrdiff_t nbytes, bool text_at_gap_tail) +insert_from_gap (ptrdiff_t nchars, ptrdiff_t nbytes, bool text_at_gap_tail, bool before_markers) { ptrdiff_t ins_charpos = GPT, ins_bytepos = GPT_BYTE; @@ -1151,7 +1153,7 @@ insert_from_gap (ptrdiff_t nchars, ptrdiff_t nbytes, bool text_at_gap_tail) insert_from_gap_1 (nchars, nbytes, text_at_gap_tail); adjust_markers_for_insert (ins_charpos, ins_bytepos, - ins_charpos + nchars, ins_bytepos + nbytes, false); + ins_charpos + nchars, ins_bytepos + nbytes, before_markers); if (buffer_intervals (current_buffer)) { diff --git a/src/lisp.h b/src/lisp.h index 21dada59132..2c3c4e0ba87 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -4372,7 +4372,8 @@ verify (FLT_RADIX == 2 || FLT_RADIX == 16); extern void insert_1_both (const char *, ptrdiff_t, ptrdiff_t, bool, bool, bool); extern void insert_from_gap_1 (ptrdiff_t, ptrdiff_t, bool text_at_gap_tail); -extern void insert_from_gap (ptrdiff_t, ptrdiff_t, bool text_at_gap_tail); +extern void insert_from_gap (ptrdiff_t, ptrdiff_t, bool text_at_gap_tail, + bool before_markers); extern void insert_from_string (Lisp_Object, ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, bool); extern void insert_from_buffer (struct buffer *, ptrdiff_t, ptrdiff_t, bool); diff --git a/src/process.c b/src/process.c index eb526311c53..7000b51775c 100644 --- a/src/process.c +++ b/src/process.c @@ -6415,6 +6415,7 @@ read_and_insert_process_output (struct Lisp_Process *p, char *buf, specpdl_ref count1 = SPECPDL_INDEX (); XSETBUFFER (curbuf, current_buffer); + process_coding->dst_before_markers = true; /* We cannot allow after-change-functions be run during decoding, because that might modify the buffer, while we rely on process_coding.produced to @@ -6423,9 +6424,6 @@ read_and_insert_process_output (struct Lisp_Process *p, char *buf, specbind (Qinhibit_modification_hooks, Qt); decode_coding_c_string (process_coding, (unsigned char *) buf, nread, curbuf); - adjust_markers_for_insert (PT, PT_BYTE, - PT + process_coding->produced_char, - PT_BYTE + process_coding->produced, true); unbind_to (count1, Qnil); read_process_output_set_last_coding_system (p, process_coding); ^ permalink raw reply related [flat|nested] 19+ messages in thread
* bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Spin in delete-region/interval_deletion_adjustment) 2024-06-13 23:41 ` Dmitry Gutov @ 2024-06-14 7:13 ` Eli Zaretskii 2024-06-14 16:51 ` Dmitry Gutov 2024-06-14 18:17 ` Dmitry Gutov 0 siblings, 2 replies; 19+ messages in thread From: Eli Zaretskii @ 2024-06-14 7:13 UTC (permalink / raw) To: Dmitry Gutov; +Cc: jporterbugs, steven, 71525 > Date: Fri, 14 Jun 2024 02:41:15 +0300 > From: Dmitry Gutov <dmitry@gutov.dev> > Cc: jporterbugs@gmail.com, 71525@debbugs.gnu.org > > On 14/06/2024 00:47, Dmitry Gutov wrote: > > The thing is, decode_coding_c_string already calls > > adjust_markers_for_insert through > > > > decode_coding_object->decode_coding->produce_chars->insert_from_gap > > > > And the extra call moves the markers too far. > > > > Unfortunately, it's called with BEFORE_MARKERS=nil, and the above call > > chain makes it difficult to pass through the extra argument. > > We can do it through the coding_system structure, though. > > See attached. It fixes the freezes in my testing. > > It seems like the least invasive possible fix, but better suggestions > welcome. This is the correct approach, IMO. But see some minor comments below. > @@ -7814,7 +7815,7 @@ encode_coding (struct coding_system *coding) > } while (coding->consumed_char < coding->src_chars); > > if (BUFFERP (coding->dst_object) && coding->produced_char > 0) > - insert_from_gap (coding->produced_char, coding->produced, 0); > + insert_from_gap (coding->produced_char, coding->produced, 0, coding->dst_before_markers); Here (and elsewhere in the patch) too-long lines should be broken in two. > + /* True to insert before markers in the DST_OBJECT buffer. */ > + bool_bf dst_before_markers : 1; I'd call this 'insert_before_markers' instead. Please also add a detailed comment here explaining what this flag is for and where and why used. > /* Insert a sequence of NCHARS chars which occupy NBYTES bytes > starting at GAP_END_ADDR - NBYTES (if text_at_gap_tail) and at > - GPT_ADDR (if not text_at_gap_tail). */ > + GPT_ADDR (if not text_at_gap_tail). > + > + If BEFORE_MARKERS is true, insert before markers. */ This commentary should also mention process.c as the single caller using this facility in unconventional ways. > extern void insert_from_gap_1 (ptrdiff_t, ptrdiff_t, bool text_at_gap_tail); > -extern void insert_from_gap (ptrdiff_t, ptrdiff_t, bool text_at_gap_tail); > +extern void insert_from_gap (ptrdiff_t, ptrdiff_t, bool text_at_gap_tail, > + bool before_markers); We don't have names of arguments in prototypes, only their types. (Yes, it means the original prototype, and the ones around it, were also wrong.) > --- a/src/process.c > +++ b/src/process.c > @@ -6415,6 +6415,7 @@ read_and_insert_process_output (struct Lisp_Process *p, char *buf, > specpdl_ref count1 = SPECPDL_INDEX (); > > XSETBUFFER (curbuf, current_buffer); > + process_coding->dst_before_markers = true; Please also add a comment here explaining why this is done. Thanks. ^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Spin in delete-region/interval_deletion_adjustment) 2024-06-14 7:13 ` Eli Zaretskii @ 2024-06-14 16:51 ` Dmitry Gutov 2024-06-14 18:14 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors 2024-06-14 18:17 ` Dmitry Gutov 1 sibling, 1 reply; 19+ messages in thread From: Dmitry Gutov @ 2024-06-14 16:51 UTC (permalink / raw) To: Eli Zaretskii; +Cc: jporterbugs, steven, 71525 On 14/06/2024 10:13, Eli Zaretskii wrote: > This is the correct approach, IMO. But see some minor comments below. > >> @@ -7814,7 +7815,7 @@ encode_coding (struct coding_system *coding) >> } while (coding->consumed_char < coding->src_chars); >> >> if (BUFFERP (coding->dst_object) && coding->produced_char > 0) >> - insert_from_gap (coding->produced_char, coding->produced, 0); >> + insert_from_gap (coding->produced_char, coding->produced, 0, coding->dst_before_markers); > Here (and elsewhere in the patch) too-long lines should be broken in > two. > >> + /* True to insert before markers in the DST_OBJECT buffer. */ >> + bool_bf dst_before_markers : 1; > I'd call this 'insert_before_markers' instead. Please also add a > detailed comment here explaining what this flag is for and where and > why used. > >> /* Insert a sequence of NCHARS chars which occupy NBYTES bytes >> starting at GAP_END_ADDR - NBYTES (if text_at_gap_tail) and at >> - GPT_ADDR (if not text_at_gap_tail). */ >> + GPT_ADDR (if not text_at_gap_tail). >> + >> + If BEFORE_MARKERS is true, insert before markers. */ > This commentary should also mention process.c as the single caller > using this facility in unconventional ways. > >> extern void insert_from_gap_1 (ptrdiff_t, ptrdiff_t, bool text_at_gap_tail); >> -extern void insert_from_gap (ptrdiff_t, ptrdiff_t, bool text_at_gap_tail); >> +extern void insert_from_gap (ptrdiff_t, ptrdiff_t, bool text_at_gap_tail, >> + bool before_markers); > We don't have names of arguments in prototypes, only their types. > (Yes, it means the original prototype, and the ones around it, were > also wrong.) > >> --- a/src/process.c >> +++ b/src/process.c >> @@ -6415,6 +6415,7 @@ read_and_insert_process_output (struct Lisp_Process *p, char *buf, >> specpdl_ref count1 = SPECPDL_INDEX (); >> >> XSETBUFFER (curbuf, current_buffer); >> + process_coding->dst_before_markers = true; > Please also add a comment here explaining why this is done. Thanks! I've pushed the amended patch to master, please see how you like the result. ^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Spin in delete-region/interval_deletion_adjustment) 2024-06-14 16:51 ` Dmitry Gutov @ 2024-06-14 18:14 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 0 replies; 19+ messages in thread From: Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-06-14 18:14 UTC (permalink / raw) To: Dmitry Gutov, Eli Zaretskii; +Cc: jporterbugs, 71525 Dmitry Gutov <dmitry@gutov.dev> writes: > Thanks! I've pushed the amended patch to master, please see how you like > the result. I can't comment on the patch but I can confirm that it fixes the bug (or, at least, the one I observed). ^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Spin in delete-region/interval_deletion_adjustment) 2024-06-14 7:13 ` Eli Zaretskii 2024-06-14 16:51 ` Dmitry Gutov @ 2024-06-14 18:17 ` Dmitry Gutov 2024-06-14 18:46 ` Eli Zaretskii 1 sibling, 1 reply; 19+ messages in thread From: Dmitry Gutov @ 2024-06-14 18:17 UTC (permalink / raw) To: Eli Zaretskii; +Cc: jporterbugs, steven, 71525 On 14/06/2024 10:13, Eli Zaretskii wrote: >> /* Insert a sequence of NCHARS chars which occupy NBYTES bytes >> starting at GAP_END_ADDR - NBYTES (if text_at_gap_tail) and at >> - GPT_ADDR (if not text_at_gap_tail). */ >> + GPT_ADDR (if not text_at_gap_tail). >> + >> + If BEFORE_MARKERS is true, insert before markers. */ > This commentary should also mention process.c as the single caller > using this facility in unconventional ways. Also note that I did make some effort to make the field coding->insert_before_markers used consistently: in the changeset, it's not just obeyed on the code path that decode_coding_c_string goes through - it's used anywhere where insert_from_gap is called and a coding_system structure is available - e.g. in encode_coding. Also in decode_coding_gap, but that one seems to only have one caller (insert-file-contents), so that choice is moot. Something else I've noticed (a bit off topic): insert_from_gap_1's comments says that it "does not invalidate any cache, nor update any markers, nor record any buffer modification information of any sort", but then it calls treesit_record_change when available. Not sure we need to change that, but maybe we should update the comment, at least. ^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Spin in delete-region/interval_deletion_adjustment) 2024-06-14 18:17 ` Dmitry Gutov @ 2024-06-14 18:46 ` Eli Zaretskii 2024-06-14 19:13 ` Dmitry Gutov 0 siblings, 1 reply; 19+ messages in thread From: Eli Zaretskii @ 2024-06-14 18:46 UTC (permalink / raw) To: Dmitry Gutov; +Cc: jporterbugs, 71525-done, steven > Date: Fri, 14 Jun 2024 21:17:22 +0300 > Cc: steven@stebalien.com, jporterbugs@gmail.com, 71525@debbugs.gnu.org > From: Dmitry Gutov <dmitry@gutov.dev> > > On 14/06/2024 10:13, Eli Zaretskii wrote: > >> /* Insert a sequence of NCHARS chars which occupy NBYTES bytes > >> starting at GAP_END_ADDR - NBYTES (if text_at_gap_tail) and at > >> - GPT_ADDR (if not text_at_gap_tail). */ > >> + GPT_ADDR (if not text_at_gap_tail). > >> + > >> + If BEFORE_MARKERS is true, insert before markers. */ > > This commentary should also mention process.c as the single caller > > using this facility in unconventional ways. > > Also note that I did make some effort to make the field > coding->insert_before_markers used consistently: in the changeset, it's > not just obeyed on the code path that decode_coding_c_string goes > through - it's used anywhere where insert_from_gap is called and a > coding_system structure is available - e.g. in encode_coding. > > Also in decode_coding_gap, but that one seems to only have one caller > (insert-file-contents), so that choice is moot. > > Something else I've noticed (a bit off topic): insert_from_gap_1's > comments says that it "does not invalidate any cache, nor update any > markers, nor record any buffer modification information of any sort", > but then it calls treesit_record_change when available. Not sure we need > to change that, but maybe we should update the comment, at least. Thanks, done. I think we can now close this bug. ^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Spin in delete-region/interval_deletion_adjustment) 2024-06-14 18:46 ` Eli Zaretskii @ 2024-06-14 19:13 ` Dmitry Gutov 0 siblings, 0 replies; 19+ messages in thread From: Dmitry Gutov @ 2024-06-14 19:13 UTC (permalink / raw) To: Eli Zaretskii; +Cc: jporterbugs, 71525-done, steven On 14/06/2024 21:46, Eli Zaretskii wrote: >> Date: Fri, 14 Jun 2024 21:17:22 +0300 >> Cc:steven@stebalien.com,jporterbugs@gmail.com,71525@debbugs.gnu.org >> From: Dmitry Gutov<dmitry@gutov.dev> >> >> On 14/06/2024 10:13, Eli Zaretskii wrote: >>>> /* Insert a sequence of NCHARS chars which occupy NBYTES bytes >>>> starting at GAP_END_ADDR - NBYTES (if text_at_gap_tail) and at >>>> - GPT_ADDR (if not text_at_gap_tail). */ >>>> + GPT_ADDR (if not text_at_gap_tail). >>>> + >>>> + If BEFORE_MARKERS is true, insert before markers. */ >>> This commentary should also mention process.c as the single caller >>> using this facility in unconventional ways. >> Also note that I did make some effort to make the field >> coding->insert_before_markers used consistently: in the changeset, it's >> not just obeyed on the code path that decode_coding_c_string goes >> through - it's used anywhere where insert_from_gap is called and a >> coding_system structure is available - e.g. in encode_coding. >> >> Also in decode_coding_gap, but that one seems to only have one caller >> (insert-file-contents), so that choice is moot. >> >> Something else I've noticed (a bit off topic): insert_from_gap_1's >> comments says that it "does not invalidate any cache, nor update any >> markers, nor record any buffer modification information of any sort", >> but then it calls treesit_record_change when available. Not sure we need >> to change that, but maybe we should update the comment, at least. > Thanks, done. > > I think we can now close this bug. Thanks everyone! I think we've now crash-debugged every new code path. ;-) ^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Spin in delete-region/interval_deletion_adjustment) 2024-06-13 15:52 ` Eli Zaretskii 2024-06-13 16:00 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-06-13 19:18 ` Jim Porter 2024-06-13 19:42 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors 1 sibling, 1 reply; 19+ messages in thread From: Jim Porter @ 2024-06-13 19:18 UTC (permalink / raw) To: Eli Zaretskii, Steven Allen; +Cc: 71525 On 6/13/2024 8:52 AM, Eli Zaretskii wrote: > Can someone please reproduce this and post a detailed backtrace, > including Lisp backtrace? Jim, are you looking into this? It sounds like we've found the culprit, but I am tracking this and can help fix/update Eshell if that's the way we decide to go. (I haven't read through all of bug#66020 yet so I don't fully understand all of the changes there, and can't yet say where the fix should be.) ^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Spin in delete-region/interval_deletion_adjustment) 2024-06-13 19:18 ` Jim Porter @ 2024-06-13 19:42 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors 0 siblings, 0 replies; 19+ messages in thread From: Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2024-06-13 19:42 UTC (permalink / raw) To: Jim Porter, Eli Zaretskii; +Cc: 71525 Jim Porter <jporterbugs@gmail.com> writes: > It sounds like we've found the culprit, but I am tracking this and can > help fix/update Eshell if that's the way we decide to go. (I haven't > read through all of bug#66020 yet so I don't fully understand all of the > changes there, and can't yet say where the fix should be.) From what I can tell, it's not Eshell, just triggered by Eshell. It appears that Emacs locks up _inside_ the C code and never leaves (not even `C-g` works). I believe I reproduced this once with `jinx` calling `next-single-char-property-change` in a non-eshell buffer. At the very least, it locked up in the same way (right after I tried to delete a buffer). But I'm not sure how that would have interacted with the process output code. ^ permalink raw reply [flat|nested] 19+ messages in thread
* bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment 2024-06-12 19:20 bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors [not found] ` <handler.71525.B.171822007123849.ack@debbugs.gnu.org> @ 2024-06-13 5:49 ` Eli Zaretskii 1 sibling, 0 replies; 19+ messages in thread From: Eli Zaretskii @ 2024-06-13 5:49 UTC (permalink / raw) To: Steven Allen; +Cc: 71525 > Date: Wed, 12 Jun 2024 12:20:49 -0700 > From: Steven Allen via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org> > > After rebuilding today, enabling the eshell-tramp module and calling > sudo is causing a `delete-region` subcall (presumably from within > `tramp-wait-for-output`?) to spin within `interval_deletion_adjustment` > (or it might be repeatedly calling it?). > > NOTE: this happens after authentication. > > To reproduce: > > 1. `emacs -Q` > 2. `M-x eval-expression RET (require 'eshell) RET` > 3. `M-x eval-expression RET (add-to-list 'eshell-modules-list 'eshell-tramp)`. > 4. `M-x eshell` > 5. `sudo /usr/bin/echo` > 6. Authenticate, press enter, and watch Emacs lock up and go to 100% CPU usage. > > > I've collected two backtraces: one with native compilation > (with-native-comp.txt) and one after re-evaluating (with-eval.txt) the > appropriate files (tramp-sh.el, tramp.el) to rule out compilation > issues. See attached. Thanks, but please also start GDB from the Emacs src directory (or type "source /path/to/emacs/src/.gdbinit" after starting GDB), and show Lisp backtrace produced together with the C backtrace. This will make it easier to analyze the relevant Lisp code -- all those Ffuncall and Fapply calls will show the Lisp symbols they call. ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2024-06-14 19:13 UTC | newest] Thread overview: 19+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-06-12 19:20 bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors [not found] ` <handler.71525.B.171822007123849.ack@debbugs.gnu.org> 2024-06-13 5:14 ` bug#71525: Acknowledgement (30.0.50; Spin in delete-region/interval_deletion_adjustment) Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors 2024-06-13 5:52 ` bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment " Eli Zaretskii 2024-06-13 15:32 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors 2024-06-13 15:52 ` Eli Zaretskii 2024-06-13 16:00 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors 2024-06-13 16:06 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors 2024-06-13 16:31 ` Eli Zaretskii 2024-06-13 21:47 ` Dmitry Gutov 2024-06-13 23:41 ` Dmitry Gutov 2024-06-14 7:13 ` Eli Zaretskii 2024-06-14 16:51 ` Dmitry Gutov 2024-06-14 18:14 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors 2024-06-14 18:17 ` Dmitry Gutov 2024-06-14 18:46 ` Eli Zaretskii 2024-06-14 19:13 ` Dmitry Gutov 2024-06-13 19:18 ` Jim Porter 2024-06-13 19:42 ` Steven Allen via Bug reports for GNU Emacs, the Swiss army knife of text editors 2024-06-13 5:49 ` bug#71525: 30.0.50; Spin in delete-region/interval_deletion_adjustment Eli Zaretskii
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.