Buy GNU books!
|[ < ]||[ > ]||[ << ]||[ Up ]||[ >> ]||[Top]||[Contents]||[Index]||[ ? ]|
by Jim Blandy
[Due to the rather non-orthogonal and performance-oriented nature of the SCM interface, you need to understand SCM internals *before* you can use the SCM API. That's why this chapter comes first.]
[NOTE: this is Jim Blandy's essay almost entirely unmodified. It has to be adapted to fit this manual smoothly.]
In order to make sense of Guile's SCM_ functions, or read libguile's source code, it's essential to have a good grasp of how Guile actually represents Scheme values. Otherwise, a lot of the code, and the conventions it follows, won't make very much sense. This essay is meant to provide the background necessary to read and write C code that manipulates Scheme values in a way that is compatible with libguile.
We assume you know both C and Scheme, but we do not assume you are familiar with Guile's implementation.
18.1 Data Representation in Scheme Why things aren't just totally straightforward, in general terms. 18.2 How Guile does it How to write C code that manipulates Guile values, with an explanation of Guile's garbage collector. 18.3 Defining New Types (Smobs) How to extend Guile with your own application-specific datatypes.
|webmaster||delorie software privacy|
|Copyright © 2003 by The Free Software Foundation||Updated Jun 2003|