Merge branch 'wip-manual-2'
Conflicts: doc/ref/api-translation.texi
This commit is contained in:
commit
892cf97107
35 changed files with 254 additions and 229 deletions
|
|
@ -56,9 +56,9 @@ guile_TEXINFOS = preface.texi \
|
|||
posix.texi \
|
||||
expect.texi \
|
||||
scsh.texi \
|
||||
tcltk.texi \
|
||||
scheme-scripts.texi \
|
||||
api-overview.texi \
|
||||
api-discdepr.texi \
|
||||
scheme-debugging.texi \
|
||||
scheme-using.texi \
|
||||
indices.texi \
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Binding Constructs
|
||||
@section Definitions and Variable Bindings
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Compound Data Types
|
||||
@section Compound Data Types
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Control Mechanisms
|
||||
@section Controlling the Flow of Program Execution
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Simple Data Types
|
||||
@section Simple Generic Data Types
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Debugging
|
||||
@section Debugging Infrastructure
|
||||
|
||||
|
|
|
|||
38
doc/ref/api-discdepr.texi
Normal file
38
doc/ref/api-discdepr.texi
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
@c -*-texinfo-*-
|
||||
@c This is part of the GNU Guile Reference Manual.
|
||||
@c Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004
|
||||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@node Discouraged and Deprecated
|
||||
@section Discouraged and Deprecated
|
||||
|
||||
From time to time functions and other features of Guile become
|
||||
obsolete. Guile has some mechanisms in place that can help you cope
|
||||
with this.
|
||||
|
||||
Guile has two levels of obsoleteness: things can be @emph{deprecated},
|
||||
meaning that their use is considered harmful and should be avoided,
|
||||
even in old code; or they can be merely @emph{discouraged}, meaning
|
||||
that they are fine in and of themselves, but that there are better
|
||||
alternatives that should be used in new code.
|
||||
|
||||
When you use a feature that is deprecated, you will likely get a
|
||||
warning message at run-time. Also, deprecated features are not ready
|
||||
for production use: they might be very slow. When something is merely
|
||||
discouraged, it performs normally and you wont get any messages at
|
||||
run-time.
|
||||
|
||||
The primary source for information about just what things are
|
||||
discouraged or deprecated in a given release is the file
|
||||
@file{NEWS}. That file also documents what you should use instead
|
||||
of the obsoleted things.
|
||||
|
||||
The file @file{README} contains instructions on how to control the
|
||||
inclusion or removal of the deprecated and/or discouraged features
|
||||
from the public API of Guile, and how to control the warning messages
|
||||
for deprecated features.
|
||||
|
||||
The idea behind those mechanisms is that normally all deprecated and
|
||||
discouraged features are available, but that you can omit them on
|
||||
purpose to check whether your code still relies on them.
|
||||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Read/Load/Eval/Compile
|
||||
@section Reading and Evaluating Scheme Code
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Internationalization
|
||||
@section Support for Internationalization
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Input and Output
|
||||
@section Input and Output
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Other Languages
|
||||
@section Support for Other Languages
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Memory Management
|
||||
@section Memory Management and Garbage Collection
|
||||
|
||||
|
|
@ -479,7 +478,6 @@ to the value, it is eligible to be returned from a guardian.
|
|||
@end deffn
|
||||
|
||||
|
||||
@page
|
||||
@node Objects
|
||||
@section Objects
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Modules
|
||||
@section Modules
|
||||
@cindex modules
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Options and Config
|
||||
@section Configuration, Features and Runtime Options
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node API Overview
|
||||
@section Overview of the Guile API
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Procedures
|
||||
@section Procedures
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Scheduling
|
||||
@section Threads, Mutexes, Asyncs and Dynamic Roots
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Smobs
|
||||
@section Smobs
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Utility Functions
|
||||
@section General Utility Functions
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Expect
|
||||
@section Expect
|
||||
|
||||
|
|
|
|||
|
|
@ -1,50 +0,0 @@
|
|||
@c -*-texinfo-*-
|
||||
@c This is part of the GNU Guile Reference Manual.
|
||||
@c Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004
|
||||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Libguile Intro
|
||||
@chapter Using Guile as an Extension Language
|
||||
|
||||
The chapters in this part of the manual explain how to use Guile as a
|
||||
powerful application extension language.
|
||||
|
||||
An important change for the 1.6.x series of Guile releases is that the
|
||||
GH interface is now deprecated. For the reasoning behind this decision,
|
||||
see @xref{GH deprecation}. The GH interface will continue to be
|
||||
supported for the 1.6.x and 1.8.x release series, but will be dropped
|
||||
thereafter, so developers are encouraged to switch progressively to the
|
||||
scm interface. The last chapter in this part of the manual (@pxref{GH})
|
||||
documents both how to use GH and how to switch from GH to scm.
|
||||
|
||||
The Guile developers believe that clarification of the GH vs. scm
|
||||
debate, and the consequent deprecation of the GH interface, are in the
|
||||
long term interests of the project. However it does create an
|
||||
unfortunate situation for developers who want to start a project using
|
||||
Guile and so read the manual to find out how to proceed. They will
|
||||
discover that the GH interface, although quite well documented, is
|
||||
deprecated, but that there is almost no adequate documentation for its
|
||||
theoretical replacement, the scm interface. Moreover, the scm interface
|
||||
still has the odd few rough edges which need smoothing down.
|
||||
|
||||
Therefore, although deprecated, it is quite OK to continue to use the GH
|
||||
interface if you feel uncomfortable with the `scm_' interface as it
|
||||
stands today. By the time that support for GH is dropped, we plan to
|
||||
have thoroughly documented the `scm_' interface, and to have enhanced it
|
||||
such that conversion from GH to the `scm_' interface will be very
|
||||
straightforward, and probably mostly automated.
|
||||
|
||||
As far as documentation of the scm interface is concerned, the current
|
||||
position is that it is a bit confused, but that the situation should
|
||||
improve rapidly once the 1.6.0 release is out. The plan is to refocus
|
||||
the bulk of Part II, currently ``Guile Scheme'', as the ``Guile API
|
||||
Reference'' so that it covers both Scheme and C interfaces. (This makes
|
||||
sense because almost all of Guile's primitive procedures on the Scheme
|
||||
level --- e.g. @code{memq} --- are also available as C level primitives
|
||||
in the scm interface --- e.g. @code{scm_memq}.) There will then remain
|
||||
a certain amount of Scheme-specific (such as the ``Basic Ideas''
|
||||
chapter) and C-specific documentation (such as SMOB usage and
|
||||
interaction with the garbage collector) to collect into corresponding
|
||||
chapters.
|
||||
|
|
@ -167,7 +167,7 @@ x
|
|||
@menu
|
||||
|
||||
* Preface::
|
||||
* Introduction to Guile::
|
||||
* Introduction::
|
||||
|
||||
* Programming in Scheme::
|
||||
* Programming in C::
|
||||
|
|
@ -289,6 +289,7 @@ available through both Scheme and C interfaces.
|
|||
|
||||
@menu
|
||||
* API Overview:: Overview of the Guile API.
|
||||
* Discouraged and Deprecated:: Obsolete back-compatible APIs.
|
||||
* The SCM Type:: The fundamental data type for C code.
|
||||
* Initialization:: Initializing Guile.
|
||||
* Snarfing Macros:: Macros for snarfing initialization actions.
|
||||
|
|
@ -315,6 +316,7 @@ available through both Scheme and C interfaces.
|
|||
@end menu
|
||||
|
||||
@include api-overview.texi
|
||||
@include api-discdepr.texi
|
||||
@include api-scm.texi
|
||||
@include api-init.texi
|
||||
@include api-snarf.texi
|
||||
|
|
|
|||
|
|
@ -4,50 +4,121 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@node Introduction to Guile
|
||||
@chapter Introduction to Guile
|
||||
@node Introduction
|
||||
@chapter Introduction
|
||||
|
||||
Guile is an implementation of the Scheme programming language. Scheme
|
||||
(@url{schemers.org}) is an elegant and conceptually simple dialect of
|
||||
Lisp, originated by Guy Steele and Gerald Sussman, and since evolved
|
||||
by the series of reports known as RnRS (the
|
||||
@tex
|
||||
Revised$^n$
|
||||
@end tex
|
||||
@ifnottex
|
||||
Revised^n
|
||||
@end ifnottex
|
||||
Reports on Scheme).
|
||||
|
||||
Unlike -- for example -- Python or Perl, Scheme has no benevolent
|
||||
dictator. There are many Scheme implementations, with different
|
||||
characteristics and with communities and academic activities around
|
||||
them, and the language develops as a result of the interplay between
|
||||
these. Guile's particular characteristics are that
|
||||
|
||||
@itemize
|
||||
@item
|
||||
it is easy to combine with other code written in C
|
||||
@item
|
||||
it has a historical and continuing connection with the GNU Project
|
||||
@item
|
||||
it emphasizes interactive and incremental programming
|
||||
@item
|
||||
it actually supports several languages, not just Scheme.
|
||||
@end itemize
|
||||
|
||||
@noindent
|
||||
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 the typographical conventions that we use in this
|
||||
manual.
|
||||
|
||||
@menu
|
||||
* What is Guile?::
|
||||
* Guile and Scheme::
|
||||
* Combining with C::
|
||||
* Guile and the GNU Project::
|
||||
* Interactive Programming::
|
||||
* Supporting Multiple Languages::
|
||||
* Obtaining and Installing Guile::
|
||||
* Whirlwind Tour::
|
||||
* Discouraged and Deprecated::
|
||||
* 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.
|
||||
|
||||
Like a shell, Guile can run interactively, reading expressions from the
|
||||
user, evaluating them, and displaying the results, or as a script
|
||||
interpreter, reading and executing Scheme code from a file. However,
|
||||
Guile is also packaged as an object library, allowing other applications
|
||||
to easily incorporate a complete Scheme interpreter. An application can
|
||||
then use Guile as an extension language, a clean and powerful configuration
|
||||
language, or as multi-purpose ``glue'', connecting primitives provided
|
||||
by the application. It is easy to call Scheme code from C code and vice
|
||||
versa, giving the application designer full control of how and when to
|
||||
invoke the interpreter. Applications can add new functions, data types,
|
||||
control structures, and even syntax to Guile, creating a domain-specific
|
||||
language tailored to the task at hand, but based on a robust language
|
||||
design.
|
||||
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 multithreaded
|
||||
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 C Code
|
||||
|
||||
Like a shell, Guile can run interactively --- reading expressions from the user,
|
||||
evaluating them, and displaying the results --- or as a script interpreter,
|
||||
reading and executing Scheme code from a file. Guile also provides an object
|
||||
library, @dfn{libguile}, that allows other applications to easily incorporate a
|
||||
complete Scheme interpreter. An application can then use Guile as an extension
|
||||
language, a clean and powerful configuration language, or as multi-purpose
|
||||
``glue'', connecting primitives provided by the application. It is easy to call
|
||||
Scheme code from C code and vice versa, giving the application designer full
|
||||
control of how and when to invoke the interpreter. Applications can add new
|
||||
functions, data types, control structures, and even syntax to Guile, creating a
|
||||
domain-specific language tailored to the task at hand, but based on a robust
|
||||
language design.
|
||||
|
||||
This kind of combination is helped by four aspects of Guile's design
|
||||
and history. First is that Guile has always been targeted as an
|
||||
extension language. Hence its C API has always been of great
|
||||
importance, and has been developed accordingly. Second and third are
|
||||
rather technical points -- that Guile uses conservative garbage
|
||||
collection, and that it implements the Scheme concept of continuations
|
||||
by copying and reinstating the C stack -- but whose practical
|
||||
consequence is that most existing C code can be glued into Guile as
|
||||
is, without needing modifications to cope with strange Scheme
|
||||
execution flows. Last is the module system, which helps extensions to
|
||||
coexist without stepping on each others' toes.
|
||||
|
||||
Guile's module system allows one to break up a large program into
|
||||
manageable sections with well-defined interfaces between them.
|
||||
|
|
@ -58,10 +129,57 @@ routines for general distribution; as of this writing, one can find
|
|||
Emacs interfaces, database access routines, compilers, @acronym{GUI}
|
||||
toolkit interfaces, and @acronym{HTTP} client functions, among others.
|
||||
|
||||
In the future, we hope to expand Guile to support other languages like
|
||||
Tcl and Perl by translating them to Scheme code. This means that users
|
||||
can program applications which use Guile in the language of their
|
||||
choice, rather than having the tastes of the application's author
|
||||
@node Guile and the GNU Project
|
||||
@section Guile and the GNU Project
|
||||
|
||||
Guile was conceived by the GNU Project following the fantastic success
|
||||
of Emacs Lisp as an extension language within Emacs. Just as Emacs
|
||||
Lisp allowed complete and unanticipated applications to be written
|
||||
within the Emacs environment, the idea was that Guile should do the
|
||||
same for other GNU Project applications. This remains true today.
|
||||
|
||||
Guile is now used by GNU project applications such as AutoGen, Lilypond, Denemo,
|
||||
Mailutils, TeXmacs and Gnucash, and we hope that there will be many more in
|
||||
future.
|
||||
|
||||
@node Interactive Programming
|
||||
@section Interactive Programming
|
||||
|
||||
Non-free software has no interest in its users being able to see how it works.
|
||||
They are supposed to just accept it, or to report problems and hope that the
|
||||
source code owners will choose to work on them.
|
||||
|
||||
Free software aims to work reliably just as much as non-free software does, but
|
||||
it should also empower its users by making its workings available. This is
|
||||
useful for many reasons, including education, auditing and enhancements, as well
|
||||
as for debugging problems.
|
||||
|
||||
The ideal free software system achieves this by making it easy for interested
|
||||
users to see the source code for a feature that they are using, and to follow
|
||||
through that source code step-by-step, as it runs. In Emacs, good examples of
|
||||
this are the source code hyperlinks in the help system, and @code{edebug}.
|
||||
Then, for bonus points and maximising the ability for the user to experiment
|
||||
quickly with code changes, the system should allow parts of the source code to
|
||||
be modified and reloaded into the running program, to take immediate effect.
|
||||
|
||||
Guile allows this kind of interactive programming, and this distinguishes it
|
||||
from many Scheme implementations that instead prioritise running a fixed Scheme
|
||||
program as fast as possible --- because there are tradeoffs between performance
|
||||
and the ability to modify parts of an already running program. There are faster
|
||||
Schemes than Guile, but Guile is a GNU project and so prioritises the GNU vision
|
||||
of programming freedom and experimentation.
|
||||
|
||||
@node Supporting Multiple Languages
|
||||
@section Supporting Multiple Languages
|
||||
|
||||
Since the 2.0 release, Guile's architecture supports compiling any language to
|
||||
its core virtual machine bytecode, and Scheme is just one of the supported
|
||||
languages. Other supported languages are Emacs Lisp, ECMAScript (commonly known
|
||||
as Javascript) and Brainfuck, and work is under discussion for Lua, Ruby and
|
||||
Python.
|
||||
|
||||
This means that users can program applications which use Guile in the language
|
||||
of their choice, rather than having the tastes of the application's author
|
||||
imposed on them.
|
||||
|
||||
@node Obtaining and Installing Guile
|
||||
|
|
@ -69,7 +187,7 @@ imposed on them.
|
|||
|
||||
Guile can be obtained from the main GNU archive site
|
||||
@url{ftp://ftp.gnu.org} or any of its mirrors. The file will be named
|
||||
guile-version.tar.gz. The current version is @value{VERSION}, so the
|
||||
guile-@var{version}.tar.gz. The current version is @value{VERSION}, so the
|
||||
file you should grab is:
|
||||
|
||||
@url{ftp://ftp.gnu.org/pub/gnu/guile/guile-@value{VERSION}.tar.gz}
|
||||
|
|
@ -94,9 +212,8 @@ make install
|
|||
@end example
|
||||
|
||||
This will install the Guile executable @file{guile}, the Guile library
|
||||
@file{libguile} and various associated header files and support
|
||||
libraries. It will also install the Guile tutorial and reference
|
||||
manual.
|
||||
@file{libguile} and various associated header files and support libraries. It
|
||||
will also install the Guile reference manual.
|
||||
|
||||
@c [[include instructions for getting R5RS]]
|
||||
|
||||
|
|
@ -385,39 +502,6 @@ There is also a way to manipulate the module system from C but only
|
|||
Scheme files can be autoloaded. Thus, we recommend that you define
|
||||
your modules in Scheme.
|
||||
|
||||
@node Discouraged and Deprecated
|
||||
@section Discouraged and Deprecated
|
||||
|
||||
From time to time functions and other features of Guile become
|
||||
obsolete. Guile has some mechanisms in place that can help you cope
|
||||
with this.
|
||||
|
||||
Guile has two levels of obsoleteness: things can be @emph{deprecated},
|
||||
meaning that their use is considered harmful and should be avoided,
|
||||
even in old code; or they can be merely @emph{discouraged}, meaning
|
||||
that they are fine in and of themselves, but that there are better
|
||||
alternatives that should be used in new code.
|
||||
|
||||
When you use a feature that is deprecated, you will likely get a
|
||||
warning message at run-time. Also, deprecated features are not ready
|
||||
for production use: they might be very slow. When something is merely
|
||||
discouraged, it performs normally and you wont get any messages at
|
||||
run-time.
|
||||
|
||||
The primary source for information about just what things are
|
||||
discouraged or deprecated in a given release is the file
|
||||
@file{NEWS}. That file also documents what you should use instead
|
||||
of the obsoleted things.
|
||||
|
||||
The file @file{README} contains instructions on how to control the
|
||||
inclusion or removal of the deprecated and/or discouraged features
|
||||
from the public API of Guile, and how to control the warning messages
|
||||
for deprecated features.
|
||||
|
||||
The idea behind those mechanisms is that normally all deprecated and
|
||||
discouraged features are available, but that you can omit them on
|
||||
purpose to check whether your code still relies on them.
|
||||
|
||||
@node Reporting Bugs
|
||||
@section Reporting Bugs
|
||||
|
||||
|
|
@ -586,6 +670,53 @@ contents are themselves pointers).
|
|||
@end itemize
|
||||
|
||||
|
||||
@node Typographical Conventions
|
||||
@section Typographical Conventions
|
||||
|
||||
We use some conventions in this manual.
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
@item
|
||||
For some procedures, notably type predicates, we use ``iff'' to mean
|
||||
``if and only if''. The construct is usually something like: `Return
|
||||
@var{val} iff @var{condition}', where @var{val} is usually
|
||||
``@nicode{#t}'' or ``non-@nicode{#f}''. This typically means that
|
||||
@var{val} is returned if @var{condition} holds, and that @samp{#f} is
|
||||
returned otherwise. To clarify: @var{val} will @strong{only} be
|
||||
returned when @var{condition} is true.
|
||||
@cindex iff
|
||||
|
||||
@item
|
||||
In examples and procedure descriptions and all other places where the
|
||||
evaluation of Scheme expression is shown, we use some notation for
|
||||
denoting the output and evaluation results of expressions.
|
||||
|
||||
The symbol @samp{@result{}} is used to tell which value is returned by
|
||||
an evaluation:
|
||||
|
||||
@lisp
|
||||
(+ 1 2)
|
||||
@result{} 3
|
||||
@end lisp
|
||||
|
||||
Some procedures produce some output besides returning a value. This
|
||||
is denoted by the symbol @samp{@print{}}.
|
||||
|
||||
@lisp
|
||||
(begin (display 1) (newline) 'hooray)
|
||||
@print{} 1
|
||||
@result{} hooray
|
||||
@end lisp
|
||||
|
||||
As you can see, this code prints @samp{1} (denoted by
|
||||
@samp{@print{}}), and returns @code{hooray} (denoted by
|
||||
@samp{@result{}}). Do not confuse the two.
|
||||
|
||||
@c Add other conventions here.
|
||||
|
||||
@end itemize
|
||||
|
||||
|
||||
@c Local Variables:
|
||||
@c TeX-master: "guile.texi"
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node General Libguile Concepts
|
||||
@section General concepts for using libguile
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Programming Overview
|
||||
@section An Overview of Guile Programming
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Pretty Printing
|
||||
@section Pretty Printing
|
||||
|
||||
|
|
@ -121,7 +120,6 @@ allowed to consume all of the available width.
|
|||
@end deffn
|
||||
|
||||
|
||||
@page
|
||||
@node Formatted Output
|
||||
@section Formatted Output
|
||||
@cindex formatted output
|
||||
|
|
|
|||
|
|
@ -5,27 +5,14 @@
|
|||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@node Preface
|
||||
@chapter Preface
|
||||
@unnumbered Preface
|
||||
|
||||
This manual documents version @value{VERSION} of Guile, GNU's
|
||||
Ubiquitous Intelligent Language for Extensions. It describes how to
|
||||
use Guile in many useful and interesting ways.
|
||||
|
||||
@menu
|
||||
* Manual Layout::
|
||||
* Manual Conventions::
|
||||
* Contributors::
|
||||
* Guile License::
|
||||
@end menu
|
||||
|
||||
|
||||
@node Manual Layout
|
||||
@section Layout of this Manual
|
||||
|
||||
The manual is divided into the following chapters.
|
||||
This manual describes how to use Guile, GNU's Ubiquitous Intelligent
|
||||
Language for Extensions. It relates particularly to Guile version
|
||||
@value{VERSION}. The manual is divided into the following chapters.
|
||||
|
||||
@table @strong
|
||||
@item Chapter 1: Introduction to Guile
|
||||
@item Chapter 1: Introduction
|
||||
This part provides an overview of what Guile is and how you can use
|
||||
it. A whirlwind tour shows how Guile can be used interactively and as
|
||||
a script interpreter, how to link Guile into your own applications,
|
||||
|
|
@ -64,56 +51,13 @@ classes, multiple inheritance and generic functions.
|
|||
|
||||
@end table
|
||||
|
||||
|
||||
@node Manual Conventions
|
||||
@section Conventions used in this Manual
|
||||
|
||||
We use some conventions in this manual.
|
||||
|
||||
@itemize @bullet
|
||||
|
||||
@item
|
||||
For some procedures, notably type predicates, we use ``iff'' to mean
|
||||
``if and only if''. The construct is usually something like: `Return
|
||||
@var{val} iff @var{condition}', where @var{val} is usually
|
||||
``@nicode{#t}'' or ``non-@nicode{#f}''. This typically means that
|
||||
@var{val} is returned if @var{condition} holds, and that @samp{#f} is
|
||||
returned otherwise. To clarify: @var{val} will @strong{only} be
|
||||
returned when @var{condition} is true.
|
||||
@cindex iff
|
||||
|
||||
@item
|
||||
In examples and procedure descriptions and all other places where the
|
||||
evaluation of Scheme expression is shown, we use some notation for
|
||||
denoting the output and evaluation results of expressions.
|
||||
|
||||
The symbol @samp{@result{}} is used to tell which value is returned by
|
||||
an evaluation:
|
||||
|
||||
@lisp
|
||||
(+ 1 2)
|
||||
@result{} 3
|
||||
@end lisp
|
||||
|
||||
Some procedures produce some output besides returning a value. This
|
||||
is denoted by the symbol @samp{@print{}}.
|
||||
|
||||
@lisp
|
||||
(begin (display 1) (newline) 'hooray)
|
||||
@print{} 1
|
||||
@result{} hooray
|
||||
@end lisp
|
||||
|
||||
As you can see, this code prints @samp{1} (denoted by
|
||||
@samp{@print{}}), and returns @code{hooray} (denoted by
|
||||
@samp{@result{}}). Do not confuse the two.
|
||||
|
||||
@c Add other conventions here.
|
||||
|
||||
@end itemize
|
||||
@menu
|
||||
* Contributors::
|
||||
* Guile License::
|
||||
@end menu
|
||||
|
||||
@node Contributors
|
||||
@section Contributors to this Manual
|
||||
@unnumberedsec Contributors to this Manual
|
||||
|
||||
The Guile reference and tutorial manuals were written and edited
|
||||
largely by Mark Galassi and Jim Blandy. In particular, Jim wrote the
|
||||
|
|
@ -149,7 +93,7 @@ The chapter on GOOPS was written by Christian Lynbech, Mikael
|
|||
Djurfeldt and Neil Jerram.
|
||||
|
||||
@node Guile License
|
||||
@section The Guile License
|
||||
@unnumberedsec The Guile License
|
||||
@cindex copying
|
||||
@cindex GPL
|
||||
@cindex LGPL
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Readline Support
|
||||
@section Readline Support
|
||||
|
||||
|
|
@ -255,7 +254,6 @@ possibilities in @var{string-list}. Matching is case-sensitive.
|
|||
@end defun
|
||||
|
||||
|
||||
@page
|
||||
@node Value History
|
||||
@section Value History
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Tracing
|
||||
@section Tracing
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Further Reading
|
||||
@section Further Reading
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Guile Scripting
|
||||
@section Guile Scripting
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Command Line Handling
|
||||
@section Handling Command Line Options and Arguments
|
||||
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node The Scheme shell (scsh)
|
||||
@section The Scheme shell (scsh)
|
||||
@cindex SCSH
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@
|
|||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node SRFI Support
|
||||
@section SRFI Support Modules
|
||||
@cindex SRFI
|
||||
|
|
|
|||
|
|
@ -1,9 +0,0 @@
|
|||
@c -*-texinfo-*-
|
||||
@c This is part of the GNU Guile Reference Manual.
|
||||
@c Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004
|
||||
@c Free Software Foundation, Inc.
|
||||
@c See the file guile.texi for copying conditions.
|
||||
|
||||
@page
|
||||
@node Tcl/Tk Interface
|
||||
@chapter Tcl/Tk Interface
|
||||
Loading…
Add table
Add a link
Reference in a new issue