---
name: "slang-slirp"
section: "1"
platform: "linux"
package: "slang-slirp"
version: "1.9.8-1"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/slang-slirp"
---

# 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 \<mnoble@space.mit.edu\>. Rafael Laboissiere \<rafael@debian.org\> 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.
