.. _flag-reference: Flag reference ============== This section is a quick-reference for GHC's command-line flags. For each flag, we also list its static/dynamic status (see :ref:`static-dynamic-flags`), and the flag's opposite (if available). Verbosity options ----------------- More details in :ref:`options-help` .. tabularcolumns:: | p{\dimexpr 0.33\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.26\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: verbosity Alternative modes of operation ------------------------------ More details in :ref:`modes` .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: modes Which phases to run ------------------- More details in :ref:`options-order` .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: phases Redirecting output ------------------ More details in :ref:`options-output` .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: redirect-output Keeping intermediate files -------------------------- More details in :ref:`keeping-intermediates` .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: keep-intermediates Temporary files --------------- More details in :ref:`temp-files` .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: temp-files Finding imports --------------- More details in :ref:`search-path` .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: search-path Interface file options ---------------------- More details in :ref:`hi-options` .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: interface-files Recompilation checking ---------------------- More details in :ref:`recomp` .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: recompilation .. _interactive-mode-options: Interactive-mode options ------------------------ More details in :ref:`ghci-dot-files` .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: interactive Packages -------- More details in :ref:`packages` .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: packages Language options ---------------- Language options can be enabled either by a command-line option ``-Xblah``, or by a ``{-# LANGUAGE blah #-}`` pragma in the file itself. See :ref:`options-language`. Warnings -------- More details in :ref:`options-sanity` .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: warnings Optimisation levels ------------------- These options are described in more detail in :ref:`options-optimise`. See :ref:`options-f-compact` for a list of optimisations enabled on level 1 and level 2. .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: optimization-levels .. _options-f-compact: Individual optimisations ------------------------ These options are described in more detail in :ref:`options-f`. If a flag is implied by ``-O`` then it is also implied by ``-O2`` (unless flag description explicitly says otherwise). If a flag is implied by ``-O0`` only then the flag is not implied by ``-O`` and ``-O2``. .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: optimization Profiling options ----------------- More details in :ref:`profiling` .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: profiling Program coverage options ------------------------ More details in :ref:`hpc` .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: coverage C pre-processor options ----------------------- More details in :ref:`c-pre-processor` .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: cpp Code generation options ----------------------- More details in :ref:`options-codegen` .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: codegen Linking options --------------- More details in :ref:`options-linker` .. tabularcolumns:: | p{\dimexpr 0.35\textwidth-2\tabcolsep} | p{\dimexpr 0.44\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.10\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: linking Plugin options -------------- More details in :ref:`compiler-plugins` .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: plugins Replacing phases ---------------- More details in :ref:`replacing-phases` .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: phase-programs Forcing options to particular phases ------------------------------------ More details in :ref:`forcing-options-through` .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: phase-options Platform-specific options ------------------------- More details in :ref:`options-platform` .. tabularcolumns:: | p{\dimexpr 0.30\textwidth-2\tabcolsep} | p{\dimexpr 0.31\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.29\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: platform-options Compiler debugging options -------------------------- More details in :ref:`options-debugging` .. tabularcolumns:: | p{\dimexpr 0.35\textwidth-2\tabcolsep} | p{\dimexpr 0.44\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.10\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: debugging Miscellaneous compiler options ------------------------------ .. tabularcolumns:: | p{\dimexpr 0.35\textwidth-2\tabcolsep} | p{\dimexpr 0.44\textwidth-2\tabcolsep} | p{\dimexpr 0.11\textwidth-2\tabcolsep} | p{\dimexpr 0.10\textwidth-2\tabcolsep} | .. flag-print:: :type: table :category: misc