diff options
-rw-r--r-- | doc/ref/intro.texi | 54 |
1 files changed, 38 insertions, 16 deletions
diff --git a/doc/ref/intro.texi b/doc/ref/intro.texi index fc4e4d6eb..50cf1f85c 100644 --- a/doc/ref/intro.texi +++ b/doc/ref/intro.texi @@ -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 |