slang-users mailing list

[2004 Date Index] [2004 Thread Index] [Other years]
[Thread Prev] [Thread Next]      [Date Prev] [Date Next]

[slang-users] SLIRP 1.5 released


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]