Previous: Writing new Modules, Up: Using the Guile Module System


2.5.3 Putting Extensions into Modules

In addition to Scheme code you can also put things that are defined in C into a module.

You do this by writing a small Scheme file that defines the module and call load-extension directly in the body of the module.

     $ cat /usr/local/share/guile/site/math/bessel.scm
     
     (define-module (math bessel)
       #:export (j0))
     
     (load-extension "libguile-bessel" "init_bessel")
     
     $ file /usr/local/lib/guile/2.0/extensions/libguile-bessel.so
     ... ELF 32-bit LSB shared object ...
     $ guile
     scheme@(guile-user)> (use-modules (math bessel))
     scheme@(guile-user)> (j0 2)
     $1 = 0.223890779141236

See Modules and Extensions, for more information.