OS Manuals

/usr/bin/swift

Swift is a high-performance system programming language. It has a clean and modern syntax, offers seamless access to existing C and Objective-C code and frameworks, and is memory-safe by default.

From swift-bootstrap-6-0-1 6.0.1-r6 (enterprise-packages), captured 2026-11-08 by running swift --help (exit 0). permalink

OVERVIEW: Swift compiler

USAGE: swift

OPTIONS:
  -access-notes-path <value>
                          Specify YAML file to override attributes on Swift declarations in this module
  -allowable-client <vers>
                          Module names that are allowed to import this module
  -assert-config <value>  Specify the assert_configuration replacement. Possible values are Debug, Release, Unchecked, DisableReplacement.
  -cache-compile-job      Enable compiler caching
  -cache-disable-replay   Skip loading the compilation result from cache
  -cas-path <path>        Path to CAS
  -cas-plugin-option <name>=<option>
                          Option pass to CAS Plugin
  -cas-plugin-path <path> Path to CAS Plugin
  -clang-build-session-file <value>
                          Use the last modification time of <file> as the underlying Clang build session timestamp
  -clang-scanner-module-cache-path <value>
                          Specifies the Clang dependency scanner module cache path
  -clang-target <value>   Separately set the target we should use for internal Clang instance
  -color-diagnostics      Print diagnostics in color
  -continue-building-after-errors
                          Continue building, even after errors are encountered
  -coverage-prefix-map <prefix=replacement>
                          Remap source paths in coverage info
  -cxx-interoperability-mode=<value>
                          Enables C++ interoperability; pass 'default' to enable or 'off' to disable
  -debug-info-format=<value>
                          Specify the debug info format type to either 'dwarf' or 'codeview'
  -debug-info-store-invocation
                          Emit the compiler invocation in the debug info.
  -debug-prefix-map <prefix=replacement>
                          Remap source paths in debug info
  -diagnostic-style <style>
                          The formatting style used when printing diagnostics ('swift' or 'llvm')
  -disable-actor-data-race-checks
                          Disable runtime checks for actor data races
  -disable-autolinking-runtime-compatibility-concurrency
                          Do not use autolinking for the concurrency runtime compatibility library
  -disable-autolinking-runtime-compatibility-dynamic-replacements
                          Do not use autolinking for the dynamic replacement runtime compatibility library
  -disable-autolinking-runtime-compatibility
                          Do not use autolinking for runtime compatibility libraries
  -disable-clang-target   Disable a separately specified target triple for Clang instance to use
  -disable-dynamic-actor-isolation
                          Disable dynamic actor isolation checks
  -disable-incremental-imports
                          Disable cross-module incremental build metadata and driver scheduling for Swift modules
  -disable-only-one-dependency-file
                          Disables incremental build optimization that only produces one dependencies file
  -disable-sandbox        Disable using the sandbox when executing subprocesses
  -disallow-use-new-driver
                          Disable using new swift-driver
  -dwarf-version=<version>
                          DWARF debug info version to produce if requested
  -D <value>              Marks a conditional compilation flag as true
  -embed-tbd-for-module <value>
                          Embed symbols from the module in the emitted tbd file
  -emit-module-dependencies-path <path>
                          Emit a discovered dependencies file for the emit-module task to <path>
  -emit-module-serialize-diagnostics-path <path>
                          Emit a serialized diagnostics file for the emit-module task to <path>
  -enable-actor-data-race-checks
                          Emit runtime checks for actor data races
  -enable-autolinking-runtime-compatibility-bytecode-layouts
                          Enable autolinking for the bytecode layouts runtime compatibility library
  -enable-bare-slash-regex
                          Enable the use of forward slash regular-expression literal syntax
  -enable-builtin-module  Enables the explicit import of the Builtin module
  -enable-experimental-additive-arithmetic-derivation
                          Enable experimental 'AdditiveArithmetic' derived conformances
  -enable-experimental-concise-pound-file
                          Enable experimental concise '#file' identifier
  -enable-experimental-feature <value>
                          Enable an experimental feature
  -enable-experimental-forward-mode-differentiation
                          Enable experimental forward mode differentiation
  -enable-incremental-imports
                          Enable cross-module incremental build metadata and driver scheduling for Swift modules
  -enable-library-evolution
                          Build the module to allow binary-compatible library evolution
  -enable-only-one-dependency-file
                          Enables incremental build optimization that only produces one dependencies file
  -enable-upcoming-feature <value>
                          Enable a feature that will be introduced in an upcoming language version
  -enforce-exclusivity=<enforcement>
                          Enforce law of exclusivity
  -experimental-allow-non-resilient-access
                          Allow non-resilient access by generating all contents besides exportable decls
  -experimental-package-bypass-resilience
                          Enable optimization to bypass resilience within a package
  -experimental-package-cmo
                          Enable optimization to perform defalut CMO within a package boundary
  -explain-module-dependency <value>
                          Emit remark/notes describing why compilaiton may depend on a module with a given name.
  -export-as <value>      Module name to use when referenced in clients module interfaces
  -external-plugin-path <path>#<plugin-server-path>
                          Add directory to the plugin search path with a plugin server executable
  -e <value>              Executes a line of code provided on the command line
  -file-compilation-dir <path>
                          The compilation directory to embed in the debug info. Coverage mapping is not supported yet.
  -file-prefix-map <prefix=replacement>
                          Remap source paths in debug, coverage, and index info
  -framework <value>      Specifies a framework which should be linked against
  -Fsystem <value>        Add directory to system framework search path
  -F <value>              Add directory to framework search path
  -gdwarf-types           Emit full DWARF type info.
  -gline-tables-only      Emit minimal debug info for backtraces only
  -gnone                  Don't emit debug info
  -g                      Emit debug info. This is the preferred setting for debugging with LLDB.
  -help                   Display available options
  -index-ignore-clang-modules
                          Avoid indexing clang modules (pcms)
  -index-include-locals   Include local definitions/references in the produced index data.
  -index-store-path <path>
                          Store indexing data to <path>
  -index-unit-output-path <path>
                          Use <path> as the output path in the produced index data.
  -I <value>              Add directory to the import search path
  -j <n>                  Number of commands to execute in parallel
  -libc <value>           libc runtime library to use
  -link-objc-runtime      Deprecated
  -load-plugin-executable <path>#<module-names>
                          Path to a compiler plugin executable and a comma-separated list of module names where the macro types are declared
  -load-plugin-library <path>
                          Path to a dynamic library containing compiler plugins such as macros
  -locale <locale-code>   Choose a language for diagnostic messages
  -localization-path <path>
                          Path to localized diagnostic messages directory
  -L <value>              Add directory to library link search path
  -l <value>              Specifies a library which should be linked against
  -module-abi-name <value>
                          ABI name to use for the contents of this module
  -module-alias <alias_name=real_name>
                          If a source file imports or references module <alias_name>, the <real_name> is used for the contents of the file
  -module-cache-path <value>
                          Specifies the module cache path
  -module-link-name <value>
                          Library to link against when using this module
  -module-name <value>    Name of the module to build
  -no-color-diagnostics   Do not print diagnostics in color
  -no-warnings-as-errors  Don't treat warnings as errors
  -nostdimport            Don't search the standard library import path for modules
  -num-threads <n>        Enable multi-threading and specify number of threads
  -Onone                  Compile without any optimization
  -Osize                  Compile with optimizations and target small code size
  -Ounchecked             Compile with optimizations and remove runtime safety checks
  -O                      Compile with optimizations
  -package-name <value>   Name of the package the module belongs to
  -plugin-path <value>    Add directory to the plugin search path
  -prefix-serialized-debugging-options
                          Apply debug prefix mappings to serialized debug info in Swiftmodule files
  -pretty-print           Pretty-print the output JSON
  -print-educational-notes
                          Include educational notes in printed diagnostic output, if available
  -print-target-info      Print target information for the given target <triple>, such as x86_64-apple-macos10.9
  -project-name <value>   Name of the project this module to build belongs to
  -Rcache-compile-job     Show remarks for compiler caching
  -Rcross-import          Emit a remark if a cross-import of a module is triggered.
  -remove-runtime-asserts Remove runtime safety checks.
  -Rindexing-system-module
                          Emit a remark when indexing a system module
  -Rmacro-loading         Emit remarks about loaded macro implementations
  -Rmodule-api-import     Emit remarks about the import briging in each element composing the API
  -Rmodule-loading        Emit remarks about loaded module
  -Rmodule-recovery       Emit remarks about contextual inconsistencies in loaded modules
  -Rmodule-serialization  Emit remarks about module serialization
  -Rpass-missed=<value>   Report missed transformations by optimization passes whose name matches the given POSIX regular expression
  -Rpass=<value>          Report performed transformations by optimization passes whose name matches the given POSIX regular expression
  -Rskip-explicit-interface-build
                          Emit a remark if an explicit module interface invocation has an early exit because the expected output is up-to-date
  -runtime-compatibility-version <value>
                          Link compatibility library for Swift runtime version, or 'none'
  -save-optimization-record-passes <regex>
                          Only include passes which match a specified regular expression in the generated optimization record (by default, include all passes)
  -save-optimization-record-path <value>
                          Specify the file name of any generated optimization record
  -save-optimization-record=<format>
                          Generate an optimization record file in a specific format (default: YAML)
  -save-optimization-record
                          Generate a YAML optimization record file
  -scanner-prefix-map-sdk <path>
                          Remap paths within SDK reported by dependency scanner
  -scanner-prefix-map-toolchain <path>
                          Remap paths within toolchain directory reported by dependency scanner
  -scanner-prefix-map <prefix=replacement>
                          Remap paths reported by dependency scanner
  -sdk <sdk>              Compile against <sdk>
  -serialize-diagnostics-path <path>
                          Emit a serialized diagnostics file to <path>
  -static-executable      Statically link the executable
  -static-stdlib          Statically link the Swift standard library
  -strict-concurrency=<value>
                          Specify the how strict concurrency checking will be. The value may be 'minimal' (most 'Sendable' checking is disabled), 'targeted' ('Sendable' checking is enabled in code that uses the concurrency model, or 'complete' ('Sendable' and other checking is enabled for all code in the module)
  -suppress-remarks       Suppress all remarks
  -suppress-warnings      Suppress all warnings
  -swift-version <vers>   Interpret input according to a specific Swift language version number
  -target-cpu <value>     Generate code for a particular CPU variant
  -target-min-inlining-version <value>
                          Require inlinable code with no '@available' attribute to back-deploy to this version of the '-target' OS
  -target-variant <value> Generate 'zippered' code for macCatalyst that can run on the specified variant target triple in addition to the main -target triple
  -target <triple>        Generate code for the given target <triple>, such as x86_64-apple-macos10.9
  -use-ld=<value>         Specifies the flavor of the linker to be used
  -user-module-version <vers>
                          Module version specified from Swift module authors
  -validate-clang-modules-once
                          Don't verify input files for Clang modules if the module has been successfully validated or loaded during this build session
  -version                Print version information and exit
  -vfsoverlay <value>     Add directory to VFS overlay file
  -visualc-tools-root <root>
                          VisualC++ Tools Root
  -visualc-tools-version <version>
                          VisualC++ ToolSet Version
  -v                      Show commands to run and use verbose output
  -warn-concurrency       Warn about code that is unsafe according to the Swift Concurrency model and will become ill-formed in a future language version
  -warn-implicit-overrides
                          Warn about implicit overrides of protocol members
  -warnings-as-errors     Treat warnings as errors
  -windows-sdk-root <root>
                          Windows SDK Root
  -windows-sdk-version <version>
                          Windows SDK Version
  -working-directory <path>
                          Resolve file paths relative to the specified directory
  -Xcc <arg>              Pass <arg> to the C/C++/Objective-C compiler
  -Xlinker <value>        Specifies an option which should be passed to the linker

Welcome to Swift!

Subcommands:

  swift build      Build Swift packages
  swift package    Create and work on packages
  swift run        Run a program from a package
  swift test       Run package tests
  swift repl       Experiment with Swift code interactively

  Use `swift --version` for Swift version information.

  Use `swift --help` for descriptions of available options and flags.

  Use `swift help <subcommand>` for more information about a subcommand.
Options (142)
OptionDescriptionSource
-access-notes-path valueSpecify YAML file to override attributes on Swift declarations in this modulehelp
-allowable-client versModule names that are allowed to import this modulehelp
-assert-config valueSpecify the assert_configuration replacement.help
-cache-compile-jobEnable compiler cachinghelp
-cache-disable-replaySkip loading the compilation result from cachehelp
-cas-path pathPath to CAShelp
-cas-plugin-option name>=<optionOption pass to CAS Pluginhelp
-clang-build-session-file valueUse the last modification time of <file> as the underlying Clang build session timestamphelp
-clang-scanner-module-cache-path valueSpecifies the Clang dependency scanner module cache pathhelp
-clang-target valueSeparately set the target we should use for internal Clang instancehelp
-color-diagnosticsPrint diagnostics in colorhelp
-continue-building-after-errorsContinue building, even after errors are encounteredhelp
-coverage-prefix-map prefix=replacementRemap source paths in coverage infohelp
-cxx-interoperability-mode valueEnables C++ interoperability;help
-debug-info-format valueSpecify the debug info format type to either 'dwarf' or 'codeview'help
-debug-info-store-invocationEmit the compiler invocation in the debug info.help
-debug-prefix-map prefix=replacementRemap source paths in debug infohelp
-diagnostic-style styleThe formatting style used when printing diagnostics ('swift' or 'llvm')help
-disable-actor-data-race-checksDisable runtime checks for actor data raceshelp
-disable-autolinking-runtime-compatibility-concurrencyDo not use autolinking for the concurrency runtime compatibility libraryhelp
-disable-autolinking-runtime-compatibility-dynamic-replacementsDo not use autolinking for the dynamic replacement runtime compatibility libraryhelp
-disable-autolinking-runtime-compatibilityDo not use autolinking for runtime compatibility librarieshelp
-disable-clang-targetDisable a separately specified target triple for Clang instance to usehelp
-disable-dynamic-actor-isolationDisable dynamic actor isolation checkshelp
-disable-incremental-importsDisable cross-module incremental build metadata and driver scheduling for Swift moduleshelp
-disable-only-one-dependency-fileDisables incremental build optimization that only produces one dependencies filehelp
-disable-sandboxDisable using the sandbox when executing subprocesseshelp
-disallow-use-new-driverDisable using new swift-driverhelp
-dwarf-version versionDWARF debug info version to produce if requestedhelp
-D valueMarks a conditional compilation flag as truehelp
-embed-tbd-for-module valueEmbed symbols from the module in the emitted tbd filehelp
-emit-module-dependencies-path pathEmit a discovered dependencies file for the emit-module task to <path>help
-emit-module-serialize-diagnostics-path pathEmit a serialized diagnostics file for the emit-module task to <path>help
-enable-actor-data-race-checksEmit runtime checks for actor data raceshelp
-enable-autolinking-runtime-compatibility-bytecode-layoutsEnable autolinking for the bytecode layouts runtime compatibility libraryhelp
-enable-bare-slash-regexEnable the use of forward slash regular-expression literal syntaxhelp
-enable-builtin-moduleEnables the explicit import of the Builtin modulehelp
-enable-experimental-additive-arithmetic-derivationEnable experimental 'AdditiveArithmetic' derived conformanceshelp
-enable-experimental-concise-pound-fileEnable experimental concise '#file' identifierhelp
-enable-experimental-feature valueEnable an experimental featurehelp
-enable-experimental-forward-mode-differentiationEnable experimental forward mode differentiationhelp
-enable-incremental-importsEnable cross-module incremental build metadata and driver scheduling for Swift moduleshelp
-enable-library-evolutionBuild the module to allow binary-compatible library evolutionhelp
-enable-only-one-dependency-fileEnables incremental build optimization that only produces one dependencies filehelp
-enable-upcoming-feature valueEnable a feature that will be introduced in an upcoming language versionhelp
-enforce-exclusivity enforcementEnforce law of exclusivityhelp
-experimental-allow-non-resilient-accessAllow non-resilient access by generating all contents besides exportable declshelp
-experimental-package-bypass-resilienceEnable optimization to bypass resilience within a packagehelp
-experimental-package-cmoEnable optimization to perform defalut CMO within a package boundaryhelp
-explain-module-dependency valueEmit remark/notes describing why compilaiton may depend on a module with a given name.help
-export-as valueModule name to use when referenced in clients module interfaceshelp
-external-plugin-path path>#<plugin-server-pathAdd directory to the plugin search path with a plugin server executablehelp
-e valueExecutes a line of code provided on the command linehelp
-file-compilation-dir pathThe compilation directory to embed in the debug info.help
-file-prefix-map prefix=replacementRemap source paths in debug, coverage, and index infohelp
-framework valueSpecifies a framework which should be linked againsthelp
-Fsystem valueAdd directory to system framework search pathhelp
-F valueAdd directory to framework search pathhelp
-gdwarf-typesEmit full DWARF type info.help
-gline-tables-onlyEmit minimal debug info for backtraces onlyhelp
-gnoneDon't emit debug infohelp
-gEmit debug info.help
-helpDisplay available optionshelp
-index-ignore-clang-modulesAvoid indexing clang modules (pcms)help
-index-include-localsInclude local definitions/references in the produced index data.help
-index-store-path pathStore indexing data to <path>help
-index-unit-output-path pathUse <path> as the output path in the produced index data.help
-I valueAdd directory to the import search pathhelp
-j nNumber of commands to execute in parallelhelp
-libc valuelibc runtime library to usehelp
-link-objc-runtimeDeprecatedhelp
-load-plugin-executable path>#<module-namesPath to a compiler plugin executable and a comma-separated list of module names where the macro types are declaredhelp
-load-plugin-library pathPath to a dynamic library containing compiler plugins such as macroshelp
-locale locale-codeChoose a language for diagnostic messageshelp
-localization-path pathPath to localized diagnostic messages directoryhelp
-L valueAdd directory to library link search pathhelp
-l valueSpecifies a library which should be linked againsthelp
-module-abi-name valueABI name to use for the contents of this modulehelp
-module-alias alias_name=real_nameIf a source file imports or references module <alias_name>, the <real_name> is used for the contents of the filehelp
-module-cache-path valueSpecifies the module cache pathhelp
-module-link-name valueLibrary to link against when using this modulehelp
-module-name valueName of the module to buildhelp
-no-color-diagnosticsDo not print diagnostics in colorhelp
-no-warnings-as-errorsDon't treat warnings as errorshelp
-nostdimportDon't search the standard library import path for moduleshelp
-num-threads nEnable multi-threading and specify number of threadshelp
-OnoneCompile without any optimizationhelp
-OsizeCompile with optimizations and target small code sizehelp
-OuncheckedCompile with optimizations and remove runtime safety checkshelp
-OCompile with optimizationshelp
-package-name valueName of the package the module belongs tohelp
-plugin-path valueAdd directory to the plugin search pathhelp
-prefix-serialized-debugging-optionsApply debug prefix mappings to serialized debug info in Swiftmodule fileshelp
-pretty-printPretty-print the output JSONhelp
-print-educational-notesInclude educational notes in printed diagnostic output, if availablehelp
-print-target-infoPrint target information for the given target <triple>, such as x86_64-apple-macos10.9help
-project-name valueName of the project this module to build belongs tohelp
-Rcache-compile-jobShow remarks for compiler cachinghelp
-Rcross-importEmit a remark if a cross-import of a module is triggered.help
-Rindexing-system-moduleEmit a remark when indexing a system modulehelp
-Rmacro-loadingEmit remarks about loaded macro implementationshelp
-Rmodule-api-importEmit remarks about the import briging in each element composing the APIhelp
-Rmodule-loadingEmit remarks about loaded modulehelp
-Rmodule-recoveryEmit remarks about contextual inconsistencies in loaded moduleshelp
-Rmodule-serializationEmit remarks about module serializationhelp
-Rpass-missed valueReport missed transformations by optimization passes whose name matches the given POSIX regular expressionhelp
-Rpass valueReport performed transformations by optimization passes whose name matches the given POSIX regular expressionhelp
-Rskip-explicit-interface-buildEmit a remark if an explicit module interface invocation has an early exit because the expected output is up-to-datehelp
-runtime-compatibility-version valueLink compatibility library for Swift runtime version, or 'none'help
-save-optimization-record-passes regexOnly include passes which match a specified regular expression in the generated optimization record (by default, include all passes)help
-save-optimization-record-path valueSpecify the file name of any generated optimization recordhelp
-save-optimization-record formatGenerate an optimization record file in a specific format (default: YAML)help
-scanner-prefix-map-sdk pathRemap paths within SDK reported by dependency scannerhelp
-scanner-prefix-map-toolchain pathRemap paths within toolchain directory reported by dependency scannerhelp
-scanner-prefix-map prefix=replacementRemap paths reported by dependency scannerhelp
-sdk sdkCompile against <sdk>help
-serialize-diagnostics-path pathEmit a serialized diagnostics file to <path>help
-static-executableStatically link the executablehelp
-static-stdlibStatically link the Swift standard libraryhelp
-strict-concurrency valueSpecify the how strict concurrency checking will be.help
-suppress-remarksSuppress all remarkshelp
-suppress-warningsSuppress all warningshelp
-swift-version versInterpret input according to a specific Swift language version numberhelp
-target-cpu valueGenerate code for a particular CPU varianthelp
-target-min-inlining-version valueRequire inlinable code with no '@available' attribute to back-deploy to this version of the '-target' OShelp
-target tripleGenerate code for the given target <triple>, such as x86_64-apple-macos10.9help
-use-ld valueSpecifies the flavor of the linker to be usedhelp
-user-module-version versModule version specified from Swift module authorshelp
-validate-clang-modules-onceDon't verify input files for Clang modules if the module has been successfully validated or loaded during this build sessionhelp
-versionPrint version information and exithelp
-vfsoverlay valueAdd directory to VFS overlay filehelp
-visualc-tools-root rootVisualC++ Tools Roothelp
-visualc-tools-version versionVisualC++ ToolSet Versionhelp
-vShow commands to run and use verbose outputhelp
-warn-concurrencyWarn about code that is unsafe according to the Swift Concurrency model and will become ill-formed in a future language versionhelp
-warn-implicit-overridesWarn about implicit overrides of protocol membershelp
-warnings-as-errorsTreat warnings as errorshelp
-windows-sdk-root rootWindows SDK Roothelp
-windows-sdk-version versionWindows SDK Versionhelp
-working-directory pathResolve file paths relative to the specified directoryhelp
-Xcc argPass <arg> to the C/C++/Objective-C compilerhelp
-Xlinker valueSpecifies an option which should be passed to the linkerhelp

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.