[slime-devel] slime-fuzzy-complete-symbol

Brian Downing bdowning at lavos.net
Thu May 25 03:25:55 UTC 2006

On Mon, May 08, 2006 at 01:03:08PM -0500, Brian Downing wrote:
> On Mon, May 08, 2006 at 06:49:33PM +0100, Antonio Menezes Leitao wrote:
> > Another very good improvement would be anything that speeds up the
> > computation of the completions.  It is taking too long for normal
> > interactive use, at least in my centrino laptop.
> Okay, there has been no though paid to optimization of the completion
> core, so speedups shouldn't be hard.  I've never had a problem with it
> though.

I've committed some micro-optimizations and un-generalizations (i.e. it
only works on simple-strings now), which have resulted in a speed increase
of about 4-5x for the core algorithm on SBCL.  At this point most of
the time is spent on the emacs side rendering the buffer for long result
lists, which I don't know how to optimize.  There's a currently unused
LIMIT argument to the FUZZY-COMPLETIONS slimefun.  This will only send
a certain number of results back to emacs, which may help with rendering
speed at the cost of missing low-scoring results.

I've only got SBCL and Lispworks to test with here, so please let me
know if I've broken things for your favorite Lisp.

2006-05-24  Brian Downing  <bdowning at lavos.net>

	* swank.lisp (recursively-compute-most-completions & friends):
	Micro-optimize the fuzzy completion engine, improving performace
	by a factor of about 4 on SBCL.  However, it will only work on
	simple-strings now, and CHAR= is burned in instead of being an
	option.  I don't think this is too much of a limitation.  At this
	point rendering the results on the emacs side takes much longer
	than finding them for long result lists.

Hope this helps,

More information about the slime-devel mailing list