GNU bug report logs - #5734
23.1.94; (forward-sexp N) at the very end of large latex-mode buffer takes time proportional to N

Previous Next

Package: emacs;

Reported by: joaotavora <at> gmail.com (Joao Tavora)

Date: Wed, 17 Mar 2010 22:11:02 UTC

Severity: normal

Done: Chong Yidong <cyd <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #8 received at 5734 <at> debbugs.gnu.org (full text, mbox):

From: Chong Yidong <cyd <at> stupidchicken.com>
To: joaotavora <at> gmail.com (Joao Tavora)
Cc: 5734 <at> debbugs.gnu.org
Subject: Re: 23.1.94;
	(forward-sexp N) at the very end of large latex-mode buffer takes
	time proportional to N
Date: Thu, 25 Mar 2010 15:17:12 -0400
> start with `emacs -Q'
> M-x eval-expression RET (insert (make-string 100000 ?a)) RET
> M-x eval-expression RET (latex-mode)                     RET
> M-x eval-expression RET (forward-sexp 200)               RET
> M-x eval-expression RET (forward-sexp 500)               RET
> M-x eval-expression RET (forward-sexp (point-max))       RET

> In some versions of emacs this does not happen, notably my earlier
> Carbon Emacs "GNU Emacs 22.3.1 (i386-apple-darwin9.7.0, Carbon Version
> 1.6.0) of 2009-07-26 on gs674-seijiz.local" after loading some lisp
> libraries (don't know which), like the ones I have bellow (autopair,
> yasnippet).

I can reproduce this slowness even on Emacs 22.3.  It arises because
tex-mode wants to be able to signal an error if point is in a containing
expression that ends prematurely, so it does a bit of backtracking.
(This is the `skip-syntax-backward' call in latex-forward-sexp-1).

I'm not sure what the best way to fix this is, though.




This bug report was last modified 12 years and 299 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.