guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] GNU Guile branch, master, updated. release_1-9-10-22-g89


From: Neil Jerram
Subject: [Guile-commits] GNU Guile branch, master, updated. release_1-9-10-22-g892cf97
Date: Fri, 16 Apr 2010 21:27:07 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".

http://git.savannah.gnu.org/cgit/guile.git/commit/?id=892cf971072ae56fa82e4f3696e76066753e5677

The branch, master has been updated
       via  892cf971072ae56fa82e4f3696e76066753e5677 (commit)
       via  0a864beb3170ab4e293a10f9a4b5c11a1aeaf722 (commit)
       via  26b9f9090073c896762af3125af54958e153f8f2 (commit)
       via  3ce5e1304bd77eb167f856a2a163038f01f452c8 (commit)
       via  c6c8e7e06d3a9b04ea5be2f0ac2a1029498e3a06 (commit)
       via  84d86e74531bbfd292696eb578910f6c7be51eda (commit)
       via  cdda4e0a3d15e19074f288b2443374835c78277d (commit)
       via  ebb6158f2377c16285551e87d453cd5d93c90d46 (commit)
       via  95c2df5c60abbb5fcc217bde6efe47bff8e0ac3b (commit)
       via  3d9af0c96644022bfa0a6ca2a10c50e0c70c141c (commit)
       via  65de74947772312ed6f116c2c78092acd9f4204d (commit)
       via  029fa8965d31424e474c42352a121e3fca693609 (commit)
       via  2a7758fe2365e5ccf92b479a2c9961b2cfa5d373 (commit)
       via  0fc7099144fd3560e8c8ebdf38336bb5a533338c (commit)
       via  064f84ae563e34f480b22d8334c7f8e1d322d255 (commit)
      from  4bd4b6e67f7cdc3bd2e69e4e9692414972673335 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 892cf971072ae56fa82e4f3696e76066753e5677
Merge: 4bd4b6e67f7cdc3bd2e69e4e9692414972673335 
0a864beb3170ab4e293a10f9a4b5c11a1aeaf722
Author: Neil Jerram <address@hidden>
Date:   Fri Apr 16 22:26:32 2010 +0100

    Merge branch 'wip-manual-2'
    
    Conflicts:
    
        doc/ref/api-translation.texi

-----------------------------------------------------------------------

Summary of changes:
 doc/ref/Makefile.am            |    2 +-
 doc/ref/api-binding.texi       |    1 -
 doc/ref/api-compound.texi      |    1 -
 doc/ref/api-control.texi       |    1 -
 doc/ref/api-data.texi          |    1 -
 doc/ref/api-debug.texi         |    1 -
 doc/ref/api-discdepr.texi      |   38 ++++++
 doc/ref/api-evaluation.texi    |    1 -
 doc/ref/api-i18n.texi          |    1 -
 doc/ref/api-io.texi            |    1 -
 doc/ref/api-languages.texi     |    1 -
 doc/ref/api-memory.texi        |    2 -
 doc/ref/api-modules.texi       |    1 -
 doc/ref/api-options.texi       |    1 -
 doc/ref/api-overview.texi      |    1 -
 doc/ref/api-procedures.texi    |    1 -
 doc/ref/api-scheduling.texi    |    1 -
 doc/ref/api-smobs.texi         |    1 -
 doc/ref/api-utility.texi       |    1 -
 doc/ref/expect.texi            |    1 -
 doc/ref/extend.texi            |   50 --------
 doc/ref/guile.texi             |    4 +-
 doc/ref/intro.texi             |  273 +++++++++++++++++++++++++++++-----------
 doc/ref/libguile-concepts.texi |    1 -
 doc/ref/libguile-program.texi  |    1 -
 doc/ref/misc-modules.texi      |    2 -
 doc/ref/preface.texi           |   78 ++----------
 doc/ref/repl-modules.texi      |    2 -
 doc/ref/scheme-debugging.texi  |    1 -
 doc/ref/scheme-reading.texi    |    1 -
 doc/ref/scheme-scripts.texi    |    1 -
 doc/ref/script-getopt.texi     |    1 -
 doc/ref/scsh.texi              |    1 -
 doc/ref/srfi-modules.texi      |    1 -
 doc/ref/tcltk.texi             |    9 --
 35 files changed, 255 insertions(+), 230 deletions(-)
 create mode 100644 doc/ref/api-discdepr.texi
 delete mode 100644 doc/ref/extend.texi
 delete mode 100644 doc/ref/tcltk.texi

diff --git a/doc/ref/Makefile.am b/doc/ref/Makefile.am
index df1b4e1..f6452ee 100644
--- a/doc/ref/Makefile.am
+++ b/doc/ref/Makefile.am
@@ -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                   \
diff --git a/doc/ref/api-binding.texi b/doc/ref/api-binding.texi
index e53c480..c5d5659 100644
--- a/doc/ref/api-binding.texi
+++ b/doc/ref/api-binding.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Binding Constructs
 @section Definitions and Variable Bindings
 
diff --git a/doc/ref/api-compound.texi b/doc/ref/api-compound.texi
index 6fcc8e9..93d930f 100644
--- a/doc/ref/api-compound.texi
+++ b/doc/ref/api-compound.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Compound Data Types
 @section Compound Data Types
 
diff --git a/doc/ref/api-control.texi b/doc/ref/api-control.texi
index 8379412..0b4b587 100644
--- a/doc/ref/api-control.texi
+++ b/doc/ref/api-control.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Control Mechanisms
 @section Controlling the Flow of Program Execution
 
diff --git a/doc/ref/api-data.texi b/doc/ref/api-data.texi
index 8b6bc1f..420660b 100755
--- a/doc/ref/api-data.texi
+++ b/doc/ref/api-data.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Simple Data Types
 @section Simple Generic Data Types
 
diff --git a/doc/ref/api-debug.texi b/doc/ref/api-debug.texi
index 37a5b21..0aa1bb6 100644
--- a/doc/ref/api-debug.texi
+++ b/doc/ref/api-debug.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Debugging
 @section Debugging Infrastructure
 
diff --git a/doc/ref/api-discdepr.texi b/doc/ref/api-discdepr.texi
new file mode 100644
index 0000000..ae6a685
--- /dev/null
+++ b/doc/ref/api-discdepr.texi
@@ -0,0 +1,38 @@
address@hidden -*-texinfo-*-
address@hidden This is part of the GNU Guile Reference Manual.
address@hidden Copyright (C)  1996, 1997, 2000, 2001, 2002, 2003, 2004
address@hidden   Free Software Foundation, Inc.
address@hidden See the file guile.texi for copying conditions.
+
address@hidden Discouraged and Deprecated
address@hidden 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
address@hidden  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.
diff --git a/doc/ref/api-evaluation.texi b/doc/ref/api-evaluation.texi
index ff91688..21eee68 100644
--- a/doc/ref/api-evaluation.texi
+++ b/doc/ref/api-evaluation.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Read/Load/Eval/Compile
 @section Reading and Evaluating Scheme Code
 
diff --git a/doc/ref/api-i18n.texi b/doc/ref/api-i18n.texi
index ad1c2dc..97474a2 100644
--- a/doc/ref/api-i18n.texi
+++ b/doc/ref/api-i18n.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Internationalization
 @section Support for Internationalization
 
diff --git a/doc/ref/api-io.texi b/doc/ref/api-io.texi
index c97b920..f09ecfb 100644
--- a/doc/ref/api-io.texi
+++ b/doc/ref/api-io.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Input and Output
 @section Input and Output
 
diff --git a/doc/ref/api-languages.texi b/doc/ref/api-languages.texi
index 3dcf985..fb42987 100644
--- a/doc/ref/api-languages.texi
+++ b/doc/ref/api-languages.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Other Languages
 @section Support for Other Languages
 
diff --git a/doc/ref/api-memory.texi b/doc/ref/api-memory.texi
index 15cef64..ec58470 100644
--- a/doc/ref/api-memory.texi
+++ b/doc/ref/api-memory.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @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
 
 
address@hidden
 @node Objects
 @section Objects
 
diff --git a/doc/ref/api-modules.texi b/doc/ref/api-modules.texi
index 35483b4..618f5fa 100644
--- a/doc/ref/api-modules.texi
+++ b/doc/ref/api-modules.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Modules
 @section Modules
 @cindex modules
diff --git a/doc/ref/api-options.texi b/doc/ref/api-options.texi
index e77b421..b44bb18 100644
--- a/doc/ref/api-options.texi
+++ b/doc/ref/api-options.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Options and Config
 @section Configuration, Features and Runtime Options
 
diff --git a/doc/ref/api-overview.texi b/doc/ref/api-overview.texi
index 4837889..583d009 100644
--- a/doc/ref/api-overview.texi
+++ b/doc/ref/api-overview.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node API Overview
 @section Overview of the Guile API
 
diff --git a/doc/ref/api-procedures.texi b/doc/ref/api-procedures.texi
index 48d1c3f..a2f647c 100644
--- a/doc/ref/api-procedures.texi
+++ b/doc/ref/api-procedures.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Procedures
 @section Procedures
 
diff --git a/doc/ref/api-scheduling.texi b/doc/ref/api-scheduling.texi
index 8382ba3..ce6e952 100644
--- a/doc/ref/api-scheduling.texi
+++ b/doc/ref/api-scheduling.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Scheduling
 @section Threads, Mutexes, Asyncs and Dynamic Roots
 
diff --git a/doc/ref/api-smobs.texi b/doc/ref/api-smobs.texi
index 82ca4b2..db8161c 100644
--- a/doc/ref/api-smobs.texi
+++ b/doc/ref/api-smobs.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Smobs
 @section Smobs
 
diff --git a/doc/ref/api-utility.texi b/doc/ref/api-utility.texi
index edc002b..8fdfb22 100644
--- a/doc/ref/api-utility.texi
+++ b/doc/ref/api-utility.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Utility Functions
 @section General Utility Functions
 
diff --git a/doc/ref/expect.texi b/doc/ref/expect.texi
index 71e9a38..140fd47 100644
--- a/doc/ref/expect.texi
+++ b/doc/ref/expect.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Expect
 @section Expect
 
diff --git a/doc/ref/extend.texi b/doc/ref/extend.texi
deleted file mode 100644
index 8e25ded..0000000
--- a/doc/ref/extend.texi
+++ /dev/null
@@ -1,50 +0,0 @@
address@hidden -*-texinfo-*-
address@hidden This is part of the GNU Guile Reference Manual.
address@hidden Copyright (C)  1996, 1997, 2000, 2001, 2002, 2003, 2004
address@hidden   Free Software Foundation, Inc.
address@hidden See the file guile.texi for copying conditions.
-
address@hidden
address@hidden Libguile Intro
address@hidden 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.
diff --git a/doc/ref/guile.texi b/doc/ref/guile.texi
index 66584fc..8a94efe 100644
--- a/doc/ref/guile.texi
+++ b/doc/ref/guile.texi
@@ -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
address@hidden api-discdepr.texi
 @include api-scm.texi
 @include api-init.texi
 @include api-snarf.texi
diff --git a/doc/ref/intro.texi b/doc/ref/intro.texi
index 2c5129a..86e52a5 100644
--- a/doc/ref/intro.texi
+++ b/doc/ref/intro.texi
@@ -4,50 +4,121 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden Introduction to Guile
address@hidden Introduction to Guile
address@hidden Introduction
address@hidden 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
address@hidden
+Revised$^n$
address@hidden tex
address@hidden
+Revised^n
address@hidden 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
+
address@hidden
address@hidden
+it is easy to combine with other code written in C
address@hidden
+it has a historical and continuing connection with the GNU Project
address@hidden
+it emphasizes interactive and incremental programming
address@hidden
+it actually supports several languages, not just Scheme.
address@hidden itemize
+
address@hidden
+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
 
address@hidden What is Guile?
address@hidden What is Guile?
address@hidden Guile and Scheme
address@hidden 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.
-
-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.
+Report on the Algorithmic Language Scheme (usually known as
address@hidden), 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
address@hidden 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 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.
+
address@hidden Combining with C
address@hidden 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
address@hidden Guile and the GNU Project
address@hidden 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.
+
address@hidden Interactive Programming
address@hidden 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.
+
address@hidden Supporting Multiple Languages
address@hidden 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
address@hidden  The current version is @value{VERSION}, so the
 file you should grab is:
 
 @url{ftp://ftp.gnu.org/pub/gnu/guile/address@hidden
@@ -94,9 +212,8 @@ make install
 @end example
 
 This will install the Guile executable @file{guile}, the Guile library
address@hidden and various associated header files and support
-libraries. It will also install the Guile tutorial and reference
-manual.
address@hidden 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.
 
address@hidden Discouraged and Deprecated
address@hidden 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
address@hidden  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
 
 
address@hidden Typographical Conventions
address@hidden Typographical Conventions
+
+We use some conventions in this manual.
+
address@hidden @bullet
+
address@hidden
+For some procedures, notably type predicates, we use ``iff'' to mean
+``if and only if''.  The construct is usually something like: `Return
address@hidden iff @var{condition}', where @var{val} is usually
address@hidden'' or address@hidden''.  This typically means that
address@hidden 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.
address@hidden iff
+
address@hidden
+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 @address@hidden is used to tell which value is returned by
+an evaluation:
+
address@hidden
+(+ 1 2)
address@hidden 3
address@hidden lisp
+
+Some procedures produce some output besides returning a value.  This
+is denoted by the symbol @address@hidden
+
address@hidden
+(begin (display 1) (newline) 'hooray)
address@hidden 1
address@hidden hooray
address@hidden lisp
+
+As you can see, this code prints @samp{1} (denoted by
address@hidden@print{}}), and returns @code{hooray} (denoted by
address@hidden@result{}}).  Do not confuse the two.
+
address@hidden Add other conventions here.
+
address@hidden itemize
+
 
 @c Local Variables:
 @c TeX-master: "guile.texi"
diff --git a/doc/ref/libguile-concepts.texi b/doc/ref/libguile-concepts.texi
index c149730..1e4cb1e 100644
--- a/doc/ref/libguile-concepts.texi
+++ b/doc/ref/libguile-concepts.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node General Libguile Concepts
 @section General concepts for using libguile
 
diff --git a/doc/ref/libguile-program.texi b/doc/ref/libguile-program.texi
index b3102f2..92901c7 100644
--- a/doc/ref/libguile-program.texi
+++ b/doc/ref/libguile-program.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Programming Overview
 @section An Overview of Guile Programming
 
diff --git a/doc/ref/misc-modules.texi b/doc/ref/misc-modules.texi
index 50a478f..6cd0ad2 100644
--- a/doc/ref/misc-modules.texi
+++ b/doc/ref/misc-modules.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Pretty Printing
 @section Pretty Printing
 
@@ -121,7 +120,6 @@ allowed to consume all of the available width.
 @end deffn
 
 
address@hidden
 @node Formatted Output
 @section Formatted Output
 @cindex formatted output
diff --git a/doc/ref/preface.texi b/doc/ref/preface.texi
index 8552d38..f2d59cc 100644
--- a/doc/ref/preface.texi
+++ b/doc/ref/preface.texi
@@ -5,27 +5,14 @@
 @c See the file guile.texi for copying conditions.
 
 @node Preface
address@hidden Preface
address@hidden 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.
-
address@hidden
-* Manual Layout::               
-* Manual Conventions::          
-* Contributors::                
-* Guile License::               
address@hidden menu
-
-
address@hidden Manual Layout
address@hidden 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
address@hidden  The manual is divided into the following chapters.
 
 @table @strong
address@hidden Chapter 1: Introduction to Guile
address@hidden 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
 
-
address@hidden Manual Conventions
address@hidden Conventions used in this Manual
-
-We use some conventions in this manual.
-
address@hidden @bullet
-
address@hidden
-For some procedures, notably type predicates, we use ``iff'' to mean
-``if and only if''.  The construct is usually something like: `Return
address@hidden iff @var{condition}', where @var{val} is usually
address@hidden'' or address@hidden''.  This typically means that
address@hidden 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.
address@hidden iff
-
address@hidden
-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 @address@hidden is used to tell which value is returned by
-an evaluation:
-
address@hidden
-(+ 1 2)
address@hidden 3
address@hidden lisp
-
-Some procedures produce some output besides returning a value.  This
-is denoted by the symbol @address@hidden
-
address@hidden
-(begin (display 1) (newline) 'hooray)
address@hidden 1
address@hidden hooray
address@hidden lisp
-
-As you can see, this code prints @samp{1} (denoted by
address@hidden@print{}}), and returns @code{hooray} (denoted by
address@hidden@result{}}).  Do not confuse the two.
-
address@hidden Add other conventions here.
-
address@hidden itemize
address@hidden
+* Contributors::                
+* Guile License::               
address@hidden menu
 
 @node Contributors
address@hidden Contributors to this Manual
address@hidden 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
address@hidden The Guile License
address@hidden The Guile License
 @cindex copying
 @cindex GPL
 @cindex LGPL
diff --git a/doc/ref/repl-modules.texi b/doc/ref/repl-modules.texi
index 5f274e2..385ba49 100644
--- a/doc/ref/repl-modules.texi
+++ b/doc/ref/repl-modules.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Readline Support
 @section Readline Support
 
@@ -255,7 +254,6 @@ possibilities in @var{string-list}.  Matching is 
case-sensitive.
 @end defun
 
 
address@hidden
 @node Value History
 @section Value History
 
diff --git a/doc/ref/scheme-debugging.texi b/doc/ref/scheme-debugging.texi
index bcd9f2d..dd49dd3 100644
--- a/doc/ref/scheme-debugging.texi
+++ b/doc/ref/scheme-debugging.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Tracing
 @section Tracing
 
diff --git a/doc/ref/scheme-reading.texi b/doc/ref/scheme-reading.texi
index 8b0e434..6ec80a5 100644
--- a/doc/ref/scheme-reading.texi
+++ b/doc/ref/scheme-reading.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Further Reading
 @section Further Reading
 
diff --git a/doc/ref/scheme-scripts.texi b/doc/ref/scheme-scripts.texi
index 5e9f16a..f43d360 100644
--- a/doc/ref/scheme-scripts.texi
+++ b/doc/ref/scheme-scripts.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Guile Scripting
 @section Guile Scripting
 
diff --git a/doc/ref/script-getopt.texi b/doc/ref/script-getopt.texi
index af1eb7d..c7bb0d4 100644
--- a/doc/ref/script-getopt.texi
+++ b/doc/ref/script-getopt.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node Command Line Handling
 @section Handling Command Line Options and Arguments
 
diff --git a/doc/ref/scsh.texi b/doc/ref/scsh.texi
index b1af1a4..073bb7f 100644
--- a/doc/ref/scsh.texi
+++ b/doc/ref/scsh.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node The Scheme shell (scsh)
 @section The Scheme shell (scsh)
 @cindex SCSH
diff --git a/doc/ref/srfi-modules.texi b/doc/ref/srfi-modules.texi
index d3eafc5..0d192fa 100644
--- a/doc/ref/srfi-modules.texi
+++ b/doc/ref/srfi-modules.texi
@@ -4,7 +4,6 @@
 @c   Free Software Foundation, Inc.
 @c See the file guile.texi for copying conditions.
 
address@hidden
 @node SRFI Support
 @section SRFI Support Modules
 @cindex SRFI
diff --git a/doc/ref/tcltk.texi b/doc/ref/tcltk.texi
deleted file mode 100644
index da30919..0000000
--- a/doc/ref/tcltk.texi
+++ /dev/null
@@ -1,9 +0,0 @@
address@hidden -*-texinfo-*-
address@hidden This is part of the GNU Guile Reference Manual.
address@hidden Copyright (C)  1996, 1997, 2000, 2001, 2002, 2003, 2004
address@hidden   Free Software Foundation, Inc.
address@hidden See the file guile.texi for copying conditions.
-
address@hidden
address@hidden Tcl/Tk Interface
address@hidden Tcl/Tk Interface


hooks/post-receive
-- 
GNU Guile




reply via email to

[Prev in Thread] Current Thread [Next in Thread]