Package: emacs;
Reported by: Chong Yidong <cyd <at> gnu.org>
Date: Fri, 17 Feb 2012 05:44:02 UTC
Severity: normal
Found in version 24.0.93
Done: Chong Yidong <cyd <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 10835 in the body.
You can then email your comments to 10835 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#10835
; Package emacs
.
(Fri, 17 Feb 2012 05:44:02 GMT) Full text and rfc822 format available.Chong Yidong <cyd <at> gnu.org>
:bug-gnu-emacs <at> gnu.org
.
(Fri, 17 Feb 2012 05:44:03 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Chong Yidong <cyd <at> gnu.org> To: bug-gnu-emacs <at> gnu.org Subject: 24.0.93; bidi-paragraph-direction slows down Shell mode Date: Fri, 17 Feb 2012 13:41:37 +0800
See thread discussion here: http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00517.html To recap: 1. emacs -Q 2. M-x shell RET 3. ls /usr/share/doc (Prints about 2000 lines on my computer) 4. Repeat step 6-7 times (e.g. M-p RET) The insertion of the shell output is significantly slower than in Emacs 23. If you set `bidi-paragraph-direction' to `left-to-right', the slowdown mostly disappears. If you scroll the shell buffer, it is also more sluggish when `bidi-paragraph-direction' is nil. Another observation: if you save the *shell* buffer to a file and visit the file in another Emacs instance, there is no sluggishness if the file is opened in (say) text mode. Maybe something in Shell mode is interacting badly with the bidi code, but I don't know what. In GNU Emacs 24.0.93.7 (x86_64-unknown-linux-gnu, GTK+ Version 3.2.0) of 2012-02-15 on furball Windowing system distributor `The X.Org Foundation', version 11.0.11004000 Configured using: `configure '--with-x-toolkit=gtk3' 'CFLAGS=-g'' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: en_US.UTF-8 value of $LC_CTYPE: en_US.UTF-8 value of $LC_MESSAGES: en_US.UTF-8 value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: en_US.UTF-8 value of $XMODIFIERS: nil locale-coding-system: utf-8-unix default enable-multibyte-characters: t Major mode: Emacs-Lisp
bug-gnu-emacs <at> gnu.org
:bug#10835
; Package emacs
.
(Fri, 17 Feb 2012 05:51:02 GMT) Full text and rfc822 format available.Message #8 received at 10835 <at> debbugs.gnu.org (full text, mbox):
From: Chong Yidong <cyd <at> gnu.org> To: 10835 <at> debbugs.gnu.org Subject: Re: bug#10835: 24.0.93; bidi-paragraph-direction slows down Shell mode Date: Fri, 17 Feb 2012 13:48:26 +0800
Chong Yidong <cyd <at> gnu.org> writes: > http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00517.html > > 1. emacs -Q > 2. M-x shell RET > 3. ls /usr/share/doc (Prints about 2000 lines on my computer) > 4. Repeat step 6-7 times (e.g. M-p RET) To follow up on some questions from the thread: > I see nothing like that, the display never freezes. Strange. What > kind of CPU do you have there? Is it a GUI session or a TTY session? > Does Emacs run on the local machine or remote one? It happens on both GUI sessions and TTY, run locally on an Intel i7 processor; Emacs was compiled without optimizations.
bug-gnu-emacs <at> gnu.org
:bug#10835
; Package emacs
.
(Fri, 17 Feb 2012 08:24:01 GMT) Full text and rfc822 format available.Message #11 received at 10835 <at> debbugs.gnu.org (full text, mbox):
From: Andreas Schwab <schwab <at> linux-m68k.org> To: Chong Yidong <cyd <at> gnu.org> Cc: 10835 <at> debbugs.gnu.org Subject: Re: bug#10835: 24.0.93; bidi-paragraph-direction slows down Shell mode Date: Fri, 17 Feb 2012 09:21:15 +0100
Chong Yidong <cyd <at> gnu.org> writes: > Chong Yidong <cyd <at> gnu.org> writes: > >> http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00517.html >> >> 1. emacs -Q >> 2. M-x shell RET >> 3. ls /usr/share/doc (Prints about 2000 lines on my computer) >> 4. Repeat step 6-7 times (e.g. M-p RET) What is your shell prompt? Andreas. -- Andreas Schwab, schwab <at> linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."
bug-gnu-emacs <at> gnu.org
:bug#10835
; Package emacs
.
(Fri, 17 Feb 2012 13:45:02 GMT) Full text and rfc822 format available.Message #14 received at 10835 <at> debbugs.gnu.org (full text, mbox):
From: Chong Yidong <cyd <at> gnu.org> To: Andreas Schwab <schwab <at> linux-m68k.org> Cc: 10835 <at> debbugs.gnu.org Subject: Re: bug#10835: 24.0.93; bidi-paragraph-direction slows down Shell mode Date: Fri, 17 Feb 2012 21:42:21 +0800
Andreas Schwab <schwab <at> linux-m68k.org> writes: > Chong Yidong <cyd <at> gnu.org> writes: > >> Chong Yidong <cyd <at> gnu.org> writes: >> >>> http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00517.html >>> >>> 1. emacs -Q >>> 2. M-x shell RET >>> 3. ls /usr/share/doc (Prints about 2000 lines on my computer) >>> 4. Repeat step 6-7 times (e.g. M-p RET) > > What is your shell prompt? PS1='\w \$ '
bug-gnu-emacs <at> gnu.org
:bug#10835
; Package emacs
.
(Fri, 17 Feb 2012 16:12:02 GMT) Full text and rfc822 format available.Message #17 received at 10835 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Chong Yidong <cyd <at> gnu.org> Cc: 10835 <at> debbugs.gnu.org Subject: Re: bug#10835: 24.0.93; bidi-paragraph-direction slows down Shell mode Date: Fri, 17 Feb 2012 18:08:47 +0200
> From: Chong Yidong <cyd <at> gnu.org> > Date: Fri, 17 Feb 2012 13:48:26 +0800 > > It happens on both GUI sessions and TTY, run locally on an Intel i7 > processor; Emacs was compiled without optimizations. On an i7, I'd expect no slowdown at all. How much time does it take `ls' to produce that 2K-line listing on your machine, outside of Emacs and with a warm cache? Also, can you put a printf after this line from xdisp.c: else if (it->bidi_it.charpos == bob || (!string_p && (FETCH_CHAR (it->bidi_it.bytepos - 1) == '\n' || FETCH_CHAR (it->bidi_it.bytepos) == '\n'))) { /* If we are at the beginning of a line/string, we can produce the next element right away. */ bidi_paragraph_init (it->paragraph_embedding, &it->bidi_it, 1); <<<<<< and tell me once in how many characters or lines of input from `ls' is bidi_paragraph_init called here? E.g., to see the character count, print it->bidi_it.charpos just before that line. (You could do the same from breakpoint commands, but I'm afraid that doing so will change the timing of how frequently the process output is read by Emacs, and will therefore produce a biased estimation.) TIA
bug-gnu-emacs <at> gnu.org
:bug#10835
; Package emacs
.
(Fri, 17 Feb 2012 17:42:02 GMT) Full text and rfc822 format available.Message #20 received at 10835 <at> debbugs.gnu.org (full text, mbox):
From: Chong Yidong <cyd <at> gnu.org> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 10835 <at> debbugs.gnu.org Subject: Re: bug#10835: 24.0.93; bidi-paragraph-direction slows down Shell mode Date: Sat, 18 Feb 2012 01:39:23 +0800
[Message part 1 (text/plain, inline)]
Eli Zaretskii <eliz <at> gnu.org> writes: > can you put a printf after this line from xdisp.c: > > else if (it->bidi_it.charpos == bob > || (!string_p > && (FETCH_CHAR (it->bidi_it.bytepos - 1) == '\n' > || FETCH_CHAR (it->bidi_it.bytepos) == '\n'))) > { > /* If we are at the beginning of a line/string, we can produce > the next element right away. */ > bidi_paragraph_init (it->paragraph_embedding, &it->bidi_it, 1); <<<<<< > > and tell me once in how many characters or lines of input from `ls' is > bidi_paragraph_init called here? E.g., to see the character count, > print it->bidi_it.charpos just before that line. Here are the line numbers at which the printf is triggered (and how many times consecutively they get triggered, in parentheses): 1 (x 5) 0 (x 16) 10 (x 2) 1 (x 3) 0 (x 16) 68 (x 4) 37 1606 (x 3) 0 (x 16) 125 (x 4) 94 93 (x 3) 0 (x 16) 183 (x 4) 152 151 (x 3) 0 (x 16) 241 (x 4) 210 (x 4) 0 (x 16) 299 (x 4) 268 267 (x 3) 0 (x 16) 358 (x 4) 327 326 (x 3) 0 (x 16) 417 (x 4) 386 385 (x 3) 0 (x 16) 476 (x 4) 445 444 (x 3) 0 (x 16) 533 (x 4) 502 501 (x 3) 0 (x 16) 590 (x 4) 559 558 (x 3) 0 (x 16) ... and so on. This is over one single ls call. The 0's are when it->bidi_it.charpos == 0, the rest are charpos's converted into buffer line numbers. The pattern seems to be 3 calls at each window end, then 1 on the second line of the window, then 4 on the first window line. After many `ls' calls, when redisplay has become sluggish, the pattern is the same. ... 6788 (x 4) 6757 6756 (x 3) 0 (x 16) 6846 (x 4) 6815 6814 (x 3) 0 (x 16) 6897 (x 4) 6866 6865 (x 3) 0 (x 16) The shell output for one ls call is attached, in case it is useful.
[shell.txt (text/plain, inline)]
~ $ ls /usr/share/doc accountsservice libnm-util2 acl libnotify4 acpid libnspr4 acpi-support libnspr4-0d ada-reference-manual-text libnss3 adduser libnss3-1d adium-theme-ubuntu libnss-mdns alacarte libnuma1 alsa-base libnux-1.0-0 alsa-utils libnux-1.0-common anacron liboauth0 apache2 libofa0 apache2.2-bin libogg0 apache2.2-common liboil0.3 apache2-mpm-worker libopenal1 apache2-utils libopencore-amrnb0 apg libopencore-amrwb0 apparmor libopenexr6 app-install-data libopenmpi1.3 app-install-data-partner libopenmpi-dev apport libopenobex1 apport-hooks-medibuntu liborbit2 apport-symptoms liborc-0.4-0 apt libp11-kit0 aptdaemon libpam0g aptdaemon-data libpam-ck-connector apt-transport-https libpam-gnome-keyring apturl libpam-modules apturl-common libpam-modules-bin apt-utils libpam-runtime aspell libpanel-applet-4-0 aspell-en libpango1.0-0 at libpango1.0-dev autoconf libpangomm-1.4-1 automake libpango-perl autotools-dev libpaper1 avahi-autoipd libpaper-utils avahi-daemon libparted0debian1 avahi-utils libpathplan4 bamfdaemon libpcap0.8 baobab libpci3 base-files libpciaccess0 base-passwd libpcre3 bash libpcrecpp0 bash-completion libpcsclite1 bc libpeas-1.0-0 bind9-host libpeas-common binfmt-support libperl5.12 binutils libpipeline1 blcr-dkms libpixman-1-0 blcr-util libpixman-1-dev blt libplist1 bluez libplymouth2 bluez-alsa libpng12-0 bluez-cups libpng12-dev bluez-gstreamer libpod-plainer-perl brasero libpolkit-agent-1-0 brasero-cdrkit libpolkit-backend-1-0 brasero-common libpolkit-gobject-1-0 bsdmainutils libpoppler13 bsdutils libpoppler-glib6 build-essential libpopt0 busybox-initramfs libpostproc52 busybox-static libprotobuf7 bzip2 libproxy0 bzr libpth20 bzrtools libpthread-stubs0 c2esp libpthread-stubs0-dev cabextract libpulse0 ca-certificates libpulse-mainloop-glib0 ca-certificates-java libpurple0 caribou libpurple-bin clisp libpython2.7 cmap-adobe-japan1 libqhull5 colord libqrupdate1 compiz libqt4-dbus compizconfig-backend-gconf libqt4-declarative compizconfig-settings-manager libqt4-designer compiz-core libqt4-network compiz-gnome libqt4-opengl compiz-plugins libqt4-qt3support compiz-plugins-default libqt4-script compiz-plugins-main libqt4-scripttools compiz-plugins-main-default libqt4-sql consolekit libqt4-sql-mysql console-setup libqt4-svg coreutils libqt4-test cpio libqt4-xml cpp libqt4-xmlpatterns cpp-4.4 libqtbamf1 cpp-4.6 libqtcore4 cron libqtdee2 cups libqtgconf1 cups-bsd libqtgui4 cups-client libquadmath0 cups-common libquvi0 cups-driver-gutenprint libraptor2-0 cups-pk-helper librarian0 cups-ppdc librasqal3 curl libraw1394-11 cvs librdf0 dash libreadline5 dbus libreadline6 dbus-x11 libreadline6-dev dc libreadline-dev dconf-gsettings-backend libreoffice-base-core debconf libreoffice-calc debconf-i18n libreoffice-common debhelper libreoffice-core debianutils libreoffice-draw deborphan libreoffice-emailmerge defoma libreoffice-gnome desktop-base libreoffice-gtk desktop-file-utils libreoffice-impress dialog libreoffice-math dictionaries-common libreoffice-style-human diffutils libreoffice-writer dkms librest-0.7-0 dmidecode librsvg2-2 dmsetup librsvg2-common dnsmasq-base librtmp0 dnsutils libruby1.8 doc-base libsamplerate0 docbook-xml libsane dosfstools libsane-hpaio dpkg libsasl2-2 dpkg-dev libsasl2-modules dvd+rw-tools libschroedinger-1.0-0 e2fslibs libsdl1.2debian e2fsprogs libsdl1.2debian-alsa ed libsdl-image1.2 eject libselinux1 empathy libsensors4 empathy-common libsgutils2-2 eog libshout3 esound-common libsidplay1 evince libsigc++-2.0-0c2a evince-common libsigsegv2 evolution-data-server-common libslang2 exiv2 libslp1 exo libslv2-9 exo-utils libsm6 fakeroot libsmbclient fbreader libsm-dev fglrx libsndfile1 fglrx-amdcccle libsnmp15 file libsnmp-base file-roller libsoundtouch0 findutils libsoup2.4-1 firefox libsoup-gnome2.4-1 firefox-globalmenu libspectre1 firefox-gnome-support libspeex1 firefox-locale-en libspeexdsp1 flashplugin-downloader libsqlite3-0 flashplugin-installer libsqlite3-dev fontconfig libss2 fontconfig-config libssl1.0.0 fonts-horai-umefont libssl-dev foo2zjs libssl-doc foomatic-db-compressed-ppds libstartup-notification0 foomatic-db-engine libstdc++6 foomatic-filters libstdc++6-4.6-dev freepats libsuitesparse-dev friendly-recovery libsvga1 ftp libswitch-perl fuse-utils libswscale2 g++ libsysfs2 g++-4.6 libsys-hostname-long-perl gamin libt1-5 gcc libtag1c2a gcc-4.4 libtag1-vanilla gcc-4.4-base libtalloc2 gcc-4.6 libtar0 gcc-4.6-base libtasn1-3 gconf2 libtasn1-3-dev gconf2-common libtdb1 gconf-defaults-service libtelepathy-farsight0 gconf-editor libtelepathy-glib0 gdb libtelepathy-logger2 gedit libtemplates-parser11.5 gedit-common libtextcat0 genisoimage libtextcat-data geoclue libtext-charwidth-perl geoclue-ubuntu-geoip libtext-iconv-perl geoip-database libtext-wrapi18n-perl gettext libthai0 gettext-base libthai-data gfortran libtheora0 gfortran-4.6 libthunarx-2-0 ghostscript libtidy-0.99-0 ghostscript-cups libtiff4 ghostscript-x libtiff4-dev gimp libtiffxx0c2 gimp-data libtimedate-perl gir1.2-accountsservice-1.0 libtinfo5 gir1.2-appindicator3-0.1 libtinfo-dev gir1.2-atk-1.0 libtool gir1.2-atspi-2.0 libtorque2 gir1.2-caribou-1.0 libtotem0 gir1.2-clutter-1.0 libtotem-plparser17 gir1.2-cogl-1.0 libts-0.0-0 gir1.2-dbusmenu-glib-0.4 libtumbler-1-0 gir1.2-dbusmenu-gtk-0.4 libtwolame0 gir1.2-dee-0.5 libudev0 gir1.2-folks-0.6 libumfpack5.4.0 gir1.2-freedesktop libunique-3.0-0 gir1.2-gconf-2.0 libunistring0 gir1.2-gdkpixbuf-2.0 libunity-2d-private0 gir1.2-gee-1.0 libunity6 gir1.2-gkbd-3.0 libunity-core-4.0-4 gir1.2-glib-2.0 libunity-misc4 gir1.2-gmenu-3.0 libupnp3 gir1.2-gnomebluetooth-1.0 libupower-glib1 gir1.2-gtk-2.0 liburi-perl gir1.2-gtk-3.0 libusb-0.1-4 gir1.2-gtksource-3.0 libusb-1.0-0 gir1.2-json-1.0 libusbmuxd1 gir1.2-mutter-3.0 libutempter0 gir1.2-networkmanager-1.0 libutouch-evemu1 gir1.2-notify-0.7 libutouch-frame1 gir1.2-panelapplet-4.0 libutouch-geis1 gir1.2-pango-1.0 libutouch-grail1 gir1.2-peas-1.0 libuuid1 gir1.2-polkit-1.0 libuuid-perl gir1.2-soup-2.4 libv4l-0 gir1.2-telepathyglib-0.12 libv8-3.1.8.22 gir1.2-telepathylogger-0.2 libva1 gir1.2-totem-1.0 libva-x11-1 gir1.2-totem-plparser-1.0 libvcdinfo0 gir1.2-unity-4.0 libvdpau1 gir1.2-upowerglib-1.0 libvisual-0.4-0 gir1.2-vte-2.90 libvisual-0.4-plugins gir1.2-webkit-3.0 libvlc5 git libvlccore4 git-man libvorbis0a gjs libvorbisenc2 gksu libvorbisfile3 glib-networking libvpx0 gnat libvte-2.90-9 gnat-4.4 libvte9 gnat-4.4-base libvte-common gnat-gps libwavpack1 gnat-gps-doc libwbclient0 gnome-accessibility-themes libwebkitgtk-1.0-0 gnome-applets libwebkitgtk-1.0-common gnome-applets-data libwebkitgtk-3.0-0 gnome-bluetooth libwebkitgtk-3.0-common gnome-codec-install libwildmidi1 gnome-control-center libwmf0.2-7 gnome-control-center-data libwmf0.2-7-gtk gnome-desktop3-data libwmf-bin gnome-desktop-data libwnck22 gnome-disk-utility libwnck-3-0 gnome-exe-thumbnailer libwnck-3-common gnome-font-viewer libwnck-common gnome-icon-theme libwpd-0.9-9 gnome-icon-theme-full libwpg-0.2-2 gnome-icon-theme-symbolic libwps-0.2-2 gnome-keyring libwrap0 gnome-media libwww-perl gnome-menus libwww-robotrules-perl gnome-nettool libwxbase2.8-0 gnome-online-accounts libwxgtk2.8-0 gnome-panel libx11-6 gnome-panel-data libx11-data gnome-power-manager libx11-dev gnome-screensaver libx11-xcb1 gnome-session libx264-116 gnome-session-bin libx86-1 gnome-session-common libxapian22 gnome-session-fallback libxau6 gnome-settings-daemon libxau-dev gnome-shell libxaw7 gnome-system-log libxaw7-dev gnome-system-monitor libxcb1 gnome-terminal libxcb1-dev gnome-terminal-data libxcb-dri2-0 gnome-themes-standard libxcb-keysyms1 gnome-user-guide libxcb-randr0 gnome-user-share libxcb-render0 gnome-utils-common libxcb-render0-dev gnupg libxcb-shape0 gnuplot libxcb-shm0 gnuplot-nox libxcb-shm0-dev gnuplot-x11 libxcb-util0 gpgv libxcb-xv0 grep libxcomposite1 groff libxcomposite-dev groff-base libxcursor1 gromit libxcursor-dev growisofs libxdamage1 grub2-common libxdamage-dev grub-common libxdmcp6 grub-gfxpayload-lists libxdmcp-dev grub-pc libxext6 grub-pc-bin libxext-dev gs-cjk-resource libxfce4ui-1-0 gsettings-desktop-schemas libxfce4util4 gsfonts libxfce4util-bin gstreamer0.10-alsa libxfce4util-common gstreamer0.10-ffmpeg libxfconf-0-2 gstreamer0.10-fluendo-mp3 libxfixes3 gstreamer0.10-gconf libxfixes-dev gstreamer0.10-nice libxfont1 gstreamer0.10-plugins-bad libxft2 gstreamer0.10-plugins-base libxft-dev gstreamer0.10-plugins-base-apps libxi6 gstreamer0.10-plugins-good libxi-dev gstreamer0.10-plugins-ugly libxinerama1 gstreamer0.10-pulseaudio libxinerama-dev gstreamer0.10-tools libxkbfile1 gstreamer0.10-x libxklavier16 gtk2-engines libxml2 gtk2-engines-murrine libxml2-dev gtk2-engines-xfce libxml2-utils gtk3-engines-unico libxmu6 gvfs libxmu-dev gvfs-backends libxmu-headers gvfs-bin libxmuu1 gvfs-fuse libxpm4 gzip libxpm-dev hdparm libxrandr2 hicolor-icon-theme libxrandr-dev hostname libxrender1 hpijs libxrender-dev hplip libxres1 hplip-cups libxslt1.1 hplip-data libxslt1-dev html2text libxss1 humanity-icon-theme libxt6 hunspell-en-ca libxt-dev hunspell-en-us libxtst6 hwdata libxv1 hyphen-en-us libxvidcore4 ia32-crossover-games-demo libxvmc1 ia32-libs libxxf86dga1 ia32-libs-multiarch libxxf86vm1 icc-profiles-free libyajl1 icedtea-6-jre-cacao libyaml-tiny-perl icedtea-6-jre-jamvm libyelp0 icedtea6-plugin libzbar0 icedtea-netx libzeitgeist-1.0-1 icedtea-plugin libzephyr4 icoutils libzlcore0.12 ifupdown libzlcore-data imagemagick libzltext0.12 indicator-application libzltext-data indicator-datetime libzlui-qt4 indicator-power lightdm indicator-session light-themes info linux-firmware initramfs-tools linux-generic initramfs-tools-bin linux-headers-3.0.0-14 initscripts linux-headers-3.0.0-14-generic inkscape linux-headers-3.0.0-15 inputattach linux-headers-3.0.0-15-generic insserv linux-headers-generic install-info linux-image-3.0.0-14-generic intltool-debian linux-image-3.0.0-15-generic iproute linux-image-generic iptables linux-libc-dev iputils-arping linux-sound-base iputils-ping lmodern iputils-tracepath locales irqbalance lockfile-progs isc-dhcp-client login isc-dhcp-common logrotate iso-codes lp-solve java-common lsb-base jockey-common lsb-release jockey-gtk lsdvd kbd lshw kerneloops-daemon lsof keyboard-configuration ltrace klibc-utils luatex lacheck m4 language-pack-en make language-pack-en-base makedev language-pack-gnome-en man-db language-pack-gnome-en-base manpages language-selector-common manpages-dev laptop-detect mawk latex-beamer media-player-info latex-xcolor medibuntu-keyring launchpad-integration memtest86+ less mencoder lftp mesa-utils lib32asound2 metacity lib32bz2-1.0 metacity-common lib32ffi6 mime-support lib32gcc1 min12xxw lib32ncurses5 mlocate lib32ncursesw5 module-init-tools lib32nss-mdns mongodb lib32stdc++6 mongodb-clients lib32tinfo5 mongodb-dev lib32z1 mongodb-server liba52-0.7.4 mount libaa1 mountall libaccess-bridge-java mousetweaks libaccess-bridge-java-jni mpi-default-bin libaccountsservice0 mpi-default-dev libacl1 mplayer libalgorithm-diff-perl mscompress libalgorithm-diff-xs-perl mtools libalgorithm-merge-perl mtr-tiny libamd2.2.0 multiarch-support libappindicator1 mutter-common libappindicator3-1 myspell-en-au libapr1 myspell-en-gb libaprutil1 myspell-en-za libaprutil1-dbd-sqlite3 mysql-common libaprutil1-ldap mythes-en-us libapt-inst1.3 nautilus libapt-pkg4.11 nautilus-data libarchive1 nautilus-sendto libarpack2 nautilus-sendto-empathy libarpack2-dev nautilus-share libasound2 ncftp libasound2-plugins ncurses-base libaspell15 ncurses-bin libass4 netbase libasyncns0 netcat-openbsd libatasmart4 netpbm libatk1.0-0 net-tools libatk1.0-data network-manager libatk1.0-dev network-manager-gnome libatkmm-1.6-1 network-manager-pptp libatlas3gf-base network-manager-pptp-gnome libatspi2.0-0 nodejs libattr1 notify-osd libaudio2 notify-osd-icons libaudiofile0 nspluginviewer libavahi-client3 nspluginwrapper libavahi-common3 ntfs-3g libavahi-common-data ntpdate libavahi-core7 nux-tools libavahi-glib1 obex-data-server libavahi-gobject0 obexd-client libavahi-ui-gtk3-0 octave3.2 libavc1394-0 octave3.2-common libavcodec53 octave3.2-headers libavformat53 openjdk-6-jre libavutil51 openjdk-6-jre-headless libbabl-0.0-0 openjdk-6-jre-lib libbamf3-0 openmpi-bin libbind9-60 openmpi-checkpoint libblas3gf openmpi-common libblas-dev openprinting-ppds libblkid1 openssh-client libbluetooth3 openssh-server libboost1.46-dev openssl libboost-dev orage libboost-filesystem1.46.1 os-prober libboost-program-options1.46.1 p7zip libboost-python1.46.1 parted libboost-serialization1.46.1 passwd libboost-system1.46.1 patch libboost-thread1.46.1 pciutils libbrasero-media3-1 perl libbsd0 perl-base libbtf1.1.0 perlmagick libburn4 perl-modules libbz2-1.0 pgf libc6 pkg-config libc6-dbg plymouth libc6-dev plymouth-label libc6-i386 plymouth-theme-ubuntu-logo libcaca0 plymouth-theme-ubuntu-text libcairo2 pm-utils libcairo2-dev pnm2ppa libcairo-gobject2 po-debconf libcairomm-1.0-1 policykit-1 libcairo-perl policykit-1-gnome libcairo-script-interpreter2 policykit-desktop-privileges libcamd2.2.0 poppler-utils libcamel-1.2-29 popularity-contest libcanberra0 powermgmt-base libcanberra-gtk0 ppp libcanberra-gtk3-0 pppconfig libcanberra-gtk3-module pppoeconf libcanberra-gtk-module pptp-linux libcap2 preview-latex-style libcap2-bin procps libcap-ng0 prosper libc-ares2 ps2eps libcaribou0 psmisc libc-bin psutils libccolamd2.7.1 ptouch-driver libcdaudio1 pulseaudio-utils libcddb2 pxljr libc-dev-bin python libcdio10 python2.7 libcdio-cdda0 python2.7-minimal libcdio-paranoia0 python-apport libcdparanoia0 python-apt libcdt4 python-apt-common libcelt0-0 python-aptdaemon libcholmod1.7.1 python-aptdaemon-gtk libck-connector0 python-aptdaemon.gtk3widgets libclass-isa-perl python-aptdaemon.gtkwidgets libclutter-1.0-0 python-axiom libclutter-1.0-common python-beautifulsoup libcogl5 python-bzrlib libcogl-common python-cairo libcolamd2.7.1 python-central libcolord1 python-chardet libcomerr2 python-clientform libcompizconfig0 python-coherence libcr0 python-compizconfig libcroco3 python-configobj libcrypt-passwdmd5-perl python-crypto libcsparse2.2.3 python-cups libcups2 python-cupshelpers libcupscgi1 python-dbus libcupsdriver1 python-debian libcupsimage2 python-defer libcupsmime1 python-epsilon libcupsppdc1 python-farsight libcurl3 python-feedparser libcurl3-gnutls python-glade2 libcxsparse2.2.3 python-gmenu libdaemon0 python-gnomekeyring libdatrie1 python-gnupginterface libdb4.8 python-gobject libdb5.1 python-gobject-2 libdbus-1-3 python-gobject-cairo libdbus-1-dev python-gst0.10 libdbus-glib-1-2 python-gtk2 libdbusmenu-glib4 python-httplib2 libdbusmenu-gtk3-4 python-imaging libdbusmenu-gtk4 python-keyring libdbusmenu-qt2 python-launchpadlib libdc1394-22 python-lazr.restfulclient libdca0 python-lazr.uri libdconf0 python-libproxy libdconf-dbus-1-0 python-libxml2 libdconf-qt0 python-louie libdecoration0 python-lxml libdee-1.0-1 python-mechanize libdevmapper1.02.1 python-minimal libdevmapper-event1.02.1 python-nevow libdirac-encoder0 python-notify libdirectfb-1.2-9 python-numpy libdjvulibre21 python-numpy-dbg libdjvulibre-text python-oauth libdns69 python-openssl libdpkg-perl python-pam libdrm2 python-papyon libdrm-intel1 python-paramiko libdrm-nouveau1a python-pexpect libdrm-radeon1 python-pkg-resources libdv4 python-problem-report libdvbpsi7 python-pyasn1 libdvdcss2 python-pyatspi2 libdvdnav4 python-pycurl libdvdread4 python-pysqlite2 libebml3 python-serial libebook1.2-12 python-simplejson libecal1.2-10 python-smbc libedataserver1.2-15 python-software-properties libedataserverui-3.0-1 python-support libedit2 python-tagpy libelf1 python-telepathy libenca0 python-tk libenchant1c2a python-twisted-bin libencode-locale-perl python-twisted-conch liberror-perl python-twisted-core libesd0 python-twisted-web libev4 python-uno libevent-2.0-5 python-utidylib libevince3-3 python-vte libexempi3 python-wadllib libexif12 python-xapian libexiv2-10 python-xdg libexo-1-0 python-xkit libexo-common python-zope.interface libexo-helpers qdbus libexpat1 radeontool libexpat1-dev rarian-compat libfaac0 rcs libfaad2 readline-common libffcall1 rfkill libffi6 rsync libfftw3-3 rsyslog libfftw3-dev rtkit libfile-basedir-perl ruby libfile-copy-recursive-perl ruby1.8 libfile-desktopentry-perl ruby1.8-dev libfile-listing-perl samba-common libfile-mimeinfo-perl samba-common-bin libflac8 sane-utils libflite1 seahorse libfltk1.1 sed libfolks25 sensible-utils libfolks-telepathy25 sessioninstaller libfont-afm-perl sgml-base libfontconfig1 sgml-data libfontconfig1-dev shared-mime-info libfontenc1 simple-scan libfreetype6 smbclient libfreetype6-dev software-properties-common libfribidi0 software-properties-gtk libfs6 sound-theme-freedesktop libfuse2 splix libgail18 ssh-askpass-gnome libgail-3-0 ssh-import-id libgamin0 ssl-cert libgarcon-1-0 strace libgarcon-common sudo libgc1c2 svgalib libgcc1 syslinux libgck-1-0 syslinux-common libgconf2-4 system-config-printer-common libgconf2-dev system-config-printer-gnome libgcr-3-1 system-config-printer-udev libgcrypt11 sysvinit-utils libgcrypt11-dev sysv-rc libgd2-xpm tango-icon-theme libgdata13 tar libgdata-common tcl8.4 libgdbm3 tcl8.5 libgdk-pixbuf2.0-0 tcpd libgdk-pixbuf2.0-dev tcpdump libgdu0 telepathy-butterfly libgdu-gtk0 telepathy-gabble libgee2 telepathy-haze libgegl-0.0-0 telepathy-idle libgeoclue0 telepathy-indicator libgeoip1 telepathy-logger libgfortran3 telepathy-mission-control-5 libgif4 telepathy-salut libgif-dev telnet libgimp2.0 tex-common libgirepository-1.0-1 texinfo libgjs0c texlive libgksu2-0 texlive-base libgl1-mesa-dri texlive-bibtex-extra libgl1-mesa-glx texlive-binaries libglade2-0 texlive-common libglapi-mesa texlive-doc libglew1.5 texlive-doc-base libglewmx1.5 texlive-extra-utils libglib2.0-0 texlive-fonts-recommended libglib2.0-bin texlive-fonts-recommended-doc libglib2.0-data texlive-font-utils libglib2.0-dev texlive-generic-recommended libglibmm-2.4-1c2a texlive-latex-base libglib-perl texlive-latex-base-doc libglpk0 texlive-latex-extra libglu1-mesa texlive-latex-extra-doc libgme0 texlive-latex-recommended libgmime-2.4-2 texlive-latex-recommended-doc libgmp10 texlive-luatex libgnat-4.4 texlive-pictures libgnatprj4.4 texlive-pictures-doc libgnatvsn4.4 texlive-pstricks libgnome2-common texlive-pstricks-doc libgnome-bluetooth8 texlive-publishers libgnome-control-center1 texlive-publishers-doc libgnome-desktop-3-2 texmf libgnomekbd7 thunar libgnomekbd-common thunar-data libgnome-keyring0 thunar-volman libgnome-media-profiles-3.0-0 time libgnome-menu2 tipa libgnome-menu-3-0 tk8.5 libgnomevfs2-0 toshset libgnomevfs2-common totem libgnutls26 totem-common libgnutls-dev totem-mozilla libgnutlsxx26 totem-plugins libgoa-1.0-0 totem-plugins-extra libgomp1 traceroute libgpg-error0 transmission-common libgpg-error-dev transmission-gtk libgpgme11 tsconf libgphoto2-2 ttf-dejavu-core libgphoto2-l10n ttf-dejavu-extra libgphoto2-port0 ttf-droid libgpm2 ttf-freefont libgpod4 ttf-indic-fonts-core libgpod-common ttf-kacst-one libgraph4 ttf-liberation libgraphicsmagick3 ttf-mscorefonts-installer libgraphicsmagick++3 ttf-opensymbol libgrip0 ttf-punjabi-fonts libgs9 ttf-takao-pgothic libgs9-common ttf-thai-tlwg libgsl0-dev ttf-ubuntu-font-family libgsl0ldbl ttf-unfonts-core libgsm1 ttf-wqy-microhei libgssapi-krb5-2 tumbler libgssdp-1.0-2 tumbler-common libgstfarsight0.10-0 tzdata libgstreamer0.10-0 tzdata-java libgstreamer-plugins-base0.10-0 ubuntu-artwork libgtk2.0-0 ubuntu-docs libgtk2.0-bin ubuntu-extras-keyring libgtk2.0-common ubuntu-keyring libgtk2.0-dev ubuntu-minimal libgtk2-perl ubuntu-mono libgtk-3-0 ubuntu-restricted-addons libgtk-3-bin ubuntu-sounds libgtk-3-common ubuntu-standard libgtk-3-dev ubuntu-system-service libgtkada2.14.2 ubuntu-wallpapers libgtkmm-2.4-1c2a ucf libgtkmm-3.0-1 udev libgtksourceview-3.0-0 udisks libgtksourceview-3.0-common ufw libgtkspell0 unattended-upgrades libgtop2-7 unity libgtop2-common unity-2d libgucharmap-2-90-7 unity-2d-launcher libgudev-1.0-0 unity-2d-panel libgupnp-1.0-3 unity-2d-places libgupnp-igd-1.0-3 unity-2d-spread libgutenprint2 unity-asset-pool libgvc5 unity-common libgweather-3-0 unity-greeter libgweather-common unity-lens-applications libhdf5-openmpi-1.8.4 unity-lens-files libhdf5-openmpi-dev unity-lens-music libhpmud0 unity-scope-musicstores libhtml-format-perl unity-services libhtml-form-perl uno-libs3 libhtml-parser-perl unrar libhtml-tagset-perl unzip libhtml-tree-perl update-inetd libhttp-cookies-perl update-manager libhttp-daemon-perl update-manager-core libhttp-date-perl upower libhttp-message-perl upstart libhttp-negotiate-perl uqm libhunspell-1.2-0 uqm-content libhyphen0 uqm-music libibverbs1 ure libibverbs-dev ureadahead libical0 usb-creator-common libice6 usb-creator-gtk libice-dev usb-modeswitch libicu44 usb-modeswitch-data libid3tag0 usbmuxd libidl0 usbutils libidn11 util-linux libido3-0.1-0 uuid-runtime libiec61883-0 valgrind libieee1284-3 vbetool libijs-0.35 vim-common libilmbase6 vim-tiny libimobiledevice2 vino libindicate5 vlc libindicate-gtk3 vlc-data libindicator3-6 vlc-nox libindicator6 vlc-plugin-notify libio-socket-ssl-perl vlc-plugin-pulse libisc62 wamerican libisccc60 wbritish libisccfg62 wget libiso9660-7 whiptail libisofs6 whois libiw30 winbind libjack-jackd2-0 wine1.3 libjasper1 wine1.3-gecko libjbig2dec0 winetricks libjpeg62 wireless-crda libjpeg62-dev wireless-tools libjpeg8 wodim libjpeg-progs wpasupplicant libjs-jquery x11-apps libjson0 x11-common libjson-glib-1.0-0 x11proto-composite-dev libjte1 x11proto-core-dev libk5crypto3 x11proto-damage-dev libkate1 x11proto-fixes-dev libkeybinder0 x11proto-input-dev libkeyutils1 x11proto-kb-dev libklibc x11proto-randr-dev libklu1.1.0 x11proto-render-dev libkpathsea5 x11proto-xext-dev libkrb5-3 x11proto-xinerama-dev libkrb5support0 x11-session-utils liblapack3gf x11-utils liblapack-dev x11-xfs-utils liblaunchpad-integration1 x11-xkb-utils liblaunchpad-integration-3.0-1 x11-xserver-utils liblaunchpad-integration-common xauth liblcms1 xbitmaps liblcms2-2 xcursor-themes libldap-2.4-2 xdg-user-dirs libldl2.0.1 xdg-user-dirs-gtk liblightdm-gobject-1-0 xdg-utils liblinebreak2 xfce4 liblircclient0 xfce4-appfinder libllvm2.9 xfce4-mixer liblocale-gettext-perl xfce4-panel liblockfile1 xfce4-power-manager liblqr-1-0 xfce4-power-manager-data libltdl7 xfce4-session libltdl-dev xfce4-settings liblua5.1-0 xfce4-utils liblvm2app2.2 xfce4-volumed liblwp-mediatypes-perl xfce-keyboard-shortcuts liblwp-protocol-https-perl xfconf liblwres60 xfdesktop4 liblzma2 xfdesktop4-data liblzo2-2 xfonts-base libmad0 xfonts-encodings libmagic1 xfonts-mathml libmagick++3 xfonts-scalable libmagickcore3 xfonts-utils libmagickcore3-extra xfwm4 libmagickwand3 xfwm4-themes libmail-sendmail-perl xinit libmailtools-perl xinput libmatroska4 xkb-data libmeanwhile1 xml-core libmetacity-private0 xorg libmhash2 xorg-docs-core libmikmod2 xorg-sgml-doctools libmimic0 xscreensaver libminiupnpc5 xscreensaver-data libmission-control-plugins0 xserver-common libmms0 xserver-xorg libmng1 xserver-xorg-core libmodplug1 xserver-xorg-input-all libmount1 xserver-xorg-input-evdev libmozjs185-1.0 xserver-xorg-input-mouse libmp3lame0 xserver-xorg-input-synaptics libmpc2 xserver-xorg-input-vmmouse libmpcdec6 xserver-xorg-input-wacom libmpeg2-4 xserver-xorg-video-ati libmpfr4 xserver-xorg-video-fbdev libmtdev1 xserver-xorg-video-intel libmtp9 xserver-xorg-video-mach64 libmtp-common xserver-xorg-video-neomagic libmtp-runtime xserver-xorg-video-nouveau libmusicbrainz4c2a xserver-xorg-video-r128 libmutter0 xserver-xorg-video-radeon libmysqlclient16 xserver-xorg-video-sisusb libmythes-1.2-0 xserver-xorg-video-vesa libnatpmp1 xserver-xorg-video-vmware libnautilus-extension1 xterm libncurses5 xtrans-dev libncurses5-dev x-ttcidfont-conf libncursesw5 xul-ext-ubufox libneon27-gnutls xz-utils libnet-http-perl yelp libnetpbm10 yelp-xsl libnet-ssleay-perl zeitgeist libnewt0.52 zeitgeist-core libnfnetlink0 zeitgeist-datahub libnice10 zeitgeist-extension-fts libnih1 zenity libnih-dbus1 zenity-common libnl3 zile libnm-glib4 zip libnm-glib-vpn1 zlib1g libnm-gtk0 zlib1g-dev libnm-gtk-common ~ $
bug-gnu-emacs <at> gnu.org
:bug#10835
; Package emacs
.
(Fri, 17 Feb 2012 18:31:02 GMT) Full text and rfc822 format available.Message #23 received at 10835 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Chong Yidong <cyd <at> gnu.org> Cc: 10835 <at> debbugs.gnu.org Subject: Re: bug#10835: 24.0.93; bidi-paragraph-direction slows down Shell mode Date: Fri, 17 Feb 2012 20:27:34 +0200
> From: Chong Yidong <cyd <at> gnu.org> > Cc: 10835 <at> debbugs.gnu.org > Date: Sat, 18 Feb 2012 01:39:23 +0800 > > Here are the line numbers at which the printf is triggered (and how many > times consecutively they get triggered, in parentheses): Thanks. This means redisplay is invoked every 90 lines, approximately, which is even less than in my case (I see a cycle of redisplay every 40-50 lines of inserted input). The plot thickens... What does "time ls /usr/share/doc" say, when you run it from the shell buffer? What are the times it reports, and are they approximately the same in each of the 4 invocations?
bug-gnu-emacs <at> gnu.org
:bug#10835
; Package emacs
.
(Sat, 18 Feb 2012 02:31:01 GMT) Full text and rfc822 format available.Message #26 received at 10835 <at> debbugs.gnu.org (full text, mbox):
From: Chong Yidong <cyd <at> gnu.org> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 10835 <at> debbugs.gnu.org Subject: Re: bug#10835: 24.0.93; bidi-paragraph-direction slows down Shell mode Date: Sat, 18 Feb 2012 10:28:12 +0800
I just noticed that when I do `ls --color=no' rather than just `ls', insertion and scrolling are very fast. The sluggishness only appears when ls color highlighting is enabled. So the inefficiency of ansi-color.el, and its use of overlays, seems to play a role. Eli Zaretskii <eliz <at> gnu.org> writes: > What does "time ls /usr/share/doc" say, when you run it from the shell > buffer? What are the times it reports, and are they approximately the > same in each of the 4 invocations? Times are below. Another observation: with `time ls /usr/share/doc' (which does use color highlighting), scrolling through the Shell buffer is no longer sluggish. I think the output of `time' helps by providing a paragraph break. If I do plain `ls' (no `time'), then go back and edit the Shell buffer manually by adding a C-q C-j line break after each prompt, that also makes the scrolling sluggishness go away. In xterm (speed is the same after repeated invocations): real 0m0.148s user 0m0.008s sys 0m0.020s In xterm, with --color=no: real 0m0.039s user 0m0.004s sys 0m0.008s In the Emacs 23 shell buffer, on the first invocation: real 0m0.378s user 0m0.008s sys 0m0.008s In the Emacs 24 shell buffer, on the first invocation: real 0m0.866s user 0m0.008s sys 0m0.004s In the Emacs 24 shell buffer, after 10 invocations: real 0m1.969s user 0m0.008s sys 0m0.004s In the Emacs 24 shell buffer, with --color=no: real 0m0.296s user 0m0.000s sys 0m0.008s In the Emacs 24 shell buffer, with --color=no, after 10 invocations: real 0m0.280s user 0m0.004s sys 0m0.012s
bug-gnu-emacs <at> gnu.org
:bug#10835
; Package emacs
.
(Sat, 18 Feb 2012 03:40:02 GMT) Full text and rfc822 format available.Message #29 received at 10835 <at> debbugs.gnu.org (full text, mbox):
From: Chong Yidong <cyd <at> gnu.org> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 10835 <at> debbugs.gnu.org Subject: Re: bug#10835: 24.0.93; bidi-paragraph-direction slows down Shell mode Date: Sat, 18 Feb 2012 11:37:33 +0800
Chong Yidong <cyd <at> gnu.org> writes: > I just noticed that when I do `ls --color=no' rather than just `ls', > insertion and scrolling are very fast. The sluggishness only appears > when ls color highlighting is enabled. So the inefficiency of > ansi-color.el, and its use of overlays, seems to play a role. I just confirmed that the sluggishness goes away if I change ansi-color.el to make it use text properties. Wish I'd remembered to do that before the pretest began. Roughly what is happening, I think, is that when overlays are heavily used and there are no paragraph breaks (e.g. from the `time' output), the bidi code does enough the additional overlay lookups to produce a noticeable slowdown. I'm not sure what's the best fix right now, though.
bug-gnu-emacs <at> gnu.org
:bug#10835
; Package emacs
.
(Sat, 18 Feb 2012 08:32:02 GMT) Full text and rfc822 format available.Message #32 received at 10835 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Chong Yidong <cyd <at> gnu.org> Cc: 10835 <at> debbugs.gnu.org Subject: Re: bug#10835: 24.0.93; bidi-paragraph-direction slows down Shell mode Date: Sat, 18 Feb 2012 10:27:18 +0200
> From: Chong Yidong <cyd <at> gnu.org> > Cc: 10835 <at> debbugs.gnu.org > Date: Sat, 18 Feb 2012 10:28:12 +0800 > > Times are below. Another observation: with `time ls /usr/share/doc' > (which does use color highlighting), scrolling through the Shell buffer > is no longer sluggish. I think the output of `time' helps by providing > a paragraph break. Of course. That makes each 2000-line output a separate paragraph, as far as bidi is concerned. So you never get to the 7500-line limit of searching for paragraph beginning. When I tried to reproduce the problem on Windows, I manually edited away these empty lines (which are inserted in my case because the shell prompt on Windows always starts with a newline). > If I do plain `ls' (no `time'), then go back and edit the Shell buffer > manually by adding a C-q C-j line break after each prompt, that also > makes the scrolling sluggishness go away. Of course, for the same reasons. > In the Emacs 24 shell buffer, after 10 invocations: > > real 0m1.969s > user 0m0.008s > sys 0m0.004s Is this with the empty lines between invocations, or without? If the former, do the 2 seconds match your impression of sluggishness, i.e., do you indeed see Emacs take about 2 sec to insert the 10th listing into the shell buffer? Or does the insertion take much longer? (Timing with second-resolution can be done by just looking at your wallclock time.)
bug-gnu-emacs <at> gnu.org
:bug#10835
; Package emacs
.
(Sat, 18 Feb 2012 08:54:01 GMT) Full text and rfc822 format available.Message #35 received at 10835 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Chong Yidong <cyd <at> gnu.org> Cc: 10835 <at> debbugs.gnu.org Subject: Re: bug#10835: 24.0.93; bidi-paragraph-direction slows down Shell mode Date: Sat, 18 Feb 2012 10:49:19 +0200
> From: Chong Yidong <cyd <at> gnu.org> > Cc: 10835 <at> debbugs.gnu.org > Date: Sat, 18 Feb 2012 11:37:33 +0800 > > Chong Yidong <cyd <at> gnu.org> writes: > > > I just noticed that when I do `ls --color=no' rather than just `ls', > > insertion and scrolling are very fast. The sluggishness only appears > > when ls color highlighting is enabled. So the inefficiency of > > ansi-color.el, and its use of overlays, seems to play a role. > > I just confirmed that the sluggishness goes away if I change > ansi-color.el to make it use text properties. That figures. bidi.c needs to look up display properties and overlays with display strings, in order to DTRT with their display (they are treated as a single neutral character). So having lots of overlays slows down redisplay a bit more. > Wish I'd remembered to do that before the pretest began. If this is a grave problem, we can still do it now, I think. Or we could use a band-aid, see below. > Roughly what is happening, I think, is that when overlays are heavily > used and there are no paragraph breaks (e.g. from the `time' output), > the bidi code does enough the additional overlay lookups to produce a > noticeable slowdown. Yes, the overlays together with the long search for paragraph beginning probably push the user experience from slightly below the annoyance threshold to just above it. > I'm not sure what's the best fix right now, though. How about setting bidi-paragraph-direction in comint buffers to left-to-right when the locale indicates that use of bidirectional scripts is unlikely? We could use locale-language-names and an additional small database of languages that need bidi, to make that decision. WDYT?
bug-gnu-emacs <at> gnu.org
:bug#10835
; Package emacs
.
(Sat, 18 Feb 2012 14:19:01 GMT) Full text and rfc822 format available.Message #38 received at 10835 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: cyd <at> gnu.org Cc: 10835 <at> debbugs.gnu.org Subject: Re: bug#10835: 24.0.93; bidi-paragraph-direction slows down Shell mode Date: Sat, 18 Feb 2012 16:14:21 +0200
> Date: Sat, 18 Feb 2012 10:49:19 +0200 > From: Eli Zaretskii <eliz <at> gnu.org> > Cc: 10835 <at> debbugs.gnu.org > > How about setting bidi-paragraph-direction in comint buffers to > left-to-right when the locale indicates that use of bidirectional > scripts is unlikely? We could use locale-language-names and an > additional small database of languages that need bidi, to make that > decision. WDYT? Actually, it's probably better to go directly from the locale, since locale-language-names doesn't really give the names of languages, it gives the names of language environments, which can be totally different. I see only several locales that will need to dynamically determine paragraph direction in comint buffers. Those are locales matching the following regular expressions: \`ar_.* \`fa_.* \`he_.* \`iw_.* \`ur_.*
bug-gnu-emacs <at> gnu.org
:bug#10835
; Package emacs
.
(Sun, 19 Feb 2012 14:10:02 GMT) Full text and rfc822 format available.Message #41 received at 10835 <at> debbugs.gnu.org (full text, mbox):
From: Chong Yidong <cyd <at> gnu.org> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 10835 <at> debbugs.gnu.org Subject: Re: bug#10835: 24.0.93; bidi-paragraph-direction slows down Shell mode Date: Sun, 19 Feb 2012 22:07:24 +0800
Eli Zaretskii <eliz <at> gnu.org> writes: > Yes, the overlays together with the long search for paragraph > beginning probably push the user experience from slightly below the > annoyance threshold to just above it. > ... > How about setting bidi-paragraph-direction in comint buffers to > left-to-right when the locale indicates that use of bidirectional > scripts is unlikely? We could use locale-language-names and an > additional small database of languages that need bidi, to make that > decision. WDYT? I'm not keen on bolting on this additional complexity. I don't see any better way out, so we might as well take the risk and switch to using text properties for color escape highlighting. I just committed a patch to do that, limiting the change to Shell mode and leaving the other users of ansi-color.el unaffected (and still using overlays). Thanks for helping with this bug. Hopefully the fix won't turn up any problems...
Chong Yidong <cyd <at> gnu.org>
to control <at> debbugs.gnu.org
.
(Sun, 26 Feb 2012 09:24:02 GMT) Full text and rfc822 format available.Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Sun, 25 Mar 2012 11:24:03 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.