From strandh at labri.fr Wed Mar 2 05:51:40 2005 From: strandh at labri.fr (Robert Strandh) Date: Wed, 2 Mar 2005 06:51:40 +0100 Subject: [climacs-announce] Climacs progress Message-ID: <16933.21612.490025.573209@serveur5.labri.fr> Dear mailing list member, The past week, Aleksandar Bakic has been working on making it possible for several buffer implementations to co-exist, so that an adequate buffer implementation can be selected at runtime based on the contents that it is supposed to hold. Aleksandar has been implementing the buffer protocol as a persistent data structure, which essentially means that all previous versions are kept around, making things like undo very easy. I have been working on the syntax framework. The HTML syntax module now uses the Earley parser, and it is plenty fast. This probably means that the CL syntax module can use an Earley parser as well. The main problem right now is figuring out what the protocol for interacting with an Earley parser is supposed to look like. Expect some interesting progress in the near future. Here is an itemized list of what happened since the last progress report: * Climacs now has better error handling. More conditions have been added that are now handled by the command loop or by individual commands, and the command loop no longer handles all error conditions, making it a bit easier to debug new code. * Optimized the code of clone-mark to use constant class names. Also adapted the code to the new buffer organization. * Updated persistent buffer and buffer tests to reflect changes in the buffer organization. (thanks to Aleksandar Bakic) * Improved on performance of incremental lexer for CL syntax by having a single mark and a length in each stack entry. Also, made line comments into single stack entries to cut down on number of stack entries. Eliminated whitespace as a stack entry. * Introduced a delegating buffer which is now what all Climacs buffers should be. The delegating buffer contains a real buffer which can have different possible implementations. Fixed up a lot of code that made assumptions that are no longer valid for a delegating buffer. (thanks to Aleksandar Bakic) * Updated documentation to reflect changes in buffer organization. * Documented buffer-line-number and buffer-column-number (thanks to Aleksandar Bakic) * Improved on HTML syntax. It is not yet usable, but serves as a good example of how to write grammars for syntax module. * Added a section in the documentation on incremental parsing. This section is still incomplete, as I am discovering how to interface with the Early parser. -- 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 Mar 10 08:24:43 2005 From: strandh at labri.fr (Robert Strandh) Date: Thu, 10 Mar 2005 09:24:43 +0100 Subject: [climacs-announce] latest progress Message-ID: <16944.1099.111836.919246@serveur5.labri.fr> Dear mailing list member, The past week, I have concentrated my effort on the HTML syntax module, not because HTML is particularly interesting to the Climacs project, but because it is the syntax module that I currently use to determine what parsing-related functionality can be generalized, abstracted out, and used to implement other syntax modules. We are particularly interested in seeing how these generalizations can be used to implement the Common Lisp syntax module. Aleksandar Bakic continues to work on persistent buffer implementations. He has now started working on a line-oriented persistent buffer implementation that we hope will improve overall performance of Climacs buffer operations. Christophe Rhodes has been very helpful by pointing out potential problems with buffer delegation and with problems in the interaction between Climacs display functions and McCLIM cut-and-paste functionality. Here is an itemized list of what happened the past week: * Made html-syntax display from the sequence of lexemes as opposed to from the buffer itself * Split off html-syntax into a separate package. * Fixes of typos and minor problems in the documentation, and updates to the documentation related to delegating-buffer. (thanks to Aleksandar Bakic) * Performance improvements to the persistent buffer implementation (thanks to Aleksandar Bakic) * Introduced functions to traverse a parse stack encoded in the sequence of parser states that the Earley parser generates. * Modified the html-syntax to display from the parse states as long as a valid parse of the buffer exists, and from the sequence of lexemes when no valid parse exists. -- 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 Mar 17 05:42:01 2005 From: strandh at labri.fr (Robert Strandh) Date: Thu, 17 Mar 2005 06:42:01 +0100 Subject: [climacs-announce] latest progress Message-ID: <16953.6313.673294.425913@serveur5.labri.fr> Dear mailing list member, As usual, this message is meant for those of you who do not follow the climacs-cvs mailing list. This past week, work has been concentrated to two different areas: Aleksandar Bakic has been working on implementing a line-oriented persistent implementation of the buffer protocol. He also continues to clean up the rest of the Climacs code in order to remove dependencies on a particular buffer implementation. I have continued my work on syntax modules. In particular, I have been working on the HTML syntax module, again not in order to make the HTML syntax module directly usable, but in order to use it as a model for how other, more important, syntax modules might be written. I encourage anyone who is interested in a complete HTML syntax module (and who knows a bit more about HTML than I do) to check it out and to add new functionality. Here is an itemized list of what happened the past week: * The HTML module is able to do syntax highlighting of HTML tags (green), of parse errors (red), of the title text (boldface). * Climacs no longer depends on a particular McCLIM backend. (thanks to Andreas Fuchs) * Added the tag to HTML syntax * Line oriented persistent implementation of the buffer protocol using an adaptation of binary sequences by Robert Will. (thanks to Aleksandar Bakic) * Performance improvements and cleanups to the line oriented persistent implementation of the buffer protocol (thanks to Aleksandar Bakic) * Factored out incremental lexer from HTML syntax to the general syntax module, so that it can be useful from other syntax modules. * Documented the incremental lexer protocol. * Improvements to the buffer-test module. (thanks to Aleksandar Bakic) * Moved the code for updating positions of syntactic entities out of the specific syntax modules, so that it is now automatic for all classes that inherit from the parse-tree class. * Fixed a bug in update-syntax for HTML 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. ---------------------------------------------------------------------