Subject: bug#55636: 27.2; etags performance fix when working with very big TAGS files

From: Jurgen De Backer <[email-masked]>
Date: Wed, 25 May 2022 16:04:04 +0000

Hi,

We implemented a fix for making etags searching faster in our custom
emacs build.
In our project, sometimes a search could take more than 10 seconds.
The fix is to expand filenames only if they are relative:

(defun expand-if-relative (a-file)
(if (file-name-absolute-p a-file)
    a-file
  (expand-file-name a-file)
  )
)

and then use this function in the mapcar statement inside (defun
tags-table-including ...), replacing expand-file-name:
  ....
  (if (member this-file (mapcar #'expand-if-relative
                                          (tags-table-files)))
                ;; Found it.
                (setq found tables)
                )
  ....

Looking at expand-file-name doc, it does 2 things:
  * make file name absolute
  * and canonicalize it (removes the xxxx/.. dir components,
       the . dir components, the double slashes).

We are wondering if the standard C function in emacs could do
a fast "do nothing" when the file name is absolute and has
nothing to cannonicalize.
It could be useful to add this check in the emacs implementation of
expand-file-name.

Many thanks,
Jurgen De Backer

In GNU Emacs 27.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30)
 of 2022-05-23 built on dhdevd14
Windowing system distributor 'Moba/X', version 11.0.12004000
System Description: Red Hat Enterprise Linux Server 7.9 (Maipo)

Recent messages:
Adding to TAGS-list: /cm/ot/TACT/TACT_CONFIG!27.0.0.33/build_G!27.IP.L7/TAGS.extra, to: (/cm/ot/TACT/TACT_CONFIG!27.0.0.33/build_G!27.IP.L7/TAGS /cm/ot/TACT/TACT_CONFIG!27.0.0.33/build_G!27.IP.L7/TAGS.extra)
Adding to TAGS-list: /cm/ot/CMA/MASTER.1/build_G!27.IP.L7/TAGS, to: (/cm/ot/CMA/MASTER.1/build_G!27.IP.L7/TAGS)
Adding to TAGS-list: /cm/ot/CMA/MASTER.1/build_G!27.IP.L7/TAGS.extra, to: (/cm/ot/CMA/MASTER.1/build_G!27.IP.L7/TAGS /cm/ot/CMA/MASTER.1/build_G!27.IP.L7/TAGS.extra)
Loading gpc...done
isearch-forwardisearch-backwardisearch-forward-regexpisearch-backward-regexpquery-replacequery-replace-regexpreplace-regexpreplace-string
Setup ispell to use hunspell
Loading version_emacs_startup...done
Loading ada_mode_6...done
Loading /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/emacs_startup.el (source)...done
For information about GNU Emacs and the GNU system, type C-h C-a.

Configured using:
 'configure
 --prefix=/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated
 --exec-prefix=/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/libexec/emacs-27.2
 --mandir=/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/man
 --with-x-toolkit=gtk3 --with-modules --with-xft
 'CFLAGS=-I/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/include
 ' 'LDFLAGS=-Wl,-rpath,/cfmu/local/data/libimagemagic
 -L/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/lib''

Configured features:
XPM JPEG TIFF GIF PNG SOUND GPM DBUS GSETTINGS GLIB NOTIFY INOTIFY ACL
LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ XFT ZLIB TOOLKIT_SCROLL_BARS
GTK3 X11 XDBE XIM MODULES THREADS PDUMPER

Important settings:
  value of $EMACSDATA: /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/etc
  value of $EMACSDOC: /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/etc
  value of $EMACSLOADPATH: /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp:/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/site-lisp:/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp
  value of $EMACSPATH: /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/libexec/emacs-27.2/libexec/emacs/27.2/x86_64-pc-linux-gnu:
  value of $LANG: C
  locale-coding-system: nil

Major mode: Lisp Interaction

Minor modes in effect:
  which-function-mode: t
  show-paren-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/sh-script hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/progmodes/sh-script
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-groovy hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-groovy
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-lint hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-lint
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ox-texinfo hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ox-texinfo
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ox-beamer hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ox-beamer
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-sqlite hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-sqlite
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-makefile hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-makefile
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-latex hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-latex
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-tangle hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-tangle
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-entities hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-entities
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-clojure hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-clojure
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-table hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-table
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-capture hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-capture
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-indent hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-indent
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-feed hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-feed
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-plot hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-plot
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-list hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-list
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-keys hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-keys
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-emacs-lisp hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-emacs-lisp
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ox-latex hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ox-latex
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-duration hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-duration
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-faces hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-faces
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-table hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-table
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-agenda hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-agenda
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-macro hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-macro
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-protocol hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-protocol
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-plantuml hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-plantuml
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-screen hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-screen
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-compat hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-compat
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-processing hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-processing
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-octave hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-octave
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-crypt hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-crypt
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-timer hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-timer
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-ctags hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-ctags
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-maxima hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-maxima
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-lilypond hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-lilypond
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-element hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-element
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-matlab hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-matlab
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-gnuplot hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-gnuplot
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-forth hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-forth
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-archive hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-archive
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-datetree hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-datetree
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-mobile hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-mobile
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-ledger hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-ledger
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ol-eshell hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ol-eshell
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-asymptote hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-asymptote
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-macs hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-macs
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-attach-git hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-attach-git
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-lisp hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-lisp
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-lob hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-lob
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-R hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-R
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-vala hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-vala
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ox-odt hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ox-odt
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-footnote hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-footnote
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ox-icalendar hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ox-icalendar
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-lua hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-lua
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ol hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ol
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-habit hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-habit
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-css hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-css
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-core hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-core
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-exp hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-exp
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-comint hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-comint
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-ocaml hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-ocaml
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-id hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-id
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-abc hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-abc
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ox-org hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ox-org
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ol-info hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ol-info
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-sass hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-sass
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-shell hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-shell
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-scheme hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-scheme
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-haskell hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-haskell
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ol-bibtex hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ol-bibtex
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ol-rmail hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ol-rmail
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-java hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-java
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ox-md hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ox-md
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-sql hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-sql
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-src hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-src
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-mscgen hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-mscgen
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-C hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-C
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-eval hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-eval
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-eshell hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-eshell
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ol-eww hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ol-eww
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ol-gnus hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ol-gnus
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-awk hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-awk
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-goto hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-goto
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ol-mhe hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ol-mhe
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-inlinetask hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-inlinetask
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-ruby hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-ruby
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-org hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-org
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ox-publish hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ox-publish
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ol-bbdb hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ol-bbdb
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-num hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-num
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-calc hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-calc
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ol-irc hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ol-irc
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-shen hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-shen
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-colview hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-colview
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-attach hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-attach
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-ditaa hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-ditaa
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-dot hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-dot
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-hledger hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-hledger
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-J hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-J
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ol-w3m hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ol-w3m
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-python hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-python
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-io hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-io
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-ref hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-ref
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-clock hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-clock
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-fortran hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-fortran
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-mouse hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-mouse
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ol-docview hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ol-docview
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-install hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-install
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-loaddefs hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-loaddefs
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-picolisp hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-picolisp
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ox-ascii hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ox-ascii
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-version hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-version
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ox-man hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ox-man
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-sed hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-sed
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-js hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-js
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ox hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ox
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-pcomplete hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-pcomplete
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ox-html hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ox-html
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-stan hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-stan
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org-tempo hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org-tempo
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/org hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/org
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-coq hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-coq
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-perl hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-perl
/cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/26.3/site-lisp/org-9.3.1/ob-ebnf hides /cm/ot/TOOL/GNU!27.0.0.12/build_G!27.IP.L7/generated/share/emacs/27.2/lisp/org/ob-ebnf

Features:
(shadow sort mail-extr emacsbug message rmc puny rfc822 mml mml-sec epa
derived epg epg-config gnus-util rmail rmail-loaddefs
text-property-search mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils gpc dired dired-loaddefs mule-util etags
fileloop generator which-func ido paren ada-imenu imenu ada-skel
ada-skeletons skeleton ada-compiler ada-gnat-compile ada-gnat-xref
gnat-core ada-wisi ada-process wisi-process-parse
ada-indent-user-options ada-fix-error ada-mode wisi xref project
wisi-fringe wisi-parse-common semantic/lex semantic/fw mode-local
find-file compile align highlight-beyond-fill-column which-key vlf-setup
vlf vlf-base vlf-tune org ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-macro org-footnote org-src ob-comint org-pcomplete pcomplete
org-list org-faces org-entities time-date noutline outline easy-mmode
org-version ob-emacs-lisp ob-core ob-eval org-table ol org-keys
org-compat advice org-macs org-loaddefs format-spec find-func cal-menu
calendar cal-loaddefs memory-usage ffap thingatpt comint ansi-color ring
jka-compr finder-inf package easymenu browse-url url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache json subr-x map url-vars seq byte-opt gv bytecomp
byte-compile cconv cl-loaddefs cl-lib tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads dbusbind inotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)

Memory information:
((conses 16 140306 18084)
 (symbols 48 16485 1)
 (strings 32 51083 2051)
 (string-bytes 1 1801019)
 (vectors 16 23936)
 (vector-slots 8 278494 10296)
 (floats 8 109 60)
 (intervals 56 906 91)
 (buffers 1000 11)
 (heap 1024 18287 1390))
____

This message and any files transmitted with it are legally privileged and intended for the sole use of the individual(s) or entity to whom they are addressed. If you are not the intended recipient, please notify the sender by reply and delete the message and any attachments from your system. Any unauthorised use or disclosure of the content of this message is strictly prohibited and may be unlawful.

Nothing in this e-mail message amounts to a contractual or legal commitment on the part of EUROCONTROL, unless it is confirmed by appropriately signed hard copy.

Any views expressed in this message are those of the sender.