1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-28 16:00:22 +02:00

More about Guile's relationship to Scheme standards

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.
This commit is contained in:
Neil Jerram 2009-12-19 23:32:22 +00:00
parent 95c2df5c60
commit ebb6158f23

View 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