= crystal-spec(1)
:doctype: manpage
:date: {localdate}
:crystal_version: {crystal_version}
:man manual: Crystal Compiler Command Line Reference Guide
:man source: crystal {crystal_version}

== Name

crystal-spec - Compile and run Crystal spec files

== Synopsis

*crystal spec* [options] [files]

== Options

*-d*, *--debug*::
Generate the output with symbolic debug symbols.  These are read
when debugging the built program with tools like lldb, gdb, valgrind etc. and provide mappings to the original source code for
those tools.
*--no-debug*::
Generate the output without any symbolic debug symbols.
*-D* _FLAG_, *--define* _FLAG_::
Define a compile-time flag. This is useful to conditionally define types, methods, or commands based on flags available at compile time. The default flags are from the target triple given
with *--target-triple*  or the hosts default, if none is given.
*--error-trace*::
Show full error trace.
*-O* _LEVEL_:: Optimization mode: 0 (default), 1, 2, 3. See *OPTIMIZATIONS* for details.
*--release*::
Compile in release mode. Equivalent to *-O3 --single-module*
*-s*, *--stats*::
Print statistics about the different compiler stages for the current build. Output time and used memory for each compiler
process.
*-p*, *--progress*::
Print statistics about the progress for the current build.
*-t*, *--time*::
Print statistics about the execution time.
*--no-color*::
Disable colored output.
