STANC(1)

NAME

stanc - compile Stan programs to C++

SYNOPSIS

stanc [OPTION]… [MODEL_FILE]

DESCRIPTION

The Stan compiler (also known as stanc or stanc3) reads a Stan file and compiles it to C++. It also allows for other Stan program manipulation like formatting (--auto-format) and introspection (--info).

For more information on Stan, see https://mc-stan.org.

For more documentation on the compiler for users, see https://mc-stan.org/docs/stan-users-guide/using-stanc.html.

For more information on the compiler for developers, see %%PKG_DOC%%.

ARGUMENTS

MODEL_FILE
    The Stan model file to compile. This should be a file ending in .stan or .stanfunctions (which automatically sets --standalone-functions), or '-' to read from standard input.

OPTIONS

-? [=FMT] (default=auto)
    Synonym for --help.

--allow-undefined
    Do not fail if a function is declared but not defined. This usually means the definition will be provided later as a C++ function.

--auto-format
    Output a formatted version of the Stan program. The output can be tweaked using --max-line-length and --canonicalize.

--canonicalize=OPTIONS
    Enable specific canonicalizations in a comma separated list. Options are 'deprecations', 'parentheses', 'braces', 'includes', 'strip-comments'.

--color=WHEN (absent=auto or STANC_COLORS env)
    Colorize the output. WHEN must be one of auto, always or never.

--filename-in-msg=FILENAME (absent=MODEL_FILE)
    Sets the filename used in compiler and runtime errors.

--help[=FMT] (default=auto)
    Show this help in format FMT. The value FMT must be one of auto, pager, groff or plain. With auto, the format is pager or plain whenever the TERM env var is dumb or undefined.

-I DIRS, --include-paths=DIRS (absent="")
    A comma-separated list of directories which are searched whenever an #include directive is parsed.

--info
    If set, print information about the model.

--max-line-length=LENGTH (absent=78)
    Set the maximum line length for the formatter.

--name=NAME (absent=MODEL_FILE_NAME_model)
    Take a string to set as the model name. This controls the namespace in the generated C++.

-o FILENAME, --output=FILENAME
    Output file for generated C++ code (default = "MODEL_FILE_NAME.hpp") or auto-formatting output (default: no file/print to stdout).

--O0
    (Default) Do not apply optimizations to the Stan code.

--O1
    Only basic optimizations are applied. Recommended. The deprecated option --O is aliased to this starting in Stan 2.37.

--Oexperimental
    (Experimental) Apply all compiler optimizations. Some of these are not thorougly tested and may not always improve a programs performance.

--print-canonical
    Prints the canonicalized program. Equivalent to --auto-format --canonicalize=deprecations,includes,parentheses,braces.

--print-cpp
    If set, output the generated C++ Stan model class to stdout.

--standalone-functions
    If set, the generated C++ will only contain the code for the functions in the functions block, not the full Stan model class.

--use-opencl
    If set, try to use matrix_cl signatures for supported Stan Math functions.

--version
    Show version information.

--warn-pedantic
    Emit warnings about common mistakes in Stan programs. Note: This may produce false positive warnings.

--warn-uninitialized
    (Experimental) Emit warnings about uninitialized variables.

COMMANDS

The following flags will cause the compiler to exit after printing information. No MODEL_FILE is required.

--dump-stan-math-distributions
    Dump out the list of supported probability distributions and their supported suffix types for the Stan Math backend.

--dump-stan-math-signatures
    Dump out the list of supported function signatures the for Stan Math backend.

EXTRA OPTIONS

These flags are provided primarily for development and debugging; their exact behavior should not be relied on.

--debug-ast
    For debugging purposes: print the undecorated AST, before semantic checking.

--debug-data-file=JSON_FILE
    Provide (possibly partially specified) data block values for use with --debug-generate-data or --debug-generate-inits.

--debug-decorated-ast
    For debugging purposes: print the decorated AST, after semantic checking.

--debug-generate-data
    For debugging purposes: generate a mock dataset to run the model on.

--debug-generate-inits
    For debugging purposes: generate a mock initial value for each parameter.

--debug-lex
    For debugging purposes: print the lexer actions.

--debug-lir
    For debugging purposes: print the C++ LIR as a s-expression. Mainly for comparison with --print-cpp.

--debug-mem-patterns
    For debugging purposes: print a list of matrix variables and their memory type, either AoS (array of structs) or the more efficient SoA (struct of arrays). Only has an effect when optimizations are turned on.

--debug-mir
    For debugging purposes: print the MIR after lowering.

--debug-mir-pretty
    For debugging purposes: pretty-print the MIR after lowering.

--debug-optimized-mir
    For debugging purposes: print the MIR after it's been optimized. Only has an effect when optimizations are turned on.

--debug-optimized-mir-pretty
    For debugging purposes: pretty-print the MIR after it's been optimized. Only has an effect when optimizations are turned on.

--debug-parse
    For debugging purposes: print the parser actions.

--debug-transformed-mir
    For debugging purposes: print the MIR after the backend has transformed it.

--debug-transformed-mir-pretty
    For debugging purposes: pretty-print the MIR after the backend has transformed it.

-f SETTING
    Debugging features. Valid values: -fsoa to force on the Struct of Arrays optimization. -fno-soa to force it off.

EXIT STATUS

0   on success.

1   on compilation failure.

124 on command line parsing errors.

125 on internal compiler errors. Please file a bug!

ENVIRONMENT

These environment variables affect the execution of stanc:

STANC_COLORS
    See option --color.

BUGS

Please report at %%PKG_ISSUES%%.