This part of the manual explains the general concepts that you need to understand when interfacing to Guile from C. You will learn about how the latent typing of Scheme is embedded into the static typing of C, how the garbage collection of Guile is made available to C code, and how continuations influence the control flow in a C program.
This knowledge should make it straightforward to add new functions to Guile that can be called from Scheme. Adding new data types is also possible and is done by defining foreign objects.
The Programming Overview section of this part contains general musings and guidelines about programming with Guile. It explores different ways to design a program around Guile, or how to embed Guile into existing programs.
For a pedagogical yet detailed explanation of how the data representation of Guile is implemented, See Data Representation. You don’t need to know the details given there to use Guile from C, but they are useful when you want to modify Guile itself or when you are just curious about how it is all done.
For detailed reference information on the variables, functions etc. that make up Guile’s application programming interface (API), See API Reference.
|• Parallel Installations:||Finding the right Guile.|
|• Linking Programs With Guile:||More precisely, with the libguile library.|
|• Linking Guile with Libraries:||To extend Guile itself.|
|• General Libguile Concepts:||General concepts for using libguile.|
|• Defining New Foreign Object Types:||Adding new types to Guile.|
|• Function Snarfing:||A way to define new functions.|
|• Programming Overview:||An overview of Guile programming.|
|• Autoconf Support:||Putting m4 to good use.|