Package: emacs;
Reported by: Kai Ma <justksqsf <at> gmail.com>
Date: Fri, 4 Aug 2023 21:43:01 UTC
Severity: normal
Found in version 29.1.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: Kai Ma <justksqsf <at> gmail.com> Subject: bug#65060: closed (Re: bug#65060: 29.1.50; display_count_lines segv) Date: Sat, 12 Aug 2023 12:09:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report #65060: 29.1.50; display_count_lines segv which was filed against the emacs package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 65060 <at> debbugs.gnu.org. -- 65060: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65060 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Eli Zaretskii <eliz <at> gnu.org> To: Kai Ma <justksqsf <at> gmail.com> Cc: 65060-done <at> debbugs.gnu.org Subject: Re: bug#65060: 29.1.50; display_count_lines segv Date: Sat, 12 Aug 2023 15:08:47 +0300> From: Kai Ma <justksqsf <at> gmail.com> > Date: Sat, 12 Aug 2023 19:56:27 +0800 > Cc: 65060 <at> debbugs.gnu.org > > Thanks. My guess was correct: the buffer in question was killed. > > Could you please try the patch below, and see if it avoids the > crashes? The patch causes Emacs to signal an error when > format-mode-line is called for a dead buffer, so if I did this > correctly, you should see that Emacs no longer crashes, but there are > error messages about a dead buffer in *Messages*. If this is what > happens, you should then take this up with the dirvish developers, and > ask them to avoid calling format-mode-line for a killed buffer. > > Thanks! The patch prevents the crash. I will report this to dirvish developers. Thanks, I've now installed the changes on the emacs-29 branch, and I'm closing this bug.
[Message part 3 (message/rfc822, inline)]
From: Kai Ma <justksqsf <at> gmail.com> To: bug-gnu-emacs <at> gnu.org Subject: 29.1.50; display_count_lines segv Date: Sat, 05 Aug 2023 05:41:54 +0800Emacs can crash due to memchr on null pointers inside display_count_lines: * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) frame #0: 0x00007ff813c6329d libsystem_platform.dylib`_platform_memchr$VARIANT$Haswell + 29 * frame #1: 0x000000010005c1ef emacs`display_count_lines(start_byte=1, limit_byte=650, count=17166, byte_pos_ptr=0x00007ff7bfef2ef8) at xdisp.c:28475:14 frame #2: 0x000000010005c019 emacs`count_lines(start_byte=1, end_byte=650) at xdisp.c:28421:10 frame #3: 0x00000001002666fe emacs`Fline_number_at_pos(position=(EMACS_INT) $385 = 650, absolute=(struct Lisp_Symbol *) $388 = 0x0000000100908010) at fns.c:6157:20 frame #4: 0x0000000100244708 emacs`eval_sub(form=(struct Lisp_Cons *) $390 = 0x000000011acc21d0) at eval.c:2501:15 frame #5: 0x00000001002444da emacs`eval_sub(form=(struct Lisp_Cons *) $392 = 0x000000011acc21e0) at eval.c:2465:25 frame #6: 0x0000000100246ea4 emacs`Flet(args=(struct Lisp_Cons *) $394 = 0x000000011acc1f80) at eval.c:996:18 frame #7: 0x0000000100244121 emacs`eval_sub(form=(struct Lisp_Cons *) $396 = 0x000000011acc2200) at eval.c:2449:8 frame #8: 0x0000000100244f0b emacs`Fprogn(body=(struct Lisp_Symbol *) $399 = 0x0000000100908010) at eval.c:436:13 frame #9: 0x000000010024cd1b emacs`funcall_lambda(fun=(struct Lisp_Cons *) $401 = 0x000000011acc1560, nargs=1, arg_vector=(struct Lisp_Symbol *) $404 = 0x0000000100908010) at eval.c:3233:11 frame #10: 0x000000010024adbf emacs`apply_lambda(fun=(struct Lisp_Cons *) $406 = 0x000000011acc1550, args=(struct Lisp_Cons *) $408 = 0x0000000116979d60, count=(bytes = 896)) at eval.c:3103:9 frame #11: 0x0000000100244c81 emacs`eval_sub(form=(struct Lisp_Cons *) $410 = 0x0000000116cbb2f0) at eval.c:2588:9 frame #12: 0x000000010024a6b6 emacs`Feval(form=(struct Lisp_Cons *) $412 = 0x0000000116cbb2f0, lexical=(struct Lisp_Symbol *) $415 = 0x0000000100908010) at eval.c:2361:28 frame #13: 0x000000010024c527 emacs`funcall_subr(subr=0x0000000100406c58, numargs=1, args=(struct Lisp_Symbol *) $418 = 0x0000000100908010) at eval.c:3036:15 frame #14: 0x000000010024c1e5 emacs`funcall_general(fun=(struct Lisp_Subr *) $423 = 0x0000000100406c58, numargs=1, args=(struct Lisp_Symbol *) $426 = 0x0000000100908010) at eval.c:2941:12 frame #15: 0x0000000100247644 emacs`Ffuncall(nargs=2, args=(struct Lisp_Symbol *) $429 = 0x0000000100908010) at eval.c:2995:21 frame #16: 0x00000001002487f4 emacs`internal_condition_case_n(bfun=(emacs`Ffuncall at eval.c:2975), nargs=2, args=(struct Lisp_Symbol *) $432 = 0x0000000100908010, handlers=(struct Lisp_Symbol *) $435 = 0x0000000100908040, hfun=(emacs`safe_eval_handler at xdisp.c:3025)) at eval.c:1558:25 frame #17: 0x000000010003e5e4 emacs`safe__call(inhibit_quit=true, nargs=2, func=(struct Lisp_Symbol *) $438 = 0x000000010090e370, ap=0x00007ff7bfef3d10) at xdisp.c:3059:13 frame #18: 0x000000010003e753 emacs`safe__call1(inhibit_quit=true, fn=(struct Lisp_Symbol *) $441 = 0x000000010090e370) at xdisp.c:3095:12 frame #19: 0x00000001000a620a emacs`safe__eval(inhibit_quit=true, sexpr=(struct Lisp_Cons *) $443 = 0x0000000116cbb2f0) at xdisp.c:3109:10 frame #20: 0x000000010004f6ad emacs`display_mode_element(it=0x00007ff7bfef45a0, depth=2, field_width=0, precision=0, elt=(struct Lisp_Cons *) $445 = 0x0000000116cbb2d0, props=(struct Lisp_Symbol *) $448 = 0x0000000100908010, risky=false) at xdisp.c:27387:10 frame #21: 0x000000010004fb29 emacs`display_mode_element(it=0x00007ff7bfef45a0, depth=1, field_width=0, precision=0, elt=(struct Lisp_Cons *) $450 = 0x0000000116cbb2c0, props=(struct Lisp_Symbol *) $453 = 0x0000000100908010, risky=false) at xdisp.c:27473:13 frame #22: 0x000000010005bf1a emacs`Fformat_mode_line(format=(struct Lisp_Cons *) $455 = 0x0000000116cbb2c0, face=(struct Lisp_Symbol *) $458 = 0x0000000100908010, window=(struct window *) $463 = 0x00000002fbf9d428, buffer=(struct buffer *) $468 = 0x00000001033b8410) at xdisp.c:27700:3 frame #23: 0x0000000100244760 emacs`eval_sub(form=(struct Lisp_Cons *) $470 = 0x0000000116cbb280) at eval.c:2508:15 frame #24: 0x000000010024684b emacs`FletX(args=(struct Lisp_Cons *) $472 = 0x0000000116cbb190) at eval.c:934:10 frame #25: 0x0000000100244121 emacs`eval_sub(form=(struct Lisp_Cons *) $474 = 0x0000000116cbb180) at eval.c:2449:8 frame #26: 0x000000010024a6b6 emacs`Feval(form=(struct Lisp_Cons *) $476 = 0x0000000116cbb180, lexical=(struct Lisp_Symbol *) $479 = 0x0000000100908010) at eval.c:2361:28 frame #27: 0x000000010024c527 emacs`funcall_subr(subr=0x0000000100406c58, numargs=1, args=(struct Lisp_Symbol *) $482 = 0x0000000100908010) at eval.c:3036:15 frame #28: 0x000000010024c1e5 emacs`funcall_general(fun=(struct Lisp_Subr *) $487 = 0x0000000100406c58, numargs=1, args=(struct Lisp_Symbol *) $490 = 0x0000000100908010) at eval.c:2941:12 frame #29: 0x0000000100247644 emacs`Ffuncall(nargs=2, args=(struct Lisp_Symbol *) $493 = 0x0000000100908010) at eval.c:2995:21 frame #30: 0x00000001002487f4 emacs`internal_condition_case_n(bfun=(emacs`Ffuncall at eval.c:2975), nargs=2, args=(struct Lisp_Symbol *) $496 = 0x0000000100908010, handlers=(struct Lisp_Symbol *) $499 = 0x0000000100908040, hfun=(emacs`safe_eval_handler at xdisp.c:3025)) at eval.c:1558:25 frame #31: 0x000000010003e5e4 emacs`safe__call(inhibit_quit=true, nargs=2, func=(struct Lisp_Symbol *) $502 = 0x000000010090e370, ap=0x00007ff7bfef6140) at xdisp.c:3059:13 frame #32: 0x000000010003e753 emacs`safe__call1(inhibit_quit=true, fn=(struct Lisp_Symbol *) $505 = 0x000000010090e370) at xdisp.c:3095:12 frame #33: 0x00000001000a620a emacs`safe__eval(inhibit_quit=true, sexpr=(struct Lisp_Cons *) $507 = 0x0000000116cbb180) at xdisp.c:3109:10 frame #34: 0x000000010004f6ad emacs`display_mode_element(it=0x00007ff7bfef6a20, depth=2, field_width=0, precision=0, elt=(struct Lisp_Cons *) $509 = 0x0000000116cbb160, props=(struct Lisp_Symbol *) $512 = 0x0000000100908010, risky=false) at xdisp.c:27387:10 frame #35: 0x000000010004fb29 emacs`display_mode_element(it=0x00007ff7bfef6a20, depth=1, field_width=0, precision=0, elt=(struct Lisp_Cons *) $514 = 0x0000000116cbb150, props=(struct Lisp_Symbol *) $517 = 0x0000000100908010, risky=false) at xdisp.c:27473:13 frame #36: 0x000000010003036a emacs`display_mode_line(w=0x00000002fbf9d428, face_id=MODE_LINE_INACTIVE_FACE_ID, format=(struct Lisp_Cons *) $519 = 0x0000000116cbb150) at xdisp.c:26899:7 frame #37: 0x0000000100085135 emacs`display_mode_lines(w=0x00000002fbf9d428) at xdisp.c:26812:7 frame #38: 0x0000000100091eec emacs`redisplay_window(window=(struct window *) $524 = 0x00000002fbf9d428, just_this_one_p=false) at xdisp.c:20535:7 frame #39: 0x000000010008de7d emacs`redisplay_window_0(window=(struct window *) $529 = 0x00000002fbf9d428) at xdisp.c:17616:5 frame #40: 0x0000000100248623 emacs`internal_condition_case_1(bfun=(emacs`redisplay_window_0 at xdisp.c:17614), arg=(struct window *) $534 = 0x00000002fbf9d428, handlers=(struct Lisp_Cons *) $536 = 0x0000000104de93c0, hfun=(emacs`redisplay_window_error at xdisp.c:17596)) at eval.c:1498:25 frame #41: 0x000000010008ca6c emacs`redisplay_windows(window=(struct window *) $541 = 0x00000002fbf9d428) at xdisp.c:17585:4 frame #42: 0x000000010008ca1b emacs`redisplay_windows(window=(struct window *) $546 = 0x00000002fbe51310) at xdisp.c:17579:2 frame #43: 0x000000010008ca1b emacs`redisplay_windows(window=(struct window *) $551 = 0x00000002fbed1258) at xdisp.c:17579:2 frame #44: 0x000000010004b0b4 emacs`redisplay_internal at xdisp.c:17035:5 frame #45: 0x0000000100051659 emacs`redisplay at xdisp.c:16218:3 frame #46: 0x0000000100163e49 emacs`read_char(commandflag=1, map=(struct Lisp_Cons *) $553 = 0x000000011cb67780, prev_event=(struct Lisp_Symbol *) $556 = 0x0000000100908010, used_mouse_menu=0x00007ff7bfefe10f, end_time=0x0000000000000000) at keyboard.c:2636:6 frame #47: 0x0000000100160ad8 emacs`read_key_sequence(keybuf=(struct Lisp_Symbol *) $559 = 0x0000000100908010, prompt=(struct Lisp_Symbol *) $562 = 0x0000000100908010, dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) at keyboard.c:10083:12 frame #48: 0x000000010015ee80 emacs`command_loop_1 at keyboard.c:1384:15 frame #49: 0x0000000100248558 emacs`internal_condition_case(bfun=(emacs`command_loop_1 at keyboard.c:1278), handlers=(struct Lisp_Symbol *) $565 = 0x00000001009080a0, hfun=(emacs`cmd_error at keyboard.c:936)) at eval.c:1474:25 frame #50: 0x000000010015e923 emacs`command_loop_2(handlers=(struct Lisp_Symbol *) $568 = 0x00000001009080a0) at keyboard.c:1133:11 frame #51: 0x0000000100247ce3 emacs`internal_catch(tag=(struct Lisp_Symbol *) $571 = 0x00000001009174c0, func=(emacs`command_loop_2 at keyboard.c:1129), arg=(struct Lisp_Symbol *) $574 = 0x00000001009080a0) at eval.c:1197:25 frame #52: 0x000000010015dc9a emacs`command_loop at keyboard.c:1111:2 frame #53: 0x000000010015da9f emacs`recursive_edit_1 at keyboard.c:720:9 frame #54: 0x000000010015e012 emacs`Frecursive_edit at keyboard.c:803:3 frame #55: 0x000000010015ae48 emacs`main(argc=1, argv=0x00007ff7bfefec90) at emacs.c:2529:3 frame #56: 0x00007ff8138de41f dyld`start + 1903 xbacktrace: (unsigned char *) data = 0x00000001003d4d0b "line-number-at-pos" (unsigned char *) data = 0x00000001003c6842 "-" (unsigned char *) data = 0x00000001003d45c5 "let" (unsigned char *) data = 0x0000000120f94b50 "dirvish-index-ml" (unsigned char *) data = 0x00000001003d4651 "eval" (unsigned char *) data = 0x00000001003c694f "format-mode-line" (unsigned char *) data = 0x00000001003d45c9 "let*" (unsigned char *) data = 0x00000001003d4651 "eval" (unsigned char *) data = 0x00000001003d8fe6 "redisplay_internal (C function)" I took a quick look at the function, and it turns out the cursor can be null even on the first iteration. After applying the following change, I can see "cursor is null" printed out just before the crash. diff --git a/src/xdisp.c b/src/xdisp.c index 9cddcfeda27..f994021bb3c 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -28457,6 +28457,8 @@ display_count_lines (ptrdiff_t start_byte, ceiling = min (limit_byte - 1, ceiling); ceiling_addr = BYTE_POS_ADDR (ceiling) + 1; base = (cursor = BYTE_POS_ADDR (start_byte)); + if (! cursor) + fprintf (stderr, "cursor is null\n"); do { The crash occurred when I was trying out dirvish with display-line-numbers-mode enabled. Unfortunately, this crash is not quite easy to reproduce. The best recipe I got so far is: 1. Create init.el (require 'package) (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) (use-package dirvish :ensure t :config (dirvish-override-dired-mode)) (global-display-line-numbers-mode +1) (dirvish-override-dired-mode) 2. emacs -q -l init.el 3. M-x dirvish 4. randomly kill dirvish buffers, and/or randomly delete dirvish windows. Chances are, at some point, Emacs crashes due to the above segv. I have reproduced the crash in emacs -q, but it was not easy. I will try to find a better recipe and post it here. In GNU Emacs 29.1.50 (build 1, x86_64-apple-darwin22.6.0, NS appkit-2299.70 Version 13.5 (Build 22G74)) of 2023-08-03 built on Kais-MacBook.local Repository revision: 7280e6aaa1978c6e26c4286db9c446fa74637fa4 Repository branch: emacs-29 Windowing system distributor 'Apple', version 10.3.2299 System Description: macOS 13.5 Configured using: 'configure --with-xwidgets --with-ns --with-tree-sitter -C 'LDFLAGS=-L/usr/local/opt/llvm/lib -L/usr/local/opt/bison/lib -L/usr/local/opt/flex/lib' 'CPPFLAGS=-I/usr/local/opt/llvm/include -I/usr/local/opt/flex/include'' Configured features: ACL DBUS GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM XWIDGETS ZLIB Important settings: value of $LC_ALL: zh_CN.utf-8 value of $LANG: zh_CN.utf-8 locale-coding-system: utf-8-unix Major mode: VTerm Minor modes in effect: repeat-mode: t vterm-copy-mode: t goto-address-mode: t global-git-commit-mode: t magit-auto-revert-mode: t shell-dirtrack-mode: t diff-hl-margin-mode: t recentf-mode: t yas-global-mode: t yas-minor-mode: t doom-modeline-mode: t winner-mode: t winum-mode: t which-key-mode: t global-hl-line-mode: t solaire-global-mode: t projectile-mode: t vertico-multiform-mode: t vertico-mouse-mode: t vertico-mode: t keyfreq-autosave-mode: t keyfreq-mode: t evil-leader-mode: t global-evil-surround-mode: t evil-surround-mode: t global-evil-collection-unimpaired-mode: t evil-collection-unimpaired-mode: t diredfl-global-mode: t evil-mode: t evil-local-mode: t corfu-popupinfo-mode: t global-corfu-mode: t marginalia-mode: t prescient-persist-mode: t global-ligature-mode: t ligature-mode: t pixel-scroll-precision-mode: t save-place-mode: t server-mode: t electric-pair-mode: t global-so-long-mode: t delete-selection-mode: t global-auto-revert-mode: t override-global-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t context-menu-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-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: /Users/kaima/.emacs.d/elpa/transient-20230723.1411/transient hides /Applications/Emacs.app/Contents/Resources/lisp/transient Features: (shadow ecomplete emacsbug tramp-archive tramp-gvfs tabify evil-collection-man man semantic/ia semantic/analyze/refs semantic/db-find semantic/db-ref semantic/senator semantic/decorate semantic/analyze semantic/sort semantic/scope semantic/analyze/fcn semantic/db eieio-base semantic/ctxt semantic/format semantic/tag-ls semantic/find evil-collection-ripgrep ripgrep evil-collection-wgrep wgrep repeat evil-collection-vterm vterm tramp tramp-loaddefs trampver tramp-integration tramp-compat evil-collection-term term ehelp vterm-module term/xterm xterm evil-collection-sh-script sh-script smie executable citre citre-global citre-tags citre-ctags citre-readtags citre-readtags-tables citre-backend-interface citre-ui-peek citre-ui-jump citre-common-tag citre-common-util c-ts-mode c-ts-common all-the-icons-ibuffer htmlfontify url-http url-gw url-auth evil-collection-shortdoc shortdoc cus-start flow-fill mm-archive gnus-html url-queue url-cache mm-url sort smiley gnus-cite mail-extr textsec uni-scripts idna-mapping uni-confusable textsec-check gnus-async gnus-bcklg gnus-dup qp gnus-ml disp-table align evil-collection-speedbar speedbar ezimage dframe haskell-mode haskell-cabal haskell-utils haskell-font-lock haskell-indentation haskell-string haskell-sort-imports haskell-lexeme haskell-align-imports haskell-complete-module haskell-ghc-support evil-collection-flymake flymake-proc flymake etags fileloop haskell-customize nndraft nnmh utf-7 nnfolder nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig nntp gnus-cache gnus-sum shr pixel-fill kinsoku url-file gnus-topic gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range gnus-win evil-collection-gnus gnus nnheader range org-protocol goto-addr org-capture magit-extras magit-bookmark 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 magit-repos magit-apply magit-wip magit-log magit-diff smerge-mode diff git-commit evil-collection-log-edit log-edit message sendmail yank-media rfc822 mml mml-sec evil-collection-epa epa gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader add-log magit-core magit-autorevert magit-margin magit-transient magit-process with-editor shell magit-mode transient magit-git magit-base which-func ido evil-collection-magit-section magit-section benchmark cursor-sensor crm org-clock evil-org-agenda evil-org evil-collection-org citeproc citeproc-itemgetters citeproc-biblatex parse-time citeproc-bibtex parsebib ol-bibtex bibtex iso8601 citeproc-cite citeproc-subbibs citeproc-sort citeproc-name citeproc-formatters citeproc-number rst citeproc-proc citeproc-disamb citeproc-itemdata citeproc-generic-elements citeproc-macro citeproc-choose citeproc-date citeproc-context citeproc-prange citeproc-style citeproc-locale citeproc-term citeproc-rt citeproc-lib citeproc-s oc-bibtex 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 org-agenda ox-html table ox-ascii ox-publish ox org-element org-persist org-id org-refile avl-tree org-tempo tempo org time-date ob-d2 ob-dot ob-python evil-collection-python python treesit ob-rust ob-C ccls ccls-member-hierarchy ccls-inheritance-hierarchy ccls-call-hierarchy ccls-tree ccls-code-lens ccls-semantic-highlight ccls-common lsp-mode lsp-protocol spinner network-stream puny nsm evil-collection-markdown-mode markdown-mode evil-collection-outline noutline outline ht inline epg rfc6068 epg-config cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine ob-emacs-lisp org-table org-loaddefs evil-collection-calendar cal-menu calendar cal-loaddefs ob ob-tangle ol ob-ref ob-lob ob-table ob-exp org-macro org-src org-keys oc ob-comint ob-core org-cycle org-fold ob-eval semantic/symref/grep semantic/symref semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local cedet consult-xref evil-collection-consult consult evil-collection-bookmark bookmark org-pcomplete pcomplete evil-collection-xref xref org-list org-footnote org-fold-core org-entities org-faces org-version bug-reference misearch multi-isearch all-the-icons-dired dired-filter dired-hacks-utils dired-aux dired-x org-compat autoinsert org-macs format-spec info-colors jka-compr vertico-directory evil-collection-helpful helpful cc-langs cc-vars cc-defs evil-collection-imenu imenu trace evil-collection-edebug edebug info-look help-fns radix-tree evil-collection-elisp-refs elisp-refs pulse hideshow display-line-numbers hl-todo rainbow-delimiters copilot copilot-balancer editorconfig editorconfig-core editorconfig-core-handle editorconfig-fnmatch jsonrpc evil-collection-ert ert evil-collection-debug debug backtrace find-func warnings symbol-overlay evil-collection-diff-hl diff-hl-margin diff-hl-dired diff-hl vc-hg evil-collection-vc-git vc-git evil-collection-log-view log-view pcvs-util evil-collection-vc-dir vc-dir ewoc vc vc-dispatcher evil-collection-diff-mode diff-mode recentf tree-widget yasnippet-snippets yasnippet doom-modeline doom-modeline-segments let-alist doom-modeline-env doom-modeline-core shrink-path f f-shortdoc s nerd-icons nerd-icons-faces nerd-icons-data nerd-icons-data-mdicon nerd-icons-data-flicon nerd-icons-data-codicon nerd-icons-data-devicon nerd-icons-data-sucicon nerd-icons-data-wicon nerd-icons-data-faicon nerd-icons-data-powerline nerd-icons-data-octicon nerd-icons-data-pomicon nerd-icons-data-ipsicon winner winum evil-collection-which-key which-key hl-line solaire-mode face-remap projectile project skeleton ibuf-macs find-dired lisp-mnt evil-collection-grep grep evil-collection-compile compile text-property-search evil-collection-comint comint ansi-osc ansi-color ibuf-ext evil-collection-ibuffer ibuffer ibuffer-loaddefs evil-collection-vertico vertico-multiform vertico-mouse vertico hardhacker-theme keyfreq prelude-nix prelude-evil evil-leader evil-surround evil-collection-unimpaired evil-collection-tabulated-list evil-collection-tab-bar evil-collection-so-long evil-collection-simple evil-collection-replace evil-collection-process-menu evil-collection-popup evil-collection-package-menu evil-collection-info evil-collection-indent evil-collection-image image-mode evil-collection-dired diredfl dired dired-loaddefs exif evil-collection-help evil-collection-eshell em-prompt esh-mode evil-collection-elisp-mode evil-collection-eldoc evil-collection-custom evil-collection-corfu evil-collection-buff-menu evil-collection annalist evil evil-integration evil-maps evil-commands evil-digraphs reveal evil-jumps evil-command-window evil-search evil-ex evil-types evil-macros evil-repeat evil-states evil-core evil-common thingatpt rect evil-vars prelude-irc prelude-apps prelude-mail prelude-os prelude-help prelude-lang-zig prelude-lang-web prelude-lang-agda agda2 prelude-lang-haskell prelude-lang-js prelude-lang-ml prelude-lang-coq prelude-lang-rust prelude-lang-python prelude-lang-cc prelude-lang-lisp prelude-prog prelude-blog prelude-org prelude-tex prelude-git prelude-dired prelude-chinese rime rime-predicates derived xdg posframe popup dash prelude-ibuffer prelude-search prelude-completion kind-icon svg-lib color svg dom xml corfu-popupinfo corfu cape marginalia orderless prescient char-fold prelude-project prelude-ui cus-edit pp cus-load icons wid-edit rx ligature all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons pixel-scroll cua-base prelude-core hydra ring lv saveplace adaptive-wrap dabbrev server finder-inf elec-pair diminish exec-path-from-shell eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util files-x undohist edmacro kmacro so-long delsel autorevert filenotify prelude-benchmark benchmark-init advice cl-extra help-mode prelude-common prelude-iload queue generator cl prelude-package vc-use-package pcase use-package use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode prelude-loaddefs no-littering compat 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 eieio eieio-core password-cache json subr-x map byte-opt url-vars cl-macs gv use-package-ensure cl-seq use-package-core cl-loaddefs cl-lib bytecomp byte-compile info adaptive-wrap-autoloads alert-autoloads all-the-icons-dired-autoloads all-the-icons-ibuffer-autoloads auctex-autoloads tex-site benchmark-init-autoloads cape-autoloads carbon-now-sh-autoloads cargo-autoloads catppuccin-theme-autoloads ccls-autoloads cdlatex-autoloads cider-autoloads citeproc-autoloads citre-autoloads clojure-mode-autoloads company-coq-autoloads company-math-autoloads company-autoloads copilot-autoloads corfu-autoloads d2-mode-autoloads dap-mode-autoloads bui-autoloads dash-at-point-autoloads dashboard-autoloads debbugs-autoloads deft-autoloads devdocs-autoloads diff-hl-autoloads diminish-autoloads dired-filter-autoloads dired-hacks-utils-autoloads diredfl-autoloads dirvish-autoloads doom-modeline-autoloads doom-themes-autoloads dracula-theme-autoloads dumb-jump-autoloads dune-autoloads ebib-autoloads editorconfig-autoloads ef-themes-autoloads elfeed-autoloads embark-consult-autoloads consult-autoloads embark-autoloads evil-collection-autoloads annalist-autoloads evil-leader-autoloads evil-org-autoloads evil-surround-autoloads evil-autoloads exec-path-from-shell-autoloads expand-region-autoloads flycheck-haskell-autoloads flycheck-autoloads forge-autoloads closql-autoloads emacsql-autoloads geiser-autoloads ghub-autoloads gntp-autoloads go-translate-autoloads google-translate-autoloads goto-chg-autoloads gptel-autoloads haskell-mode-autoloads helpful-autoloads elisp-refs-autoloads hl-todo-autoloads info-colors-autoloads js2-mode-autoloads keyfreq-autoloads kind-icon-autoloads ligature-autoloads log4e-autoloads lsp-docker-autoloads lsp-treemacs-autoloads lsp-ui-autoloads lsp-mode-autoloads lua-mode-autoloads magit-autoloads git-commit-autoloads marginalia-autoloads markdown-mode-autoloads math-symbol-lists-autoloads merlin-autoloads minimap-autoloads modern-cpp-font-lock-autoloads modus-themes-autoloads multiple-cursors-autoloads nerd-icons-autoloads nix-mode-autoloads magit-section-autoloads nix-sandbox-autoloads no-littering-autoloads nov-autoloads esxml-autoloads kv-autoloads ob-d2-autoloads ob-rust-autoloads one-themes-autoloads orderless-autoloads org-appear-autoloads org-preview-html-autoloads org-xlatex-autoloads ormolu-autoloads paredit-autoloads parsebib-autoloads parseedn-autoloads parseclj-autoloads pdf-tools-autoloads pinyinlib-autoloads pkg-info-autoloads epl-autoloads prescient-autoloads proof-general-autoloads proof-site proof-autoloads queue-autoloads quickrun-autoloads racket-mode-autoloads rainbow-delimiters-autoloads rainbow-mode-autoloads rime-autoloads popup-autoloads ripgrep-autoloads rotate-autoloads sesman-autoloads shrink-path-autoloads f-autoloads sly-autoloads smartparens-autoloads solaire-mode-autoloads speed-type-autoloads spinner-autoloads string-inflection-autoloads svg-lib-autoloads symbol-overlay-autoloads tablist-autoloads telega-autoloads rainbow-identifiers-autoloads theme-emacs-autoloads transient-autoloads treemacs-all-the-icons-autoloads all-the-icons-autoloads treemacs-persp-autoloads persp-mode-autoloads treemacs-projectile-autoloads projectile-autoloads treemacs-tab-bar-autoloads treemacs-autoloads cfrs-autoloads posframe-autoloads ht-autoloads hydra-autoloads lv-autoloads pfuture-autoloads ace-window-autoloads avy-autoloads s-autoloads treepy-autoloads undohist-autoloads utop-autoloads tuareg-autoloads caml-autoloads valign-autoloads vc-use-package-autoloads vertico-autoloads visual-fill-column-autoloads vterm-toggle-autoloads vterm-autoloads vundo-autoloads wakatime-mode-autoloads web-mode-autoloads wgrep-autoloads which-key-autoloads winum-autoloads dash-autoloads with-editor-autoloads compat-autoloads yaml-autoloads yasnippet-snippets-autoloads yasnippet-autoloads zig-mode-autoloads reformatter-autoloads rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win 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 xwidget-internal dbusbind kqueue cocoa ns lcms2 multi-tty make-network-process emacs) Memory information: ((conses 16 1809150 1742795) (symbols 48 93202 23) (strings 32 361902 89427) (string-bytes 1 11206118) (vectors 16 116188) (vector-slots 8 3198247 827822) (floats 8 2706 12115) (intervals 56 58501 31705) (buffers 984 62))
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.