[climacs-announce] Climacs Progress Report, July 2006

Troels Henriksen athas at sigkill.dk
Mon Jul 24 18:50:16 UTC 2006

Dear list members,

Welcome to another installment of an exciting Climacs progress report?
In the three months since the last progress report was posted, a lot
of work has been done on Climacs - many bugs have been fixed, a lot of
refactoring has been performed and a large amount of features, even
some pretty major ones, have been added. Some notable changes are:

     * Highlighting of operators in Lisp syntax based on whether they
       are special operators or macros, instead of just having a list
       of symbols that should be highlighted (as Emacs does).

     * A generic on-line help/documentation facility has been added to
       ESA and integrated with Climacs - we now have basic
       documentation commands like GNU Emacs (C-h f, C-h k, etc).

     * Backup files are now version numbered.

     * A Visible Region command has been added.

     * Keyboard macros now support numeric arguments.

     * A new command parser has been developed for ESA, with the
       result that unsupplied arguments are now supported (through
       *unsupplied-argument-marker*), making it possible to define
       commands that take arguments (as opposed to just calling
       `accept' in the body) and still have them be invokable through

     * A host of new search/replace commands: Multiple Query Replace,
       Query Exchange, Multiple Query Replace From Buffer, String Search,
       Reverse String Search, Word Search and Reverse Word Search.

     * Incremental search has been improved, making it more comparable
       to the one in GNU Emacs.

     * The Lisp syntax has been drastically improved, it can now
       indent many more forms than it used to, and it has SLIME-like
       handling of in (in-package) forms. Of course, the major
       addition is probably the merging of Swine (from CLIM-Desktop)
       with the Lisp-syntax - Climacs, by itself, is now a reasonable
       tool for hacking Common Lisp code. The Swine-parts have also
       been improved since the merge, and has very intelligent
       parameter hinting and intelligent completion of keywords for
       keyword arguments (ie., when you symbol-complete at a point
       where only a keyword symbol would make sense, the possible
       completions will be chosen from among the relevant keyword

     * There has been a lot of refactoring, for example implementation
       of Taylor Campbell's proposal for a uniform motion/editing
       function signature. Motion and editing commands can now be
       found in the files motion.lisp and editing.lisp, where the bulk
       of the functions are autogenerated (by macros) from basic
       building blocks. Also, almost all commands have been moved to a
       new CLIMACS-COMMANDS package, where they are implemented
       utilizing functionality exported by other
       packages. Syntaxaware-yet-not-GUI-oriented functions have been
       moved to the new CLIMACS-CORE package, and the CLIMACS-BASE
       package has had a fairly large amount of functions moved to
       other packages.

     * The main entry point(s) have been moved to a new CLIMACS
       package, so Climacs can now be invoked by running
       (climacs:climacs) instead of (climacs-gui:climacs). This is for
       consistency with other CLIM applications (notably Beirc and
       Gsharp). The GUI code itself still lives in CLIMACS-GUI.

     * Documentation has been added to the user guide
       (Doc/climacs-user.texi) for the new help and search/replace
       commands. Personally, I (Troels Henriksen) was not aware of
       this user guide until just recently, and thus had not updated
       it with my own work. If you add, or change, new commands,
       please consider adding them to this user guide - while it is
       unlikely that anyone actually uses Climacs, and need this
       guide, I think it is easier to keep it reasonably updated at
       all times, than to rewrite a lot of it from scratch at some
       point in the future.

     * I also hadn't paid much notice to the test suites - I'm
       probably the only one who has broken these tests, but if you
       are mucking around with the stuff tested by these suites,
       please run them before committing. :) They have recently been
       updated to work with the major changes to Climacs.

Also, there has been a large amount of bugfixes and additions of minor
functionality. Climacs' design is now reasonably clean, with clear
boundaries between the various subsystems, which should make it easier
for newcomers to understand the code and make contributions. There is
no overarching plan that defines what will happen to Climacs next, but
personally, I have been looking at implementing a "group" facility
(like the one in Hemlock, but with more features) and improving the
non-Lisp syntaxes, almost all of which need drastic improvements
(speed-wise as well as functionality-wise). As always, integration
with other CLIM applications is an interesting idea, but work like
this is probably more suited for projects like CLIM-Desktop than
Climacs proper.

Climacs is still alive, and it is still a promising project.
\  Troels "Athas"
/\ Henriksen

More information about the Climacs-announce mailing list