extend.texi 2.6 KB

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