Support circular structures in elisp reader.
[bpt/guile.git] / README
diff --git a/README b/README
index 1f346b0..1f71b8a 100644 (file)
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
 !!! This is not a Guile release; it is a source tree retrieved via
-anonymous CVS or as a nightly snapshot at some random time after the
+Git or as a nightly snapshot at some random time after the
 Guile 1.8 release.  If this were a Guile release, you would not see
 this message. !!!  [fixme: zonk on release]
 
@@ -14,7 +14,7 @@ Guile versions with an odd middle number, i.e. 1.9.* are unstable
 development versions.  Even middle numbers indicate stable versions.
 This has been the case since the 1.3.* series.
 
-The next stable release will likely be version 1.10.0.
+The next stable release will likely be version 2.0.0.
 
 Please send bug reports to bug-guile@gnu.org.
 
@@ -27,24 +27,38 @@ Generic instructions for configuring and compiling Guile can be found
 in the INSTALL file.  Guile specific information and configure options
 can be found below, including instructions for installing SLIB.
 
-Guile requires a few external packages and can optionally use a number
-of external packages such as `readline' when they are available.
-Guile expects to be able to find these packages in the default
-compiler setup, it does not try to make any special arrangements
-itself.  For example, for the `readline' package, Guile expects to be
-able to find the include file <readline/readline.h>, without passing
-any special `-I' options to the compiler.
-
-If you installed an external package, and you used the --prefix
-installation option to install it somewhere else than /usr/local, you
-must arrange for your compiler to find it by default.  If that
-compiler is gcc, one convenient way of making such arrangements is to
-use the --with-local-prefix option during installation, naming the
-same directory as you used in the --prefix option of the package.  In
-particular, it is not good enough to use the same --prefix option when
-you install gcc and the package; you need to use the
---with-local-prefix option as well.  See the gcc documentation for
-more details.
+Guile depends on the following external libraries.
+- libgmp
+- libiconv
+- libintl
+- libltdl
+- libunistring
+It will also use the libreadline library if it is available.  For each
+of these there is a corresponding --with-XXX-prefix option that you
+can use when invoking ./configure, if you have these libraries
+installed in a location other than the standard places (/usr and
+/usr/local).
+
+These options are provided by the Gnulib `havelib' module, and details
+of how they work are documented in `Searching for Libraries' in the
+Gnulib manual (http://www.gnu.org/software/gnulib/manual).  The extent
+to which they work on a given OS depends on whether that OS supports
+encoding full library path names in executables (aka `rpath').  Also
+note that using these options, and hence hardcoding full library path
+names (where that is supported), makes it impossible to later move the
+built executables and libraries to an installation location other than
+the one that was specified at build time.
+
+Another possible approach is to set CPPFLAGS and LDFLAGS before
+running configure, so that they include -I options for all the
+non-standard places where you have installed header files and -L
+options for all the non-standard places where you have installed
+libraries.  This will allow configure and make to find those headers
+and libraries during the build.  The locations found will not be
+hardcoded into the build executables and libraries, so with this
+approach you will probably also need to set LD_LIBRARY_PATH
+correspondingly, to allow Guile to find the necessary libraries again
+at runtime.
 
 
 Required External Packages ================================================
@@ -61,6 +75,12 @@ Guile requires the following external packages:
     libltdl is used for loading extensions at run-time.  It is
     available from http://www.gnu.org/software/libtool/
 
+  - GNU libunistring
+
+    libunistring is used for Unicode string operations, such as the
+    `utf*->string' procedures.  It is available from
+    http://www.gnu.org/software/libunistring/ .
+
 
 Special Instructions For Some Systems =====================================
 
@@ -223,9 +243,23 @@ GUILE_FOR_BUILD variable, it defaults to just "guile".
 
 Using Guile Without Installing It =========================================
 
-The top directory of the Guile sources contains a script called
-"pre-inst-guile" that can be used to run the Guile that has just been
-built.
+The "meta/" subdirectory of the Guile sources contains a script called
+"guile" that can be used to run the Guile that has just been built. Note
+that this is not the same "guile" as the one that is installed; this
+"guile" is a wrapper script that sets up the environment appropriately,
+then invokes the Guile binary.
+
+You may also build external packages against an uninstalled Guile build
+tree. The "uninstalled-env" script in the "meta/" subdirectory will set
+up an environment with a path including "meta/", a modified dynamic
+linker path, a modified PKG_CONFIG_PATH, etc.
+
+For example, you can enter this environment via invoking
+
+    meta/uninstalled-env bash
+
+Within that shell, other packages should be able to build against
+uninstalled Guile.
 
 
 Installing SLIB ===========================================================
@@ -289,6 +323,7 @@ About This Distribution ==============================================
 Interesting files include:
 
 - LICENSE, which contains the exact terms of the Guile license.
+- COPYING.LESSER, which contains the terms of the GNU Lesser General Public License.
 - COPYING, which contains the terms of the GNU General Public License.
 - INSTALL, which contains general instructions for building/installing Guile.
 - NEWS, which describes user-visible changes since the last release of Guile.
@@ -362,14 +397,24 @@ guile-readline:
         library on your system.
 doc:   Documentation (see above).
 
-Anonymous CVS Access and FTP snapshots ===============================
+Git Repository Access ================================================
+
+Guile's source code is stored in a Git repository at Savannah.  Anyone
+can access it using `git-clone' from one of the following URLs:
+
+  git://git.sv.gnu.org/guile.git
+  http://git.sv.gnu.org/r/guile.git
+
+Developers with a Savannah SSH account can also access it from:
+
+  ssh://git.sv.gnu.org/srv/git/guile.git
+
+The repository can also be browsed on-line at the following address:
+
+  http://git.sv.gnu.org/gitweb/?p=guile.git
 
-We make the developers' working Guile sources available via anonymous
-CVS, and by nightly snapshots, accessible via FTP.  See the files
-`ANON-CVS' and `SNAPSHOTS' for details.
+For more information on Git, please see:
 
-If you would like to receive mail when people commit changes to the
-Guile CVS repository, you can subscribe to guile-cvs@gnu.org by the
-Mailman mailing list interface at
+  http://git.or.cz/
 
-  <http://mail.gnu.org/mailman/listinfo/guile-cvs>
+Please send problem reports to <bug-guile@gnu.org>.