julia - Man Page
a high-level, high-performance dynamic programming language for technical computing
Examples (TL;DR)
- Start a REPL (interactive shell):
julia
- Execute a Julia program and exit:
julia program.jl
- Execute a Julia program that takes arguments:
julia program.jl arguments
- Evaluate a string containing Julia code:
julia -e 'julia_code'
- Evaluate a string of Julia code, passing arguments to it:
julia -e 'for x in ARGS; println(x); end' arguments
- Evaluate an expression and print the result:
julia -E '(1 - cos(pi/4))/2'
- Start Julia in multithreaded mode, using N threads:
julia -t N
Synopsis
julia [OPTIONS...] -- [PROGRAMMFILE] [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 half of 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}
Disallow or enable unsafe floating point optimizations (overrides @fastmath declaration)
- --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 a path
- -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/
Downloads: https://julialang.org/downloads/
Licensing
Julia is an open-source project. It is made available under the MIT license.