annotate modules/README @ 3024:b7f26b2f78bd

[xemacs-hg @ 2005-10-25 08:32:40 by ben] more mc-alloc-related factoring; make it hard to do the wrong thing postgresql/postgresql.c, postgresql/postgresql.h: MC-Alloc refactoring. ldap/eldap.c, ldap/eldap.h: MC-Alloc refactoring. alloc.c, buffer.c, console.c, emacs.c, file-coding.c, lrecord.h, lstream.c, mule-charset.c, print.c, scrollbar-gtk.c, scrollbar-msw.c, scrollbar-x.c, scrollbar.c, symbols.c, symeval.h, unicode.c, window.c, xemacs.def.in.in: rename `struct lcrecord_header' to `struct old_lcrecord_header'; likewise for `old_basic_alloc_lcrecord', `old_free_lcrecord', `old_zero_lcrecord', `old_zero_sized_lcrecord', `old_copy_lcrecord', `old_copy_sized_lcrecord', `old_alloc_lcrecord_type'. Created new LISPOBJ_STORAGE_SIZE() used only on objects created through allocation of Lisp-Object memory instead of basic xmalloc()/xfree(). This is distinguished from malloced_storage_size(), for non-Lisp-Objects. The definition of LISPOBJ_STORAGE_SIZE() can reduce down to malloced_storage_size() when not MC-ALLOC, but with MC-ALLOC it's a different function. The whole point other than cleaning up the use of LISPOBJ_STORAGE_SIZE is to make it harder to accidentally use the old kind (lowercase) of function in new code, since you get a compile error.
author ben
date Tue, 25 Oct 2005 08:32:50 +0000
parents 25e260cb7994
children da1365dd3f07
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
996
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
1 This directory contains a number of XEmacs dynamic modules. These
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
2 modules can be loaded directly with the command 'M-x load-module'.
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
3 However, the preferred method of loading a module is to issue a
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
4 "(require 'module-name)" command to the Lisp interpreter. This will
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
5 store information so that a later "(unload-feature 'module-name)" can
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
6 succeed.
388
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
7
996
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
8 To compile one of these modules, simply enter the desired directory,
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
9 type 'configure', and then 'make'. If you are building the module for
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
10 an installed XEmacs, then 'make install' will place the module in the
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
11 appropriate directory for XEmacs to find it later (assuming you have
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
12 permission to write to that directory). A subsequent 'load-module' or
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
13 'require' will then load the module, as described above.
388
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
14
996
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
15 Each of these demonstrates different features and limitations of the
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
16 XEmacs module loading technology. For a complete discussion on XEmacs
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
17 dynamic modules, please consult the XEmacs Module Writers Guide, which
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
18 can be found in the ../info directory.
388
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents:
diff changeset
19
996
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
20 For those wanting to get started with module writing, please see the
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
21 'sample' directory. It contains two subdirectories: internal and
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
22 external. The 'internal' subdirectory contains the framework needed to
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
23 migrate some core piece of XEmacs functionality into code that can
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
24 either be compiled into the core or built as a separate module. The
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
25 'external' subdirectory contains the somewhat simpler framework needed
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
26 to build a module separately from XEmacs. These should be considered
25e260cb7994 [xemacs-hg @ 2002-09-10 15:27:02 by james]
james
parents: 388
diff changeset
27 starting places for module writing.