unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#59641: term is very slow
@ 2022-11-27 20:00 Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-11-27 20:31 ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-11-27 20:00 UTC (permalink / raw)
  To: 59641


[-- Attachment #1.1: Type: text/plain, Size: 573 bytes --]


Term mode is very slow.  On my computer, Coterm is 2-3x faster than
term, and my own terminal emulator, Eat, is 4-5x faster.

I tried to profile Term.  Steps:

1. emacs -Q (+ -nw, environment variable DISPLAY was unset)
2. M-x profiler-start RET cpu+mem RET
3. M-x term
4. Run the following stupid command:
   timeout 1 bash -c 'i=0 ; while true ; do echo $i ; i=$((i+1)) ; done'
   Note I also run emacs -nw in before this command.
5. Wait for finishing.
6. M-x profiler-stop
7. M-x profiler-report

Here are the reports (attached), but don't seem to be human readable:


[-- Attachment #1.2: CPU Profile Data --]
[-- Type: application/octet-stream, Size: 11283 bytes --]


[profiler-profile "28.1" cpu #s(hash-table size 97 test equal rehash-size 1.5 rehash-threshold 0.8125 data ([funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 8 [completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil nil nil nil] 26 ["#<compiled -0xa873503662230e4>" completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil nil nil] 3 [show-paren--default show-paren-function apply timer-event-handler completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil] 2 [show-paren-function apply timer-event-handler completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil] 2 [execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil nil nil] 12 [byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 23 [byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 26 [byte-code defvar command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 4 [read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 4 ["#<compiled 0x1a044bbfab7de9f2>" execute-extended-command--shorter "#<compiled -0xb30f43a056c4866>" apply timer-event-handler nil nil nil nil nil nil nil nil nil nil nil] 4 [easy-menu-lookup-name "#<compiled 0x12afad0b062c4ebb>" mapcar easy-menu-get-map easy-menu-add-item easy-menu-change term--update-term-menu redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil] 8 [term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 3919 [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 1063 [redisplay--update-region-highlight run-hook-with-args redisplay--pre-redisplay-functions redisplay_internal\ \(C\ function\) nil nil nil nil nil nil nil nil nil nil nil nil] 2 [term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 51 [if eval term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 8 [face-attribute face-attribute face-background term--color-as-hex term--handle-colors-list term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil] 6 [term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 1682 [term-down term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 1823 [face-attribute face-foreground term--color-as-hex term--handle-colors-list term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 12 [term-move-to-column term-move-columns term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 10 [term-move-columns term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 28 [jit-lock-after-change term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 111 [term-move-columns term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 225 [run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 35 [term-down term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 714 [vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 16 [font-lock-set-defaults font-lock-fontify-region "#<compiled -0x1540fe59cc42d603>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil] 4 [font-lock-fontify-region "#<compiled -0x1552ff392e9c9603>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil] 22 [term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 32 [syntax-propertize-wholelines font-lock-extend-region-wholelines font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f71a36b2fc03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil] 20 [face-foreground term--color-as-hex term--handle-colors-list term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 12 [timer--activate timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil] 88 [term--handle-colors-list term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 16 [syntax-ppss-flush-cache term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 12 [timer--time-less-p timer--activate timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil] 8 [jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 46 [jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 64 [font-lock-extend-region-wholelines font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f745b3231203>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil] 12 [term-move-columns term-down term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 8 [font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1546fd5b53d9da03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil] 20 [if eval redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 4 [font-lock-unfontify-region font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1540fac747b55603>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil] 12 [face-attribute face-attribute face-foreground term--color-as-hex term--handle-colors-list term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil] 8 [face-attribute face-attribute-merged-with face-attribute face-background term--color-as-hex term--handle-colors-list term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil] 16 [face-attribute face-background term--color-as-hex term--handle-colors-list term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 8 [syntax-ppss show-paren--default show-paren-function apply timer-event-handler term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 4 [timer-set-time run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil] 20 [term-send-raw funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil nil nil] 4 [apply timer-event-handler term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 8 [font-lock-set-defaults font-lock-fontify-region "#<compiled -0x1540f619efa85203>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil] 4 [face-attribute-merged-with face-attribute face-background term--color-as-hex term--handle-colors-list term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil] 4 ["#<compiled -0x1540fac747b55603>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 8 [font-lock-fontify-region "#<compiled -0x1540fe59cc42d603>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil] 4 [timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil] 4 [eval redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 4 [buffer-match-p show-paren-function apply timer-event-handler nil nil nil nil nil nil nil nil nil nil nil nil] 2 [font-lock-unfontify-region font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f4e0aae95e03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil] 8 [term-insert-char term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 40 [jit-lock-after-change term-insert-char term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 28 [jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 40 [term-handle-deferred-scroll term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 137 [font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1554fa224e318f03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil] 8 [jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 4 [font-lock-extend-region-wholelines font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1546c88d0dca1d03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil] 4 ["#<compiled -0x1546deb559806303>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 4 [font-lock-fontify-region "#<compiled -0x1546c2ed8adb7d03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil] 4 ["#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_9>" apply timer-event-handler completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil] 7 [read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil nil nil nil nil] 5 [funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 1 [Automatic\ GC] 347)) (25475 48364 740815 549000) nil]

[-- Attachment #1.3: Memory Profile Data --]
[-- Type: application/octet-stream, Size: 35901 bytes --]


[profiler-profile "28.1" memory #s(hash-table size 217 test equal rehash-size 1.5 rehash-threshold 0.8125 data ([funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 3695303 [clear-minibuffer-message profiler-start funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 1770 [timer-set-time run-at-time execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 48 [timer--activate timer-activate run-at-time execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 48 [timer-set-idle-time run-with-idle-timer eldoc-schedule-timer nil nil nil nil nil nil nil nil nil nil nil nil nil] 24 [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 7426758 [read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil nil nil nil nil] 10782 [completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil nil nil nil] 115292 ["#<compiled -0xa873503662230e4>" completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil nil nil] 2728 [command-execute completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil nil nil] 304 [funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 215699 [substitute-env-in-file-name command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 1152 [execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil nil nil] 220166 [command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil nil] 7568 [byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 439928 [require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 5176 [byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 295581 [require byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 14139 [make-empty-face face-spec-set custom-declare-face require byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil] 5752 [key-valid-p keymap--check keymap-set define-keymap defvar require byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil] 6400 [keymap-set define-keymap defvar require byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil] 11776 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>" funcall eval custom-initialize-reset custom-declare-variable byte-code require byte-code command-execute execute-extended-command funcall-interactively] 16368 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>" funcall eval custom-initialize-reset custom-declare-variable byte-code require byte-code command-execute execute-extended-command] 2096 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>" funcall eval custom-initialize-reset custom-declare-variable byte-code require byte-code command-execute] 1048 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>" funcall eval custom-initialize-reset custom-declare-variable byte-code require byte-code] 2096 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>" funcall eval custom-initialize-reset custom-declare-variable byte-code require] 1048 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>" funcall eval custom-initialize-reset custom-declare-variable byte-code] 3144 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>" funcall eval custom-initialize-reset custom-declare-variable] 1048 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>" funcall eval custom-initialize-reset] 11328 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>"] 2096 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group] 25968 ["#<compiled 0x1d31761ad15896c5>" regexp-opt-charset regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group] 1216 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt] 1048 [regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt-group regexp-opt "#<compiled -0x1c7f3d51f79afe47>" funcall] 1048 [funcall eval custom-initialize-reset custom-declare-variable byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil] 1272 [defconst require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 40 [defvar require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 1064 [byte-code defvar require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 5256 [substitute-env-in-file-name require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 1152 [substitute-key-definition-key "#<compiled -0x9ffbd4090ea95b5>" substitute-key-definition byte-code defvar require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil] 1056 [elisp--font-lock-flush-elisp-buffers do-after-load-evaluation require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 1056 [byte-code require byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 5280 [derived-mode-p elisp--font-lock-flush-elisp-buffers do-after-load-evaluation require byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil] 1056 [custom-initialize-reset custom-declare-variable byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 1056 [custom-handle-keyword custom-declare-variable byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 2112 [key-valid-p keymap--check keymap-set define-keymap defvar require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil] 3200 [keymap-set define-keymap defvar require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 10368 [make-abbrev-table define-abbrev-table byte-code require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 4144 [face-spec-reset-face face-spec-recalc face-spec-set custom-declare-face require byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil] 3168 [custom-initialize-reset custom-declare-variable byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 2112 [custom-handle-keyword custom-declare-variable byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 2112 [defvar command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 1880 [byte-code defvar command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 27688 [easy-menu-do-define byte-code defvar command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 2112 [easy-menu-create-menu easy-menu-do-define byte-code defvar command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 1056 [easy-menu-convert-item easy-menu-create-menu easy-menu-do-define byte-code defvar command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 1064 [custom-declare-face command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 3168 [make-empty-face face-spec-set custom-declare-face command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 21032 [face-spec-reset-face face-spec-recalc face-spec-set custom-declare-face command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 11616 [face-spec-set-2 face-spec-recalc face-spec-set custom-declare-face command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 1056 [custom-handle-keyword custom-handle-all-keywords custom-declare-face command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 2112 [easy-menu-convert-item easy-menu-create-menu easy-menu-do-define byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 1056 [easy-menu-do-define byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 1056 [easy-menu-convert-item easy-menu-create-menu easy-menu-do-define command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 2120 [do-after-load-evaluation command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil nil] 1056 [read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 5779 [global-font-lock-mode-cmhh minibuffer-mode read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 1056 ["#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_82>" minibuffer-setup read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 1576 [keymap-canonicalize redisplay_internal\ \(C\ function\) read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 1056 [read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 11930 [tty-color-desc redisplay_internal\ \(C\ function\) read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 1024 [font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f40755efdc03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil] 22245 [font-lock-default-fontify-syntactically font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f40755efdc03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil] 1024 [lisp--el-match-keyword font-lock-fontify-keywords-region font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f40755efdc03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute] 1024 [lisp-mode--search-key "#<compiled -0x18f7e1f4923b1108>" font-lock-fontify-keywords-region font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f40755efdc03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively] 2048 ["#<compiled 0x156200935f5ab7d1>" font-lock-fontify-keywords-region font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f40755efdc03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute] 1024 [lisp--match-confusable-symbol-character font-lock-fontify-keywords-region font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f40755efdc03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute] 2264 [redisplay_internal\ \(C\ function\) read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 7288 [syntax-ppss show-paren--default show-paren-function apply timer-event-handler read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil] 1056 [command-execute read-from-minibuffer read-shell-command byte-code command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 16 [split-string-shell-command term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 5381 [term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil nil] 2085 [comint-bol shell-backward-command shell--parse-pcomplete-arguments split-string-shell-command term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil] 704 [shell--parse-pcomplete-arguments split-string-shell-command term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 1361 [make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil nil] 4312 [window-inside-pixel-edges window-screen-lines term-mode make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil] 1056 ["#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_28>" advice--add-function term-mode make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil] 40 [advice--copy advice--make advice--add-function term-mode make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil] 1056 ["#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_30>" advice--add-function term-mode make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil] 40 [term-mode make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 40 [term-move-columns term-set-scroll-region term--reset-scroll-region term-mode make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil] 704 [font-lock-mode-internal font-lock-default-function font-lock-mode turn-on-font-lock turn-on-font-lock-if-desired global-font-lock-mode-enable-in-buffers run-hooks run-mode-hooks term-mode make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute] 1056 [called-interactively-p font-lock-mode turn-on-font-lock turn-on-font-lock-if-desired global-font-lock-mode-enable-in-buffers run-hooks run-mode-hooks term-mode make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil] 1056 [term-exec make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil nil] 15375 [term--bash-needs-EMACSp term-exec-1 term-exec make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil] 1599 [term-exec-1 term-exec make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil nil] 1056 [start-process term-exec-1 term-exec make-term term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil nil] 3879 [record-window-buffer set-window-buffer window--display-buffer display-buffer-same-window display-buffer pop-to-buffer pop-to-buffer-same-window term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil] 1056 [window--display-buffer display-buffer-same-window display-buffer pop-to-buffer pop-to-buffer-same-window term funcall-interactively command-execute execute-extended-command funcall-interactively command-execute nil nil nil nil nil] 681 [execute-extended-command--shorter "#<compiled -0xb30f43a056c4866>" apply timer-event-handler nil nil nil nil nil nil nil nil nil nil nil nil] 10560 ["#<compiled 0x1a044bbfab7de9f2>" execute-extended-command--shorter "#<compiled -0xb30f43a056c4866>" apply timer-event-handler nil nil nil nil nil nil nil nil nil nil nil] 1906 [execute-extended-command--shorter-1 execute-extended-command--shorter "#<compiled -0xb30f43a056c4866>" apply timer-event-handler nil nil nil nil nil nil nil nil nil nil nil] 1152 ["#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_26>" term--update-term-menu redisplay_internal\ \(C\ function\) nil nil nil nil nil nil nil nil nil nil nil nil nil] 1024 [term--update-term-menu redisplay_internal\ \(C\ function\) nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 127 [easy-menu-convert-item-1 easy-menu-convert-item easy-menu-create-menu easy-menu-change term--update-term-menu redisplay_internal\ \(C\ function\) nil nil nil nil nil nil nil nil nil nil] 336 [term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 3435429 [term--update-term-menu redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 127 [if eval redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 84992 [timer--time-less-p timer--activate timer-activate-when-idle timer-event-handler nil nil nil nil nil nil nil nil nil nil nil nil] 3168 [if eval term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 132240 [unless eval term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 8448 [term-move-columns term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 139862 [internal--before-save-selected-window term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 9504 [jit-lock-fontify-now jit-lock-function term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 37456 [term-move-to-column term-move-columns term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 5280 [window-pixel-edges window-at-side-p mode-line-default-help-echo redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 14784 [syntax-ppss show-paren--default show-paren-function apply timer-event-handler nil nil nil nil nil nil nil nil nil nil nil] 1056 [jit-lock-fontify-now jit-lock-function vertical-motion term-erase-in-line term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 1016 [term-switch-to-alternate-sub-buffer term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 1056 [term-down term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 1056 [term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 539616 [timer-set-time run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil] 181175 [derived-mode-p font-lock-set-defaults font-lock-fontify-region "#<compiled -0x1552f653d83c3a03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil] 16896 [font-lock-fontify-region "#<compiled -0x1552f6464c2a3403>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil] 1056 [term-erase-in-line term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 1360 [jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 3168 [term-move-columns term-down term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 6336 [term-insert-char term-down term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 1056 [run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 222940 [timer--activate timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil] 2276048 [jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 1715715 [timer--time-less-p timer--activate timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil] 1336247 [font-lock-fontify-region "#<compiled -0x1552fe55e3467003>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil] 700480 [jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 352240 [jit-lock-after-change term-move-to-column term-move-columns term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 8704 [timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil] 10560 [derived-mode-p font-lock-set-defaults font-lock-fontify-region "#<compiled -0x1554f8d728b20403>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil] 32736 [term-move-columns term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 93984 [jit-lock-after-change term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 855248 [font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1554fdea900e2c03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil] 820512 [term-move-columns term-down term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 41184 [term-horizontal-column term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 20796 [term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 2112 [apply timer-event-handler term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 82880 [font-lock-extend-region-wholelines font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f71a36b2fc03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil] 22855 [font-lock-set-defaults font-lock-fontify-region "#<compiled -0x1552f5a2c9e7a803>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil] 30624 [run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 35527 ["#<compiled 0x2a9b9e93e687e>" jit-lock-after-change term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 15518 [term-move-columns term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 2112 [font-lock-fontify-region "#<compiled -0x1554fcbcecc73e03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 23888 ["#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_0>" internal--before-save-selected-window term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 4144 [copy-marker jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 17552 [eval term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 3470 [font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1554fce04ab8d803>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function term-emulate-terminal nil nil nil nil nil nil nil nil nil] 12432 [timer--time timer--time-less-p timer--activate timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil] 6940 [unless eval redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 4224 [string-to-number term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 5205 [timer-relative-time run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil] 3470 ["#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_9>" apply timer-event-handler nil nil nil nil nil nil nil nil nil nil nil nil nil] 1056 [syntax-ppss-flush-cache term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 3470 [timer-set-function run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil] 1735 [timer-event-handler term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 1735 [match-string term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 3470 [jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 1735 [font-lock-fontify-region "#<compiled -0x1540fe59cc42d603>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil] 5200 [font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1540fe59cc42d603>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil] 4144 [font-lock-set-defaults font-lock-fontify-region "#<compiled -0x1540fe59cc42d603>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil] 1056 [text-property-any jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 5205 [run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil nil] 1280 [timer-set-time run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil nil] 1536 [timer--activate timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil nil] 3072 [timer--time-less-p timer--activate timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-goto term-handle-ansi-escape term-emulate-terminal nil nil nil nil nil] 1056 [font-lock-extend-jit-lock-region-after-change jit-lock-after-change term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 3470 [timer-set-time run-at-time run-with-timer jit-lock-fontify-now jit-lock-function redisplay_internal\ \(C\ function\) term-emulate-terminal nil nil nil nil nil nil nil nil nil] 24 [timer-set-time run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil] 336 [run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil] 128 [timer--activate timer-activate run-at-time run-with-timer jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil] 1776 [term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 696686 [term-insert-char term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil nil] 626696 [font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1552f7d7dcdc7903>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil] 551152 [jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 966976 [font-lock-set-defaults font-lock-fontify-region "#<compiled -0x1552f717581f4503>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil] 8448 [jit-lock-after-change term-insert-char term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 793093 [font-lock-fontify-region "#<compiled -0x1552f49195387503>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil] 449088 [jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 298368 [text-property-any jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 1735 [font-lock-default-unfontify-region font-lock-unfontify-region font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1540f4b56edb7603>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-emulate-terminal nil nil nil nil nil nil] 5205 ["#<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_9>" apply timer-event-handler term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 1056 [font-lock-default-unfontify-region font-lock-unfontify-region font-lock-default-fontify-region font-lock-fontify-region "#<compiled -0x1546fc636c304d03>" jit-lock--run-functions jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil] 1735 [syntax-ppss-flush-cache term-insert-char term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil nil] 1735 ["#<compiled 0x2a9b9e93e687e>" jit-lock-after-change term-insert-char term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil nil] 1735 [match-data jit-lock-fontify-now jit-lock-function vertical-motion term-down term-emulate-terminal nil nil nil nil nil nil nil nil nil nil] 3470 [timer-set-time run-at-time undo-auto--boundary-ensure-timer undo-auto--undoable-change term-handle-exit term-sentinel nil nil nil nil nil nil nil nil nil nil] 24 [term-sentinel nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil] 1016 [read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil nil nil nil nil nil] 4144 [show-paren-function apply timer-event-handler completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil] 4144 [window-min-size frame-windows-min-size completing-read-default read-extended-command-1 read-extended-command byte-code command-execute nil nil nil nil nil nil nil nil nil] 1056)) (25475 48364 744075 996000) nil]

[-- Attachment #1.4: Type: text/plain, Size: 196 bytes --]


-- 
Akib Azmain Turja, GPG key: 70018CE5819F17A3BBA666AFE74F0EFA922AE7F5
Fediverse: akib@hostux.social
Codeberg: akib
emailselfdefense.fsf.org | "Nothing can be secure without encryption."

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

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

* bug#59641: term is very slow
  2022-11-27 20:00 bug#59641: term is very slow Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-11-27 20:31 ` Eli Zaretskii
  2022-12-16 18:29   ` Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2022-11-27 20:31 UTC (permalink / raw)
  To: Akib Azmain Turja; +Cc: 59641

> Date: Mon, 28 Nov 2022 02:00:29 +0600
> From:  Akib Azmain Turja via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
> 
> Term mode is very slow.  On my computer, Coterm is 2-3x faster than
> term, and my own terminal emulator, Eat, is 4-5x faster.
> 
> I tried to profile Term.  Steps:
> 
> 1. emacs -Q (+ -nw, environment variable DISPLAY was unset)
> 2. M-x profiler-start RET cpu+mem RET
> 3. M-x term
> 4. Run the following stupid command:
>    timeout 1 bash -c 'i=0 ; while true ; do echo $i ; i=$((i+1)) ; done'
>    Note I also run emacs -nw in before this command.
> 5. Wait for finishing.
> 6. M-x profiler-stop
> 7. M-x profiler-report
> 
> Here are the reports (attached), but don't seem to be human readable:

Copy them from the display shown by profiler-report, after you expand it
completely.

And the "cpu" profile is enough; the "mem" one doesn't add anything useful.





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

* bug#59641: term is very slow
  2022-11-27 20:31 ` Eli Zaretskii
@ 2022-12-16 18:29   ` Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-12-16 18:57     ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-12-16 18:29 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 59641

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

Eli Zaretskii <eliz@gnu.org> writes:

>> Date: Mon, 28 Nov 2022 02:00:29 +0600
>> From:  Akib Azmain Turja via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>> 
>> Term mode is very slow.  On my computer, Coterm is 2-3x faster than
>> term, and my own terminal emulator, Eat, is 4-5x faster.
>> 
>> I tried to profile Term.  Steps:
>> 
>> 1. emacs -Q (+ -nw, environment variable DISPLAY was unset)
>> 2. M-x profiler-start RET cpu+mem RET
>> 3. M-x term
>> 4. Run the following stupid command:
>>    timeout 1 bash -c 'i=0 ; while true ; do echo $i ; i=$((i+1)) ; done'
>>    Note I also run emacs -nw in before this command.
>> 5. Wait for finishing.
>> 6. M-x profiler-stop
>> 7. M-x profiler-report
>> 
>> Here are the reports (attached), but don't seem to be human readable:
>
> Copy them from the display shown by profiler-report, after you expand it
> completely.
>
> And the "cpu" profile is enough; the "mem" one doesn't add anything useful.

Sorry, I missed this reply.  I found this in debbugs.gnu.org.  :O

Here is the data:  (I didn't redo the steps, I just did
'M-x profiler-find-profile RET path/to/profile'.  ;)  )

--8<---------------cut here---------------start------------->8---
        9397  95% - term-emulate-terminal
        2710  27%  - term-handle-ansi-escape
        1831  18%   - term-down
           8   0%      term-move-columns
         765   7%   - term-goto
         714   7%      term-down
          82   0%   - term--handle-colors-list
          66   0%    - term--color-as-hex
          34   0%     - face-background
          34   0%      - face-attribute
          20   0%       - face-attribute-merged-with
          16   0%          face-attribute
           6   0%         face-attribute
          32   0%     - face-foreground
          20   0%      - face-attribute
           8   0%         face-attribute
        1846  18%  - term-down
          68   0%   - vertical-motion
          68   0%    - jit-lock-function
          68   0%     - jit-lock-fontify-now
          28   0%      - jit-lock--run-functions
           8   0%       - #<compiled -0x1552f4e0aae95e03>
           8   0%        - font-lock-fontify-region
           8   0%         - font-lock-default-fontify-region
           8   0%            font-lock-unfontify-region
           8   0%       - #<compiled -0x1554fa224e318f03>
           8   0%        - font-lock-fontify-region
           8   0%           font-lock-default-fontify-region
           4   0%       - #<compiled -0x1546c88d0dca1d03>
           4   0%        - font-lock-fontify-region
           4   0%         - font-lock-default-fontify-region
           4   0%            font-lock-extend-region-wholelines
           4   0%       - #<compiled -0x1546c2ed8adb7d03>
           4   0%          font-lock-fontify-region
          68   0%   - term-insert-char
          28   0%      jit-lock-after-change
          28   0%     term-move-columns
         379   3%  - vertical-motion
         363   3%   - jit-lock-function
         317   3%    - jit-lock-fontify-now
         155   1%     - run-with-timer
         155   1%      - run-at-time
         100   1%       - timer-activate
          96   0%        - timer--activate
           8   0%           timer--time-less-p
          20   0%         timer-set-time
          98   0%     - jit-lock--run-functions
          22   0%      - #<compiled -0x1552ff392e9c9603>
          22   0%         font-lock-fontify-region
          20   0%      - #<compiled -0x1552f71a36b2fc03>
          20   0%       - font-lock-fontify-region
          20   0%        - font-lock-default-fontify-region
          20   0%         - font-lock-extend-region-wholelines
          20   0%            syntax-propertize-wholelines
          20   0%      - #<compiled -0x1546fd5b53d9da03>
          20   0%       - font-lock-fontify-region
          20   0%          font-lock-default-fontify-region
          12   0%      - #<compiled -0x1552f745b3231203>
          12   0%       - font-lock-fontify-region
          12   0%        - font-lock-default-fontify-region
          12   0%           font-lock-extend-region-wholelines
          12   0%      - #<compiled -0x1540fac747b55603>
          12   0%       - font-lock-fontify-region
          12   0%        - font-lock-default-fontify-region
          12   0%           font-lock-unfontify-region
           8   0%        #<compiled -0x1540fac747b55603>
           4   0%      - #<compiled -0x1540f619efa85203>
           4   0%       - font-lock-fontify-region
           4   0%          font-lock-set-defaults
         235   2%  - term-move-columns
          10   0%     term-move-to-column
         137   1%    term-handle-deferred-scroll
         111   1%    jit-lock-after-change
          24   0%  - redisplay_internal (C function)
           8   0%   - term--update-term-menu
           8   0%    - easy-menu-change
           8   0%     - easy-menu-add-item
           8   0%      - easy-menu-get-map
           8   0%       - mapcar
           8   0%        - #<compiled 0x12afad0b062c4ebb>
           8   0%           easy-menu-lookup-name
           8   0%   - jit-lock-function
           8   0%    - jit-lock-fontify-now
           8   0%     - jit-lock--run-functions
           4   0%      - #<compiled -0x1540fe59cc42d603>
           4   0%       - font-lock-fontify-region
           4   0%          font-lock-set-defaults
           4   0%      - #<compiled -0x1540fe59cc42d603>
           4   0%         font-lock-fontify-region
           8   0%   - eval
           4   0%      if
          12   0%    syntax-ppss-flush-cache
          12   0%  - timer-event-handler
          12   0%   - apply
           4   0%    - show-paren-function
           4   0%     - show-paren--default
           4   0%        syntax-ppss
           8   0%  - eval
           8   0%     if
           4   0%  - jit-lock-function
           4   0%   - jit-lock-fontify-now
           4   0%    - jit-lock--run-functions
           4   0%       #<compiled -0x1546deb559806303>
         347   3% - ...
         347   3%    Automatic GC
         127   1% - command-execute
          82   0%  - funcall-interactively
          77   0%   - execute-extended-command
          65   0%    - command-execute
          53   0%     - byte-code
          26   0%      - require
          26   0%         byte-code
           4   0%      - read-shell-command
           4   0%         read-from-minibuffer
           8   0%       funcall-interactively
           4   0%     - defvar
           4   0%        byte-code
           4   0%     term-send-raw
          45   0%  - byte-code
          45   0%   - read-extended-command
          45   0%    - read-extended-command-1
          40   0%     - completing-read-default
          11   0%      - timer-event-handler
          11   0%       - apply
           7   0%          #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_9>
           4   0%        - show-paren-function
           2   0%           show-paren--default
           3   0%        #<compiled -0xa873503662230e4>
           6   0% - timer-event-handler
           6   0%  - apply
           4   0%   - #<compiled -0xb30f43a056c4866>
           4   0%    - execute-extended-command--shorter
           4   0%       #<compiled 0x1a044bbfab7de9f2>
           2   0%   - show-paren-function
           2   0%      buffer-match-p
           2   0% - redisplay_internal (C function)
           2   0%  - redisplay--pre-redisplay-functions
           2   0%   - run-hook-with-args
           2   0%      redisplay--update-region-highlight
--8<---------------cut here---------------end--------------->8---

-- 
Akib Azmain Turja, GPG key: 70018CE5819F17A3BBA666AFE74F0EFA922AE7F5
Fediverse: akib@hostux.social
Codeberg: akib
emailselfdefense.fsf.org | "Nothing can be secure without encryption."

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

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

* bug#59641: term is very slow
  2022-12-16 18:29   ` Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-12-16 18:57     ` Eli Zaretskii
  2022-12-17 12:32       ` Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
  0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2022-12-16 18:57 UTC (permalink / raw)
  To: Akib Azmain Turja; +Cc: 59641

> From: Akib Azmain Turja <akib@disroot.org>
> Cc: 59641@debbugs.gnu.org
> Date: Sat, 17 Dec 2022 00:29:02 +0600
> 
> >> Here are the reports (attached), but don't seem to be human readable:
> >
> > Copy them from the display shown by profiler-report, after you expand it
> > completely.
> >
> > And the "cpu" profile is enough; the "mem" one doesn't add anything useful.
> 
> Sorry, I missed this reply.  I found this in debbugs.gnu.org.  :O
> 
> Here is the data:  (I didn't redo the steps, I just did
> 'M-x profiler-find-profile RET path/to/profile'.  ;)  )
> 
> --8<---------------cut here---------------start------------->8---
>         9397  95% - term-emulate-terminal
>         2710  27%  - term-handle-ansi-escape
>         1831  18%   - term-down
>            8   0%      term-move-columns
>          765   7%   - term-goto

Doesn't surprise me: most of the time is spent in term.el's business
logic, not in Emacs display primitives.

If you want to work on speeding up term.el, I suggest to start by
loading term.el (not term.elc) manually, and repeating the profiling
session.  That could tell you in more detail where are the hot sports
in those functions at the top of the profile.  Then some clever
optimization ideas are needed to make it significantly faster.

Thanks.





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

* bug#59641: term is very slow
  2022-12-16 18:57     ` Eli Zaretskii
@ 2022-12-17 12:32       ` Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
  2022-12-17 15:47         ` Eli Zaretskii
  0 siblings, 1 reply; 6+ messages in thread
From: Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-12-17 12:32 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 59641

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

I missed this again!  There is definitely something wrong.  Anyway...

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Akib Azmain Turja <akib@disroot.org>
>> Cc: 59641@debbugs.gnu.org
>> Date: Sat, 17 Dec 2022 00:29:02 +0600
>> 
>> >> Here are the reports (attached), but don't seem to be human readable:
>> >
>> > Copy them from the display shown by profiler-report, after you expand it
>> > completely.
>> >
>> > And the "cpu" profile is enough; the "mem" one doesn't add anything useful.
>> 
>> Sorry, I missed this reply.  I found this in debbugs.gnu.org.  :O
>> 
>> Here is the data:  (I didn't redo the steps, I just did
>> 'M-x profiler-find-profile RET path/to/profile'.  ;)  )
>> 
>> --8<---------------cut here---------------start------------->8---
>>         9397  95% - term-emulate-terminal
>>         2710  27%  - term-handle-ansi-escape
>>         1831  18%   - term-down
>>            8   0%      term-move-columns
>>          765   7%   - term-goto
>
> Doesn't surprise me: most of the time is spent in term.el's business
> logic, not in Emacs display primitives.

I know that very well.

>
> If you want to work on speeding up term.el, I suggest to start by
> loading term.el (not term.elc) manually, and repeating the profiling
> session.  That could tell you in more detail where are the hot sports
> in those functions at the top of the profile.  Then some clever
> optimization ideas are needed to make it significantly faster.
>
> Thanks.

I guess the hot spot here is 'vertical-motion'.  'vertical-motion' takes
various things into account, which are unnecessary for a terminal
emulator.  Eat implements its own motion functions, which make their own
assumptions (e.g. each character takes exactly one column, each line
finishes with a newline, etc).  I guess this might be a reason why Eat
is faster.

Note that I'm the author of Eat, and Term is a direct competitor of Eat.
So although I want Term to be faster, I will be of course biased if I
try to improve Term.  But don't get me wrong, I really want Term to do
better; competition is fun when you have tough competitors!

Here is the CPU profile data, with 'term.el' loaded:

--8<---------------cut here---------------start------------->8---
        1551  87% - term-emulate-terminal
        1551  87%  - if
        1551  87%   - progn
        1551  87%    - save-current-buffer
        1515  85%     - let*
        1515  85%      - let
        1515  85%       - save-current-buffer
        1515  85%        - unwind-protect
        1515  85%         - progn
        1361  76%          - save-restriction
        1361  76%           - while
        1341  75%            - let
        1130  63%             - let*
        1126  63%              - cond
        1126  63%               - let
         586  33%                - funcall
         108   6%                 - vertical-motion
         100   5%                  - jit-lock-function
          84   4%                   - jit-lock-fontify-now
          64   3%                    - jit-lock--run-functions
          24   1%                     - #<compiled -0x1546ff15e132d103>
          24   1%                      - font-lock-fontify-region
          24   1%                         font-lock-default-fontify-region
          20   1%                     - #<compiled -0x1540f7d5aaa5a503>
          20   1%                        font-lock-fontify-region
           4   0%                     - #<compiled -0x1546e4779f110a03>
           4   0%                      - font-lock-fontify-region
           4   0%                       - font-lock-default-fontify-region
           4   0%                        - font-lock-extend-region-wholelines
           4   0%                           syntax-propertize-wholelines
           4   0%                       #<compiled -0x15468ebfcfc1d703>
           4   0%                     - #<compiled -0x15464f08f89a1f03>
           4   0%                      - font-lock-fontify-region
           4   0%                       - font-lock-default-fontify-region
           4   0%                          #<compiled -0x7e8feab343044be>
         532  30%                - if
         528  29%                 - term-down
         528  29%                  - let
         344  19%                   - if
         304  17%                    - if
         304  17%                     - progn
         304  17%                      - setq
         300  16%                       - -
         300  16%                        - funcall
          56   3%                         - vertical-motion
          52   2%                          - jit-lock-function
          48   2%                           - jit-lock-fontify-now
          32   1%                            - jit-lock--run-functions
          12   0%                             - #<compiled -0x1546ecc8334f3d03>
          12   0%                                font-lock-fontify-region
           8   0%                             - #<compiled -0x1546d143afc77e03>
           8   0%                              - font-lock-fontify-region
           8   0%                                 font-lock-default-fontify-region
           8   0%                             - #<compiled -0x1546c17e6a2d8c03>
           8   0%                              - font-lock-fontify-region
           8   0%                               - font-lock-default-fontify-region
           8   0%                                  font-lock-extend-region-wholelines
          28   1%                    - progn
          28   1%                     - term-move-columns
          28   1%                      - term-move-to-column
          28   1%                         let
           4   0%                    - and
           4   0%                       =
           4   0%                      term-adjust-current-row-cache
         184  10%                   - cond
         176   9%                    - term-insert-char
         172   9%                     - let
          56   3%                      - put-text-property
          20   1%                         jit-lock-after-change
           4   0%                         syntax-ppss-flush-cache
          48   2%                      - insert-char
          20   1%                         jit-lock-after-change
           4   0%                and
         203  11%             - if
         187  10%              - progn
         147   8%               - let
          24   1%                - progn
          24   1%                   setq
          24   1%                - put-text-property
           8   0%                   jit-lock-after-change
          20   1%                - insert
           8   0%                   jit-lock-after-change
           4   0%                - term-horizontal-column
           4   0%                 - -
           4   0%                  - term-current-column
           4   0%                   - cond
           4   0%                      setq
           8   0%                 setq
           8   0%                 if
          16   0%              setq
         136   7%          - if
         136   7%           - progn
         136   7%            - term-handle-deferred-scroll
         136   7%             - let
         136   7%              - if
         136   7%               - progn
         136   7%                - save-excursion
         136   7%                   funcall
          18   1%          - while
          18   1%           - progn
          18   1%            - if
          18   1%             - progn
          18   1%              - let
          18   1%               - if
          18   1%                - progn
          18   1%                 - if
          18   1%                    not
          36   2%     - if
          36   2%      - progn
          36   2%       - redisplay
           4   0%        - redisplay_internal (C function)
           4   0%         - eval
           4   0%            if
         171   9% - ...
         171   9%    Automatic GC
          40   2% - command-execute
          22   1%  - byte-code
          22   1%   - read-extended-command
          22   1%    - read-extended-command-1
           8   0%       completing-read-default
          18   1%  - funcall-interactively
          10   0%   - minibuffer-complete
          10   0%    - completion-in-region
          10   0%     - completion--in-region
           6   0%      - #<compiled -0x737dfeebbd42962>
           6   0%       - apply
           6   0%        - #<compiled 0x147bf53b9756e246>
           6   0%         - completion--in-region-1
           6   0%          - completion--do-completion
           6   0%           - completion-try-completion
           6   0%            - completion--nth-completion
           6   0%             - completion--some
           6   0%              - #<compiled -0xb70f507d86b95cc>
           6   0%               - completion-basic-try-completion
           6   0%                - #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_54>
           6   0%                   complete-with-action
           4   0%      - #<compiled -0x737dfeebbd42962>
           4   0%       - apply
           4   0%        - #<compiled 0x147bf53b9756e246>
           4   0%         - completion--in-region-1
           4   0%          - completion--do-completion
           4   0%           - completion-try-completion
           4   0%            - completion--nth-completion
           4   0%             - completion--some
           4   0%              - #<compiled -0xb70f507d86b95cc>
           4   0%               - completion-pcm-try-completion
           4   0%                - completion-pcm--find-all-completions
           4   0%                 - completion-pcm--all-completions
           4   0%                  - #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_54>
           4   0%                     complete-with-action
           8   0%   - execute-extended-command
           8   0%    - command-execute
           8   0%       funcall-interactively
           7   0% - timer-event-handler
           7   0%  - apply
           4   0%     #<compiled -0xabecf6a07658066>
           3   0%   - #<compiled -0xabecf6a07658066>
           3   0%      execute-extended-command--shorter
           2   0% - redisplay_internal (C function)
           2   0%  - term--update-term-menu
           2   0%   - if
           2   0%    - progn
           2   0%     - let
           2   0%      - easy-menu-change
           2   0%       - mapcar
           2   0%        - #<lambda 0x1984cdb809973d69>
           2   0%         - vector
           2   0%            format
--8<---------------cut here---------------end--------------->8---

-- 
Akib Azmain Turja, GPG key: 70018CE5819F17A3BBA666AFE74F0EFA922AE7F5
Fediverse: akib@hostux.social
Codeberg: akib
emailselfdefense.fsf.org | "Nothing can be secure without encryption."

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

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

* bug#59641: term is very slow
  2022-12-17 12:32       ` Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-12-17 15:47         ` Eli Zaretskii
  0 siblings, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2022-12-17 15:47 UTC (permalink / raw)
  To: Akib Azmain Turja; +Cc: 59641

> From: Akib Azmain Turja <akib@disroot.org>
> Cc: 59641@debbugs.gnu.org
> Date: Sat, 17 Dec 2022 18:32:09 +0600
> 
> I guess the hot spot here is 'vertical-motion'.  'vertical-motion' takes
> various things into account, which are unnecessary for a terminal
> emulator.  Eat implements its own motion functions, which make their own
> assumptions (e.g. each character takes exactly one column, each line
> finishes with a newline, etc).  I guess this might be a reason why Eat
> is faster.

If there's no need for the specific features that vertical-motion
provides, calling it might indeed be unnecessary.





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

end of thread, other threads:[~2022-12-17 15:47 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-27 20:00 bug#59641: term is very slow Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-11-27 20:31 ` Eli Zaretskii
2022-12-16 18:29   ` Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-16 18:57     ` Eli Zaretskii
2022-12-17 12:32       ` Akib Azmain Turja via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-12-17 15:47         ` Eli Zaretskii

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).