[climacs-devel] Issues with syntax-dependent command tables.

Robert Strandh strandh at labri.fr
Sat Feb 4 18:48:26 UTC 2006


Troels Henriksen writes:
 > Troels Henriksen <athas at sigkill.dk> writes:
 > 
 > > As an experiment, I have removed `global-climacs-table's dependency
 > > on `lisp-table' and instead made `lisp-table' depend on
 > > `global-climacs-table' (in order to get the basic navigation and
 > > editing commands). It seems to work properly, so I believe it should
 > > be trivial to perform a general cleanup of Climacs' command tables
 > > and their interdependencies.
 > 
 > Apparently the command table issue was just a symptom of a bigger
 > problem. It seems that the Climacs internals are fraught with
 > confusing interdependencies, among other things, that the GUI-layer
 > depends on the Lisp syntax module.

That is definitely a bad thing. 

 > Generally, gui.lisp seems to have
 > become a bucket for all kinds of bits and pieces, containing a lot of
 > very important functions, but not really exporting any of them. This
 > makes it harder to properly divide responsibility among packages, 

Sounds plausible. 

 > so
 > I've started to reorganize interdependencies and modules with the goal
 > of making Climacs' internal structure a bit more logical. My immediate
 > goal is to isolate the Lisp syntax in the `climacs-lisp-syntax'
 > package and the files lisp-syntax.lisp and
 > lisp-syntax-commands.lisp. Fortunately, the existing syntax module
 > protocol lends itself well to modularity, so this should not be very
 > hard. Unfortunately, this incompatible change will require
 > modification of Swine for it to continue to function properly.
 > 
 > Thoughts?

I think your analysis sounds right, and I your idea of improving the
situation is probably the right one as well.  

You might want to check the archives for ideas about how to organize
command lookup.  I forget what we settled on, but there were issues
about whether to search several command tables, and if so, in which
order. 

Good luck, 
-- 
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-devel mailing list