Subject: bug#37530: 26.1; Tack characters translated incorrectly

From: Axel Svensson <[email-masked]>
Date: Thu, 26 Sep 2019 23:31:34 +0200

To reproduce:

Start emacs with the -Q option under X11.

Press a key mapped to keysym 0xbfc.
It is expected that the character "⊢" (Right Tack, U+22a2) is inserted.
Instead, the character "⊣" (Left Tack, U+22a3) is inserted.

Press a key mapped to keysym 0xbdc.
It is expected that the character "⊣" (Left Tack, U+22a3) is inserted.
Instead, the character "⊢" (Right Tack, U+22a2) is inserted.

Press a key mapped to keysym 0xbc2.
It is expected that the character "⊤" (Down Tack, U+22a4) is inserted.
Instead, the character "⊥" (Up Tack, U+22a5) is inserted.

Press a key mapped to keysym 0xbce.
It is expected that the character "⊥" (Up Tack, U+22a5) is inserted.
Instead, the character "⊤" (Down Tack, U+22a4) is inserted.

Press C-h l to run view-lossage.
The last lines display the erroneous characters that were inserted,
rather than the expected characters.
 ⊣ [self-insert-command]
 ⊢ [self-insert-command]
 ⊥ [self-insert-command]
 ⊤ [self-insert-command]
 C-h l [view-lossage]

In order to confirm that the behavior I have stated as expected is the
correct one, look to the XKB keysym definitions:
> #define XKB_KEY_downtack                      0x0bc2  /* U+22A4 DOWN TACK */
> #define XKB_KEY_uptack                        0x0bce  /* U+22A5 UP TACK */
> #define XKB_KEY_lefttack                      0x0bdc  /* U+22A3 LEFT TACK */
> #define XKB_KEY_righttack                     0x0bfc  /* U+22A2 RIGHT TACK */
These can be found at:
https://github.com/xkbcommon/libxkbcommon/blob/master/xkbcommon/xkbcommon-keysyms.h

It is understandable that bugs like these can go unnoticed seeing that
these characters probably aren't part of any widely used keyboard
layout. If this bug can be confirmed, and depending on what caused it,
it might be beneficial to add the complete mapping from X11 keysyms to
Unicode codepoints as automated tests. I'm willing to provide this
mapping, including source references.

In GNU Emacs 26.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.4)
 of 2019-02-03, modified by Debian built on zam904
Windowing system distributor 'The X.Org Foundation', version 11.0.12004000
System Description: Debian GNU/Linux 10 (buster)

Configured using:
 'configure --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/lib
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --enable-libsystemd --with-pop=yes
 --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/26.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/26.1/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-mailutils --build
 x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib
 --libexecdir=/usr/lib --localstatedir=/var/lib
 --infodir=/usr/share/info --mandir=/usr/share/man --enable-libsystemd
 --with-pop=yes
 --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/26.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/26.1/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-mailutils --with-x=yes
 --with-x-toolkit=gtk3 --with-toolkit-scroll-bars 'CFLAGS=-g -O2
 -fdebug-prefix-map=/build/emacs-26.1+1=. -fstack-protector-strong
 -Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time
 -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 THREADS LIBSYSTEMD LCMS2

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

Major mode: Fundamental

Minor modes in effect:
  show-paren-mode: t
  delete-selection-mode: t
  editorconfig-mode: t
  global-magit-file-mode: t
  magit-file-mode: t
  diff-auto-refine-mode: t
  magit-auto-revert-mode: t
  auto-revert-mode: t
  global-git-commit-mode: t
  async-bytecomp-package-mode: t
  shell-dirtrack-mode: t
  cl-old-struct-compat-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  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:
/home/user/.emacs.d/elpa/async-20190503.656/async-bytecomp hides
/usr/share/emacs/site-lisp/elpa/async-1.9.3/async-bytecomp
/home/user/.emacs.d/elpa/async-20190503.656/dired-async hides
/usr/share/emacs/site-lisp/elpa/async-1.9.3/dired-async
/home/user/.emacs.d/elpa/async-20190503.656/async-pkg hides
/usr/share/emacs/site-lisp/elpa/async-1.9.3/async-pkg
/home/user/.emacs.d/elpa/async-20190503.656/async hides
/usr/share/emacs/site-lisp/elpa/async-1.9.3/async
/home/user/.emacs.d/elpa/async-20190503.656/async-autoloads hides
/usr/share/emacs/site-lisp/elpa/async-1.9.3/async-autoloads
/home/user/.emacs.d/elpa/async-20190503.656/smtpmail-async hides
/usr/share/emacs/site-lisp/elpa/async-1.9.3/smtpmail-async
/home/user/.emacs.d/elpa/dash-20190424.1804/dash hides
/usr/share/emacs/site-lisp/elpa/dash-2.14.1/dash
/home/user/.emacs.d/elpa/dash-20190424.1804/dash-autoloads hides
/usr/share/emacs/site-lisp/elpa/dash-2.14.1/dash-autoloads
/home/user/.emacs.d/elpa/dash-20190424.1804/dash-pkg hides
/usr/share/emacs/site-lisp/elpa/dash-2.14.1/dash-pkg
/home/user/.emacs.d/elpa/async-20190503.656/dired-async hides
/usr/share/emacs/site-lisp/elpa-src/async-1.9.3/dired-async
/home/user/.emacs.d/elpa/async-20190503.656/async-pkg hides
/usr/share/emacs/site-lisp/elpa-src/async-1.9.3/async-pkg
/home/user/.emacs.d/elpa/async-20190503.656/async-bytecomp hides
/usr/share/emacs/site-lisp/elpa-src/async-1.9.3/async-bytecomp
/home/user/.emacs.d/elpa/async-20190503.656/async hides
/usr/share/emacs/site-lisp/elpa-src/async-1.9.3/async
/home/user/.emacs.d/elpa/async-20190503.656/async-autoloads hides
/usr/share/emacs/site-lisp/elpa-src/async-1.9.3/async-autoloads
/home/user/.emacs.d/elpa/async-20190503.656/smtpmail-async hides
/usr/share/emacs/site-lisp/elpa-src/async-1.9.3/smtpmail-async
/home/user/.emacs.d/elpa/dash-20190424.1804/dash-autoloads hides
/usr/share/emacs/site-lisp/elpa-src/dash-2.14.1/dash-autoloads
/home/user/.emacs.d/elpa/dash-20190424.1804/dash-pkg hides
/usr/share/emacs/site-lisp/elpa-src/dash-2.14.1/dash-pkg
/home/user/.emacs.d/elpa/dash-20190424.1804/dash hides
/usr/share/emacs/site-lisp/elpa-src/dash-2.14.1/dash
/usr/share/emacs/site-lisp/elpa/ghub-3.0.0/buck hides
/usr/share/emacs/site-lisp/elpa-src/ghub-3.0.0/buck
/usr/share/emacs/site-lisp/elpa/ghub-3.0.0/ghub-graphql hides
/usr/share/emacs/site-lisp/elpa-src/ghub-3.0.0/ghub-graphql
/usr/share/emacs/site-lisp/elpa/ghub-3.0.0/ghub-autoloads hides
/usr/share/emacs/site-lisp/elpa-src/ghub-3.0.0/ghub-autoloads
/usr/share/emacs/site-lisp/elpa/ghub-3.0.0/ghub-pkg hides
/usr/share/emacs/site-lisp/elpa-src/ghub-3.0.0/ghub-pkg
/usr/share/emacs/site-lisp/elpa/ghub-3.0.0/glab hides
/usr/share/emacs/site-lisp/elpa-src/ghub-3.0.0/glab
/usr/share/emacs/site-lisp/elpa/ghub-3.0.0/ghub hides
/usr/share/emacs/site-lisp/elpa-src/ghub-3.0.0/ghub
/usr/share/emacs/site-lisp/elpa/ghub-3.0.0/gogs hides
/usr/share/emacs/site-lisp/elpa-src/ghub-3.0.0/gogs
/usr/share/emacs/site-lisp/elpa/ghub-3.0.0/gtea hides
/usr/share/emacs/site-lisp/elpa-src/ghub-3.0.0/gtea
/usr/share/emacs/site-lisp/elpa/git-commit-2.90.1/git-commit-pkg hides
/usr/share/emacs/site-lisp/elpa-src/git-commit-2.90.1/git-commit-pkg
/usr/share/emacs/site-lisp/elpa/git-commit-2.90.1/git-commit-autoloads
hides /usr/share/emacs/site-lisp/elpa-src/git-commit-2.90.1/git-commit-autoloads
/usr/share/emacs/site-lisp/elpa/git-commit-2.90.1/git-commit hides
/usr/share/emacs/site-lisp/elpa-src/git-commit-2.90.1/git-commit
/usr/share/emacs/site-lisp/elpa/graphql-0.1.1/graphql hides
/usr/share/emacs/site-lisp/elpa-src/graphql-0.1.1/graphql
/usr/share/emacs/site-lisp/elpa/graphql-0.1.1/graphql-autoloads hides
/usr/share/emacs/site-lisp/elpa-src/graphql-0.1.1/graphql-autoloads
/usr/share/emacs/site-lisp/elpa/graphql-0.1.1/graphql-pkg hides
/usr/share/emacs/site-lisp/elpa-src/graphql-0.1.1/graphql-pkg
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-commands
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-commands
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-font-lock
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-font-lock
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-mode-autoloads
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-mode-autoloads
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-unicode-input-method
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-unicode-input-method
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-session
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-session
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-c2hs hides
/usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-c2hs
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-sandbox
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-sandbox
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-repl hides
/usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-repl
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/ghc-core hides
/usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/ghc-core
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/w3m-haddock hides
/usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/w3m-haddock
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-process
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-process
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-mode-pkg
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-mode-pkg
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-ghc-support
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-ghc-support
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/ghci-script-mode
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/ghci-script-mode
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-move-nested
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-move-nested
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-collapse
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-collapse
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-complete-module
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-complete-module
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-presentation-mode
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-presentation-mode
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/highlight-uses-mode
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/highlight-uses-mode
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-indentation
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-indentation
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-align-imports
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-align-imports
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-indent hides
/usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-indent
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell hides
/usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-customize
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-customize
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-interactive-mode
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-interactive-mode
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-decl-scan
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-decl-scan
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-string hides
/usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-string
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-navigate-imports
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-navigate-imports
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-hoogle hides
/usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-hoogle
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-utils hides
/usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-utils
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-compile
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-compile
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-mode hides
/usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-mode
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-completions
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-completions
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-modules
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-modules
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-menu hides
/usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-menu
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-doc hides
/usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-doc
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-compat hides
/usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-compat
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/inf-haskell hides
/usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/inf-haskell
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-debug hides
/usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-debug
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-sort-imports
hides /usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-sort-imports
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-lexeme hides
/usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-lexeme
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-cabal hides
/usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-cabal
/usr/share/emacs/site-lisp/elpa/haskell-mode-16.1/haskell-load hides
/usr/share/emacs/site-lisp/elpa-src/haskell-mode-16.1/haskell-load
/usr/share/emacs/site-lisp/elpa/let-alist-1.0.5/let-alist-pkg hides
/usr/share/emacs/site-lisp/elpa-src/let-alist-1.0.5/let-alist-pkg
/usr/share/emacs/site-lisp/elpa/let-alist-1.0.5/let-alist-autoloads
hides /usr/share/emacs/site-lisp/elpa-src/let-alist-1.0.5/let-alist-autoloads
/usr/share/emacs/site-lisp/elpa/let-alist-1.0.5/let-alist hides
/usr/share/emacs/site-lisp/elpa-src/let-alist-1.0.5/let-alist
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-wip hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-wip
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-remote hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-remote
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-blame hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-blame
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-autoloads hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-autoloads
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-obsolete hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-obsolete
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-ediff hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-ediff
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-core hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-core
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-push hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-push
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-process hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-process
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-log hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-log
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-git hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-git
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-apply hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-apply
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-clone hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-clone
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-collab hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-collab
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-tag hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-tag
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-margin hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-margin
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-bisect hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-bisect
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-reset hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-reset
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-repos hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-repos
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-pkg hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-pkg
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/git-rebase hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/git-rebase
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-bookmark hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-bookmark
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-mode hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-mode
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-worktree hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-worktree
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-imenu hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-imenu
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-notes hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-notes
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-sequence hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-sequence
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-stash hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-stash
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-status hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-status
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-fetch hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-fetch
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-section hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-section
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-utils hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-utils
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-gitignore hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-gitignore
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-merge hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-merge
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-patch hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-patch
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-autorevert hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-autorevert
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-extras hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-extras
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-refs hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-refs
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-commit hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-commit
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-files hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-files
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-branch hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-branch
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-subtree hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-subtree
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-pull hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-pull
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-submodule hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-submodule
/usr/share/emacs/site-lisp/elpa/magit-2.90.1/magit-diff hides
/usr/share/emacs/site-lisp/elpa-src/magit-2.90.1/magit-diff
/usr/share/emacs/site-lisp/elpa/magit-popup-2.12.5/magit-popup hides
/usr/share/emacs/site-lisp/elpa-src/magit-popup-2.12.5/magit-popup
/usr/share/emacs/site-lisp/elpa/magit-popup-2.12.5/magit-popup-autoloads
hides /usr/share/emacs/site-lisp/elpa-src/magit-popup-2.12.5/magit-popup-autoloads
/usr/share/emacs/site-lisp/elpa/magit-popup-2.12.5/magit-popup-pkg
hides /usr/share/emacs/site-lisp/elpa-src/magit-popup-2.12.5/magit-popup-pkg
/usr/share/emacs/site-lisp/elpa/treepy-0.1.1/treepy-autoloads hides
/usr/share/emacs/site-lisp/elpa-src/treepy-0.1.1/treepy-autoloads
/usr/share/emacs/site-lisp/elpa/treepy-0.1.1/treepy hides
/usr/share/emacs/site-lisp/elpa-src/treepy-0.1.1/treepy
/usr/share/emacs/site-lisp/elpa/treepy-0.1.1/treepy-pkg hides
/usr/share/emacs/site-lisp/elpa-src/treepy-0.1.1/treepy-pkg
/usr/share/emacs/site-lisp/elpa/with-editor-2.6.0/with-editor-autoloads
hides /usr/share/emacs/site-lisp/elpa-src/with-editor-2.6.0/with-editor-autoloads
/usr/share/emacs/site-lisp/elpa/with-editor-2.6.0/with-editor-pkg
hides /usr/share/emacs/site-lisp/elpa-src/with-editor-2.6.0/with-editor-pkg
/usr/share/emacs/site-lisp/elpa/with-editor-2.6.0/with-editor hides
/usr/share/emacs/site-lisp/elpa-src/with-editor-2.6.0/with-editor
/usr/share/emacs/site-lisp/latex-cjk-thai/thai-word hides
/usr/share/emacs/26.1/lisp/language/thai-word
/usr/share/emacs/site-lisp/elpa/let-alist-1.0.5/let-alist hides
/usr/share/emacs/26.1/lisp/emacs-lisp/let-alist

Features:
(shadow mail-extr emacsbug sendmail ruler-mode hl-line hexl dcl-mode
tempo term/xterm xterm repeat bat-mode ox-odt ox-latex ox-icalendar
ox-html ox-ascii ox-publish ox thai-util thai-word magit-ediff
ediff-merg ediff-wind ediff-diff ediff-mult ediff-help ediff-init
ediff-util ediff calc-forms calc-alg calc-ext calc-menu calc
calc-loaddefs calc-macs dired-x editorconfig-conf-mode magit-subtree
rng-xsd xsd-regexp rng-cmpct nxml-mode-expansions rng-nxml rng-valid
rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn
nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-enc xmltok timezone
w3m-hist w3m-e21 w3m-ccl ccl w3m-fsf w3m-favicon w3m-image w3m-proc
w3m-util webjump sort iso-transl ffap url-file url-dired markdown-mode
autoconf autoconf-mode magit-gitignore tabify man apropos wdired
parseclj-ast smartparens-markdown smartparens-text smartparens-ruby
autoload mm-archive pp cus-edit cus-start cus-load url-cache tramp-cache
cl-print debug disp-table whitespace tar-mode tex-mode latexenc
python-el-fgallina-expansions python cider-selector cider-scratch
arc-mode archive-mode cider-find pkg-info epl network-stream starttls
eieio-opt git-rebase help-fns radix-tree novice magit-extras
bug-reference mhtml-mode flyspell ispell org-rmail org-mhe org-irc
org-info org-gnus nnir org-docview org-bibtex bibtex org-bbdb org-w3m
conf-mode dired-aux misearch multi-isearch vc-git sh-script executable
editorconfig-core editorconfig-core-handle editorconfig-fnmatch ibuf-ext
ibuffer ibuffer-loaddefs fringemark doc-view jka-compr image-mode
gnus-async nntp gnus-sum gnus-group gnus-undo gnus-start gnus-cloud
nnimap nnmail mail-source utf7 netrc nnoo gnus-spec gnus-int gnus-range
gnus-win org-mobile org-agenda org-install w3m-load paren saveplace ido
table delsel grep editorconfig helm helm-source eieio-compat
helm-multi-match helm-lib sass-mode haml-mode js-mode-expansions js
css-mode-expansions css-mode html-mode-expansions sgml-mode eww mm-url
gnus nnheader wid-edit url-queue shr svg xml dom browse-url
ruby-mode-expansions ruby-mode cider tramp-sh cider-debug
cider-inspector cider-browse-ns cider-mode cider-completion
cider-profile cider-eval cider-repl-history pulse cider-repl
cider-resolve cider-test cider-overlays cider-stacktrace cider-doc
cider-browse-spec org-table org-element avl-tree generator
the-org-mode-expansions org org-macro org-footnote org-pcomplete
org-list org-faces org-entities noutline outline org-version
ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp
ob-comint ob-core ob-eval org-compat org-macs org-loaddefs cal-menu
calendar cal-loaddefs cider-grimoire cider-popup cider-eldoc
cider-client cider-common cider-util color cider-connection
sesman-browser nrepl-client tramp tramp-compat tramp-loaddefs trampver
ucs-normalize parse-time queue nrepl-dict cider-compat spinner parseedn
parseclj-parser parseclj-lex a auto-complete popup gtags php-mode
php-project mode-local find-func speedbar sb-image ezimage dframe etags
xref flymake-proc flymake warnings cc-langs cc-mode-expansions cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs php-face php on-screen ace-jump-mode cl yasnippet elec-pair
sml-mode-expansions sml-mode compile smie expand-region
text-mode-expansions clojure-mode-expansions er-basic-expansions
expand-region-core expand-region-custom multiple-cursors
mc-hide-unmatched-lines-mode mc-separate-operations
rectangular-region-mode mc-mark-pop mc-mark-more mc-cycle-cursors
mc-edit-lines multiple-cursors-core rect rainbow-delimiters smartparens
thingatpt paredit sesman vc vc-dispatcher clojure-mode project lisp-mnt
subr-x align undo-tree diff enclose edmacro kmacro magit-submodule
magit-obsolete magit-blame magit-stash 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-collab ghub-graphql treepy graphql pcase
ghub url-http tls gnutls url-gw nsm url-auth url url-proxy url-privacy
url-expand url-methods url-history url-cookie url-domsuf url-util
mailcap let-alist json map magit-files magit-refs magit-status magit
magit-repos magit-apply magit-wip magit-log which-func imenu magit-diff
smerge-mode diff-mode magit-core magit-autorevert autorevert filenotify
magit-process magit-margin magit-mode git-commit magit-git magit-section
magit-utils magit-popup crm log-edit easy-mmode message rmc puny dired
dired-loaddefs format-spec rfc822 mml mml-sec epa derived epg gnus-util
rmail rmail-loaddefs time-date mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev
mail-utils gmm-utils mailheader pcvs-util add-log with-editor cl-extra
help-mode async-bytecomp advice async shell pcomplete comint ansi-color
ring server dash finder-inf info rx package easymenu epg-config
url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache url-vars seq byte-opt gv bytecomp
byte-compile cconv cl-loaddefs cl-lib erlang-start mule-util 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 menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame 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 minibuffer 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 dbusbind inotify lcms2 dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty
make-network-process emacs)

Memory information:
((conses 16 1432347 1227349)
 (symbols 48 89818 0)
 (miscs 40 8985 8359)
 (strings 32 329044 135987)
 (string-bytes 1 22119338)
 (vectors 16 130522)
 (vector-slots 8 3038737 167354)
 (floats 8 731 3073)
 (intervals 56 75576 3438)
 (buffers 992 292))