unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
@ 2015-10-24  7:42 Tassilo Horn
  2015-10-24  8:02 ` Eli Zaretskii
  0 siblings, 1 reply; 28+ messages in thread
From: Tassilo Horn @ 2015-10-24  7:42 UTC (permalink / raw)
  To: 21747


With emacs -Q, evaluate the following in *stratch*:

--8<---------------cut here---------------start------------->8---
(defun th/loop-on-no-input ()
  (while-no-input (while t t)))

(add-hook 'post-command-hook #'th/loop-on-no-input)
--8<---------------cut here---------------end--------------->8---

After having done that, the effect of pressing any key is deferred until
you press the next key.  E.g., typing "foo" just inserts "fo", but after
an additional C-b (the exact key doesn't matter) you'll see "foo".

I've been bitten by that issue with aggressive-indent-mode which uses
`while-no-input' in order to abort its quite costly `post-command-hook'
function in case the user keeps on typing.

  https://github.com/Malabarba/aggressive-indent-mode/issues/62

This issue is also possibly related to at least parts of bug#21313.



In GNU Emacs 25.0.50.51 (x86_64-unknown-linux-gnu, GTK+ Version 3.18.2)
 of 2015-10-24
Repository revision: a98ae38ad3c0831f578ab843d392e24470c0076a
Windowing system distributor 'The X.Org Foundation', version 11.0.11702000
System Description:	Arch Linux

Configured using:
 'configure 'CFLAGS=-g -ggdb3 -Og''

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

Important settings:
  value of $LC_MONETARY: de_DE.utf8
  value of $LC_NUMERIC: de_DE.utf8
  value of $LC_TIME: de_DE.utf8
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: Emacs-Lisp

Minor modes in effect:
  diff-auto-refine-mode: t
  TeX-PDF-mode: t
  TeX-source-correlate-mode: t
  global-company-mode: t
  company-mode: t
  shell-dirtrack-mode: t
  paredit-mode: t
  global-aggressive-indent-mode: t
  aggressive-indent-mode: t
  highlight-symbol-mode: t
  outline-minor-mode: t
  pdf-occur-global-minor-mode: t
  recentf-mode: t
  beacon-mode: t
  highlight-parentheses-mode: t
  global-subword-mode: t
  subword-mode: t
  save-place-mode: t
  savehist-mode: t
  show-paren-mode: t
  ivy-mode: t
  minibuffer-depth-indicate-mode: t
  electric-pair-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  global-prettify-symbols-mode: t
  prettify-symbols-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
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
Setting up indent for shell type sh
Indentation variables are now local.
Indentation setup for shell type sh
Type C-x 1 to delete the help window.

mouse-2, RET: find function's definition
Type C-x 1 to delete the help window.
Auto-saving...
mouse-2, RET: find function's definition
Mark set

Load-path shadows:
~/Repos/el/auctex/lpath hides ~/Repos/el/gnus/lisp/lpath
~/Repos/el/highlight-symbol.el/highlight-symbol hides /home/horn/.emacs.d/elpa/highlight-symbol-20151005.451/highlight-symbol
~/Repos/el/gnus/lisp/md4 hides /home/horn/Repos/el/emacs/lisp/md4
~/Repos/el/gnus/lisp/color hides /home/horn/Repos/el/emacs/lisp/color
~/Repos/el/gnus/lisp/format-spec hides /home/horn/Repos/el/emacs/lisp/format-spec
~/Repos/el/gnus/lisp/password-cache hides /home/horn/Repos/el/emacs/lisp/password-cache
~/Repos/el/gnus/lisp/hex-util hides /home/horn/Repos/el/emacs/lisp/hex-util
~/Repos/el/gnus/lisp/dns-mode hides /home/horn/Repos/el/emacs/lisp/textmodes/dns-mode
~/Repos/el/gnus/lisp/dig hides /home/horn/Repos/el/emacs/lisp/net/dig
~/Repos/el/gnus/lisp/hmac-md5 hides /home/horn/Repos/el/emacs/lisp/net/hmac-md5
~/Repos/el/gnus/lisp/ntlm hides /home/horn/Repos/el/emacs/lisp/net/ntlm
~/Repos/el/gnus/lisp/hmac-def hides /home/horn/Repos/el/emacs/lisp/net/hmac-def
~/Repos/el/gnus/lisp/rfc2104 hides /home/horn/Repos/el/emacs/lisp/net/rfc2104
~/Repos/el/gnus/lisp/sasl-ntlm hides /home/horn/Repos/el/emacs/lisp/net/sasl-ntlm
~/Repos/el/gnus/lisp/sasl-cram hides /home/horn/Repos/el/emacs/lisp/net/sasl-cram
~/Repos/el/gnus/lisp/dns hides /home/horn/Repos/el/emacs/lisp/net/dns
~/Repos/el/gnus/lisp/sasl hides /home/horn/Repos/el/emacs/lisp/net/sasl
~/Repos/el/gnus/lisp/tls hides /home/horn/Repos/el/emacs/lisp/net/tls
~/Repos/el/gnus/lisp/sasl-scram-rfc hides /home/horn/Repos/el/emacs/lisp/net/sasl-scram-rfc
~/Repos/el/gnus/lisp/netrc hides /home/horn/Repos/el/emacs/lisp/net/netrc
~/Repos/el/gnus/lisp/sasl-digest hides /home/horn/Repos/el/emacs/lisp/net/sasl-digest
~/Repos/el/gnus/lisp/uudecode hides /home/horn/Repos/el/emacs/lisp/mail/uudecode
~/Repos/el/gnus/lisp/binhex hides /home/horn/Repos/el/emacs/lisp/mail/binhex
~/Repos/el/gnus/lisp/hashcash hides /home/horn/Repos/el/emacs/lisp/mail/hashcash
~/Repos/el/gnus/lisp/canlock hides /home/horn/Repos/el/emacs/lisp/gnus/canlock
~/Repos/el/gnus/lisp/nneething hides /home/horn/Repos/el/emacs/lisp/gnus/nneething
~/Repos/el/gnus/lisp/mm-encode hides /home/horn/Repos/el/emacs/lisp/gnus/mm-encode
~/Repos/el/gnus/lisp/mm-util hides /home/horn/Repos/el/emacs/lisp/gnus/mm-util
~/Repos/el/gnus/lisp/rfc2047 hides /home/horn/Repos/el/emacs/lisp/gnus/rfc2047
~/Repos/el/gnus/lisp/nnml hides /home/horn/Repos/el/emacs/lisp/gnus/nnml
~/Repos/el/gnus/lisp/gnus-cus hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-cus
~/Repos/el/gnus/lisp/gnus-range hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-range
~/Repos/el/gnus/lisp/gnus-int hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-int
~/Repos/el/gnus/lisp/gnus-cloud hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-cloud
~/Repos/el/gnus/lisp/spam-stat hides /home/horn/Repos/el/emacs/lisp/gnus/spam-stat
~/Repos/el/gnus/lisp/nnmh hides /home/horn/Repos/el/emacs/lisp/gnus/nnmh
~/Repos/el/gnus/lisp/gnus-mlspl hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-mlspl
~/Repos/el/gnus/lisp/deuglify hides /home/horn/Repos/el/emacs/lisp/gnus/deuglify
~/Repos/el/gnus/lisp/gnus-gravatar hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-gravatar
~/Repos/el/gnus/lisp/nngateway hides /home/horn/Repos/el/emacs/lisp/gnus/nngateway
~/Repos/el/gnus/lisp/ietf-drums hides /home/horn/Repos/el/emacs/lisp/gnus/ietf-drums
~/Repos/el/gnus/lisp/mail-parse hides /home/horn/Repos/el/emacs/lisp/gnus/mail-parse
~/Repos/el/gnus/lisp/gnus-salt hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-salt
~/Repos/el/gnus/lisp/nnimap hides /home/horn/Repos/el/emacs/lisp/gnus/nnimap
~/Repos/el/gnus/lisp/gnus-draft hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-draft
~/Repos/el/gnus/lisp/mail-source hides /home/horn/Repos/el/emacs/lisp/gnus/mail-source
~/Repos/el/gnus/lisp/messcompat hides /home/horn/Repos/el/emacs/lisp/gnus/messcompat
~/Repos/el/gnus/lisp/pop3 hides /home/horn/Repos/el/emacs/lisp/gnus/pop3
~/Repos/el/gnus/lisp/nnmaildir hides /home/horn/Repos/el/emacs/lisp/gnus/nnmaildir
~/Repos/el/gnus/lisp/nnheader hides /home/horn/Repos/el/emacs/lisp/gnus/nnheader
~/Repos/el/gnus/lisp/gnus-cite hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-cite
~/Repos/el/gnus/lisp/nndiary hides /home/horn/Repos/el/emacs/lisp/gnus/nndiary
~/Repos/el/gnus/lisp/gnus-diary hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-diary
~/Repos/el/gnus/lisp/nnfolder hides /home/horn/Repos/el/emacs/lisp/gnus/nnfolder
~/Repos/el/gnus/lisp/gnus-art hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-art
~/Repos/el/gnus/lisp/gnus-demon hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-demon
~/Repos/el/gnus/lisp/mml-sec hides /home/horn/Repos/el/emacs/lisp/gnus/mml-sec
~/Repos/el/gnus/lisp/nnir hides /home/horn/Repos/el/emacs/lisp/gnus/nnir
~/Repos/el/gnus/lisp/mm-partial hides /home/horn/Repos/el/emacs/lisp/gnus/mm-partial
~/Repos/el/gnus/lisp/gnus-registry hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-registry
~/Repos/el/gnus/lisp/gnus-icalendar hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-icalendar
~/Repos/el/gnus/lisp/compface hides /home/horn/Repos/el/emacs/lisp/gnus/compface
~/Repos/el/gnus/lisp/gnus-fun hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-fun
~/Repos/el/gnus/lisp/gnus-start hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-start
~/Repos/el/gnus/lisp/smiley hides /home/horn/Repos/el/emacs/lisp/gnus/smiley
~/Repos/el/gnus/lisp/gnus-picon hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-picon
~/Repos/el/gnus/lisp/spam-report hides /home/horn/Repos/el/emacs/lisp/gnus/spam-report
~/Repos/el/gnus/lisp/nntp hides /home/horn/Repos/el/emacs/lisp/gnus/nntp
~/Repos/el/gnus/lisp/nnnil hides /home/horn/Repos/el/emacs/lisp/gnus/nnnil
~/Repos/el/gnus/lisp/nndir hides /home/horn/Repos/el/emacs/lisp/gnus/nndir
~/Repos/el/gnus/lisp/gnus-srvr hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-srvr
~/Repos/el/gnus/lisp/smime hides /home/horn/Repos/el/emacs/lisp/gnus/smime
~/Repos/el/gnus/lisp/nnvirtual hides /home/horn/Repos/el/emacs/lisp/gnus/nnvirtual
~/Repos/el/gnus/lisp/gnus-notifications hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-notifications
~/Repos/el/gnus/lisp/nnspool hides /home/horn/Repos/el/emacs/lisp/gnus/nnspool
~/Repos/el/gnus/lisp/gnus-group hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-group
~/Repos/el/gnus/lisp/gnus-bcklg hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-bcklg
~/Repos/el/gnus/lisp/gnus-util hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-util
~/Repos/el/gnus/lisp/gnus-sieve hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-sieve
~/Repos/el/gnus/lisp/nndraft hides /home/horn/Repos/el/emacs/lisp/gnus/nndraft
~/Repos/el/gnus/lisp/nnagent hides /home/horn/Repos/el/emacs/lisp/gnus/nnagent
~/Repos/el/gnus/lisp/gnus-spec hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-spec
~/Repos/el/gnus/lisp/gnus-bookmark hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-bookmark
~/Repos/el/gnus/lisp/mml1991 hides /home/horn/Repos/el/emacs/lisp/gnus/mml1991
~/Repos/el/gnus/lisp/rfc2231 hides /home/horn/Repos/el/emacs/lisp/gnus/rfc2231
~/Repos/el/gnus/lisp/yenc hides /home/horn/Repos/el/emacs/lisp/gnus/yenc
~/Repos/el/gnus/lisp/gnus-undo hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-undo
~/Repos/el/gnus/lisp/ecomplete hides /home/horn/Repos/el/emacs/lisp/gnus/ecomplete
~/Repos/el/gnus/lisp/legacy-gnus-agent hides /home/horn/Repos/el/emacs/lisp/gnus/legacy-gnus-agent
~/Repos/el/gnus/lisp/utf7 hides /home/horn/Repos/el/emacs/lisp/gnus/utf7
~/Repos/el/gnus/lisp/rtree hides /home/horn/Repos/el/emacs/lisp/gnus/rtree
~/Repos/el/gnus/lisp/gnus-uu hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-uu
~/Repos/el/gnus/lisp/gnus-ml hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-ml
~/Repos/el/gnus/lisp/sieve hides /home/horn/Repos/el/emacs/lisp/gnus/sieve
~/Repos/el/gnus/lisp/gnus hides /home/horn/Repos/el/emacs/lisp/gnus/gnus
~/Repos/el/gnus/lisp/mml hides /home/horn/Repos/el/emacs/lisp/gnus/mml
~/Repos/el/gnus/lisp/message hides /home/horn/Repos/el/emacs/lisp/gnus/message
~/Repos/el/gnus/lisp/mml-smime hides /home/horn/Repos/el/emacs/lisp/gnus/mml-smime
~/Repos/el/gnus/lisp/gnus-eform hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-eform
~/Repos/el/gnus/lisp/gnus-agent hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-agent
~/Repos/el/gnus/lisp/gnus-logic hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-logic
~/Repos/el/gnus/lisp/mm-extern hides /home/horn/Repos/el/emacs/lisp/gnus/mm-extern
~/Repos/el/gnus/lisp/nndoc hides /home/horn/Repos/el/emacs/lisp/gnus/nndoc
~/Repos/el/gnus/lisp/sieve-manage hides /home/horn/Repos/el/emacs/lisp/gnus/sieve-manage
~/Repos/el/gnus/lisp/mm-decode hides /home/horn/Repos/el/emacs/lisp/gnus/mm-decode
~/Repos/el/gnus/lisp/starttls hides /home/horn/Repos/el/emacs/lisp/gnus/starttls
~/Repos/el/gnus/lisp/gnus-dired hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-dired
~/Repos/el/gnus/lisp/nnbabyl hides /home/horn/Repos/el/emacs/lisp/gnus/nnbabyl
~/Repos/el/gnus/lisp/nnmbox hides /home/horn/Repos/el/emacs/lisp/gnus/nnmbox
~/Repos/el/gnus/lisp/gnus-win hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-win
~/Repos/el/gnus/lisp/gnus-async hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-async
~/Repos/el/gnus/lisp/mm-url hides /home/horn/Repos/el/emacs/lisp/gnus/mm-url
~/Repos/el/gnus/lisp/gnus-html hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-html
~/Repos/el/gnus/lisp/gssapi hides /home/horn/Repos/el/emacs/lisp/gnus/gssapi
~/Repos/el/gnus/lisp/mml2015 hides /home/horn/Repos/el/emacs/lisp/gnus/mml2015
~/Repos/el/gnus/lisp/nnrss hides /home/horn/Repos/el/emacs/lisp/gnus/nnrss
~/Repos/el/gnus/lisp/gnus-mh hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-mh
~/Repos/el/gnus/lisp/gnus-sum hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-sum
~/Repos/el/gnus/lisp/nnweb hides /home/horn/Repos/el/emacs/lisp/gnus/nnweb
~/Repos/el/gnus/lisp/mail-prsvr hides /home/horn/Repos/el/emacs/lisp/gnus/mail-prsvr
~/Repos/el/gnus/lisp/nnmairix hides /home/horn/Repos/el/emacs/lisp/gnus/nnmairix
~/Repos/el/gnus/lisp/plstore hides /home/horn/Repos/el/emacs/lisp/gnus/plstore
~/Repos/el/gnus/lisp/rfc2045 hides /home/horn/Repos/el/emacs/lisp/gnus/rfc2045
~/Repos/el/gnus/lisp/gnus-msg hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-msg
~/Repos/el/gnus/lisp/spam-wash hides /home/horn/Repos/el/emacs/lisp/gnus/spam-wash
~/Repos/el/gnus/lisp/gnus-score hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-score
~/Repos/el/gnus/lisp/mm-uu hides /home/horn/Repos/el/emacs/lisp/gnus/mm-uu
~/Repos/el/gnus/lisp/spam hides /home/horn/Repos/el/emacs/lisp/gnus/spam
~/Repos/el/gnus/lisp/mm-view hides /home/horn/Repos/el/emacs/lisp/gnus/mm-view
~/Repos/el/gnus/lisp/sieve-mode hides /home/horn/Repos/el/emacs/lisp/gnus/sieve-mode
~/Repos/el/gnus/lisp/html2text hides /home/horn/Repos/el/emacs/lisp/gnus/html2text
~/Repos/el/gnus/lisp/gnus-ems hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-ems
~/Repos/el/gnus/lisp/registry hides /home/horn/Repos/el/emacs/lisp/gnus/registry
~/Repos/el/gnus/lisp/auth-source hides /home/horn/Repos/el/emacs/lisp/gnus/auth-source
~/Repos/el/gnus/lisp/gravatar hides /home/horn/Repos/el/emacs/lisp/gnus/gravatar
~/Repos/el/gnus/lisp/flow-fill hides /home/horn/Repos/el/emacs/lisp/gnus/flow-fill
~/Repos/el/gnus/lisp/gmm-utils hides /home/horn/Repos/el/emacs/lisp/gnus/gmm-utils
~/Repos/el/gnus/lisp/mailcap hides /home/horn/Repos/el/emacs/lisp/gnus/mailcap
~/Repos/el/gnus/lisp/gnus-delay hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-delay
~/Repos/el/gnus/lisp/mm-bodies hides /home/horn/Repos/el/emacs/lisp/gnus/mm-bodies
~/Repos/el/gnus/lisp/mm-archive hides /home/horn/Repos/el/emacs/lisp/gnus/mm-archive
~/Repos/el/gnus/lisp/rfc1843 hides /home/horn/Repos/el/emacs/lisp/gnus/rfc1843
~/Repos/el/gnus/lisp/gnus-kill hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-kill
~/Repos/el/gnus/lisp/qp hides /home/horn/Repos/el/emacs/lisp/gnus/qp
~/Repos/el/gnus/lisp/score-mode hides /home/horn/Repos/el/emacs/lisp/gnus/score-mode
~/Repos/el/gnus/lisp/gnus-topic hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-topic
~/Repos/el/gnus/lisp/gnus-cache hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-cache
~/Repos/el/gnus/lisp/nnmail hides /home/horn/Repos/el/emacs/lisp/gnus/nnmail
~/Repos/el/gnus/lisp/gnus-vm hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-vm
~/Repos/el/gnus/lisp/gnus-sync hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-sync
~/Repos/el/gnus/lisp/nnoo hides /home/horn/Repos/el/emacs/lisp/gnus/nnoo
~/Repos/el/gnus/lisp/nnregistry hides /home/horn/Repos/el/emacs/lisp/gnus/nnregistry
~/Repos/el/gnus/lisp/gnus-dup hides /home/horn/Repos/el/emacs/lisp/gnus/gnus-dup
~/Repos/el/gnus/lisp/parse-time hides /home/horn/Repos/el/emacs/lisp/calendar/parse-time
~/Repos/el/gnus/lisp/time-date hides /home/horn/Repos/el/emacs/lisp/calendar/time-date

Features:
(shadow emacsbug sendmail eieio-opt speedbar sb-image ezimage dframe
url-http url-gw url-auth sort smiley gnus-cite gnus-bcklg gnus-async qp
gnus-ml hl-line nndraft nnmh rot13 utf-7 gnutls network-stream nsm
starttls nnml nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual
gnus-cache gnus-demon nntp spam spam-stat gnus-uu yenc gnus-msg
gnus-gravatar mail-extr gravatar gnus-topic nnir gnus-registry registry
eieio-compat eieio-base th-private misearch multi-isearch smerge-mode
cc-mode-expansions cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs term/xterm xterm smex ido sh-script
smie executable texmathp vc vc-dispatcher vc-git diff-mode preview
prv-emacs auto-dictionary flyspell ispell tex-buf reftex-dcr reftex-auc
reftex reftex-vars font-latex latex-mode-expansions latex tex-style tex
dbus crm tex-mode latexenc colir color company-files company-oddmuse
company-keywords company-etags company-gtags company-dabbrev-code
company-dabbrev company-capf company-cmake company-xcode company-clang
company-semantic company-eclim company-template company-css company-nxml
company-bbdb company stratego-mode greql-mode tg-mode generic
preview-latex tex-site auto-loads cider tramp-sh cider-debug
cider-browse-ns cider-inspector cider-mode cider-resolve
cider-interaction arc-mode archive-mode cider-overlays cider-test
cider-stacktrace cider-repl cider-doc org-table the-org-mode-expansions
org org-macro org-footnote org-pcomplete org-list org-faces org-entities
org-version ob-emacs-lisp ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-src ob-keys ob-comint ob-core ob-eval org-compat org-macs
org-loaddefs cal-menu calendar cal-loaddefs cider-grimoire cider-popup
cider-eldoc cider-client cider-common cider-util nrepl-client tramp
tramp-compat tramp-loaddefs trampver shell pcomplete queue ewoc
cider-compat spinner clojure-mode-expansions clojure-mode paredit
aggressive-indent epa-file epa epg rdictcc google-contacts-message
google-contacts xml url-cache google-oauth google-contacts-gnus 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 tls utf7 netrc nnoo
parse-time gnus-spec gnus-int gnus-range gnus-win gnus gnus-ems
gnus-compat url url-proxy url-privacy url-expand url-methods url-history
url-cookie url-domsuf url-util url-parse auth-source password-cache
url-vars mailcap nnheader gnus-util dired-x em-term term ehelp esh-opt
esh-ext esh-util highlight-symbol boxquote rect ecomplete message rfc822
mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047
rfc2045 ietf-drums mm-util help-fns mail-prsvr mailabbrev mail-utils
gmm-utils mailheader server yasnippet disp-table noutline outline
pdf-occur ibuf-ext ibuffer tablist tablist-filter semantic/wisent/comp
semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util
semantic semantic/tag semantic/lex semantic/fw mode-local find-func
cedet dired pdf-isearch let-alist pdf-misc imenu pdf-tools compile
comint ansi-color cus-edit cus-start cus-load pdf-view bookmark pp
jka-compr pdf-cache pdf-info tq pdf-util format-spec image-mode
browse-kill-ring derived recentf tree-widget wid-edit expand-region
text-mode-expansions er-basic-expansions thingatpt expand-region-core
expand-region-custom beacon seq highlight-parentheses cl iedit iedit-lib
hydra lv counsel etags xref project eieio byte-opt bytecomp byte-compile
cl-extra help-mode cconv eieio-core swiper cap-words superword subword
saveplace savehist paren ivy delsel icomplete mb-depth ace-window
easy-mmode cl-macs gv avy ring smart-mode-line-respectful-theme
smart-mode-line-light-theme cl-seq smart-mode-line rich-minority rx bs
windmove elec-pair edmacro kmacro cl-loaddefs cl-lib gnus-load subr-x
pcase tsdh-light-theme finder-inf memory-usage-autoloads advice info
package easymenu epg-config time-date mule-util tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment elisp-mode lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core 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 charscript case-table epa-hook jka-cmpr-hook help
simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces
cus-face macroexp files text-properties overlay sha1 md5 base64 format
env code-pages mule custom widget hashtable-print-readable backquote
dbusbind inotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 719957 57847)
 (symbols 48 60618 16)
 (miscs 40 16752 12116)
 (strings 32 171352 15640)
 (string-bytes 1 5672348)
 (vectors 16 64843)
 (vector-slots 8 1805534 154753)
 (floats 8 998 731)
 (intervals 56 3282 1166)
 (buffers 976 41)
 (heap 1024 94258 9479))





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-24  7:42 bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook Tassilo Horn
@ 2015-10-24  8:02 ` Eli Zaretskii
  2015-10-24  8:53   ` Tassilo Horn
  0 siblings, 1 reply; 28+ messages in thread
From: Eli Zaretskii @ 2015-10-24  8:02 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: 21747

> From: Tassilo Horn <tsdh@gnu.org>
> Date: Sat, 24 Oct 2015 09:42:36 +0200
> 
> With emacs -Q, evaluate the following in *stratch*:
> 
> --8<---------------cut here---------------start------------->8---
> (defun th/loop-on-no-input ()
>   (while-no-input (while t t)))
> 
> (add-hook 'post-command-hook #'th/loop-on-no-input)
> --8<---------------cut here---------------end--------------->8---
> 
> After having done that, the effect of pressing any key is deferred until
> you press the next key.  E.g., typing "foo" just inserts "fo", but after
> an additional C-b (the exact key doesn't matter) you'll see "foo".

I think what's deferred is redisplay, not the effect of pressing a
key.  IOW, the key does its thing, the character is inserted into the
current buffer, but redisplay doesn't run, and so you don't see that
inserted character, and think it was not inserted in the first place.

Given that, maybe I'm missing something, but what did you expect?  The
above literally says that Emacs shall loop indefinitely after
performing each command until there's more input.  And that's what you
get.  Right?

If I change the hook function to this:

 (defun th/loop-on-no-input ()
   (while-no-input (while t (sit-for 0))))

then the "delay" goes away (although I still don't recommend such
virulent post-command hooks, as they make an otherwise idle Emacs suck
all the juice out of a single execution unit).

Am I missing something here?





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-24  8:02 ` Eli Zaretskii
@ 2015-10-24  8:53   ` Tassilo Horn
  2015-10-24  9:14     ` Eli Zaretskii
  0 siblings, 1 reply; 28+ messages in thread
From: Tassilo Horn @ 2015-10-24  8:53 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 21747

Eli Zaretskii <eliz@gnu.org> writes:

>> With emacs -Q, evaluate the following in *stratch*:
>> 
>> --8<---------------cut here---------------start------------->8---
>> (defun th/loop-on-no-input ()
>>   (while-no-input (while t t)))
>> 
>> (add-hook 'post-command-hook #'th/loop-on-no-input)
>> --8<---------------cut here---------------end--------------->8---
>> 
>> After having done that, the effect of pressing any key is deferred
>> until you press the next key.  E.g., typing "foo" just inserts "fo",
>> but after an additional C-b (the exact key doesn't matter) you'll see
>> "foo".
>
> I think what's deferred is redisplay, not the effect of pressing a
> key.  IOW, the key does its thing, the character is inserted into the
> current buffer, but redisplay doesn't run, and so you don't see that
> inserted character, and think it was not inserted in the first place.

Yes, you are right.

> Given that, maybe I'm missing something, but what did you expect?  The
> above literally says that Emacs shall loop indefinitely after
> performing each command until there's more input.  And that's what you
> get.  Right?

Correct, but when the input eventually arrives, I expect to see its
effects as if it had arrived outside of the `while-no-input'.

> If I change the hook function to this:
>
>  (defun th/loop-on-no-input ()
>    (while-no-input (while t (sit-for 0))))
>
> then the "delay" goes away

Indeed, that works.

> (although I still don't recommend such virulent post-command hooks, as
> they make an otherwise idle Emacs suck all the juice out of a single
> execution unit).
>
> Am I missing something here?

Obviously, `aggressive-indent-mode's `post-command-hook' is no infinite
loop but just a reasonably costly operation which should have the
ability to be aborted when the user keeps on typing:

  https://github.com/Malabarba/aggressive-indent-mode/blob/master/aggressive-indent.el#L357

So the question is: should `while-no-input' call (sit-for 0) as the
first statement in the `progn' or should functions using
`while-no-input' do that on their own?  I'd prefer the former because
the current behavior is not really obvious (at least not to me nor
Artur).

Bye,
Tassilo





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-24  8:53   ` Tassilo Horn
@ 2015-10-24  9:14     ` Eli Zaretskii
  2015-10-24  9:49       ` Tassilo Horn
  0 siblings, 1 reply; 28+ messages in thread
From: Eli Zaretskii @ 2015-10-24  9:14 UTC (permalink / raw)
  To: Tassilo Horn, Stefan Monnier; +Cc: 21747

> From: Tassilo Horn <tsdh@gnu.org>
> Cc: 21747@debbugs.gnu.org
> Date: Sat, 24 Oct 2015 10:53:12 +0200
> 
> > Given that, maybe I'm missing something, but what did you expect?  The
> > above literally says that Emacs shall loop indefinitely after
> > performing each command until there's more input.  And that's what you
> > get.  Right?
> 
> Correct, but when the input eventually arrives, I expect to see its
> effects as if it had arrived outside of the `while-no-input'.

That effect was not yet produced, because the arriving input was not
yet consumed by the time while-no-input returns, that input is still
"pending".  For it to be consumed and acted upon, you need another
crank of the Emacs main loop and another redisplay cycle (which is
again delayed by the while-no-input loop).  So the one-character delay
goes on forever.

> So the question is: should `while-no-input' call (sit-for 0) as the
> first statement in the `progn' or should functions using
> `while-no-input' do that on their own?  I'd prefer the former because
> the current behavior is not really obvious (at least not to me nor
> Artur).

I don't have enough experience in using while-no-input to answer that.
Perhaps others could chime in and voice their opinions.  Maybe we
should have a discussion on emacs-devel about this (because many
people who read emacs-devel don't read the bug list).





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-24  9:14     ` Eli Zaretskii
@ 2015-10-24  9:49       ` Tassilo Horn
  2015-10-24 10:30         ` Artur Malabarba
  2015-10-24 10:35         ` Eli Zaretskii
  0 siblings, 2 replies; 28+ messages in thread
From: Tassilo Horn @ 2015-10-24  9:49 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Stefan Monnier, 21747, Kim F. Storm

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Tassilo Horn <tsdh@gnu.org>
>> Cc: 21747@debbugs.gnu.org
>> Date: Sat, 24 Oct 2015 10:53:12 +0200
>> 
>> > Given that, maybe I'm missing something, but what did you expect?  The
>> > above literally says that Emacs shall loop indefinitely after
>> > performing each command until there's more input.  And that's what you
>> > get.  Right?
>> 
>> Correct, but when the input eventually arrives, I expect to see its
>> effects as if it had arrived outside of the `while-no-input'.
>
> That effect was not yet produced, because the arriving input was not
> yet consumed by the time while-no-input returns, that input is still
> "pending".  For it to be consumed and acted upon, you need another
> crank of the Emacs main loop and another redisplay cycle (which is
> again delayed by the while-no-input loop).  So the one-character delay
> goes on forever.

Ah, ok.  I changed `while-no-input' locally to

(defmacro while-no-input (&rest body)
  "Execute BODY only as long as there's no pending input.
If input arrives, that ends the execution of BODY,
and `while-no-input' returns t.  Quitting makes it return nil.
If BODY finishes, `while-no-input' returns whatever value BODY produced."
  (declare (debug t) (indent 0))
  (let ((catch-sym (make-symbol "input")))
    `(with-local-quit
       (catch ',catch-sym
	 (let ((throw-on-input ',catch-sym))
	   (or (input-pending-p)
	       (progn
		 (sit-for 0)   ;; <== just inserted that
		 ,@body)))))))

which seems to fix the issue somehow.  With your description, what I
think it does is that it forces the display of the effects of the
command which has interrupted the `while-no-input' in the previous
cycle.

>> So the question is: should `while-no-input' call (sit-for 0) as the
>> first statement in the `progn' or should functions using
>> `while-no-input' do that on their own?  I'd prefer the former because
>> the current behavior is not really obvious (at least not to me nor
>> Artur).
>
> I don't have enough experience in using while-no-input to answer that.
> Perhaps others could chime in and voice their opinions.  Maybe we
> should have a discussion on emacs-devel about this (because many
> people who read emacs-devel don't read the bug list).

Yes, I think that would be a good idea.  Originally, `while-no-input'
used (not (sit-for 0 0 t)) instead of (input-pending-p) which I think is
pretty equivalent except that the former forces a redisplay.  I've added
Kim to the Cc, so maybe he can speak up.

--8<---------------cut here---------------start------------->8---
commit 790e0ef78e306edc0664b8fa5a584c62ec01b444
Author: Kim F. Storm <storm@cua.dk>
Date:   Mon Sep 11 22:21:55 2006 +0000

    (sit-for): Rework to use input-pending-p and cond.
    Return nil input is pending on entry also for SECONDS <= 0.
    (while-no-input): Use input-pending-p instead of sit-for.

diff --git a/lisp/subr.el b/lisp/subr.el
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -2391,13 +2394,13 @@
 (defmacro while-no-input (&rest body)
   "Execute BODY only as long as there's no pending input.
 If input arrives, that ends the execution of BODY,
 and `while-no-input' returns t.  Quitting makes it return nil.
 If BODY finishes, `while-no-input' returns whatever value BODY produced."
   (declare (debug t) (indent 0))
   (let ((catch-sym (make-symbol "input")))
     `(with-local-quit
        (catch ',catch-sym
 	 (let ((throw-on-input ',catch-sym))
-	   (or (not (sit-for 0 0 t))
-	     ,@body))))))
+	   (or (input-pending-p)
+	       ,@body))))))
--8<---------------cut here---------------end--------------->8---





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-24  9:49       ` Tassilo Horn
@ 2015-10-24 10:30         ` Artur Malabarba
  2015-10-24 10:52           ` Eli Zaretskii
  2015-10-24 10:35         ` Eli Zaretskii
  1 sibling, 1 reply; 28+ messages in thread
From: Artur Malabarba @ 2015-10-24 10:30 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: Stefan Monnier, 21747, Kim Storm

[-- Attachment #1: Type: text/plain, Size: 1322 bytes --]

On 24 Oct 2015 10:49 am, "Tassilo Horn" <tsdh@gnu.org> wrote:> >> So the
question is: should `while-no-input' call (sit-for 0) as the
> >> first statement in the `progn' or should functions using
> >> `while-no-input' do that on their own?  I'd prefer the former because
> >> the current behavior is not really obvious (at least not to me nor
> >> Artur).
> >
> > I don't have enough experience in using while-no-input to answer that.
> > Perhaps others could chime in and voice their opinions.  Maybe we
> > should have a discussion on emacs-devel about this (because many
> > people who read emacs-devel don't read the bug list).
>
> Yes, I think that would be a good idea.  Originally, `while-no-input'
> used (not (sit-for 0 0 t)) instead of (input-pending-p) which I think is
> pretty equivalent except that the former forces a redisplay.

Reading this discussion, it sounds to me like this is more about
post-command-hook than while-no-input.
By the time this code is run, the user's input has been received and
processed. The reason why redisplay doesn't happen is the fact that this
code is running on post-command-hook.

So maybe the docstring for post-command-hook should point out this detail
and recommend that functions added to this hook call sit-for if they're
going to do potentially expensive processing.

[-- Attachment #2: Type: text/html, Size: 1636 bytes --]

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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-24  9:49       ` Tassilo Horn
  2015-10-24 10:30         ` Artur Malabarba
@ 2015-10-24 10:35         ` Eli Zaretskii
  1 sibling, 0 replies; 28+ messages in thread
From: Eli Zaretskii @ 2015-10-24 10:35 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: monnier, 21747, storm

> From: Tassilo Horn <tsdh@gnu.org>
> Cc: Stefan Monnier <monnier@iro.umontreal.ca>,  21747@debbugs.gnu.org, Kim F. Storm <storm@cua.dk>
> Date: Sat, 24 Oct 2015 11:49:01 +0200
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> From: Tassilo Horn <tsdh@gnu.org>
> >> Cc: 21747@debbugs.gnu.org
> >> Date: Sat, 24 Oct 2015 10:53:12 +0200
> >> 
> >> > Given that, maybe I'm missing something, but what did you expect?  The
> >> > above literally says that Emacs shall loop indefinitely after
> >> > performing each command until there's more input.  And that's what you
> >> > get.  Right?
> >> 
> >> Correct, but when the input eventually arrives, I expect to see its
> >> effects as if it had arrived outside of the `while-no-input'.
> >
> > That effect was not yet produced, because the arriving input was not
> > yet consumed by the time while-no-input returns, that input is still
> > "pending".  For it to be consumed and acted upon, you need another
> > crank of the Emacs main loop and another redisplay cycle (which is
> > again delayed by the while-no-input loop).  So the one-character delay
> > goes on forever.
> 
> Ah, ok.  I changed `while-no-input' locally to
> 
> (defmacro while-no-input (&rest body)
>   "Execute BODY only as long as there's no pending input.
> If input arrives, that ends the execution of BODY,
> and `while-no-input' returns t.  Quitting makes it return nil.
> If BODY finishes, `while-no-input' returns whatever value BODY produced."
>   (declare (debug t) (indent 0))
>   (let ((catch-sym (make-symbol "input")))
>     `(with-local-quit
>        (catch ',catch-sym
> 	 (let ((throw-on-input ',catch-sym))
> 	   (or (input-pending-p)
> 	       (progn
> 		 (sit-for 0)   ;; <== just inserted that
> 		 ,@body)))))))
> 
> which seems to fix the issue somehow.  With your description, what I
> think it does is that it forces the display of the effects of the
> command which has interrupted the `while-no-input' in the previous
> cycle.

More accurately, it invokes redisplay without waiting for more input
to arrive.

> >> So the question is: should `while-no-input' call (sit-for 0) as the
> >> first statement in the `progn' or should functions using
> >> `while-no-input' do that on their own?  I'd prefer the former because
> >> the current behavior is not really obvious (at least not to me nor
> >> Artur).
> >
> > I don't have enough experience in using while-no-input to answer that.
> > Perhaps others could chime in and voice their opinions.  Maybe we
> > should have a discussion on emacs-devel about this (because many
> > people who read emacs-devel don't read the bug list).
> 
> Yes, I think that would be a good idea.  Originally, `while-no-input'
> used (not (sit-for 0 0 t)) instead of (input-pending-p) which I think is
> pretty equivalent except that the former forces a redisplay.  I've added
> Kim to the Cc, so maybe he can speak up.
> 
> --8<---------------cut here---------------start------------->8---
> commit 790e0ef78e306edc0664b8fa5a584c62ec01b444
> Author: Kim F. Storm <storm@cua.dk>
> Date:   Mon Sep 11 22:21:55 2006 +0000
> 
>     (sit-for): Rework to use input-pending-p and cond.
>     Return nil input is pending on entry also for SECONDS <= 0.
>     (while-no-input): Use input-pending-p instead of sit-for.

This discussion on emacs-devel might be relevant (I think it was the
motivation for this change):

  http://lists.gnu.org/archive/html/emacs-devel/2006-09/msg00300.html





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-24 10:30         ` Artur Malabarba
@ 2015-10-24 10:52           ` Eli Zaretskii
  2015-10-24 12:13             ` Tassilo Horn
  2015-10-25 14:43             ` Artur Malabarba
  0 siblings, 2 replies; 28+ messages in thread
From: Eli Zaretskii @ 2015-10-24 10:52 UTC (permalink / raw)
  To: bruce.connor.am; +Cc: tsdh, monnier, 21747, storm

> Date: Sat, 24 Oct 2015 11:30:42 +0100
> From: Artur Malabarba <bruce.connor.am@gmail.com>
> Cc: Stefan Monnier <monnier@iro.umontreal.ca>, Kim Storm <storm@cua.dk>, 21747@debbugs.gnu.org, 
> 	Eli Zaretskii <eliz@gnu.org>
> 
> So maybe the docstring for post-command-hook should point out this detail and
> recommend that functions added to this hook call sit-for if they're going to do
> potentially expensive processing. 

Just being potentially expensive is not enough to trigger the problem.
You need to actually hog Emacs (or close to that) to prevent redisplay
from eventually happening.

I agree that expensive processing in post-command-hook is not a good
idea (and said so several times in the past), but people are still
doing that, so I guess just advertising the problem is not enough.  (I
don't object to adding this to documentation, of course.)





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-24 10:52           ` Eli Zaretskii
@ 2015-10-24 12:13             ` Tassilo Horn
  2015-10-24 12:45               ` Eli Zaretskii
  2015-10-24 12:46               ` Tassilo Horn
  2015-10-25 14:43             ` Artur Malabarba
  1 sibling, 2 replies; 28+ messages in thread
From: Tassilo Horn @ 2015-10-24 12:13 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: storm, monnier, 21747, bruce.connor.am

Eli Zaretskii <eliz@gnu.org> writes:

>> So maybe the docstring for post-command-hook should point out this
>> detail and recommend that functions added to this hook call sit-for
>> if they're going to do potentially expensive processing.
>
> Just being potentially expensive is not enough to trigger the problem.
> You need to actually hog Emacs (or close to that) to prevent redisplay
> from eventually happening.
>
> I agree that expensive processing in post-command-hook is not a good
> idea (and said so several times in the past), but people are still
> doing that, so I guess just advertising the problem is not enough.  (I
> don't object to adding this to documentation, of course.)

Actually, the `post-command-hook' function in question
(aggressive-indent--indent-if-changed) is not so overly expensive.  At
least I have validated that it has finished running I type the next key,
thus the abort-on-input case doesn't even occur.

My recipe for reproduction is

  1. emacs -Q
  2. M-x package-initialize
  3. M-x global-aggressive-indent-mode
  4. C-x C-f ~/test.sh
  5. type the keyword if where the i is displayed immediately
     and the display of f is delayed

This does only occur for sh-mode keywords like if, while, etc. where the
delaying starts with after entering the last char of the keyword.  Also,
I can reproduce that problem only if test.sh doesn't exist.

So it seems the problem has at least different facettes and the
abort-on-input is just one of these.

Or well, I just tried what happens when I replace the `while-no-input'
with a `progn'.  Then Emacs goes into some infloop.  Attaching with gdb
shows:

--8<---------------cut here---------------start------------->8---
(gdb) xbacktrace 
"sh-smie--default-backward-token" (0xbbb172f8)
"sh-smie-sh-backward-token" (0xbbb174a8)
"sh-smie--newline-semi-p" (0xbbb17650)
0x1a8cf58 PVEC_COMPILED
"smie-next-sexp" (0xbbb17a38)
"smie-forward-sexp" (0xbbb17c08)
"smie-forward-sexp-command" (0xbbb17dc8)
"forward-sexp" (0xbbb17f70)
0x11b4050 PVEC_COMPILED
"end-of-defun" (0xbbb182d0)
"aggressive-indent-indent-region-and-on" (0xbbb18480)
"aggressive-indent--softly-indent-region-and-on" (0xbbb18618)
"apply" (0xbbb186a0)
"while" (0xbbb18808)
"let" (0xbbb18968)
"progn" (0xbbb18a28)
"if" (0xbbb18af8)
"progn" (0xbbb18bb8)
"if" (0xbbb18c78)
"aggressive-indent--indent-if-changed" (0xbbb18db0)
--8<---------------cut here---------------end--------------->8---

and

--8<---------------cut here---------------start------------->8---
(gdb) bt full
#0  0x000000000057bc4f in exec_byte_code (bytestr=<optimized out>, vector=27914621, 
    maxdepth=<optimized out>, args_template=args_template@entry=2, nargs=nargs@entry=0, 
    args=<optimized out>, args@entry=0x7ffebbb172f8) at bytecode.c:1975
        targets = {0x57b9e8 <exec_byte_code+11312>, 0x57ba2b <exec_byte_code+11379>, 
          0x57ba2d <exec_byte_code+11381>, 0x57ba2f <exec_byte_code+11383>, 
          0x57ba31 <exec_byte_code+11385>, 0x57ba31 <exec_byte_code+11385>, 
          0x57ba6f <exec_byte_code+11447>, 0x57babc <exec_byte_code+11524>, 
          0x579095 <exec_byte_code+733>, 0x579097 <exec_byte_code+735>, 
          0x579099 <exec_byte_code+737>, 0x57909b <exec_byte_code+739>, 
          0x57909d <exec_byte_code+741>, 0x57909d <exec_byte_code+741>, 
          0x5790a2 <exec_byte_code+746>, 0x579071 <exec_byte_code+697>, 
          0x579332 <exec_byte_code+1402>, 0x579334 <exec_byte_code+1404>, 
          0x579336 <exec_byte_code+1406>, 0x579338 <exec_byte_code+1408>, 
          0x57933a <exec_byte_code+1410>, 0x57933a <exec_byte_code+1410>, 
          0x579361 <exec_byte_code+1449>, 0x57933f <exec_byte_code+1415>, 
          0x579443 <exec_byte_code+1675>, 0x579445 <exec_byte_code+1677>, 
          0x579447 <exec_byte_code+1679>, 0x579449 <exec_byte_code+1681>, 
          0x57944b <exec_byte_code+1683>, 0x57944b <exec_byte_code+1683>, 
          0x579410 <exec_byte_code+1624>, 0x579421 <exec_byte_code+1641>, 
          0x5794c2 <exec_byte_code+1802>, 0x5794c4 <exec_byte_code+1804>, 
          0x5794c6 <exec_byte_code+1806>, 0x5794c8 <exec_byte_code+1808>, 
          0x5794ca <exec_byte_code+1810>, 0x5794ca <exec_byte_code+1810>, 
          0x57948f <exec_byte_code+1751>, 0x5794a0 <exec_byte_code+1768>, 
          0x579542 <exec_byte_code+1930>, 0x579544 <exec_byte_code+1932>, 
          0x579546 <exec_byte_code+1934>, 0x579548 <exec_byte_code+1936>, 
          0x57954a <exec_byte_code+1938>, 0x57954a <exec_byte_code+1938>, 
          0x57950f <exec_byte_code+1879>, 0x579520 <exec_byte_code+1896>, 
          0x57a062 <exec_byte_code+4778>, 0x579f17 <exec_byte_code+4447>, 
          0x579f0f <exec_byte_code+4439>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57a1d6 <exec_byte_code+5150>, 0x57a272 <exec_byte_code+5306>, 
          0x57a2ad <exec_byte_code+5365>, 0x57a2f5 <exec_byte_code+5437>, 
          0x57a33d <exec_byte_code+5509>, 0x579254 <exec_byte_code+1180>, 
          0x57929b <exec_byte_code+1251>, 0x57a38c <exec_byte_code+5588>, 
          0x5791fb <exec_byte_code+1091>, 0x5792d9 <exec_byte_code+1313>, 
          0x57a3c8 <exec_byte_code+5648>, 0x57a406 <exec_byte_code+5710>, 
          0x57a434 <exec_byte_code+5756>, 0x57a472 <exec_byte_code+5818>, 
          0x57a4aa <exec_byte_code+5874>, 0x57a531 <exec_byte_code+6009>, 
          0x57a55f <exec_byte_code+6055>, 0x57a59d <exec_byte_code+6117>, 
          0x57a5df <exec_byte_code+6183>, 0x57a60d <exec_byte_code+6229>, 
          0x57a63b <exec_byte_code+6275>, 0x57a679 <exec_byte_code+6337>, 
          0x57a6b7 <exec_byte_code+6399>, 0x57a6f5 <exec_byte_code+6461>, 
          0x57a737 <exec_byte_code+6527>, 0x57a76f <exec_byte_code+6583>, 
          0x57a7a7 <exec_byte_code+6639>, 0x57a82e <exec_byte_code+6774>, 
          0x57a87b <exec_byte_code+6851>, 0x57a8c8 <exec_byte_code+6928>, 
          0x57aa63 <exec_byte_code+7339>, 0x57aaa6 <exec_byte_code+7406>, 
          0x57aae9 <exec_byte_code+7473>, 0x57ab2c <exec_byte_code+7540>, 
          0x57ab6f <exec_byte_code+7607>, 0x57aba7 <exec_byte_code+7663>, 
          0x57abff <exec_byte_code+7751>, 0x57ac37 <exec_byte_code+7807>, 
---Type <return> to continue, or q <return> to quit---
          0x57ac6f <exec_byte_code+7863>, 0x57aca7 <exec_byte_code+7919>, 
          0x57ad55 <exec_byte_code+8093>, 0x579e08 <exec_byte_code+4176>, 
          0x57ad96 <exec_byte_code+8158>, 0x57adc4 <exec_byte_code+8204>, 
          0x57ae46 <exec_byte_code+8334>, 0x57ae87 <exec_byte_code+8399>, 
          0x57aec8 <exec_byte_code+8464>, 0x57aef6 <exec_byte_code+8510>, 
          0x57af26 <exec_byte_code+8558>, 0x57af56 <exec_byte_code+8606>, 
          0x57af8e <exec_byte_code+8662>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57afc1 <exec_byte_code+8713>, 0x57aff1 <exec_byte_code+8761>, 
          0x57b021 <exec_byte_code+8809>, 0x57b051 <exec_byte_code+8857>, 
          0x57b081 <exec_byte_code+8905>, 0x57b0b1 <exec_byte_code+8953>, 
          0x579e08 <exec_byte_code+4176>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b0df <exec_byte_code+8999>, 0x57b121 <exec_byte_code+9065>, 
          0x57b14f <exec_byte_code+9111>, 0x57b17d <exec_byte_code+9157>, 
          0x57b1bb <exec_byte_code+9219>, 0x57b1f9 <exec_byte_code+9281>, 
          0x57b227 <exec_byte_code+9327>, 0x57b374 <exec_byte_code+9660>, 
          0x57b3b2 <exec_byte_code+9722>, 0x57b3f0 <exec_byte_code+9784>, 
          0x57b42e <exec_byte_code+9846>, 0x57b45e <exec_byte_code+9894>, 
          0x57b9e8 <exec_byte_code+11312>, 0x579d85 <exec_byte_code+4045>, 
          0x5795bb <exec_byte_code+2051>, 0x579113 <exec_byte_code+859>, 
          0x579685 <exec_byte_code+2253>, 0x57976d <exec_byte_code+2485>, 
          0x579851 <exec_byte_code+2713>, 0x579d27 <exec_byte_code+3951>, 
          0x579d61 <exec_byte_code+4009>, 0x5793df <exec_byte_code+1575>, 
          0x579dd7 <exec_byte_code+4127>, 0x579e39 <exec_byte_code+4225>, 
          0x579e9b <exec_byte_code+4323>, 0x579ecc <exec_byte_code+4372>, 
          0x57a093 <exec_byte_code+4827>, 0x57a0e5 <exec_byte_code+4909>, 
          0x57a127 <exec_byte_code+4975>, 0x57a178 <exec_byte_code+5056>, 
          0x57958e <exec_byte_code+2006>, 0x57b48c <exec_byte_code+9940>, 
          0x57b4ce <exec_byte_code+10006>, 0x57b4fc <exec_byte_code+10052>, 
          0x57b52a <exec_byte_code+10098>, 0x57b558 <exec_byte_code+10144>, 
          0x57b586 <exec_byte_code+10190>, 0x57b5c4 <exec_byte_code+10252>, 
          0x57b602 <exec_byte_code+10314>, 0x57b640 <exec_byte_code+10376>, 
          0x57b67e <exec_byte_code+10438>, 0x57b756 <exec_byte_code+10654>, 
          0x57b794 <exec_byte_code+10716>, 0x57b7d2 <exec_byte_code+10778>, 
          0x57b800 <exec_byte_code+10824>, 0x57b83e <exec_byte_code+10886>, 
          0x57b87c <exec_byte_code+10948>, 0x57b8be <exec_byte_code+11014>, 
          0x57b900 <exec_byte_code+11080>, 0x57acdf <exec_byte_code+7975>, 
          0x57ad17 <exec_byte_code+8031>, 0x57b938 <exec_byte_code+11136>, 
          0x57b99a <exec_byte_code+11234>, 0x57b9e8 <exec_byte_code+11312>, 
          0x579935 <exec_byte_code+2941>, 0x5799e5 <exec_byte_code+3117>, 
          0x579ab3 <exec_byte_code+3323>, 0x579b81 <exec_byte_code+3529>, 
          0x579c54 <exec_byte_code+3740>, 0x57a4e2 <exec_byte_code+5930>, 
          0x57a7df <exec_byte_code+6695>, 0x57adf7 <exec_byte_code+8255>, 
          0x57bb1c <exec_byte_code+11620>, 0x57bb6c <exec_byte_code+11700>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bbcf <exec_byte_code+11799>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bc25 <exec_byte_code+11885> <repeats 64 times>}
---Type <return> to continue, or q <return> to quit---
        count = 39
        op = 197
        vectorp = 0x1a9f180
        stack = {
          pc = 0x203cb6b "!\303U\203-", 
          byte_string = 32466612, 
          byte_string_start = 0x203cb38 "\300`[!\210`\301\302!\211\303U\204-", 
          next = 0x7ffebbb17360
        }
        top = 0x7ffebbb17148
        result = <optimized out>
        type = <optimized out>
#1  0x0000000000549b2e in funcall_lambda (fun=20638501, nargs=nargs@entry=0, 
    arg_vector=arg_vector@entry=0x7ffebbb172f8) at eval.c:2810
        val = <optimized out>
        syms_left = <optimized out>
        lexenv = <optimized out>
        i = <optimized out>
        optional = <optimized out>
        rest = <optimized out>
#2  0x000000000054a059 in Ffuncall (nargs=1, args=args@entry=0x7ffebbb172f0) at eval.c:2699
        fun = <optimized out>
        original_fun = 15801488
        numargs = 0
        val = <optimized out>
        internal_args = <optimized out>
        count = 38
#3  0x00000000005794ed in exec_byte_code (bytestr=<optimized out>, vector=20611093, 
    maxdepth=<optimized out>, args_template=args_template@entry=2, nargs=nargs@entry=0, 
    args=<optimized out>, args@entry=0x7ffebbb174a8) at bytecode.c:880
        targets = {0x57b9e8 <exec_byte_code+11312>, 0x57ba2b <exec_byte_code+11379>, 
          0x57ba2d <exec_byte_code+11381>, 0x57ba2f <exec_byte_code+11383>, 
          0x57ba31 <exec_byte_code+11385>, 0x57ba31 <exec_byte_code+11385>, 
          0x57ba6f <exec_byte_code+11447>, 0x57babc <exec_byte_code+11524>, 
          0x579095 <exec_byte_code+733>, 0x579097 <exec_byte_code+735>, 
          0x579099 <exec_byte_code+737>, 0x57909b <exec_byte_code+739>, 
          0x57909d <exec_byte_code+741>, 0x57909d <exec_byte_code+741>, 
          0x5790a2 <exec_byte_code+746>, 0x579071 <exec_byte_code+697>, 
          0x579332 <exec_byte_code+1402>, 0x579334 <exec_byte_code+1404>, 
          0x579336 <exec_byte_code+1406>, 0x579338 <exec_byte_code+1408>, 
          0x57933a <exec_byte_code+1410>, 0x57933a <exec_byte_code+1410>, 
          0x579361 <exec_byte_code+1449>, 0x57933f <exec_byte_code+1415>, 
          0x579443 <exec_byte_code+1675>, 0x579445 <exec_byte_code+1677>, 
          0x579447 <exec_byte_code+1679>, 0x579449 <exec_byte_code+1681>, 
          0x57944b <exec_byte_code+1683>, 0x57944b <exec_byte_code+1683>, 
          0x579410 <exec_byte_code+1624>, 0x579421 <exec_byte_code+1641>, 
          0x5794c2 <exec_byte_code+1802>, 0x5794c4 <exec_byte_code+1804>, 
          0x5794c6 <exec_byte_code+1806>, 0x5794c8 <exec_byte_code+1808>, 
          0x5794ca <exec_byte_code+1810>, 0x5794ca <exec_byte_code+1810>, 
          0x57948f <exec_byte_code+1751>, 0x5794a0 <exec_byte_code+1768>, 
---Type <return> to continue, or q <return> to quit---
          0x579542 <exec_byte_code+1930>, 0x579544 <exec_byte_code+1932>, 
          0x579546 <exec_byte_code+1934>, 0x579548 <exec_byte_code+1936>, 
          0x57954a <exec_byte_code+1938>, 0x57954a <exec_byte_code+1938>, 
          0x57950f <exec_byte_code+1879>, 0x579520 <exec_byte_code+1896>, 
          0x57a062 <exec_byte_code+4778>, 0x579f17 <exec_byte_code+4447>, 
          0x579f0f <exec_byte_code+4439>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57a1d6 <exec_byte_code+5150>, 0x57a272 <exec_byte_code+5306>, 
          0x57a2ad <exec_byte_code+5365>, 0x57a2f5 <exec_byte_code+5437>, 
          0x57a33d <exec_byte_code+5509>, 0x579254 <exec_byte_code+1180>, 
          0x57929b <exec_byte_code+1251>, 0x57a38c <exec_byte_code+5588>, 
          0x5791fb <exec_byte_code+1091>, 0x5792d9 <exec_byte_code+1313>, 
          0x57a3c8 <exec_byte_code+5648>, 0x57a406 <exec_byte_code+5710>, 
          0x57a434 <exec_byte_code+5756>, 0x57a472 <exec_byte_code+5818>, 
          0x57a4aa <exec_byte_code+5874>, 0x57a531 <exec_byte_code+6009>, 
          0x57a55f <exec_byte_code+6055>, 0x57a59d <exec_byte_code+6117>, 
          0x57a5df <exec_byte_code+6183>, 0x57a60d <exec_byte_code+6229>, 
          0x57a63b <exec_byte_code+6275>, 0x57a679 <exec_byte_code+6337>, 
          0x57a6b7 <exec_byte_code+6399>, 0x57a6f5 <exec_byte_code+6461>, 
          0x57a737 <exec_byte_code+6527>, 0x57a76f <exec_byte_code+6583>, 
          0x57a7a7 <exec_byte_code+6639>, 0x57a82e <exec_byte_code+6774>, 
          0x57a87b <exec_byte_code+6851>, 0x57a8c8 <exec_byte_code+6928>, 
          0x57aa63 <exec_byte_code+7339>, 0x57aaa6 <exec_byte_code+7406>, 
          0x57aae9 <exec_byte_code+7473>, 0x57ab2c <exec_byte_code+7540>, 
          0x57ab6f <exec_byte_code+7607>, 0x57aba7 <exec_byte_code+7663>, 
          0x57abff <exec_byte_code+7751>, 0x57ac37 <exec_byte_code+7807>, 
          0x57ac6f <exec_byte_code+7863>, 0x57aca7 <exec_byte_code+7919>, 
          0x57ad55 <exec_byte_code+8093>, 0x579e08 <exec_byte_code+4176>, 
          0x57ad96 <exec_byte_code+8158>, 0x57adc4 <exec_byte_code+8204>, 
          0x57ae46 <exec_byte_code+8334>, 0x57ae87 <exec_byte_code+8399>, 
          0x57aec8 <exec_byte_code+8464>, 0x57aef6 <exec_byte_code+8510>, 
          0x57af26 <exec_byte_code+8558>, 0x57af56 <exec_byte_code+8606>, 
          0x57af8e <exec_byte_code+8662>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57afc1 <exec_byte_code+8713>, 0x57aff1 <exec_byte_code+8761>, 
          0x57b021 <exec_byte_code+8809>, 0x57b051 <exec_byte_code+8857>, 
          0x57b081 <exec_byte_code+8905>, 0x57b0b1 <exec_byte_code+8953>, 
          0x579e08 <exec_byte_code+4176>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b0df <exec_byte_code+8999>, 0x57b121 <exec_byte_code+9065>, 
          0x57b14f <exec_byte_code+9111>, 0x57b17d <exec_byte_code+9157>, 
          0x57b1bb <exec_byte_code+9219>, 0x57b1f9 <exec_byte_code+9281>, 
          0x57b227 <exec_byte_code+9327>, 0x57b374 <exec_byte_code+9660>, 
          0x57b3b2 <exec_byte_code+9722>, 0x57b3f0 <exec_byte_code+9784>, 
          0x57b42e <exec_byte_code+9846>, 0x57b45e <exec_byte_code+9894>, 
          0x57b9e8 <exec_byte_code+11312>, 0x579d85 <exec_byte_code+4045>, 
          0x5795bb <exec_byte_code+2051>, 0x579113 <exec_byte_code+859>, 
          0x579685 <exec_byte_code+2253>, 0x57976d <exec_byte_code+2485>, 
          0x579851 <exec_byte_code+2713>, 0x579d27 <exec_byte_code+3951>, 
          0x579d61 <exec_byte_code+4009>, 0x5793df <exec_byte_code+1575>, 
          0x579dd7 <exec_byte_code+4127>, 0x579e39 <exec_byte_code+4225>, 
---Type <return> to continue, or q <return> to quit---
          0x579e9b <exec_byte_code+4323>, 0x579ecc <exec_byte_code+4372>, 
          0x57a093 <exec_byte_code+4827>, 0x57a0e5 <exec_byte_code+4909>, 
          0x57a127 <exec_byte_code+4975>, 0x57a178 <exec_byte_code+5056>, 
          0x57958e <exec_byte_code+2006>, 0x57b48c <exec_byte_code+9940>, 
          0x57b4ce <exec_byte_code+10006>, 0x57b4fc <exec_byte_code+10052>, 
          0x57b52a <exec_byte_code+10098>, 0x57b558 <exec_byte_code+10144>, 
          0x57b586 <exec_byte_code+10190>, 0x57b5c4 <exec_byte_code+10252>, 
          0x57b602 <exec_byte_code+10314>, 0x57b640 <exec_byte_code+10376>, 
          0x57b67e <exec_byte_code+10438>, 0x57b756 <exec_byte_code+10654>, 
          0x57b794 <exec_byte_code+10716>, 0x57b7d2 <exec_byte_code+10778>, 
          0x57b800 <exec_byte_code+10824>, 0x57b83e <exec_byte_code+10886>, 
          0x57b87c <exec_byte_code+10948>, 0x57b8be <exec_byte_code+11014>, 
          0x57b900 <exec_byte_code+11080>, 0x57acdf <exec_byte_code+7975>, 
          0x57ad17 <exec_byte_code+8031>, 0x57b938 <exec_byte_code+11136>, 
          0x57b99a <exec_byte_code+11234>, 0x57b9e8 <exec_byte_code+11312>, 
          0x579935 <exec_byte_code+2941>, 0x5799e5 <exec_byte_code+3117>, 
          0x579ab3 <exec_byte_code+3323>, 0x579b81 <exec_byte_code+3529>, 
          0x579c54 <exec_byte_code+3740>, 0x57a4e2 <exec_byte_code+5930>, 
          0x57a7df <exec_byte_code+6695>, 0x57adf7 <exec_byte_code+8255>, 
          0x57bb1c <exec_byte_code+11620>, 0x57bb6c <exec_byte_code+11700>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bbcf <exec_byte_code+11799>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bc25 <exec_byte_code+11885> <repeats 64 times>}
        count = 38
        op = <optimized out>
        vectorp = 0x13a8018
        stack = {
          pc = 0x203ce98 "\211՚\203j", 
          byte_string = 32499316, 
          byte_string_start = 0x203ce38 "\304 \305`[!\210n\203*", 
          next = 0x7ffebbb17510
        }
        top = 0x7ffebbb172f0
        result = <optimized out>
        type = <optimized out>
#4  0x0000000000549b2e in funcall_lambda (fun=20611341, nargs=nargs@entry=0, 
    arg_vector=arg_vector@entry=0x7ffebbb174a8) at eval.c:2810
        val = <optimized out>
        syms_left = <optimized out>
        lexenv = <optimized out>
        i = <optimized out>
        optional = <optimized out>
        rest = <optimized out>
#5  0x000000000054a059 in Ffuncall (nargs=1, args=args@entry=0x7ffebbb174a0) at eval.c:2699
        fun = <optimized out>
        original_fun = 15801632
---Type <return> to continue, or q <return> to quit---
        numargs = 0
        val = <optimized out>
        internal_args = <optimized out>
        count = 37
#6  0x00000000005794ed in exec_byte_code (bytestr=<optimized out>, vector=27914413, 
    maxdepth=<optimized out>, args_template=args_template@entry=1026, nargs=nargs@entry=0, 
    args=<optimized out>, args@entry=0x7ffebbb17650) at bytecode.c:880
        targets = {0x57b9e8 <exec_byte_code+11312>, 0x57ba2b <exec_byte_code+11379>, 
          0x57ba2d <exec_byte_code+11381>, 0x57ba2f <exec_byte_code+11383>, 
          0x57ba31 <exec_byte_code+11385>, 0x57ba31 <exec_byte_code+11385>, 
          0x57ba6f <exec_byte_code+11447>, 0x57babc <exec_byte_code+11524>, 
          0x579095 <exec_byte_code+733>, 0x579097 <exec_byte_code+735>, 
          0x579099 <exec_byte_code+737>, 0x57909b <exec_byte_code+739>, 
          0x57909d <exec_byte_code+741>, 0x57909d <exec_byte_code+741>, 
          0x5790a2 <exec_byte_code+746>, 0x579071 <exec_byte_code+697>, 
          0x579332 <exec_byte_code+1402>, 0x579334 <exec_byte_code+1404>, 
          0x579336 <exec_byte_code+1406>, 0x579338 <exec_byte_code+1408>, 
          0x57933a <exec_byte_code+1410>, 0x57933a <exec_byte_code+1410>, 
          0x579361 <exec_byte_code+1449>, 0x57933f <exec_byte_code+1415>, 
          0x579443 <exec_byte_code+1675>, 0x579445 <exec_byte_code+1677>, 
          0x579447 <exec_byte_code+1679>, 0x579449 <exec_byte_code+1681>, 
          0x57944b <exec_byte_code+1683>, 0x57944b <exec_byte_code+1683>, 
          0x579410 <exec_byte_code+1624>, 0x579421 <exec_byte_code+1641>, 
          0x5794c2 <exec_byte_code+1802>, 0x5794c4 <exec_byte_code+1804>, 
          0x5794c6 <exec_byte_code+1806>, 0x5794c8 <exec_byte_code+1808>, 
          0x5794ca <exec_byte_code+1810>, 0x5794ca <exec_byte_code+1810>, 
          0x57948f <exec_byte_code+1751>, 0x5794a0 <exec_byte_code+1768>, 
          0x579542 <exec_byte_code+1930>, 0x579544 <exec_byte_code+1932>, 
          0x579546 <exec_byte_code+1934>, 0x579548 <exec_byte_code+1936>, 
          0x57954a <exec_byte_code+1938>, 0x57954a <exec_byte_code+1938>, 
          0x57950f <exec_byte_code+1879>, 0x579520 <exec_byte_code+1896>, 
          0x57a062 <exec_byte_code+4778>, 0x579f17 <exec_byte_code+4447>, 
          0x579f0f <exec_byte_code+4439>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57a1d6 <exec_byte_code+5150>, 0x57a272 <exec_byte_code+5306>, 
          0x57a2ad <exec_byte_code+5365>, 0x57a2f5 <exec_byte_code+5437>, 
          0x57a33d <exec_byte_code+5509>, 0x579254 <exec_byte_code+1180>, 
          0x57929b <exec_byte_code+1251>, 0x57a38c <exec_byte_code+5588>, 
          0x5791fb <exec_byte_code+1091>, 0x5792d9 <exec_byte_code+1313>, 
          0x57a3c8 <exec_byte_code+5648>, 0x57a406 <exec_byte_code+5710>, 
          0x57a434 <exec_byte_code+5756>, 0x57a472 <exec_byte_code+5818>, 
          0x57a4aa <exec_byte_code+5874>, 0x57a531 <exec_byte_code+6009>, 
          0x57a55f <exec_byte_code+6055>, 0x57a59d <exec_byte_code+6117>, 
          0x57a5df <exec_byte_code+6183>, 0x57a60d <exec_byte_code+6229>, 
          0x57a63b <exec_byte_code+6275>, 0x57a679 <exec_byte_code+6337>, 
          0x57a6b7 <exec_byte_code+6399>, 0x57a6f5 <exec_byte_code+6461>, 
          0x57a737 <exec_byte_code+6527>, 0x57a76f <exec_byte_code+6583>, 
          0x57a7a7 <exec_byte_code+6639>, 0x57a82e <exec_byte_code+6774>, 
          0x57a87b <exec_byte_code+6851>, 0x57a8c8 <exec_byte_code+6928>, 
---Type <return> to continue, or q <return> to quit---
          0x57aa63 <exec_byte_code+7339>, 0x57aaa6 <exec_byte_code+7406>, 
          0x57aae9 <exec_byte_code+7473>, 0x57ab2c <exec_byte_code+7540>, 
          0x57ab6f <exec_byte_code+7607>, 0x57aba7 <exec_byte_code+7663>, 
          0x57abff <exec_byte_code+7751>, 0x57ac37 <exec_byte_code+7807>, 
          0x57ac6f <exec_byte_code+7863>, 0x57aca7 <exec_byte_code+7919>, 
          0x57ad55 <exec_byte_code+8093>, 0x579e08 <exec_byte_code+4176>, 
          0x57ad96 <exec_byte_code+8158>, 0x57adc4 <exec_byte_code+8204>, 
          0x57ae46 <exec_byte_code+8334>, 0x57ae87 <exec_byte_code+8399>, 
          0x57aec8 <exec_byte_code+8464>, 0x57aef6 <exec_byte_code+8510>, 
          0x57af26 <exec_byte_code+8558>, 0x57af56 <exec_byte_code+8606>, 
          0x57af8e <exec_byte_code+8662>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57afc1 <exec_byte_code+8713>, 0x57aff1 <exec_byte_code+8761>, 
          0x57b021 <exec_byte_code+8809>, 0x57b051 <exec_byte_code+8857>, 
          0x57b081 <exec_byte_code+8905>, 0x57b0b1 <exec_byte_code+8953>, 
          0x579e08 <exec_byte_code+4176>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b0df <exec_byte_code+8999>, 0x57b121 <exec_byte_code+9065>, 
          0x57b14f <exec_byte_code+9111>, 0x57b17d <exec_byte_code+9157>, 
          0x57b1bb <exec_byte_code+9219>, 0x57b1f9 <exec_byte_code+9281>, 
          0x57b227 <exec_byte_code+9327>, 0x57b374 <exec_byte_code+9660>, 
          0x57b3b2 <exec_byte_code+9722>, 0x57b3f0 <exec_byte_code+9784>, 
          0x57b42e <exec_byte_code+9846>, 0x57b45e <exec_byte_code+9894>, 
          0x57b9e8 <exec_byte_code+11312>, 0x579d85 <exec_byte_code+4045>, 
          0x5795bb <exec_byte_code+2051>, 0x579113 <exec_byte_code+859>, 
          0x579685 <exec_byte_code+2253>, 0x57976d <exec_byte_code+2485>, 
          0x579851 <exec_byte_code+2713>, 0x579d27 <exec_byte_code+3951>, 
          0x579d61 <exec_byte_code+4009>, 0x5793df <exec_byte_code+1575>, 
          0x579dd7 <exec_byte_code+4127>, 0x579e39 <exec_byte_code+4225>, 
          0x579e9b <exec_byte_code+4323>, 0x579ecc <exec_byte_code+4372>, 
          0x57a093 <exec_byte_code+4827>, 0x57a0e5 <exec_byte_code+4909>, 
          0x57a127 <exec_byte_code+4975>, 0x57a178 <exec_byte_code+5056>, 
          0x57958e <exec_byte_code+2006>, 0x57b48c <exec_byte_code+9940>, 
          0x57b4ce <exec_byte_code+10006>, 0x57b4fc <exec_byte_code+10052>, 
          0x57b52a <exec_byte_code+10098>, 0x57b558 <exec_byte_code+10144>, 
          0x57b586 <exec_byte_code+10190>, 0x57b5c4 <exec_byte_code+10252>, 
          0x57b602 <exec_byte_code+10314>, 0x57b640 <exec_byte_code+10376>, 
          0x57b67e <exec_byte_code+10438>, 0x57b756 <exec_byte_code+10654>, 
          0x57b794 <exec_byte_code+10716>, 0x57b7d2 <exec_byte_code+10778>, 
          0x57b800 <exec_byte_code+10824>, 0x57b83e <exec_byte_code+10886>, 
          0x57b87c <exec_byte_code+10948>, 0x57b8be <exec_byte_code+11014>, 
          0x57b900 <exec_byte_code+11080>, 0x57acdf <exec_byte_code+7975>, 
          0x57ad17 <exec_byte_code+8031>, 0x57b938 <exec_byte_code+11136>, 
          0x57b99a <exec_byte_code+11234>, 0x57b9e8 <exec_byte_code+11312>, 
          0x579935 <exec_byte_code+2941>, 0x5799e5 <exec_byte_code+3117>, 
          0x579ab3 <exec_byte_code+3323>, 0x579b81 <exec_byte_code+3529>, 
          0x579c54 <exec_byte_code+3740>, 0x57a4e2 <exec_byte_code+5930>, 
          0x57a7df <exec_byte_code+6695>, 0x57adf7 <exec_byte_code+8255>, 
          0x57bb1c <exec_byte_code+11620>, 0x57bb6c <exec_byte_code+11700>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bbcf <exec_byte_code+11799>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
---Type <return> to continue, or q <return> to quit---
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bc25 <exec_byte_code+11885> <repeats 64 times>}
        count = 36
        op = <optimized out>
        vectorp = 0x1a9f0b0
        stack = {
          pc = 0x20484df "\262\001\211G\302U\205\025", 
          byte_string = 27536484, 
          byte_string_start = 0x20484d8 "\212\211\204\t", 
          next = 0x7ffebbb176c0
        }
        top = 0x7ffebbb174a0
        result = <optimized out>
        type = <optimized out>
#7  0x0000000000549b2e in funcall_lambda (fun=27914477, nargs=nargs@entry=0, 
    arg_vector=arg_vector@entry=0x7ffebbb17650) at eval.c:2810
        val = <optimized out>
        syms_left = <optimized out>
        lexenv = <optimized out>
        i = <optimized out>
        optional = <optimized out>
        rest = <optimized out>
#8  0x000000000054a059 in Ffuncall (nargs=1, args=args@entry=0x7ffebbb17648) at eval.c:2699
        fun = <optimized out>
        original_fun = 15801104
        numargs = 0
        val = <optimized out>
        internal_args = <optimized out>
        count = 35
#9  0x00000000005794ed in exec_byte_code (bytestr=<optimized out>, vector=27840101, 
    maxdepth=<optimized out>, args_template=args_template@entry=2, nargs=nargs@entry=0, 
    args=<optimized out>, args@entry=0x7ffebbb17838) at bytecode.c:880
        targets = {0x57b9e8 <exec_byte_code+11312>, 0x57ba2b <exec_byte_code+11379>, 
          0x57ba2d <exec_byte_code+11381>, 0x57ba2f <exec_byte_code+11383>, 
          0x57ba31 <exec_byte_code+11385>, 0x57ba31 <exec_byte_code+11385>, 
          0x57ba6f <exec_byte_code+11447>, 0x57babc <exec_byte_code+11524>, 
          0x579095 <exec_byte_code+733>, 0x579097 <exec_byte_code+735>, 
          0x579099 <exec_byte_code+737>, 0x57909b <exec_byte_code+739>, 
          0x57909d <exec_byte_code+741>, 0x57909d <exec_byte_code+741>, 
          0x5790a2 <exec_byte_code+746>, 0x579071 <exec_byte_code+697>, 
          0x579332 <exec_byte_code+1402>, 0x579334 <exec_byte_code+1404>, 
          0x579336 <exec_byte_code+1406>, 0x579338 <exec_byte_code+1408>, 
          0x57933a <exec_byte_code+1410>, 0x57933a <exec_byte_code+1410>, 
          0x579361 <exec_byte_code+1449>, 0x57933f <exec_byte_code+1415>, 
          0x579443 <exec_byte_code+1675>, 0x579445 <exec_byte_code+1677>, 
          0x579447 <exec_byte_code+1679>, 0x579449 <exec_byte_code+1681>, 
          0x57944b <exec_byte_code+1683>, 0x57944b <exec_byte_code+1683>, 
          0x579410 <exec_byte_code+1624>, 0x579421 <exec_byte_code+1641>, 
---Type <return> to continue, or q <return> to quit---
          0x5794c2 <exec_byte_code+1802>, 0x5794c4 <exec_byte_code+1804>, 
          0x5794c6 <exec_byte_code+1806>, 0x5794c8 <exec_byte_code+1808>, 
          0x5794ca <exec_byte_code+1810>, 0x5794ca <exec_byte_code+1810>, 
          0x57948f <exec_byte_code+1751>, 0x5794a0 <exec_byte_code+1768>, 
          0x579542 <exec_byte_code+1930>, 0x579544 <exec_byte_code+1932>, 
          0x579546 <exec_byte_code+1934>, 0x579548 <exec_byte_code+1936>, 
          0x57954a <exec_byte_code+1938>, 0x57954a <exec_byte_code+1938>, 
          0x57950f <exec_byte_code+1879>, 0x579520 <exec_byte_code+1896>, 
          0x57a062 <exec_byte_code+4778>, 0x579f17 <exec_byte_code+4447>, 
          0x579f0f <exec_byte_code+4439>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57a1d6 <exec_byte_code+5150>, 0x57a272 <exec_byte_code+5306>, 
          0x57a2ad <exec_byte_code+5365>, 0x57a2f5 <exec_byte_code+5437>, 
          0x57a33d <exec_byte_code+5509>, 0x579254 <exec_byte_code+1180>, 
          0x57929b <exec_byte_code+1251>, 0x57a38c <exec_byte_code+5588>, 
          0x5791fb <exec_byte_code+1091>, 0x5792d9 <exec_byte_code+1313>, 
          0x57a3c8 <exec_byte_code+5648>, 0x57a406 <exec_byte_code+5710>, 
          0x57a434 <exec_byte_code+5756>, 0x57a472 <exec_byte_code+5818>, 
          0x57a4aa <exec_byte_code+5874>, 0x57a531 <exec_byte_code+6009>, 
          0x57a55f <exec_byte_code+6055>, 0x57a59d <exec_byte_code+6117>, 
          0x57a5df <exec_byte_code+6183>, 0x57a60d <exec_byte_code+6229>, 
          0x57a63b <exec_byte_code+6275>, 0x57a679 <exec_byte_code+6337>, 
          0x57a6b7 <exec_byte_code+6399>, 0x57a6f5 <exec_byte_code+6461>, 
          0x57a737 <exec_byte_code+6527>, 0x57a76f <exec_byte_code+6583>, 
          0x57a7a7 <exec_byte_code+6639>, 0x57a82e <exec_byte_code+6774>, 
          0x57a87b <exec_byte_code+6851>, 0x57a8c8 <exec_byte_code+6928>, 
          0x57aa63 <exec_byte_code+7339>, 0x57aaa6 <exec_byte_code+7406>, 
          0x57aae9 <exec_byte_code+7473>, 0x57ab2c <exec_byte_code+7540>, 
          0x57ab6f <exec_byte_code+7607>, 0x57aba7 <exec_byte_code+7663>, 
          0x57abff <exec_byte_code+7751>, 0x57ac37 <exec_byte_code+7807>, 
          0x57ac6f <exec_byte_code+7863>, 0x57aca7 <exec_byte_code+7919>, 
          0x57ad55 <exec_byte_code+8093>, 0x579e08 <exec_byte_code+4176>, 
          0x57ad96 <exec_byte_code+8158>, 0x57adc4 <exec_byte_code+8204>, 
          0x57ae46 <exec_byte_code+8334>, 0x57ae87 <exec_byte_code+8399>, 
          0x57aec8 <exec_byte_code+8464>, 0x57aef6 <exec_byte_code+8510>, 
          0x57af26 <exec_byte_code+8558>, 0x57af56 <exec_byte_code+8606>, 
          0x57af8e <exec_byte_code+8662>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57afc1 <exec_byte_code+8713>, 0x57aff1 <exec_byte_code+8761>, 
          0x57b021 <exec_byte_code+8809>, 0x57b051 <exec_byte_code+8857>, 
          0x57b081 <exec_byte_code+8905>, 0x57b0b1 <exec_byte_code+8953>, 
          0x579e08 <exec_byte_code+4176>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b0df <exec_byte_code+8999>, 0x57b121 <exec_byte_code+9065>, 
          0x57b14f <exec_byte_code+9111>, 0x57b17d <exec_byte_code+9157>, 
          0x57b1bb <exec_byte_code+9219>, 0x57b1f9 <exec_byte_code+9281>, 
          0x57b227 <exec_byte_code+9327>, 0x57b374 <exec_byte_code+9660>, 
          0x57b3b2 <exec_byte_code+9722>, 0x57b3f0 <exec_byte_code+9784>, 
          0x57b42e <exec_byte_code+9846>, 0x57b45e <exec_byte_code+9894>, 
          0x57b9e8 <exec_byte_code+11312>, 0x579d85 <exec_byte_code+4045>, 
          0x5795bb <exec_byte_code+2051>, 0x579113 <exec_byte_code+859>, 
---Type <return> to continue, or q <return> to quit---
          0x579685 <exec_byte_code+2253>, 0x57976d <exec_byte_code+2485>, 
          0x579851 <exec_byte_code+2713>, 0x579d27 <exec_byte_code+3951>, 
          0x579d61 <exec_byte_code+4009>, 0x5793df <exec_byte_code+1575>, 
          0x579dd7 <exec_byte_code+4127>, 0x579e39 <exec_byte_code+4225>, 
          0x579e9b <exec_byte_code+4323>, 0x579ecc <exec_byte_code+4372>, 
          0x57a093 <exec_byte_code+4827>, 0x57a0e5 <exec_byte_code+4909>, 
          0x57a127 <exec_byte_code+4975>, 0x57a178 <exec_byte_code+5056>, 
          0x57958e <exec_byte_code+2006>, 0x57b48c <exec_byte_code+9940>, 
          0x57b4ce <exec_byte_code+10006>, 0x57b4fc <exec_byte_code+10052>, 
          0x57b52a <exec_byte_code+10098>, 0x57b558 <exec_byte_code+10144>, 
          0x57b586 <exec_byte_code+10190>, 0x57b5c4 <exec_byte_code+10252>, 
          0x57b602 <exec_byte_code+10314>, 0x57b640 <exec_byte_code+10376>, 
          0x57b67e <exec_byte_code+10438>, 0x57b756 <exec_byte_code+10654>, 
          0x57b794 <exec_byte_code+10716>, 0x57b7d2 <exec_byte_code+10778>, 
          0x57b800 <exec_byte_code+10824>, 0x57b83e <exec_byte_code+10886>, 
          0x57b87c <exec_byte_code+10948>, 0x57b8be <exec_byte_code+11014>, 
          0x57b900 <exec_byte_code+11080>, 0x57acdf <exec_byte_code+7975>, 
          0x57ad17 <exec_byte_code+8031>, 0x57b938 <exec_byte_code+11136>, 
          0x57b99a <exec_byte_code+11234>, 0x57b9e8 <exec_byte_code+11312>, 
          0x579935 <exec_byte_code+2941>, 0x5799e5 <exec_byte_code+3117>, 
          0x579ab3 <exec_byte_code+3323>, 0x579b81 <exec_byte_code+3529>, 
          0x579c54 <exec_byte_code+3740>, 0x57a4e2 <exec_byte_code+5930>, 
          0x57a7df <exec_byte_code+6695>, 0x57adf7 <exec_byte_code+8255>, 
          0x57bb1c <exec_byte_code+11620>, 0x57bb6c <exec_byte_code+11700>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bbcf <exec_byte_code+11799>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bc25 <exec_byte_code+11885> <repeats 64 times>}
        count = 35
        op = <optimized out>
        vectorp = 0x1a8ce68
        stack = {
          pc = 0x203cc37 "\307y\210\211\204\062", 
          byte_string = 32476548, 
          byte_string_start = 0x203cc10 "\303\304!\203\071", 
          next = 0x7ffebbb178f0
        }
        top = 0x7ffebbb17648
        result = <optimized out>
        type = <optimized out>
#10 0x0000000000549b2e in funcall_lambda (fun=27840349, nargs=nargs@entry=0, 
    arg_vector=arg_vector@entry=0x7ffebbb17838) at eval.c:2810
        val = <optimized out>
        syms_left = <optimized out>
        lexenv = <optimized out>
        i = <optimized out>
        optional = <optimized out>
---Type <return> to continue, or q <return> to quit---
        rest = <optimized out>
#11 0x000000000054a059 in Ffuncall (nargs=1, args=args@entry=0x7ffebbb17830) at eval.c:2699
        fun = <optimized out>
        original_fun = 27840349
        numargs = 0
        val = <optimized out>
        internal_args = <optimized out>
        count = 34
#12 0x00000000005794ed in exec_byte_code (bytestr=<optimized out>, vector=20455637, 
    maxdepth=<optimized out>, args_template=args_template@entry=5142, nargs=nargs@entry=5, 
    args=<optimized out>, args@entry=0x7ffebbb17a38) at bytecode.c:880
        targets = {0x57b9e8 <exec_byte_code+11312>, 0x57ba2b <exec_byte_code+11379>, 
          0x57ba2d <exec_byte_code+11381>, 0x57ba2f <exec_byte_code+11383>, 
          0x57ba31 <exec_byte_code+11385>, 0x57ba31 <exec_byte_code+11385>, 
          0x57ba6f <exec_byte_code+11447>, 0x57babc <exec_byte_code+11524>, 
          0x579095 <exec_byte_code+733>, 0x579097 <exec_byte_code+735>, 
          0x579099 <exec_byte_code+737>, 0x57909b <exec_byte_code+739>, 
          0x57909d <exec_byte_code+741>, 0x57909d <exec_byte_code+741>, 
          0x5790a2 <exec_byte_code+746>, 0x579071 <exec_byte_code+697>, 
          0x579332 <exec_byte_code+1402>, 0x579334 <exec_byte_code+1404>, 
          0x579336 <exec_byte_code+1406>, 0x579338 <exec_byte_code+1408>, 
          0x57933a <exec_byte_code+1410>, 0x57933a <exec_byte_code+1410>, 
          0x579361 <exec_byte_code+1449>, 0x57933f <exec_byte_code+1415>, 
          0x579443 <exec_byte_code+1675>, 0x579445 <exec_byte_code+1677>, 
          0x579447 <exec_byte_code+1679>, 0x579449 <exec_byte_code+1681>, 
          0x57944b <exec_byte_code+1683>, 0x57944b <exec_byte_code+1683>, 
          0x579410 <exec_byte_code+1624>, 0x579421 <exec_byte_code+1641>, 
          0x5794c2 <exec_byte_code+1802>, 0x5794c4 <exec_byte_code+1804>, 
          0x5794c6 <exec_byte_code+1806>, 0x5794c8 <exec_byte_code+1808>, 
          0x5794ca <exec_byte_code+1810>, 0x5794ca <exec_byte_code+1810>, 
          0x57948f <exec_byte_code+1751>, 0x5794a0 <exec_byte_code+1768>, 
          0x579542 <exec_byte_code+1930>, 0x579544 <exec_byte_code+1932>, 
          0x579546 <exec_byte_code+1934>, 0x579548 <exec_byte_code+1936>, 
          0x57954a <exec_byte_code+1938>, 0x57954a <exec_byte_code+1938>, 
          0x57950f <exec_byte_code+1879>, 0x579520 <exec_byte_code+1896>, 
          0x57a062 <exec_byte_code+4778>, 0x579f17 <exec_byte_code+4447>, 
          0x579f0f <exec_byte_code+4439>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57a1d6 <exec_byte_code+5150>, 0x57a272 <exec_byte_code+5306>, 
          0x57a2ad <exec_byte_code+5365>, 0x57a2f5 <exec_byte_code+5437>, 
          0x57a33d <exec_byte_code+5509>, 0x579254 <exec_byte_code+1180>, 
          0x57929b <exec_byte_code+1251>, 0x57a38c <exec_byte_code+5588>, 
          0x5791fb <exec_byte_code+1091>, 0x5792d9 <exec_byte_code+1313>, 
          0x57a3c8 <exec_byte_code+5648>, 0x57a406 <exec_byte_code+5710>, 
          0x57a434 <exec_byte_code+5756>, 0x57a472 <exec_byte_code+5818>, 
          0x57a4aa <exec_byte_code+5874>, 0x57a531 <exec_byte_code+6009>, 
          0x57a55f <exec_byte_code+6055>, 0x57a59d <exec_byte_code+6117>, 
          0x57a5df <exec_byte_code+6183>, 0x57a60d <exec_byte_code+6229>, 
          0x57a63b <exec_byte_code+6275>, 0x57a679 <exec_byte_code+6337>, 
---Type <return> to continue, or q <return> to quit---
          0x57a6b7 <exec_byte_code+6399>, 0x57a6f5 <exec_byte_code+6461>, 
          0x57a737 <exec_byte_code+6527>, 0x57a76f <exec_byte_code+6583>, 
          0x57a7a7 <exec_byte_code+6639>, 0x57a82e <exec_byte_code+6774>, 
          0x57a87b <exec_byte_code+6851>, 0x57a8c8 <exec_byte_code+6928>, 
          0x57aa63 <exec_byte_code+7339>, 0x57aaa6 <exec_byte_code+7406>, 
          0x57aae9 <exec_byte_code+7473>, 0x57ab2c <exec_byte_code+7540>, 
          0x57ab6f <exec_byte_code+7607>, 0x57aba7 <exec_byte_code+7663>, 
          0x57abff <exec_byte_code+7751>, 0x57ac37 <exec_byte_code+7807>, 
          0x57ac6f <exec_byte_code+7863>, 0x57aca7 <exec_byte_code+7919>, 
          0x57ad55 <exec_byte_code+8093>, 0x579e08 <exec_byte_code+4176>, 
          0x57ad96 <exec_byte_code+8158>, 0x57adc4 <exec_byte_code+8204>, 
          0x57ae46 <exec_byte_code+8334>, 0x57ae87 <exec_byte_code+8399>, 
          0x57aec8 <exec_byte_code+8464>, 0x57aef6 <exec_byte_code+8510>, 
          0x57af26 <exec_byte_code+8558>, 0x57af56 <exec_byte_code+8606>, 
          0x57af8e <exec_byte_code+8662>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57afc1 <exec_byte_code+8713>, 0x57aff1 <exec_byte_code+8761>, 
          0x57b021 <exec_byte_code+8809>, 0x57b051 <exec_byte_code+8857>, 
          0x57b081 <exec_byte_code+8905>, 0x57b0b1 <exec_byte_code+8953>, 
          0x579e08 <exec_byte_code+4176>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b0df <exec_byte_code+8999>, 0x57b121 <exec_byte_code+9065>, 
          0x57b14f <exec_byte_code+9111>, 0x57b17d <exec_byte_code+9157>, 
          0x57b1bb <exec_byte_code+9219>, 0x57b1f9 <exec_byte_code+9281>, 
          0x57b227 <exec_byte_code+9327>, 0x57b374 <exec_byte_code+9660>, 
          0x57b3b2 <exec_byte_code+9722>, 0x57b3f0 <exec_byte_code+9784>, 
          0x57b42e <exec_byte_code+9846>, 0x57b45e <exec_byte_code+9894>, 
          0x57b9e8 <exec_byte_code+11312>, 0x579d85 <exec_byte_code+4045>, 
          0x5795bb <exec_byte_code+2051>, 0x579113 <exec_byte_code+859>, 
          0x579685 <exec_byte_code+2253>, 0x57976d <exec_byte_code+2485>, 
          0x579851 <exec_byte_code+2713>, 0x579d27 <exec_byte_code+3951>, 
          0x579d61 <exec_byte_code+4009>, 0x5793df <exec_byte_code+1575>, 
          0x579dd7 <exec_byte_code+4127>, 0x579e39 <exec_byte_code+4225>, 
          0x579e9b <exec_byte_code+4323>, 0x579ecc <exec_byte_code+4372>, 
          0x57a093 <exec_byte_code+4827>, 0x57a0e5 <exec_byte_code+4909>, 
          0x57a127 <exec_byte_code+4975>, 0x57a178 <exec_byte_code+5056>, 
          0x57958e <exec_byte_code+2006>, 0x57b48c <exec_byte_code+9940>, 
          0x57b4ce <exec_byte_code+10006>, 0x57b4fc <exec_byte_code+10052>, 
          0x57b52a <exec_byte_code+10098>, 0x57b558 <exec_byte_code+10144>, 
          0x57b586 <exec_byte_code+10190>, 0x57b5c4 <exec_byte_code+10252>, 
          0x57b602 <exec_byte_code+10314>, 0x57b640 <exec_byte_code+10376>, 
          0x57b67e <exec_byte_code+10438>, 0x57b756 <exec_byte_code+10654>, 
          0x57b794 <exec_byte_code+10716>, 0x57b7d2 <exec_byte_code+10778>, 
          0x57b800 <exec_byte_code+10824>, 0x57b83e <exec_byte_code+10886>, 
          0x57b87c <exec_byte_code+10948>, 0x57b8be <exec_byte_code+11014>, 
          0x57b900 <exec_byte_code+11080>, 0x57acdf <exec_byte_code+7975>, 
          0x57ad17 <exec_byte_code+8031>, 0x57b938 <exec_byte_code+11136>, 
          0x57b99a <exec_byte_code+11234>, 0x57b9e8 <exec_byte_code+11312>, 
          0x579935 <exec_byte_code+2941>, 0x5799e5 <exec_byte_code+3117>, 
          0x579ab3 <exec_byte_code+3323>, 0x579b81 <exec_byte_code+3529>, 
          0x579c54 <exec_byte_code+3740>, 0x57a4e2 <exec_byte_code+5930>, 
          0x57a7df <exec_byte_code+6695>, 0x57adf7 <exec_byte_code+8255>, 
---Type <return> to continue, or q <return> to quit---
          0x57bb1c <exec_byte_code+11620>, 0x57bb6c <exec_byte_code+11700>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bbcf <exec_byte_code+11799>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bc25 <exec_byte_code+11885> <repeats 64 times>}
        count = 34
        op = <optimized out>
        vectorp = 0x13820d8
        stack = {
          pc = 0x208f50e "\302\001\b\"A\211\204q", 
          byte_string = 32860164, 
          byte_string_start = 0x208f4f8 "\301\062R\001\211;\205\022", 
          next = 0x7ffebbb17ab0
        }
        top = 0x7ffebbb17830
        result = <optimized out>
        type = <optimized out>
#13 0x0000000000549b2e in funcall_lambda (fun=20455773, nargs=nargs@entry=5, 
    arg_vector=arg_vector@entry=0x7ffebbb17a38) at eval.c:2810
        val = <optimized out>
        syms_left = <optimized out>
        lexenv = <optimized out>
        i = <optimized out>
        optional = <optimized out>
        rest = <optimized out>
#14 0x000000000054a059 in Ffuncall (nargs=6, args=args@entry=0x7ffebbb17a30) at eval.c:2699
        fun = <optimized out>
        original_fun = 15763792
        numargs = 5
        val = <optimized out>
        internal_args = <optimized out>
        count = 33
#15 0x00000000005794ed in exec_byte_code (bytestr=<optimized out>, vector=20455925, 
    maxdepth=<optimized out>, args_template=args_template@entry=1026, nargs=nargs@entry=1, 
    args=<optimized out>, args@entry=0x7ffebbb17c08) at bytecode.c:880
        targets = {0x57b9e8 <exec_byte_code+11312>, 0x57ba2b <exec_byte_code+11379>, 
          0x57ba2d <exec_byte_code+11381>, 0x57ba2f <exec_byte_code+11383>, 
          0x57ba31 <exec_byte_code+11385>, 0x57ba31 <exec_byte_code+11385>, 
          0x57ba6f <exec_byte_code+11447>, 0x57babc <exec_byte_code+11524>, 
          0x579095 <exec_byte_code+733>, 0x579097 <exec_byte_code+735>, 
          0x579099 <exec_byte_code+737>, 0x57909b <exec_byte_code+739>, 
          0x57909d <exec_byte_code+741>, 0x57909d <exec_byte_code+741>, 
          0x5790a2 <exec_byte_code+746>, 0x579071 <exec_byte_code+697>, 
          0x579332 <exec_byte_code+1402>, 0x579334 <exec_byte_code+1404>, 
          0x579336 <exec_byte_code+1406>, 0x579338 <exec_byte_code+1408>, 
          0x57933a <exec_byte_code+1410>, 0x57933a <exec_byte_code+1410>, 
          0x579361 <exec_byte_code+1449>, 0x57933f <exec_byte_code+1415>, 
---Type <return> to continue, or q <return> to quit---
          0x579443 <exec_byte_code+1675>, 0x579445 <exec_byte_code+1677>, 
          0x579447 <exec_byte_code+1679>, 0x579449 <exec_byte_code+1681>, 
          0x57944b <exec_byte_code+1683>, 0x57944b <exec_byte_code+1683>, 
          0x579410 <exec_byte_code+1624>, 0x579421 <exec_byte_code+1641>, 
          0x5794c2 <exec_byte_code+1802>, 0x5794c4 <exec_byte_code+1804>, 
          0x5794c6 <exec_byte_code+1806>, 0x5794c8 <exec_byte_code+1808>, 
          0x5794ca <exec_byte_code+1810>, 0x5794ca <exec_byte_code+1810>, 
          0x57948f <exec_byte_code+1751>, 0x5794a0 <exec_byte_code+1768>, 
          0x579542 <exec_byte_code+1930>, 0x579544 <exec_byte_code+1932>, 
          0x579546 <exec_byte_code+1934>, 0x579548 <exec_byte_code+1936>, 
          0x57954a <exec_byte_code+1938>, 0x57954a <exec_byte_code+1938>, 
          0x57950f <exec_byte_code+1879>, 0x579520 <exec_byte_code+1896>, 
          0x57a062 <exec_byte_code+4778>, 0x579f17 <exec_byte_code+4447>, 
          0x579f0f <exec_byte_code+4439>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57a1d6 <exec_byte_code+5150>, 0x57a272 <exec_byte_code+5306>, 
          0x57a2ad <exec_byte_code+5365>, 0x57a2f5 <exec_byte_code+5437>, 
          0x57a33d <exec_byte_code+5509>, 0x579254 <exec_byte_code+1180>, 
          0x57929b <exec_byte_code+1251>, 0x57a38c <exec_byte_code+5588>, 
          0x5791fb <exec_byte_code+1091>, 0x5792d9 <exec_byte_code+1313>, 
          0x57a3c8 <exec_byte_code+5648>, 0x57a406 <exec_byte_code+5710>, 
          0x57a434 <exec_byte_code+5756>, 0x57a472 <exec_byte_code+5818>, 
          0x57a4aa <exec_byte_code+5874>, 0x57a531 <exec_byte_code+6009>, 
          0x57a55f <exec_byte_code+6055>, 0x57a59d <exec_byte_code+6117>, 
          0x57a5df <exec_byte_code+6183>, 0x57a60d <exec_byte_code+6229>, 
          0x57a63b <exec_byte_code+6275>, 0x57a679 <exec_byte_code+6337>, 
          0x57a6b7 <exec_byte_code+6399>, 0x57a6f5 <exec_byte_code+6461>, 
          0x57a737 <exec_byte_code+6527>, 0x57a76f <exec_byte_code+6583>, 
          0x57a7a7 <exec_byte_code+6639>, 0x57a82e <exec_byte_code+6774>, 
          0x57a87b <exec_byte_code+6851>, 0x57a8c8 <exec_byte_code+6928>, 
          0x57aa63 <exec_byte_code+7339>, 0x57aaa6 <exec_byte_code+7406>, 
          0x57aae9 <exec_byte_code+7473>, 0x57ab2c <exec_byte_code+7540>, 
          0x57ab6f <exec_byte_code+7607>, 0x57aba7 <exec_byte_code+7663>, 
          0x57abff <exec_byte_code+7751>, 0x57ac37 <exec_byte_code+7807>, 
          0x57ac6f <exec_byte_code+7863>, 0x57aca7 <exec_byte_code+7919>, 
          0x57ad55 <exec_byte_code+8093>, 0x579e08 <exec_byte_code+4176>, 
          0x57ad96 <exec_byte_code+8158>, 0x57adc4 <exec_byte_code+8204>, 
          0x57ae46 <exec_byte_code+8334>, 0x57ae87 <exec_byte_code+8399>, 
          0x57aec8 <exec_byte_code+8464>, 0x57aef6 <exec_byte_code+8510>, 
          0x57af26 <exec_byte_code+8558>, 0x57af56 <exec_byte_code+8606>, 
          0x57af8e <exec_byte_code+8662>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57afc1 <exec_byte_code+8713>, 0x57aff1 <exec_byte_code+8761>, 
          0x57b021 <exec_byte_code+8809>, 0x57b051 <exec_byte_code+8857>, 
          0x57b081 <exec_byte_code+8905>, 0x57b0b1 <exec_byte_code+8953>, 
          0x579e08 <exec_byte_code+4176>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b0df <exec_byte_code+8999>, 0x57b121 <exec_byte_code+9065>, 
          0x57b14f <exec_byte_code+9111>, 0x57b17d <exec_byte_code+9157>, 
          0x57b1bb <exec_byte_code+9219>, 0x57b1f9 <exec_byte_code+9281>, 
          0x57b227 <exec_byte_code+9327>, 0x57b374 <exec_byte_code+9660>, 
---Type <return> to continue, or q <return> to quit---
          0x57b3b2 <exec_byte_code+9722>, 0x57b3f0 <exec_byte_code+9784>, 
          0x57b42e <exec_byte_code+9846>, 0x57b45e <exec_byte_code+9894>, 
          0x57b9e8 <exec_byte_code+11312>, 0x579d85 <exec_byte_code+4045>, 
          0x5795bb <exec_byte_code+2051>, 0x579113 <exec_byte_code+859>, 
          0x579685 <exec_byte_code+2253>, 0x57976d <exec_byte_code+2485>, 
          0x579851 <exec_byte_code+2713>, 0x579d27 <exec_byte_code+3951>, 
          0x579d61 <exec_byte_code+4009>, 0x5793df <exec_byte_code+1575>, 
          0x579dd7 <exec_byte_code+4127>, 0x579e39 <exec_byte_code+4225>, 
          0x579e9b <exec_byte_code+4323>, 0x579ecc <exec_byte_code+4372>, 
          0x57a093 <exec_byte_code+4827>, 0x57a0e5 <exec_byte_code+4909>, 
          0x57a127 <exec_byte_code+4975>, 0x57a178 <exec_byte_code+5056>, 
          0x57958e <exec_byte_code+2006>, 0x57b48c <exec_byte_code+9940>, 
          0x57b4ce <exec_byte_code+10006>, 0x57b4fc <exec_byte_code+10052>, 
          0x57b52a <exec_byte_code+10098>, 0x57b558 <exec_byte_code+10144>, 
          0x57b586 <exec_byte_code+10190>, 0x57b5c4 <exec_byte_code+10252>, 
          0x57b602 <exec_byte_code+10314>, 0x57b640 <exec_byte_code+10376>, 
          0x57b67e <exec_byte_code+10438>, 0x57b756 <exec_byte_code+10654>, 
          0x57b794 <exec_byte_code+10716>, 0x57b7d2 <exec_byte_code+10778>, 
          0x57b800 <exec_byte_code+10824>, 0x57b83e <exec_byte_code+10886>, 
          0x57b87c <exec_byte_code+10948>, 0x57b8be <exec_byte_code+11014>, 
          0x57b900 <exec_byte_code+11080>, 0x57acdf <exec_byte_code+7975>, 
          0x57ad17 <exec_byte_code+8031>, 0x57b938 <exec_byte_code+11136>, 
          0x57b99a <exec_byte_code+11234>, 0x57b9e8 <exec_byte_code+11312>, 
          0x579935 <exec_byte_code+2941>, 0x5799e5 <exec_byte_code+3117>, 
          0x579ab3 <exec_byte_code+3323>, 0x579b81 <exec_byte_code+3529>, 
          0x579c54 <exec_byte_code+3740>, 0x57a4e2 <exec_byte_code+5930>, 
          0x57a7df <exec_byte_code+6695>, 0x57adf7 <exec_byte_code+8255>, 
          0x57bb1c <exec_byte_code+11620>, 0x57bb6c <exec_byte_code+11700>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bbcf <exec_byte_code+11799>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bc25 <exec_byte_code+11885> <repeats 64 times>}
        count = 33
        op = <optimized out>
        vectorp = 0x13821f8
        stack = {
          pc = 0x208f6ef "\207", 
          byte_string = 32855380, 
          byte_string_start = 0x208f6e0 "\301\302\b!\302\303!\302\304!\302\305!\005%\207", 
          next = 0x7ffebbb17c80
        }
        top = 0x7ffebbb17a30
        result = <optimized out>
        type = <optimized out>
#16 0x0000000000549b2e in funcall_lambda (fun=20455981, nargs=nargs@entry=1, 
    arg_vector=arg_vector@entry=0x7ffebbb17c08) at eval.c:2810
        val = <optimized out>
---Type <return> to continue, or q <return> to quit---
        syms_left = <optimized out>
        lexenv = <optimized out>
        i = <optimized out>
        optional = <optimized out>
        rest = <optimized out>
#17 0x000000000054a059 in Ffuncall (nargs=2, args=args@entry=0x7ffebbb17c00) at eval.c:2699
        fun = <optimized out>
        original_fun = 15771168
        numargs = 1
        val = <optimized out>
        internal_args = <optimized out>
        count = 32
#18 0x00000000005794ed in exec_byte_code (bytestr=<optimized out>, vector=27887669, 
    maxdepth=<optimized out>, args_template=args_template@entry=1030, nargs=nargs@entry=1, 
    args=<optimized out>, args@entry=0x7ffebbb17dc8) at bytecode.c:880
        targets = {0x57b9e8 <exec_byte_code+11312>, 0x57ba2b <exec_byte_code+11379>, 
          0x57ba2d <exec_byte_code+11381>, 0x57ba2f <exec_byte_code+11383>, 
          0x57ba31 <exec_byte_code+11385>, 0x57ba31 <exec_byte_code+11385>, 
          0x57ba6f <exec_byte_code+11447>, 0x57babc <exec_byte_code+11524>, 
          0x579095 <exec_byte_code+733>, 0x579097 <exec_byte_code+735>, 
          0x579099 <exec_byte_code+737>, 0x57909b <exec_byte_code+739>, 
          0x57909d <exec_byte_code+741>, 0x57909d <exec_byte_code+741>, 
          0x5790a2 <exec_byte_code+746>, 0x579071 <exec_byte_code+697>, 
          0x579332 <exec_byte_code+1402>, 0x579334 <exec_byte_code+1404>, 
          0x579336 <exec_byte_code+1406>, 0x579338 <exec_byte_code+1408>, 
          0x57933a <exec_byte_code+1410>, 0x57933a <exec_byte_code+1410>, 
          0x579361 <exec_byte_code+1449>, 0x57933f <exec_byte_code+1415>, 
          0x579443 <exec_byte_code+1675>, 0x579445 <exec_byte_code+1677>, 
          0x579447 <exec_byte_code+1679>, 0x579449 <exec_byte_code+1681>, 
          0x57944b <exec_byte_code+1683>, 0x57944b <exec_byte_code+1683>, 
          0x579410 <exec_byte_code+1624>, 0x579421 <exec_byte_code+1641>, 
          0x5794c2 <exec_byte_code+1802>, 0x5794c4 <exec_byte_code+1804>, 
          0x5794c6 <exec_byte_code+1806>, 0x5794c8 <exec_byte_code+1808>, 
          0x5794ca <exec_byte_code+1810>, 0x5794ca <exec_byte_code+1810>, 
          0x57948f <exec_byte_code+1751>, 0x5794a0 <exec_byte_code+1768>, 
          0x579542 <exec_byte_code+1930>, 0x579544 <exec_byte_code+1932>, 
          0x579546 <exec_byte_code+1934>, 0x579548 <exec_byte_code+1936>, 
          0x57954a <exec_byte_code+1938>, 0x57954a <exec_byte_code+1938>, 
          0x57950f <exec_byte_code+1879>, 0x579520 <exec_byte_code+1896>, 
          0x57a062 <exec_byte_code+4778>, 0x579f17 <exec_byte_code+4447>, 
          0x579f0f <exec_byte_code+4439>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57a1d6 <exec_byte_code+5150>, 0x57a272 <exec_byte_code+5306>, 
          0x57a2ad <exec_byte_code+5365>, 0x57a2f5 <exec_byte_code+5437>, 
          0x57a33d <exec_byte_code+5509>, 0x579254 <exec_byte_code+1180>, 
          0x57929b <exec_byte_code+1251>, 0x57a38c <exec_byte_code+5588>, 
          0x5791fb <exec_byte_code+1091>, 0x5792d9 <exec_byte_code+1313>, 
          0x57a3c8 <exec_byte_code+5648>, 0x57a406 <exec_byte_code+5710>, 
          0x57a434 <exec_byte_code+5756>, 0x57a472 <exec_byte_code+5818>, 
---Type <return> to continue, or q <return> to quit---
          0x57a4aa <exec_byte_code+5874>, 0x57a531 <exec_byte_code+6009>, 
          0x57a55f <exec_byte_code+6055>, 0x57a59d <exec_byte_code+6117>, 
          0x57a5df <exec_byte_code+6183>, 0x57a60d <exec_byte_code+6229>, 
          0x57a63b <exec_byte_code+6275>, 0x57a679 <exec_byte_code+6337>, 
          0x57a6b7 <exec_byte_code+6399>, 0x57a6f5 <exec_byte_code+6461>, 
          0x57a737 <exec_byte_code+6527>, 0x57a76f <exec_byte_code+6583>, 
          0x57a7a7 <exec_byte_code+6639>, 0x57a82e <exec_byte_code+6774>, 
          0x57a87b <exec_byte_code+6851>, 0x57a8c8 <exec_byte_code+6928>, 
          0x57aa63 <exec_byte_code+7339>, 0x57aaa6 <exec_byte_code+7406>, 
          0x57aae9 <exec_byte_code+7473>, 0x57ab2c <exec_byte_code+7540>, 
          0x57ab6f <exec_byte_code+7607>, 0x57aba7 <exec_byte_code+7663>, 
          0x57abff <exec_byte_code+7751>, 0x57ac37 <exec_byte_code+7807>, 
          0x57ac6f <exec_byte_code+7863>, 0x57aca7 <exec_byte_code+7919>, 
          0x57ad55 <exec_byte_code+8093>, 0x579e08 <exec_byte_code+4176>, 
          0x57ad96 <exec_byte_code+8158>, 0x57adc4 <exec_byte_code+8204>, 
          0x57ae46 <exec_byte_code+8334>, 0x57ae87 <exec_byte_code+8399>, 
          0x57aec8 <exec_byte_code+8464>, 0x57aef6 <exec_byte_code+8510>, 
          0x57af26 <exec_byte_code+8558>, 0x57af56 <exec_byte_code+8606>, 
          0x57af8e <exec_byte_code+8662>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57afc1 <exec_byte_code+8713>, 0x57aff1 <exec_byte_code+8761>, 
          0x57b021 <exec_byte_code+8809>, 0x57b051 <exec_byte_code+8857>, 
          0x57b081 <exec_byte_code+8905>, 0x57b0b1 <exec_byte_code+8953>, 
          0x579e08 <exec_byte_code+4176>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b0df <exec_byte_code+8999>, 0x57b121 <exec_byte_code+9065>, 
          0x57b14f <exec_byte_code+9111>, 0x57b17d <exec_byte_code+9157>, 
          0x57b1bb <exec_byte_code+9219>, 0x57b1f9 <exec_byte_code+9281>, 
          0x57b227 <exec_byte_code+9327>, 0x57b374 <exec_byte_code+9660>, 
          0x57b3b2 <exec_byte_code+9722>, 0x57b3f0 <exec_byte_code+9784>, 
          0x57b42e <exec_byte_code+9846>, 0x57b45e <exec_byte_code+9894>, 
          0x57b9e8 <exec_byte_code+11312>, 0x579d85 <exec_byte_code+4045>, 
          0x5795bb <exec_byte_code+2051>, 0x579113 <exec_byte_code+859>, 
          0x579685 <exec_byte_code+2253>, 0x57976d <exec_byte_code+2485>, 
          0x579851 <exec_byte_code+2713>, 0x579d27 <exec_byte_code+3951>, 
          0x579d61 <exec_byte_code+4009>, 0x5793df <exec_byte_code+1575>, 
          0x579dd7 <exec_byte_code+4127>, 0x579e39 <exec_byte_code+4225>, 
          0x579e9b <exec_byte_code+4323>, 0x579ecc <exec_byte_code+4372>, 
          0x57a093 <exec_byte_code+4827>, 0x57a0e5 <exec_byte_code+4909>, 
          0x57a127 <exec_byte_code+4975>, 0x57a178 <exec_byte_code+5056>, 
          0x57958e <exec_byte_code+2006>, 0x57b48c <exec_byte_code+9940>, 
          0x57b4ce <exec_byte_code+10006>, 0x57b4fc <exec_byte_code+10052>, 
          0x57b52a <exec_byte_code+10098>, 0x57b558 <exec_byte_code+10144>, 
          0x57b586 <exec_byte_code+10190>, 0x57b5c4 <exec_byte_code+10252>, 
          0x57b602 <exec_byte_code+10314>, 0x57b640 <exec_byte_code+10376>, 
          0x57b67e <exec_byte_code+10438>, 0x57b756 <exec_byte_code+10654>, 
          0x57b794 <exec_byte_code+10716>, 0x57b7d2 <exec_byte_code+10778>, 
          0x57b800 <exec_byte_code+10824>, 0x57b83e <exec_byte_code+10886>, 
          0x57b87c <exec_byte_code+10948>, 0x57b8be <exec_byte_code+11014>, 
          0x57b900 <exec_byte_code+11080>, 0x57acdf <exec_byte_code+7975>, 
          0x57ad17 <exec_byte_code+8031>, 0x57b938 <exec_byte_code+11136>, 
          0x57b99a <exec_byte_code+11234>, 0x57b9e8 <exec_byte_code+11312>, 
---Type <return> to continue, or q <return> to quit---
          0x579935 <exec_byte_code+2941>, 0x5799e5 <exec_byte_code+3117>, 
          0x579ab3 <exec_byte_code+3323>, 0x579b81 <exec_byte_code+3529>, 
          0x579c54 <exec_byte_code+3740>, 0x57a4e2 <exec_byte_code+5930>, 
          0x57a7df <exec_byte_code+6695>, 0x57adf7 <exec_byte_code+8255>, 
          0x57bb1c <exec_byte_code+11620>, 0x57bb6c <exec_byte_code+11700>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bbcf <exec_byte_code+11799>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bc25 <exec_byte_code+11885> <repeats 64 times>}
        count = 31
        op = <optimized out>
        vectorp = 0x1a98838
        stack = {
          pc = 0x208f791 "\202'", 
          byte_string = 32842916, 
          byte_string_start = 0x208f770 "\211\301V\302\030\001\301U?\205O", 
          next = 0x7ffebbb17e30
        }
        top = 0x7ffebbb17c00
        result = <optimized out>
        type = <optimized out>
#19 0x0000000000549b2e in funcall_lambda (fun=27887765, nargs=nargs@entry=1, 
    arg_vector=arg_vector@entry=0x7ffebbb17dc8) at eval.c:2810
        val = <optimized out>
        syms_left = <optimized out>
        lexenv = <optimized out>
        i = <optimized out>
        optional = <optimized out>
        rest = <optimized out>
#20 0x000000000054a059 in Ffuncall (nargs=2, args=args@entry=0x7ffebbb17dc0) at eval.c:2699
        fun = <optimized out>
        original_fun = 15771264
        numargs = 1
        val = <optimized out>
        internal_args = <optimized out>
        count = 30
#21 0x00000000005794ed in exec_byte_code (bytestr=<optimized out>, vector=10125597, 
    maxdepth=<optimized out>, args_template=args_template@entry=1026, nargs=nargs@entry=1, 
    args=<optimized out>, args@entry=0x7ffebbb17f70) at bytecode.c:880
        targets = {0x57b9e8 <exec_byte_code+11312>, 0x57ba2b <exec_byte_code+11379>, 
          0x57ba2d <exec_byte_code+11381>, 0x57ba2f <exec_byte_code+11383>, 
          0x57ba31 <exec_byte_code+11385>, 0x57ba31 <exec_byte_code+11385>, 
          0x57ba6f <exec_byte_code+11447>, 0x57babc <exec_byte_code+11524>, 
          0x579095 <exec_byte_code+733>, 0x579097 <exec_byte_code+735>, 
          0x579099 <exec_byte_code+737>, 0x57909b <exec_byte_code+739>, 
          0x57909d <exec_byte_code+741>, 0x57909d <exec_byte_code+741>, 
          0x5790a2 <exec_byte_code+746>, 0x579071 <exec_byte_code+697>, 
---Type <return> to continue, or q <return> to quit---
          0x579332 <exec_byte_code+1402>, 0x579334 <exec_byte_code+1404>, 
          0x579336 <exec_byte_code+1406>, 0x579338 <exec_byte_code+1408>, 
          0x57933a <exec_byte_code+1410>, 0x57933a <exec_byte_code+1410>, 
          0x579361 <exec_byte_code+1449>, 0x57933f <exec_byte_code+1415>, 
          0x579443 <exec_byte_code+1675>, 0x579445 <exec_byte_code+1677>, 
          0x579447 <exec_byte_code+1679>, 0x579449 <exec_byte_code+1681>, 
          0x57944b <exec_byte_code+1683>, 0x57944b <exec_byte_code+1683>, 
          0x579410 <exec_byte_code+1624>, 0x579421 <exec_byte_code+1641>, 
          0x5794c2 <exec_byte_code+1802>, 0x5794c4 <exec_byte_code+1804>, 
          0x5794c6 <exec_byte_code+1806>, 0x5794c8 <exec_byte_code+1808>, 
          0x5794ca <exec_byte_code+1810>, 0x5794ca <exec_byte_code+1810>, 
          0x57948f <exec_byte_code+1751>, 0x5794a0 <exec_byte_code+1768>, 
          0x579542 <exec_byte_code+1930>, 0x579544 <exec_byte_code+1932>, 
          0x579546 <exec_byte_code+1934>, 0x579548 <exec_byte_code+1936>, 
          0x57954a <exec_byte_code+1938>, 0x57954a <exec_byte_code+1938>, 
          0x57950f <exec_byte_code+1879>, 0x579520 <exec_byte_code+1896>, 
          0x57a062 <exec_byte_code+4778>, 0x579f17 <exec_byte_code+4447>, 
          0x579f0f <exec_byte_code+4439>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57a1d6 <exec_byte_code+5150>, 0x57a272 <exec_byte_code+5306>, 
          0x57a2ad <exec_byte_code+5365>, 0x57a2f5 <exec_byte_code+5437>, 
          0x57a33d <exec_byte_code+5509>, 0x579254 <exec_byte_code+1180>, 
          0x57929b <exec_byte_code+1251>, 0x57a38c <exec_byte_code+5588>, 
          0x5791fb <exec_byte_code+1091>, 0x5792d9 <exec_byte_code+1313>, 
          0x57a3c8 <exec_byte_code+5648>, 0x57a406 <exec_byte_code+5710>, 
          0x57a434 <exec_byte_code+5756>, 0x57a472 <exec_byte_code+5818>, 
          0x57a4aa <exec_byte_code+5874>, 0x57a531 <exec_byte_code+6009>, 
          0x57a55f <exec_byte_code+6055>, 0x57a59d <exec_byte_code+6117>, 
          0x57a5df <exec_byte_code+6183>, 0x57a60d <exec_byte_code+6229>, 
          0x57a63b <exec_byte_code+6275>, 0x57a679 <exec_byte_code+6337>, 
          0x57a6b7 <exec_byte_code+6399>, 0x57a6f5 <exec_byte_code+6461>, 
          0x57a737 <exec_byte_code+6527>, 0x57a76f <exec_byte_code+6583>, 
          0x57a7a7 <exec_byte_code+6639>, 0x57a82e <exec_byte_code+6774>, 
          0x57a87b <exec_byte_code+6851>, 0x57a8c8 <exec_byte_code+6928>, 
          0x57aa63 <exec_byte_code+7339>, 0x57aaa6 <exec_byte_code+7406>, 
          0x57aae9 <exec_byte_code+7473>, 0x57ab2c <exec_byte_code+7540>, 
          0x57ab6f <exec_byte_code+7607>, 0x57aba7 <exec_byte_code+7663>, 
          0x57abff <exec_byte_code+7751>, 0x57ac37 <exec_byte_code+7807>, 
          0x57ac6f <exec_byte_code+7863>, 0x57aca7 <exec_byte_code+7919>, 
          0x57ad55 <exec_byte_code+8093>, 0x579e08 <exec_byte_code+4176>, 
          0x57ad96 <exec_byte_code+8158>, 0x57adc4 <exec_byte_code+8204>, 
          0x57ae46 <exec_byte_code+8334>, 0x57ae87 <exec_byte_code+8399>, 
          0x57aec8 <exec_byte_code+8464>, 0x57aef6 <exec_byte_code+8510>, 
          0x57af26 <exec_byte_code+8558>, 0x57af56 <exec_byte_code+8606>, 
          0x57af8e <exec_byte_code+8662>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57afc1 <exec_byte_code+8713>, 0x57aff1 <exec_byte_code+8761>, 
          0x57b021 <exec_byte_code+8809>, 0x57b051 <exec_byte_code+8857>, 
          0x57b081 <exec_byte_code+8905>, 0x57b0b1 <exec_byte_code+8953>, 
          0x579e08 <exec_byte_code+4176>, 0x57b9e8 <exec_byte_code+11312>, 
---Type <return> to continue, or q <return> to quit---
          0x57b0df <exec_byte_code+8999>, 0x57b121 <exec_byte_code+9065>, 
          0x57b14f <exec_byte_code+9111>, 0x57b17d <exec_byte_code+9157>, 
          0x57b1bb <exec_byte_code+9219>, 0x57b1f9 <exec_byte_code+9281>, 
          0x57b227 <exec_byte_code+9327>, 0x57b374 <exec_byte_code+9660>, 
          0x57b3b2 <exec_byte_code+9722>, 0x57b3f0 <exec_byte_code+9784>, 
          0x57b42e <exec_byte_code+9846>, 0x57b45e <exec_byte_code+9894>, 
          0x57b9e8 <exec_byte_code+11312>, 0x579d85 <exec_byte_code+4045>, 
          0x5795bb <exec_byte_code+2051>, 0x579113 <exec_byte_code+859>, 
          0x579685 <exec_byte_code+2253>, 0x57976d <exec_byte_code+2485>, 
          0x579851 <exec_byte_code+2713>, 0x579d27 <exec_byte_code+3951>, 
          0x579d61 <exec_byte_code+4009>, 0x5793df <exec_byte_code+1575>, 
          0x579dd7 <exec_byte_code+4127>, 0x579e39 <exec_byte_code+4225>, 
          0x579e9b <exec_byte_code+4323>, 0x579ecc <exec_byte_code+4372>, 
          0x57a093 <exec_byte_code+4827>, 0x57a0e5 <exec_byte_code+4909>, 
          0x57a127 <exec_byte_code+4975>, 0x57a178 <exec_byte_code+5056>, 
          0x57958e <exec_byte_code+2006>, 0x57b48c <exec_byte_code+9940>, 
          0x57b4ce <exec_byte_code+10006>, 0x57b4fc <exec_byte_code+10052>, 
          0x57b52a <exec_byte_code+10098>, 0x57b558 <exec_byte_code+10144>, 
          0x57b586 <exec_byte_code+10190>, 0x57b5c4 <exec_byte_code+10252>, 
          0x57b602 <exec_byte_code+10314>, 0x57b640 <exec_byte_code+10376>, 
          0x57b67e <exec_byte_code+10438>, 0x57b756 <exec_byte_code+10654>, 
          0x57b794 <exec_byte_code+10716>, 0x57b7d2 <exec_byte_code+10778>, 
          0x57b800 <exec_byte_code+10824>, 0x57b83e <exec_byte_code+10886>, 
          0x57b87c <exec_byte_code+10948>, 0x57b8be <exec_byte_code+11014>, 
          0x57b900 <exec_byte_code+11080>, 0x57acdf <exec_byte_code+7975>, 
          0x57ad17 <exec_byte_code+8031>, 0x57b938 <exec_byte_code+11136>, 
          0x57b99a <exec_byte_code+11234>, 0x57b9e8 <exec_byte_code+11312>, 
          0x579935 <exec_byte_code+2941>, 0x5799e5 <exec_byte_code+3117>, 
          0x579ab3 <exec_byte_code+3323>, 0x579b81 <exec_byte_code+3529>, 
          0x579c54 <exec_byte_code+3740>, 0x57a4e2 <exec_byte_code+5930>, 
          0x57a7df <exec_byte_code+6695>, 0x57adf7 <exec_byte_code+8255>, 
          0x57bb1c <exec_byte_code+11620>, 0x57bb6c <exec_byte_code+11700>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bbcf <exec_byte_code+11799>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bc25 <exec_byte_code+11885> <repeats 64 times>}
        count = 30
        op = <optimized out>
        vectorp = 0x9a8120 <pure+1515520>
        stack = {
          pc = 0xa81bdd <pure+2407101> "\207\302`\002\"\206\031", 
          byte_string = 10125564, 
          byte_string_start = 0xa81bcf <pure+2407087> "\211\204\a", 
          next = 0x7ffebbb17fd0
        }
        top = 0x7ffebbb17dc0
        result = <optimized out>
---Type <return> to continue, or q <return> to quit---
        type = <optimized out>
#22 0x0000000000549b2e in funcall_lambda (fun=10125509, nargs=nargs@entry=1, 
    arg_vector=arg_vector@entry=0x7ffebbb17f70) at eval.c:2810
        val = <optimized out>
        syms_left = <optimized out>
        lexenv = <optimized out>
        i = <optimized out>
        optional = <optimized out>
        rest = <optimized out>
#23 0x000000000054a059 in Ffuncall (nargs=2, args=args@entry=0x7ffebbb17f68) at eval.c:2699
        fun = <optimized out>
        original_fun = 3678560
        numargs = 1
        val = <optimized out>
        internal_args = <optimized out>
        count = 29
#24 0x00000000005794ed in exec_byte_code (bytestr=<optimized out>, vector=17495885, 
    maxdepth=<optimized out>, args_template=args_template@entry=2, nargs=nargs@entry=0, 
    args=<optimized out>, args@entry=0x7ffebbb18130) at bytecode.c:880
        targets = {0x57b9e8 <exec_byte_code+11312>, 0x57ba2b <exec_byte_code+11379>, 
          0x57ba2d <exec_byte_code+11381>, 0x57ba2f <exec_byte_code+11383>, 
          0x57ba31 <exec_byte_code+11385>, 0x57ba31 <exec_byte_code+11385>, 
          0x57ba6f <exec_byte_code+11447>, 0x57babc <exec_byte_code+11524>, 
          0x579095 <exec_byte_code+733>, 0x579097 <exec_byte_code+735>, 
          0x579099 <exec_byte_code+737>, 0x57909b <exec_byte_code+739>, 
          0x57909d <exec_byte_code+741>, 0x57909d <exec_byte_code+741>, 
          0x5790a2 <exec_byte_code+746>, 0x579071 <exec_byte_code+697>, 
          0x579332 <exec_byte_code+1402>, 0x579334 <exec_byte_code+1404>, 
          0x579336 <exec_byte_code+1406>, 0x579338 <exec_byte_code+1408>, 
          0x57933a <exec_byte_code+1410>, 0x57933a <exec_byte_code+1410>, 
          0x579361 <exec_byte_code+1449>, 0x57933f <exec_byte_code+1415>, 
          0x579443 <exec_byte_code+1675>, 0x579445 <exec_byte_code+1677>, 
          0x579447 <exec_byte_code+1679>, 0x579449 <exec_byte_code+1681>, 
          0x57944b <exec_byte_code+1683>, 0x57944b <exec_byte_code+1683>, 
          0x579410 <exec_byte_code+1624>, 0x579421 <exec_byte_code+1641>, 
          0x5794c2 <exec_byte_code+1802>, 0x5794c4 <exec_byte_code+1804>, 
          0x5794c6 <exec_byte_code+1806>, 0x5794c8 <exec_byte_code+1808>, 
          0x5794ca <exec_byte_code+1810>, 0x5794ca <exec_byte_code+1810>, 
          0x57948f <exec_byte_code+1751>, 0x5794a0 <exec_byte_code+1768>, 
          0x579542 <exec_byte_code+1930>, 0x579544 <exec_byte_code+1932>, 
          0x579546 <exec_byte_code+1934>, 0x579548 <exec_byte_code+1936>, 
          0x57954a <exec_byte_code+1938>, 0x57954a <exec_byte_code+1938>, 
          0x57950f <exec_byte_code+1879>, 0x579520 <exec_byte_code+1896>, 
          0x57a062 <exec_byte_code+4778>, 0x579f17 <exec_byte_code+4447>, 
          0x579f0f <exec_byte_code+4439>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57a1d6 <exec_byte_code+5150>, 0x57a272 <exec_byte_code+5306>, 
          0x57a2ad <exec_byte_code+5365>, 0x57a2f5 <exec_byte_code+5437>, 
          0x57a33d <exec_byte_code+5509>, 0x579254 <exec_byte_code+1180>, 
---Type <return> to continue, or q <return> to quit---
          0x57929b <exec_byte_code+1251>, 0x57a38c <exec_byte_code+5588>, 
          0x5791fb <exec_byte_code+1091>, 0x5792d9 <exec_byte_code+1313>, 
          0x57a3c8 <exec_byte_code+5648>, 0x57a406 <exec_byte_code+5710>, 
          0x57a434 <exec_byte_code+5756>, 0x57a472 <exec_byte_code+5818>, 
          0x57a4aa <exec_byte_code+5874>, 0x57a531 <exec_byte_code+6009>, 
          0x57a55f <exec_byte_code+6055>, 0x57a59d <exec_byte_code+6117>, 
          0x57a5df <exec_byte_code+6183>, 0x57a60d <exec_byte_code+6229>, 
          0x57a63b <exec_byte_code+6275>, 0x57a679 <exec_byte_code+6337>, 
          0x57a6b7 <exec_byte_code+6399>, 0x57a6f5 <exec_byte_code+6461>, 
          0x57a737 <exec_byte_code+6527>, 0x57a76f <exec_byte_code+6583>, 
          0x57a7a7 <exec_byte_code+6639>, 0x57a82e <exec_byte_code+6774>, 
          0x57a87b <exec_byte_code+6851>, 0x57a8c8 <exec_byte_code+6928>, 
          0x57aa63 <exec_byte_code+7339>, 0x57aaa6 <exec_byte_code+7406>, 
          0x57aae9 <exec_byte_code+7473>, 0x57ab2c <exec_byte_code+7540>, 
          0x57ab6f <exec_byte_code+7607>, 0x57aba7 <exec_byte_code+7663>, 
          0x57abff <exec_byte_code+7751>, 0x57ac37 <exec_byte_code+7807>, 
          0x57ac6f <exec_byte_code+7863>, 0x57aca7 <exec_byte_code+7919>, 
          0x57ad55 <exec_byte_code+8093>, 0x579e08 <exec_byte_code+4176>, 
          0x57ad96 <exec_byte_code+8158>, 0x57adc4 <exec_byte_code+8204>, 
          0x57ae46 <exec_byte_code+8334>, 0x57ae87 <exec_byte_code+8399>, 
          0x57aec8 <exec_byte_code+8464>, 0x57aef6 <exec_byte_code+8510>, 
          0x57af26 <exec_byte_code+8558>, 0x57af56 <exec_byte_code+8606>, 
          0x57af8e <exec_byte_code+8662>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57afc1 <exec_byte_code+8713>, 0x57aff1 <exec_byte_code+8761>, 
          0x57b021 <exec_byte_code+8809>, 0x57b051 <exec_byte_code+8857>, 
          0x57b081 <exec_byte_code+8905>, 0x57b0b1 <exec_byte_code+8953>, 
          0x579e08 <exec_byte_code+4176>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b0df <exec_byte_code+8999>, 0x57b121 <exec_byte_code+9065>, 
          0x57b14f <exec_byte_code+9111>, 0x57b17d <exec_byte_code+9157>, 
          0x57b1bb <exec_byte_code+9219>, 0x57b1f9 <exec_byte_code+9281>, 
          0x57b227 <exec_byte_code+9327>, 0x57b374 <exec_byte_code+9660>, 
          0x57b3b2 <exec_byte_code+9722>, 0x57b3f0 <exec_byte_code+9784>, 
          0x57b42e <exec_byte_code+9846>, 0x57b45e <exec_byte_code+9894>, 
          0x57b9e8 <exec_byte_code+11312>, 0x579d85 <exec_byte_code+4045>, 
          0x5795bb <exec_byte_code+2051>, 0x579113 <exec_byte_code+859>, 
          0x579685 <exec_byte_code+2253>, 0x57976d <exec_byte_code+2485>, 
          0x579851 <exec_byte_code+2713>, 0x579d27 <exec_byte_code+3951>, 
          0x579d61 <exec_byte_code+4009>, 0x5793df <exec_byte_code+1575>, 
          0x579dd7 <exec_byte_code+4127>, 0x579e39 <exec_byte_code+4225>, 
          0x579e9b <exec_byte_code+4323>, 0x579ecc <exec_byte_code+4372>, 
          0x57a093 <exec_byte_code+4827>, 0x57a0e5 <exec_byte_code+4909>, 
          0x57a127 <exec_byte_code+4975>, 0x57a178 <exec_byte_code+5056>, 
          0x57958e <exec_byte_code+2006>, 0x57b48c <exec_byte_code+9940>, 
          0x57b4ce <exec_byte_code+10006>, 0x57b4fc <exec_byte_code+10052>, 
          0x57b52a <exec_byte_code+10098>, 0x57b558 <exec_byte_code+10144>, 
          0x57b586 <exec_byte_code+10190>, 0x57b5c4 <exec_byte_code+10252>, 
          0x57b602 <exec_byte_code+10314>, 0x57b640 <exec_byte_code+10376>, 
          0x57b67e <exec_byte_code+10438>, 0x57b756 <exec_byte_code+10654>, 
          0x57b794 <exec_byte_code+10716>, 0x57b7d2 <exec_byte_code+10778>, 
          0x57b800 <exec_byte_code+10824>, 0x57b83e <exec_byte_code+10886>, 
---Type <return> to continue, or q <return> to quit---
          0x57b87c <exec_byte_code+10948>, 0x57b8be <exec_byte_code+11014>, 
          0x57b900 <exec_byte_code+11080>, 0x57acdf <exec_byte_code+7975>, 
          0x57ad17 <exec_byte_code+8031>, 0x57b938 <exec_byte_code+11136>, 
          0x57b99a <exec_byte_code+11234>, 0x57b9e8 <exec_byte_code+11312>, 
          0x579935 <exec_byte_code+2941>, 0x5799e5 <exec_byte_code+3117>, 
          0x579ab3 <exec_byte_code+3323>, 0x579b81 <exec_byte_code+3529>, 
          0x579c54 <exec_byte_code+3740>, 0x57a4e2 <exec_byte_code+5930>, 
          0x57a7df <exec_byte_code+6695>, 0x57adf7 <exec_byte_code+8255>, 
          0x57bb1c <exec_byte_code+11620>, 0x57bb6c <exec_byte_code+11700>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bbcf <exec_byte_code+11799>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bc25 <exec_byte_code+11885> <repeats 64 times>}
        count = 29
        op = <optimized out>
        vectorp = 0x10af750
        stack = {
          pc = 0x13679fb "\207", 
          byte_string = 19913748, 
          byte_string_start = 0x13679f8 "\300\301!\207", 
          next = 0x7ffebbb18190
        }
        top = 0x7ffebbb17f68
        result = <optimized out>
        type = <optimized out>
#25 0x0000000000549b2e in funcall_lambda (fun=18563157, nargs=nargs@entry=0, 
    arg_vector=arg_vector@entry=0x7ffebbb18130) at eval.c:2810
        val = <optimized out>
        syms_left = <optimized out>
        lexenv = <optimized out>
        i = <optimized out>
        optional = <optimized out>
        rest = <optimized out>
#26 0x000000000054a059 in Ffuncall (nargs=1, args=args@entry=0x7ffebbb18128) at eval.c:2699
        fun = <optimized out>
        original_fun = 18563157
        numargs = 0
        val = <optimized out>
        internal_args = <optimized out>
        count = 28
#27 0x00000000005794ed in exec_byte_code (bytestr=<optimized out>, vector=10128013, 
    maxdepth=<optimized out>, args_template=args_template@entry=1026, nargs=nargs@entry=0, 
    args=<optimized out>, args@entry=0x7ffebbb182d0) at bytecode.c:880
        targets = {0x57b9e8 <exec_byte_code+11312>, 0x57ba2b <exec_byte_code+11379>, 
          0x57ba2d <exec_byte_code+11381>, 0x57ba2f <exec_byte_code+11383>, 
          0x57ba31 <exec_byte_code+11385>, 0x57ba31 <exec_byte_code+11385>, 
          0x57ba6f <exec_byte_code+11447>, 0x57babc <exec_byte_code+11524>, 
---Type <return> to continue, or q <return> to quit---
          0x579095 <exec_byte_code+733>, 0x579097 <exec_byte_code+735>, 
          0x579099 <exec_byte_code+737>, 0x57909b <exec_byte_code+739>, 
          0x57909d <exec_byte_code+741>, 0x57909d <exec_byte_code+741>, 
          0x5790a2 <exec_byte_code+746>, 0x579071 <exec_byte_code+697>, 
          0x579332 <exec_byte_code+1402>, 0x579334 <exec_byte_code+1404>, 
          0x579336 <exec_byte_code+1406>, 0x579338 <exec_byte_code+1408>, 
          0x57933a <exec_byte_code+1410>, 0x57933a <exec_byte_code+1410>, 
          0x579361 <exec_byte_code+1449>, 0x57933f <exec_byte_code+1415>, 
          0x579443 <exec_byte_code+1675>, 0x579445 <exec_byte_code+1677>, 
          0x579447 <exec_byte_code+1679>, 0x579449 <exec_byte_code+1681>, 
          0x57944b <exec_byte_code+1683>, 0x57944b <exec_byte_code+1683>, 
          0x579410 <exec_byte_code+1624>, 0x579421 <exec_byte_code+1641>, 
          0x5794c2 <exec_byte_code+1802>, 0x5794c4 <exec_byte_code+1804>, 
          0x5794c6 <exec_byte_code+1806>, 0x5794c8 <exec_byte_code+1808>, 
          0x5794ca <exec_byte_code+1810>, 0x5794ca <exec_byte_code+1810>, 
          0x57948f <exec_byte_code+1751>, 0x5794a0 <exec_byte_code+1768>, 
          0x579542 <exec_byte_code+1930>, 0x579544 <exec_byte_code+1932>, 
          0x579546 <exec_byte_code+1934>, 0x579548 <exec_byte_code+1936>, 
          0x57954a <exec_byte_code+1938>, 0x57954a <exec_byte_code+1938>, 
          0x57950f <exec_byte_code+1879>, 0x579520 <exec_byte_code+1896>, 
          0x57a062 <exec_byte_code+4778>, 0x579f17 <exec_byte_code+4447>, 
          0x579f0f <exec_byte_code+4439>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57a1d6 <exec_byte_code+5150>, 0x57a272 <exec_byte_code+5306>, 
          0x57a2ad <exec_byte_code+5365>, 0x57a2f5 <exec_byte_code+5437>, 
          0x57a33d <exec_byte_code+5509>, 0x579254 <exec_byte_code+1180>, 
          0x57929b <exec_byte_code+1251>, 0x57a38c <exec_byte_code+5588>, 
          0x5791fb <exec_byte_code+1091>, 0x5792d9 <exec_byte_code+1313>, 
          0x57a3c8 <exec_byte_code+5648>, 0x57a406 <exec_byte_code+5710>, 
          0x57a434 <exec_byte_code+5756>, 0x57a472 <exec_byte_code+5818>, 
          0x57a4aa <exec_byte_code+5874>, 0x57a531 <exec_byte_code+6009>, 
          0x57a55f <exec_byte_code+6055>, 0x57a59d <exec_byte_code+6117>, 
          0x57a5df <exec_byte_code+6183>, 0x57a60d <exec_byte_code+6229>, 
          0x57a63b <exec_byte_code+6275>, 0x57a679 <exec_byte_code+6337>, 
          0x57a6b7 <exec_byte_code+6399>, 0x57a6f5 <exec_byte_code+6461>, 
          0x57a737 <exec_byte_code+6527>, 0x57a76f <exec_byte_code+6583>, 
          0x57a7a7 <exec_byte_code+6639>, 0x57a82e <exec_byte_code+6774>, 
          0x57a87b <exec_byte_code+6851>, 0x57a8c8 <exec_byte_code+6928>, 
          0x57aa63 <exec_byte_code+7339>, 0x57aaa6 <exec_byte_code+7406>, 
          0x57aae9 <exec_byte_code+7473>, 0x57ab2c <exec_byte_code+7540>, 
          0x57ab6f <exec_byte_code+7607>, 0x57aba7 <exec_byte_code+7663>, 
          0x57abff <exec_byte_code+7751>, 0x57ac37 <exec_byte_code+7807>, 
          0x57ac6f <exec_byte_code+7863>, 0x57aca7 <exec_byte_code+7919>, 
          0x57ad55 <exec_byte_code+8093>, 0x579e08 <exec_byte_code+4176>, 
          0x57ad96 <exec_byte_code+8158>, 0x57adc4 <exec_byte_code+8204>, 
          0x57ae46 <exec_byte_code+8334>, 0x57ae87 <exec_byte_code+8399>, 
          0x57aec8 <exec_byte_code+8464>, 0x57aef6 <exec_byte_code+8510>, 
          0x57af26 <exec_byte_code+8558>, 0x57af56 <exec_byte_code+8606>, 
          0x57af8e <exec_byte_code+8662>, 0x57b9e8 <exec_byte_code+11312>, 
---Type <return> to continue, or q <return> to quit---
          0x57afc1 <exec_byte_code+8713>, 0x57aff1 <exec_byte_code+8761>, 
          0x57b021 <exec_byte_code+8809>, 0x57b051 <exec_byte_code+8857>, 
          0x57b081 <exec_byte_code+8905>, 0x57b0b1 <exec_byte_code+8953>, 
          0x579e08 <exec_byte_code+4176>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b0df <exec_byte_code+8999>, 0x57b121 <exec_byte_code+9065>, 
          0x57b14f <exec_byte_code+9111>, 0x57b17d <exec_byte_code+9157>, 
          0x57b1bb <exec_byte_code+9219>, 0x57b1f9 <exec_byte_code+9281>, 
          0x57b227 <exec_byte_code+9327>, 0x57b374 <exec_byte_code+9660>, 
          0x57b3b2 <exec_byte_code+9722>, 0x57b3f0 <exec_byte_code+9784>, 
          0x57b42e <exec_byte_code+9846>, 0x57b45e <exec_byte_code+9894>, 
          0x57b9e8 <exec_byte_code+11312>, 0x579d85 <exec_byte_code+4045>, 
          0x5795bb <exec_byte_code+2051>, 0x579113 <exec_byte_code+859>, 
          0x579685 <exec_byte_code+2253>, 0x57976d <exec_byte_code+2485>, 
          0x579851 <exec_byte_code+2713>, 0x579d27 <exec_byte_code+3951>, 
          0x579d61 <exec_byte_code+4009>, 0x5793df <exec_byte_code+1575>, 
          0x579dd7 <exec_byte_code+4127>, 0x579e39 <exec_byte_code+4225>, 
          0x579e9b <exec_byte_code+4323>, 0x579ecc <exec_byte_code+4372>, 
          0x57a093 <exec_byte_code+4827>, 0x57a0e5 <exec_byte_code+4909>, 
          0x57a127 <exec_byte_code+4975>, 0x57a178 <exec_byte_code+5056>, 
          0x57958e <exec_byte_code+2006>, 0x57b48c <exec_byte_code+9940>, 
          0x57b4ce <exec_byte_code+10006>, 0x57b4fc <exec_byte_code+10052>, 
          0x57b52a <exec_byte_code+10098>, 0x57b558 <exec_byte_code+10144>, 
          0x57b586 <exec_byte_code+10190>, 0x57b5c4 <exec_byte_code+10252>, 
          0x57b602 <exec_byte_code+10314>, 0x57b640 <exec_byte_code+10376>, 
          0x57b67e <exec_byte_code+10438>, 0x57b756 <exec_byte_code+10654>, 
          0x57b794 <exec_byte_code+10716>, 0x57b7d2 <exec_byte_code+10778>, 
          0x57b800 <exec_byte_code+10824>, 0x57b83e <exec_byte_code+10886>, 
          0x57b87c <exec_byte_code+10948>, 0x57b8be <exec_byte_code+11014>, 
          0x57b900 <exec_byte_code+11080>, 0x57acdf <exec_byte_code+7975>, 
          0x57ad17 <exec_byte_code+8031>, 0x57b938 <exec_byte_code+11136>, 
          0x57b99a <exec_byte_code+11234>, 0x57b9e8 <exec_byte_code+11312>, 
          0x579935 <exec_byte_code+2941>, 0x5799e5 <exec_byte_code+3117>, 
          0x579ab3 <exec_byte_code+3323>, 0x579b81 <exec_byte_code+3529>, 
          0x579c54 <exec_byte_code+3740>, 0x57a4e2 <exec_byte_code+5930>, 
          0x57a7df <exec_byte_code+6695>, 0x57adf7 <exec_byte_code+8255>, 
          0x57bb1c <exec_byte_code+11620>, 0x57bb6c <exec_byte_code+11700>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bbcf <exec_byte_code+11799>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bc25 <exec_byte_code+11885> <repeats 64 times>}
        count = 28
        op = <optimized out>
        vectorp = 0x9a8a90 <pure+1517936>
        stack = {
          pc = 0xa8179e <pure+2406014> "\210\211 \210\003\307V\203[", 
          byte_string = 10127980, 
          byte_string_start = 0xa8176e <pure+2405966> "\b\305=\203\027", 
---Type <return> to continue, or q <return> to quit---
          next = 0x7ffebbb18340
        }
        top = 0x7ffebbb18128
        result = <optimized out>
        type = <optimized out>
#28 0x0000000000549b2e in funcall_lambda (fun=10127925, nargs=nargs@entry=0, 
    arg_vector=arg_vector@entry=0x7ffebbb182d0) at eval.c:2810
        val = <optimized out>
        syms_left = <optimized out>
        lexenv = <optimized out>
        i = <optimized out>
        optional = <optimized out>
        rest = <optimized out>
#29 0x000000000054a059 in Ffuncall (nargs=1, args=args@entry=0x7ffebbb182c8) at eval.c:2699
        fun = <optimized out>
        original_fun = 3678752
        numargs = 0
        val = <optimized out>
        internal_args = <optimized out>
        count = 27
#30 0x00000000005794ed in exec_byte_code (bytestr=<optimized out>, vector=20134349, 
    maxdepth=<optimized out>, args_template=args_template@entry=0, nargs=nargs@entry=0, 
    args=<optimized out>, args@entry=0x0) at bytecode.c:880
        targets = {0x57b9e8 <exec_byte_code+11312>, 0x57ba2b <exec_byte_code+11379>, 
          0x57ba2d <exec_byte_code+11381>, 0x57ba2f <exec_byte_code+11383>, 
          0x57ba31 <exec_byte_code+11385>, 0x57ba31 <exec_byte_code+11385>, 
          0x57ba6f <exec_byte_code+11447>, 0x57babc <exec_byte_code+11524>, 
          0x579095 <exec_byte_code+733>, 0x579097 <exec_byte_code+735>, 
          0x579099 <exec_byte_code+737>, 0x57909b <exec_byte_code+739>, 
          0x57909d <exec_byte_code+741>, 0x57909d <exec_byte_code+741>, 
          0x5790a2 <exec_byte_code+746>, 0x579071 <exec_byte_code+697>, 
          0x579332 <exec_byte_code+1402>, 0x579334 <exec_byte_code+1404>, 
          0x579336 <exec_byte_code+1406>, 0x579338 <exec_byte_code+1408>, 
          0x57933a <exec_byte_code+1410>, 0x57933a <exec_byte_code+1410>, 
          0x579361 <exec_byte_code+1449>, 0x57933f <exec_byte_code+1415>, 
          0x579443 <exec_byte_code+1675>, 0x579445 <exec_byte_code+1677>, 
          0x579447 <exec_byte_code+1679>, 0x579449 <exec_byte_code+1681>, 
          0x57944b <exec_byte_code+1683>, 0x57944b <exec_byte_code+1683>, 
          0x579410 <exec_byte_code+1624>, 0x579421 <exec_byte_code+1641>, 
          0x5794c2 <exec_byte_code+1802>, 0x5794c4 <exec_byte_code+1804>, 
          0x5794c6 <exec_byte_code+1806>, 0x5794c8 <exec_byte_code+1808>, 
          0x5794ca <exec_byte_code+1810>, 0x5794ca <exec_byte_code+1810>, 
          0x57948f <exec_byte_code+1751>, 0x5794a0 <exec_byte_code+1768>, 
          0x579542 <exec_byte_code+1930>, 0x579544 <exec_byte_code+1932>, 
          0x579546 <exec_byte_code+1934>, 0x579548 <exec_byte_code+1936>, 
          0x57954a <exec_byte_code+1938>, 0x57954a <exec_byte_code+1938>, 
          0x57950f <exec_byte_code+1879>, 0x579520 <exec_byte_code+1896>, 
          0x57a062 <exec_byte_code+4778>, 0x579f17 <exec_byte_code+4447>, 
          0x579f0f <exec_byte_code+4439>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
---Type <return> to continue, or q <return> to quit---
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57a1d6 <exec_byte_code+5150>, 0x57a272 <exec_byte_code+5306>, 
          0x57a2ad <exec_byte_code+5365>, 0x57a2f5 <exec_byte_code+5437>, 
          0x57a33d <exec_byte_code+5509>, 0x579254 <exec_byte_code+1180>, 
          0x57929b <exec_byte_code+1251>, 0x57a38c <exec_byte_code+5588>, 
          0x5791fb <exec_byte_code+1091>, 0x5792d9 <exec_byte_code+1313>, 
          0x57a3c8 <exec_byte_code+5648>, 0x57a406 <exec_byte_code+5710>, 
          0x57a434 <exec_byte_code+5756>, 0x57a472 <exec_byte_code+5818>, 
          0x57a4aa <exec_byte_code+5874>, 0x57a531 <exec_byte_code+6009>, 
          0x57a55f <exec_byte_code+6055>, 0x57a59d <exec_byte_code+6117>, 
          0x57a5df <exec_byte_code+6183>, 0x57a60d <exec_byte_code+6229>, 
          0x57a63b <exec_byte_code+6275>, 0x57a679 <exec_byte_code+6337>, 
          0x57a6b7 <exec_byte_code+6399>, 0x57a6f5 <exec_byte_code+6461>, 
          0x57a737 <exec_byte_code+6527>, 0x57a76f <exec_byte_code+6583>, 
          0x57a7a7 <exec_byte_code+6639>, 0x57a82e <exec_byte_code+6774>, 
          0x57a87b <exec_byte_code+6851>, 0x57a8c8 <exec_byte_code+6928>, 
          0x57aa63 <exec_byte_code+7339>, 0x57aaa6 <exec_byte_code+7406>, 
          0x57aae9 <exec_byte_code+7473>, 0x57ab2c <exec_byte_code+7540>, 
          0x57ab6f <exec_byte_code+7607>, 0x57aba7 <exec_byte_code+7663>, 
          0x57abff <exec_byte_code+7751>, 0x57ac37 <exec_byte_code+7807>, 
          0x57ac6f <exec_byte_code+7863>, 0x57aca7 <exec_byte_code+7919>, 
          0x57ad55 <exec_byte_code+8093>, 0x579e08 <exec_byte_code+4176>, 
          0x57ad96 <exec_byte_code+8158>, 0x57adc4 <exec_byte_code+8204>, 
          0x57ae46 <exec_byte_code+8334>, 0x57ae87 <exec_byte_code+8399>, 
          0x57aec8 <exec_byte_code+8464>, 0x57aef6 <exec_byte_code+8510>, 
          0x57af26 <exec_byte_code+8558>, 0x57af56 <exec_byte_code+8606>, 
          0x57af8e <exec_byte_code+8662>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57afc1 <exec_byte_code+8713>, 0x57aff1 <exec_byte_code+8761>, 
          0x57b021 <exec_byte_code+8809>, 0x57b051 <exec_byte_code+8857>, 
          0x57b081 <exec_byte_code+8905>, 0x57b0b1 <exec_byte_code+8953>, 
          0x579e08 <exec_byte_code+4176>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b0df <exec_byte_code+8999>, 0x57b121 <exec_byte_code+9065>, 
          0x57b14f <exec_byte_code+9111>, 0x57b17d <exec_byte_code+9157>, 
          0x57b1bb <exec_byte_code+9219>, 0x57b1f9 <exec_byte_code+9281>, 
          0x57b227 <exec_byte_code+9327>, 0x57b374 <exec_byte_code+9660>, 
          0x57b3b2 <exec_byte_code+9722>, 0x57b3f0 <exec_byte_code+9784>, 
          0x57b42e <exec_byte_code+9846>, 0x57b45e <exec_byte_code+9894>, 
          0x57b9e8 <exec_byte_code+11312>, 0x579d85 <exec_byte_code+4045>, 
          0x5795bb <exec_byte_code+2051>, 0x579113 <exec_byte_code+859>, 
          0x579685 <exec_byte_code+2253>, 0x57976d <exec_byte_code+2485>, 
          0x579851 <exec_byte_code+2713>, 0x579d27 <exec_byte_code+3951>, 
          0x579d61 <exec_byte_code+4009>, 0x5793df <exec_byte_code+1575>, 
          0x579dd7 <exec_byte_code+4127>, 0x579e39 <exec_byte_code+4225>, 
          0x579e9b <exec_byte_code+4323>, 0x579ecc <exec_byte_code+4372>, 
          0x57a093 <exec_byte_code+4827>, 0x57a0e5 <exec_byte_code+4909>, 
          0x57a127 <exec_byte_code+4975>, 0x57a178 <exec_byte_code+5056>, 
          0x57958e <exec_byte_code+2006>, 0x57b48c <exec_byte_code+9940>, 
          0x57b4ce <exec_byte_code+10006>, 0x57b4fc <exec_byte_code+10052>, 
          0x57b52a <exec_byte_code+10098>, 0x57b558 <exec_byte_code+10144>, 
          0x57b586 <exec_byte_code+10190>, 0x57b5c4 <exec_byte_code+10252>, 
---Type <return> to continue, or q <return> to quit---
          0x57b602 <exec_byte_code+10314>, 0x57b640 <exec_byte_code+10376>, 
          0x57b67e <exec_byte_code+10438>, 0x57b756 <exec_byte_code+10654>, 
          0x57b794 <exec_byte_code+10716>, 0x57b7d2 <exec_byte_code+10778>, 
          0x57b800 <exec_byte_code+10824>, 0x57b83e <exec_byte_code+10886>, 
          0x57b87c <exec_byte_code+10948>, 0x57b8be <exec_byte_code+11014>, 
          0x57b900 <exec_byte_code+11080>, 0x57acdf <exec_byte_code+7975>, 
          0x57ad17 <exec_byte_code+8031>, 0x57b938 <exec_byte_code+11136>, 
          0x57b99a <exec_byte_code+11234>, 0x57b9e8 <exec_byte_code+11312>, 
          0x579935 <exec_byte_code+2941>, 0x5799e5 <exec_byte_code+3117>, 
          0x579ab3 <exec_byte_code+3323>, 0x579b81 <exec_byte_code+3529>, 
          0x579c54 <exec_byte_code+3740>, 0x57a4e2 <exec_byte_code+5930>, 
          0x57a7df <exec_byte_code+6695>, 0x57adf7 <exec_byte_code+8255>, 
          0x57bb1c <exec_byte_code+11620>, 0x57bb6c <exec_byte_code+11700>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bbcf <exec_byte_code+11799>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bc25 <exec_byte_code+11885> <repeats 64 times>}
        count = 23
        op = <optimized out>
        vectorp = 0x13339d0
        stack = {
          pc = 0x1fd7fd5 "\210\306 )0\202W", 
          byte_string = 33093044, 
          byte_string_start = 0x1fd7f88 "\306 \307\030\031\310\t\311\"\210ʎ\n\vU\204!", 
          next = 0x7ffebbb184e0
        }
        top = 0x7ffebbb182c8
        result = <optimized out>
        type = <optimized out>
#31 0x0000000000549d04 in funcall_lambda (fun=20109589, nargs=nargs@entry=2, 
    arg_vector=arg_vector@entry=0x7ffebbb18480) at eval.c:2876
        val = <optimized out>
        syms_left = <optimized out>
        lexenv = 0
        i = 2
        optional = false
        rest = false
#32 0x000000000054a059 in Ffuncall (nargs=3, args=args@entry=0x7ffebbb18478) at eval.c:2699
        fun = <optimized out>
        original_fun = 20716112
        numargs = 2
        val = <optimized out>
        internal_args = <optimized out>
        count = 20
#33 0x00000000005794ed in exec_byte_code (bytestr=<optimized out>, vector=19085181, 
    maxdepth=<optimized out>, args_template=args_template@entry=0, nargs=nargs@entry=0, 
    args=<optimized out>, args@entry=0x0) at bytecode.c:880
---Type <return> to continue, or q <return> to quit---
        targets = {0x57b9e8 <exec_byte_code+11312>, 0x57ba2b <exec_byte_code+11379>, 
          0x57ba2d <exec_byte_code+11381>, 0x57ba2f <exec_byte_code+11383>, 
          0x57ba31 <exec_byte_code+11385>, 0x57ba31 <exec_byte_code+11385>, 
          0x57ba6f <exec_byte_code+11447>, 0x57babc <exec_byte_code+11524>, 
          0x579095 <exec_byte_code+733>, 0x579097 <exec_byte_code+735>, 
          0x579099 <exec_byte_code+737>, 0x57909b <exec_byte_code+739>, 
          0x57909d <exec_byte_code+741>, 0x57909d <exec_byte_code+741>, 
          0x5790a2 <exec_byte_code+746>, 0x579071 <exec_byte_code+697>, 
          0x579332 <exec_byte_code+1402>, 0x579334 <exec_byte_code+1404>, 
          0x579336 <exec_byte_code+1406>, 0x579338 <exec_byte_code+1408>, 
          0x57933a <exec_byte_code+1410>, 0x57933a <exec_byte_code+1410>, 
          0x579361 <exec_byte_code+1449>, 0x57933f <exec_byte_code+1415>, 
          0x579443 <exec_byte_code+1675>, 0x579445 <exec_byte_code+1677>, 
          0x579447 <exec_byte_code+1679>, 0x579449 <exec_byte_code+1681>, 
          0x57944b <exec_byte_code+1683>, 0x57944b <exec_byte_code+1683>, 
          0x579410 <exec_byte_code+1624>, 0x579421 <exec_byte_code+1641>, 
          0x5794c2 <exec_byte_code+1802>, 0x5794c4 <exec_byte_code+1804>, 
          0x5794c6 <exec_byte_code+1806>, 0x5794c8 <exec_byte_code+1808>, 
          0x5794ca <exec_byte_code+1810>, 0x5794ca <exec_byte_code+1810>, 
          0x57948f <exec_byte_code+1751>, 0x5794a0 <exec_byte_code+1768>, 
          0x579542 <exec_byte_code+1930>, 0x579544 <exec_byte_code+1932>, 
          0x579546 <exec_byte_code+1934>, 0x579548 <exec_byte_code+1936>, 
          0x57954a <exec_byte_code+1938>, 0x57954a <exec_byte_code+1938>, 
          0x57950f <exec_byte_code+1879>, 0x579520 <exec_byte_code+1896>, 
          0x57a062 <exec_byte_code+4778>, 0x579f17 <exec_byte_code+4447>, 
          0x579f0f <exec_byte_code+4439>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57a1d6 <exec_byte_code+5150>, 0x57a272 <exec_byte_code+5306>, 
          0x57a2ad <exec_byte_code+5365>, 0x57a2f5 <exec_byte_code+5437>, 
          0x57a33d <exec_byte_code+5509>, 0x579254 <exec_byte_code+1180>, 
          0x57929b <exec_byte_code+1251>, 0x57a38c <exec_byte_code+5588>, 
          0x5791fb <exec_byte_code+1091>, 0x5792d9 <exec_byte_code+1313>, 
          0x57a3c8 <exec_byte_code+5648>, 0x57a406 <exec_byte_code+5710>, 
          0x57a434 <exec_byte_code+5756>, 0x57a472 <exec_byte_code+5818>, 
          0x57a4aa <exec_byte_code+5874>, 0x57a531 <exec_byte_code+6009>, 
          0x57a55f <exec_byte_code+6055>, 0x57a59d <exec_byte_code+6117>, 
          0x57a5df <exec_byte_code+6183>, 0x57a60d <exec_byte_code+6229>, 
          0x57a63b <exec_byte_code+6275>, 0x57a679 <exec_byte_code+6337>, 
          0x57a6b7 <exec_byte_code+6399>, 0x57a6f5 <exec_byte_code+6461>, 
          0x57a737 <exec_byte_code+6527>, 0x57a76f <exec_byte_code+6583>, 
          0x57a7a7 <exec_byte_code+6639>, 0x57a82e <exec_byte_code+6774>, 
          0x57a87b <exec_byte_code+6851>, 0x57a8c8 <exec_byte_code+6928>, 
          0x57aa63 <exec_byte_code+7339>, 0x57aaa6 <exec_byte_code+7406>, 
          0x57aae9 <exec_byte_code+7473>, 0x57ab2c <exec_byte_code+7540>, 
          0x57ab6f <exec_byte_code+7607>, 0x57aba7 <exec_byte_code+7663>, 
          0x57abff <exec_byte_code+7751>, 0x57ac37 <exec_byte_code+7807>, 
          0x57ac6f <exec_byte_code+7863>, 0x57aca7 <exec_byte_code+7919>, 
          0x57ad55 <exec_byte_code+8093>, 0x579e08 <exec_byte_code+4176>, 
          0x57ad96 <exec_byte_code+8158>, 0x57adc4 <exec_byte_code+8204>, 
---Type <return> to continue, or q <return> to quit---
          0x57ae46 <exec_byte_code+8334>, 0x57ae87 <exec_byte_code+8399>, 
          0x57aec8 <exec_byte_code+8464>, 0x57aef6 <exec_byte_code+8510>, 
          0x57af26 <exec_byte_code+8558>, 0x57af56 <exec_byte_code+8606>, 
          0x57af8e <exec_byte_code+8662>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57afc1 <exec_byte_code+8713>, 0x57aff1 <exec_byte_code+8761>, 
          0x57b021 <exec_byte_code+8809>, 0x57b051 <exec_byte_code+8857>, 
          0x57b081 <exec_byte_code+8905>, 0x57b0b1 <exec_byte_code+8953>, 
          0x579e08 <exec_byte_code+4176>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b0df <exec_byte_code+8999>, 0x57b121 <exec_byte_code+9065>, 
          0x57b14f <exec_byte_code+9111>, 0x57b17d <exec_byte_code+9157>, 
          0x57b1bb <exec_byte_code+9219>, 0x57b1f9 <exec_byte_code+9281>, 
          0x57b227 <exec_byte_code+9327>, 0x57b374 <exec_byte_code+9660>, 
          0x57b3b2 <exec_byte_code+9722>, 0x57b3f0 <exec_byte_code+9784>, 
          0x57b42e <exec_byte_code+9846>, 0x57b45e <exec_byte_code+9894>, 
          0x57b9e8 <exec_byte_code+11312>, 0x579d85 <exec_byte_code+4045>, 
          0x5795bb <exec_byte_code+2051>, 0x579113 <exec_byte_code+859>, 
          0x579685 <exec_byte_code+2253>, 0x57976d <exec_byte_code+2485>, 
          0x579851 <exec_byte_code+2713>, 0x579d27 <exec_byte_code+3951>, 
          0x579d61 <exec_byte_code+4009>, 0x5793df <exec_byte_code+1575>, 
          0x579dd7 <exec_byte_code+4127>, 0x579e39 <exec_byte_code+4225>, 
          0x579e9b <exec_byte_code+4323>, 0x579ecc <exec_byte_code+4372>, 
          0x57a093 <exec_byte_code+4827>, 0x57a0e5 <exec_byte_code+4909>, 
          0x57a127 <exec_byte_code+4975>, 0x57a178 <exec_byte_code+5056>, 
          0x57958e <exec_byte_code+2006>, 0x57b48c <exec_byte_code+9940>, 
          0x57b4ce <exec_byte_code+10006>, 0x57b4fc <exec_byte_code+10052>, 
          0x57b52a <exec_byte_code+10098>, 0x57b558 <exec_byte_code+10144>, 
          0x57b586 <exec_byte_code+10190>, 0x57b5c4 <exec_byte_code+10252>, 
          0x57b602 <exec_byte_code+10314>, 0x57b640 <exec_byte_code+10376>, 
          0x57b67e <exec_byte_code+10438>, 0x57b756 <exec_byte_code+10654>, 
          0x57b794 <exec_byte_code+10716>, 0x57b7d2 <exec_byte_code+10778>, 
          0x57b800 <exec_byte_code+10824>, 0x57b83e <exec_byte_code+10886>, 
          0x57b87c <exec_byte_code+10948>, 0x57b8be <exec_byte_code+11014>, 
          0x57b900 <exec_byte_code+11080>, 0x57acdf <exec_byte_code+7975>, 
          0x57ad17 <exec_byte_code+8031>, 0x57b938 <exec_byte_code+11136>, 
          0x57b99a <exec_byte_code+11234>, 0x57b9e8 <exec_byte_code+11312>, 
          0x579935 <exec_byte_code+2941>, 0x5799e5 <exec_byte_code+3117>, 
          0x579ab3 <exec_byte_code+3323>, 0x579b81 <exec_byte_code+3529>, 
          0x579c54 <exec_byte_code+3740>, 0x57a4e2 <exec_byte_code+5930>, 
          0x57a7df <exec_byte_code+6695>, 0x57adf7 <exec_byte_code+8255>, 
          0x57bb1c <exec_byte_code+11620>, 0x57bb6c <exec_byte_code+11700>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bbcf <exec_byte_code+11799>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57b9e8 <exec_byte_code+11312>, 0x57b9e8 <exec_byte_code+11312>, 
          0x57bc25 <exec_byte_code+11885> <repeats 64 times>}
        count = 18
        op = <optimized out>
        vectorp = 0x1233780
---Type <return> to continue, or q <return> to quit---
        stack = {
          pc = 0x1fd8101 "0\202\027", 
          byte_string = 33089844, 
          byte_string_start = 0x1fd80f0 "\303K\030Ď\303\305M\210\306\061\025", 
          next = 0x0
        }
        top = 0x7ffebbb18478
        result = <optimized out>
        type = <optimized out>
#34 0x0000000000549d04 in funcall_lambda (fun=20097029, nargs=nargs@entry=2, 
    arg_vector=arg_vector@entry=0x7ffebbb18618) at eval.c:2876
        val = <optimized out>
        syms_left = <optimized out>
        lexenv = 0
        i = 2
        optional = false
        rest = true
#35 0x000000000054a059 in Ffuncall (nargs=nargs@entry=3, args=args@entry=0x7ffebbb18610)
    at eval.c:2699
        fun = <optimized out>
        original_fun = 21680736
        numargs = 2
        val = <optimized out>
        internal_args = <optimized out>
        count = 14
#36 0x000000000054af5b in Fapply (nargs=<optimized out>, args=0x7ffebbb186a0) at eval.c:2278
        i = 3
        numargs = <optimized out>
        funcall_nargs = 3
        funcall_args = 0x7ffebbb18610
        spread_arg = 0
        fun = <optimized out>
        retval = <optimized out>
        sa_avail = <optimized out>
        sa_must_free = false
#37 0x0000000000549673 in eval_sub (form=<optimized out>) at eval.c:2103
        vals = 0x7ffebbb186a0
        argnum = <optimized out>
        sa_avail = <optimized out>
        sa_must_free = false
        numargs = <optimized out>
        args_left = <optimized out>
        i = <optimized out>
        maxargs = <optimized out>
        argvals = {140732047394704, 5544270, 1, 0, 11997280, 0, 21422720, 5480472}
        fun = 11619885
        val = <optimized out>
        original_args = 12898355
        count = 13
#38 0x00000000005499f2 in Fprogn (body=body@entry=12898419) at eval.c:427
---Type <return> to continue, or q <return> to quit---
        val = <optimized out>
#39 0x000000000054be77 in Fwhile (args=<optimized out>) at eval.c:962
No locals.
#40 0x0000000000549547 in eval_sub (form=<optimized out>) at eval.c:2085
        numargs = <optimized out>
        args_left = 12898323
        i = <optimized out>
        maxargs = <optimized out>
        argvals = {12071648, 1, 12900032, 5480472, 33390287, 27120, 33390256, 27168}
        fun = 11620413
        val = <optimized out>
        original_args = 12898323
        count = 12
#41 0x00000000005499f2 in Fprogn (body=12898531) at eval.c:427
        val = <optimized out>
#42 0x000000000054be02 in Flet (args=12900307) at eval.c:943
        temps = 0x7ffebbb18860
        tem = <optimized out>
        lexenv = 0
        elt = <optimized out>
        varlist = <optimized out>
        argnum = 3
        sa_avail = <optimized out>
        sa_must_free = false
#43 0x0000000000549547 in eval_sub (form=<optimized out>) at eval.c:2085
        numargs = <optimized out>
        args_left = 12900307
        i = <optimized out>
        maxargs = <optimized out>
        argvals = {2, 140732047395056, 11066329, 5542045, 102, 1, 9672550, 1}
        fun = 11620461
        val = <optimized out>
        original_args = 12900307
        count = 8
#44 0x00000000005499f2 in Fprogn (body=12898547) at eval.c:427
        val = <optimized out>
#45 0x0000000000549547 in eval_sub (form=<optimized out>) at eval.c:2085
        numargs = <optimized out>
        args_left = 12898547
        i = <optimized out>
        maxargs = <optimized out>
        argvals = {2, 6, 2, 140732047395512, 140732047395512, 11619112, 140732047395528, 5529883}
        fun = 11621085
        val = <optimized out>
        original_args = 12898547
        count = 7
#46 0x00000000005499f2 in Fprogn (body=12899027) at eval.c:427
        val = <optimized out>
#47 0x000000000054b651 in Fif (args=12899059) at eval.c:385
        cond = <optimized out>
---Type <return> to continue, or q <return> to quit---
#48 0x0000000000549547 in eval_sub (form=<optimized out>) at eval.c:2085
        numargs = <optimized out>
        args_left = 12899059
        i = <optimized out>
        maxargs = <optimized out>
        argvals = {23808, 391408, 6, 0, 8610116, 0, 16711680, 27888}
        fun = 11621181
        val = <optimized out>
        original_args = 12899059
        count = 6
#49 0x00000000005499f2 in Fprogn (body=12897507) at eval.c:427
        val = <optimized out>
#50 0x0000000000549547 in eval_sub (form=<optimized out>) at eval.c:2085
        numargs = <optimized out>
        args_left = 12897507
        i = <optimized out>
        maxargs = <optimized out>
        argvals = {391408, 5, 0, 391408, 0, 12474997, 0, 1}
        fun = 11621085
        val = <optimized out>
        original_args = 12897507
        count = 5
#51 0x000000000054b642 in Fif (args=12897539) at eval.c:384
        cond = <optimized out>
#52 0x0000000000549547 in eval_sub (form=<optimized out>) at eval.c:2085
        numargs = <optimized out>
        args_left = 12897539
        i = <optimized out>
        maxargs = <optimized out>
        argvals = {54, 5480472, 46848, 4294998739, 4, 5474555, 140732047396040, 140732047396256}
        fun = 11621181
        val = <optimized out>
        original_args = 12897539
        count = 4
#53 0x00000000005499f2 in Fprogn (body=12897619) at eval.c:427
        val = <optimized out>
#54 0x0000000000549cbf in funcall_lambda (fun=12897571, nargs=nargs@entry=0, 
    arg_vector=arg_vector@entry=0x7ffebbb18db0) at eval.c:2869
        val = <optimized out>
        syms_left = 0
        lexenv = 0
        i = 0
        optional = false
        rest = false


#55 0x000000000054a0b5 in Ffuncall (nargs=nargs@entry=1, args=args@entry=0x7ffebbb18da8)
    at eval.c:2711
        fun = <optimized out>
        original_fun = 21680880
        numargs = 0
        val = <optimized out>
---Type <return> to continue, or q <return> to quit---
        internal_args = <optimized out>
        count = 3
#56 0x000000000054a1a7 in call0 (fn=21680880) at eval.c:2501
No locals.
#57 0x00000000004e18a5 in safe_run_hooks_1 (nargs=nargs@entry=2, args=args@entry=0x7ffebbb18e00)
    at keyboard.c:1768
No locals.
#58 0x0000000000548bdb in internal_condition_case_n (bfun=bfun@entry=0x4e1898 <safe_run_hooks_1>, 
    nargs=nargs@entry=2, args=args@entry=0x7ffebbb18e00, handlers=handlers@entry=44160, 
    hfun=hfun@entry=0x4e2d5f <safe_run_hooks_error>) at eval.c:1391
        val = <optimized out>
        c = <optimized out>
#59 0x00000000004e2d55 in safe_run_hook_funcall (nargs=<optimized out>, args=<optimized out>)
    at keyboard.c:1816
No locals.
#60 0x0000000000548e0e in run_hook_with_args (nargs=nargs@entry=2, args=args@entry=0x7ffebbb18e70, 
    funcall=funcall@entry=0x4e2d24 <safe_run_hook_funcall>) at eval.c:2466
        global_vals = <optimized out>
        sym = 37536
        val = 30287219
        ret = 0
#61 0x00000000004e5aaf in safe_run_hooks (hook=hook@entry=37536) at keyboard.c:1832
No locals.
#62 0x00000000004ee6f2 in command_loop_1 () at keyboard.c:1472
        cmd = <optimized out>
        keybuf = {410, 26, 11997280, 0, 0, 5480472, 140732047396736, 5544270, 33958915, 0, 
          33958915, 0, 0, 5551412, 323632, 33958915, 8610116, 0, 0, 5134620, 12612963, 0, 0, 
          5134904, 16719360, 4002, 0, 0, 0, 5554719}
        i = <optimized out>
        prev_modiff = 214
        prev_buffer = 0x1a13830
#63 0x00000000005488b3 in internal_condition_case (bfun=bfun@entry=0x4ee19c <command_loop_1>, 
    handlers=handlers@entry=18912, hfun=hfun@entry=0x4e593a <cmd_error>) at eval.c:1309
        val = <optimized out>
        c = <optimized out>
#64 0x00000000004e16ca in command_loop_2 (ignore=ignore@entry=0) at keyboard.c:1086
        val = 33803114
#65 0x00000000005487a2 in internal_catch (tag=tag@entry=45552, 
    func=func@entry=0x4e16b2 <command_loop_2>, arg=arg@entry=0) at eval.c:1073
        val = <optimized out>
        c = <optimized out>
#66 0x00000000004e1670 in command_loop () at keyboard.c:1065
No locals.
#67 0x00000000004e55b7 in recursive_edit_1 () at keyboard.c:671
        val = <optimized out>
#68 0x00000000004e587b in Frecursive_edit () at keyboard.c:742
        buffer = <optimized out>
#69 0x00000000004e10b9 in main (argc=2, argv=0x7ffebbb191b8) at emacs.c:1644

        dummy = 6039613
        stack_bottom_variable = 0 '\000'
---Type <return> to continue, or q <return> to quit---
        do_initial_setlocale = <optimized out>
        dumping = false
        skip_args = 0
        rlim = {
          rlim_cur = 8720000, 
          rlim_max = 18446744073709551615
        }
        no_loadup = false
        junk = 0x0
        dname_arg = 0x0
        ch_to_dir = 0x0
        original_pwd = 0x0
--8<---------------cut here---------------end--------------->8---





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-24 12:13             ` Tassilo Horn
@ 2015-10-24 12:45               ` Eli Zaretskii
  2015-10-24 13:30                 ` Tassilo Horn
  2015-10-24 12:46               ` Tassilo Horn
  1 sibling, 1 reply; 28+ messages in thread
From: Eli Zaretskii @ 2015-10-24 12:45 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: storm, monnier, 21747, bruce.connor.am

> From: Tassilo Horn <tsdh@gnu.org>
> Cc: bruce.connor.am@gmail.com,  monnier@iro.umontreal.ca,  storm@cua.dk,  21747@debbugs.gnu.org
> Date: Sat, 24 Oct 2015 14:13:54 +0200
> 
> Actually, the `post-command-hook' function in question
> (aggressive-indent--indent-if-changed) is not so overly expensive.  At
> least I have validated that it has finished running I type the next key,
> thus the abort-on-input case doesn't even occur.
> 
> My recipe for reproduction is
> 
>   1. emacs -Q
>   2. M-x package-initialize
>   3. M-x global-aggressive-indent-mode
>   4. C-x C-f ~/test.sh
>   5. type the keyword if where the i is displayed immediately
>      and the display of f is delayed
> 
> This does only occur for sh-mode keywords like if, while, etc. where the
> delaying starts with after entering the last char of the keyword.  Also,
> I can reproduce that problem only if test.sh doesn't exist.

I don't understand: are you saying that the post-command-hook finished
its job, and yet redisplay is not entered?

> Or well, I just tried what happens when I replace the `while-no-input'
> with a `progn'.  Then Emacs goes into some infloop.  Attaching with gdb
> shows:

There's a procedure in etc/DEBUG to determine which call-stack frame
infloops, please use it and tell what you found.

Thanks.





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-24 12:13             ` Tassilo Horn
  2015-10-24 12:45               ` Eli Zaretskii
@ 2015-10-24 12:46               ` Tassilo Horn
  1 sibling, 0 replies; 28+ messages in thread
From: Tassilo Horn @ 2015-10-24 12:46 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: storm, monnier, 21747, bruce.connor.am

Tassilo Horn <tsdh@gnu.org> writes:

> This does only occur for sh-mode keywords like if, while, etc. where the
> delaying starts with after entering the last char of the keyword.  Also,
> I can reproduce that problem only if test.sh doesn't exist.

No, this latter statement doesn't seem to be correct.  What seems to be
the case is that the keyword I'm entering must be followed by eob.

Bye,
Tassilo





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-24 12:45               ` Eli Zaretskii
@ 2015-10-24 13:30                 ` Tassilo Horn
  2015-10-24 13:57                   ` Artur Malabarba
  2015-10-24 14:05                   ` Eli Zaretskii
  0 siblings, 2 replies; 28+ messages in thread
From: Tassilo Horn @ 2015-10-24 13:30 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: storm, monnier, 21747, bruce.connor.am

Eli Zaretskii <eliz@gnu.org> writes:

>> My recipe for reproduction is
>> 
>>   1. emacs -Q
>>   2. M-x package-initialize
>>   3. M-x global-aggressive-indent-mode
>>   4. C-x C-f ~/test.sh
>>   5. type the keyword if where the i is displayed immediately
>>      and the display of f is delayed
>> 
>> This does only occur for sh-mode keywords like if, while, etc. where the
>> delaying starts with after entering the last char of the keyword.  Also,
>> I can reproduce that problem only if test.sh doesn't exist.
>
> I don't understand: are you saying that the post-command-hook finished
> its job, and yet redisplay is not entered?

Yes, or rather the function aggressive-indent--indent-if-changed which
is in post-command-hook finished.

>> Or well, I just tried what happens when I replace the `while-no-input'
>> with a `progn'.  Then Emacs goes into some infloop.  Attaching with gdb
>> shows:
>
> There's a procedure in etc/DEBUG to determine which call-stack frame
> infloops, please use it and tell what you found.

Ok, so with the aggressive-indent--indent-if-changed where
while-no-input is replaced with progn, I perform my recipe until emacs
infloops.  Then do "kill -TSTP <PID>" and repeatedly "finish" at the gdb
prompt.  But the last frame being displayed in GDB before finish doesn't
return anymore is not always the same.  Most of the time it is poll ()
from /usr/lib/libc.so.6.  Here are two other results.

1st:

--8<---------------cut here---------------start------------->8---
Program received signal SIGTSTP, Stopped (user).
0x00000000005793ee in exec_byte_code (bytestr=<optimized out>, 
    vector=17328973, maxdepth=<optimized out>, 
    args_template=args_template@entry=2, nargs=nargs@entry=0, 
    args=<optimized out>, args@entry=0x7fffffffc7b0) at bytecode.c:818
818		    PUSH (v1);
(gdb) finish
Run till exit from #0  0x00000000005793ee in exec_byte_code (
    bytestr=<optimized out>, vector=17328973, maxdepth=<optimized out>, 
    args_template=args_template@entry=2, nargs=nargs@entry=0, 
    args=<optimized out>, args@entry=0x7fffffffc7b0) at bytecode.c:818

Program received signal SIGTSTP, Stopped (user).
0x00000000005793ee in exec_byte_code (bytestr=<optimized out>, 
    vector=17328973, maxdepth=<optimized out>, 
    args_template=args_template@entry=2, nargs=nargs@entry=0, 
    args=<optimized out>, args@entry=0x7fffffffc7b0) at bytecode.c:818
818		    PUSH (v1);
(gdb) finish
Run till exit from #0  0x00000000005793ee in exec_byte_code (
    bytestr=<optimized out>, vector=17328973, maxdepth=<optimized out>, 
    args_template=args_template@entry=2, nargs=nargs@entry=0, 
    args=<optimized out>, args@entry=0x7fffffffc7b0) at bytecode.c:818

Program received signal SIGTSTP, Stopped (user).
[Switching to Thread 0x7fffe498f700 (LWP 1864)]
deliver_input_available_signal (sig=29) at keyboard.c:7117
7117	{
(gdb) finish
Run till exit from #0  deliver_input_available_signal (sig=29)
    at keyboard.c:7117

Program received signal SIGTSTP, Stopped (user).
[Switching to Thread 0x7fffe620c700 (LWP 1863)]
0x00007ffff01c618d in poll () from /usr/lib/libc.so.6
(gdb) finish
Run till exit from #0  0x00007ffff01c618d in poll () from /usr/lib/libc.so.6

Program received signal SIGTSTP, Stopped (user).
[Switching to Thread 0x7fffe7080700 (LWP 1862)]
0x00007ffff01c618d in poll () from /usr/lib/libc.so.6
(gdb) finish
Run till exit from #0  0x00007ffff01c618d in poll () from /usr/lib/libc.so.6
--8<---------------cut here---------------end--------------->8---

2nd:

--8<---------------cut here---------------start------------->8---
Program received signal SIGTSTP, Stopped (user).
[Switching to Thread 0x7fffe620c700 (LWP 1863)]
0x00007ffff01c618d in poll () from /usr/lib/libc.so.6
(gdb) finish 
Run till exit from #0  0x00007ffff01c618d in poll () from /usr/lib/libc.so.6

Program received signal SIGTSTP, Stopped (user).
[Switching to Thread 0x7ffff7f19a00 (LWP 1858)]
Fequal (o1=24107556, o2=24556980) at fns.c:2199
2199	{
(gdb) finish 
Run till exit from #0  Fequal (o1=24107556, o2=24556980) at fns.c:2199
0x000000000057b61d in exec_byte_code (bytestr=<optimized out>, 
    vector=18636485, maxdepth=<optimized out>, 
    args_template=args_template@entry=1030, nargs=nargs@entry=1, 
    args=<optimized out>, args@entry=0x7fffffffcb10) at bytecode.c:1768
1768		    TOP = Fequal (TOP, v1);
Value returned is $2 = 0
(gdb) finish 
Run till exit from #0  0x000000000057b61d in exec_byte_code (
    bytestr=<optimized out>, vector=18636485, maxdepth=<optimized out>, 
    args_template=args_template@entry=1030, nargs=nargs@entry=1, 
    args=<optimized out>, args@entry=0x7fffffffcb10) at bytecode.c:1768
0x0000000000549b2e in funcall_lambda (fun=18649053, nargs=nargs@entry=1, 
    arg_vector=arg_vector@entry=0x7fffffffcb10) at eval.c:2810
2810		  return exec_byte_code (AREF (fun, COMPILED_BYTECODE),
Value returned is $3 = 44160
(gdb) finish 
Run till exit from #0  0x0000000000549b2e in funcall_lambda (fun=18649053, 
    nargs=nargs@entry=1, arg_vector=arg_vector@entry=0x7fffffffcb10)
    at eval.c:2810
0x000000000054a059 in Ffuncall (nargs=2, args=args@entry=0x7fffffffcb08)
    at eval.c:2699
2699	    val = funcall_lambda (fun, numargs, args + 1);
Value returned is $4 = 44160
(gdb) finish 
Run till exit from #0  0x000000000054a059 in Ffuncall (nargs=2, 
    args=args@entry=0x7fffffffcb08) at eval.c:2699
0x00000000005794ed in exec_byte_code (bytestr=<optimized out>, 
    vector=17328973, maxdepth=<optimized out>, 
    args_template=args_template@entry=2, nargs=nargs@entry=0, 
    args=<optimized out>, args@entry=0x7fffffffccb8) at bytecode.c:880
880		    TOP = Ffuncall (op + 1, &TOP);
Value returned is $5 = 44160
(gdb) finish 
Run till exit from #0  0x00000000005794ed in exec_byte_code (
    bytestr=<optimized out>, vector=17328973, maxdepth=<optimized out>, 
    args_template=args_template@entry=2, nargs=nargs@entry=0, 
    args=<optimized out>, args@entry=0x7fffffffccb8) at bytecode.c:880
0x0000000000549b2e in funcall_lambda (fun=18825973, nargs=nargs@entry=0, 
    arg_vector=arg_vector@entry=0x7fffffffccb8) at eval.c:2810
2810		  return exec_byte_code (AREF (fun, COMPILED_BYTECODE),
Value returned is $6 = 24107556
(gdb) finish 
Run till exit from #0  0x0000000000549b2e in funcall_lambda (fun=18825973, 
    nargs=nargs@entry=0, arg_vector=arg_vector@entry=0x7fffffffccb8)
    at eval.c:2810
0x000000000054a059 in Ffuncall (nargs=1, args=args@entry=0x7fffffffccb0)
    at eval.c:2699
2699	    val = funcall_lambda (fun, numargs, args + 1);
Value returned is $7 = 24107556
(gdb) finish 
Run till exit from #0  0x000000000054a059 in Ffuncall (nargs=1, 
    args=args@entry=0x7fffffffccb0) at eval.c:2699
0x00000000005794ed in exec_byte_code (bytestr=<optimized out>, 
    vector=18627621, maxdepth=<optimized out>, 
    args_template=args_template@entry=1026, nargs=nargs@entry=0, 
    args=<optimized out>, args@entry=0x7fffffffce60) at bytecode.c:880
880		    TOP = Ffuncall (op + 1, &TOP);
Value returned is $8 = 24107556
(gdb) finish 
Run till exit from #0  0x00000000005794ed in exec_byte_code (
    bytestr=<optimized out>, vector=18627621, maxdepth=<optimized out>, 
    args_template=args_template@entry=1026, nargs=nargs@entry=0, 
    args=<optimized out>, args@entry=0x7fffffffce60) at bytecode.c:880
0x0000000000549b2e in funcall_lambda (fun=18631813, nargs=nargs@entry=0, 
    arg_vector=arg_vector@entry=0x7fffffffce60) at eval.c:2810
2810		  return exec_byte_code (AREF (fun, COMPILED_BYTECODE),
Value returned is $9 = 0
(gdb) finish 
Run till exit from #0  0x0000000000549b2e in funcall_lambda (fun=18631813, 
    nargs=nargs@entry=0, arg_vector=arg_vector@entry=0x7fffffffce60)
    at eval.c:2810
0x000000000054a059 in Ffuncall (nargs=1, args=args@entry=0x7fffffffce58)
    at eval.c:2699
2699	    val = funcall_lambda (fun, numargs, args + 1);
Value returned is $10 = 0
(gdb) finish 
Run till exit from #0  0x000000000054a059 in Ffuncall (nargs=1, 
    args=args@entry=0x7fffffffce58) at eval.c:2699
0x00000000005794ed in exec_byte_code (bytestr=<optimized out>, 
    vector=17475709, maxdepth=<optimized out>, 
    args_template=args_template@entry=2, nargs=nargs@entry=0, 
    args=<optimized out>, args@entry=0x7fffffffd048) at bytecode.c:880
880		    TOP = Ffuncall (op + 1, &TOP);
Value returned is $11 = 0
(gdb) finish 
Run till exit from #0  0x00000000005794ed in exec_byte_code (
    bytestr=<optimized out>, vector=17475709, maxdepth=<optimized out>, 
    args_template=args_template@entry=2, nargs=nargs@entry=0, 
    args=<optimized out>, args@entry=0x7fffffffd048) at bytecode.c:880
0x0000000000549b2e in funcall_lambda (fun=18821861, nargs=nargs@entry=0, 
    arg_vector=arg_vector@entry=0x7fffffffd048) at eval.c:2810
2810		  return exec_byte_code (AREF (fun, COMPILED_BYTECODE),
Value returned is $12 = 24664900
(gdb) finish 
Run till exit from #0  0x0000000000549b2e in funcall_lambda (fun=18821861, 
    nargs=nargs@entry=0, arg_vector=arg_vector@entry=0x7fffffffd048)
    at eval.c:2810
0x000000000054a059 in Ffuncall (nargs=1, args=args@entry=0x7fffffffd040)
    at eval.c:2699
2699	    val = funcall_lambda (fun, numargs, args + 1);
Value returned is $13 = 24664900
(gdb) finish 
Run till exit from #0  0x000000000054a059 in Ffuncall (nargs=1, 
    args=args@entry=0x7fffffffd040) at eval.c:2699
0x00000000005794ed in exec_byte_code (bytestr=<optimized out>, 
    vector=18431125, maxdepth=<optimized out>, 
    args_template=args_template@entry=5142, nargs=nargs@entry=5, 
    args=<optimized out>, args@entry=0x7fffffffd248) at bytecode.c:880
880		    TOP = Ffuncall (op + 1, &TOP);
Value returned is $14 = 24664900
(gdb) finish 
Run till exit from #0  0x00000000005794ed in exec_byte_code (
    bytestr=<optimized out>, vector=18431125, maxdepth=<optimized out>, 
    args_template=args_template@entry=5142, nargs=nargs@entry=5, 
    args=<optimized out>, args@entry=0x7fffffffd248) at bytecode.c:880
--8<---------------cut here---------------end--------------->8---

Right now, there was another one where I could type "finish" at least a
hundred times and still I'm not done, i.e., it "finish" still returns.
But that seems to be in GC which might be normal.

--8<---------------cut here---------------start------------->8---
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6215
mark_object (arg=<optimized out>) at alloc.c:6207
6207		switch (ptr->redirect)
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6207
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
0x00000000005340d3 in mark_object (arg=<optimized out>) at alloc.c:6209
6209		  case SYMBOL_PLAINVAL: mark_object (SYMBOL_VAL (ptr)); break;
(gdb) finish 
Run till exit from #0  0x00000000005340d3 in mark_object (arg=<optimized out>)
    at alloc.c:6209
mark_vectorlike (ptr=ptr@entry=0x1282e18) at alloc.c:5790
5790	  for (i = 0; i < size; i++) /* ...and then mark its elements.  */
(gdb) finish 
Run till exit from #0  mark_vectorlike (ptr=ptr@entry=0x1282e18)
    at alloc.c:5790
0x000000000053407d in mark_object (arg=<optimized out>) at alloc.c:6190
6190		    mark_vectorlike (ptr);
(gdb) finish 
Run till exit from #0  0x000000000053407d in mark_object (arg=<optimized out>)
    at alloc.c:6190
mark_object (arg=<optimized out>) at alloc.c:6206
6206		mark_object (ptr->plist);
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6206
mark_vectorlike (ptr=ptr@entry=0x1180b78) at alloc.c:5790
5790	  for (i = 0; i < size; i++) /* ...and then mark its elements.  */
(gdb) finish 
Run till exit from #0  mark_vectorlike (ptr=ptr@entry=0x1180b78)
    at alloc.c:5790
0x000000000053407d in mark_object (arg=<optimized out>) at alloc.c:6190
6190		    mark_vectorlike (ptr);
(gdb) finish 
Run till exit from #0  0x000000000053407d in mark_object (arg=<optimized out>)
    at alloc.c:6190
mark_object (arg=<optimized out>) at alloc.c:6206
6206		mark_object (ptr->plist);
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6206
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_localized_symbol (ptr=ptr@entry=0xfa09a0) at alloc.c:5915
5915	  mark_object (blv->defcell);
(gdb) finish 
Run till exit from #0  mark_localized_symbol (ptr=ptr@entry=0xfa09a0)
    at alloc.c:5915
mark_object (arg=<optimized out>) at alloc.c:6219
6219		    break;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6219
mark_vectorlike (ptr=ptr@entry=0x12225a0) at alloc.c:5790
5790	  for (i = 0; i < size; i++) /* ...and then mark its elements.  */
(gdb) finish 
Run till exit from #0  mark_vectorlike (ptr=ptr@entry=0x12225a0)
    at alloc.c:5790
0x000000000053407d in mark_object (arg=<optimized out>) at alloc.c:6190
6190		    mark_vectorlike (ptr);
(gdb) finish 
Run till exit from #0  0x000000000053407d in mark_object (arg=<optimized out>)
    at alloc.c:6190
mark_object (arg=<optimized out>) at alloc.c:6206
6206		mark_object (ptr->plist);
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6206
mark_vectorlike (ptr=ptr@entry=0x130f788) at alloc.c:5790
5790	  for (i = 0; i < size; i++) /* ...and then mark its elements.  */
(gdb) finish 
Run till exit from #0  mark_vectorlike (ptr=ptr@entry=0x130f788)
    at alloc.c:5790
0x000000000053407d in mark_object (arg=<optimized out>) at alloc.c:6190
6190		    mark_vectorlike (ptr);
(gdb) finish 
Run till exit from #0  0x000000000053407d in mark_object (arg=<optimized out>)
    at alloc.c:6190
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_compiled (ptr=0x130f840) at alloc.c:5830
5830	  for (i = 0; i < size; i++)
(gdb) finish 
Run till exit from #0  mark_compiled (ptr=0x130f840) at alloc.c:5830
0x0000000000533f40 in mark_object (arg=<optimized out>) at alloc.c:6107
6107		    obj = mark_compiled (ptr);
Value returned is $25 = 18074453
(gdb) finish 
Run till exit from #0  0x0000000000533f40 in mark_object (arg=<optimized out>)
    at alloc.c:6107
mark_object (arg=<optimized out>) at alloc.c:6206
6206		mark_object (ptr->plist);
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6206
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6207
6207		switch (ptr->redirect)
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6207
mark_object (arg=<optimized out>) at alloc.c:6206
6206		mark_object (ptr->plist);
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6206
mark_vectorlike (ptr=ptr@entry=0x11d7168) at alloc.c:5790
5790	  for (i = 0; i < size; i++) /* ...and then mark its elements.  */
(gdb) finish 
Run till exit from #0  mark_vectorlike (ptr=ptr@entry=0x11d7168)
    at alloc.c:5790
0x000000000053407d in mark_object (arg=<optimized out>) at alloc.c:6190
6190		    mark_vectorlike (ptr);
(gdb) finish 
Run till exit from #0  0x000000000053407d in mark_object (arg=<optimized out>)
    at alloc.c:6190
mark_object (arg=<optimized out>) at alloc.c:6206
6206		mark_object (ptr->plist);
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6206
mark_vectorlike (ptr=ptr@entry=0x12071e0) at alloc.c:5790
5790	  for (i = 0; i < size; i++) /* ...and then mark its elements.  */
(gdb) finish 
Run till exit from #0  mark_vectorlike (ptr=ptr@entry=0x12071e0)
    at alloc.c:5790
0x000000000053407d in mark_object (arg=<optimized out>) at alloc.c:6190
6190		    mark_vectorlike (ptr);
(gdb) finish 
Run till exit from #0  0x000000000053407d in mark_object (arg=<optimized out>)
    at alloc.c:6190
mark_object (arg=<optimized out>) at alloc.c:6206
6206		mark_object (ptr->plist);
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6206
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6207
6207		switch (ptr->redirect)
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6207
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_localized_symbol (ptr=ptr@entry=0xc2d770) at alloc.c:5915
5915	  mark_object (blv->defcell);
(gdb) finish 
Run till exit from #0  mark_localized_symbol (ptr=ptr@entry=0xc2d770)
    at alloc.c:5915
mark_object (arg=<optimized out>) at alloc.c:6219
6219		    break;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6219
mark_vectorlike (ptr=ptr@entry=0x1286bb8) at alloc.c:5790
5790	  for (i = 0; i < size; i++) /* ...and then mark its elements.  */
(gdb) finish 
Run till exit from #0  mark_vectorlike (ptr=ptr@entry=0x1286bb8)
    at alloc.c:5790
0x000000000053407d in mark_object (arg=<optimized out>) at alloc.c:6190
6190		    mark_vectorlike (ptr);
(gdb) finish 
Run till exit from #0  0x000000000053407d in mark_object (arg=<optimized out>)
    at alloc.c:6190
mark_object (arg=<optimized out>) at alloc.c:6206
6206		mark_object (ptr->plist);
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6206
mark_vectorlike (ptr=ptr@entry=0x11a1d70) at alloc.c:5790
5790	  for (i = 0; i < size; i++) /* ...and then mark its elements.  */
(gdb) finish 
Run till exit from #0  mark_vectorlike (ptr=ptr@entry=0x11a1d70)
    at alloc.c:5790
0x000000000053407d in mark_object (arg=<optimized out>) at alloc.c:6190
6190		    mark_vectorlike (ptr);
(gdb) finish 
Run till exit from #0  0x000000000053407d in mark_object (arg=<optimized out>)
    at alloc.c:6190
mark_object (arg=<optimized out>) at alloc.c:6206
6206		mark_object (ptr->plist);
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6206
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
0x00000000005340d3 in mark_object (arg=<optimized out>) at alloc.c:6209
6209		  case SYMBOL_PLAINVAL: mark_object (SYMBOL_VAL (ptr)); break;
(gdb) finish 
Run till exit from #0  0x00000000005340d3 in mark_object (arg=<optimized out>)
    at alloc.c:6209
mark_vectorlike (ptr=ptr@entry=0x120d240) at alloc.c:5790
5790	  for (i = 0; i < size; i++) /* ...and then mark its elements.  */
(gdb) finish 
Run till exit from #0  mark_vectorlike (ptr=ptr@entry=0x120d240)
    at alloc.c:5790
0x000000000053407d in mark_object (arg=<optimized out>) at alloc.c:6190
6190		    mark_vectorlike (ptr);
(gdb) finish 
Run till exit from #0  0x000000000053407d in mark_object (arg=<optimized out>)
    at alloc.c:6190
mark_object (arg=<optimized out>) at alloc.c:6206
6206		mark_object (ptr->plist);
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6206
mark_vectorlike (ptr=ptr@entry=0x1be6fe8) at alloc.c:5790
5790	  for (i = 0; i < size; i++) /* ...and then mark its elements.  */
(gdb) finish 
Run till exit from #0  mark_vectorlike (ptr=ptr@entry=0x1be6fe8)
    at alloc.c:5790
0x000000000053407d in mark_object (arg=<optimized out>) at alloc.c:6190
6190		    mark_vectorlike (ptr);
(gdb) finish 
Run till exit from #0  0x000000000053407d in mark_object (arg=<optimized out>)
    at alloc.c:6190
0x0000000000534031 in mark_object (arg=<optimized out>) at alloc.c:6167
6167			mark_object (h->key_and_value);
(gdb) finish 
Run till exit from #0  0x0000000000534031 in mark_object (arg=<optimized out>)
    at alloc.c:6167
0x00000000005340d3 in mark_object (arg=<optimized out>) at alloc.c:6209
6209		  case SYMBOL_PLAINVAL: mark_object (SYMBOL_VAL (ptr)); break;
(gdb) finish 
Run till exit from #0  0x00000000005340d3 in mark_object (arg=<optimized out>)
    at alloc.c:6209
mark_vectorlike (ptr=ptr@entry=0x120d408) at alloc.c:5790
5790	  for (i = 0; i < size; i++) /* ...and then mark its elements.  */
(gdb) finish 
Run till exit from #0  mark_vectorlike (ptr=ptr@entry=0x120d408)
    at alloc.c:5790
0x000000000053407d in mark_object (arg=<optimized out>) at alloc.c:6190
6190		    mark_vectorlike (ptr);
(gdb) finish 
Run till exit from #0  0x000000000053407d in mark_object (arg=<optimized out>)
    at alloc.c:6190
mark_object (arg=<optimized out>) at alloc.c:6206
6206		mark_object (ptr->plist);
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6206
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
0x00000000005340d3 in mark_object (arg=<optimized out>) at alloc.c:6209
6209		  case SYMBOL_PLAINVAL: mark_object (SYMBOL_VAL (ptr)); break;
(gdb) finish 
Run till exit from #0  0x00000000005340d3 in mark_object (arg=<optimized out>)
    at alloc.c:6209
mark_vectorlike (ptr=ptr@entry=0x128adb0) at alloc.c:5790
5790	  for (i = 0; i < size; i++) /* ...and then mark its elements.  */
(gdb) finish 
Run till exit from #0  mark_vectorlike (ptr=ptr@entry=0x128adb0)
    at alloc.c:5790
0x000000000053407d in mark_object (arg=<optimized out>) at alloc.c:6190
6190		    mark_vectorlike (ptr);
(gdb) finish 
Run till exit from #0  0x000000000053407d in mark_object (arg=<optimized out>)
    at alloc.c:6190
mark_object (arg=<optimized out>) at alloc.c:6206
6206		mark_object (ptr->plist);
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6206
mark_vectorlike (ptr=ptr@entry=0x128bd90) at alloc.c:5790
5790	  for (i = 0; i < size; i++) /* ...and then mark its elements.  */
(gdb) finish 
Run till exit from #0  mark_vectorlike (ptr=ptr@entry=0x128bd90)
    at alloc.c:5790
0x000000000053407d in mark_object (arg=<optimized out>) at alloc.c:6190
6190		    mark_vectorlike (ptr);
(gdb) finish 
Run till exit from #0  0x000000000053407d in mark_object (arg=<optimized out>)
    at alloc.c:6190
mark_object (arg=<optimized out>) at alloc.c:6206
6206		mark_object (ptr->plist);
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6206
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_compiled (ptr=0x128ce88) at alloc.c:5830
5830	  for (i = 0; i < size; i++)
(gdb) finish 
Run till exit from #0  mark_compiled (ptr=0x128ce88) at alloc.c:5830
0x0000000000533f40 in mark_object (arg=<optimized out>) at alloc.c:6107
6107		    obj = mark_compiled (ptr);
Value returned is $26 = 19451469
(gdb) finish 
Run till exit from #0  0x0000000000533f40 in mark_object (arg=<optimized out>)
    at alloc.c:6107
mark_object (arg=<optimized out>) at alloc.c:6206
6206		mark_object (ptr->plist);
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6206
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6207
6207		switch (ptr->redirect)
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6207
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6207
6207		switch (ptr->redirect)
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6207
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_vectorlike (ptr=ptr@entry=0x1215678) at alloc.c:5790
5790	  for (i = 0; i < size; i++) /* ...and then mark its elements.  */
(gdb) finish 
Run till exit from #0  mark_vectorlike (ptr=ptr@entry=0x1215678)
    at alloc.c:5790
0x000000000053407d in mark_object (arg=<optimized out>) at alloc.c:6190
6190		    mark_vectorlike (ptr);
(gdb) finish 
Run till exit from #0  0x000000000053407d in mark_object (arg=<optimized out>)
    at alloc.c:6190
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6207
6207		switch (ptr->redirect)
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6207
mark_vectorlike (ptr=ptr@entry=0xf82e50) at alloc.c:5790
5790	  for (i = 0; i < size; i++) /* ...and then mark its elements.  */
(gdb) finish 
Run till exit from #0  mark_vectorlike (ptr=ptr@entry=0xf82e50) at alloc.c:5790
0x000000000053407d in mark_object (arg=<optimized out>) at alloc.c:6190
6190		    mark_vectorlike (ptr);
(gdb) finish 
Run till exit from #0  0x000000000053407d in mark_object (arg=<optimized out>)
    at alloc.c:6190
mark_object (arg=<optimized out>) at alloc.c:6206
6206		mark_object (ptr->plist);
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6206
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6207
6207		switch (ptr->redirect)
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6207
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6207
6207		switch (ptr->redirect)
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6207
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6207
6207		switch (ptr->redirect)
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6207
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
0x00000000005340d3 in mark_object (arg=<optimized out>) at alloc.c:6209
6209		  case SYMBOL_PLAINVAL: mark_object (SYMBOL_VAL (ptr)); break;
(gdb) finish 
Run till exit from #0  0x00000000005340d3 in mark_object (arg=<optimized out>)
    at alloc.c:6209
mark_vectorlike (ptr=ptr@entry=0x1226380) at alloc.c:5790
5790	  for (i = 0; i < size; i++) /* ...and then mark its elements.  */
(gdb) finish 
Run till exit from #0  mark_vectorlike (ptr=ptr@entry=0x1226380)
    at alloc.c:5790
0x000000000053407d in mark_object (arg=<optimized out>) at alloc.c:6190
6190		    mark_vectorlike (ptr);
(gdb) finish 
Run till exit from #0  0x000000000053407d in mark_object (arg=<optimized out>)
    at alloc.c:6190
mark_object (arg=<optimized out>) at alloc.c:6206
6206		mark_object (ptr->plist);
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6206
mark_object (arg=<optimized out>) at alloc.c:6206
6206		mark_object (ptr->plist);
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6206
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
0x00000000005340d3 in mark_object (arg=<optimized out>) at alloc.c:6209
6209		  case SYMBOL_PLAINVAL: mark_object (SYMBOL_VAL (ptr)); break;
(gdb) finish 
Run till exit from #0  0x00000000005340d3 in mark_object (arg=<optimized out>)
    at alloc.c:6209
mark_object (arg=<optimized out>) at alloc.c:6206
6206		mark_object (ptr->plist);
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6206
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6206
6206		mark_object (ptr->plist);
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6206
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6287
6287		obj = ptr->u.cdr;
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6287
mark_object (arg=<optimized out>) at alloc.c:6207
6207		switch (ptr->redirect)
(gdb) finish 
Run till exit from #0  mark_object (arg=<optimized out>) at alloc.c:6207
mark_char_table (ptr=0xc1aee0, pvectype=pvectype@entry=PVEC_SUB_CHAR_TABLE)
    at alloc.c:5807
5807	  for (i = idx; i < size; i++)
(gdb) finish 
Run till exit from #0  mark_char_table (ptr=0xc1aee0, 
    pvectype=pvectype@entry=PVEC_SUB_CHAR_TABLE) at alloc.c:5807
0x00000000005353e2 in mark_char_table (ptr=ptr@entry=0xbe5708, pvectype=<optimized out>)
    at alloc.c:5816
5816		    mark_char_table (XVECTOR (val), PVEC_SUB_CHAR_TABLE);
--8<---------------cut here---------------end--------------->8---

Bye,
Tassilo





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-24 13:30                 ` Tassilo Horn
@ 2015-10-24 13:57                   ` Artur Malabarba
  2015-10-24 14:06                     ` Eli Zaretskii
  2015-10-24 14:05                   ` Eli Zaretskii
  1 sibling, 1 reply; 28+ messages in thread
From: Artur Malabarba @ 2015-10-24 13:57 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: Stefan Monnier, 21747, Kim Storm

2015-10-24 14:30 GMT+01:00 Tassilo Horn <tsdh@gnu.org>:
> Eli Zaretskii <eliz@gnu.org> writes:
>
>>> My recipe for reproduction is
>>>
>>>   1. emacs -Q
>>>   2. M-x package-initialize
>>>   3. M-x global-aggressive-indent-mode
>>>   4. C-x C-f ~/test.sh
>>>   5. type the keyword if where the i is displayed immediately
>>>      and the display of f is delayed
>>>
>>> This does only occur for sh-mode keywords like if, while, etc. where the
>>> delaying starts with after entering the last char of the keyword.  Also,
>>> I can reproduce that problem only if test.sh doesn't exist.
>>
>> I don't understand: are you saying that the post-command-hook finished
>> its job, and yet redisplay is not entered?
>
> Yes, or rather the function aggressive-indent--indent-if-changed which
> is in post-command-hook finished.

Are you positive? It could be an infinite loop in the indentation engine.

Disclaimer: I didn't read the backtrace you posted.





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-24 13:30                 ` Tassilo Horn
  2015-10-24 13:57                   ` Artur Malabarba
@ 2015-10-24 14:05                   ` Eli Zaretskii
  2015-10-25  7:19                     ` Tassilo Horn
  1 sibling, 1 reply; 28+ messages in thread
From: Eli Zaretskii @ 2015-10-24 14:05 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: storm, monnier, 21747, bruce.connor.am

> From: Tassilo Horn <tsdh@gnu.org>
> Cc: bruce.connor.am@gmail.com,  monnier@iro.umontreal.ca,  storm@cua.dk,  21747@debbugs.gnu.org
> Date: Sat, 24 Oct 2015 15:30:11 +0200
> 
> Eli Zaretskii <eliz@gnu.org> writes:
> 
> >> My recipe for reproduction is
> >> 
> >>   1. emacs -Q
> >>   2. M-x package-initialize
> >>   3. M-x global-aggressive-indent-mode
> >>   4. C-x C-f ~/test.sh
> >>   5. type the keyword if where the i is displayed immediately
> >>      and the display of f is delayed
> >> 
> >> This does only occur for sh-mode keywords like if, while, etc. where the
> >> delaying starts with after entering the last char of the keyword.  Also,
> >> I can reproduce that problem only if test.sh doesn't exist.
> >
> > I don't understand: are you saying that the post-command-hook finished
> > its job, and yet redisplay is not entered?
> 
> Yes, or rather the function aggressive-indent--indent-if-changed which
> is in post-command-hook finished.
> 
> >> Or well, I just tried what happens when I replace the `while-no-input'
> >> with a `progn'.  Then Emacs goes into some infloop.  Attaching with gdb
> >> shows:
> >
> > There's a procedure in etc/DEBUG to determine which call-stack frame
> > infloops, please use it and tell what you found.
> 
> Ok, so with the aggressive-indent--indent-if-changed where
> while-no-input is replaced with progn, I perform my recipe until emacs
> infloops.  Then do "kill -TSTP <PID>" and repeatedly "finish" at the gdb
> prompt.  But the last frame being displayed in GDB before finish doesn't
> return anymore is not always the same.  Most of the time it is poll ()
> from /usr/lib/libc.so.6.  Here are two other results.

No, that's bogus (GC cannot infloop, you just didn't wait long enough
for that "finish" to return).

The function that infloops is re-search-backward, because it is called
with LIMIT set to zero.  The real problem is here:

  (defun sh-smie--keyword-p ()
    "Non-nil if we're at a keyword position.
  A keyword position is one where if we're looking at something that looks
  like a keyword, then it is a keyword."
    (let ((prev (funcall smie-backward-token-function)))
      (if (zerop (length prev))
	  (looking-back "\\`\\|\\s(" (1- (point)))  <<<<<<<<<<<<<<<<<<
	(assoc prev smie-grammar))))

What do you expect looking-back to do here when point is at BOB?





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-24 13:57                   ` Artur Malabarba
@ 2015-10-24 14:06                     ` Eli Zaretskii
  0 siblings, 0 replies; 28+ messages in thread
From: Eli Zaretskii @ 2015-10-24 14:06 UTC (permalink / raw)
  To: bruce.connor.am; +Cc: tsdh, monnier, 21747, storm

> Date: Sat, 24 Oct 2015 14:57:40 +0100
> From: Artur Malabarba <bruce.connor.am@gmail.com>
> Cc: Eli Zaretskii <eliz@gnu.org>, Stefan Monnier <monnier@iro.umontreal.ca>, Kim Storm <storm@cua.dk>, 
> 	21747@debbugs.gnu.org
> 
> 2015-10-24 14:30 GMT+01:00 Tassilo Horn <tsdh@gnu.org>:
> > Eli Zaretskii <eliz@gnu.org> writes:
> >
> >>> My recipe for reproduction is
> >>>
> >>>   1. emacs -Q
> >>>   2. M-x package-initialize
> >>>   3. M-x global-aggressive-indent-mode
> >>>   4. C-x C-f ~/test.sh
> >>>   5. type the keyword if where the i is displayed immediately
> >>>      and the display of f is delayed
> >>>
> >>> This does only occur for sh-mode keywords like if, while, etc. where the
> >>> delaying starts with after entering the last char of the keyword.  Also,
> >>> I can reproduce that problem only if test.sh doesn't exist.
> >>
> >> I don't understand: are you saying that the post-command-hook finished
> >> its job, and yet redisplay is not entered?
> >
> > Yes, or rather the function aggressive-indent--indent-if-changed which
> > is in post-command-hook finished.
> 
> Are you positive? It could be an infinite loop in the indentation engine.

Indeed, it is.  See my other message.





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-24 14:05                   ` Eli Zaretskii
@ 2015-10-25  7:19                     ` Tassilo Horn
  2015-10-25  8:10                       ` Tassilo Horn
  2015-10-25 18:43                       ` Eli Zaretskii
  0 siblings, 2 replies; 28+ messages in thread
From: Tassilo Horn @ 2015-10-25  7:19 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: storm, monnier, 21747, bruce.connor.am

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Tassilo Horn <tsdh@gnu.org>
>> Cc: bruce.connor.am@gmail.com, monnier@iro.umontreal.ca, storm@cua.dk,
>> 21747@debbugs.gnu.org
>> Date: Sat, 24 Oct 2015 15:30:11 +0200
>> 
>> Eli Zaretskii <eliz@gnu.org> writes:
>> 
>> >> My recipe for reproduction is
>> >> 
>> >>   1. emacs -Q
>> >>   2. M-x package-initialize
>> >>   3. M-x global-aggressive-indent-mode
>> >>   4. C-x C-f ~/test.sh
>> >>   5. type the keyword if where the i is displayed immediately
>> >>      and the display of f is delayed
>> >> 
>> >> This does only occur for sh-mode keywords like if, while, etc. where the
>> >> delaying starts with after entering the last char of the keyword.  Also,
>> >> I can reproduce that problem only if test.sh doesn't exist.
>> >
>> > I don't understand: are you saying that the post-command-hook finished
>> > its job, and yet redisplay is not entered?
>> 
>> Yes, or rather the function aggressive-indent--indent-if-changed which
>> is in post-command-hook finished.
>> 
>> >> Or well, I just tried what happens when I replace the `while-no-input'
>> >> with a `progn'.  Then Emacs goes into some infloop.  Attaching with gdb
>> >> shows:
>> >
>> > There's a procedure in etc/DEBUG to determine which call-stack frame
>> > infloops, please use it and tell what you found.
>> 
>> Ok, so with the aggressive-indent--indent-if-changed where
>> while-no-input is replaced with progn, I perform my recipe until emacs
>> infloops.  Then do "kill -TSTP <PID>" and repeatedly "finish" at the gdb
>> prompt.  But the last frame being displayed in GDB before finish doesn't
>> return anymore is not always the same.  Most of the time it is poll ()
>> from /usr/lib/libc.so.6.  Here are two other results.
>
> No, that's bogus (GC cannot infloop, you just didn't wait long enough
> for that "finish" to return).

Oh, sorry.

> The function that infloops is re-search-backward, because it is called
> with LIMIT set to zero.  The real problem is here:
>
>   (defun sh-smie--keyword-p ()
>     "Non-nil if we're at a keyword position.
>   A keyword position is one where if we're looking at something that looks
>   like a keyword, then it is a keyword."
>     (let ((prev (funcall smie-backward-token-function)))
>       (if (zerop (length prev))
> 	  (looking-back "\\`\\|\\s(" (1- (point)))  <<<<<<<<<<<<<<<<<<
> 	(assoc prev smie-grammar))))
>
> What do you expect looking-back to do here when point is at BOB?

I think when point is a BOB, then the \\` part of the regex would match
for sure so replacing looking-back with (or (bobp) (looking-back ...))
would have the same semantics, right?  So I've tried this patch:

--8<---------------cut here---------------start------------->8---
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index fbb4a90..2e708f7 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -1774,7 +1774,8 @@ sh-smie--keyword-p
 like a keyword, then it is a keyword."
   (let ((prev (funcall smie-backward-token-function)))
     (if (zerop (length prev))
-        (looking-back "\\`\\|\\s(" (1- (point)))
+        (or (bobp)
+            (looking-back "\\`\\|\\s(" (1- (point))))
       (assoc prev smie-grammar))))
 
 (defun sh-smie--newline-semi-p (&optional tok)
@@ -1788,7 +1789,8 @@ sh-smie--newline-semi-p
     (unless tok
       (setq tok (funcall smie-backward-token-function)))
     (if (and (zerop (length tok))
-             (looking-back "\\s(" (1- (point))))
+             (or (bobp)
+                 (looking-back "\\s(" (1- (point)))))
         nil
       (not (numberp (nth 2 (assoc tok smie-grammar)))))))
 
@@ -2172,7 +2174,7 @@ sh-smie--rc-after-special-arg-p
   "Check if we're after the first arg of an if/while/for/... construct.
 Returns the construct's token and moves point before it, if so."
   (forward-comment (- (point)))
-  (when (looking-back ")\\|\\_<not" (- (point) 3))
+  (when (looking-back ")\\|\\_<not" (max (point-min) (- (point) 3)))
     (ignore-errors
       (let ((forward-sexp-function nil))
         (forward-sexp -1)
--8<---------------cut here---------------end--------------->8---

But that still loops.  When tracing all aggressive-indent and sh-smie
functions, that's the problematic call stack, i.e., the case where
(sh-smie-sh-forward-token) returns ";".

--8<---------------cut here---------------start------------->8---
1 -> (aggressive-indent--indent-if-changed)
| 2 -> (aggressive-indent--run-user-hooks)
| 2 <- aggressive-indent--run-user-hooks: nil
| 2 -> (aggressive-indent--softly-indent-region-and-on 2 3)
| | 3 -> (aggressive-indent-indent-region-and-on 2 3)
| | | 4 -> (sh-smie--indent-continuation)
| | | | 5 -> (sh-smie--looking-back-at-continuation-p)
| | | | 5 <- sh-smie--looking-back-at-continuation-p: nil
| | | 4 <- sh-smie--indent-continuation: nil
| | | 4 -> (sh-smie-sh-forward-token)
| | | | 5 -> (sh-smie--default-forward-token)
| | | | 5 <- sh-smie--default-forward-token: "if"
| | | | 5 -> (sh-smie--sh-keyword-p "if")
| | | | | 6 -> (sh-smie--keyword-p)
| | | | | | 7 -> (sh-smie-sh-backward-token)
| | | | | | | 8 -> (sh-smie--default-backward-token)
| | | | | | | 8 <- sh-smie--default-backward-token: ""
| | | | | | 7 <- sh-smie-sh-backward-token: ""
| | | | | 6 <- sh-smie--keyword-p: t
| | | | 5 <- sh-smie--sh-keyword-p: t
| | | 4 <- sh-smie-sh-forward-token: "if"
| | | 4 -> (sh-smie-sh-forward-token)
| | | | 5 -> (sh-smie--newline-semi-p)
| | | | | 6 -> (sh-smie-sh-backward-token)
| | | | | | 7 -> (sh-smie--default-backward-token)
| | | | | | 7 <- sh-smie--default-backward-token: "if"
| | | | | | 7 -> (sh-smie--sh-keyword-p "if")
| | | | | | | 8 -> (sh-smie--keyword-p)
| | | | | | | | 9 -> (sh-smie-sh-backward-token)
| | | | | | | | | 10 -> (sh-smie--default-backward-token)
| | | | | | | | | 10 <- sh-smie--default-backward-token: ""
| | | | | | | | 9 <- sh-smie-sh-backward-token: ""
| | | | | | | 8 <- sh-smie--keyword-p: t
| | | | | | 7 <- sh-smie--sh-keyword-p: t
| | | | | 6 <- sh-smie-sh-backward-token: "if"
| | | | 5 <- sh-smie--newline-semi-p: nil
| | | 4 <- sh-smie-sh-forward-token: ";"
| | | 4 -> (sh-smie-sh-forward-token)
| | | | 5 -> (sh-smie--newline-semi-p)
| | | | | 6 -> (sh-smie-sh-backward-token)
| | | | | | 7 -> (sh-smie--default-backward-token)
| | | | | | 7 <- sh-smie--default-backward-token: "if"
| | | | | | 7 -> (sh-smie--sh-keyword-p "if")
| | | | | | | 8 -> (sh-smie--keyword-p)
| | | | | | | | 9 -> (sh-smie-sh-backward-token)
| | | | | | | | | 10 -> (sh-smie--default-backward-token)
| | | | | | | | | 10 <- sh-smie--default-backward-token: ""
| | | | | | | | 9 <- sh-smie-sh-backward-token: ""
| | | | | | | 8 <- sh-smie--keyword-p: t
| | | | | | 7 <- sh-smie--sh-keyword-p: t
| | | | | 6 <- sh-smie-sh-backward-token: "if"
| | | | 5 <- sh-smie--newline-semi-p: nil
| | | 4 <- sh-smie-sh-forward-token: ";"

[... gazillion of times...]

| | | 4 -> (sh-smie-sh-forward-token)
| | | | 5 -> (sh-smie--newline-semi-p)
| | | | | 6 -> (sh-smie-sh-backward-token)
| | | | | | 7 -> (sh-smie--default-backward-token)
| | | | | | 7 <- sh-smie--default-backward-token: "if"
| | | | | | 7 -> (sh-smie--sh-keyword-p "if")
| | | | | | | 8 -> (sh-smie--keyword-p)
| | | | | | | | 9 -> (sh-smie-sh-backward-token)
| | | | | | | | | 10 -> (sh-smie--default-backward-token)
| | | | | | | | 9 <- sh-smie-sh-backward-token: !non-local\ exit!
| | | | | | | 8 <- sh-smie--keyword-p: !non-local\ exit!
| | | | | | 7 <- sh-smie--sh-keyword-p: !non-local\ exit!
| | | | | 6 <- sh-smie-sh-backward-token: !non-local\ exit!
| | | | 5 <- sh-smie--newline-semi-p: !non-local\ exit!
| | | 4 <- sh-smie-sh-forward-token: !non-local\ exit!
| | 3 <- aggressive-indent-indent-region-and-on: !non-local\ exit!
| 2 <- aggressive-indent--softly-indent-region-and-on: !non-local\ exit!
1 <- aggressive-indent--indent-if-changed: t
--8<---------------cut here---------------end--------------->8---

Bye,
Tassilo





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-25  7:19                     ` Tassilo Horn
@ 2015-10-25  8:10                       ` Tassilo Horn
  2015-10-25  9:25                         ` Tassilo Horn
  2015-10-25 18:43                       ` Eli Zaretskii
  1 sibling, 1 reply; 28+ messages in thread
From: Tassilo Horn @ 2015-10-25  8:10 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: storm, monnier, 21747, bruce.connor.am

Tassilo Horn <tsdh@gnu.org> writes:

> Eli Zaretskii <eliz@gnu.org> writes:
>
>>> From: Tassilo Horn <tsdh@gnu.org>
>>> Cc: bruce.connor.am@gmail.com, monnier@iro.umontreal.ca, storm@cua.dk,
>>> 21747@debbugs.gnu.org
>>> Date: Sat, 24 Oct 2015 15:30:11 +0200
>>> 
>>> Eli Zaretskii <eliz@gnu.org> writes:
>>> 
>>> >> My recipe for reproduction is
>>> >> 
>>> >>   1. emacs -Q
>>> >>   2. M-x package-initialize
>>> >>   3. M-x global-aggressive-indent-mode
>>> >>   4. C-x C-f ~/test.sh
>>> >>   5. type the keyword if where the i is displayed immediately
>>> >>      and the display of f is delayed
>>> >> 
>>> >> This does only occur for sh-mode keywords like if, while, etc. where the
>>> >> delaying starts with after entering the last char of the keyword.  Also,
>>> >> I can reproduce that problem only if test.sh doesn't exist.
>>> >
>>> > I don't understand: are you saying that the post-command-hook finished
>>> > its job, and yet redisplay is not entered?
>>> 
>>> Yes, or rather the function aggressive-indent--indent-if-changed which
>>> is in post-command-hook finished.
>>> 
>>> >> Or well, I just tried what happens when I replace the `while-no-input'
>>> >> with a `progn'.  Then Emacs goes into some infloop.  Attaching with gdb
>>> >> shows:
>>> >
>>> > There's a procedure in etc/DEBUG to determine which call-stack frame
>>> > infloops, please use it and tell what you found.
>>> 
>>> Ok, so with the aggressive-indent--indent-if-changed where
>>> while-no-input is replaced with progn, I perform my recipe until emacs
>>> infloops.  Then do "kill -TSTP <PID>" and repeatedly "finish" at the gdb
>>> prompt.  But the last frame being displayed in GDB before finish doesn't
>>> return anymore is not always the same.  Most of the time it is poll ()
>>> from /usr/lib/libc.so.6.  Here are two other results.
>>
>> No, that's bogus (GC cannot infloop, you just didn't wait long enough
>> for that "finish" to return).
>
> Oh, sorry.
>
>> The function that infloops is re-search-backward, because it is called
>> with LIMIT set to zero.  The real problem is here:
>>
>>   (defun sh-smie--keyword-p ()
>>     "Non-nil if we're at a keyword position.
>>   A keyword position is one where if we're looking at something that looks
>>   like a keyword, then it is a keyword."
>>     (let ((prev (funcall smie-backward-token-function)))
>>       (if (zerop (length prev))
>> 	  (looking-back "\\`\\|\\s(" (1- (point)))  <<<<<<<<<<<<<<<<<<
>> 	(assoc prev smie-grammar))))
>>
>> What do you expect looking-back to do here when point is at BOB?
>
> I think when point is a BOB, then the \\` part of the regex would match
> for sure so replacing looking-back with (or (bobp) (looking-back ...))
> would have the same semantics, right?  So I've tried this patch:

By the way, I cannot reproduce an infloop in re-search-backward when
LIMIT is zero.  Instead, with the current unchanged master code I also
have pretty much the same infloop on the SMIE lisp level as in the
previous mail where I patched the code in order not to run in LIMIT = 0
cases:

1 -> (aggressive-indent--indent-if-changed)
| 2 -> (aggressive-indent--run-user-hooks)
| 2 <- aggressive-indent--run-user-hooks: nil
| 2 -> (aggressive-indent--softly-indent-region-and-on 2 3)
| | 3 -> (aggressive-indent-indent-region-and-on 2 3)
| | | 4 -> (sh-smie--indent-continuation)
| | | | 5 -> (sh-smie--looking-back-at-continuation-p)
| | | | 5 <- sh-smie--looking-back-at-continuation-p: nil
| | | 4 <- sh-smie--indent-continuation: nil
| | | 4 -> (sh-smie-sh-forward-token)
| | | | 5 -> (sh-smie--default-forward-token)
| | | | 5 <- sh-smie--default-forward-token: "if"
| | | | 5 -> (sh-smie--sh-keyword-p "if")
| | | | | 6 -> (sh-smie--keyword-p)
| | | | | | 7 -> (sh-smie-sh-backward-token)
| | | | | | | 8 -> (sh-smie--default-backward-token)
| | | | | | | 8 <- sh-smie--default-backward-token: ""
| | | | | | 7 <- sh-smie-sh-backward-token: ""
| | | | | 6 <- sh-smie--keyword-p: t
| | | | 5 <- sh-smie--sh-keyword-p: t
| | | 4 <- sh-smie-sh-forward-token: "if"
| | | 4 -> (sh-smie-sh-forward-token)
| | | | 5 -> (sh-smie--newline-semi-p)
| | | | | 6 -> (sh-smie-sh-backward-token)
| | | | | | 7 -> (sh-smie--default-backward-token)
| | | | | | 7 <- sh-smie--default-backward-token: "if"
| | | | | | 7 -> (sh-smie--sh-keyword-p "if")
| | | | | | | 8 -> (sh-smie--keyword-p)
| | | | | | | | 9 -> (sh-smie-sh-backward-token)
| | | | | | | | | 10 -> (sh-smie--default-backward-token)
| | | | | | | | | 10 <- sh-smie--default-backward-token: ""
| | | | | | | | 9 <- sh-smie-sh-backward-token: ""
| | | | | | | 8 <- sh-smie--keyword-p: t
| | | | | | 7 <- sh-smie--sh-keyword-p: t
| | | | | 6 <- sh-smie-sh-backward-token: "if"
| | | | 5 <- sh-smie--newline-semi-p: nil
| | | 4 <- sh-smie-sh-forward-token: ";"

[the above one repeats indefinitely]

| | | 4 -> (sh-smie-sh-forward-token)
| | | | 5 -> (sh-smie--newline-semi-p)
| | | | | 6 -> (sh-smie-sh-backward-token)
| | | | | | 7 -> (sh-smie--default-backward-token)
| | | | | | 7 <- sh-smie--default-backward-token: "if"
| | | | | | 7 -> (sh-smie--sh-keyword-p "if")
| | | | | | | 8 -> (sh-smie--keyword-p)
| | | | | | | | 9 -> (sh-smie-sh-backward-token)
| | | | | | | 8 <- sh-smie--keyword-p: !non-local\ exit!
| | | | | | 7 <- sh-smie--sh-keyword-p: !non-local\ exit!
| | | | | 6 <- sh-smie-sh-backward-token: !non-local\ exit!
| | | | 5 <- sh-smie--newline-semi-p: !non-local\ exit!
| | | 4 <- sh-smie-sh-forward-token: !non-local\ exit!
| | 3 <- aggressive-indent-indent-region-and-on: !non-local\ exit!
| 2 <- aggressive-indent--softly-indent-region-and-on: !non-local\ exit!
1 <- aggressive-indent--indent-if-changed: t

Bye,
Tassilo





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-25  8:10                       ` Tassilo Horn
@ 2015-10-25  9:25                         ` Tassilo Horn
  2015-10-25 18:45                           ` Eli Zaretskii
  2015-10-25 20:10                           ` Stefan Monnier
  0 siblings, 2 replies; 28+ messages in thread
From: Tassilo Horn @ 2015-10-25  9:25 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: storm, monnier, 21747, bruce.connor.am

Tassilo Horn <tsdh@gnu.org> writes:

> By the way, I cannot reproduce an infloop in re-search-backward when
> LIMIT is zero.  Instead, with the current unchanged master code I also
> have pretty much the same infloop on the SMIE lisp level as in the
> previous mail where I patched the code in order not to run in LIMIT =
> 0 cases:
>
> 1 -> (aggressive-indent--indent-if-changed)

[snip]

> | | | 4 -> (sh-smie-sh-forward-token)
> | | | | 5 -> (sh-smie--newline-semi-p)
> | | | | | 6 -> (sh-smie-sh-backward-token)
> | | | | | | 7 -> (sh-smie--default-backward-token)
> | | | | | | 7 <- sh-smie--default-backward-token: "if"
> | | | | | | 7 -> (sh-smie--sh-keyword-p "if")
> | | | | | | | 8 -> (sh-smie--keyword-p)
> | | | | | | | | 9 -> (sh-smie-sh-backward-token)
> | | | | | | | | | 10 -> (sh-smie--default-backward-token)
> | | | | | | | | | 10 <- sh-smie--default-backward-token: ""
> | | | | | | | | 9 <- sh-smie-sh-backward-token: ""
> | | | | | | | 8 <- sh-smie--keyword-p: t
> | | | | | | 7 <- sh-smie--sh-keyword-p: t
> | | | | | 6 <- sh-smie-sh-backward-token: "if"
> | | | | 5 <- sh-smie--newline-semi-p: nil
> | | | 4 <- sh-smie-sh-forward-token: ";"

Ok, that loop is caused by the call to `end-of-defun' in
`aggressive-indent-indent-region-and-on':

          ;; And then we indent each following line until nothing happens.
          (forward-line 1)
          (skip-chars-forward "[:blank:]\n\r\xc")
          (let* ((eod (ignore-errors
                        (save-excursion (end-of-defun)
                                        (point-marker))))

end-of-defun calls beginning-of-defun-raw which works/terminates, and
then it calls end-of-defun-function which just does (forward-sexp 1)
which calls forward-sexp-function being smie-forward-sexp-command which
in turn calls smie-forward-sexp.  Well, and that calls smie-next-sexp
which loops because eventually the token returned by (funcall
next-token) where next-token is a function which calls
sh-smie-sh-forward-token returns ";".  That adds (38 38) to toklevels
and later to levels which is again popped somewhere below and then gets
re-added, popped again, re-added...

Hm, in one branch there's already a test if calling next-token actually
moved point and if not, it throws 'return to terminate the loop.  When I
move that out of the branch, that seems to fix the issue.

--8<---------------cut here---------------start------------->8---
diff --git a/lisp/emacs-lisp/smie.el b/lisp/emacs-lisp/smie.el
index f305025..70ab6f3 100644
--- a/lisp/emacs-lisp/smie.el
+++ b/lisp/emacs-lisp/smie.el
@@ -706,6 +706,9 @@ smie-next-sexp
           (let* ((pos (point))
                  (token (funcall next-token))
                  (toklevels (cdr (assoc token smie-grammar))))
+            (if (eq pos (point))
+                ;; We did not move, so let's abort the loop.
+                (throw 'return (list t (point))))
             (cond
              ((null toklevels)
               (when (zerop (length token))
@@ -719,10 +722,7 @@ smie-next-sexp
                             (list t epos
                                   (buffer-substring-no-properties
                                    epos
-                                   (+ epos (if (< (point) epos) -1 1))))))))
-                (if (eq pos (point))
-                    ;; We did not move, so let's abort the loop.
-                    (throw 'return (list t (point))))))
+                                   (+ epos (if (< (point) epos) -1 1))))))))))
              ((not (numberp (funcall op-back toklevels)))
               ;; A token like a paren-close.
               (cl-assert (numberp  ; Otherwise, why mention it in smie-grammar.
--8<---------------cut here---------------end--------------->8---

But I'm really not sure if that's the right thing to do.  Maybe it's
better to fix sh-smie-sh-forward-token so that it doesn't return ";"
when actually no movement did occur because we already started out at
EOB.  That would be this:

--8<---------------cut here---------------start------------->8---
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index fbb4a90..baed27b 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -1920,10 +1920,11 @@ sh-smie-sh-forward-token
             ;; Pretend the here-document is a "newline representing a
             ;; semi-colon", since the here-doc otherwise covers the newline(s).
             ";")
-        (let ((semi (sh-smie--newline-semi-p)))
-          (forward-line 1)
-          (if (or semi (eobp)) ";"
-            (sh-smie-sh-forward-token))))
+        (unless (eobp)
+          (let ((semi (sh-smie--newline-semi-p)))
+            (forward-line 1)
+            (if (or semi (eobp)) ";"
+              (sh-smie-sh-forward-token)))))
     (forward-comment (point-max))
     (cond
      ((looking-at "\\\\\n") (forward-line 1) (sh-smie-sh-forward-token))
--8<---------------cut here---------------end--------------->8---

I actually can't judge what's the right fix.  I'd tend towards the more
general change in smie.el because I had this delayed display/100% CPU
issue also several times with clojure-mode though I haven't debugged it
in detail there so cannot say if it has been the same issue there.  Of
course, the right fix might be something completely different, too.

Bye,
Tassilo





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-24 10:52           ` Eli Zaretskii
  2015-10-24 12:13             ` Tassilo Horn
@ 2015-10-25 14:43             ` Artur Malabarba
  2015-10-25 18:50               ` Eli Zaretskii
  1 sibling, 1 reply; 28+ messages in thread
From: Artur Malabarba @ 2015-10-25 14:43 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: Tassilo Horn, Stefan Monnier, 21747, Kim Storm

2015-10-24 11:52 GMT+01:00 Eli Zaretskii <eliz@gnu.org>:
>> Date: Sat, 24 Oct 2015 11:30:42 +0100
>> From: Artur Malabarba <bruce.connor.am@gmail.com>
>> Cc: Stefan Monnier <monnier@iro.umontreal.ca>, Kim Storm <storm@cua.dk>, 21747@debbugs.gnu.org,
>>       Eli Zaretskii <eliz@gnu.org>
>>
>> So maybe the docstring for post-command-hook should point out this detail and
>> recommend that functions added to this hook call sit-for if they're going to do
>> potentially expensive processing.
>
> Just being potentially expensive is not enough to trigger the problem.
> You need to actually hog Emacs (or close to that) to prevent redisplay
> from eventually happening.
>
> I agree that expensive processing in post-command-hook is not a good
> idea (and said so several times in the past), but people are still
> doing that, so I guess just advertising the problem is not enough.  (I
> don't object to adding this to documentation, of course.)

I've extended the docstring.
I used redisplay instead of (sit-for 0), because inside a call to
while-no-input it has the exact same effect and is more expressive.

Suggestions welcome.

-otherwise the error might happen repeatedly and make Emacs nonfunctional.  */);
+otherwise the error might happen repeatedly and make Emacs nonfunctional.
+
+It is usually a bad idea to use this hook for expensive processing.
+If unavoidable, `while-no-input' can be used avoid making Emacs
+unresponsive while the user types.  Furthermore, this hook is run
+before redisplay, so the effect of the executed command won't be
+displayed on the buffer until after the hook has finished (giving the
+impression that Emacs is hanging).  You can call `redisplay' inside
+`while-no-input' to avoid this.
+





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-25  7:19                     ` Tassilo Horn
  2015-10-25  8:10                       ` Tassilo Horn
@ 2015-10-25 18:43                       ` Eli Zaretskii
  1 sibling, 0 replies; 28+ messages in thread
From: Eli Zaretskii @ 2015-10-25 18:43 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: storm, monnier, 21747, bruce.connor.am

> From: Tassilo Horn <tsdh@gnu.org>
> Cc: bruce.connor.am@gmail.com,  monnier@iro.umontreal.ca,  storm@cua.dk,  21747@debbugs.gnu.org
> Date: Sun, 25 Oct 2015 08:19:16 +0100
> 
> > No, that's bogus (GC cannot infloop, you just didn't wait long enough
> > for that "finish" to return).
> 
> Oh, sorry.

No need to be sorry.  This kind of stuff happens frequently to me as
well.  It almost happened this time also, I just was lucky to wait a
few more moments.





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-25  9:25                         ` Tassilo Horn
@ 2015-10-25 18:45                           ` Eli Zaretskii
  2015-10-25 18:49                             ` Tassilo Horn
  2015-10-25 20:10                           ` Stefan Monnier
  1 sibling, 1 reply; 28+ messages in thread
From: Eli Zaretskii @ 2015-10-25 18:45 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: storm, monnier, 21747, bruce.connor.am

> From: Tassilo Horn <tsdh@gnu.org>
> Cc: bruce.connor.am@gmail.com,  monnier@iro.umontreal.ca,  storm@cua.dk,  21747@debbugs.gnu.org
> Date: Sun, 25 Oct 2015 10:25:10 +0100
> 
> Ok, that loop is caused by the call to `end-of-defun' in
> `aggressive-indent-indent-region-and-on':

I arrived to the same conclusion by looking at what happens from the C
side.

Given this conclusion, this infloop is no longer relevant to the issue
that is the subject of this bug report, right?





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-25 18:45                           ` Eli Zaretskii
@ 2015-10-25 18:49                             ` Tassilo Horn
  0 siblings, 0 replies; 28+ messages in thread
From: Tassilo Horn @ 2015-10-25 18:49 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: storm, monnier, 21747, bruce.connor.am

Yes, this bug report essentially just reflects my initial and wrong 
assumptions on where the problem is located.


On October 25, 2015 19:45:05 Eli Zaretskii <eliz@gnu.org> wrote:

>> From: Tassilo Horn <tsdh@gnu.org>
>> Cc: bruce.connor.am@gmail.com,  monnier@iro.umontreal.ca,  storm@cua.dk,  
>> 21747@debbugs.gnu.org
>> Date: Sun, 25 Oct 2015 10:25:10 +0100
>>
>> Ok, that loop is caused by the call to `end-of-defun' in
>> `aggressive-indent-indent-region-and-on':
>
> I arrived to the same conclusion by looking at what happens from the C
> side.
>
> Given this conclusion, this infloop is no longer relevant to the issue
> that is the subject of this bug report, right?
>







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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-25 14:43             ` Artur Malabarba
@ 2015-10-25 18:50               ` Eli Zaretskii
  2015-10-26  0:27                 ` Artur Malabarba
  0 siblings, 1 reply; 28+ messages in thread
From: Eli Zaretskii @ 2015-10-25 18:50 UTC (permalink / raw)
  To: bruce.connor.am; +Cc: tsdh, monnier, 21747, storm

> Date: Sun, 25 Oct 2015 14:43:06 +0000
> From: Artur Malabarba <bruce.connor.am@gmail.com>
> Cc: Tassilo Horn <tsdh@gnu.org>, Stefan Monnier <monnier@iro.umontreal.ca>, Kim Storm <storm@cua.dk>, 
> 	21747@debbugs.gnu.org
> 
> I've extended the docstring.

Thanks.

> +otherwise the error might happen repeatedly and make Emacs nonfunctional.
> +
> +It is usually a bad idea to use this hook for expensive processing.
> +If unavoidable, `while-no-input' can be used avoid making Emacs
                                              ^^^
"to" is missing where indicated.

> +unresponsive while the user types.  Furthermore, this hook is run
> +before redisplay, so the effect of the executed command won't be
> +displayed on the buffer until after the hook has finished (giving the
> +impression that Emacs is hanging).  You can call `redisplay' inside
> +`while-no-input' to avoid this.

Perhaps only the 1st sentence or 2 sentences should be left in the doc
string, and the rest moved to the ELisp manual?  It seems too long and
detailed for a doc string.





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-25  9:25                         ` Tassilo Horn
  2015-10-25 18:45                           ` Eli Zaretskii
@ 2015-10-25 20:10                           ` Stefan Monnier
  2015-10-26  6:57                             ` Tassilo Horn
  1 sibling, 1 reply; 28+ messages in thread
From: Stefan Monnier @ 2015-10-25 20:10 UTC (permalink / raw)
  To: Tassilo Horn; +Cc: bruce.connor.am, 21747, storm

> But I'm really not sure if that's the right thing to do.  Maybe it's
> better to fix sh-smie-sh-forward-token so that it doesn't return ";"
> when actually no movement did occur because we already started out at
> EOB.  That would be this:

Sounds right.

> -        (let ((semi (sh-smie--newline-semi-p)))
> -          (forward-line 1)
> -          (if (or semi (eobp)) ";"
> -            (sh-smie-sh-forward-token))))
> +        (unless (eobp)
> +          (let ((semi (sh-smie--newline-semi-p)))
> +            (forward-line 1)
> +            (if (or semi (eobp)) ";"
> +              (sh-smie-sh-forward-token)))))

Another option might be to fix sh-smie--newline-semi-p so it returns nil
when at EOB.  I haven't looked at the code recently, so I can't remember
if that would be better or not.


        Stefan





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-25 18:50               ` Eli Zaretskii
@ 2015-10-26  0:27                 ` Artur Malabarba
  2015-10-26  3:32                   ` Eli Zaretskii
  0 siblings, 1 reply; 28+ messages in thread
From: Artur Malabarba @ 2015-10-26  0:27 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 21747

2015-10-25 18:50 GMT+00:00 Eli Zaretskii <eliz@gnu.org>:
>> Date: Sun, 25 Oct 2015 14:43:06 +0000
>> From: Artur Malabarba <bruce.connor.am@gmail.com>
>> Cc: Tassilo Horn <tsdh@gnu.org>, Stefan Monnier <monnier@iro.umontreal.ca>, Kim Storm <storm@cua.dk>,
>>       21747@debbugs.gnu.org
>>
>> I've extended the docstring.
>
> Thanks.
>
>> +otherwise the error might happen repeatedly and make Emacs nonfunctional.
>> +
>> +It is usually a bad idea to use this hook for expensive processing.
>> +If unavoidable, `while-no-input' can be used avoid making Emacs
>                                               ^^^
> "to" is missing where indicated.
>
>> +unresponsive while the user types.  Furthermore, this hook is run
>> +before redisplay, so the effect of the executed command won't be
>> +displayed on the buffer until after the hook has finished (giving the
>> +impression that Emacs is hanging).  You can call `redisplay' inside
>> +`while-no-input' to avoid this.
>
> Perhaps only the 1st sentence or 2 sentences should be left in the doc
> string, and the rest moved to the ELisp manual?  It seems too long and
> detailed for a doc string.

How about reducing the second paragraph to this? Still to long?

It is a bad idea to use this hook for expensive processing.  If
unavoidable, wrap your code in `(while-no-input (redisplay) CODE)' to
avoid making Emacs unresponsive while the user types.





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-26  0:27                 ` Artur Malabarba
@ 2015-10-26  3:32                   ` Eli Zaretskii
  2015-10-26 13:43                     ` Tassilo Horn
  0 siblings, 1 reply; 28+ messages in thread
From: Eli Zaretskii @ 2015-10-26  3:32 UTC (permalink / raw)
  To: bruce.connor.am; +Cc: 21747

> Date: Mon, 26 Oct 2015 00:27:22 +0000
> From: Artur Malabarba <bruce.connor.am@gmail.com>
> Cc: 21747@debbugs.gnu.org
> 
> 2015-10-25 18:50 GMT+00:00 Eli Zaretskii <eliz@gnu.org>:
> >> Date: Sun, 25 Oct 2015 14:43:06 +0000
> >> From: Artur Malabarba <bruce.connor.am@gmail.com>
> >> Cc: Tassilo Horn <tsdh@gnu.org>, Stefan Monnier <monnier@iro.umontreal.ca>, Kim Storm <storm@cua.dk>,
> >>       21747@debbugs.gnu.org
> >>
> >> +otherwise the error might happen repeatedly and make Emacs nonfunctional.
> >> +
> >> +It is usually a bad idea to use this hook for expensive processing.
> >> +If unavoidable, `while-no-input' can be used avoid making Emacs
> >                                               ^^^
> > "to" is missing where indicated.
> >
> >> +unresponsive while the user types.  Furthermore, this hook is run
> >> +before redisplay, so the effect of the executed command won't be
> >> +displayed on the buffer until after the hook has finished (giving the
> >> +impression that Emacs is hanging).  You can call `redisplay' inside
> >> +`while-no-input' to avoid this.
> >
> > Perhaps only the 1st sentence or 2 sentences should be left in the doc
> > string, and the rest moved to the ELisp manual?  It seems too long and
> > detailed for a doc string.
> 
> How about reducing the second paragraph to this? Still to long?
> 
> It is a bad idea to use this hook for expensive processing.  If
> unavoidable, wrap your code in `(while-no-input (redisplay) CODE)' to
> avoid making Emacs unresponsive while the user types.

No, this is exactly right, thanks.





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-25 20:10                           ` Stefan Monnier
@ 2015-10-26  6:57                             ` Tassilo Horn
  0 siblings, 0 replies; 28+ messages in thread
From: Tassilo Horn @ 2015-10-26  6:57 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: bruce.connor.am, 21747, storm

Stefan Monnier <monnier@IRO.UMontreal.CA> writes:

>> But I'm really not sure if that's the right thing to do.  Maybe it's
>> better to fix sh-smie-sh-forward-token so that it doesn't return ";"
>> when actually no movement did occur because we already started out at
>> EOB.  That would be this:
>
> Sounds right.

Ok, great.  Then I'll commit that.

>> -        (let ((semi (sh-smie--newline-semi-p)))
>> -          (forward-line 1)
>> -          (if (or semi (eobp)) ";"
>> -            (sh-smie-sh-forward-token))))
>> +        (unless (eobp)
>> +          (let ((semi (sh-smie--newline-semi-p)))
>> +            (forward-line 1)
>> +            (if (or semi (eobp)) ";"
>> +              (sh-smie-sh-forward-token)))))
>
> Another option might be to fix sh-smie--newline-semi-p so it returns
> nil when at EOB.  I haven't looked at the code recently, so I can't
> remember if that would be better or not.

No, that already returns nil in this scenario where the buffer contents
is just "if".  When it is called with point being at EOB, it'll scan
backwards over the if, and since that's a grammar token with a numeric
RIGHT-LEVEL it returns nil anyway.

Bye,
Tassilo





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

* bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook
  2015-10-26  3:32                   ` Eli Zaretskii
@ 2015-10-26 13:43                     ` Tassilo Horn
  0 siblings, 0 replies; 28+ messages in thread
From: Tassilo Horn @ 2015-10-26 13:43 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: bruce.connor.am, 21747-done

Hi all,

I've committed my patch to sh-script.el fixing the infloop in the SMIE
indentation code, and since Artur improved the documentation of
`while-no-input', I think both parts (the wrong assumption part and the
actual problem which had nothing to do with the subject) of this issue
are properly solved now.  So I'm closing this bug with this mail.

Thanks for your help!
Tassilo





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

end of thread, other threads:[~2015-10-26 13:43 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-24  7:42 bug#21747: 25.0.50; while-no-input breaks kbd event handling when called from post-command-hook Tassilo Horn
2015-10-24  8:02 ` Eli Zaretskii
2015-10-24  8:53   ` Tassilo Horn
2015-10-24  9:14     ` Eli Zaretskii
2015-10-24  9:49       ` Tassilo Horn
2015-10-24 10:30         ` Artur Malabarba
2015-10-24 10:52           ` Eli Zaretskii
2015-10-24 12:13             ` Tassilo Horn
2015-10-24 12:45               ` Eli Zaretskii
2015-10-24 13:30                 ` Tassilo Horn
2015-10-24 13:57                   ` Artur Malabarba
2015-10-24 14:06                     ` Eli Zaretskii
2015-10-24 14:05                   ` Eli Zaretskii
2015-10-25  7:19                     ` Tassilo Horn
2015-10-25  8:10                       ` Tassilo Horn
2015-10-25  9:25                         ` Tassilo Horn
2015-10-25 18:45                           ` Eli Zaretskii
2015-10-25 18:49                             ` Tassilo Horn
2015-10-25 20:10                           ` Stefan Monnier
2015-10-26  6:57                             ` Tassilo Horn
2015-10-25 18:43                       ` Eli Zaretskii
2015-10-24 12:46               ` Tassilo Horn
2015-10-25 14:43             ` Artur Malabarba
2015-10-25 18:50               ` Eli Zaretskii
2015-10-26  0:27                 ` Artur Malabarba
2015-10-26  3:32                   ` Eli Zaretskii
2015-10-26 13:43                     ` Tassilo Horn
2015-10-24 10:35         ` Eli Zaretskii

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).