From AbInitio

Jump to: navigation, search
Manual: Introduction
Basic User Experience
Advanced User Experience
User Reference
Developer Experience
Guile and Scheme links
License and Copyright

libctl is a free Guile-based library implementing flexible control files for scientific simulations. It was written to support our MIT Photonic Bands and Meep software, but has proven useful in other programs too.

It is documented in the Libctl manual, and development sources are available on the libctl Github page.

Download and installation

libctl 3.2.2 is the current version (see the release notes to see what's changed); you can download it from:

libctl is free software under the GNU General Public license (GPL); see the license and copyright section of the manual for more information.

Installation of libctl (assuming GNU Guile is installed), is as simple as:

make install

where the last step must be run as root. This installs libctl under /usr/local; to install somewhere else, use a --prefix=dir argument to configure.

  • Important: Most Linux distributions come with Guile already installed. Do not install your own version of Guile from source — having two versions of Guile on the same system will cause problems. However, by default most distributions install only the Guile libraries and not the programming headers — to compile libctl, you should install the "guile-devel" or "guile-dev" package (e.g. RPM) that came with your system.
  • To have more control over the version of Guile to use, you can instead do ./configure GUILE=/path/to/guile GUILE_CONFIG=/path/to/guile-config


If you have comments or questions regarding libctl, you can contact Steven G. Johnson at For bug reports and feature requests, however, the the best thing to do is to file an issue at:

Personal tools