Subject: 29.0.50; Eshell: Result of "echo" does not show when script in "emacs --batch --eval"

From: Milan Zimmermann <[email-masked]>
Date: Sat, 19 Nov 2022 23:41:37 -0500

Note:
=====
This report has three sections, A), B), C). In each section we run the same
eshell script using different methods. In A) the behavior is incorrect
(bug). In B) the results are mixed. In C), the results are correct, as
expected.

I provided B) and C) only as a comparison hoping it may be helpful for
analysing the problem. Only A) constitutes this bug report

Prepare to duplicate:
=====================

1. In emacs, open M-x eshell in a directory (using ~/tmp/bug)

2. Create a file in ~/tmp/bug named "script.esh" with the following contents

======== script.esh starts
echo   " ################# FROM ECHO 1 ################# "
(print " ################# FROM PRINT 1 ################# " )
echo   " ################# FROM ECHO 2 ################# "
(print " ################# FROM PRINT 2 ################# " )

for i in 1 2 3 { sleep $i; echo $i }
======== script.esh ends

The only reason for the duplicate of echo / print is to lessen the chances
we are chasing some non-idempotency.

The only reason for the code around sleep is to keep the run at the end so
we can see in case emacs exits.

3. Create a file in ~/tmp/bug named "bug-eshell-in-batch.sh" with the
following contents, and make executable

======== bug-eshell-in-batch.sh starts
#! /usr/bin/sh

# This is intended to execute eshell-written scripts from outside emacs -
an absolute shell use case need.
/usr/bin/emacs --quick --no-init-file --batch --eval="(progn (require
'em-script) (let ((eshell-rc-script \"~/tmp/bug/script.esh\")) (eshell)))"
======== bug-eshell-in-batch.sh ends

*chmod u+x bug-eshell-in-batch.sh

Error duplication and report:
=============================

A) This is the reported bug
=============================

- in eshell (or in shell, completely outside emacs), run

bug $ ./bug-eshell-in-batch.sh

*Actual result: Note the missing ECHO results*
============================================== vvv
Loading em-alias...
Loading em-banner...
Loading em-basic...
Loading em-cmpl...
Loading em-extpipe...
Loading em-glob...
Loading em-hist...
Loading em-ls...
Loading em-prompt...
Loading em-term...
Loading em-unix...

" ################# FROM PRINT 1 ################# "

" ################# FROM PRINT 2 ################# "
============================================== ^^^

*Expected result:* (same as when running source ./script.esh)
============================================== vvv
 ################# FROM ECHO 1 #################
 ################# FROM PRINT 1 #################
 ################# FROM ECHO 2 #################
 ################# FROM PRINT 2 #################
1
2
3
============================================== ^^^

*BUG Reported: *The actual result from emacs --batch is missing the ECHO
strings.*

Also, when running from the batch, notice how the messages from PRINT
appear after the sleep section? Not sure what that is about.

B) Result from IELM - this is here mostly for comparison, as something here
points to the same issue as A)
====================

To duplicate:

- Exit from eshell
- Open IELM, and paste in the eval string from the bug-eshell-in-batch.sh:

*Actual result: Note the missing ECHO results*
============================================== vvv
ELISP> (progn (require 'em-script) (let ((eshell-rc-script
"~/tmp/bug/script.esh")) (eshell)))

" ################# FROM PRINT 1 ################# "

" ################# FROM PRINT 2 ################# "
#<buffer *eshell*>
ELISP>
============================================== ^^^

However, also note that IELM opens a new *eshell* buffer, and results there
are as expected - same as C).  I am completely puzzled why the different
outputs show up. Perhaps this shows something about the running as
"/usr/bin/emacs --quick --no-init-file --batch --eval" shows the wrong
output. It should show same as C)

C) Result when script runs from eshell command line: Correct, expected ==
actual

============================================== vvv
bug $ source script.esh
 ################# FROM ECHO 1 #################
 ################# FROM PRINT 1 #################
 ################# FROM ECHO 2 #################
 ################# FRO0M PRINT 2 #################
1
2
3
============================================== ^^^

This is the actual result. actual == expected.

Also the timing is correct, there is no delay of results as in A) and B)

Thanks,
Milan Zimmermann

In GNU Emacs 29.0.50 (build 1, x86_64-suse-linux-gnu, GTK+ Version
3.24.34, cairo version 1.17.6)
System Description: openSUSE Tumbleweed

Configured using:
 'configure --host=x86_64-suse-linux-gnu --build=x86_64-suse-linux-gnu
 --program-prefix= --disable-dependency-tracking --prefix=/usr
 --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin
 --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include
 --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var
 --sharedstatedir=/var/lib --mandir=/usr/share/man
 --infodir=/usr/share/info --disable-build-details --without-pop
 --with-mailutils --without-hesiod --with-gameuser=:games
 --with-kerberos --with-kerberos5 --with-file-notification=inotify
 --with-modules --enable-autodepend --prefix=/usr
 --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share
 --localstatedir=/var --sharedstatedir=/var/lib
 --libexecdir=/usr/libexec --with-file-notification=yes
 --enable-locallisppath=/usr/share/emacs/29.0.50/site-lisp:/usr/share/emacs/site-lisp
 --without-x --with-json --without-xim --with-sound --with-xpm
 --with-jpeg --with-tiff --with-gif --with-png --with-rsvg --with-dbus
 --without-xft --without-gpm --with-pgtk --without-native-compilation
 --with-toolkit-scroll-bars --with-libotf --with-m17n-flt --with-cairo
 --without-xwidgets --with-dumping=pdumper 'CFLAGS=-O2 -Wall
 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong
 -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection
 -Werror=return-type -flto=auto -D_GNU_SOURCE
 -DGDK_DISABLE_DEPRECATION_WARNINGS -DGLIB_DISABLE_DEPRECATION_WARNINGS'
 LDFLAGS=-flto=auto'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NOTIFY INOTIFY
PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS WEBP XIM GTK3 ZLIB

Important settings:
  value of $LANG: en_CA.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Shell-script

Minor modes in effect:
  sh-electric-here-document-mode: t
  indent-guide-mode: t
  desktop-save-mode: t
  global-tab-line-mode: t
  tab-line-mode: t
  projectile-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  savehist-mode: t
  buffer-face-mode: t
  highlight-thing-mode: t
  imagex-auto-adjust-mode: t
  imagex-global-sticky-mode: t
  imagex-sticky-mode: t
  recentf-mode: t
  shell-dirtrack-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  winner-mode: t
  global-hi-lock-mode: t
  hi-lock-mode: t
  global-flycheck-mode: t
  flycheck-mode: t
  delete-selection-mode: t
  auto-image-file-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  tab-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-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
  hs-minor-mode: t

Load-path shadows:
/home/mzimmermann/.emacs.d/elpa/transient-20220413.2332/transient hides
/usr/share/emacs/29.0.50/lisp/transient
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ox hides
/usr/share/emacs/29.0.50/lisp/org/ox
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ox-texinfo hides
/usr/share/emacs/29.0.50/lisp/org/ox-texinfo
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ox-publish hides
/usr/share/emacs/29.0.50/lisp/org/ox-publish
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ox-org hides
/usr/share/emacs/29.0.50/lisp/org/ox-org
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ox-odt hides
/usr/share/emacs/29.0.50/lisp/org/ox-odt
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ox-md hides
/usr/share/emacs/29.0.50/lisp/org/ox-md
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ox-man hides
/usr/share/emacs/29.0.50/lisp/org/ox-man
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ox-latex hides
/usr/share/emacs/29.0.50/lisp/org/ox-latex
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ox-koma-letter hides
/usr/share/emacs/29.0.50/lisp/org/ox-koma-letter
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ox-icalendar hides
/usr/share/emacs/29.0.50/lisp/org/ox-icalendar
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ox-html hides
/usr/share/emacs/29.0.50/lisp/org/ox-html
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ox-beamer hides
/usr/share/emacs/29.0.50/lisp/org/ox-beamer
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ox-ascii hides
/usr/share/emacs/29.0.50/lisp/org/ox-ascii
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org hides
/usr/share/emacs/29.0.50/lisp/org/org
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-version hides
/usr/share/emacs/29.0.50/lisp/org/org-version
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-timer hides
/usr/share/emacs/29.0.50/lisp/org/org-timer
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-tempo hides
/usr/share/emacs/29.0.50/lisp/org/org-tempo
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-table hides
/usr/share/emacs/29.0.50/lisp/org/org-table
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-src hides
/usr/share/emacs/29.0.50/lisp/org/org-src
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-refile hides
/usr/share/emacs/29.0.50/lisp/org/org-refile
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-protocol hides
/usr/share/emacs/29.0.50/lisp/org/org-protocol
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-plot hides
/usr/share/emacs/29.0.50/lisp/org/org-plot
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-pcomplete hides
/usr/share/emacs/29.0.50/lisp/org/org-pcomplete
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-num hides
/usr/share/emacs/29.0.50/lisp/org/org-num
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-mouse hides
/usr/share/emacs/29.0.50/lisp/org/org-mouse
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-mobile hides
/usr/share/emacs/29.0.50/lisp/org/org-mobile
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-macs hides
/usr/share/emacs/29.0.50/lisp/org/org-macs
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-macro hides
/usr/share/emacs/29.0.50/lisp/org/org-macro
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-loaddefs hides
/usr/share/emacs/29.0.50/lisp/org/org-loaddefs
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-list hides
/usr/share/emacs/29.0.50/lisp/org/org-list
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-lint hides
/usr/share/emacs/29.0.50/lisp/org/org-lint
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-keys hides
/usr/share/emacs/29.0.50/lisp/org/org-keys
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-inlinetask hides
/usr/share/emacs/29.0.50/lisp/org/org-inlinetask
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-indent hides
/usr/share/emacs/29.0.50/lisp/org/org-indent
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-id hides
/usr/share/emacs/29.0.50/lisp/org/org-id
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-habit hides
/usr/share/emacs/29.0.50/lisp/org/org-habit
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-goto hides
/usr/share/emacs/29.0.50/lisp/org/org-goto
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-footnote hides
/usr/share/emacs/29.0.50/lisp/org/org-footnote
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-feed hides
/usr/share/emacs/29.0.50/lisp/org/org-feed
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-faces hides
/usr/share/emacs/29.0.50/lisp/org/org-faces
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-entities hides
/usr/share/emacs/29.0.50/lisp/org/org-entities
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-element hides
/usr/share/emacs/29.0.50/lisp/org/org-element
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-duration hides
/usr/share/emacs/29.0.50/lisp/org/org-duration
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-datetree hides
/usr/share/emacs/29.0.50/lisp/org/org-datetree
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-ctags hides
/usr/share/emacs/29.0.50/lisp/org/org-ctags
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-crypt hides
/usr/share/emacs/29.0.50/lisp/org/org-crypt
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-compat hides
/usr/share/emacs/29.0.50/lisp/org/org-compat
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-colview hides
/usr/share/emacs/29.0.50/lisp/org/org-colview
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-clock hides
/usr/share/emacs/29.0.50/lisp/org/org-clock
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-capture hides
/usr/share/emacs/29.0.50/lisp/org/org-capture
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-attach hides
/usr/share/emacs/29.0.50/lisp/org/org-attach
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-attach-git hides
/usr/share/emacs/29.0.50/lisp/org/org-attach-git
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-archive hides
/usr/share/emacs/29.0.50/lisp/org/org-archive
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/org-agenda hides
/usr/share/emacs/29.0.50/lisp/org/org-agenda
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ol hides
/usr/share/emacs/29.0.50/lisp/org/ol
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ol-w3m hides
/usr/share/emacs/29.0.50/lisp/org/ol-w3m
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ol-rmail hides
/usr/share/emacs/29.0.50/lisp/org/ol-rmail
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ol-mhe hides
/usr/share/emacs/29.0.50/lisp/org/ol-mhe
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ol-man hides
/usr/share/emacs/29.0.50/lisp/org/ol-man
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ol-irc hides
/usr/share/emacs/29.0.50/lisp/org/ol-irc
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ol-info hides
/usr/share/emacs/29.0.50/lisp/org/ol-info
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ol-gnus hides
/usr/share/emacs/29.0.50/lisp/org/ol-gnus
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ol-eww hides
/usr/share/emacs/29.0.50/lisp/org/ol-eww
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ol-eshell hides
/usr/share/emacs/29.0.50/lisp/org/ol-eshell
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ol-doi hides
/usr/share/emacs/29.0.50/lisp/org/ol-doi
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ol-docview hides
/usr/share/emacs/29.0.50/lisp/org/ol-docview
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ol-bibtex hides
/usr/share/emacs/29.0.50/lisp/org/ol-bibtex
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ol-bbdb hides
/usr/share/emacs/29.0.50/lisp/org/ol-bbdb
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/oc hides
/usr/share/emacs/29.0.50/lisp/org/oc
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/oc-natbib hides
/usr/share/emacs/29.0.50/lisp/org/oc-natbib
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/oc-csl hides
/usr/share/emacs/29.0.50/lisp/org/oc-csl
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/oc-biblatex hides
/usr/share/emacs/29.0.50/lisp/org/oc-biblatex
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/oc-basic hides
/usr/share/emacs/29.0.50/lisp/org/oc-basic
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob hides
/usr/share/emacs/29.0.50/lisp/org/ob
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-tangle hides
/usr/share/emacs/29.0.50/lisp/org/ob-tangle
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-table hides
/usr/share/emacs/29.0.50/lisp/org/ob-table
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-sqlite hides
/usr/share/emacs/29.0.50/lisp/org/ob-sqlite
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-sql hides
/usr/share/emacs/29.0.50/lisp/org/ob-sql
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-shell hides
/usr/share/emacs/29.0.50/lisp/org/ob-shell
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-sed hides
/usr/share/emacs/29.0.50/lisp/org/ob-sed
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-screen hides
/usr/share/emacs/29.0.50/lisp/org/ob-screen
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-scheme hides
/usr/share/emacs/29.0.50/lisp/org/ob-scheme
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-sass hides
/usr/share/emacs/29.0.50/lisp/org/ob-sass
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-ruby hides
/usr/share/emacs/29.0.50/lisp/org/ob-ruby
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-ref hides
/usr/share/emacs/29.0.50/lisp/org/ob-ref
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-python hides
/usr/share/emacs/29.0.50/lisp/org/ob-python
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-processing hides
/usr/share/emacs/29.0.50/lisp/org/ob-processing
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-plantuml hides
/usr/share/emacs/29.0.50/lisp/org/ob-plantuml
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-perl hides
/usr/share/emacs/29.0.50/lisp/org/ob-perl
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-org hides
/usr/share/emacs/29.0.50/lisp/org/ob-org
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-octave hides
/usr/share/emacs/29.0.50/lisp/org/ob-octave
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-ocaml hides
/usr/share/emacs/29.0.50/lisp/org/ob-ocaml
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-maxima hides
/usr/share/emacs/29.0.50/lisp/org/ob-maxima
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-matlab hides
/usr/share/emacs/29.0.50/lisp/org/ob-matlab
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-makefile hides
/usr/share/emacs/29.0.50/lisp/org/ob-makefile
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-lua hides
/usr/share/emacs/29.0.50/lisp/org/ob-lua
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-lob hides
/usr/share/emacs/29.0.50/lisp/org/ob-lob
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-lisp hides
/usr/share/emacs/29.0.50/lisp/org/ob-lisp
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-lilypond hides
/usr/share/emacs/29.0.50/lisp/org/ob-lilypond
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-latex hides
/usr/share/emacs/29.0.50/lisp/org/ob-latex
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-julia hides
/usr/share/emacs/29.0.50/lisp/org/ob-julia
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-js hides
/usr/share/emacs/29.0.50/lisp/org/ob-js
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-java hides
/usr/share/emacs/29.0.50/lisp/org/ob-java
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-haskell hides
/usr/share/emacs/29.0.50/lisp/org/ob-haskell
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-groovy hides
/usr/share/emacs/29.0.50/lisp/org/ob-groovy
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-gnuplot hides
/usr/share/emacs/29.0.50/lisp/org/ob-gnuplot
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-fortran hides
/usr/share/emacs/29.0.50/lisp/org/ob-fortran
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-forth hides
/usr/share/emacs/29.0.50/lisp/org/ob-forth
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-exp hides
/usr/share/emacs/29.0.50/lisp/org/ob-exp
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-eval hides
/usr/share/emacs/29.0.50/lisp/org/ob-eval
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-eshell hides
/usr/share/emacs/29.0.50/lisp/org/ob-eshell
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-emacs-lisp hides
/usr/share/emacs/29.0.50/lisp/org/ob-emacs-lisp
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-dot hides
/usr/share/emacs/29.0.50/lisp/org/ob-dot
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-ditaa hides
/usr/share/emacs/29.0.50/lisp/org/ob-ditaa
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-css hides
/usr/share/emacs/29.0.50/lisp/org/ob-css
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-core hides
/usr/share/emacs/29.0.50/lisp/org/ob-core
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-comint hides
/usr/share/emacs/29.0.50/lisp/org/ob-comint
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-clojure hides
/usr/share/emacs/29.0.50/lisp/org/ob-clojure
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-calc hides
/usr/share/emacs/29.0.50/lisp/org/ob-calc
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-awk hides
/usr/share/emacs/29.0.50/lisp/org/ob-awk
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-R hides
/usr/share/emacs/29.0.50/lisp/org/ob-R
/home/mzimmermann/.emacs.d/elpa/org-9.5.2/ob-C hides
/usr/share/emacs/29.0.50/lisp/org/ob-C
/home/mzimmermann/.emacs.d/elpa/cl-lib-0.7/cl-lib hides
/usr/share/emacs/29.0.50/lisp/emacs-lisp/cl-lib

Features:
(shadow sort mail-extr emacsbug cl-print ielm em-unix em-term term
disp-table ehelp em-prompt em-ls em-hist em-pred em-glob em-extpipe
em-cmpl em-dirs esh-var em-basic em-banner em-alias sh-script smie
executable tabify misearch multi-isearch help-fns radix-tree cus-start
indent-guide hideshow mule-util dired-aux init desktop frameset tab-line
f dired-sidebar dired-subtree dired-hacks-utils neotree
dir-treeview-pleasant-theme dir-treeview treeview org-tempo tempo
projectile lisp-mnt grep ibuf-ext ibuffer ibuffer-loaddefs ob-groovy
ob-python python project ob-dot undo-tree savehist em-script em-smart
esh-mode eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg
esh-module esh-groups esh-util ox-md string-inflection toc-org
face-remap highlight-thing org-indent ol-eww eww xdg url-queue mm-url
ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015
mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku
url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus xml
gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int
gnus-range message sendmail yank-media puny rfc822 mml mml-sec epa
derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader
gnus-win gnus nnheader gnus-util mail-utils range mm-util mail-prsvr
ol-docview doc-view filenotify jka-compr image-mode exif dired
dired-loaddefs ol-bibtex ol-bbdb ol-w3m ol-doi org-link-doi image+
ess-autoloads unicode-fonts recentf tree-widget tramp tramp-loaddefs
trampver tramp-integration cus-edit pp wid-edit files-x tramp-compat
parse-time ls-lisp compile text-property-search sql view thingatpt diff
ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init
ediff-util imenu my-functions finder-inf cl-extra org2jekyll ido s
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 org-refile ox-html table ox-ascii ox-publish ox org-element
avl-tree generator org org-macro org-footnote org-pcomplete org-list
org-faces org-entities noutline outline icons org-version ob-perl
ob-scheme ob-latex ob-org ob-calc calc-store calc-trail calc-ext calc
calc-loaddefs rect calc-macs ob-js ob-gnuplot ob-ditaa ob-plantuml
ob-octave ob-maxima ob-java ob-ruby ob-sql ob-shell shell pcomplete
ob-awk ob-lisp ob-emacs-lisp ob-dart ob ob-tangle org-src ob-ref ob-lob
ob-table ob-exp ob-comint comint ansi-osc ob-core ob-eval org-table
oc-basic bibtex iso8601 time-date ol org-keys oc org-compat advice
org-macs org-loaddefs format-spec cal-menu calendar cal-loaddefs
tango-dark-theme yasnippet winner ring hi-lock flycheck ansi-color
find-func help-mode rx dash delsel image-file image-converter cus-load
ispell slime-autoloads cl info package browse-url url url-proxy
url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x
map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc
iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win
term/common-win pgtk-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads dbusbind inotify dynamic-setting system-font-setting
font-render-setting cairo gtk pgtk lcms2 multi-tty make-network-process
emacs)

Memory information:
((conses 16 630979 117924)
 (symbols 48 45319 1)
 (strings 32 206258 43168)
 (string-bytes 1 6059343)
 (vectors 16 79769)
 (vector-slots 8 1300470 144242)
 (floats 8 391 359)
 (intervals 56 11019 1819)
 (buffers 984 30))