[climacs-announce] latest progress

Robert Strandh strandh at labri.fr
Thu Jan 13 06:15:12 UTC 2005


This message is mostly for those who do not read climacs-cvs and who
do not participate in the #lisp IRC channel.

More people are getting involved in Climacs development, which is
good.  I continue to take care of the basic stuff like redisplay and
such, whereas others provide Emacs-like functionality.  This is a
good division of labor, because in order to provide new
functionality, all you need to know is the buffer protocols which are
well documented.

Climacs now has the basic infrastructure for numeric arguments.  One
simple thing to work on would thus be to add &optional (n 1) to a
number of functions such as the ones in base.lisp or buffer.lisp.  If
you do, first make sure the modification you introduce is backward
compatible and also do not forget to update the documentation at the
same time.  Notice though, that this functionality requires a working
unread-gesture, which was put into CVS McCLIM only a few days ago.  Do
not update your Climacs source before updating your McCLIM source. 

In order to have numeric arguments behave like in Emacs, we need to
extend how CLIM handles numeric arguments.  It is not enough to have a
*numeric-argument-marker*, because Emacs can behave differently if no
numeric argument was given and when a numeric argument of 1 was
given.  Adding that possibility to Climacs will require something like
a *numeric-argument-flag* to indicate whether a numeric argument was
given at all.

Now that unread-gesture works, I am thinking of attacking incremental
search next, though, if someone else feels like working on that, that
would be fine as well.

Recent improvements:

  * next-line and previous-line commands now follow columns just like
    Emacs does.

  * fixed a nasty problem in buffer.lisp (thanks to Matthieu
    Villeneuve) that was correct (but not great coding practice) but
    exposed a bug in CMUCL.

  * implemented an improved version of buffer-sequence according to a
    suggestion by Rudi Schlatte, as well as another minor style
    improvement, also from him.

  * implemented dynamic abbrev expansion (M-/) as suggested by Luigi
    Panzeri, and integrated his utility function into base.lisp.

  * fixed a bug in redisplay. 

  * added numeric arguments.  This feature requires a CVS version of
    McCLIM as of 2005-01-11.  Only a few commands take numeric
    arguments at the moment such as forward-object, backward-object,
    delete-object, and backward-delete-object.  There are more to

  * the cursor display problem has been "fixed" by drawing a rectangle
    rather than a line.  This makes obsolete the hacky code for
    explicit rounding of cursor coordinates. Also made the cursor
    somewhat wider so that it is easier to find.

  * abbrevs work again (I am not sure when the got broken)

  * implemented a new command: load-file

  * probably some things I forgot.  

What is being worked on:

  * multi-buffer, multi-window (expect some partial commits soon)

  * upcase-region, downcase-region, capitalize-region (imminent)

  * probably some things I don't know about. 

Robert Strandh

Greenspun's Tenth Rule of Programming: any sufficiently complicated C
or Fortran program contains an ad hoc informally-specified bug-ridden
slow implementation of half of Common Lisp.

More information about the Climacs-announce mailing list