mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-29 16:30:19 +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:
parent
95c2df5c60
commit
ebb6158f23
1 changed files with 38 additions and 16 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue