Reference

julia(1)

a high-level, high-performance dynamic programming language for technical computing

NAME

julia - a high-level, high-performance dynamic programming language for technical computing

SYNOPSIS

julia [OPTIONS...] -- [PROGRAMFILE] [ARGS...]

If a Julia source file is given as a PROGRAMFILE (optionally followed by arguments in ARGS) Julia will execute the program and exit.

DESCRIPTION

Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library. The library, largely written in Julia itself, also integrates mature, best-of-breed C and Fortran libraries for linear algebra, random number generation, signal processing, and string processing. In addition, the Julia developer community is contributing a number of external packages through Julia's built-in package manager at a rapid pace. Julia programs are organized around multiple dispatch; by defining functions and overloading them for different combinations of argument types, which can also be user-defined. For a more in-depth discussion of the rationale and advantages of Julia over other systems, please see the online manual: https://docs.julialang.org

COMMAND-LINE OPTIONS

-v, --version

Display version information

-h, --help

Print command-line options (this message)

--help-hidden

Print uncommon options not shown by `-h`

--project[=<dir>/@.]

Set <dir> as the active project/environment. The default @. option will search through parent directories until a Project.toml or JuliaProject.toml file is found.

-J, --sysimage <file>

Start up with the given system image file

-H, --home <dir>

Set location of `julia` executable

--startup-file={yes*|no}

Load `JULIA_DEPOT_PATH/config/startup.jl`; if `JULIA_DEPOT_PATH` environment variable is unset, load `~/.julia/config/startup.jl`

--handle-signals={yes*|no}

Enable or disable Julia's default signal handlers

--sysimage-native-code={yes*|no}

Use native code from system image if available

--compiled-modules={yes*|no|existing|strict}

Enable or disable incremental precompilation of modules. The `existing` option allows use of existing compiled modules that were previously precompiled, but disallows creation of new precompile files. The `strict` option is similar, but will error if no precompile file is found.

--pkgimages={yes*|no|existing}

Enable or disable usage of native code caching in the form of pkgimages The `existing` option allows use of existing pkgimages but disallows creation of new ones

-e, --eval <expr>

Evaluate <expr>

-E, --print <expr>

Evaluate <expr> and display the result

-m, --module <Package> [args]

Run entry point of `Package` (`@main` function) with `args'

-L, --load <file>

Load <file> immediately on all processors

-t, --threads {auto|N[,auto|M]}

Enable N[+M] threads; N threads are assigned to the `default` threadpool, and if M is specified, M threads are assigned to the `interactive` threadpool; `auto` tries to infer a useful default number of threads to use but the exact behavior might change in the future. Currently sets N to the number of CPUs assigned to this Julia process based on the OS-specific affinity assignment interface if supported (Linux and Windows) or to the number of CPU threads if not supported (MacOS) or if process affinity is not configured, and sets M to 1.

--gcthreads=N[,M]

Use N threads for the mark phase of GC and M (0 or 1) threads for the concurrent sweeping phase of GC. N is set to the number of compute threads and M is set to 0 if unspecified.

-p, --procs {N|auto}

Integer value N launches N additional local worker processes `auto` launches as many workers as the number of local CPU threads (logical cores)

--machine-file <file>

Run processes on hosts listed in <file>

-i, --interactive

Interactive mode; REPL runs and `isinteractive()` is true

-q, --quiet

Quiet startup: no banner, suppress REPL warnings

--banner={yes|no|short|auto*}

Enable or disable startup banner

--color={yes|no|auto*}

Enable or disable color text

--history-file={yes*|no}

Load or save history

--depwarn={yes|no*|error}

Enable or disable syntax and method deprecation warnings (`error` turns warnings into errors)

--warn-overwrite={yes|no*}

Enable or disable method overwrite warnings

--warn-scope={yes*|no}

Enable or disable warning for ambiguous top-level scope

-C, --cpu-target=<target>

Limit usage of CPU features up to <target>; set to `help` to see the available options

-O, --optimize={0|1|2*|3}

Set the optimization level (level 3 if `-O` is used without a level)

--min-optlevel={0*|1|2|3}

Set a lower bound on the optimization level

-g, --debug-info={0|1*|2}

Set the level of debug info generation (level 2 if `-g` is used without a level)

--inline={yes*|no}

Control whether inlining is permitted, including overriding @inline declarations

--check-bounds={yes|no|auto*}

Emit bounds checks always, never, or respect @inbounds declarations

--math-mode={ieee|user*}

Always follow `ieee` floating point semantics or respect `@fastmath` declarations

--polly={yes*|no}

Enable or disable the polyhedral optimizer Polly (overrides @polly declaration)

--code-coverage[={none*|user|all}]

Count executions of source lines (omitting setting is equivalent to `user`)

--code-coverage=@<path>

Count executions of source lines in a file or files under a given directory. A `@` must be placed before the path to indicate this option. A `@` with no path will track the current directory.

--code-coverage=tracefile.info

Append coverage information to the LCOV tracefile (filename supports format tokens)

--track-allocation[={none*|user|all}]

Count bytes allocated by each source line (omitting setting is equivalent to `user`)

--track-allocation=@<path>

Count bytes but only in files that fall under the given file path/directory. The `@` prefix is required to select this option. A `@` with no path will track the current directory.

--bug-report=KIND

Launch a bug report session. It can be used to start a REPL, run a script, or evaluate expressions. It first tries to use BugReporting.jl installed in current environment and fallbacks to the latest compatible BugReporting.jl if not. For more information, see --bug-report=help.

--heap-size-hint=<size>

Forces garbage collection if memory usage is higher than the given value. The value may be specified as a number of bytes, optionally in units of KB, MB, GB, or TB, or as a percentage of physical memory with %.

--compile={yes*|no|all|min}

Enable or disable JIT compiler, or request exhaustive or minimal compilation

--output-o <name>

Generate an object file (including system image data)

--output-ji <name>

Generate a system image data file (.ji)

--strip-metadata

Remove docstrings and source location info from system image

--strip-ir

Remove IR (intermediate representation) of compiled functions

--output-unopt-bc <name>

Generate unoptimized LLVM bitcode (.bc)

--output-bc <name>

Generate LLVM bitcode (.bc)

--output-asm <name>

Generate an assembly file (.s)

--output-incremental={yes|no*}

Generate an incremental output file (rather than complete)

--trace-compile={stderr|name}

Print precompile statements for methods compiled during execution or save to stderr or a path. Methods that were recompiled are printed in yellow or with a trailing comment if color is not supported

--trace-compile-timing=

If --trace-compile is enabled show how long each took to compile in ms

--trace-dispatch={stderr|name}

Print precompile statements for methods dispatched during execution or save to stderr or a path.

--trace-eval[={no*|loc|full}]

Show top-level expressions being evaluated. `loc` shows location info only, `full` shows full expressions (omitting setting is equivalent to `loc`). Only shows the outermost expression being evaluated, not internal function calls. Can be controlled programmatically via Base.TRACE_EVAL.

--task-metrics={yes|no*}

Enable the collection of per-task metrics.

-image-codegen

Force generate code in imaging mode

--permalloc-pkgimg={yes|no*}

Copy the data section of package images into memory

FILES AND ENVIRONMENT

See https://docs.julialang.org/en/v1/manual/environment-variables/

BUGS

Please report any bugs using the GitHub issue tracker: https://github.com/julialang/julia/issues?state=open

AUTHORS

Contributors: https://github.com/JuliaLang/julia/graphs/contributors

INTERNET RESOURCES

Website: https://julialang.org/
Documentation: https://docs.julialang.org/
Install: https://julialang.org/install/

LICENSING

Julia is an open-source project. It is made available under the MIT license.

History

--banner since Debian 10 (Buster); --bug-report since Arch Linux 2026-11-01; --check-bounds since Debian 8 (Jessie); --code-coverage since Debian 8 (Jessie); --color since Debian 8 (Jessie); --compile since Debian 9 (Stretch); --compiled-modules since Arch Linux 2026-11-01; --cpu-target since Debian 9 (Stretch); --debug-info since Arch Linux 2026-11-01; --depwarn since Debian 9 (Stretch); --eval since Debian 8 (Jessie); --gcthreads since Arch Linux 2026-11-01; --handle-signals since Debian 10 (Buster); --heap-size-hint since Arch Linux 2026-11-01; --help since Debian 8 (Jessie); --help-hidden since Arch Linux 2026-11-01; --history-file since Debian 9 (Stretch); --home since Debian 8 (Jessie); --inline since Debian 9 (Stretch); --interactive since Arch Linux 2026-11-01; --load since Debian 8 (Jessie); --machine-file since Debian 10 (Buster); --math-mode since Debian 9 (Stretch); --min-optlevel since Arch Linux 2026-11-01; --optimize since Debian 9 (Stretch); --output-asm since Arch Linux 2026-11-01; --output-bc since Debian 10 (Buster); --output-incremental since Debian 10 (Buster); --output-ji since Debian 10 (Buster); --output-o since Debian 10 (Buster); --output-unopt-bc since Arch Linux 2026-11-01; --permalloc-pkgimg since Arch Linux 2026-11-01; --pkgimages since Arch Linux 2026-11-01; --polly since Arch Linux 2026-11-01; --print since Debian 8 (Jessie); --procs since Debian 9 (Stretch); --project since Debian 10 (Buster); --quiet since Arch Linux 2026-11-01; --startup-file since Debian 9 (Stretch); --strip-ir since Arch Linux 2026-11-01; --strip-metadata since Arch Linux 2026-11-01; --sysimage since Debian 8 (Jessie); --sysimage-native-code since Debian 10 (Buster); --task-metrics since Arch Linux 2026-11-01; --threads since Debian 11 (Bullseye); --trace-compile since Arch Linux 2026-11-01; --trace-dispatch since Arch Linux 2026-11-01; --trace-eval since Arch Linux 2026-11-01; --track-allocation since Debian 9 (Stretch); --version since Debian 8 (Jessie); --warn-overwrite since Debian 10 (Buster); --warn-scope since Arch Linux 2026-11-01; -C since Debian 9 (Stretch); -E since Debian 8 (Jessie); -H since Debian 8 (Jessie); -J since Debian 8 (Jessie); -L since Debian 8 (Jessie); -O since Debian 9 (Stretch); -e since Debian 8 (Jessie); -g since Debian 10 (Buster); -h since Debian 8 (Jessie); -i since Debian 8 (Jessie); -image-codegen since Arch Linux 2026-11-01; -p since Debian 8 (Jessie); -q since Arch Linux 2026-11-01; -t since Debian 11 (Bullseye); -v since Debian 8 (Jessie).

--dump-bitcode until Debian 9 (Stretch); --int-literals until Debian 8 (Jessie); --machinefile until Debian 9 (Stretch); --no-history-file until Debian 8 (Jessie); --no-startup until Debian 8 (Jessie); --post-boot until Debian 9 (Stretch); -F until Debian 8 (Jessie); -P until Debian 9 (Stretch); -count until Debian 3.0 (Woody); -cycles until Debian 3.0 (Woody); -f until Debian 8 (Jessie); -install until Debian 3.0 (Woody); -mono until Debian 3.0 (Woody); -mouse until Debian 3.0 (Woody); -ncolors until Debian 3.0 (Woody); -nomouse until Debian 3.0 (Woody); -root until Debian 3.0 (Woody); -visual until Debian 3.0 (Woody); -window until Debian 3.0 (Woody).