GNU bug report logs - #78946
30.1; accept-process-output not allowed in threads on macOS

Previous Next

Package: emacs;

Reported by: John Wiegley <jwiegley <at> gmail.com>

Date: Wed, 2 Jul 2025 19:21:02 UTC

Severity: normal

Found in version 30.1

To reply to this bug, email your comments to 78946 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#78946; Package emacs. (Wed, 02 Jul 2025 19:21:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to John Wiegley <jwiegley <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 02 Jul 2025 19:21:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: John Wiegley <jwiegley <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Cc: eliz <at> gnu.org, contact <at> karthinks.com
Subject: 30.1; accept-process-output not allowed in threads on macOS
Date: Wed, 2 Jul 2025 12:19:31 -0700
If I run the attached code from the terminal using:

#+begin_src sh
emacs -batch -Q -l accept-process-bug.el
#+end_src

It will correctly run forever, processing output from the “yes” command (you
can convince yourself of this by adding a debug statement inside the process
filter, but it will be extremely noisy).

If you now attempt to evaluate this code in a graphical Emacs running on
macOS, it will immediately stall out. Running Emacs under lldb shows that it
is reporting the following exception continuously:

#+begin_example
2025-07-02 12:10:23.857272-0700 Emacs[34130:54192679] [General] nextEventMatchingMask should only be called from the Main Thread!
2025-07-02 12:10:23.857732-0700 Emacs[34130:54192679] [General] (
      0   CoreFoundation                      0x0000000193d66ca0 __exceptionPreprocess + 176
      1   libobjc.A.dylib                     0x000000019382ab90 objc_exception_throw + 88
      2   AppKit                              0x00000001985baefc -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3068
      3   AppKit                              0x0000000197c0ec64 -[NSApplication run] + 480
      4   Emacs                               0x000000010040f400 -[EmacsApp run] + 100
      5   Emacs                               0x000000010040d35c ns_select_1 + 1080
      6   Emacs                               0x000000010040cefc ns_select + 72
      7   Emacs                               0x000000010036d148 wait_reading_process_output + 4784
      8   Emacs                               0x000000010036bdb8 Faccept_process_output + 1268
      9   Emacs                               0x00000001002cda90 eval_sub + 2252
      10  Emacs                               0x00000001002ce20c Fprogn + 112
      11  Emacs                               0x00000001002ce3b8 prog_ignore + 24
      12  Emacs                               0x00000001002d19ac Fwhile + 132
      13  Emacs                               0x00000001002cd62c eval_sub + 1128
      14  Emacs                               0x00000001002ce20c Fprogn + 112
      15  Emacs                               0x00000001002d108c FletX + 876
      16  Emacs                               0x00000001002cd62c eval_sub + 1128
      17  Emacs                               0x00000001002ce20c Fprogn + 112
      18  Emacs                               0x00000001002d84ec funcall_lambda + 1832
      19  Emacs                               0x00000001002d7618 funcall_general + 288
      20  Emacs                               0x00000001002cf438 Ffuncall + 472
      21  Emacs                               0x00000001003c3c10 invoke_thread_function + 64
      22  Emacs                               0x00000001002d32c4 internal_condition_case + 148
      23  Emacs                               0x00000001003c22dc run_thread + 344
      24  libsystem_pthread.dylib             0x0000000193c0ac0c _pthread_start + 136
      25  libsystem_pthread.dylib             0x0000000193c05b80 thread_start + 8
)
#+end_example

While this is happening, the only thing I can do is send a SIGTERM to Emacs to
force it to abort. Note that this does NOT happen in a graphical Emacs on
GNU/Linux, as confirmed by Karthik Chikmagalur.

Below is the Lisp code to reproduce this problem on macOS:

#+begin_src emacs-lisp
(message "Starting thread...")

(let ((thread
       (make-thread
        #'(lambda ()
            (let* (completed
                   (proc
                    (make-process
                     :name "process"
                     :command '("yes")
                     :connection-type 'pipe
                     :filter #'(lambda (_proc x))
                     :sentinel #'(lambda (_proc event)
                                   (message "Sentinel: %S" x)
                                   (setq completed t)))))
              (while (not completed)
                (thread-yield)
                (accept-process-output proc nil 100)))))))

  (message "Beginning yield loop...")
  (while (thread-live-p thread)
    (thread-yield))
  (message "Joining thread...")
  (thread-join thread)

  (message "Test completed!"))
#+end_src

John Wiegley


In GNU Emacs 30.1 (build 1, aarch64-apple-darwin24.5.0, NS appkit-2575.60
Version 15.5 (Build 24F74))
Windowing system distributor 'Apple', version 10.3.2575
System Description:  macOS 15.5

Configured using:
'configure --prefix=/nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1
--disable-build-details --with-modules --disable-ns-self-contained --with-ns
--with-compress-install --with-toolkit-scroll-bars --with-native-compilation
--with-imagemagick --with-mailutils --without-small-ja-dic --with-tree-sitter
--without-xinput2 --without-xwidgets --without-dbus --without-selinux
--disable-gc-mark-trace'

Configured features:
ACL GLIB GMP GNUTLS IMAGEMAGICK JPEG LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY
KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER WEBP XIM ZLIB

Important settings:
  value of $EMACSLOADPATH:
  value of $EMACSNATIVELOADPATH:
  value of $LC_CTYPE: en_US.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: ELisp/d

Minor modes in effect:
  aggressive-indent-mode: t
  flymake-mode: t
  highlight-defined-mode: t
  highlight-quoted-mode: t
  redshank-mode: t
  paredit-mode: t
  highlight-numbers-mode: t
  pretty-control-l-mode: t
  rainbow-delimiters-mode: t
  global-edit-server-edit-mode: t
  pdf-occur-global-minor-mode: t
  magit-todos-mode: t
  global-git-commit-mode: t
  server-mode: t
  consult-org-roam-mode: t
  vulpea-db-autosync-mode: t
  org-extra-emphasis-intraword-emphasis-mode: t
  org-edna-mode: t
  org-auto-expand-mode: t
  typo-global-mode: t
  diredfl-global-mode: t
  dired-hist-mode: t
  corfu-popupinfo-mode: t
  org-super-agenda-mode: t
  yas-minor-mode: t
  corfu-prescient-mode: t
  vertico-prescient-mode: t
  prescient-persist-mode: t
  global-corfu-mode: t
  corfu-mode: t
  vertico-multiform-mode: t
  vertico-mode: t
  projectile-mode: t
  global-completion-preview-mode: t
  completion-preview-mode: t
  winner-mode: t
  global-whitespace-cleanup-mode: t
  whitespace-cleanup-mode: t
  ultra-scroll-mode: t
  pixel-scroll-precision-mode: t
  display-time-mode: t
  selected-global-mode: t
  selected-minor-mode: t
  savehist-mode: t
  repeat-mode: t
  recentf-mode: t
  persistent-scratch-autosave-mode: t
  midnight-mode: t
  auto-image-file-mode: t
  outline-minor-mode: t
  eager-state-mode: t
  eager-state-preempt-kill-emacs-hook-mode: t
  delete-selection-mode: t
  global-auto-revert-mode: t
  override-global-mode: t
  tooltip-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  minibuffer-regexp-mode: 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
  temp-buffer-resize-mode: t
  abbrev-mode: t
  hs-minor-mode: t

Load-path shadows:
/Users/johnw/.emacs.d/lisp/gptel/gptel-gh hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/gptel-gh
/Users/johnw/.emacs.d/lisp/gptel/gptel-curl hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/gptel-curl
/Users/johnw/.emacs.d/lisp/gptel/gptel-bedrock hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/gptel-bedrock
/Users/johnw/.emacs.d/lisp/gptel/gptel-anthropic hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/gptel-anthropic
/Users/johnw/.emacs.d/lisp/gptel/gptel-context hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/gptel-context
/Users/johnw/.emacs.d/lisp/gptel/gptel-openai hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/gptel-openai
/Users/johnw/.emacs.d/lisp/gptel/gptel-openai-extras hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/gptel-openai-extras
/Users/johnw/.emacs.d/lisp/gptel/gptel-ollama hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/gptel-ollama
/Users/johnw/.emacs.d/lisp/gptel/gptel-rewrite hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/gptel-rewrite
/Users/johnw/.emacs.d/lisp/gptel/gptel-transient hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/gptel-transient
/Users/johnw/.emacs.d/lisp/gptel/gptel-kagi hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/gptel-kagi
/Users/johnw/.emacs.d/lisp/gptel/gptel hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/gptel
/Users/johnw/.emacs.d/lisp/gnus-harvest/gnus-harvest hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/gnus-harvest
/Users/johnw/.emacs.d/lisp/gptel/gptel-gemini hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/gptel-gemini
/Users/johnw/.emacs.d/lisp/gptel/gptel-integrations hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/gptel-integrations
/Users/johnw/.emacs.d/lisp/gptel/gptel-org hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/gptel-org
/Users/johnw/.emacs.d/lisp/alert/alert hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/alert-20221213.1619/alert
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/ox-odt hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ox-odt
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-ml-20250514.2314/init hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-sql-20240819.2145/init
/Users/johnw/.emacs.d/lisp/regex-tool/regex-tool hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/regex-tool-20170104.1918/regex-tool
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/elsa-20250316.29/Elsafile hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/trinary-20230301.2044/Elsafile
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/eat-0.9.4/eat hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/eat-0.9.4/term/eat
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-vcard-20250325.1512/styles/flat/functions hides /nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-vcard-20250325.1512/styles/tree/functions
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/site-start hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/site-lisp/site-start
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/external-completion-0.1/external-completion hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/external-completion
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/jsonrpc-1.0.25/jsonrpc hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/jsonrpc
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/transient-20250530.2040/transient hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/transient
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/peg-1.0.1/peg hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/progmodes/peg
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/xref-1.7.0/xref hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/progmodes/xref
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/project-0.11.1/project hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/progmodes/project
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/eglot-1.18/eglot hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/progmodes/eglot
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/flymake-1.4.1/flymake hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/progmodes/flymake
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-exp hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-exp
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-emacs-lisp hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-emacs-lisp
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/oc hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/oc
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-css hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-css
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-lob hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-lob
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ol-irc hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ol-irc
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-forth hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-forth
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-macs hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-macs
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-version hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-version
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-scheme hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-scheme
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ox hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ox
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-C hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-C
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-capture hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-capture
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-ref hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-ref
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-clojure hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-clojure
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-mouse hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-mouse
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-persist hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-persist
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-ctags hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-ctags
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-entities hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-entities
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-archive hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-archive
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-screen hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-screen
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ol-bibtex hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ol-bibtex
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-haskell hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-haskell
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-loaddefs hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-loaddefs
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-table hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-table
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ol-eww hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ol-eww
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ol-man hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ol-man
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ox-org hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ox-org
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-num hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-num
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-plot hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-plot
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ol-rmail hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ol-rmail
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-awk hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-awk
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-groovy hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-groovy
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-octave hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-octave
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-faces hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-faces
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/oc-biblatex hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/oc-biblatex
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-colview hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-colview
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-R hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-R
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-refile hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-refile
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-timer hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-timer
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-mobile hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-mobile
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-fortran hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-fortran
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-shell hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-shell
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-perl hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-perl
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-sqlite hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-sqlite
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/oc-basic hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/oc-basic
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-sed hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-sed
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-list hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-list
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-ruby hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-ruby
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-eval hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-eval
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-habit hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-habit
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-clock hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-clock
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-goto hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-goto
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ox-html hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ox-html
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-src hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-src
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-lisp hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-lisp
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ol-eshell hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ol-eshell
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-ditaa hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-ditaa
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-pcomplete hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-pcomplete
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-lint hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-lint
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ox-latex hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ox-latex
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-sass hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-sass
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-tangle hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-tangle
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-calc hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-calc
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-java hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-java
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ox-icalendar hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ox-icalendar
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ol-mhe hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ol-mhe
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-attach-git hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-attach-git
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ox-md hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ox-md
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ox-beamer hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ox-beamer
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-element hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-element
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/oc-natbib hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/oc-natbib
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-protocol hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-protocol
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-gnuplot hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-gnuplot
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-tempo hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-tempo
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-latex hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-latex
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ol-w3m hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ol-w3m
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-id hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-id
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ox-man hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ox-man
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ol-doi hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ol-doi
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-feed hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-feed
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-fold-core hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-fold-core
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-julia hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-julia
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-lua hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-lua
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-table hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-table
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-ocaml hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-ocaml
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/oc-csl hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/oc-csl
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ol-gnus hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ol-gnus
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-indent hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-indent
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-lilypond hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-lilypond
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-matlab hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-matlab
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-datetree hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-datetree
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ol-docview hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ol-docview
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/oc-bibtex hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/oc-bibtex
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-python hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-python
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-makefile hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-makefile
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-duration hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-duration
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-agenda hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-agenda
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-dot hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-dot
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-js hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-js
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ox-publish hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ox-publish
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-inlinetask hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-inlinetask
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-org hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-org
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-keys hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-keys
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-core hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-core
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-compat hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-compat
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ol hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ol
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/ox-odt hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ox-odt
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ol-info hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ol-info
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-plantuml hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-plantuml
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-eshell hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-eshell
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ox-ascii hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ox-ascii
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ox-koma-letter hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ox-koma-letter
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-maxima hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-maxima
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ol-bbdb hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ol-bbdb
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-macro hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-macro
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-fold hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-fold
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-sql hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-sql
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-attach hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-attach
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-cycle hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-cycle
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-processing hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-processing
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ox-texinfo hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ox-texinfo
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-crypt hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-crypt
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-footnote hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-footnote
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/org-element-ast hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/org-element-ast
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.30/ob-comint hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/org/ob-comint
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/supercite hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/mail/supercite
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/compat-30.1.0.0/compat hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/emacs-lisp/compat
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/track-changes-1.4/track-changes hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/emacs-lisp/track-changes
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/seq-2.24/seq hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/emacs-lisp/seq
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/emacs-lisp/let-alist
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/nadvice-0.4/nadvice hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/emacs-lisp/nadvice
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/map-3.3.1/map hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/emacs-lisp/map
/nix/store/fw868mrz90292idbv5shv0nhli6qvcdr-emacs-packages-deps/share/emacs/site-lisp/elpa/eldoc-1.15.0/eldoc hides /nix/store/mwy2gfjya1iv262gq75yav8qfpbhpm0l-emacs-30.1/share/emacs/30.1/lisp/emacs-lisp/eldoc
/Users/johnw/.emacs.d/lisp/mcp.el/mcp hides /Users/johnw/.emacs.d/lisp/mcp

Features:
(shadow sort gnus-cite gnus-alias footnote jinx mail-extr emacsbug tramp-cmds
easy-kill embark-org-roam embark-org embark-consult embark ffap checkdoc
lisp-mnt aggressive-indent flymake highlight-cl highlight-defined
highlight-quoted redshank skeleton paredit-ext paredit hideshow
highlight-numbers parent-mode pp-c-l rainbow-delimiters vertico-unobtrusive
vertico-flat gnus-async gnus-dup qp gnus-ml my-gnus-score utf-7 gnus-topic
nndraft nnmh network-stream gnus-agent gnus-srvr nnvirtual gnus-cache
org-clock dired-aux gnus-dired dired-x eshell-bookmark em-xtra em-unix em-term
em-script em-rebind em-prompt em-pred em-ls em-hist em-glob em-cmpl em-basic
em-alias eshell-z em-dirs esh-mode esh-var eshell esh-cmd esh-ext esh-opt
esh-proc esh-io esh-arg esh-module esh-module-loaddefs esh-util esh-toggle
edit-server font-utils cal-iso org-appear org-pdftools org-noter org-noter-pdf
pdf-virtual pdf-sync pdf-outline pdf-occur pdf-links pdf-isearch pdf-history
pdf-dev pdf-annot tablist tablist-filter semantic/wisent/comp semantic/wisent
semantic/wisent/wisent semantic/util-modes semantic/util semantic semantic/tag
semantic/lex semantic/fw cedet pdf-misc pdf-tools pdf-view pdf-cache pdf-info
tq pdf-util pdf-macs org-noter-core org-pretty-table toc-org face-remap
ox-pandoc ox-gfm orgit-forge orgit magit-tbdiff forge-repos forge-tablist
hl-line+ hl-line forge-topics forge-commands forge-semi forge-bitbucket buck
forge-gogs gogs forge-gitea gtea forge-gitlab glab forge-github ghub-graphql
treepy gsexp ghub url-http url-gw nsm url-auth forge-forgejo forge-notify
forge-revnote forge-pullreq forge-issue forge-discussion forge-topic yaml
eieio-custom bug-reference forge-post markdown-preview-mode web-server
web-server-status-codes websocket bindat markdown-mode edit-indirect
forge-repo forge forge-core forge-db closql magit-todos pcre2el rxt re-builder
hl-todo async magit-popup magit-bookmark 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
which-func imenu magit-diff smerge-mode diff git-commit log-edit pcvs-util
add-log magit-core magit-autorevert magit-margin magit-transient magit-process
with-editor server magit-mode benchmark magit-git magit-base org-roam-ext
listen listen-vlc listen-lib parse-csv consult-org-roam
consult-org-roam-buffer emacsql-sqlite-builtin vulpea-ext vulpea-field vulpea
vulpea-meta vulpea-select vulpea-buffer vulpea-db vulpea-utils vulpea-note
org-review org-projectile org-project-capture org-project-capture-backend
org-category-capture org-real ispell boxy org-protocol org-mime ox-org
org-inlinetask org-extra-emphasis htmlfontify cus-edit ox-odt oc-csl citeproc
citeproc-itemgetters parsebib citeproc-cite citeproc-biblatex citeproc-bibtex
citeproc-subbibs citeproc-sort citeproc-name citeproc-formatters citeproc-proc
citeproc-disamb citeproc-itemdata citeproc-generic-elements citeproc-macro
citeproc-choose citeproc-date citeproc-number rst citeproc-context
citeproc-prange citeproc-style citeproc-locale citeproc-term citeproc-rt
citeproc-lib citeproc-s let-alist queue rng-loc rng-uri rng-parse rng-match
rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util odt
ox-md ox-latex ox-icalendar ox-html table ox-ascii ox-publish ox org-color
org-edna org-devonthink org-crypt org-context org-archive org-bookmark-heading
mode-local ob-restclient restclient ob-makefile ob-dot ob-sql ob-C cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs ob-plantuml ob-ditaa ob-latex ob-shell ob-calc calc-store calc-trail
ob-haskell ob-python python ob-emamux emamux vagrant-tramp term disp-table
ehelp tramp trampver tramp-integration files-x tramp-message tramp-compat
shell tramp-loaddefs org-attach-git org-auto-expand org-config
org-agenda-random org-roam-dailies org-roam-migrate org-roam-log org-roam-mode
org-roam-capture org-roam-id org-roam-node org-roam-db org-roam-utils
org-roam-compat org-roam org-attach emacsql-sqlite emacsql emacsql-compiler
magit-section cursor-sensor llama vc-git vc-dispatcher bm org-contacts
org-capture typo oc-basic ol-eww eww url-queue mm-url ol-rmail ol-mhe ol-irc
ol-info ol-gnus nnselect spam spam-stat gnus-uu yenc gnus-msg gnus-demon nntp
gnus-registry registry gnus-score score-mode gnus-art mm-uu mml2015 mm-view
mml-smime smime gnutls dig rs-gnus-summary gnus-sum shr pixel-fill kinsoku
url-file svg gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud
nnimap nnmail mail-source utf7 parse-time gnus-spec gnus-win nnoo gnus-int
gnus-range gnus-harvest smtpmail message yank-media puny rfc822 mml mml-sec
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader mailalias sendmail rfc2047 rfc2045 ietf-drums gnus nnheader
gnus-util mail-utils range mm-util mail-prsvr ol-docview doc-view jka-compr
image-mode exif diredfl dired-hist dired dired-loaddefs ol-bibtex bibtex
iso8601 ol-bbdb ol-w3m ol-doi org-link-doi corfu-popupinfo org-ql-ext
org-ql-find org-ql-completing-read org-ql-search org-ql-view ov crm
org-super-agenda ht f org-ext org-ql peg ts s org-habit org-agenda-overlay
timeout org-agenda org-duration proof-site proof-autoloads consult-yasnippet
yasnippet vertico-quick vertico-directory vertico-repeat corfu-prescient
vertico-prescient prescient char-fold orderless cape corfu consult-projectile
vertico-multiform vertico consult-xref xref consult projectile ibuf-ext
ibuffer ibuffer-loaddefs completion-preview winner whitespace-cleanup-mode
whitespace wgrep unicode-fonts ultra-scroll pixel-scroll cua-base
sky-color-clock color templatel time selected savehist repeat recentf
tree-widget wid-edit plstore personal persistent-soft list-utils pcache
eieio-base cl persistent-scratch multiple-cursors mc-separate-operations
rectangular-region-mode mc-mark-pop mc-edit-lines mc-hide-unmatched-lines-mode
mc-mark-more sgml-mode facemenu dom mc-cycle-cursors multiple-cursors-core
advice comp comp-cstr comp-run comp-common move-text midnight inheritenv
image-file image-converter grep compile mcp jsonrpc warnings
llm-tool-collection gptel-got gptel-rag gptel-prompts ob-gptel gptel-ext
corsair project gptel-quick gptel-context gptel-rewrite gptel-transient
transient gptel-integrations gptel-org org-element org-persist xdg org-id
org-refile org-element-ast inline org ob ob-tangle ob-ref ob-lob ob-table
ob-exp org-macro org-src sh-script smie treesit executable ob-comint
org-pcomplete pcomplete comint ansi-osc ansi-color org-list org-footnote
org-faces org-entities time-date noutline outline ob-emacs-lisp ob-core
ob-eval org-cycle org-table org-keys oc org-loaddefs thingatpt find-func ol
org-fold org-fold-core org-compat ring avl-tree generator org-version org-macs
format-spec gptel-litellm gptel-tools gptel-presets gptel-backends gptel-curl
gptel gptel-openai compat epa-file epa derived epg rfc6068 epg-config
eager-state direnv diff-mode track-changes dash delsel cus-load diary-lib
diary-loaddefs cal-julian solar cal-dst cal-menu calendar cal-loaddefs
calc-units bookmark text-property-search pp autorevert filenotify agda-input
quail diminish org-constants edmacro kmacro uuidgen calc-misc calc-ext calc
calc-loaddefs rect calc-macs auth-source-pass john-wiegley-theme cl-extra
help-mode use-package use-package-ensure use-package-delight
use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core
2048-game-autoloads ace-mc-autoloads ace-jump-mode-autoloads
adoc-mode-autoloads aggressive-indent-autoloads apiwrap-autoloads
aria2-autoloads auctex-autoloads tex-site auto-yasnippet-autoloads
avy-embark-collect-autoloads avy-zap-autoloads biblio-autoloads
biblio-core-autoloads bm-autoloads boogie-friends-autoloads
browse-kill-ring-autoloads browser-hist-autoloads burly-autoloads
button-lock-autoloads calfw-autoloads calfw-cal-autoloads calfw-org-autoloads
cape-autoloads cargo-autoloads change-inner-autoloads citar-embark-autoloads
citar-org-roam-autoloads citar-autoloads citeproc-autoloads
cmake-font-lock-autoloads cmake-mode-autoloads color-moccur-autoloads
color-theme-autoloads command-log-mode-autoloads company-coq-autoloads
company-math-autoloads consult-company-autoloads consult-dir-autoloads
consult-eglot-embark-autoloads consult-eglot-autoloads
consult-gh-embark-autoloads consult-gh-forge-autoloads
consult-gh-with-pr-review-autoloads consult-gh-autoloads
consult-org-roam-autoloads consult-projectile-autoloads
consult-yasnippet-autoloads copy-as-format-autoloads corfu-prescient-autoloads
corfu-autoloads csv-mode-autoloads dape-autoloads deadgrep-autoloads
dedicated-autoloads diff-hl-autoloads diffview-autoloads diminish-autoloads
dired-rsync-autoloads dired-subtree-autoloads dired-hacks-utils-autoloads
dired-toggle-autoloads diredfl-autoloads direnv-autoloads
discover-my-major-autoloads docker-autoloads aio-autoloads
docker-compose-mode-autoloads dockerfile-mode-autoloads easky-autoloads
eask-mode-autoloads eask-autoloads easy-kill-autoloads eat-autoloads
edbi-autoloads edit-server-autoloads eglot-autoloads el-job-autoloads
el-mock-autoloads elisp-depend-autoloads elisp-docstring-mode-autoloads
elisp-slime-nav-autoloads elmacro-autoloads elpy-autoloads elsa-autoloads
ansi-autoloads emamux-autoloads embark-consult-autoloads consult-autoloads
embark-org-roam-autoloads embark-vc-autoloads embark-autoloads ement-autoloads
emojify-autoloads epc-autoloads ctable-autoloads concurrent-autoloads
eshell-bookmark-autoloads eshell-up-autoloads eshell-z-autoloads
evil-autoloads expand-region-autoloads eyebrowse-autoloads
feebleline-autoloads flymake-autoloads flymake-eask-autoloads
flymake-easy-autoloads fn-autoloads focus-autoloads font-lock-studio-autoloads
free-keys-autoloads fringe-helper-autoloads fuzzy-autoloads gerrit-autoloads
git-link-autoloads git-timemachine-autoloads git-undo-autoloads
gnus-alias-autoloads gnus-recent-autoloads goto-chg-autoloads
goto-last-change-autoloads graphviz-dot-mode-autoloads haskell-mode-autoloads
helpful-autoloads elisp-refs-autoloads highlight-autoloads
highlight-defined-autoloads highlight-indentation-autoloads
highlight-numbers-autoloads highlight-quoted-autoloads ialign-autoloads
iedit-autoloads indium-autoloads company-autoloads inheritenv-autoloads
inspector-autoloads ipcalc-autoloads jinx-autoloads jq-mode-autoloads
js2-refactor-autoloads js2-mode-autoloads json-mode-autoloads
json-process-client-autoloads json-reformat-autoloads json-snatcher-autoloads
key-chord-autoloads keypression-autoloads khoj-autoloads
know-your-http-well-autoloads kv-autoloads language-id-autoloads
ledger-mode-autoloads lgr-autoloads link-hint-autoloads lispy-autoloads
listen-autoloads literate-calc-mode-autoloads lively-autoloads
logito-autoloads loop-autoloads lsp-mode-autoloads lua-mode-autoloads
m-buffer-autoloads magit-popup-autoloads magit-tbdiff-autoloads
magit-todos-autoloads hl-todo-autoloads async-autoloads makey-autoloads
malyon-autoloads marginalia-autoloads markdown-preview-mode-autoloads
marquee-header-autoloads marshal-autoloads math-symbol-lists-autoloads
mc-calc-autoloads mc-extras-autoloads mediawiki-autoloads
memory-usage-autoloads minesweeper-autoloads move-text-autoloads
multi-term-autoloads multi-vterm-autoloads multifiles-autoloads
multiple-cursors-autoloads nginx-mode-autoloads nix-mode-autoloads
noflet-autoloads nov-autoloads ob-diagrams-autoloads ob-restclient-autoloads
ob-solidity-autoloads olivetti-autoloads operate-on-number-autoloads
orderless-autoloads org-anki-autoloads org-appear-autoloads
org-auto-expand-autoloads org-autolist-autoloads
org-bookmark-heading-autoloads org-caldav-autoloads org-contacts-autoloads
org-drill-autoloads org-edit-indirect-autoloads org-edna-autoloads
org-mime-autoloads org-mru-clock-autoloads org-notifications-autoloads
alert-autoloads log4e-autoloads gntp-autoloads org-pdftools-autoloads
org-noter-autoloads org-projectile-autoloads org-project-capture-autoloads
org-category-capture-autoloads org-real-autoloads boxy-autoloads
org-remark-autoloads org-review-autoloads org-rich-yank-autoloads
org-roam-ui-autoloads org-sidebar-autoloads org-ql-autoloads org-sql-autoloads
org-ml-autoloads org-sticky-header-autoloads org-super-agenda-autoloads
org-superstar-autoloads org-table-color-autoloads org-transclusion-autoloads
org-vcard-autoloads org-web-tools-autoloads esxml-autoloads
orgit-forge-autoloads orgit-autoloads forge-autoloads closql-autoloads
outline-indent-autoloads ov-autoloads ox-gfm-autoloads ox-pandoc-autoloads
package-lint-autoloads pact-mode-autoloads pandoc-mode-autoloads
paradox-autoloads parent-mode-autoloads parse-csv-autoloads parsebib-autoloads
parsec-autoloads pass-autoloads password-store-otp-autoloads
password-store-autoloads pcre2el-autoloads pdf-tools-autoloads
pdfgrep-autoloads persist-autoloads persistent-scratch-autoloads pg-autoloads
pkg-info-autoloads epl-autoloads plantuml-mode-autoloads plz-autoloads
popup-autoloads popwin-autoloads pos-tip-autoloads pr-review-autoloads
ghub-autoloads markdown-mode-autoloads magit-autoloads pcase prodigy-autoloads
projectile-autoloads promise-autoloads protobuf-mode-autoloads
python-mode-autoloads pyvenv-autoloads queue-autoloads quick-peek-autoloads
rainbow-delimiters-autoloads rainbow-mode-autoloads redshank-autoloads
paredit-autoloads regex-tool-autoloads request-autoloads restclient-autoloads
riscv-mode-autoloads rust-mode-autoloads sbt-mode-autoloads
scala-mode-autoloads selected-autoloads separedit-autoloads
edit-indirect-autoloads shell-toggle-autoloads shift-number-autoloads
simple-httpd-autoloads slime-autoloads macrostep-autoloads
smart-newline-autoloads smartparens-autoloads solidity-flycheck-autoloads
solidity-mode-autoloads sort-words-autoloads sound-wav-autoloads
deferred-autoloads spinner-autoloads sql-indent-autoloads
string-inflection-autoloads sudo-edit-autoloads svg-lib-autoloads
swift-mode-autoloads swiper-autoloads ivy-autoloads tablist-autoloads
tagedit-autoloads taxy-magit-section-autoloads taxy-autoloads
templatel-autoloads terraform-mode-autoloads hcl-mode-autoloads
timeout-autoloads toc-org-autoloads track-changes-autoloads
transient-autoloads transpose-mark-autoloads tree-inspector-autoloads
treemacs-autoloads cfrs-autoloads posframe-autoloads ht-autoloads
pfuture-autoloads ace-window-autoloads avy-autoloads treepy-autoloads
treeview-autoloads trinary-autoloads ts-autoloads tuareg-autoloads rx
caml-autoloads typescript-mode-autoloads typo-autoloads undo-propose-autoloads
unicode-fonts-autoloads ucs-utils-autoloads font-utils-autoloads
persistent-soft-autoloads list-utils-autoloads pcache-autoloads
uniline-autoloads uuidgen-autoloads vagrant-autoloads vagrant-tramp-autoloads
vdiff-autoloads hydra-autoloads lv-autoloads verb-autoloads
vertico-prescient-autoloads vertico-autoloads prescient-autoloads
vimish-fold-autoloads f-autoloads virtual-auto-fill-autoloads
adaptive-wrap-autoloads visual-regexp-autoloads vterm-autoloads
vulpea-autoloads org-roam-autoloads magit-section-autoloads llama-autoloads
emacsql-autoloads org-autoloads vundo-autoloads w3m-load w3m-autoloads
web-autoloads s-autoloads dash-autoloads web-mode-autoloads
web-server-autoloads websocket-autoloads wgrep-autoloads
whitespace-cleanup-mode-autoloads window-purpose-autoloads
imenu-list-autoloads with-editor-autoloads info writeroom-mode-autoloads
visual-fill-column-autoloads xr-autoloads yaml-autoloads yaml-mode-autoloads
yasnippet-autoloads z3-mode-autoloads flycheck-autoloads zoom-autoloads
zoutline-autoloads ztree-autoloads package browse-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie generate-lisp-file
url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio
eieio-core cl-macs icons password-cache json subr-x map byte-opt gv bytecomp
byte-compile url-vars cl-loaddefs cl-lib 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 kqueue cocoa
ns lcms2 multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 2344901 1982502) (symbols 48 87115 119) (strings 32 396635 186413)
(string-bytes 1 11876087) (vectors 16 235499)
(vector-slots 8 2840459 1810933) (floats 8 1666 2318)
(intervals 56 7769 4228) (buffers 992 113))
--
John Wiegley                  GPG fingerprint = 4710 CF98 AF9B 327B B80F
http://newartisans.com                          60E1 46C4 BD1A 7AC1 4BA2




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78946; Package emacs. (Thu, 03 Jul 2025 10:13:01 GMT) Full text and rfc822 format available.

Message #8 received at 78946 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: John Wiegley <jwiegley <at> gmail.com>
Cc: 78946 <at> debbugs.gnu.org, contact <at> karthinks.com
Subject: Re: 30.1; accept-process-output not allowed in threads on macOS
Date: Thu, 03 Jul 2025 13:12:32 +0300
> From: John Wiegley <jwiegley <at> gmail.com>
> Date: Wed, 2 Jul 2025 12:19:31 -0700
> Cc: eliz <at> gnu.org,
>  contact <at> karthinks.com
> 
> If I run the attached code from the terminal using:
> 
> #+begin_src sh
> emacs -batch -Q -l accept-process-bug.el
> #+end_src
> 
> It will correctly run forever, processing output from the “yes” command (you
> can convince yourself of this by adding a debug statement inside the process
> filter, but it will be extremely noisy).
> 
> If you now attempt to evaluate this code in a graphical Emacs running on
> macOS, it will immediately stall out. Running Emacs under lldb shows that it
> is reporting the following exception continuously:

Please elaborate on "will immediately stall".  Does it mean it will
not "run forever" as in batch mode?  If so, what will it do instead?

> #+begin_example
> 2025-07-02 12:10:23.857272-0700 Emacs[34130:54192679] [General] nextEventMatchingMask should only be called from the Main Thread!

This message seems to be relevant, no?  Can some macOS expert explain
what it means, and how is that related to ns_select?

> 2025-07-02 12:10:23.857732-0700 Emacs[34130:54192679] [General] (
>       0   CoreFoundation                      0x0000000193d66ca0 __exceptionPreprocess + 176
>       1   libobjc.A.dylib                     0x000000019382ab90 objc_exception_throw + 88
>       2   AppKit                              0x00000001985baefc -[NSApplication(NSEventRouting) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 3068
>       3   AppKit                              0x0000000197c0ec64 -[NSApplication run] + 480
>       4   Emacs                               0x000000010040f400 -[EmacsApp run] + 100
>       5   Emacs                               0x000000010040d35c ns_select_1 + 1080
>       6   Emacs                               0x000000010040cefc ns_select + 72
>       7   Emacs                               0x000000010036d148 wait_reading_process_output + 4784
>       8   Emacs                               0x000000010036bdb8 Faccept_process_output + 1268
>       9   Emacs                               0x00000001002cda90 eval_sub + 2252
>       10  Emacs                               0x00000001002ce20c Fprogn + 112
>       11  Emacs                               0x00000001002ce3b8 prog_ignore + 24
>       12  Emacs                               0x00000001002d19ac Fwhile + 132
>       13  Emacs                               0x00000001002cd62c eval_sub + 1128
>       14  Emacs                               0x00000001002ce20c Fprogn + 112
>       15  Emacs                               0x00000001002d108c FletX + 876
>       16  Emacs                               0x00000001002cd62c eval_sub + 1128
>       17  Emacs                               0x00000001002ce20c Fprogn + 112
>       18  Emacs                               0x00000001002d84ec funcall_lambda + 1832
>       19  Emacs                               0x00000001002d7618 funcall_general + 288
>       20  Emacs                               0x00000001002cf438 Ffuncall + 472
>       21  Emacs                               0x00000001003c3c10 invoke_thread_function + 64
>       22  Emacs                               0x00000001002d32c4 internal_condition_case + 148
>       23  Emacs                               0x00000001003c22dc run_thread + 344
>       24  libsystem_pthread.dylib             0x0000000193c0ac0c _pthread_start + 136
>       25  libsystem_pthread.dylib             0x0000000193c05b80 thread_start + 8
> )
> #+end_example




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78946; Package emacs. (Thu, 03 Jul 2025 12:40:02 GMT) Full text and rfc822 format available.

Message #11 received at 78946 <at> debbugs.gnu.org (full text, mbox):

From: Robert Pluim <rpluim <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: John Wiegley <jwiegley <at> gmail.com>, 78946 <at> debbugs.gnu.org,
 contact <at> karthinks.com
Subject: Re: bug#78946: 30.1; accept-process-output not allowed in threads
 on macOS
Date: Thu, 03 Jul 2025 14:39:04 +0200
>>>>> On Thu, 03 Jul 2025 13:12:32 +0300, Eli Zaretskii <eliz <at> gnu.org> said:

    >> #+begin_example
    >> 2025-07-02 12:10:23.857272-0700 Emacs[34130:54192679] [General]
    >> nextEventMatchingMask should only be called from the Main Thread!

    Eli> This message seems to be relevant, no?  Can some macOS expert explain
    Eli> what it means, and how is that related to ns_select?

On macOS only the main thread is allowed to process events, which is
why ns_select normally does a whole dance with a separate thread which
posts events for the main thread to react to. Itʼs fragile, and should
probably be re-written, but nobody has stepped up to do it.

John, does it help if you stick something like

  if ([[NSThread currentThread] isMainThread])
    {
    }

around the

    [NSApp run];

in `ns_select_1'?

Robert
-- 




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78946; Package emacs. (Thu, 03 Jul 2025 17:25:01 GMT) Full text and rfc822 format available.

Message #14 received at 78946 <at> debbugs.gnu.org (full text, mbox):

From: John Wiegley <jwiegley <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 78946 <at> debbugs.gnu.org, contact <at> karthinks.com
Subject: Re: 30.1; accept-process-output not allowed in threads on macOS
Date: Thu, 03 Jul 2025 10:24:44 -0700
>>>>> Eli Zaretskii <eliz <at> gnu.org> writes:

>> If you now attempt to evaluate this code in a graphical Emacs running on
>> macOS, it will immediately stall out. Running Emacs under lldb shows that it
>> is reporting the following exception continuously:

> Please elaborate on "will immediately stall". Does it mean it will not "run
> forever" as in batch mode? If so, what will it do instead?

By stall I mean it shows a “spinning cursor of death” and will never recover.
Meanwhile, if I am running under the LLDB debugger, I see the exception I had
posted being repeated continuously for as long as Emacs is running.

>> #+begin_example
>> 2025-07-02 12:10:23.857272-0700 Emacs[34130:54192679] [General] nextEventMatchingMask should only be called from the Main Thread!

> This message seems to be relevant, no? Can some macOS expert explain what it
> means, and how is that related to ns_select?

Yes, I think this is entirely relevant. :) I will try Robert’s suggestion next.

John




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78946; Package emacs. (Thu, 03 Jul 2025 23:01:01 GMT) Full text and rfc822 format available.

Message #17 received at 78946 <at> debbugs.gnu.org (full text, mbox):

From: John Wiegley <jwiegley <at> gmail.com>
To: Robert Pluim <rpluim <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 78946 <at> debbugs.gnu.org, contact <at> karthinks.com
Subject: Re: bug#78946: 30.1; accept-process-output not allowed in threads
 on macOS
Date: Thu, 03 Jul 2025 16:00:23 -0700
>>>>> Robert Pluim <rpluim <at> gmail.com> writes:

> John, does it help if you stick something like

>   if ([[NSThread currentThread] isMainThread])
>     {
>     }

> around the

>     [NSApp run];

> in `ns_select_1'?

Hi Robert,

With this change, I’m able to run the tests successfully 10,000 times in my
interactive Emacs on macOS.

John




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78946; Package emacs. (Fri, 04 Jul 2025 06:22:02 GMT) Full text and rfc822 format available.

Message #20 received at 78946 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: John Wiegley <jwiegley <at> gmail.com>
Cc: 78946 <at> debbugs.gnu.org, contact <at> karthinks.com
Subject: Re: 30.1; accept-process-output not allowed in threads on macOS
Date: Fri, 04 Jul 2025 09:21:22 +0300
> From: John Wiegley <jwiegley <at> gmail.com>
> Cc: 78946 <at> debbugs.gnu.org,  contact <at> karthinks.com
> Date: Thu, 03 Jul 2025 10:24:44 -0700
> 
> >>>>> Eli Zaretskii <eliz <at> gnu.org> writes:
> 
> >> If you now attempt to evaluate this code in a graphical Emacs running on
> >> macOS, it will immediately stall out. Running Emacs under lldb shows that it
> >> is reporting the following exception continuously:
> 
> > Please elaborate on "will immediately stall". Does it mean it will not "run
> > forever" as in batch mode? If so, what will it do instead?
> 
> By stall I mean it shows a “spinning cursor of death” and will never recover.

What does it mean in terms of what the Emacs threads do at that time?
I don't think I understand that from the fact that you see that
spinning cursor.  Does Apple document when it is shown?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78946; Package emacs. (Fri, 04 Jul 2025 06:35:02 GMT) Full text and rfc822 format available.

Message #23 received at 78946 <at> debbugs.gnu.org (full text, mbox):

From: John Wiegley <jwiegley <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 78946 <at> debbugs.gnu.org, contact <at> karthinks.com
Subject: Re: 30.1; accept-process-output not allowed in threads on macOS
Date: Thu, 03 Jul 2025 23:34:04 -0700
>>>>> Eli Zaretskii <eliz <at> gnu.org> writes:

>> By stall I mean it shows a “spinning cursor of death” and will never recover.

> What does it mean in terms of what the Emacs threads do at that time? I
> don't think I understand that from the fact that you see that spinning
> cursor. Does Apple document when it is shown?

I don’t know what Emacs is doing at that time, because all I see is a frozen
frame and a colorful spinning cursor, and in lldb I’m seeing an exception
being reported over and over again. I have no further information,
unfortunately.

Applying the fix that Robert suggested resolves the problem, so I think it’s
pretty clear that what’s happening is that a call is being made that can only
happen in the main thread.

John




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78946; Package emacs. (Fri, 04 Jul 2025 11:47:03 GMT) Full text and rfc822 format available.

Message #26 received at 78946 <at> debbugs.gnu.org (full text, mbox):

From: Robert Pluim <rpluim <at> gmail.com>
To: John Wiegley <jwiegley <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 78946 <at> debbugs.gnu.org, contact <at> karthinks.com,
 Alan Third <alan <at> idiocy.org>
Subject: Re: bug#78946: 30.1; accept-process-output not allowed in threads
 on macOS
Date: Fri, 04 Jul 2025 13:46:19 +0200
>>>>> On Thu, 03 Jul 2025 16:00:23 -0700, John Wiegley <jwiegley <at> gmail.com> said:

>>>>> Robert Pluim <rpluim <at> gmail.com> writes:
    >> John, does it help if you stick something like

    >> if ([[NSThread currentThread] isMainThread])
    >> {
    >> }

    >> around the

    >> [NSApp run];

    >> in `ns_select_1'?

    John> Hi Robert,

    John> With this change, I’m able to run the tests successfully 10,000 times in my
    John> interactive Emacs on macOS.

Thatʼs encouraging. Alan, does this change make sense? (Iʼve swapped
out what little I know about the macOS event loop 😀)

Robert
-- 




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78946; Package emacs. (Fri, 04 Jul 2025 20:21:03 GMT) Full text and rfc822 format available.

Message #29 received at 78946 <at> debbugs.gnu.org (full text, mbox):

From: Alan Third <alan <at> idiocy.org>
To: Robert Pluim <rpluim <at> gmail.com>
Cc: John Wiegley <jwiegley <at> gmail.com>, Eli Zaretskii <eliz <at> gnu.org>,
 78946 <at> debbugs.gnu.org, contact <at> karthinks.com
Subject: Re: bug#78946: 30.1; accept-process-output not allowed in threads on
 macOS
Date: Fri, 4 Jul 2025 21:20:07 +0100
On Fri, Jul 04, 2025 at 01:46:19PM +0200, Robert Pluim wrote:
> >>>>> On Thu, 03 Jul 2025 16:00:23 -0700, John Wiegley <jwiegley <at> gmail.com> said:
> 
> >>>>> Robert Pluim <rpluim <at> gmail.com> writes:
>     >> John, does it help if you stick something like
> 
>     >> if ([[NSThread currentThread] isMainThread])
>     >> {
>     >> }
> 
>     >> around the
> 
>     >> [NSApp run];
> 
>     >> in `ns_select_1'?
> 
>     John> Hi Robert,
> 
>     John> With this change, I’m able to run the tests successfully 10,000 times in my
>     John> interactive Emacs on macOS.
> 
> Thatʼs encouraging. Alan, does this change make sense? (Iʼve swapped
> out what little I know about the macOS event loop 😀)

Not really... The whole thing is a mess. The return here:

  if (![NSThread isMainThread]
      || (timeout && timeout->tv_sec == 0 && timeout->tv_nsec == 0))
    thread_select (pselect, nfds, readfds, writefds,
		   exceptfds, timeout, sigmask);

Was removed and I don't think it should have been, but it was to
prevent freezes, apparently... I don't know or recall how this helped,
it looks completely wrong to me. Surely that thread_select call should
return a result?

Sorry, this hasn't been much help.
-- 
Alan Third




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78946; Package emacs. (Sun, 06 Jul 2025 19:13:01 GMT) Full text and rfc822 format available.

Message #32 received at 78946 <at> debbugs.gnu.org (full text, mbox):

From: "J.D. Smith" <jdtsmith <at> gmail.com>
To: John Wiegley <jwiegley <at> gmail.com>
Cc: eliz <at> gnu.org, 78946 <at> debbugs.gnu.org, contact <at> karthinks.com
Subject: Re: bug#78946: 30.1; accept-process-output not allowed in threads
 on macOS
Date: Sun, 06 Jul 2025 15:12:31 -0400
John Wiegley <jwiegley <at> gmail.com> writes:

> If I run the attached code from the terminal using:
>
> #+begin_src sh
> emacs -batch -Q -l accept-process-bug.el
> #+end_src
>
>
> It will correctly run forever, processing output from the “yes” command (you
> can convince yourself of this by adding a debug statement inside the process
> filter, but it will be extremely noisy).
>
> If you now attempt to evaluate this code in a graphical Emacs running on
> macOS, it will immediately stall out. Running Emacs under lldb shows that it
> is reporting the following exception continuously:
>

FYI, the emacs-mac build does not suffer this problem.  It runs until you C-g, reporting:

    Starting thread...
    Beginning yield loop...
    Joining thread...
    Test completed!




This bug report was last modified today.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.