- Subject: [slang-users] slirp 1.9 released
- From: Michael Noble <mnoble@xxxxxxxxxxxxx>
- Date: Fri, 7 Jul 2006 15:22:06 -0400
Friends,
I am pleased to announce that SLIRP 1.9 has been released to
http://space.mit.edu/CXC/software/slang/modules/slirp
The main advance in this version is function vectorization, although
a number of enhancements were also made for C++ and FORTRAN support.
Vectorization is a powerful feature which allows functions to be
called with either scalar
slsh> cos(PI)
-1
or array
slsh> cos( [ 1 : 10000 * PI : PI / 2 ] )
Double_Type[20000]
semantics. S-Lang provides a number of functions which are natively
vectorized and demonstrably outperform their analogues in other
scripting languages, making S-Lang highly suitable for intensive
numerical work in science and engineering. SLIRP now extends this
capability, with commensurate performance and economy of codesize,
to a wide range of external C, C++, and FORTRAN codes, with few
restrictions on the quantity, datatype, or dimensionality of the
function arguments that may be automatically vectorized. More details
are available in the documentation and a forthcoming paper.
Regards,
Mike Noble
----------------------------------------------------------------------------
Changes in v1.9
1. Added support for automatic vectorization of wrapper functions
2. To enlarge the default coverage of wrapped APIs, when autotyping is
on (the default) typedef'd structs not explicitly mapped by your
interface file will be mapped to opaque types with a free() finalizer
3. examples/triv module renamed kitchensink, because that's what it is!
4. Corrected bug with default values for C funcs with 1 arg of basic type
5. Usage statements for ref/array args now reflect "[]" instead of "_ptr"
6. More and better documentation
7. Fix configure bug when no FORTRAN compiler detected (Laurent Perez)
8. Most of emitted code is now embedded within fold markers
9. New #rename directive, equivalent to -rename command line switch
10. Allow more than 9 arguments (ugh!!) in an argmap
11. Fixed C++ support bugs:
- #ifndef after full-line C++ comment was being ignored
- conditional compilation directives w/in C++ block not being honored
- overloaded methods with zero args now always dispatched correctly
12. For flexibility, allow destination type(s) of #copy annotations to
be undefined at the time the #copy is issued
13. Proxy annotation for string* arrays can now accept a NULL default value
14. Generated stub code now includes globals defined w/in the interface
15. Introduced $cleanup parameter, to avoid memory leaks w/in annotations
when they cause wrapper to exit prematurely (e.g. with an error)
16. Enhanced support for multi-dimensional C arrays like double foo[2][2]
17. Opaque wrappers for pointer array types (e.g. double**) now reflect
their C type (e.g. as double_ptr_ptr) rather than mapping to void_ptr
18. Usage stmts for FORTRAN funcs now more accurately reflect arrayness
19. Arrays transparently converted to/from FORTRAN column-major layout
20. Allow #argmap(ignore) blocks to be specified in a single line; i.e.,
to implicitly terminate sans an #end directive
21. New #argmap(setup) method, which allows code to be injected into a
function wrapper prior to the marshaling of its arguments from S-Lang
22. New -ignore option to tune where/how ignored symbols are emitted: by
default they now go to ./ignored.txt (not stderr)
_______________________________________________
To unsubscribe, visit http://jedsoft.org/slang/mailinglists.html
[2006 date index]
[2006 thread index]
[Thread Prev] [Thread Next]
[Date Prev] [Date Next]