Dear mailing list members,
We continue making amazing progress on Climacs, but we are definitely reaching the point where we are running out of small Emacs-like functionality that is easy to put in. I predict that future progress will be in the form of bigger chunks but perhaps not as frequent as up until now.
Aleksandar Bakic committed his alternative buffer implementation this week. Since the buffer protocol is pretty well defined, I think several implementations could (and should) co-exist, and eventually the choice of implementation could be made dynamically based on the contents of what is to be edited.
As you may have seen, Lawrence Mitchell is thinking of using CL-PPCRE as a regex library for Climacs. This will definitely give Climacs functionality a boost.
Christphe Rhodes is making progress on his tabcode editor based on Climacs. This is an application with an incremental parser and two panes, one for editing tabcode notation as text, and the other one that displays a more user-friendly view of what is being edited.
I have spent most of the week implementing a generalization of the Earley parsing algorithm for Climacs. This algorithm is naturally incremental and can handle ambiguous grammars, which is going to be necessary for error recovery. I am hoping this will be the basis of new syntax implementations, perhaps even of the Common Lisp syntax that my students are going to work on.
This week's progress itemized:
* alternative buffer implementation based on persistent data structures, and tests for this implementation. (thanks to Aleksandar Bakic)
* query-replace (thanks to Matthieu Villeneuve)
* code factoring of command loops (thanks to Matthieu Villeneuve)
* The function downcase-region, upcase-region capitalize-region are now symmetric with respect to the order of the marks (thanks to Aleksandar Backic)
* started adding optional count arguments to various functions and numeric arguments to the corresponding Climacs commands.
* implemented an Earley syntax and an embryonic parser for HTML.
* modified documentation to reflect a more complete syntax protocol.
Take care,