changeset 5159:cb303ff63e76

merge
author Ben Wing <ben@xemacs.org>
date Fri, 19 Mar 2010 17:02:11 -0500
parents 9e0b43d3095c (current diff) 45753d9a0dc4 (diff)
children ab9ee10a53e4
files ChangeLog src/ChangeLog src/alloc.c
diffstat 8 files changed, 66 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Mar 19 14:47:44 2010 -0500
+++ b/ChangeLog	Fri Mar 19 17:02:11 2010 -0500
@@ -3,6 +3,15 @@
 	* CHANGES-beta:
 	Partially updated with last couple of months worth of changes.
 
+2010-03-18  Mike Sperber  <mike@xemacs.org>
+
+	* INSTALL: Reflect change from `lib' to `share'; also, document
+	how to invoke configure to get the old setting.
+
+	* configure.ac: Set LATE_PACKAGE_DIRECTORIES_USER_DEFINED if
+	`datadir' was changed; set `with_late_packages' to something
+	sensible for this case.
+
 2010-02-20  Ben Wing  <ben@xemacs.org>
 
 	* configure.ac (XE_COMPLEX_ARG):
--- a/INSTALL	Fri Mar 19 14:47:44 2010 -0500
+++ b/INSTALL	Fri Mar 19 17:02:11 2010 -0500
@@ -257,7 +257,7 @@
 should put XEmacs and its data files.  This defaults to `/usr/local'.
 - XEmacs (and the other utilities users run) go in PREFIXDIR/bin
   (unless the `--exec-prefix' option says otherwise).
-- The architecture-independent files go in PREFIXDIR/lib/xemacs-VERSION
+- The architecture-independent files go in PREFIXDIR/share/xemacs-VERSION
   (where VERSION is the version number of XEmacs, like `21.0').
 - The architecture-dependent files go in
   PREFIXDIR/lib/xemacs-VERSION/CONFIGURATION-NAME
@@ -284,6 +284,12 @@
 part of the generated executable; everything else will continue to
 work as usual.
 
+Unlike previous versions of XEmacs (21.4 or earlier),
+architecture-independent files (in particular, the Lisp files and
+package hierarchies) by default get installed under `/usr/local/share'
+rather than `/usr/local/lib'.  To create a setup as in previous
+versions, use the `--datadir=/usr/local/lib' option to configure.
+
 Configuring Feature Support
 ---------------------------
 
@@ -567,7 +573,7 @@
 		`xemacs', `etags', `ctags', `b2m', `emacsclient', `ellcc',
 		`gnuclient', `gnudoit', and `gnuattach'.
 
-`/usr/local/lib/xemacs-VERSION/lisp' holds the Emacs Lisp libraries;
+`/usr/local/share/xemacs-VERSION/lisp' holds the Emacs Lisp libraries;
 		`VERSION' stands for the number of the XEmacs version
 		you are installing, like `18.59' or `19.14'.  Since
 		the lisp libraries change from one version of XEmacs to
@@ -578,14 +584,14 @@
 
 		XEmacs searches for its lisp files in these
 		directories, and then in
-		`/usr/local/lib/xemacs/site-lisp/*'.
+		`/usr/local/share/xemacs/site-lisp/*'.
 
-`/usr/local/lib/xemacs-VERSION/etc' holds the XEmacs tutorial, the
+`/usr/local/share/xemacs-VERSION/etc' holds the XEmacs tutorial, the
 		Unicode database, and other architecture-independent
 		files XEmacs might need while running.  VERSION is as
 		specified for `.../lisp'.
 
-`/usr/local/lib/xemacs/lock' contains files indicating who is
+`/usr/local/share/xemacs/lock' contains files indicating who is
 		editing what, so XEmacs can detect editing clashes
 		between users.
 
@@ -614,7 +620,7 @@
 		sub-directory of it, and then in
 		`/usr/local/lib/xemacs/site-modules/*'.
 
-`/usr/local/lib/xemacs-VERSION/info' holds the on-line documentation
+`/usr/local/share/xemacs-VERSION/info' holds the on-line documentation
 		for XEmacs, known as "info files".
 
 `/usr/local/man/man1' holds the man pages for the programs installed
@@ -642,7 +648,7 @@
 
 `datadir' indicates where to put the architecture-independent
 	read-only data files that XEmacs refers to while it runs; it
-	defaults to /usr/local/lib.  We create the following
+	defaults to /usr/local/data.  We create the following
 	subdirectories under `datadir':
 	- `xemacs-VERSION/lisp', containing the XEmacs lisp libraries, and
 
@@ -655,6 +661,13 @@
 	same time; this means that you don't have to make XEmacs
 	unavailable while installing a new version.
 
+`datarootdir' indicates where to put the documentation.  (Usually,
+        this is identical to `datadir'---in the default configuration
+        `datadir' is set to the value of `datarootdir'.)
+        Specifically, the man pages are put in the `man' subdirectory
+        of `datarootdir', and the info pages are put in the
+        `xemacs/info' subdirectory.
+
 `statedir' indicates where to put architecture-independent data files
 	that XEmacs modifies while it runs; it defaults to
 	/usr/local/lib as well.  We create the following
@@ -680,7 +693,7 @@
 	XEmacs is installed on.
 
 `infodir' indicates where to put the info files distributed with
-	XEmacs; it defaults to `/usr/local/lib/xemacs-VERSION/info'.
+	XEmacs; it defaults to `/usr/local/share/xemacs-VERSION/info'.
 
 `mandir' indicates where to put the man pages for XEmacs and its
 	utilities (like `etags'); it defaults to
@@ -710,23 +723,23 @@
 
 `lispdir' indicates where XEmacs installs and expects its lisp
 	libraries.  Its default value, based on `datadir' (see above),
-	is `/usr/local/lib/xemacs-VERSION/lisp' (where `VERSION' is as
+	is `/usr/local/share/xemacs-VERSION/lisp' (where `VERSION' is as
 	described above).
 
 `sitelispdir' indicates where XEmacs should search for lisp libraries
 	specific to your site. XEmacs checks them in order before
 	checking `lispdir'.  Its default value, based on `datadir'
-	(see above), is `/usr/local/lib/xemacs/site-lisp'.
+	(see above), is `/usr/local/share/xemacs/site-lisp'.
 
 `etcdir' indicates where XEmacs should install and expect the rest of
 	its architecture-independent data, like the tutorial and yow
 	database.  Its default value, based on `datadir'
-	(see above), is `/usr/local/lib/xemacs-VERSION/etc' (where
+	(see above), is `/usr/local/share/xemacs-VERSION/etc' (where
 	`VERSION' is as described above).
 
 `lockdir' indicates the directory where XEmacs keeps track of its
 	locking information.  Its default value, based on `statedir'
-	(see above), is `/usr/local/lib/xemacs/lock'.
+	(see above), is `/usr/local/share/xemacs/lock'.
 
 `archlibdir' indicates where XEmacs installs and expects the
 	executable files and other architecture-dependent data it uses
--- a/configure	Fri Mar 19 14:47:44 2010 -0500
+++ b/configure	Fri Mar 19 17:02:11 2010 -0500
@@ -1995,13 +1995,14 @@
   --with-quick-build      Speed up the build cycle by leaving out steps where
                           XEmacs will still work (more or less) without them.
                           Potentially dangerous if you don't know what you're
-                          doing. This (1) doesn't garbage-collect after
-                          loading each file during dumping, (2) doesn't
+                          doing. This (1) Doesn't garbage-collect after
+                          loading each file during dumping, (2) Doesn't
                           automatically rebuild the DOC file (remove it by
                           hand to get it rebuilt), (3) Removes config.h,
                           lisp.h and associated files from the dependency
                           lists, so changes to these files don't automatically
-                          cause all .c files to be rebuilt.
+                          cause all .c files to be rebuilt, (4) Doesn't check
+                          for Lisp shadows.
   --with-union-type       Use union definition of Lisp_Object type. Known to
                           trigger bugs in some compilers.
   --with-quantify         Support performance debugging using Quantify.
@@ -5509,6 +5510,8 @@
 
   $as_echo "#define ETCDIR_USER_DEFINED 1" >>confdefs.h
 
+  $as_echo "#define LATE_PACKAGE_DIRECTORIES_USER_DEFINED 1" >>confdefs.h
+
 fi
 
 if test "x$libdir" != "x\${exec_prefix}/lib"
@@ -5533,6 +5536,7 @@
 inststaticdir='${PROGNAME}'
 instvardir='${PROGNAME}-${version}'
 sitemoduledir='${libdir}/${inststaticdir}/site-modules'
+with_late_packages='${datadir}/${PROGNAME}'
 
 
 statedir=$with_statedir
--- a/configure.ac	Fri Mar 19 14:47:44 2010 -0500
+++ b/configure.ac	Fri Mar 19 17:02:11 2010 -0500
@@ -1108,6 +1108,7 @@
   AC_DEFINE(INFODIR_USER_DEFINED)
   AC_DEFINE(LISPDIR_USER_DEFINED)
   AC_DEFINE(ETCDIR_USER_DEFINED)
+  AC_DEFINE(LATE_PACKAGE_DIRECTORIES_USER_DEFINED)
 fi
 
 if test "x$libdir" != "x\${exec_prefix}/lib"
@@ -1128,6 +1129,7 @@
 inststaticdir='${PROGNAME}'
 instvardir='${PROGNAME}-${version}'
 sitemoduledir='${libdir}/${inststaticdir}/site-modules'
+with_late_packages='${datadir}/${PROGNAME}'
 
 AC_SUBST(inststaticdir)
 AC_SUBST(statedir,$with_statedir)
--- a/man/ChangeLog	Fri Mar 19 14:47:44 2010 -0500
+++ b/man/ChangeLog	Fri Mar 19 17:02:11 2010 -0500
@@ -1,3 +1,9 @@
+2010-03-18  Mike Sperber  <mike@xemacs.org>
+
+	* xemacs/startup.texi (Startup Paths): Reflect the (long-ago)
+	change from `lib' to `share' for the architecture-independent
+	directories.
+
 2010-03-13  Ben Wing  <ben@xemacs.org>
 
 	* internals/internals.texi (Working with Lisp Objects):
--- a/man/xemacs/startup.texi	Fri Mar 19 14:47:44 2010 -0500
+++ b/man/xemacs/startup.texi	Fri Mar 19 17:02:11 2010 -0500
@@ -69,10 +69,10 @@
 
 Moreover, XEmacs expects late hierarchies in the subdirectories
 @file{site-packages}, @file{mule-packages}, and @file{xemacs-packages}
-(in that order) of the @file{<root>/lib/xemacs} subdirectory of one of
+(in that order) of the @file{<root>/share/xemacs} subdirectory of one of
 the installation hierarchies.  (If you run in-place, these are direct
 subdirectories of the build directory.)  Furthermore, XEmacs will also
-search these subdirectories in the @file{<root>/lib/xemacs-<VERSION>}
+search these subdirectories in the @file{<root>/share/xemacs-<VERSION>}
 subdirectory and prefer directories found there.
 
 By default, XEmacs does not have a pre-configured last package
@@ -113,12 +113,14 @@
 @table @code
 @item version-specific
 @cindex version-specific directories
-directories are specific to the version of XEmacs they belong to and
-typically reside under @file{<root>/lib/xemacs-<VERSION>}.
+directories (such as @file{etc}, the @file{info} of the installed XEmacs
+and its Lisp files in @file{lisp}) are specific to the version of XEmacs
+they belong to and typically reside under
+@file{<root>/share/xemacs-<VERSION>}.
 @item site-specific
 @cindex site-specific directories
-directories are independent of the version of XEmacs they belong to and
-typically reside under @file{<root>/lib/xemacs}
+directories are independent of the version of XEmacs and
+typically reside under @file{<root>/share/xemacs}.
 @item architecture-specific
 @cindex architecture-specific directories
 directories are specific both to the version of XEmacs and the
--- a/src/ChangeLog	Fri Mar 19 14:47:44 2010 -0500
+++ b/src/ChangeLog	Fri Mar 19 17:02:11 2010 -0500
@@ -259,6 +259,12 @@
 	Need to GCPRO newly created objects or we'll eventually get
 	a crash due to occurrence of call2().
 
+2010-03-16  Ben Wing  <ben@xemacs.org>
+
+	* alloc.c (make_lcrecord_list):
+	* alloc.c (alloc_managed_lcrecord):
+	Fix compilation problems identified by Robert Delius Royar.
+	
 2010-03-15  Ben Wing  <ben@xemacs.org>
 
 	* extents.c (Fprevious_single_property_change):
--- a/src/alloc.c	Fri Mar 19 14:47:44 2010 -0500
+++ b/src/alloc.c	Fri Mar 19 17:02:11 2010 -0500
@@ -3233,8 +3233,8 @@
 {
   /* Don't use alloc_automanaged_lcrecord() avoid infinite recursion
      allocating this. */
-  struct lcrecord_list *p = (struct lcrecord_list *)
-    old_alloc_lcrecord (&lrecord_lcrecord_list);
+  struct lcrecord_list *p =
+    XLCRECORD_LIST (old_alloc_lcrecord (&lrecord_lcrecord_list));
 
   p->implementation = implementation;
   p->size = size;
@@ -3280,8 +3280,7 @@
       return val;
     }
   else
-    return wrap_pointer_1 (old_alloc_sized_lcrecord (list->size,
-						     list->implementation));
+    return old_alloc_sized_lcrecord (list->size, list->implementation);
 }
 
 /* "Free" a Lisp object LCRECORD by placing it on its associated free list