Package: emacs;
Reported by: Aaron Jensen <aaronjensen <at> gmail.com>
Date: Sun, 28 Feb 2021 00:35:01 UTC
Severity: normal
Found in version 28.0.50
Done: Andrea Corallo <akrl <at> sdf.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 46824 in the body.
You can then email your comments to 46824 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#46824
; Package emacs
.
(Sun, 28 Feb 2021 00:35:01 GMT) Full text and rfc822 format available.Aaron Jensen <aaronjensen <at> gmail.com>
:bug-gnu-emacs <at> gnu.org
.
(Sun, 28 Feb 2021 00:35:01 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Aaron Jensen <aaronjensen <at> gmail.com> To: bug-gnu-emacs <at> gnu.org Subject: 28.0.50; nativecomp crash with cl-block/cl-defun Date: Sat, 27 Feb 2021 18:34:38 -0600
This originally came from straight.el. It exhibited by attempting to invoke something as a function that was not a function, causing an error. In narrowing the repro down, it started to crash. It can probably get more narrow than this, but pretty much everything I try to change/tweak causes it to no longer crash. This function runs fine when not native compiled. From emacs -Q: (native-elisp-load (native-compile "crash.el")) (crash) crash.el: (cl-defun crash () (let ((next-repos '(1))) (while t (let ((recipe (car next-repos))) (cl-block loop (while t (let ((err (condition-case e (progn (setq next-repos (cdr next-repos)) (cl-return-from loop)) (error e)))) (format "%S" (error-message-string err)))))) (cl-return-from crash)))) Crash backtrace: * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT) frame #0: 0x00000001001b9b44 emacs`traverse_intervals(tree=0x8148f2014c78518b, position=0, function=(emacs`print_check_string_charset_prop at print.c:1286), arg=0x000000010014c81c) at intervals.c:254:33 [opt] 251 { 252 while (tree) 253 { -> 254 traverse_intervals (tree->left, position, function, arg); 255 position += LEFT_TOTAL_LENGTH (tree); 256 tree->position = position; 257 (*function) (tree, arg); Target 0: (emacs) stopped. (lldb) thread backtrace * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT) * frame #0: 0x00000001001b9b44 emacs`traverse_intervals(tree=0x8148f2014c78518b, position=0, function=(emacs`print_check_string_charset_prop at print.c:1286), arg=0x000000010014c81c) at intervals.c:254:33 [opt] frame #1: 0x00000001001735dc emacs`print_object [inlined] print_prune_string_charset(string=0x000000010014c81c) at print.c:1332:3 [opt] frame #2: 0x00000001001735bd emacs`print_object(obj=0x000000010014c81c, printcharfun=0x0000000000000000, escapeflag=true) at print.c:1991 [opt] frame #3: 0x0000000100170659 emacs`print(obj=<unavailable>, printcharfun=<unavailable>, escapeflag=<unavailable>) at print.c:1145:3 [opt] [artificial] frame #4: 0x0000000100170292 emacs`Fprin1(object=0x000000010014c81c, printcharfun=<unavailable>) at print.c:651:3 [opt] frame #5: 0x000000010017209f emacs`print_error_message(data=<unavailable>, stream=<unavailable>, context=<unavailable>, caller=<unavailable>) at print.c:977:4 [opt] frame #6: 0x0000000100171d2e emacs`Ferror_message_string(obj=0x0000000145fbf473) at print.c:892:3 [opt] frame #7: 0x00000001001503fd emacs`signal_or_quit [inlined] skip_debugger(conditions=<unavailable>, data=0x0000000145fbf473) at eval.c:1979:24 [opt] frame #8: 0x0000000100150382 emacs`signal_or_quit [inlined] maybe_call_debugger(conditions=<unavailable>, sig=0x0000000000008130, data=0x0000000145fbf483) at eval.c:2020 [opt] frame #9: 0x0000000100150382 emacs`signal_or_quit(error_symbol=0x0000000000008130, data=0x0000000145fbf483, keyboard_quit=<unavailable>) at eval.c:1844 [opt] frame #10: 0x0000000100223a64 emacs`Fsignal(error_symbol=<unavailable>, data=<unavailable>) at eval.c:1745:3 [opt] frame #11: 0x0000000100223a8a emacs`xsignal(error_symbol=<unavailable>, data=<unavailable>) at lisp.h:4135:3 [opt] frame #12: 0x00000001002238dc emacs`xsignal1(error_symbol=<unavailable>, arg=<unavailable>) at eval.c:1902:3 [opt] frame #13: 0x000000010015149e emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:0:11 [opt] frame #14: 0x000000019cebbac2 crash-04cee693-09368399.eln`F6372617368_crash_0 + 194 frame #15: 0x000000010014cec5 emacs`eval_sub(form=<unavailable>) at eval.c:2481:15 [opt] frame #16: 0x00000001001509fa emacs`Feval(form=0x0000000145fbf4a3, lexical=<unavailable>) at eval.c:2313:28 [opt] frame #17: 0x000000015040c051 elisp-mode-90dbfe40-be475854.eln`F656c6973702d2d6576616c2d6c6173742d73657870_elisp__eval_last_sexp_0 + 321 frame #18: 0x0000000100151ead emacs`funcall_subr(subr=0x000000014705ca40, numargs=1, args=<unavailable>) at eval.c:3084:19 [opt] frame #19: 0x000000010015148f emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:3009:11 [opt] frame #20: 0x000000015040c521 elisp-mode-90dbfe40-be475854.eln`F6576616c2d6c6173742d73657870_eval_last_sexp_0 + 113 frame #21: 0x0000000100151ead emacs`funcall_subr(subr=0x0000000146f43c40, numargs=1, args=<unavailable>) at eval.c:3084:19 [opt] frame #22: 0x000000010015148f emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:3009:11 [opt] frame #23: 0x0000000100196030 emacs`exec_byte_code(bytestr=<unavailable>, vector=0x0000000146574685, maxdepth=<unavailable>, args_template=<unavailable>, nargs=<unavailable>, args=<unavailable>) at bytecode.c:632:12 [opt] frame #24: 0x00000001001521dd emacs`funcall_lambda [inlined] fetch_and_exec_byte_code(fun=<unavailable>, syms_left=<unavailable>, nargs=<unavailable>, args=<unavailable>) at eval.c:3133:10 [opt] frame #25: 0x00000001001521b1 emacs`funcall_lambda(fun=0x00000001465746a5, nargs=<unavailable>, arg_vector=0x00007ffeefbfe090) at eval.c:3295 [opt] frame #26: 0x000000010015141f emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:0:4 [opt] frame #27: 0x000000019cf26f46 eval-sexp-fu-b8bf1edc-3dc0edf0.eln`F6576616c2d736578702d66752d666c6173682d646f69742d73696d706c65_eval_sexp_fu_flash_doit_simple_0 + 166 frame #28: 0x00000001001521af emacs`funcall_lambda(fun=0x000000014625e155, nargs=<unavailable>, arg_vector=0x00007ffeefbfe1b8) at eval.c:3292:13 [opt] frame #29: 0x000000010015141f emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:0:4 [opt] frame #30: 0x000000019cf26e8b eval-sexp-fu-b8bf1edc-3dc0edf0.eln`F6576616c2d736578702d66752d666c6173682d646f6974_eval_sexp_fu_flash_doit_0 + 123 frame #31: 0x00000001001521af emacs`funcall_lambda(fun=0x000000014625e105, nargs=<unavailable>, arg_vector=0x00007ffeefbfe2e8) at eval.c:3292:13 [opt] frame #32: 0x000000010015141f emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:0:4 [opt] frame #33: 0x000000019cf27237 eval-sexp-fu-b8bf1edc-3dc0edf0.eln`F6573662d666c6173682d646f6974_esf_flash_doit_0 + 135 frame #34: 0x00000001001521af emacs`funcall_lambda(fun=0x000000014625e1f5, nargs=<unavailable>, arg_vector=0x00007ffeefbfe420) at eval.c:3292:13 [opt] frame #35: 0x000000010015141f emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:0:4 [opt] frame #36: 0x0000000100196030 emacs`exec_byte_code(bytestr=<unavailable>, vector=0x000000014657475d, maxdepth=<unavailable>, args_template=<unavailable>, nargs=<unavailable>, args=<unavailable>) at bytecode.c:632:12 [opt] frame #37: 0x00000001001521dd emacs`funcall_lambda [inlined] fetch_and_exec_byte_code(fun=<unavailable>, syms_left=<unavailable>, nargs=<unavailable>, args=<unavailable>) at eval.c:3133:10 [opt] frame #38: 0x00000001001521b1 emacs`funcall_lambda(fun=0x0000000146574805, nargs=<unavailable>, arg_vector=0x00007ffeefbfe670) at eval.c:3295 [opt] frame #39: 0x000000010015141f emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:0:4 [opt] frame #40: 0x000000010015148f emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:3009:11 [opt] frame #41: 0x0000000100196030 emacs`exec_byte_code(bytestr=<unavailable>, vector=0x00000001465743dd, maxdepth=<unavailable>, args_template=<unavailable>, nargs=<unavailable>, args=<unavailable>) at bytecode.c:632:12 [opt] frame #42: 0x0000000100152081 emacs`funcall_lambda [inlined] fetch_and_exec_byte_code(fun=<unavailable>, syms_left=<unavailable>, nargs=<unavailable>, args=<unavailable>) at eval.c:3133:10 [opt] [artificial] frame #43: 0x000000010015141f emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:0:4 [opt] frame #44: 0x000000019cf14768 eros-9d8d9112-6b63f0cf.eln`F65726f732d6576616c2d6c6173742d73657870_eros_eval_last_sexp_0 + 56 frame #45: 0x0000000100151ead emacs`funcall_subr(subr=0x000000014642b308, numargs=1, args=<unavailable>) at eval.c:3084:19 [opt] frame #46: 0x000000010015148f emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:3009:11 [opt] frame #47: 0x000000010014a2b9 emacs`Ffuncall_interactively(nargs=<unavailable>, args=<unavailable>) at callint.c:260:32 [opt] frame #48: 0x000000010015148f emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:3009:11 [opt] frame #49: 0x000000010014b7ba emacs`Fcall_interactively(function=0x000000009c9ab9f0, record_flag=0x0000000000000000, keys=0x0000000155026245) at callint.c:791:21 [opt] frame #50: 0x00000001501bc3d1 simple-fab5b0cf-55dfc234.eln`F636f6d6d616e642d65786563757465_command_execute_0 + 529 frame #51: 0x0000000100151e91 emacs`funcall_subr(subr=0x00000001468a6e48, numargs=1, args=<unavailable>) at eval.c:3092:19 [opt] frame #52: 0x000000010015148f emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:3009:11 [opt] frame #53: 0x0000000100151afc emacs`call1(fn=0x0000000000003c90, arg1=<unavailable>) at eval.c:2869:10 [opt] frame #54: 0x00000001000c8f39 emacs`command_loop_1 at keyboard.c:1466:13 [opt] frame #55: 0x000000010014f507 emacs`internal_condition_case(bfun=(emacs`command_loop_1 at keyboard.c:1239), handlers=0x0000000000000090, hfun=(emacs`cmd_error at keyboard.c:922)) at eval.c:1448:25 [opt] frame #56: 0x00000001000d8a90 emacs`command_loop_2(ignore=<unavailable>) at keyboard.c:1094:11 [opt] frame #57: 0x000000010014ecee emacs`internal_catch(tag=0x000000000000d650, func=(emacs`command_loop_2 at keyboard.c:1090), arg=0x0000000000000000) at eval.c:1198:25 [opt] frame #58: 0x00000001002204f5 emacs`recursive_edit_1.cold.1 at keyboard.c:1073:2 [opt] frame #59: 0x00000001000c7d79 emacs`recursive_edit_1 [inlined] command_loop at keyboard.c:1070:5 [opt] frame #60: 0x00000001000c7d74 emacs`recursive_edit_1 at keyboard.c:720 [opt] frame #61: 0x00000001000c7f0b emacs`Frecursive_edit at keyboard.c:789:3 [opt] frame #62: 0x00000001000c6e7d emacs`main(argc=<unavailable>, argv=<unavailable>) at emacs.c:2083:3 [opt] frame #63: 0x00007fff71635cc9 libdyld.dylib`start + 1 frame #64: 0x00007fff71635cc9 libdyld.dylib`start + 1 In GNU Emacs 28.0.50 (build 8, x86_64-apple-darwin19.6.0, NS appkit-1894.60 Version 10.15.7 (Build 19H524)) of 2021-02-25 built on aaron-sub.local Repository revision: 0ee1a16769bfc8d3e6205e8d8dabc3be34df48b4 Repository branch: feature/native-comp Windowing system distributor 'Apple', version 10.3.1894 System Description: Mac OS X 10.15.7 Configured using: 'configure 'LDFLAGS=-L/usr/local/lib/gcc/10 -I/usr/local/opt/gcc/include -I/usr/local/opt/libgccjit/include -I/usr/local/opt/gmp/include -I/usr/local/opt/jpeg/include' 'CFLAGS=-I/usr/local/opt/gcc/include -I/usr/local/opt/libgccjit/include -I/usr/local/opt/gmp/include -I/usr/local/opt/jpeg/include -g3 -O2' --disable-dependency-tracking --disable-silent-rules --with-xml2 --with-gnutls --with-nativecomp --without-dbus --with-imagemagick --with-modules --with-rsvg --with-ns --disable-ns-self-contained' Configured features: ACL GLIB GMP GNUTLS IMAGEMAGICK JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG THREADS TIFF TOOLKIT_SCROLL_BARS ZLIB Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: ELisp/l Minor modes in effect: company-posframe-mode: t company-prescient-mode: t company-tng-mode: t company-mode: t global-git-commit-mode: t show-paren-mode: t eval-sexp-fu-flash-mode: t eros-mode: t lispyville-mode: t lispy-mode: t elisp-def-mode: t sotlisp-mode: t speed-of-thought-mode: t dtrt-indent-mode: t form-feed-mode: t global-flycheck-mode: t flycheck-mode: t org-roam-mode: t transient-posframe-mode: t treemacs-filewatch-mode: t treemacs-follow-mode: t treemacs-git-mode: deferred treemacs-fringe-indicator-mode: t global-auto-revert-mode: t yas-global-mode: t yas-minor-mode: t which-key-posframe-mode: t which-key-mode: t winner-mode: t selectrum-prescient-mode: t better-jumper-mode: t better-jumper-local-mode: t show-smartparens-global-mode: t show-smartparens-mode: t smartparens-global-mode: t global-evil-collection-unimpaired-mode: t evil-collection-unimpaired-mode: t global-evil-mc-mode: t evil-mc-mode: t global-evil-matchit-mode: t evil-matchit-mode: t global-evil-surround-mode: t evil-surround-mode: t shell-dirtrack-mode: t evil-mode: t evil-local-mode: t envrc-global-mode: t envrc-mode: t recentf-mode: t projectile-mode: t persp-mode: t mini-frame-mode: t gcmh-mode: t selectrum-mode: t prescient-persist-mode: t +popup-mode: t ws-butler-global-mode: t ws-butler-mode: t global-undo-tree-mode: t undo-tree-mode: t save-place-mode: t ns-auto-titlebar-mode: t leader-key-leader-override-mode: t global-leader-key-leader-override-mode: t delete-selection-mode: t savehist-mode: t xterm-mouse-mode: t override-global-mode: t straight-use-package-mode: t straight-package-neutering-mode: t global-display-line-numbers-mode: t display-line-numbers-mode: t global-eldoc-mode: t eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t window-divider-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t auto-fill-function: yas--auto-fill transient-mark-mode: t abbrev-mode: t Load-path shadows: /Users/aaronjensen/.emacs.d/straight/build/ivy/elpa hides /Users/aaronjensen/.emacs.d/straight/build/lispy/elpa /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-stan hides /Users/aaronjensen/Source/emacs/lisp/org/ob-stan /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-comint hides /Users/aaronjensen/Source/emacs/lisp/org/ob-comint /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-exp hides /Users/aaronjensen/Source/emacs/lisp/org/ob-exp /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-ctags hides /Users/aaronjensen/Source/emacs/lisp/org/org-ctags /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-emacs-lisp hides /Users/aaronjensen/Source/emacs/lisp/org/ob-emacs-lisp /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-texinfo hides /Users/aaronjensen/Source/emacs/lisp/org/ox-texinfo /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-irc hides /Users/aaronjensen/Source/emacs/lisp/org/ol-irc /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob hides /Users/aaronjensen/Source/emacs/lisp/org/ob /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-refile hides /Users/aaronjensen/Source/emacs/lisp/org/org-refile /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-version hides /Users/aaronjensen/Source/emacs/lisp/org/org-version /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-num hides /Users/aaronjensen/Source/emacs/lisp/org/org-num /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-mhe hides /Users/aaronjensen/Source/emacs/lisp/org/ol-mhe /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-shell hides /Users/aaronjensen/Source/emacs/lisp/org/ob-shell /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-attach hides /Users/aaronjensen/Source/emacs/lisp/org/org-attach /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-C hides /Users/aaronjensen/Source/emacs/lisp/org/ob-C /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-macs hides /Users/aaronjensen/Source/emacs/lisp/org/org-macs /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-entities hides /Users/aaronjensen/Source/emacs/lisp/org/org-entities /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-dot hides /Users/aaronjensen/Source/emacs/lisp/org/ob-dot /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-sql hides /Users/aaronjensen/Source/emacs/lisp/org/ob-sql /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-eww hides /Users/aaronjensen/Source/emacs/lisp/org/ol-eww /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-datetree hides /Users/aaronjensen/Source/emacs/lisp/org/org-datetree /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-macro hides /Users/aaronjensen/Source/emacs/lisp/org/org-macro /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-eval hides /Users/aaronjensen/Source/emacs/lisp/org/ob-eval /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-haskell hides /Users/aaronjensen/Source/emacs/lisp/org/ob-haskell /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-asymptote hides /Users/aaronjensen/Source/emacs/lisp/org/ob-asymptote /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-abc hides /Users/aaronjensen/Source/emacs/lisp/org/ob-abc /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-org hides /Users/aaronjensen/Source/emacs/lisp/org/ox-org /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-rmail hides /Users/aaronjensen/Source/emacs/lisp/org/ol-rmail /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-awk hides /Users/aaronjensen/Source/emacs/lisp/org/ob-awk /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-groovy hides /Users/aaronjensen/Source/emacs/lisp/org/ob-groovy /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-shen hides /Users/aaronjensen/Source/emacs/lisp/org/ob-shen /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-icalendar hides /Users/aaronjensen/Source/emacs/lisp/org/ox-icalendar /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-octave hides /Users/aaronjensen/Source/emacs/lisp/org/ob-octave /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-scheme hides /Users/aaronjensen/Source/emacs/lisp/org/ob-scheme /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-mobile hides /Users/aaronjensen/Source/emacs/lisp/org/org-mobile /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-processing hides /Users/aaronjensen/Source/emacs/lisp/org/ob-processing /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-ledger hides /Users/aaronjensen/Source/emacs/lisp/org/ob-ledger /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-picolisp hides /Users/aaronjensen/Source/emacs/lisp/org/ob-picolisp /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-colview hides /Users/aaronjensen/Source/emacs/lisp/org/org-colview /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-R hides /Users/aaronjensen/Source/emacs/lisp/org/ob-R /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-table hides /Users/aaronjensen/Source/emacs/lisp/org/org-table /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-html hides /Users/aaronjensen/Source/emacs/lisp/org/ox-html /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-fortran hides /Users/aaronjensen/Source/emacs/lisp/org/ob-fortran /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol hides /Users/aaronjensen/Source/emacs/lisp/org/ol /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-plantuml hides /Users/aaronjensen/Source/emacs/lisp/org/ob-plantuml /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-docview hides /Users/aaronjensen/Source/emacs/lisp/org/ol-docview /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-perl hides /Users/aaronjensen/Source/emacs/lisp/org/ob-perl /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-sqlite hides /Users/aaronjensen/Source/emacs/lisp/org/ob-sqlite /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-sed hides /Users/aaronjensen/Source/emacs/lisp/org/ob-sed /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-ditaa hides /Users/aaronjensen/Source/emacs/lisp/org/ob-ditaa /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-ruby hides /Users/aaronjensen/Source/emacs/lisp/org/ob-ruby /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-habit hides /Users/aaronjensen/Source/emacs/lisp/org/org-habit /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-gnus hides /Users/aaronjensen/Source/emacs/lisp/org/ol-gnus /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-screen hides /Users/aaronjensen/Source/emacs/lisp/org/ob-screen /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-mouse hides /Users/aaronjensen/Source/emacs/lisp/org/org-mouse /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-css hides /Users/aaronjensen/Source/emacs/lisp/org/ob-css /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-inlinetask hides /Users/aaronjensen/Source/emacs/lisp/org/org-inlinetask /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-lisp hides /Users/aaronjensen/Source/emacs/lisp/org/ob-lisp /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-eshell hides /Users/aaronjensen/Source/emacs/lisp/org/ol-eshell /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-pcomplete hides /Users/aaronjensen/Source/emacs/lisp/org/org-pcomplete /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-lint hides /Users/aaronjensen/Source/emacs/lisp/org/org-lint /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-id hides /Users/aaronjensen/Source/emacs/lisp/org/org-id /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-vala hides /Users/aaronjensen/Source/emacs/lisp/org/ob-vala /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-capture hides /Users/aaronjensen/Source/emacs/lisp/org/org-capture /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-sass hides /Users/aaronjensen/Source/emacs/lisp/org/ob-sass /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-tangle hides /Users/aaronjensen/Source/emacs/lisp/org/ob-tangle /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-calc hides /Users/aaronjensen/Source/emacs/lisp/org/ob-calc /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-java hides /Users/aaronjensen/Source/emacs/lisp/org/ob-java /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-compat hides /Users/aaronjensen/Source/emacs/lisp/org/org-compat /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-attach-git hides /Users/aaronjensen/Source/emacs/lisp/org/org-attach-git /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-beamer hides /Users/aaronjensen/Source/emacs/lisp/org/ox-beamer /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-coq hides /Users/aaronjensen/Source/emacs/lisp/org/ob-coq /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-protocol hides /Users/aaronjensen/Source/emacs/lisp/org/org-protocol /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-element hides /Users/aaronjensen/Source/emacs/lisp/org/org-element /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-lob hides /Users/aaronjensen/Source/emacs/lisp/org/ob-lob /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-mscgen hides /Users/aaronjensen/Source/emacs/lisp/org/ob-mscgen /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-tempo hides /Users/aaronjensen/Source/emacs/lisp/org/org-tempo /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-python hides /Users/aaronjensen/Source/emacs/lisp/org/ob-python /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-latex hides /Users/aaronjensen/Source/emacs/lisp/org/ob-latex /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-w3m hides /Users/aaronjensen/Source/emacs/lisp/org/ol-w3m /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-agenda hides /Users/aaronjensen/Source/emacs/lisp/org/org-agenda /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-ocaml hides /Users/aaronjensen/Source/emacs/lisp/org/ob-ocaml /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-ref hides /Users/aaronjensen/Source/emacs/lisp/org/ob-ref /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-lilypond hides /Users/aaronjensen/Source/emacs/lisp/org/ob-lilypond /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-table hides /Users/aaronjensen/Source/emacs/lisp/org/ob-table /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-clojure hides /Users/aaronjensen/Source/emacs/lisp/org/ob-clojure /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-indent hides /Users/aaronjensen/Source/emacs/lisp/org/org-indent /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-plot hides /Users/aaronjensen/Source/emacs/lisp/org/org-plot /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-latex hides /Users/aaronjensen/Source/emacs/lisp/org/ox-latex /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-src hides /Users/aaronjensen/Source/emacs/lisp/org/org-src /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-duration hides /Users/aaronjensen/Source/emacs/lisp/org/org-duration /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-makefile hides /Users/aaronjensen/Source/emacs/lisp/org/ob-makefile /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-info hides /Users/aaronjensen/Source/emacs/lisp/org/ol-info /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-ebnf hides /Users/aaronjensen/Source/emacs/lisp/org/ob-ebnf /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-clock hides /Users/aaronjensen/Source/emacs/lisp/org/org-clock /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-forth hides /Users/aaronjensen/Source/emacs/lisp/org/ob-forth /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-odt hides /Users/aaronjensen/Source/emacs/lisp/org/ox-odt /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-publish hides /Users/aaronjensen/Source/emacs/lisp/org/ox-publish /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-archive hides /Users/aaronjensen/Source/emacs/lisp/org/org-archive /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-org hides /Users/aaronjensen/Source/emacs/lisp/org/ob-org /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-lua hides /Users/aaronjensen/Source/emacs/lisp/org/ob-lua /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-keys hides /Users/aaronjensen/Source/emacs/lisp/org/org-keys /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-eshell hides /Users/aaronjensen/Source/emacs/lisp/org/ob-eshell /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-faces hides /Users/aaronjensen/Source/emacs/lisp/org/org-faces /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-man hides /Users/aaronjensen/Source/emacs/lisp/org/ox-man /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-list hides /Users/aaronjensen/Source/emacs/lisp/org/org-list /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-md hides /Users/aaronjensen/Source/emacs/lisp/org/ox-md /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-goto hides /Users/aaronjensen/Source/emacs/lisp/org/org-goto /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-bbdb hides /Users/aaronjensen/Source/emacs/lisp/org/ol-bbdb /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-loaddefs hides /Users/aaronjensen/Source/emacs/lisp/org/org-loaddefs /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org hides /Users/aaronjensen/Source/emacs/lisp/org/org /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ol-bibtex hides /Users/aaronjensen/Source/emacs/lisp/org/ol-bibtex /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-J hides /Users/aaronjensen/Source/emacs/lisp/org/ob-J /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox-ascii hides /Users/aaronjensen/Source/emacs/lisp/org/ox-ascii /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-matlab hides /Users/aaronjensen/Source/emacs/lisp/org/ob-matlab /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ox hides /Users/aaronjensen/Source/emacs/lisp/org/ox /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-timer hides /Users/aaronjensen/Source/emacs/lisp/org/org-timer /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-core hides /Users/aaronjensen/Source/emacs/lisp/org/ob-core /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-feed hides /Users/aaronjensen/Source/emacs/lisp/org/org-feed /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-io hides /Users/aaronjensen/Source/emacs/lisp/org/ob-io /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-gnuplot hides /Users/aaronjensen/Source/emacs/lisp/org/ob-gnuplot /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-js hides /Users/aaronjensen/Source/emacs/lisp/org/ob-js /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-footnote hides /Users/aaronjensen/Source/emacs/lisp/org/org-footnote /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-maxima hides /Users/aaronjensen/Source/emacs/lisp/org/ob-maxima /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/ob-hledger hides /Users/aaronjensen/Source/emacs/lisp/org/ob-hledger /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-install hides /Users/aaronjensen/Source/emacs/lisp/org/org-install /Users/aaronjensen/.emacs.d/straight/build/org-plus-contrib/org-crypt hides /Users/aaronjensen/Source/emacs/lisp/org/org-crypt /Users/aaronjensen/.emacs.d/straight/build/let-alist/let-alist hides /Users/aaronjensen/Source/emacs/lisp/emacs-lisp/let-alist Features: (shadow mail-extr emacsbug sendmail autoload checkdoc lisp-mnt smartparens-c cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs cl-print shortdoc evil-matchit-simple executable spinner network-stream smartparens-markdown markdown-mode bindat org-pandoc-import gnuplot org-journal org-crypt cal-iso deft org-drill persist tab-line restart-emacs ace-window buffer-move completing-read-xref embark-consult embark ffap consult-selectrum consult magit-bookmark treemacs-bookmarks bookmark desktop frameset wgrep sort drag-stuff company-files company-capf company-posframe company-prescient company-tng company speeddating evil-nerd-commenter evil-nerd-commenter-operator evil-nerd-commenter-sdk smartparens-html sgml-mode evil-visualstar evil-collection-magit treemacs-magit magit-submodule magit-obsolete magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit package url-handlers magit-repos magit-apply magit-wip magit-log which-func magit-diff smerge-mode git-commit log-edit pcvs-util add-log magit-core paren eval-sexp-fu eros lispyville lispy hydra lv swiper ivy ivy-faces ivy-overlay colir lispy-inline avy etags fileloop lispy-tags semantic/db eieio-base semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local cedet ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util iedit iedit-lib elisp-def ert ewoc evil-collection-debug debug sotlisp skeleton dtrt-indent vc-git diff-mode org-appear orgonomic form-feed ol-eww eww xdg url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-search eieio-opt speedbar ezimage dframe gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum shr kinsoku svg dom browse-url gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range message rfc822 mml mml-sec epa epg epg-config mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util rmail rmail-loaddefs mail-utils ol-docview doc-view jka-compr image-mode exif ol-bibtex bibtex iso8601 ol-bbdb ol-w3m smartparens-org 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-ascii ox-gfm ox-md ox-html table ox-publish ox org-download org-attach async flycheck org-roam org-roam-link org-roam-graph xml org-roam-doctor org-roam-dailies org-roam-capture org-roam-db emacsql-sqlite3 emacsql emacsql-compiler org-mac-link org-capture org-roam-completion org-roam-buffer org-roam-faces org-roam-macs org-roam-compat org-id org-refile org-protocol org-tempo tempo evil-org-agenda evil-org org-element avl-tree generator ob-shell org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src ob-comint org-pcomplete org-list org-faces org-entities noutline outline org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys org-compat org-macs org-loaddefs cal-menu calendar cal-loaddefs magit-autorevert magit-margin magit-transient magit-process with-editor magit-mode transient-posframe transient format-spec magit-git magit-section magit-utils treemacs-evil treemacs-projectile treemacs-perspective treemacs-all-the-icons all-the-icons all-the-icons-faces data-material data-weathericons data-octicons data-fileicons data-faicons data-alltheicons treemacs treemacs-header-line treemacs-compatibility treemacs-mode treemacs-interface treemacs-extensions treemacs-mouse-interface treemacs-tags evil-collection-xref xref project treemacs-persistence treemacs-filewatch-mode treemacs-follow-mode treemacs-rendering treemacs-async treemacs-workspaces treemacs-dom treemacs-visuals treemacs-fringe-indicator treemacs-scope pulse treemacs-faces treemacs-icons treemacs-themes treemacs-core-utils pfuture inline hl-line ht treemacs-logging treemacs-customization treemacs-macros autorevert filenotify rainbow-mode xterm-color color evil-collection-helpful helpful imenu trace evil-collection-edebug edebug backtrace info-look find-func f help-fns radix-tree time-date elisp-refs s dired-subtree dired-hacks-utils evil-collection-dired dired yasnippet dired-loaddefs evil-collection-profiler profiler url-http url url-proxy url-privacy url-expand url-methods url-history mailcap url-auth mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-cookie url-domsuf url-util url-gw url-parse auth-source eieio eieio-core eieio-loaddefs popup-mode-hacks evil-collection-which-key which-key-posframe posframe which-key winner password-cache url-vars nsm rmc puny char-fold hide-mode-line popup-mode-core selectrum-prescient selectrum minibuf-eldef crm better-jumper smartparens-config smartparens-text smartparens dash evil-anzu anzu evil-collection-unimpaired evil-collection-ibuffer evil-collection-help evil-collection-custom evil-collection-process-menu evil-collection annalist evil-mc evil-mc-command-execute evil-mc-command-record evil-mc-cursor-make evil-mc-region evil-mc-cursor-state evil-mc-undo evil-mc-vars evil-mc-known-commands evil-mc-common evil-numbers evil-matchit evil-matchit-sdk evil-surround cus-edit pp cus-start cus-load evil evil-integration evil-maps evil-commands reveal flyspell ispell evil-jumps evil-command-window evil-types evil-search evil-ex shell pcomplete evil-macros evil-repeat evil-states evil-core evil-common windmove rect evil-digraphs evil-vars envrc inheritenv json map recentf tree-widget wid-edit persp-projectile projectile grep compile text-property-search comint ansi-color ring ibuf-ext ibuffer ibuffer-loaddefs perspective advice thingatpt ido mini-frame server gcmh gcmh-autoloads explain-pause-mode-autoloads restclient-autoloads vterm-toggle-autoloads vterm-autoloads dumb-jump-autoloads popup-autoloads xterm-color-autoloads terraform-mode-autoloads hcl-mode-autoloads dockerfile-mode-autoloads yaml-mode-autoloads json-mode-autoloads json-snatcher-autoloads json-reformat-autoloads lua-mode-autoloads bundler-autoloads inf-ruby-autoloads ruby-refactor-autoloads rspec-mode-autoloads evil-ruby-text-objects-autoloads enh-ruby-mode-autoloads sotlisp-autoloads elisp-def-autoloads lispyville-autoloads lispy-autoloads zoutline-autoloads counsel-autoloads swiper-autoloads ivy-autoloads iedit-autoloads eros-autoloads eval-sexp-fu-autoloads eslintd-fix-autoloads web-mode-autoloads company-rg-autoloads company-lsp-autoloads company-posframe-autoloads company-prescient-autoloads company-autoloads git-link-autoloads prettier-autoloads nvm-autoloads iter2-autoloads flycheck-autoloads let-alist-autoloads lsp-ui-autoloads lsp-mode-autoloads markdown-mode-autoloads spinner-autoloads ox-gfm-autoloads org-pandoc-import-autoloads gnuplot-autoloads org-download-autoloads async-autoloads org-journal-autoloads deft-autoloads org-roam-autoloads emacsql-sqlite3-autoloads emacsql-autoloads orgonomic-autoloads org-drill-autoloads persist-autoloads org-appear-autoloads evil-org-autoloads transient-posframe-autoloads restart-emacs-autoloads better-jumper-autoloads buffer-move-autoloads completing-read-xref-autoloads mini-frame-autoloads embark-consult-autoloads embark-autoloads consult-autoloads selectrum-prescient-autoloads selectrum-autoloads persp-projectile-autoloads prescient prescient-autoloads which-key-posframe-autoloads which-key-autoloads popup-mode popup-mode-settings popup-mode-autoloads hide-mode-line-autoloads wgrep-autoloads yasnippet-autoloads form-feed-autoloads drag-stuff-autoloads smartparens-autoloads dtrt-indent-autoloads ws-butler ws-butler-autoloads evil-anzu-autoloads anzu-autoloads evil-collection-autoloads annalist-autoloads evil-mc-autoloads evil-numbers-autoloads speeddating-autoloads evil-matchit-autoloads evil-nerd-commenter-autoloads evil-visualstar-autoloads evil-surround-autoloads undo-tree diff queue undo-tree-autoloads queue-autoloads treemacs-perspective-autoloads perspective-autoloads treemacs-magit-autoloads magit-autoloads git-commit-autoloads with-editor-autoloads transient-autoloads treemacs-all-the-icons-autoloads all-the-icons-autoloads treemacs-projectile-autoloads treemacs-evil-autoloads evil-autoloads goto-chg-autoloads treemacs-autoloads cfrs-autoloads ht-autoloads pfuture-autoloads ace-window-autoloads avy-autoloads projectile-autoloads pkg-info-autoloads epl-autoloads saveplace rainbow-mode-autoloads posframe-autoloads ns-auto-titlebar ns-auto-titlebar-autoloads nano nano-modeline face-remap nano-theme nano-faces nano-theme-light nano-base-colors nano-layout nano-autoloads envrc-autoloads inheritenv-autoloads compdef derived compdef-autoloads helpful-autoloads elisp-refs-autoloads f-autoloads s-autoloads dired-subtree-autoloads dired-hacks-utils-autoloads dash-autoloads hydra-autoloads lv-autoloads edmacro kmacro leader-key bind-map leader-key-autoloads bind-map-autoloads delsel savehist xt-mouse no-littering no-littering-autoloads finder-inf bind-key easy-mmode use-package-autoloads bind-key-autoloads straight-autoloads info straight display-line-numbers comp comp-cstr warnings subr-x rx cl-seq cl-macs cl-extra help-mode easymenu seq byte-opt gv cl-loaddefs cl-lib bytecomp byte-compile cconv iso-transl tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type 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 elisp-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face pcase macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads kqueue cocoa ns lcms2 multi-tty make-network-process nativecomp emacs) Memory information: ((conses 16 961598 99446) (symbols 48 64759 19) (strings 32 238897 35453) (string-bytes 1 9256023) (vectors 16 111174) (vector-slots 8 2686127 244924) (floats 8 2023 737) (intervals 56 22472 577) (buffers 992 24))
bug-gnu-emacs <at> gnu.org
:bug#46824
; Package emacs
.
(Sun, 28 Feb 2021 06:15:02 GMT) Full text and rfc822 format available.Message #8 received at 46824 <at> debbugs.gnu.org (full text, mbox):
From: Pip Cet <pipcet <at> gmail.com> To: Aaron Jensen <aaronjensen <at> gmail.com> Cc: 46824 <at> debbugs.gnu.org, Andrea Corallo <akrl <at> sdf.org> Subject: Re: bug#46824: 28.0.50; nativecomp crash with cl-block/cl-defun Date: Sun, 28 Feb 2021 06:13:59 +0000
On Sun, Feb 28, 2021 at 12:35 AM Aaron Jensen <aaronjensen <at> gmail.com> wrote: > This originally came from straight.el. It exhibited by attempting to > invoke something as a function that was not a function, causing an > error. In narrowing the repro down, it started to crash. It can probably > get more narrow than this, but pretty much everything I try to > change/tweak causes it to no longer crash. > First, I can reproduce it, so if further debug information is required, I can probably help. At first glance, it looks like we're calling _setjmp through a function pointer without telling gcc that it is a function that may return twice. This causes gcc to generate code which assumes the stack frame is unchanged between the two returns of _setjmp, when it actually isn't, leading to a segfault after the second return. It used to be the case that all (well, most ...) variables in a function that calls _setjmp had to be marked volatile to avoid this. The current way of avoiding the problem is to use gcc's __attribute__ to tell gcc a function may return twice. We're not doing either, so we run into the stack corruption problem. Andrea, is it possible to modify the code so _setjmp is called directly rather than through a function pointer? Pip
bug-gnu-emacs <at> gnu.org
:bug#46824
; Package emacs
.
(Sun, 28 Feb 2021 06:37:02 GMT) Full text and rfc822 format available.Message #11 received at 46824 <at> debbugs.gnu.org (full text, mbox):
From: Pip Cet <pipcet <at> gmail.com> To: Aaron Jensen <aaronjensen <at> gmail.com> Cc: 46824 <at> debbugs.gnu.org, Andrea Corallo <akrl <at> sdf.org> Subject: Re: bug#46824: 28.0.50; nativecomp crash with cl-block/cl-defun Date: Sun, 28 Feb 2021 06:36:06 +0000
[Message part 1 (text/plain, inline)]
On Sun, Feb 28, 2021 at 6:13 AM Pip Cet <pipcet <at> gmail.com> wrote: > Andrea, is it possible to modify the code so _setjmp is called > directly rather than through a function pointer? This patch, which I hasten to add is not for inclusion and hasn't been tested against the test suite, might fix the problem (on non-Windows systems. I'm afraid this problem is something that Windows actually got right and Unix got wrong...) It does here, experimentally. I'd appreciate it if someone could test further. Pip
[0001-Don-t-call-_setjmp-through-a-function-pointer-Bug-46.patch (text/x-patch, attachment)]
bug-gnu-emacs <at> gnu.org
:bug#46824
; Package emacs
.
(Sun, 28 Feb 2021 23:33:02 GMT) Full text and rfc822 format available.Message #14 received at 46824 <at> debbugs.gnu.org (full text, mbox):
From: Aaron Jensen <aaronjensen <at> gmail.com> To: Pip Cet <pipcet <at> gmail.com> Cc: 46824 <at> debbugs.gnu.org, Andrea Corallo <akrl <at> sdf.org> Subject: Re: bug#46824: 28.0.50; nativecomp crash with cl-block/cl-defun Date: Sun, 28 Feb 2021 17:31:45 -0600
On Sun, Feb 28, 2021 at 12:36 AM Pip Cet <pipcet <at> gmail.com> wrote: > > This patch, which I hasten to add is not for inclusion and hasn't been > tested against the test suite, might fix the problem (on non-Windows > systems. I'm afraid this problem is something that Windows actually > got right and Unix got wrong...) It does here, experimentally. > > I'd appreciate it if someone could test further. It looks like it solves both the crash and the bug in straight.el for me. I'll continue to use the patch for a while and report back if I have any issues.
bug-gnu-emacs <at> gnu.org
:bug#46824
; Package emacs
.
(Mon, 01 Mar 2021 09:03:02 GMT) Full text and rfc822 format available.Message #17 received at 46824 <at> debbugs.gnu.org (full text, mbox):
From: Andrea Corallo <akrl <at> sdf.org> To: Pip Cet <pipcet <at> gmail.com> Cc: 46824 <at> debbugs.gnu.org, Aaron Jensen <aaronjensen <at> gmail.com> Subject: Re: bug#46824: 28.0.50; nativecomp crash with cl-block/cl-defun Date: Mon, 01 Mar 2021 09:02:40 +0000
Pip Cet <pipcet <at> gmail.com> writes: > On Sun, Feb 28, 2021 at 6:13 AM Pip Cet <pipcet <at> gmail.com> wrote: >> Andrea, is it possible to modify the code so _setjmp is called >> directly rather than through a function pointer? > > This patch, which I hasten to add is not for inclusion and hasn't been > tested against the test suite, might fix the problem (on non-Windows > systems. I'm afraid this problem is something that Windows actually > got right and Unix got wrong...) It does here, experimentally. > > I'd appreciate it if someone could test further. I haven't looked into the patch but the approach sounds like a good idea to me. Can we have the version of the patch you'd like to have included? Thanks Andrea
bug-gnu-emacs <at> gnu.org
:bug#46824
; Package emacs
.
(Mon, 01 Mar 2021 13:03:01 GMT) Full text and rfc822 format available.Message #20 received at 46824 <at> debbugs.gnu.org (full text, mbox):
From: Pip Cet <pipcet <at> gmail.com> To: Andrea Corallo <akrl <at> sdf.org> Cc: 46824 <at> debbugs.gnu.org, Aaron Jensen <aaronjensen <at> gmail.com> Subject: Re: bug#46824: 28.0.50; nativecomp crash with cl-block/cl-defun Date: Mon, 1 Mar 2021 13:02:03 +0000
[Message part 1 (text/plain, inline)]
On Mon, Mar 1, 2021 at 9:02 AM Andrea Corallo <akrl <at> sdf.org> wrote: > Pip Cet <pipcet <at> gmail.com> writes: > > On Sun, Feb 28, 2021 at 6:13 AM Pip Cet <pipcet <at> gmail.com> wrote: > >> Andrea, is it possible to modify the code so _setjmp is called > >> directly rather than through a function pointer? > > > > This patch, which I hasten to add is not for inclusion and hasn't been > > tested against the test suite, might fix the problem (on non-Windows > > systems. I'm afraid this problem is something that Windows actually > > got right and Unix got wrong...) It does here, experimentally. > > > > I'd appreciate it if someone could test further. > > I haven't looked into the patch but the approach sounds like a good idea > to me. Can we have the version of the patch you'd like to have included? Here's the version I'd like to include. This should not cause any new test suite failures, just the ones I've been seeing all along. Apart from the ABI bump, it should not change anything on WINDOWSNT, which I can't test. Pip
[0001-Don-t-call-_setjmp-through-a-function-pointer-Bug-46.patch (text/x-patch, attachment)]
bug-gnu-emacs <at> gnu.org
:bug#46824
; Package emacs
.
(Mon, 01 Mar 2021 17:05:02 GMT) Full text and rfc822 format available.Message #23 received at 46824 <at> debbugs.gnu.org (full text, mbox):
From: Andrea Corallo <akrl <at> sdf.org> To: Pip Cet <pipcet <at> gmail.com> Cc: 46824 <at> debbugs.gnu.org, Aaron Jensen <aaronjensen <at> gmail.com> Subject: Re: bug#46824: 28.0.50; nativecomp crash with cl-block/cl-defun Date: Mon, 01 Mar 2021 17:04:02 +0000
Pip Cet <pipcet <at> gmail.com> writes: > On Mon, Mar 1, 2021 at 9:02 AM Andrea Corallo <akrl <at> sdf.org> wrote: >> Pip Cet <pipcet <at> gmail.com> writes: >> > On Sun, Feb 28, 2021 at 6:13 AM Pip Cet <pipcet <at> gmail.com> wrote: >> >> Andrea, is it possible to modify the code so _setjmp is called >> >> directly rather than through a function pointer? >> > >> > This patch, which I hasten to add is not for inclusion and hasn't been >> > tested against the test suite, might fix the problem (on non-Windows >> > systems. I'm afraid this problem is something that Windows actually >> > got right and Unix got wrong...) It does here, experimentally. >> > >> > I'd appreciate it if someone could test further. >> >> I haven't looked into the patch but the approach sounds like a good idea >> to me. Can we have the version of the patch you'd like to have included? > > Here's the version I'd like to include. This should not cause any new > test suite failures, just the ones I've been seeing all along. Apart > from the ABI bump, it should not change anything on WINDOWSNT, which I > can't test. > > Pip Hi Pip, thanks for the patch. Please add to the patch the reported reproducer into test/src/comp-test-funcs.el exercising it from test/src/comp-tests.el, you can probably place it after the last reproducer that was added there (46670). Thanks Andrea
bug-gnu-emacs <at> gnu.org
:bug#46824
; Package emacs
.
(Tue, 02 Mar 2021 09:17:01 GMT) Full text and rfc822 format available.Message #26 received at 46824 <at> debbugs.gnu.org (full text, mbox):
From: Pip Cet <pipcet <at> gmail.com> To: Andrea Corallo <akrl <at> sdf.org> Cc: 46824 <at> debbugs.gnu.org, Aaron Jensen <aaronjensen <at> gmail.com> Subject: Re: bug#46824: 28.0.50; nativecomp crash with cl-block/cl-defun Date: Tue, 2 Mar 2021 09:16:12 +0000
[Message part 1 (text/plain, inline)]
On Mon, Mar 1, 2021 at 5:04 PM Andrea Corallo <akrl <at> sdf.org> wrote: > Please add to the patch the reported reproducer into > test/src/comp-test-funcs.el exercising it from test/src/comp-tests.el, > you can probably place it after the last reproducer that was added there > (46670). Test added. Okay to commit like this? Pip
[0001-Don-t-call-_setjmp-through-a-function-pointer-Bug-46.patch (text/x-patch, attachment)]
bug-gnu-emacs <at> gnu.org
:bug#46824
; Package emacs
.
(Tue, 02 Mar 2021 13:28:01 GMT) Full text and rfc822 format available.Message #29 received at 46824 <at> debbugs.gnu.org (full text, mbox):
From: Andrea Corallo <akrl <at> sdf.org> To: Pip Cet <pipcet <at> gmail.com> Cc: 46824 <at> debbugs.gnu.org, Aaron Jensen <aaronjensen <at> gmail.com> Subject: Re: bug#46824: 28.0.50; nativecomp crash with cl-block/cl-defun Date: Tue, 02 Mar 2021 13:27:32 +0000
Pip Cet <pipcet <at> gmail.com> writes: > On Mon, Mar 1, 2021 at 5:04 PM Andrea Corallo <akrl <at> sdf.org> wrote: >> Please add to the patch the reported reproducer into >> test/src/comp-test-funcs.el exercising it from test/src/comp-tests.el, >> you can probably place it after the last reproducer that was added there >> (46670). > > Test added. Okay to commit like this? Yes, just please place the test where other bug related reproducer are comp-tests.el:505 / comp-test-funcs.el:487 and name it accordingly. Thanks for fixing this Andrea
bug-gnu-emacs <at> gnu.org
:bug#46824
; Package emacs
.
(Tue, 02 Mar 2021 13:29:01 GMT) Full text and rfc822 format available.Message #32 received at 46824 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Pip Cet <pipcet <at> gmail.com> Cc: 46824 <at> debbugs.gnu.org, aaronjensen <at> gmail.com, akrl <at> sdf.org Subject: Re: bug#46824: 28.0.50; nativecomp crash with cl-block/cl-defun Date: Tue, 02 Mar 2021 15:27:54 +0200
> From: Pip Cet <pipcet <at> gmail.com> > Date: Tue, 2 Mar 2021 09:16:12 +0000 > Cc: 46824 <at> debbugs.gnu.org, Aaron Jensen <aaronjensen <at> gmail.com> > > + gcc_jit_param *params[] = > + { > + gcc_jit_context_new_param (comp.ctxt, NULL, comp.void_ptr_type, "buf"), > + }; Nitpicking: the braces here should be in column zero. > + /* Don't call setjmp through a function pointer (Bug#46824) */ > + return gcc_jit_context_new_call (comp.ctxt, > + NULL, > + gcc_jit_context_new_function > + (comp.ctxt, NULL, GCC_JIT_FUNCTION_IMPORTED, > + comp.int_type, STR (SETJMP_NAME), > + ARRAYELTS (params), params, > + false), > + 1, > + args); Another nit: in cases like this one I find this style more readable: return gcc_jit_context_new_call (comp.ctxt, NULL, gcc_jit_context_new_function (comp.ctxt, NULL, GCC_JIT_FUNCTION_IMPORTED, ... IOW, avoid having the function's name and its arguments on separate lines, as I find that harder to read. Or maybe even this: gcc_jit_rvalue *val = gcc_jit_context_new_call (comp.ctxt, NULL, gcc_jit_context_new_function (comp.ctxt, NULL, GCC_JIT_FUNCTION_IMPORTED, ...), 1, args); return val; However, since this is my personal preference, I won't insist if you find your style preferable. Thanks.
bug-gnu-emacs <at> gnu.org
:bug#46824
; Package emacs
.
(Tue, 02 Mar 2021 14:04:02 GMT) Full text and rfc822 format available.Message #35 received at 46824 <at> debbugs.gnu.org (full text, mbox):
From: Pip Cet <pipcet <at> gmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 46824 <at> debbugs.gnu.org, aaronjensen <at> gmail.com, Andrea Corallo <akrl <at> sdf.org> Subject: Re: bug#46824: 28.0.50; nativecomp crash with cl-block/cl-defun Date: Tue, 2 Mar 2021 14:02:55 +0000
[Message part 1 (text/plain, inline)]
On Tue, Mar 2, 2021 at 1:28 PM Eli Zaretskii <eliz <at> gnu.org> wrote: > > From: Pip Cet <pipcet <at> gmail.com> > > Date: Tue, 2 Mar 2021 09:16:12 +0000 > > Cc: 46824 <at> debbugs.gnu.org, Aaron Jensen <aaronjensen <at> gmail.com> > > > > + gcc_jit_param *params[] = > > + { > > + gcc_jit_context_new_param (comp.ctxt, NULL, comp.void_ptr_type, "buf"), > > + }; > > Nitpicking: the braces here should be in column zero. How about we compromise and put them in column two rather than four or zero? :-) (I hope that's what you meant). I was going to apologize for apparently messing up my cc-mode setup here, but emacs -Q also insists on the incorrect brace placement. We might want to fix that somehow for those Emacs developers who use this "Emacs" thing. > > + /* Don't call setjmp through a function pointer (Bug#46824) */ > > + return gcc_jit_context_new_call (comp.ctxt, > > + NULL, > > + gcc_jit_context_new_function > > + (comp.ctxt, NULL, GCC_JIT_FUNCTION_IMPORTED, > > + comp.int_type, STR (SETJMP_NAME), > > + ARRAYELTS (params), params, > > + false), > > + 1, > > + args); > > Another nit: in cases like this one I find this style more readable: > > return gcc_jit_context_new_call (comp.ctxt, NULL, > gcc_jit_context_new_function (comp.ctxt, > NULL, > GCC_JIT_FUNCTION_IMPORTED, > ... > > IOW, avoid having the function's name and its arguments on separate > lines, as I find that harder to read. > > Or maybe even this: > > gcc_jit_rvalue *val = > gcc_jit_context_new_call (comp.ctxt, NULL, > gcc_jit_context_new_function (comp.ctxt, NULL, > GCC_JIT_FUNCTION_IMPORTED, > ...), > 1, args); > return val; I've decided on the attached, if it's okay. > Thanks. Thank you!
[0001-Don-t-call-_setjmp-through-a-function-pointer-Bug-46.patch (text/x-patch, attachment)]
bug-gnu-emacs <at> gnu.org
:bug#46824
; Package emacs
.
(Tue, 02 Mar 2021 15:24:01 GMT) Full text and rfc822 format available.Message #38 received at 46824 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Pip Cet <pipcet <at> gmail.com> Cc: 46824 <at> debbugs.gnu.org, aaronjensen <at> gmail.com, akrl <at> sdf.org Subject: Re: bug#46824: 28.0.50; nativecomp crash with cl-block/cl-defun Date: Tue, 02 Mar 2021 17:22:56 +0200
> From: Pip Cet <pipcet <at> gmail.com> > Date: Tue, 2 Mar 2021 14:02:55 +0000 > Cc: Andrea Corallo <akrl <at> sdf.org>, 46824 <at> debbugs.gnu.org, aaronjensen <at> gmail.com > > > > + gcc_jit_param *params[] = > > > + { > > > + gcc_jit_context_new_param (comp.ctxt, NULL, comp.void_ptr_type, "buf"), > > > + }; > > > > Nitpicking: the braces here should be in column zero. > > How about we compromise and put them in column two rather than four or zero? :-) > > (I hope that's what you meant). Sorry, yes: aligned with first non-whitespace character on the previous line. > I was going to apologize for apparently messing up my cc-mode setup > here, but emacs -Q also insists on the incorrect brace placement. We > might want to fix that somehow for those Emacs developers who use this > "Emacs" thing. Perhaps submit a bug report against CC Mode. > I've decided on the attached, if it's okay. It's fine, thanks.
bug-gnu-emacs <at> gnu.org
:bug#46824
; Package emacs
.
(Tue, 02 Mar 2021 15:43:02 GMT) Full text and rfc822 format available.Message #41 received at 46824 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: pipcet <at> gmail.com Cc: 46824 <at> debbugs.gnu.org, aaronjensen <at> gmail.com, akrl <at> sdf.org Subject: Re: bug#46824: 28.0.50; nativecomp crash with cl-block/cl-defun Date: Tue, 02 Mar 2021 17:42:45 +0200
> Date: Tue, 02 Mar 2021 17:22:56 +0200 > From: Eli Zaretskii <eliz <at> gnu.org> > Cc: 46824 <at> debbugs.gnu.org, aaronjensen <at> gmail.com, akrl <at> sdf.org > > > > > + gcc_jit_param *params[] = > > > > + { > > > > + gcc_jit_context_new_param (comp.ctxt, NULL, comp.void_ptr_type, "buf"), > > > > + }; > > > > > > Nitpicking: the braces here should be in column zero. > > > > How about we compromise and put them in column two rather than four or zero? :-) > > > > (I hope that's what you meant). > > Sorry, yes: aligned with first non-whitespace character on the > previous line. > > > I was going to apologize for apparently messing up my cc-mode setup > > here, but emacs -Q also insists on the incorrect brace placement. We > > might want to fix that somehow for those Emacs developers who use this > > "Emacs" thing. > > Perhaps submit a bug report against CC Mode. Btw, my personal workaround for these cases is this: gcc_jit_param *params[] = { ...; }
bug-gnu-emacs <at> gnu.org
:bug#46824
; Package emacs
.
(Wed, 03 Mar 2021 19:40:01 GMT) Full text and rfc822 format available.Message #44 received at 46824 <at> debbugs.gnu.org (full text, mbox):
From: Andrea Corallo <akrl <at> sdf.org> To: Pip Cet <pipcet <at> gmail.com> Cc: Eli Zaretskii <eliz <at> gnu.org>, 46824 <at> debbugs.gnu.org, aaronjensen <at> gmail.com Subject: Re: bug#46824: 28.0.50; nativecomp crash with cl-block/cl-defun Date: Wed, 03 Mar 2021 19:39:21 +0000
Pip Cet <pipcet <at> gmail.com> writes: [...] > I've decided on the attached, if it's okay. I've installed it as 43b40bc880. Thanks Andrea
bug-gnu-emacs <at> gnu.org
:bug#46824
; Package emacs
.
(Thu, 04 Mar 2021 07:24:02 GMT) Full text and rfc822 format available.Message #47 received at 46824 <at> debbugs.gnu.org (full text, mbox):
From: Pip Cet <pipcet <at> gmail.com> To: Andrea Corallo <akrl <at> sdf.org> Cc: Eli Zaretskii <eliz <at> gnu.org>, 46824 <at> debbugs.gnu.org, aaronjensen <at> gmail.com Subject: Re: bug#46824: 28.0.50; nativecomp crash with cl-block/cl-defun Date: Thu, 4 Mar 2021 07:22:29 +0000
On Wed, Mar 3, 2021 at 7:39 PM Andrea Corallo <akrl <at> sdf.org> wrote: > Pip Cet <pipcet <at> gmail.com> writes: > > [...] > > > I've decided on the attached, if it's okay. > > I've installed it as 43b40bc880. Thanks! Can we close this bug? Pip
Andrea Corallo <akrl <at> sdf.org>
:Aaron Jensen <aaronjensen <at> gmail.com>
:Message #52 received at 46824-done <at> debbugs.gnu.org (full text, mbox):
From: Andrea Corallo <akrl <at> sdf.org> To: Pip Cet <pipcet <at> gmail.com> Cc: Eli Zaretskii <eliz <at> gnu.org>, 46824-done <at> debbugs.gnu.org, aaronjensen <at> gmail.com Subject: Re: bug#46824: 28.0.50; nativecomp crash with cl-block/cl-defun Date: Thu, 04 Mar 2021 07:38:49 +0000
Pip Cet <pipcet <at> gmail.com> writes: > On Wed, Mar 3, 2021 at 7:39 PM Andrea Corallo <akrl <at> sdf.org> wrote: >> Pip Cet <pipcet <at> gmail.com> writes: >> >> [...] >> >> > I've decided on the attached, if it's okay. >> >> I've installed it as 43b40bc880. > > Thanks! Can we close this bug? Aaron confirmed the patch was solving the issue so I think so. Closing then, thanks Andrea
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Thu, 01 Apr 2021 11:24:05 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.