Reference

slang-slirp(1)

C code generator for the S‐Lang scripting language

NAME

slirp - C code generator for the S‐Lang scripting language

SYNOPSIS

slirp [ OPTIONS ... ] headerfile [ headerfile ... ]

DESCRIPTION

SLIRP is the (SL)ang (I)nterface (P)ackage, a code generator aimed primarily at simplifying the process of creating modules for the S‐Lang scripting language.

SLIRP can dramatically reduce the time and effort required to make C, C++, or Fortran code callable directly from the S‐Lang interpreter, generate Makefiles to automate the build process, and even parallelize wrappers with OpenMP to take advantage of multiprocessors.

SLIRP may also be used to generate pure C bindings for C++ code, or empty (stub) implementations for the interface(s) specified by its input header files. The code generated in these cases has no dependencies upon S‐Lang whatsoever.

OPTIONS

-c++

Mandate that input headers be interpreted as C++, which can be helpful to coerce the interpretation of files that either lack a .hh suffix or do not contain class definitions or other explicit C++ syntax.

-cfront

Generate standalone C wrappers (.cc and .h files), instead of S-Lang bindings, for C++ interface

-const_strings

Treat 'char*' return values as 'const char*'

-d

Include slirp_debug_pause() debugging stub within module

-fortran_strlen <i>

Indicate where hidden string len args are placed in wrappers of Fortran calls accepting CHARACTER args (0 = append length args to end of arg list [default] 1 = insert length args directly after CHARACTER arg)

-g[=integer]

Emit debugging output to terminal, of varying verbosity

-fprefix <pref>

Emit code only for functions which begin with an exact match to <pref>, instead of default regexp

-h -help --help

This message

-ignore <option>

Tune the emission of ignored symbol messages: use 'notrunc' to append to existing ignored symbol list (default: the ignored symbol list is truncated at startup), or specify an alternate output file name (default: ./ignored.txt)

-I <dir>

Add <dir> to search path for headers during code generation; will also be reflected in -make output

-L <dir>

Add <dir> to search path at link time; for -make

-l <lib>

Add <lib> to library list at link time; for -make

-ldflags <flags>

Use when -L or -l are inappropriate; for -make

-m <name>

Override default module name with <name>

-make

Generate a best-effort Makefile for compiling module (-make is also implied by -L, -l, and -ldflags)

-mapnames <R> <S>

Synonym for -rename (deprecated)

-nocom

Do not wrap common blocks

-noinit

Do not generate an initialization fragment

-nopop

Avoid explicit pop of func arguments, if possible (also turns off generation of Usage: statements)

-noautotype

Disable mapping of unknown types to opaque ptr types

-otree

Print hierarchical listing of all opaque types defined by the current invocation, then exit

-openmp

Emit OpenMP #pragmas to parallelize vectorized code (implies -vec, i.e. turns on vectorization)

-print

Print interface for code which would be generated, but don't actually generate any code

-rc <file>

Load customizations from <file>, rather than from first of ./slirprc or $SLIRPRC

-refscalars

Support passing scalars as array/ref arguments (default: on for Fortran bindings, off for C/C++)

-rename <R> <S>

Map C functions with prefixes matching the S-Lang regexp R to S-Lang functions beginning with string S (set S=NULL to map regexp prefix to empty string)

-sldb

Run in interactive SLDB debugger (S‐Lang 2 only)

-stdout

Emit code to stdout, instead of files

-stubs

Generate stub (empty) implementations for input header files, allowing the module interface to be exercised without linking in the underlying library or any of its dependencies

-tmapout <file>

Save a copy of the active typemap table to <file>

-tmapin <file>

evalfile() additional typemaps from <file>

-vec

Attempt to vectorize every function within input interface

--version

Output version information

-v

Show verbose loading messages

-vh -vhelp, --vhelp

Verbose help (normal --help output, plus rarely used options)

AUTHOR

The author of SLIRP is Michael S. Noble <[email protected]>. Rafael Laboissiere <[email protected]> created the SLIRP package for Debian.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 any later version published by the Free Software Foundation.

On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL

SEE ALSO

On Debian systems the reference manual for SLIRP can be found at /usr/share/doc/slang-slirp/manual.txt.gz. It is also available in PDF, HTML, and text forms on the SLIRP website.

History

-fortran_strlen since Debian 5.0 (Lenny); -nocom since Debian 6.0 (Squeeze); -openmp since Debian 5.0 (Lenny); -sldb since Debian 6.0 (Squeeze).

-debug until Debian 5.0 (Lenny).