Skip to content

Files

46 lines (33 loc) · 1.97 KB

run_command.md

File metadata and controls

46 lines (33 loc) · 1.97 KB

The stack run command

stack run [-- ARGUMENT(S) (e.g. stack run -- file.txt)]
          [--[no-]ghc-package-path] [--[no-]stack-exe]
          [--package PACKAGE] [--rts-options RTSFLAG] [--cwd DIR]

stack run builds a project executable and runs it. If the command has a first argument and it is recognised as the name of an executable component of a project package then that is built. Otherwise, the project's first executable is built. If the project has no executables Stack reports no executables found as an error.

!!! note

To identify a project's first executable, and search for the name of an
executable component, Stack lists the executable components, in order, for
each package, listed in order. For example:

`packageA:a-exe` < `packageA:b-exe` < `packageB:a-exe` < `packageB:b-exe`

Everything after -- on the command line is interpreted as a command line argument to be passed to what is run, other than a first argument recognised as the name of an executable component of a project package.

By default:

  • the GHC_PACKAGE_PATH environment variable is set for the subprocess. Pass the --no-ghc-package-path flag to not set the variable; and

  • the STACK_EXE environment variable is set with the path to Stack. Pass the --no-stack-exe flag to not set the variable.

The --cwd option can be used to set the working directory before the executable is run.

The --package option (which can be specified multiple times) can be used to add a package name to build targets.

The --rts-options option (which can be specified multiple times) can be used to pass a list of GHC's runtime system (RTS) options to the executable when it is run. (The +RTS and -RTS must not be included.)