Introduction#
Melange is an automatic interface generator which provides
transparent access to both functions and data defined or
generated by existing C libraries. It allows users to import
“interfaces” [1] from existing C header files, controlled
by the contents of a define interface top-level form which
may be included in the same file as arbitrary Dylan code. The
user may use the functions and data specified by this interface
as if they were native Dylan objects, and may export them to other
modules.
Melange provides reasonable interpretations for the various sorts of C declarations which may appear in a header file, as well as mechanisms for explicitly modifying the default interpretations when necessary. For example, users may:
- specify rules for the translation of foreign names 
- explicitly specify new names for specific objects or routines 
- specify parameter passing conventions or mutability of foreign objects 
- specify mappings or equivalences between “foreign” data and native equivalents 
- choose to import only a subset of the declarations in the header file 
All of these customizations, as well as the name of the C
header file, are specified by a define interface clause. See
A Concrete Example for an example.
Footnotes