Mercurial > hg > xemacs-beta
view modules/README @ 5272:66dbef5f8076
Be better about bounds-checking, #'subseq, #'fill; add same, #'reduce.
2010-09-16 Aidan Kehoe <kehoea@parhasard.net>
* fns.c (Fsubseq):
Change the string code to better fit in with the rest of this
function (it still uses get_string_range_char(), though, which *may*
diverge algorithmically from what we're doing).
If dealing with a cons, only call #'length if we have reason to
believe that the START and END arguments are badly specified, and
check for circular lists ourselves when that's appropriate.
If dealing with a vector, call Fvector() on the appropriate subset
of the old vector's data directly, don't initialise the result
with nil and then copy.
(Ffill):
Only check the range arguments for a cons SEQUENCE if we have good
reason to think they were badly specified.
(Freduce):
Handle multiple values properly. Add bounds checking to this
function, as specificied by ANSI Common Lisp.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Thu, 16 Sep 2010 18:46:05 +0100 |
parents | 25e260cb7994 |
children | da1365dd3f07 |
line wrap: on
line source
This directory contains a number of XEmacs dynamic modules. These modules can be loaded directly with the command 'M-x load-module'. However, the preferred method of loading a module is to issue a "(require 'module-name)" command to the Lisp interpreter. This will store information so that a later "(unload-feature 'module-name)" can succeed. To compile one of these modules, simply enter the desired directory, type 'configure', and then 'make'. If you are building the module for an installed XEmacs, then 'make install' will place the module in the appropriate directory for XEmacs to find it later (assuming you have permission to write to that directory). A subsequent 'load-module' or 'require' will then load the module, as described above. Each of these demonstrates different features and limitations of the XEmacs module loading technology. For a complete discussion on XEmacs dynamic modules, please consult the XEmacs Module Writers Guide, which can be found in the ../info directory. For those wanting to get started with module writing, please see the 'sample' directory. It contains two subdirectories: internal and external. The 'internal' subdirectory contains the framework needed to migrate some core piece of XEmacs functionality into code that can either be compiled into the core or built as a separate module. The 'external' subdirectory contains the somewhat simpler framework needed to build a module separately from XEmacs. These should be considered starting places for module writing.