More about Guile's relationship to Scheme standards
authorNeil Jerram <neil@ossau.uklinux.net>
Sat, 19 Dec 2009 23:32:22 +0000 (23:32 +0000)
committerNeil Jerram <neil@ossau.uklinux.net>
Sat, 19 Dec 2009 23:32:22 +0000 (23:32 +0000)
Also continue adding a bit more structure to the introductory "what is
Guile" material.

* doc/ref/intro.texi (Introduction): Split `What is Guile?' (which is
  a bad heading, since we've already answered that...) into `Guile and
  Scheme' and `Combining with C'.  Further splits will follow, to
  cover the other toplevel bullet points.

  (Guile and Scheme): Remove `packaged for use in a wide variety of
  environments', as I don't see what this can mean to the reader at
  this point.  Add text about R6RS and SRFIs.

doc/ref/intro.texi

index fc4e4d6..50cf1f8 100644 (file)
@@ -35,39 +35,61 @@ it emphasizes interactive and incremental programming
 it actually supports several languages, not just Scheme.
 @end itemize
 @noindent
-The next section explains what we mean by these points.  The sections
-after that cover how you can obtain and install Guile, a tour of the
-ways that you can use it, how to report any problems that you
+The next few sections explain what we mean by these points.  The
+sections after that cover how you can obtain and install Guile, a tour
+of the ways that you can use it, how to report any problems that you
 encounter, and some typographical conventions that we use in this
 manual.
 
 @menu
-* What is Guile?::              
+* Guile and Scheme::              
+* Combining with C::              
 * Obtaining and Installing Guile::  
 * Whirlwind Tour::              
 * Reporting Bugs::              
 * Typographical Conventions::          
 @end menu
 
-@node What is Guile?
-@section What is Guile?
+@node Guile and Scheme
+@section Guile and Scheme
 
-Guile is an interpreter for the Scheme programming language, packaged
-for use in a wide variety of environments.  Guile implements Scheme as
-described in the
+Guile implements Scheme as described in the
 @tex
 Revised$^5$
 @end tex
 @ifnottex
 Revised^5
 @end ifnottex
-Report on the Algorithmic Language Scheme (usually known as @acronym{R5RS}),
-providing clean and general data and control structures.  Guile goes
-beyond the rather austere language presented in @acronym{R5RS}, extending it with
-a module system, full access to @acronym{POSIX} system calls, networking support,
-multiple threads, dynamic linking, a foreign function call interface,
-powerful string processing, and many other features needed for
-programming in the real world.
+Report on the Algorithmic Language Scheme (usually known as
+@acronym{R5RS}), providing clean and general data and control
+structures.  Guile goes beyond the rather austere language presented
+in @acronym{R5RS}, extending it with a module system, full access to
+@acronym{POSIX} system calls, networking support, multiple threads,
+dynamic linking, a foreign function call interface, powerful string
+processing, and many other features needed for programming in the real
+world.
+
+The Scheme community has recently agreed and published R6RS, the
+latest installment in the RnRS series.  R6RS significantly expands the
+core Scheme language, and standardises many non-core functions that
+implementations -- including Guile -- have previously done in
+different ways.  Guile has been updated to incorporate some of the
+features of R6RS, and to adjust some existing features to conform to
+the R6RS specification, but it is by no means a complete R6RS
+implementation.
+
+Between R5RS and R6RS, the SRFI process
+(@url{http://srfi.schemers.org/}) standardised interfaces for many
+practical needs, such as multithreading programming and
+multidimensional arrays.  Guile supports many SRFIs, as documented in
+detail in @ref{SRFI Support}.
+
+In summary, so far as relationship to the Scheme standards is
+concerned, Guile is an R5RS implementation with many extensions, some
+of which conform to SRFIs or to the relevant parts of R6RS.
+
+@node Combining with C
+@section Combining with Other C Code
 
 Like a shell, Guile can run interactively, reading expressions from the
 user, evaluating them, and displaying the results, or as a script