From strandh at labri.fr Thu Feb 3 06:05:34 2005 From: strandh at labri.fr (Robert Strandh) Date: Thu, 3 Feb 2005 07:05:34 +0100 Subject: [climacs-announce] more progress Message-ID: <16897.48942.215186.816594@serveur5.labri.fr> 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, -- 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. --------------------------------------------------------------------- From strandh at labri.fr Thu Feb 10 09:58:56 2005 From: strandh at labri.fr (Robert Strandh) Date: Thu, 10 Feb 2005 10:58:56 +0100 Subject: [climacs-announce] recent progress Message-ID: <16907.12384.535469.267092@serveur5.labri.fr> Dear mailing list member, Progress on Climacs is still very fast. This week, Aleksandar Bakic has continued with his work on using an alternative buffer implementation based on persistent data structures. He has also continued his work on the test framework for validating the buffer protocol and the functionality in base.lisp. Personally, I started the work on Common Lisp syntax by implementing an incremental lexer. The incremental parser will be working directly from a representation of the buffer as syntactic elements that are incrementally updated at redisplay time. Here is an itemized list of what happened the past week: * more work on making regions symmetric with respect to the marks (thanks to Aleksandar Bakic) * forward-object and backward-object are now part of the buffer protocol. * improvements to indent-line and delete-indentation (thanks to Aleksandar Bakic) * Improvements to html-syntax * Implemented the new protocol for updating syntax * Implemented an incremental lexer for Common Lisp syntax -- 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. --------------------------------------------------------------------- From strandh at labri.fr Wed Feb 23 07:14:27 2005 From: strandh at labri.fr (Robert Strandh) Date: Wed, 23 Feb 2005 08:14:27 +0100 Subject: [climacs-announce] recent progress Message-ID: <16924.11603.482154.498696@serveur5.labri.fr> Dear mailing list member. It has been two weeks since the latest progress report, simply because for a week I was quite busy with other things, so had time neither to make any progress to speak of, nor to write about it. The other day I could not think of anything that needed to be worked on urgently, other than large projects such as syntax modules for various programming languages, and creating a custom scroller pane. Perhaps this is a sign that Climacs is getting quite usable. In reality, there are of course tons of things that could be worked on, including many Emacs-features that are not yet implemented, in particular various introspective commands such as describe-xxx, help, etc. I continue to think that such features can wait until the basic editing commands exist. However, any of those features would be a reasonable medium-sized project for someone outside of the set of core developers to work on, so if anyone feels like making a contribution like that, let me know. Here is an itemized list of what has happened since the previous report: * The Climacs top-level loop now establishes an input context for commands, meaning that presentations that can trigger commands are now clickable. This possibility is not yet exploited in the core Climacs code, but an important syntax module (tabcode, not in the Climacs distribution) uses it. (Thanks to Christophe Rhodes) * A command (com-single-window) was added to delete all windows except the current. (Thanks to Elliott Johnson) * Implemented flag *numeric-argument-p* to detect whether a numeric argument was given at all. * Implemented eval-expression, M-:, which uses numeric-argument-p to determine whether to show the result in the minibuffer or to insert it into the buffer itself. * Used the new *numeric-argument-p* feature to implement Emacs-like behavior for kill-line. * next-line, previous-line, and open-line now take an additional optional argument indicating how many lines to move. com-next-line, com-previous-line, and com-open-line now take numeric arguments and pass then on to next-line, previous-line, and open-line. * Redisplay is now invoked when the frame is resized. This fixes an annoying problem where after the users resized the main window, a key had to be hit in order for the rest of the buffer to be visible. * Lines are no longer wrapped by CLIM. * Simplified implementation of com-delete-window. * Finally found and fixed a problem with using the adjuster gadget to adjust the size of windows. Now, the adjuster gadget is inserted whenever a window is split, either vertically or horizontally. * Implemented the possibility of issuing an abort gesture (C-g) to abort out of an extended command or reading of arguments. -- 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. ---------------------------------------------------------------------