www.delorie.com/gnu/docs/guile/guile_104.html   search  
Buy GNU books!

Guile Reference Manual

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

18. Data Representation in Guile

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