unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion
@ 2019-07-19 21:21 Jean Louis
  2019-07-20  7:16 ` Eli Zaretskii
                   ` (2 more replies)
  0 siblings, 3 replies; 20+ messages in thread
From: Jean Louis @ 2019-07-19 21:21 UTC (permalink / raw)
  To: 36733


I have observed that if I write in Eshell:

$ cd Documents

That it enters the directory quickly.

But if I write:

$ cd Docum TAB

it expands into

$ cd Documents/

then when I press ENTER it is taking sometimes 1 second or few seconds
just to enter the directory.

This also happens if inside of directory there is just one file. 


In GNU Emacs 27.0.50 (build 11, x86_64-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2019-07-18 built on protected.rcdrun.com
Repository revision: a4e57274cc3ad920d6113700ce6496e85eb66ebb
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description: Hyperbola GNU/Linux-libre

Recent messages:
Contacting host: github.com:443
Mark set
Making completion list...
Stopping animation; animation possibly too big [6 times]
(There was no command output)
When done with a buffer, type C-x #
Saving file /home/data1/protected/tmp/mutt-protected-1001-4117-7445622631218989887...
Wrote /home/data1/protected/tmp/mutt-protected-1001-4117-7445622631218989887

Configured using:
 'configure --prefix=/package/text/emacs-2019-07-18 --with-modules
 --without-pop --with-mailutils --with-x-toolkit=lucid --without-gpm'

Configured features:
XAW3D XPM JPEG TIFF GIF PNG RSVG SOUND DBUS GSETTINGS GLIB NOTIFY
INOTIFY ACL GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS LUCID X11 XDBE XIM MODULES THREADS JSON PDUMPER
LCMS2 GMP

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

Major mode: Eshell

Minor modes in effect:
  TeX-PDF-mode: t
  highlight-changes-visible-mode: t
  say-minor-mode: t
  strokes-mode: t
  dynamic-completion-mode: t
  jabber-activity-mode: t
  show-paren-mode: t
  guide-key-mode: t
  persistent-scratch-autosave-mode: t
  shell-dirtrack-mode: t
  auto-compile-on-load-mode: t
  auto-compile-on-save-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
/home/data1/protected/.emacs.d/elpa/lispy-20190703.1529/elpa hides /home/data1/protected/.emacs.d/elpa/ivy-20190709.740/elpa
/home/data1/protected/Programming/emacs-lisp/whois hides /home/data1/protected/.emacs.d/elpa/whois-20190529.1554/whois
/home/data1/protected/.emacs.d/elpa/flim-20190526.1034/md4 hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/md4
/home/data1/protected/.emacs.d/elpa/flim-20190526.1034/hex-util hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/hex-util
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-css hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-css
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-dot hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-dot
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-sed hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-sed
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-stan hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-stan
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-sqlite hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-sqlite
/home/data1/protected/.emacs.d/elpa/org-20190708/org-src hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-src
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-lob hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-lob
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-calc hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-calc
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-mscgen hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-mscgen
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-core hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-core
/home/data1/protected/.emacs.d/elpa/org-20190708/ox-beamer hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ox-beamer
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-sass hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-sass
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-plantuml hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-plantuml
/home/data1/protected/.emacs.d/elpa/org-20190708/org-bibtex hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-bibtex
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-coq hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-coq
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-js hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-js
/home/data1/protected/.emacs.d/elpa/org-20190708/org-plot hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-plot
/home/data1/protected/.emacs.d/elpa/org-20190708/org-macro hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-macro
/home/data1/protected/.emacs.d/elpa/org-20190708/org-inlinetask hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-inlinetask
/home/data1/protected/.emacs.d/elpa/org-20190708/org-timer hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-timer
/home/data1/protected/.emacs.d/elpa/org-20190708/ox hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ox
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-forth hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-forth
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-groovy hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-groovy
/home/data1/protected/.emacs.d/elpa/org-20190708/org-bbdb hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-bbdb
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-perl hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-perl
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-gnuplot hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-gnuplot
/home/data1/protected/.emacs.d/elpa/org-20190708/ox-latex hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ox-latex
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-sql hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-sql
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-screen hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-screen
/home/data1/protected/.emacs.d/elpa/org-20190708/org-mhe hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-mhe
/home/data1/protected/.emacs.d/elpa/org-20190708/org-archive hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-archive
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-haskell hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-haskell
/home/data1/protected/.emacs.d/elpa/org-20190708/org-footnote hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-footnote
/home/data1/protected/.emacs.d/elpa/org-20190708/org-eww hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-eww
/home/data1/protected/.emacs.d/elpa/org-20190708/ox-man hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ox-man
/home/data1/protected/.emacs.d/elpa/org-20190708/org-protocol hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-protocol
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-ref hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-ref
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-processing hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-processing
/home/data1/protected/.emacs.d/elpa/org-20190708/org-habit hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-habit
/home/data1/protected/.emacs.d/elpa/org-20190708/org-indent hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-indent
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-maxima hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-maxima
/home/data1/protected/.emacs.d/elpa/org-20190708/org-list hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-list
/home/data1/protected/.emacs.d/elpa/org-20190708/org-entities hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-entities
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-fortran hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-fortran
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-comint hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-comint
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-ruby hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-ruby
/home/data1/protected/.emacs.d/elpa/org-20190708/org hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org
/home/data1/protected/.emacs.d/elpa/org-20190708/org-irc hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-irc
/home/data1/protected/.emacs.d/elpa/org-20190708/org-macs hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-macs
/home/data1/protected/.emacs.d/elpa/org-20190708/org-agenda hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-agenda
/home/data1/protected/.emacs.d/elpa/org-20190708/ox-org hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ox-org
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-C hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-C
/home/data1/protected/.emacs.d/elpa/org-20190708/org-install hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-install
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-makefile hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-makefile
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-java hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-java
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-org hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-org
/home/data1/protected/.emacs.d/elpa/org-20190708/org-table hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-table
/home/data1/protected/.emacs.d/elpa/org-20190708/ob hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob
/home/data1/protected/.emacs.d/elpa/org-20190708/org-info hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-info
/home/data1/protected/.emacs.d/elpa/org-20190708/org-id hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-id
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-eval hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-eval
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-clojure hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-clojure
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-ledger hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-ledger
/home/data1/protected/.emacs.d/elpa/org-20190708/org-w3m hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-w3m
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-shen hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-shen
/home/data1/protected/.emacs.d/elpa/org-20190708/org-docview hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-docview
/home/data1/protected/.emacs.d/elpa/org-20190708/ox-ascii hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ox-ascii
/home/data1/protected/.emacs.d/elpa/org-20190708/ox-publish hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ox-publish
/home/data1/protected/.emacs.d/elpa/org-20190708/ox-texinfo hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ox-texinfo
/home/data1/protected/.emacs.d/elpa/org-20190708/org-duration hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-duration
/home/data1/protected/.emacs.d/elpa/org-20190708/org-colview hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-colview
/home/data1/protected/.emacs.d/elpa/org-20190708/org-datetree hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-datetree
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-vala hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-vala
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-table hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-table
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-tangle hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-tangle
/home/data1/protected/.emacs.d/elpa/org-20190708/org-pcomplete hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-pcomplete
/home/data1/protected/.emacs.d/elpa/org-20190708/org-version hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-version
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-R hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-R
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-picolisp hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-picolisp
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-lua hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-lua
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-keys hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-keys
/home/data1/protected/.emacs.d/elpa/org-20190708/ox-odt hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ox-odt
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-awk hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-awk
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-exp hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-exp
/home/data1/protected/.emacs.d/elpa/org-20190708/ox-md hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ox-md
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-abc hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-abc
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-ocaml hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-ocaml
/home/data1/protected/.emacs.d/elpa/org-20190708/org-crypt hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-crypt
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-python hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-python
/home/data1/protected/.emacs.d/elpa/org-20190708/ox-html hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ox-html
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-matlab hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-matlab
/home/data1/protected/.emacs.d/elpa/org-20190708/org-attach hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-attach
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-hledger hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-hledger
/home/data1/protected/.emacs.d/elpa/org-20190708/org-loaddefs hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-loaddefs
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-octave hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-octave
/home/data1/protected/.emacs.d/elpa/org-20190708/org-ctags hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-ctags
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-asymptote hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-asymptote
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-ditaa hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-ditaa
/home/data1/protected/.emacs.d/elpa/org-20190708/org-gnus hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-gnus
/home/data1/protected/.emacs.d/elpa/org-20190708/org-compat hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-compat
/home/data1/protected/.emacs.d/elpa/org-20190708/org-feed hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-feed
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-J hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-J
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-shell hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-shell
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-lilypond hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-lilypond
/home/data1/protected/.emacs.d/elpa/org-20190708/org-rmail hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-rmail
/home/data1/protected/.emacs.d/elpa/org-20190708/org-element hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-element
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-io hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-io
/home/data1/protected/.emacs.d/elpa/org-20190708/org-faces hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-faces
/home/data1/protected/.emacs.d/elpa/org-20190708/org-capture hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-capture
/home/data1/protected/.emacs.d/elpa/org-20190708/org-eshell hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-eshell
/home/data1/protected/.emacs.d/elpa/org-20190708/org-lint hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-lint
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-lisp hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-lisp
/home/data1/protected/.emacs.d/elpa/org-20190708/org-clock hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-clock
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-ebnf hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-ebnf
/home/data1/protected/.emacs.d/elpa/org-20190708/org-mobile hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-mobile
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-scheme hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-scheme
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-latex hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-latex
/home/data1/protected/.emacs.d/elpa/org-20190708/ob-emacs-lisp hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ob-emacs-lisp
/home/data1/protected/.emacs.d/elpa/org-20190708/org-mouse hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/org-mouse
/home/data1/protected/.emacs.d/elpa/org-20190708/ox-icalendar hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/org/ox-icalendar
/home/data1/protected/.emacs.d/elpa/flim-20190526.1034/ntlm hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/net/ntlm
/home/data1/protected/.emacs.d/elpa/flim-20190526.1034/sasl-digest hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/net/sasl-digest
/home/data1/protected/.emacs.d/elpa/flim-20190526.1034/hmac-md5 hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/net/hmac-md5
/home/data1/protected/.emacs.d/elpa/flim-20190526.1034/sasl-cram hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/net/sasl-cram
/home/data1/protected/.emacs.d/elpa/flim-20190526.1034/sasl hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/net/sasl
/home/data1/protected/.emacs.d/elpa/flim-20190526.1034/hmac-def hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/net/hmac-def
/home/data1/protected/.emacs.d/elpa/flim-20190526.1034/sasl-ntlm hides /package/text/emacs-2019-07-18/share/emacs/27.0.50/lisp/net/sasl-ntlm

Features:
(shadow emacsbug rng-xsd xsd-regexp rng-cmpct 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 wdired
markdown-mode org-archive org-capture ob-ditaa org-clock org-colview
org-crypt org-habit org-indent plain-tex texmathp preview prv-emacs
tex-buf font-latex latex latex-flymake flymake-proc flymake tex-ispell
tex-style tex tex-mode latexenc rect unrmail rmail-spam-filter rmailedit
rmailsort undigest mutt conf-mode cal-move epa-file peep-dired thai-util
thai-word lao-util enriched org-agenda org-eww org-rmail org-mhe org-irc
org-info org-gnus nnir org-docview org-bibtex bibtex org-bbdb org-w3m
hi-lock hilit-chg helm-ring helm-elisp helm-eval helm-info tramp-adb
tramp-archive tramp-cache tramp-cmds tramp-ftp tramp-gvfs cl-indent
rcirc grep url-file url-dired mhtml-mode css-mode js pcmpl-unix
pcmpl-linux bookmark sh-script executable em-rebind em-smart wordnut
wordnut-history wordnut-u imenu em-tramp gforth forth-interaction-mode
forth-mode forth-spec forth-smie pcase smie forth-syntax names edebug
autoload tar-mode mm-archive compare-w helm-system-packages-pacman
hashcash ecomplete goto-addr jabber-rtt jabber-otr dired-aux view
image-file image-dired ps-print ps-print-loaddefs ps-def lpr tabify
handwrite slime etags fileloop xref project arc-mode archive-mode
hyperspec macros strokes talk network-stream url-cache webjump
completion macrostep-c cmacexp macrostep cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs cl-print
debug backtrace tutorial let-alist md4rd tree-mode tree-widget request
hierarchy eww mm-url url-queue magit-utils face-remap mule-util
eieio-opt skeleton apropos finder lisp-mnt jabber-keepalive jabber-ping
sasl-digest hex-util hmac-md5 jabber jabber-notifications notifications
jabber-libnotify dbus jabber-awesome jabber-osd jabber-wmii
jabber-xmessage jabber-festival jabber-sawfish jabber-ratpoison
jabber-tmux jabber-screen jabber-socks5 jabber-ft-server
jabber-si-server jabber-ft-client jabber-ft-common jabber-si-client
jabber-si-common jabber-feature-neg jabber-truncate jabber-time
jabber-autoaway jabber-vcard-avatars jabber-chatstates jabber-events
jabber-vcard jabber-avatar jabber-activity jabber-watch jabber-modeline
jabber-ahc-presence jabber-ahc jabber-version jabber-ourversion
jabber-muc-nick-completion hippie-exp jabber-browse jabber-search
jabber-register jabber-roster jabber-presence jabber-muc
jabber-bookmarks jabber-private jabber-muc-nick-coloring hexrgb
jabber-widget jabber-disco jabber-chat jabber-history jabber-chatbuffer
jabber-alert jabber-iq jabber-core jabber-console sgml-mode ewoc
jabber-keymap jabber-sasl sasl sasl-anonymous sasl-login sasl-plain fsm
jabber-logon jabber-conn srv dns starttls tls gnutls jabber-xml
jabber-menu jabber-util mml1991 misearch multi-isearch rmailkwd
smerge-mode diff proced rmailout quail winner helm-mode helm-files
helm-buffers helm-occur helm-tags helm-locate helm-grep helm-regexp
helm-utils helm-help helm-types bbdb-com crm bbdb bbdb-site timezone
mail-extr pp elec-pair help-fns radix-tree cus-edit em-unix em-term term
disp-table ehelp em-script em-prompt em-ls em-hist em-pred em-glob
em-dirs esh-var em-cmpl em-basic em-banner em-alias esh-mode qp rmailsum
shr-color shr svg dom vc-git diff-mode rmailmm warnings ob-dot
ob-plantuml ob-sql paren savehist ivy delsel colir color ivy-overlay
ffap guide-key s popwin dash cus-start cus-load emms-librefm-stream
emms-librefm-scrobbler emms-playlist-limit emms-volume
emms-volume-amixer emms-i18n emms-history emms-score emms-stream-info
emms-metaplaylist-mode emms-bookmarks emms-cue emms-mode-line-icon
emms-browser sort emms-playlist-sort emms-last-played emms-player-xine
emms-player-mpd tq emms-playing-time emms-lyrics emms-url emms-streams
emms-show-all emms-tag-editor emms-mark emms-mode-line emms-cache
emms-info-opusinfo emms-info-ogginfo emms-info-mp3info emms-info
later-do emms-playlist-mode emms-player-vlc emms-player-mpv
emms-player-mplayer emms-player-simple emms-source-playlist
emms-source-file locate emms-setup emms emms-compat rcd-sent-folder
gold-price rcd/business rx cl-extra help-mode org-id dired-x
rcd/percentages rcd/utilities rcd-db pq time-stamp units mutt-alias
festival persistent-scratch google-translate google-translate-default-ui
google-translate-core-ui google-translate-core google-translate-tk
google-translate-backend helm-system-packages helm helm-source
helm-multi-match helm-lib async tramp-sh tramp tramp-loaddefs trampver
tramp-integration files-x tramp-compat shell ls-lisp graphviz-dot-mode
compile auto-compile packed mu4e desktop frameset mu4e-speedbar speedbar
sb-image ezimage dframe mu4e-main mu4e-view thingatpt browse-url
gnus-art mm-uu mml2015 mm-view mml-smime smime dig 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 gnus nnheader wid-edit
mu4e-headers mu4e-compose mu4e-context mu4e-draft mu4e-actions rfc2368
smtpmail mu4e-mark mu4e-message flow-fill mu4e-proc mu4e-utils doc-view
jka-compr image-mode mu4e-lists mu4e-vars message sendmail rfc822 mml
mml-sec epa derived epg gnus-util rmail rmail-loaddefs
text-property-search mm-decode mm-bodies mm-encode mail-utils gmm-utils
mailheader hl-line mu4e-meta mh-e mh-compat mailabbrev mh-buffers
mh-loaddefs eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg
esh-module esh-groups esh-util identica-mode url-http url-auth
mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr url-gw
nsm rmc puny url url-proxy url-privacy url-expand url-methods
url-history url-cookie url-domsuf url-util mailcap parse-time xml dired
dired-loaddefs edmacro exwm-config ido exwm exwm-input xcb-keysyms
xcb-xkb exwm-manage exwm-floating xcb-cursor xcb-render exwm-layout
exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xproto xcb-types
xcb-debug kmacro server finder-inf org-element avl-tree generator
orgtbl-ascii-plot org-table org ob ob-ref ob-lob ob-table ob-exp
org-macro org-footnote org-pcomplete pcomplete org-list org-faces
org-entities time-date noutline outline easy-mmode org-version
ob-emacs-lisp org-loaddefs find-func cal-menu calendar cal-loaddefs
ob-tangle org-src ob-comint comint ansi-color ring ob-keys ob-core
ob-eval org-compat org-macs format-spec org-install gh-common marshal
eieio-compat advice slime-autoloads cl tex-site info package easymenu
epg-config 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 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 threads dbusbind inotify lcms2 dynamic-setting
system-font-setting font-render-setting x-toolkit x multi-tty
make-network-process emacs)

Memory information:
((conses 16 3380406 325872)
 (symbols 48 77875 111)
 (strings 32 554923 43811)
 (string-bytes 1 30068221)
 (vectors 16 142501)
 (vector-slots 8 2626886 144700)
 (floats 8 1759 2480)
 (intervals 56 341997 666)
 (buffers 992 799))





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion
  2019-07-19 21:21 bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion Jean Louis
@ 2019-07-20  7:16 ` Eli Zaretskii
  2019-07-20  7:50   ` Jean Louis
  2020-02-29  1:30 ` bug#36733: (no subject) Ivan Kozlov
  2020-02-29  3:51 ` bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion Ivan Kozlov
  2 siblings, 1 reply; 20+ messages in thread
From: Eli Zaretskii @ 2019-07-20  7:16 UTC (permalink / raw)
  To: Jean Louis; +Cc: 36733

> From: Jean Louis <bugs@gnu.support>
> Date: Fri, 19 Jul 2019 23:21:28 +0200
> 
> 
> I have observed that if I write in Eshell:
> 
> $ cd Documents
> 
> That it enters the directory quickly.
> 
> But if I write:
> 
> $ cd Docum TAB
> 
> it expands into
> 
> $ cd Documents/
> 
> then when I press ENTER it is taking sometimes 1 second or few seconds
> just to enter the directory.
> 
> This also happens if inside of directory there is just one file. 

Doesn't happen here.  I suggest to start a CPU profiler, perform this
many times, then show the profile, completely expanded.  For best
results, load em-dirs.el as an uncompiled file, before doing this
experiment.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion
  2019-07-20  7:16 ` Eli Zaretskii
@ 2019-07-20  7:50   ` Jean Louis
  2019-07-20  8:31     ` Eli Zaretskii
  0 siblings, 1 reply; 20+ messages in thread
From: Jean Louis @ 2019-07-20  7:50 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 36733

* Eli Zaretskii <eliz@gnu.org> [2019-07-20 09:16]:
> Doesn't happen here.  I suggest to start a CPU profiler, perform this
> many times, then show the profile, completely expanded.  For best
> results, load em-dirs.el as an uncompiled file, before doing this
> experiment.

Help me how to start CPU profiler? Is it gprof?






^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion
  2019-07-20  7:50   ` Jean Louis
@ 2019-07-20  8:31     ` Eli Zaretskii
  2019-07-20  9:07       ` Jean Louis
  0 siblings, 1 reply; 20+ messages in thread
From: Eli Zaretskii @ 2019-07-20  8:31 UTC (permalink / raw)
  To: Jean Louis; +Cc: 36733

> Date: Sat, 20 Jul 2019 09:50:07 +0200
> From: Jean Louis <bugs@gnu.support>
> Cc: 36733@debbugs.gnu.org
> 
> * Eli Zaretskii <eliz@gnu.org> [2019-07-20 09:16]:
> > Doesn't happen here.  I suggest to start a CPU profiler, perform this
> > many times, then show the profile, completely expanded.  For best
> > results, load em-dirs.el as an uncompiled file, before doing this
> > experiment.
> 
> Help me how to start CPU profiler? Is it gprof?

"M-x profiler-start RET RET", then do the command, perhaps several
times, then "M-x profiler-report RET".  To expand the profile, go to
the top-level line with "+" at its left, and type "C-u RET".





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion
  2019-07-20  8:31     ` Eli Zaretskii
@ 2019-07-20  9:07       ` Jean Louis
  2019-07-20 10:08         ` Eli Zaretskii
  0 siblings, 1 reply; 20+ messages in thread
From: Jean Louis @ 2019-07-20  9:07 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 36733

This is what I have done:

$ emacs -Q

Then I started profiler, and within Emacs I went
to em-dirs.el.gz and clicked L to load the file

Then I started eshell and did following:

Welcome to the Emacs shell

~ $ cd Programming/
~/Programming $ cd ..
~ $ cd Documents/
~/Documents $ cd ..
~ $ cd tmp
~/tmp $ cd ..
~ $ cd tmp/
~/tmp $ cd ..
~ $ cd Media/
~/Media $

Here is the report:

- completion-in-region--postch                                    348  85%
 - #<compiled 0xd05b1d>                                           348  85%
  - pcomplete-completions-at-point                                348  85%
   - pcomplete-completions                                        348  85%
    - #<compiled 0xd04211>                                        348  85%
     - pcomplete--here                                            348  85%
      - #<compiled 0xd041fd>                                      348  85%
       - eshell-complete-commands-list                            151  37%
        - pcomplete-uniquify-list                                   4   0%
           sort                                                     1   0%
        - eshell-winnow-list                                        2   0%
           eshell-find-alias-function                               1   0%
- ...                                                              49  12%
   Automatic GC                                                    47  11%
 - minibuffer-complete                                              2   0%
  - completion-in-region                                            2   0%
   - completion--in-region                                          2   0%
    - #<compiled 0xcfe355>                                          2   0%
     - apply                                                        2   0%
      - #<compiled 0x1ffde1d7d889>                                  2   0%
       - completion--in-region-1                                    2   0%
        - completion--do-completion                                 2   0%
         - completion-try-completion                                2   0%
          - completion--nth-completion                              2   0%
           - completion--some                                       2   0%
            - #<compiled 0xcfe37d>                                  2   0%
             - completion-basic-try-completion                      2   0%
              - try-completion                                      2   0%
               - #<compiled 0x1ffde1da8f4b>                         2   0%
                  complete-with-action                              2   0%
- command-execute                                                  11   2%
 - call-interactively                                              10   2%
  - funcall-interactively                                           8   1%
   - execute-extended-command                                       7   1%
    - command-execute                                               6   1%
     - call-interactively                                           6   1%
      - funcall-interactively                                       6   1%
       - eshell                                                     5   1%
        - eshell-mode                                               5   1%
         - load                                                     2   0%
          - file-truename                                           1   0%
           - file-truename                                          1   0%
              file-truename                                         1   0%
          - byte-code                                               1   0%
           - require                                                1   0%
            - byte-code                                             1   0%
             - require                                              1   0%
              - defvar                                              1   0%
               - byte-code                                          1   0%
                - substitute-key-definition                         1   0%
                 - map-keymap                                       1   0%
                  - #<compiled 0xd11045>                            1   0%
                   - substitute-key-definition-key                  1   0%
                    - substitute-key-definition                     1   0%
                     - map-keymap                                   1   0%
                        #<compiled 0xd11075>                        1   0%
         - run-hooks                                                1   0%
          - eshell-emit-prompt                                      1   0%
           - eshell-output-filter                                   1   0%
            - eshell-run-output-filters                             1   0%
             - run-hooks                                            1   0%
              - eshell-postoutput-scroll-to-bottom                  1   0%
                 walk-windows                                       1   0%
         profiler-report                                            1   0%
    - sit-for                                                       1   0%
       read-event                                                   1   0%
   - eshell-send-input                                              1   0%
    - eval                                                          1   0%
     - eshell-commands                                              1   0%
      - let                                                         1   0%
       - progn                                                      1   0%
        - run-hooks                                                 1   0%
         - eshell-emit-prompt                                       1   0%
          - eshell-output-filter                                    1   0%
           - eshell-run-output-filters                              1   0%
            - run-hooks                                             1   0%
             - eshell-postoutput-scroll-to-bottom                   1   0%
                walk-windows                                        1   0%
  - byte-code                                                       2   0%
   - read-extended-command                                          2   0%
    - completing-read                                               2   0%
     - completing-read-default                                      2   0%
        read-from-minibuffer                                        2   0%





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion
  2019-07-20  9:07       ` Jean Louis
@ 2019-07-20 10:08         ` Eli Zaretskii
  2019-07-20 10:31           ` Jean Louis
  0 siblings, 1 reply; 20+ messages in thread
From: Eli Zaretskii @ 2019-07-20 10:08 UTC (permalink / raw)
  To: Jean Louis; +Cc: 36733

> Date: Sat, 20 Jul 2019 11:07:20 +0200
> From: Jean Louis <bugs@gnu.support>
> Cc: 36733@debbugs.gnu.org
> 
> This is what I have done:
> 
> $ emacs -Q
> 
> Then I started profiler, and within Emacs I went
> to em-dirs.el.gz and clicked L to load the file
> 
> Then I started eshell and did following:
> 
> Welcome to the Emacs shell
> 
> ~ $ cd Programming/
> ~/Programming $ cd ..
> ~ $ cd Documents/
> ~/Documents $ cd ..
> ~ $ cd tmp
> ~/tmp $ cd ..
> ~ $ cd tmp/
> ~/tmp $ cd ..
> ~ $ cd Media/
> ~/Media $
> 
> Here is the report:

Thanks.  I don't see eshell/cd anywhere in this report, so it's hard
to glean anything useful from the profile.

Please modify your procedure as follows:

  emacs -Q
  M-x load-library RET em-dirs.el RET
  M-x eshell RET
  M-x profiler-start RET RET
  ~ $ cd Programming/
  ~/Programming $ cd ..
  ~ $ cd Documents/
  ~/Documents $ cd ..
  ~ $ cd tmp
  ~/tmp $ cd ..
  ~ $ cd tmp/
  ~/tmp $ cd ..
  ~ $ cd Media/
  ~/Media $
  M-x profiler-report RET

IOW, start the profiler just before you start the Eshell commands.

If the results don't show eshell/cd in the profile, or if the
percentage for that is too low, perhaps repeat the recipe with more
"cd" commands.

Thanks.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion
  2019-07-20 10:08         ` Eli Zaretskii
@ 2019-07-20 10:31           ` Jean Louis
  2019-07-20 10:55             ` Eli Zaretskii
  0 siblings, 1 reply; 20+ messages in thread
From: Jean Louis @ 2019-07-20 10:31 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 36733

Here it is:

- completion-in-region--postch                                    357  86%
 - #<compiled 0xb94c41>                                           357  86%
  - pcomplete-completions-at-point                                357  86%
   - pcomplete-completions                                        357  86%
    - #<compiled 0xade071>                                        357  86%
     - pcomplete--here                                            357  86%
      - #<compiled 0xade05d>                                      357  86%
       - eshell-complete-commands-list                            156  37%
        - pcomplete-uniquify-list                                   4   0%
           sort                                                     1   0%
        - eshell-winnow-list                                        1   0%
           eshell-find-alias-function                               1   0%
- ...                                                              41   9%
   Automatic GC                                                    40   9%
 - #<compiled 0x1fc9a5d12089>                                       1   0%
  - completion--in-region-1                                         1   0%
   - completion--do-completion                                      1   0%
    - completion-try-completion                                     1   0%
     - completion--nth-completion                                   1   0%
      - completion--some                                            1   0%
       - #<compiled 0xb98625>                                       1   0%
        - completion-basic-try-completion                           1   0%
         - try-completion                                           1   0%
          - #<compiled 0xb2454d>                                    1   0%
           - complete-with-action                                   1   0%
            - #<compiled 0xb24541>                                  1   0%
             - completion-table-with-predicate                      1   0%
              - complete-with-action                                1   0%
               - comint-completion-file-name-table                  1   0%
                  completion-file-name-table                        1   0%
- command-execute                                                  17   4%
 - call-interactively                                              17   4%
  - funcall-interactively                                          17   4%
   - execute-extended-command                                      17   4%
    - execute-extended-command--shorter                            17   4%
     - completion-try-completion                                   17   4%
      - completion--nth-completion                                 17   4%
       - completion--some                                          17   4%
        - #<compiled 0xb88ee1>                                     17   4%
         - completion-pcm-try-completion                            9   2%
          - completion-pcm--find-all-completions                    9   2%
             completion-pcm--all-completions                        9   2%
           completion-basic-try-completion                          8   1%





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion
  2019-07-20 10:31           ` Jean Louis
@ 2019-07-20 10:55             ` Eli Zaretskii
  2019-07-20 15:28               ` Jean Louis
  0 siblings, 1 reply; 20+ messages in thread
From: Eli Zaretskii @ 2019-07-20 10:55 UTC (permalink / raw)
  To: Jean Louis; +Cc: 36733

> Date: Sat, 20 Jul 2019 12:31:02 +0200
> From: Jean Louis <bugs@gnu.support>
> Cc: 36733@debbugs.gnu.org
> 
> Here it is:
> 
> - completion-in-region--postch                                    357  86%
>  - #<compiled 0xb94c41>                                           357  86%
>   - pcomplete-completions-at-point                                357  86%
>    - pcomplete-completions                                        357  86%
>     - #<compiled 0xade071>                                        357  86%
>      - pcomplete--here                                            357  86%
>       - #<compiled 0xade05d>                                      357  86%
>        - eshell-complete-commands-list                            156  37%

Hmm... something related to completion, it seems.

Do you see the problem when the directory into which you cd is
completely empty?





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion
  2019-07-20 10:55             ` Eli Zaretskii
@ 2019-07-20 15:28               ` Jean Louis
  2019-07-20 15:56                 ` Eli Zaretskii
  0 siblings, 1 reply; 20+ messages in thread
From: Jean Louis @ 2019-07-20 15:28 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 36733

* Eli Zaretskii <eliz@gnu.org> [2019-07-20 12:55]:
> > Date: Sat, 20 Jul 2019 12:31:02 +0200
> > From: Jean Louis <bugs@gnu.support>
> > Cc: 36733@debbugs.gnu.org
> > 
> > Here it is:
> > 
> > - completion-in-region--postch                                    357  86%
> >  - #<compiled 0xb94c41>                                           357  86%
> >   - pcomplete-completions-at-point                                357  86%
> >    - pcomplete-completions                                        357  86%
> >     - #<compiled 0xade071>                                        357  86%
> >      - pcomplete--here                                            357  86%
> >       - #<compiled 0xade05d>                                      357  86%
> >        - eshell-complete-commands-list                            156  37%
> 
> Hmm... something related to completion, it seems.
> 
> Do you see the problem when the directory into which you cd is
> completely empty?

Yes, my directory ~/Desktop is completely
empty. It happens only when I do:

$ cd Desk TAB

then comes expansion and I see:

$ cd Desktop/X

whereby the cursor is still at X position and
waiting first time like 3-6 seconds.

Second time there is also lag, but shorter, like 1
second or 0.4 seconds something. Then if repeated
again little later, it can again be with longer
lag.

I wonder how you do not have see it, as I am starting
it with emacs -Q

Jean





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion
  2019-07-20 15:28               ` Jean Louis
@ 2019-07-20 15:56                 ` Eli Zaretskii
  2019-07-20 16:22                   ` Jean Louis
  0 siblings, 1 reply; 20+ messages in thread
From: Eli Zaretskii @ 2019-07-20 15:56 UTC (permalink / raw)
  To: Jean Louis; +Cc: 36733

> Date: Sat, 20 Jul 2019 17:28:55 +0200
> From: Jean Louis <bugs@gnu.support>
> Cc: 36733@debbugs.gnu.org
> 
> I wonder how you do not have see it, as I am starting
> it with emacs -Q

What if you empty your ~/.eshell directory, and then restart Emacs --
does that make any change?





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion
  2019-07-20 15:56                 ` Eli Zaretskii
@ 2019-07-20 16:22                   ` Jean Louis
  2019-07-20 16:40                     ` Eli Zaretskii
  0 siblings, 1 reply; 20+ messages in thread
From: Jean Louis @ 2019-07-20 16:22 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 36733

* Eli Zaretskii <eliz@gnu.org> [2019-07-20 17:57]:
> > I wonder how you do not have see it, as I am starting
> > it with emacs -Q
> 
> What if you empty your ~/.eshell directory, and then restart Emacs --
> does that make any change?

That one I did not have. I had directory in
~/.emacs.d/eshell and I emptied it, and I have the
same phenomena again.

Jean





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion
  2019-07-20 16:22                   ` Jean Louis
@ 2019-07-20 16:40                     ` Eli Zaretskii
  0 siblings, 0 replies; 20+ messages in thread
From: Eli Zaretskii @ 2019-07-20 16:40 UTC (permalink / raw)
  To: Jean Louis; +Cc: 36733

> Date: Sat, 20 Jul 2019 18:22:14 +0200
> From: Jean Louis <bugs@gnu.support>
> Cc: 36733@debbugs.gnu.org
> 
> > What if you empty your ~/.eshell directory, and then restart Emacs --
> > does that make any change?
> 
> That one I did not have. I had directory in
> ~/.emacs.d/eshell and I emptied it, and I have the
> same phenomena again.

Then I'm stumped.  Maybe someone who knows Eshell better could chime
in.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#36733: (no subject)
  2019-07-19 21:21 bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion Jean Louis
  2019-07-20  7:16 ` Eli Zaretskii
@ 2020-02-29  1:30 ` Ivan Kozlov
  2020-02-29  9:40   ` Ivan Kozlov
  2020-02-29  3:51 ` bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion Ivan Kozlov
  2 siblings, 1 reply; 20+ messages in thread
From: Ivan Kozlov @ 2020-02-29  1:30 UTC (permalink / raw)
  To: 36733

This indeed has nothing to do with cd.

Any time complete-in-region-mode (apparently, I don’t actually know what does that) is active in eshell, typing RET, or C-j, or C-c C-u and probably many similar commands which should probably conceptually exit the mode, it lags forever. It takes many seconds on my old netbook.

Not only that, it doesn’t even exit the mode! So if you enter ls a<TAB>, then C-c C-u, then type something again and do RET/C-c C-u/etc., it will lag. Even if you type RET and get a new prompt, it will continue to lag. But then if you type something in the new prompt, apparently it won’t. It’s crazy.

Needless to say, erasing only the argument in question also doesn’t quit it. If you enter ls a<TAB> and erase the ‘a’ with DEL/M-DEL/C-c C-w/etc., then press RET/C-c C-u/etc., it will lag.

But here are some things that do quit it:
— typing SPC;
— pressing C-g;
— moving the point to outside the argument;
— switching to a different buffer and back.

All this equally applies to command completion etc.

In general, completion in eshell is *completely* broken.

One further example: when complete-in-region-mode is active (again, _apparently_) and there is some text before the point, typing * (the asterisk character) runs some undocumented command which completes the argument if there is exactly one possible completion and doesn’t do anything otherwise, so it’s like TAB without the *Completions* buffer.

So typing ls a<TAB>/* will produce ls a/b if b is the only file in a/, and ls a/ otherwise.

This makes entering glob patterns (one of the most common tasks in shell) a *giant pain* with constantly hitting C-g and what not to make the completion stuff go away. I have no idea whether using * for the command was a deliberate decision, but it is really bad.

Moreover, typing \ inserts \<TAB>! This one is inexplicable. It makes quoting characters a giant pain with constantly erasing the tab or cancelling the completion garbage as above.

The third atrocity is bug #15386.

Together they render eshell clearly unusable.

I wish I could remotely understand what’s going on between completion-in-region/pcomplete/eshell, but the code appears complicated and is completely undocumented. I can’t even find where the * and \ bindings are set up. It is certainly the most horribly broken thing I have encountered in Emacs.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#36733: 27.0.50; Eshell taking long time to enter directory  after TAB completion
  2019-07-19 21:21 bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion Jean Louis
  2019-07-20  7:16 ` Eli Zaretskii
  2020-02-29  1:30 ` bug#36733: (no subject) Ivan Kozlov
@ 2020-02-29  3:51 ` Ivan Kozlov
  2020-02-29  6:40   ` Ivan Kozlov
  2 siblings, 1 reply; 20+ messages in thread
From: Ivan Kozlov @ 2020-02-29  3:51 UTC (permalink / raw)
  To: 36733

I think I am starting to understand what’s going on.

The profiler shows that eshell-complete-commands-list is being called. This function completes a command name.

But weren’t we completing a file name? What does this function have to do with it?

completion-in-region-mode installs a hook function completion-in-region--postch to post-command-hook, which is supposed to exit the mode when necessary. I don’t quite understand its logic. It tests for a bunch of conditions; here is the crucial block:

      (and completion-in-region--data
           (and (eq (marker-buffer (nth 0 completion-in-region--data))
                    (current-buffer))
                (>= (point) (nth 0 completion-in-region--data))
                (<= (point)
                    (save-excursion
                      (goto-char (nth 1 completion-in-region--data))
                      (line-end-position)))
                (funcall completion-in-region-mode--predicate)))

The initial conditions somehow turn out to be true when the argument, or the whole line, is deleted, or a new line is entered. Then it calls completion-in-region-mode--predicate, which is in this case apparently provided by completion-at-point, which is what TAB is bound to in eshell. I don’t quite understand the logic. It calls a function which ultimately comes from the completion-at-point-functions list. In eshell it is pcomplete-completions-at-point.

Because C-c C-u has erased the line (apparently post-command-hook is run before redisplay?), or, in the original bug, a line feed has been entered, pcomplete-completions-at-point operates from an empty line.

The result is exactly the same as hitting TAB at an empty prompt. It creates a list of all possible commands including *all executables from $PATH*.

Hence the bug.

I believe fixing it properly requires altering completion-in-region--postch. Altering it requires understanding why it is the way it is (like why doesn’t it already exit the mode when the region is gone), which I don’t have.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#36733: 27.0.50; Eshell taking long time to enter directory  after TAB completion
  2020-02-29  3:51 ` bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion Ivan Kozlov
@ 2020-02-29  6:40   ` Ivan Kozlov
  2020-02-29  7:24     ` Ivan Kozlov
  0 siblings, 1 reply; 20+ messages in thread
From: Ivan Kozlov @ 2020-02-29  6:40 UTC (permalink / raw)
  To: 36733

I have identified the problem. completion-in-region uses markers to identify the beginning and the end of the region where the completion is active. The markers are saved into the list completion-in-region--data.

completion-in-region--post checks if the point has left the buffer, in which case it quits the completion mode (as I have already noted):

                (>= (point) (nth 0 completion-in-region--data))
                (<= (point)
                    (save-excursion
                      (goto-char (nth 1 completion-in-region--data))
                      (line-end-position)))

Erasing text or entering line feed moves markers, it appears to be their whole purpose. Here is the problem. The markers move and the conditions above give true, so 1) completion-in-mode--predicate is called 2) completion-in-region mode remains active, both of which are wrong.

My investigation must end here. I don’t know why completion-in-region-mode is using markers (to enter text outside the region you probably need to move the point out of it, which exits the mode), and I don’t know if it is possible to avoid this situation when using them. All I know is that the current behavior is wrong and doesn’t make any sense. I do hope somebody chimes in who has any ideas.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#36733: 27.0.50; Eshell taking long time to enter directory  after TAB completion
  2020-02-29  6:40   ` Ivan Kozlov
@ 2020-02-29  7:24     ` Ivan Kozlov
  2020-02-29  7:56       ` Ivan Kozlov
  0 siblings, 1 reply; 20+ messages in thread
From: Ivan Kozlov @ 2020-02-29  7:24 UTC (permalink / raw)
  To: 36733

>completion-in-region--post checks if the point has left the buffer
Correction: the region (where the completion is active).

To reiterate the point: completion-in-region-mode must stop using persistent markers. It’s literally a bug. I don’t see why it can’t use numerical positions. If there is a legitimate reason, may be it is possible to make markers work differently.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#36733: 27.0.50; Eshell taking long time to enter directory  after TAB completion
  2020-02-29  7:24     ` Ivan Kozlov
@ 2020-02-29  7:56       ` Ivan Kozlov
  2020-02-29  9:02         ` Ivan Kozlov
  2020-02-29  9:33         ` Ivan Kozlov
  0 siblings, 2 replies; 20+ messages in thread
From: Ivan Kozlov @ 2020-02-29  7:56 UTC (permalink / raw)
  To: 36733

I was probably wrong about the apparent total unsuitability of the markers.

I just realised the issue with argument deletion can be fixed trivially:

--- /gnu/store/1ffhlsa973ym7j2zsyrbm892jxcpzmqq-emacs-next-27.0.50-0.36abf68/share/emacs/27.0.50/lisp/minibuffer.el.gz                                      
+++ #<buffer minibuffer.el.gz>                                                                                                                              
@@ -2132,6 +2132,7 @@                                                                                                                                       
       (and completion-in-region--data                                                                                                                      
            (and (eq (marker-buffer (nth 0 completion-in-region--data))                                                                                     
                     (current-buffer))                                                                                                                      
+               (< (nth 0 completion-in-region--data) (nth 1 completion-in-region--data))                                                                   
                 (>= (point) (nth 0 completion-in-region--data))                                                                                            
                 (<= (point)                                                                                                                                
                     (save-excursion                                                                                                                        

It works. I don’t know if it also breaks anything.

The problem with new line characters remains, but it really seems to be a different issue. In fact, can multi-line completion be useful in some cases? Maybe it is eshell that should tell the completion mode to stop when a command has been entered. I want to know how SPC works in the current scheme. RET should do the same in eshell.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#36733: 27.0.50; Eshell taking long time to enter directory  after TAB completion
  2020-02-29  7:56       ` Ivan Kozlov
@ 2020-02-29  9:02         ` Ivan Kozlov
  2020-02-29  9:33         ` Ivan Kozlov
  1 sibling, 0 replies; 20+ messages in thread
From: Ivan Kozlov @ 2020-02-29  9:02 UTC (permalink / raw)
  To: 36733



29.02.2020, 10:56, "Ivan Kozlov" <kanichos@yandex.ru>:
>Maybe it is eshell that should tell the completion mode to stop when a command has been entered.

Yes, it must be the way.

(defun eshell-send-input (&optional use-region queue-p no-newline)
  "Send the input received to Eshell for parsing and processing.                                                                                            
After `eshell-last-output-end', sends all text from that marker to                                                                                          
point as input.  Before that marker, calls `eshell-get-old-input' to                                                                                        
retrieve old input, copies it to the end of the buffer, and sends it.                                                                                       
                                                                                                                                                            
If USE-REGION is non-nil, the current region (between point and mark)                                                                                       
will be used as input.                                                                                                                                      
                                                                                                                                                            
If QUEUE-P is non-nil, input will be queued until the next prompt,                                                                                          
rather than sent to the currently active process.  If no process, the                                                                                       
input is processed immediately.                                                                                                                             
                                                                                                                                                            
If NO-NEWLINE is non-nil, the input is sent without an implied final                                                                                        
newline."
  (interactive "P")
  ;; Note that the input string does not include its terminal newline.                                                                                      
  (let ((proc-running-p (and (eshell-interactive-process)
                             (not queue-p)))
        (inhibit-point-motion-hooks t)
        (inhibit-modification-hooks t))
+    (completion-in-region-mode -1)
    (unless (and proc-running-p
                 (not (eq (process-status
                           (eshell-interactive-process))
                          'run)))

The bug is gone. With my two changes, all is good.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#36733: 27.0.50; Eshell taking long time to enter directory  after TAB completion
  2020-02-29  7:56       ` Ivan Kozlov
  2020-02-29  9:02         ` Ivan Kozlov
@ 2020-02-29  9:33         ` Ivan Kozlov
  1 sibling, 0 replies; 20+ messages in thread
From: Ivan Kozlov @ 2020-02-29  9:33 UTC (permalink / raw)
  To: 36733

29.02.2020, 10:56, "Ivan Kozlov" <kanichos@yandex.ru>:
>It works. I don’t know if it also breaks anything.

Of course, it breaks completion from an empty pattern. Now I genuinely have no idea what to do.





^ permalink raw reply	[flat|nested] 20+ messages in thread

* bug#36733: (no subject)
  2020-02-29  1:30 ` bug#36733: (no subject) Ivan Kozlov
@ 2020-02-29  9:40   ` Ivan Kozlov
  0 siblings, 0 replies; 20+ messages in thread
From: Ivan Kozlov @ 2020-02-29  9:40 UTC (permalink / raw)
  To: 36733@debbugs.gnu.org

29.02.2020, 04:30, "Ivan Kozlov" <kanichos@yandex.ru>:
>One further example: when complete-in-region-mode is active (again, _apparently_) and there is some text before the point, typing * (the asterisk character) runs some undocumented command which completes the argument if there is exactly one possible completion and doesn’t do anything otherwise, so it’s like TAB without the *Completions* buffer.
>
>So typing ls a<TAB>/* will produce ls a/b if b is the only file in a/, and ls a/ otherwise.
>
>This makes entering glob patterns (one of the most common tasks in shell) a *giant pain* with constantly hitting C-g and what not to make the completion stuff go away. I have no idea whether using * for the command was a deliberate decision, but it is really bad.
>
>Moreover, typing \ inserts \<TAB>! This one is inexplicable. It makes quoting characters a giant pain with constantly erasing the tab or cancelling the completion garbage as above.

I now realise what is actually going on here. Typing * and \ when completion-in-region-mode is active is exactly equivalent to activating this mode from a pattern ending in these characters.

In other words, a<TAB>* is equivalent to a*<TAB>, and a<TAB>\ is equivalent to a\<TAB>, which is actually supposed to allow escaping TAB.

Awful. The two cases should be treated completely differently.





^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2020-02-29  9:40 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-19 21:21 bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion Jean Louis
2019-07-20  7:16 ` Eli Zaretskii
2019-07-20  7:50   ` Jean Louis
2019-07-20  8:31     ` Eli Zaretskii
2019-07-20  9:07       ` Jean Louis
2019-07-20 10:08         ` Eli Zaretskii
2019-07-20 10:31           ` Jean Louis
2019-07-20 10:55             ` Eli Zaretskii
2019-07-20 15:28               ` Jean Louis
2019-07-20 15:56                 ` Eli Zaretskii
2019-07-20 16:22                   ` Jean Louis
2019-07-20 16:40                     ` Eli Zaretskii
2020-02-29  1:30 ` bug#36733: (no subject) Ivan Kozlov
2020-02-29  9:40   ` Ivan Kozlov
2020-02-29  3:51 ` bug#36733: 27.0.50; Eshell taking long time to enter directory after TAB completion Ivan Kozlov
2020-02-29  6:40   ` Ivan Kozlov
2020-02-29  7:24     ` Ivan Kozlov
2020-02-29  7:56       ` Ivan Kozlov
2020-02-29  9:02         ` Ivan Kozlov
2020-02-29  9:33         ` Ivan Kozlov

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).