Fix virulent typo.
[bpt/guile.git] / README
diff --git a/README b/README
index 0598f6e..6151d0d 100644 (file)
--- a/README
+++ b/README
@@ -1,8 +1,9 @@
-This is not a Guile release; it is a source tree retrieved via
+!!! 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
-Guile 1.4 release.
+Guile 1.4 release.  If this were a Guile release, you would not see
+this message. !!!  [fixme: zonk on release]
 
-This is a 1.5 development version of Guile, Project GNU's extension
+This is a 1.7 development version of Guile, Project GNU's extension
 language library.  Guile is an interpreter for Scheme, packaged as a
 library that you can link into your applications to give them their
 own scripting language.  Guile will eventually support other languages
@@ -13,7 +14,7 @@ Guile versions with an odd middle number, i.e. 1.5.* 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 be version 1.6.0.
+The next stable release will be version 1.8.0.
 
 Please send bug reports to bug-guile@gnu.org.
 
@@ -86,6 +87,56 @@ license statement as found in any individual file that it applies to:
  whether to permit this exception to apply to your modifications.
  If you do not wish that, delete this exception notice.
 
+Handling of Deprecated Features ======================================
+
+Guile may contain features that are `deprecated'.  When a feature is
+deprecated, it means that it is still there and fully functional, but
+that there is a better way of achieving the same thing, and we'd
+rather have you use this better way.  This allows us to eventually
+remove the old implementation and helps to keep Guile reasonably clean
+of historic baggage.
+
+See the file NEWS for a list of features that are currently
+deprecated.  Each entry will also tell you what you should replace
+your code with.
+
+To give you some help with this process, and to encourage (OK, nudge)
+people to switch to the newer methods, Guile can emit warnings or
+errors when you use a deprecated feature.  There is quite a range of
+possibilities, from being completely silent to giving errors at link
+time.  What exactly happens is determined both by the value of the
+`--enable-deprecated' configuration option when Guile was built, and
+by the GUILE_WARN_DEPRECATED environment variable.
+
+It works like this:
+
+  When Guile has been configured with `--enable-deprecated=no' (or,
+  equivalently, with `--disable-deprecated') then all deprecated
+  features are omitted from Guile.  You will get "undefined
+  reference", "variable unbound" or similar errors when you try to use
+  them.
+
+  When `--enable-deprecated=LEVEL' has been specified (for LEVEL not
+  "no"), LEVEL will be used as the default value of the environment
+  variable GUILE_WARN_DEPRECATED.  A value of "yes" is changed to
+  "summary" and "shutup" is changed to "no", however.
+
+  When GUILE_WARN_DEPRECATED has the value "no", nothing special will
+  happen when a deprecated feature is used.
+
+  When GUILE_WARN_DEPRECATED has the value "summary", and a deprecated
+  feature has been used, Guile will print this message at exit:
+
+    Some deprecated features have been used.  Set the environment
+    variable GUILE_WARN_DEPRECATED to "detailed" and rerun the program
+    to get more information.  Set it to "no" to suppress this message.
+
+  When GUILE_WARN_DEPRECATED has the value "detailed", a detailed
+  warning is emitted immediatly for the first use of a deprecated
+  feature.
+
+The default is `--enable-deprecated=yes'.
+
 About This Distribution ==============================================
 
 Interesting files include:
@@ -98,46 +149,60 @@ configure, /usr/local by default.  Building and installing gives you:
 
 Executables, in ${prefix}/bin:
 
-guile --- a stand-alone interpreter for Guile.  With no arguments, this
-       is a simple interactive Scheme interpreter.  It can also be used
-       as an interpreter for script files; see the NEWS file for details.
-guile-config --- a Guile script which provides the information necessary
-       to link your programs against the Guile library.
-guile-snarf --- a script to parse declarations in your C code for 
-       Scheme-visible C functions, Scheme objects to be used by C code,
-       etc.
+ guile --- a stand-alone interpreter for Guile.  With no arguments, this
+       is a simple interactive Scheme interpreter.  It can also be used
+       as an interpreter for script files; see the NEWS file for details.
+ guile-config --- a Guile script which provides the information necessary
+       to link your programs against the Guile library.
+ guile-snarf --- a script to parse declarations in your C code for
+       Scheme-visible C functions, Scheme objects to be used by C code,
+       etc.
+ guile-tools --- a wrapper to invoke the executable modules in
+       subdirectory `scripts' (also installed).
 
 Libraries, in ${prefix}/lib.  Depending on the platform and options
         given to configure, you may get shared libraries in addition
        to or instead of these static libraries:
-       
-libguile.a --- an object library containing the Guile interpreter,
-       You can use Guile in your own programs by linking against this.
-libqthreads.a --- an object library containing the QuickThreads
-       primitives.  If you enabled thread support when you configured
-       Guile, you will need to link your code against this too.
-libguilereadline.a --- an object library containing glue code for the
-        GNU readline library.  See NEWS for instructions on how to enable
-       readline for your personal use.
+
+ libguile.a --- an object library containing the Guile interpreter,
+       You can use Guile in your own programs by linking against this.
+ libqthreads.a --- an object library containing the QuickThreads
+       primitives.  If you enabled thread support when you configured
+       Guile, you will need to link your code against this too.
+ libguilereadline.a --- an object library containing glue code for the
+         GNU readline library.  See NEWS for instructions on how to enable
+       readline for your personal use.
+ libguile-srfi-*.a --- various SRFI support libraries
 
 Header files, in ${prefix}/include:
 
-libguile.h, guile/gh.h, libguile/*.h --- for libguile.
-guile-readline/readline.h --- for guile-readline.
+ libguile.h, guile/gh.h, libguile/*.h --- for libguile.
+ guile-readline/readline.h --- for guile-readline.
 
 Support files, in ${prefix}/share/guile/<version>:
 
-ice-9/* --- run-time support for Guile: the module system,
-       read-eval-print loop, some R4RS code and other infrastructure.
+ ice-9/* --- run-time support for Guile: the module system,
+       read-eval-print loop, some R4RS code and other infrastructure.
+ oop/* --- the Guile Object-Oriented Programming System (GOOPS)
+ scripts/* --- executable modules, i.e., scheme programs that can be both
+       called as an executable from the shell, and loaded and used as a
+       module from scheme code.  See scripts/README for more info.
+ srfi/* --- SRFI support modules.  See srfi/README for more info.
 
 Automake macros, in ${prefix}/share/aclocal:
 
-guile.m4
+ guile.m4
 
 Documentation in Info format, in ${prefix}/info:
 
-data-rep.info --- an essay on how to write C code that works with
-       Guile Scheme values.
+ guile --- Guile reference manual.
+
+ guile-tut --- Guile tutorial.
+
+ GOOPS --- GOOPS reference manual.
+
+ r5rs --- Revised(5) Report on the Algorithmic Language Scheme.
+
 
 The Guile source tree is laid out as follows: