summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeil Jerram <neil@ossau.uklinux.net>2009-12-21 01:02:56 +0000
committerNeil Jerram <neil@ossau.uklinux.net>2009-12-21 01:02:56 +0000
commitc6c8e7e06d3a9b04ea5be2f0ac2a1029498e3a06 (patch)
tree6933d264397b02fce6067b0e7f9cc25cda6aadfb
parent84d86e74531bbfd292696eb578910f6c7be51eda (diff)
downloadguile-c6c8e7e06d3a9b04ea5be2f0ac2a1029498e3a06.tar.gz
More intro text on combining with C code
* doc/ref/intro.texi (Combining with C): New paragraph.
-rw-r--r--doc/ref/intro.texi12
1 files changed, 12 insertions, 0 deletions
diff --git a/doc/ref/intro.texi b/doc/ref/intro.texi
index 78199a7cd..4821479fe 100644
--- a/doc/ref/intro.texi
+++ b/doc/ref/intro.texi
@@ -107,6 +107,18 @@ control structures, and even syntax to Guile, creating a domain-specific
language tailored to the task at hand, but based on a robust language
design.
+This kind of combination is helped by four aspects of Guile's design
+and history. First is that Guile has always been targeted as an
+extension language. Hence its C API has always been of great
+importance, and has been developed accordingly. Second and third are
+rather technical points -- that Guile uses conservative garbage
+collection, and that it implements the Scheme concept of continuations
+by copying and reinstating the C stack -- but whose practical
+consequence is that most existing C code can be glued into Guile as
+is, without needing modifications to cope with strange Scheme
+execution flows. Last is the module system, which helps extensions to
+coexist without stepping on each others' toes.
+
Guile's module system allows one to break up a large program into
manageable sections with well-defined interfaces between them.
Modules may contain a mixture of interpreted and compiled code; Guile