- Subject: [slang-users] SLIRP 1.5 released
- From: Michael Noble <mnoble@xxxxxxxxxxxxx>
- Date: Wed, 22 Dec 2004 10:24:45 -0500
I am pleased to announce that SLIRP version 1.5 is now available at
http://space.mit.edu/CXC/software/slang/modules/slirp/
SLIRP is a C code generator, aimed at simplifying the process of
creating modules for the S-Lang scripting language. Using it can
dramatically reduce the time and effort required to make a wide
range of C, C++, and FORTRAN codes callable directly from the
S-Lang interpreter.
This release is by far the most significant to date, the highlights
of which are given below.
Regards,
Mike Noble
----------------------------------------------------------------------------
Changes in v1.5.0 (12/19/04)
1) Support function annotations, which provide powerful and flexible
means of customizing the generated code. For example, a C function
prototyped as having M inputs and N outputs may be called from
S-Lang as though it were a function of M' inputs and N' outputs.
2) This is achieved by customizing the bundled slsh with the S-Lang
preprocessor extension module (see ./preproc), and using it to add
#argmap, #funcmap, #prototype, #retmap, #ignore, etc directives.
3) Add initial support for C++, which includes:
. wrapping of overloaded functions and those with default values,
but not templates or operators
. generation of pure/standalone C wrappers from C++ code (i.e.,
containing no S-Lang C api calls) via new -cfront option
Sample usage given in new ./examples/cpp directory.
4) Initial support for SLang 2
5) Macros may now be wrapped as if they were fully prototyped
functions, via slirp_map_macro().
6) Moved toggle_error_hook() function to new standalone test framework
package [ TESS, the (Te)st (S)ystem for (S)-Lang]
7) Added default type mapping for void* and 'unsigned long int' types.
8) The distinction between arguments explicitly declared as arrays
(e.g. float f[]) and those ambiguosly declared as arrays or refs
(e.g. float *f) has been deprecated. Thus slirp_map_array() has
also been deprecated.
9) Address bugs seen while parsing rather complex glibc headers
(submitted by Paul Boekholt, paul@xxxxxxxxxxxx)
10) Perform macro substitutions upon args within function prototypes.
11) SLIRP now automatically maps all unknown types (be they function
return values OR args within function parameter lists) to the
opaquely-typed void_ptr. The new -noautotype option turns this off.
12) Prevent simultaneous loading of incompatible SLIRP-based modules, by
introducing an ABI version # which will be checked at load time.
13) Sharpen the saw (resulting in better performance and smaller modules)
. emit fewer, at times many, lines of code
. perform only a single pass over input files
. code is now emitted to a single file
. obviating the -d <dir> switch, which has been eliminated
. except for module init func, all generated funcs are now static
. remove support for deprecated -consts, -init, and -opaques switches
. better recognition of function pointer and enum args
. exhibit use of new #ignore directive (2) in OpenGL and MySQL examples
. strip "int" return types from C wrappers for FORTRAN subroutines
(dburke@xxxxxxxxxxxxxxx)
_______________________________________________
To unsubscribe, visit http://jedsoft.org/slang/mailinglists.html
[2004 date index]
[2004 thread index]
[Thread Prev] [Thread Next]
[Date Prev] [Date Next]