changeset 694:561ad704dc70

[xemacs-hg @ 2001-12-15 09:16:20 by stephent] hazmat recycling
author stephent
date Sat, 15 Dec 2001 09:16:21 +0000
parents b05e2a249757
children 74f176715ed2
files man/ChangeLog man/lispref/packaging.texi
diffstat 2 files changed, 48 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/man/ChangeLog	Fri Dec 14 07:50:10 2001 +0000
+++ b/man/ChangeLog	Sat Dec 15 09:16:21 2001 +0000
@@ -1,3 +1,15 @@
+2001-12-15  Stephen J. Turnbull  <stephen@xemacs.org>
+
+	* lispref/packaging.texi (The User's View):
+	Correct description of man subdirectory.
+
+	(The Package Release Engineer's View):
+	(package-compile.el):
+	Change hazmat to useful documentation.
+
+	(Issues):
+	Hazmat removal.
+
 2001-11-27  Stephen J. Turnbull  <stephen@xemacs.org>
 
 	* lispref/packaging.texi: New file.
--- a/man/lispref/packaging.texi	Fri Dec 14 07:50:10 2001 +0000
+++ b/man/lispref/packaging.texi	Sat Dec 15 09:16:21 2001 +0000
@@ -125,12 +125,12 @@
 package to ensure that no cruft remains when a package is removed or
 updated.  The @file{lisp}, @file{etc}, and @file{lib-src} subdirectories
 are further subdivided, with a subdirectory for each package.  The
-@file{info} and @file{man} directories obey the respective documentation
-systems' conventions.  @emph{I.e.}, the @file{info} directory is flat
+@file{info} directory obeys the usual conventions.
+@emph{I.e.}, the @file{info} directory is flat
 with a(n) (optional) @file{dir} file and one (set of) info file(s) per
-package.  The @file{man} subdirectory is divided into sections.  As
-mentioned, this structure is used for historical reasions, and it is
-likely to change in the future.
+package.  The @file{man} subdirectory typically contains documentation
+sources, separated by package.  (It does not contain @file{man(1)}
+pages, as Emacs provides very few of them.)
 
 There are several standard package hierarchies, and administrators can
 configure others at build time, while users can configure others at run
@@ -176,7 +176,7 @@
 @xref{Packages,,,xemacs}.
 
 @c #### The following description is quite possibly inaccurate.
-@c Arrgh, Michael!
+@c Please, Michael, write some specs up!
 The default order of search is hierarchically determined.  First, the
 roots are ordered.  The @dfn{early} roots are the user-specific roots,
 typically @file{~/.xemacs}.  The @dfn{late} roots are the system roots,
@@ -419,12 +419,18 @@
 @node The Package Release Engineer's View, , The Library Maintainer's View, Package Overview
 @subsection The Package Release Engineer's View
 
-Bu-wha-ha-ha-ha-ha!  If you aren't the package release engineer, you
-@emph{don't want to know}.  If you @emph{are} the package release
-engineer, you have my condolences.  Rest (if you can get any rest)
-assured you are in my prayers.
+The XEmacs Package Release Engineer is responsible for keeping the
+system coherent.  The changes to @file{packages/package-compile.el} and
+@file{packages/xemacs-packages/Makefile} required to make the package
+available to others, and for building SUMO tarballs, @emph{etc}, are
+done by the Package Release Engineer, not individual library
+maintainers.
 
-To be completed.
+The Package Release Engineer also maintains assorted infrastructure for
+actually making releases.  These are generally available for inspection
+in the @code{xemacs-builds} module in the CVS repository.
+
+@c #### To be completed.
 
 
 @c #### The following section is lifted verbatim from the XEmacs User's
@@ -840,7 +846,7 @@
 changes that need to be made are
 
 @table @strong
-@item an entry in package-directory-map
+@item an entry in @code{package-directory-map}
 This tells the @xpms{} which distribution (currently
 @samp{xemacs-packages} or @samp{mule-packages}) your package is found
 in.  It then looks in the distribution subdirectory whose name is the
@@ -858,10 +864,23 @@
 by the XEmacs Package Release Engineer before your package will build
 correctly from a fresh checkout.
 
-Obviously all of this is really horrible, and would be totally
-inexcusable if I wasn't afraid the XEmacs Package Release Engineer would
-kill me if I complained loud enough for him to hear.  Maybe it will
-change some day....
+This is unfortunate; it works pretty well once set up, but can cause
+confusion when first building a package in the @xpms{} context.  In
+particular, if the @code{package-directory-map} entry for a required
+package
+@c #### including the package itself?
+is not found, the necessary requires will not be executed by
+@file{package-compile.el}.  If required functions are executed (under
+@code{eval-when-compile}), they won't be found and the compile will
+fail.  If required function is actually a macro, the byte compiler will
+not recognize that, compile a function call to the macro.  This will
+cause a run-time error because the byte-code interpreter does not know
+how to execute macros.  (Macros can always be expanded at compile-time,
+and this is more efficient.)
+
+If your package keeps some or all Lisp code somewhere other than the top
+directory, then an entry in @code{package-name-to-directory} is also
+necessary, or requires will fail, leading to the problems just described.
 
 
 @node package-info.in Fields, Makefile Variables, package-compile.el, Creating Packages
@@ -1222,7 +1241,5 @@
 @node Issues, , Creating Packages, Packaging
 @section Issues
 
-``Issues''?  Mu-wha-ha-ha!  Ha-ha-ha!  Honeychile, they ain't nuthin'
-@emph{but} ``issues'' at this point.  @xref{The Package Release
-Engineer's View}.
+To be completed.