mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-30 17:00:23 +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.
|
it actually supports several languages, not just Scheme.
|
||||||
@end itemize
|
@end itemize
|
||||||
@noindent
|
@noindent
|
||||||
The next section explains what we mean by these points. The sections
|
The next few sections explain what we mean by these points. The
|
||||||
after that cover how you can obtain and install Guile, a tour of the
|
sections after that cover how you can obtain and install Guile, a tour
|
||||||
ways that you can use it, how to report any problems that you
|
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
|
encounter, and some typographical conventions that we use in this
|
||||||
manual.
|
manual.
|
||||||
|
|
||||||
@menu
|
@menu
|
||||||
* What is Guile?::
|
* Guile and Scheme::
|
||||||
|
* Combining with C::
|
||||||
* Obtaining and Installing Guile::
|
* Obtaining and Installing Guile::
|
||||||
* Whirlwind Tour::
|
* Whirlwind Tour::
|
||||||
* Reporting Bugs::
|
* Reporting Bugs::
|
||||||
* Typographical Conventions::
|
* Typographical Conventions::
|
||||||
@end menu
|
@end menu
|
||||||
|
|
||||||
@node What is Guile?
|
@node Guile and Scheme
|
||||||
@section What is Guile?
|
@section Guile and Scheme
|
||||||
|
|
||||||
Guile is an interpreter for the Scheme programming language, packaged
|
Guile implements Scheme as described in the
|
||||||
for use in a wide variety of environments. Guile implements Scheme as
|
|
||||||
described in the
|
|
||||||
@tex
|
@tex
|
||||||
Revised$^5$
|
Revised$^5$
|
||||||
@end tex
|
@end tex
|
||||||
@ifnottex
|
@ifnottex
|
||||||
Revised^5
|
Revised^5
|
||||||
@end ifnottex
|
@end ifnottex
|
||||||
Report on the Algorithmic Language Scheme (usually known as @acronym{R5RS}),
|
Report on the Algorithmic Language Scheme (usually known as
|
||||||
providing clean and general data and control structures. Guile goes
|
@acronym{R5RS}), providing clean and general data and control
|
||||||
beyond the rather austere language presented in @acronym{R5RS}, extending it with
|
structures. Guile goes beyond the rather austere language presented
|
||||||
a module system, full access to @acronym{POSIX} system calls, networking support,
|
in @acronym{R5RS}, extending it with a module system, full access to
|
||||||
multiple threads, dynamic linking, a foreign function call interface,
|
@acronym{POSIX} system calls, networking support, multiple threads,
|
||||||
powerful string processing, and many other features needed for
|
dynamic linking, a foreign function call interface, powerful string
|
||||||
programming in the real world.
|
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
|
Like a shell, Guile can run interactively, reading expressions from the
|
||||||
user, evaluating them, and displaying the results, or as a script
|
user, evaluating them, and displaying the results, or as a script
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue