annotate modules/README @ 4539:061e030e3270

Fix some bugs in load-history construction, built-in symbol file names. lib-src/ChangeLog addition: 2008-12-27 Aidan Kehoe <kehoea@parhasard.net> * make-docfile.c (main): Allow more than one -d argument, followed by a directory to change to. (put_filename): Don't strip directory information; with previous change, allows retrieval of Lisp function and variable origin files from #'built-in-symbol-file relative to lisp-directory. (scan_lisp_file): Don't add an extraneous newline after the file name, put_filename has added the newline already. lisp/ChangeLog addition: 2008-12-27 Aidan Kehoe <kehoea@parhasard.net> * loadup.el (load-history): Add the contents of current-load-list to load-history before clearing it. Move the variable declarations earlier in the file to a format understood by make-docfile.c. * custom.el (custom-declare-variable): Add the variable's symbol to the current file's load history entry correctly, don't use a cons. Eliminate a comment that we don't need to worry about, we don't need to check the `initialized' C variable in Lisp. * bytecomp.el (byte-compile-output-file-form): Merge Andreas Schwab's pre-GPLv3 GNU change of 19970831 here; treat #'custom-declare-variable correctly, generating the docstrings in a format understood by make-docfile.c. * loadhist.el (symbol-file): Correct behaviour for checking autoloaded macros and functions when supplied with a TYPE argument. Accept fully-qualified paths from #'built-in-symbol-file; if a path is not fully-qualified, return it relative to lisp-directory if the filename corresponds to a Lisp file, and relative to (concat source-directory "/src/") otherwise. * make-docfile.el (preloaded-file-list): Rationalise some let bindings a little. Use the "-d" argument to make-docfile.c to supply Lisp paths relative to lisp-directory, not absolutely. Add in loadup.el explicitly to the list of files to be processed by make-docfile.c--it doesn't make sense to add it to preloaded-file-list, since that is used for purposes of byte-compilation too. src/ChangeLog addition: 2008-12-27 Aidan Kehoe <kehoea@parhasard.net> * doc.c (Fbuilt_in_symbol_file): Return a subr's filename immediately if we've found it. Check for compiled function and compiled macro docstrings in DOC too, and return them if they exist. The branch of the if statement focused on functions may have executed, but we may still want to check variable bindings; an else clause isn't appropriate.
author Aidan Kehoe <kehoea@parhasard.net>
date Sat, 27 Dec 2008 14:05:50 +0000 (2008-12-27)
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.