(guile.info.gz) Writing Extensions for Guile
Info Catalog
(guile.info.gz) Linking Programs With Guile
(guile.info.gz) Whirlwind Tour
(guile.info.gz) Guile Modules
5.4 Writing Extensions for Guile
================================
The previous sections have briefly explained how to write programs that
make use of an embedded Guile interpreter. But sometimes, all you want
to do is make new primitive procedures and data types available to the
Scheme programmer. Writing a new version of `guile' is inconvenient in
this case and it would in fact make the life of the users of your new
features needlessly hard.
For example, suppose that there is a program `guile-db' that is a
version of Guile with additional features for accessing a database.
People who want to write Scheme programs that use these features would
have to use `guile-db' instead of the usual `guile' program. Now
suppose that there is also a program `guile-gtk' that extends Guile
with access to the popular Gtk+ toolkit for graphical user interfaces.
People who want to write GUIs in Scheme would have to use `guile-gtk'.
Now, what happens when you want to write a Scheme application that uses
a GUI to let the user access a database? You would have to write a
_third_ program that incorporates both the database stuff and the GUI
stuff. This might not be easy (because `guile-gtk' might be a quite
obscure program, say) and taking this example further makes it easy to
see that this approach can not work in practice.
It would have been much better if both the database features and the
GUI feature had been provided as libraries that can just be linked with
`guile'. Guile makes it easy to do just this, and we encourage you to
make your extensions to Guile available as libraries whenever possible.
You write the new primitive procedures and data types in the normal
fashion, and link them into a shared library instead of into a
stand-alone program. The shared library can then be loaded dynamically
by Guile.
Menu
* A Sample Guile Extension
Info Catalog
(guile.info.gz) Linking Programs With Guile
(guile.info.gz) Whirlwind Tour
(guile.info.gz) Guile Modules
automatically generated byinfo2html