## 3.2 Runtime options

After successful compilation a C source file is generated and can be compiled with a C compiler. Executables generated with Chicken (and the compiler itself) accept a small set of runtime options:

-:?
  Shows a list of the available runtime options and exits the program.

-:c
  Forces console mode. Currently this is only used in the interpreter (`csi`) to force output of the >>> prompt even if stdin is not a terminal (for example if running in an `emacs` buffer under Windows).

-:d
  Prints some debug-information during startup.

-:hNUMBER
  Specifies fixed heap size

-:hiNUMBER
  Specifies the initial heap size

-:hgPERCENTAGE
  Sets the growth rate of the heap in percent. If the heap is exhausted, then it will grow by `PERCENTAGE`. The default is 200.

-:hmNUMBER
  Specifies a maximal heap size. The default is (2GB - 15).

-:hsPERCENTAGE
  Sets the shrink rate of the heap in percent. If no more than a quarter of `PERCENTAGE` of the heap is used, then it will shrink to `PERCENTAGE`. The default is 50. Note: If you want to make sure that the heap never shrinks, specify a value of `0`. (this can be useful in situations where an optimal heap-size is known in advance).

-:sNUMBER
  Specifies stack size

-:tNUMBER
  Specifies symbol table size

-:w
  Enables garbage collection of unused symbols. By default unused and unbound symbols are not garbage collected.

-:r
  Writes trace output to stdout. This option has no effect with in files compiled with the `-no-trace` or `-debug-level 0` options.

The argument values may be given in bytes, in kilobytes (suffixed with `K` or `k`), in megabytes (suffixed with `M` or `m`), or in gigabytes (suffixed with `G` or `g`). Runtime options may be combined, like `-:dc`, but everything following a `NUMBER` argument is ignored. So `-:wh64m` is OK, but `-:h64mw` will not enable GC of unused symbols.