Added Copyright notice.
[bpt/guile.git] / doc / ref / extend.texi
CommitLineData
2da09c3f
MV
1@c -*-texinfo-*-
2@c This is part of the GNU Guile Reference Manual.
3@c Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004
4@c Free Software Foundation, Inc.
5@c See the file guile.texi for copying conditions.
6
a0e07ba4
NJ
7@page
8@node Libguile Intro
9@chapter Using Guile as an Extension Language
10
11The chapters in this part of the manual explain how to use Guile as a
12powerful application extension language.
13
14An important change for the 1.6.x series of Guile releases is that the
15GH interface is now deprecated. For the reasoning behind this decision,
16see @xref{GH deprecation}. The GH interface will continue to be
17supported for the 1.6.x and 1.8.x release series, but will be dropped
18thereafter, so developers are encouraged to switch progressively to the
19scm interface. The last chapter in this part of the manual (@pxref{GH})
20documents both how to use GH and how to switch from GH to scm.
21
22The Guile developers believe that clarification of the GH vs. scm
23debate, and the consequent deprecation of the GH interface, are in the
24long term interests of the project. However it does create an
25unfortunate situation for developers who want to start a project using
26Guile and so read the manual to find out how to proceed. They will
27discover that the GH interface, although quite well documented, is
28deprecated, but that there is almost no adequate documentation for its
29theoretical replacement, the scm interface. Moreover, the scm interface
30still has the odd few rough edges which need smoothing down.
31
32Therefore, although deprecated, it is quite OK to continue to use the GH
33interface if you feel uncomfortable with the `scm_' interface as it
34stands today. By the time that support for GH is dropped, we plan to
35have thoroughly documented the `scm_' interface, and to have enhanced it
36such that conversion from GH to the `scm_' interface will be very
37straightforward, and probably mostly automated.
38
39As far as documentation of the scm interface is concerned, the current
40position is that it is a bit confused, but that the situation should
41improve rapidly once the 1.6.0 release is out. The plan is to refocus
42the bulk of Part II, currently ``Guile Scheme'', as the ``Guile API
43Reference'' so that it covers both Scheme and C interfaces. (This makes
44sense because almost all of Guile's primitive procedures on the Scheme
45level --- e.g. @code{memq} --- are also available as C level primitives
46in the scm interface --- e.g. @code{scm_memq}.) There will then remain
47a certain amount of Scheme-specific (such as the ``Basic Ideas''
48chapter) and C-specific documentation (such as SMOB usage and
49interaction with the garbage collector) to collect into corresponding
50chapters.