| [Top] | [Contents] | [Index] | [ ? ] |
This essay is meant to provide the background necessary to read and write C code that manipulates Scheme values in a way that conforms to libguile's interface. If you would like to write or maintain a Guile-based application, this is the first information you need.
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.
We assume you know both C and Scheme, but we do not assume you are familiar with Guile's C interface.
1.0 Data Representation in Scheme Why things aren't just totally straightforward, in general terms. 1.1 How Guile does it How to write C code that manipulates Guile values, with an explanation of Guile's garbage collector. 1.2 Defining New Types (Smobs) How to extend Guile with your own application-specific datatypes.