mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-11 14:21:10 +02:00
More intro text on combining with C code
* doc/ref/intro.texi (Combining with C): New paragraph.
This commit is contained in:
parent
84d86e7453
commit
c6c8e7e06d
1 changed files with 12 additions and 0 deletions
|
@ -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
|
language tailored to the task at hand, but based on a robust language
|
||||||
design.
|
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
|
Guile's module system allows one to break up a large program into
|
||||||
manageable sections with well-defined interfaces between them.
|
manageable sections with well-defined interfaces between them.
|
||||||
Modules may contain a mixture of interpreted and compiled code; Guile
|
Modules may contain a mixture of interpreted and compiled code; Guile
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue