Spec-Zone.ru › Julia 0.6

Переменные окружения

Julia можно настроить с помощью ряда переменных окружения, как обычно для операционной системы, так и в портативном формате внутри Julia. Предположим, вы хотите установить переменную окружения JULIA_EDITOR в значение vim, тогда можно либо ввести ENV["JULIA_EDITOR"] = "vim" в REPL для изменения в каждом конкретном случае, либо добавить то же самое в файл конфигурации пользователя .juliarc.jl в домашнем каталоге пользователя для постоянного эффекта. Текущее значение той же переменной окружения определяется путем вычисления ENV["JULIA_EDITOR"].

Переменные окружения, используемые Julia, обычно начинаются с JULIA. Если Base.versioninfo вызывается с verbose равным true, то вывод будет содержать список определенных переменных окружения, относящихся к Julia, включая те, в имени которых присутствует JULIA.

Расположение файлов

JULIA_HOME

Абсолютный путь к каталогу, содержащему исполняемый файл Julia, который устанавливает глобальную переменную Base.JULIA_HOME. Если $JULIA_HOME не установлено, Julia определяет значение Base.JULIA_HOME во время выполнения.

Сам исполняемый файл это один из

$JULIA_HOME/julia
$JULIA_HOME/julia-debug

по умолчанию.

Глобальная переменная Base.DATAROOTDIR определяет относительный путь от Base.JULIA_HOME к каталогу данных, связанному с Julia. Затем путь

$JULIA_HOME/$DATAROOTDIR/julia/base

определяет каталог, в котором Julia первоначально ищет исходные файлы (через Base.find_source_file()).

Аналогично, глобальная переменная Base.SYSCONFDIR определяет относительный путь к каталогу файла конфигурации. Затем Julia ищет файл juliarc.jl в

$JULIA_HOME/$SYSCONFDIR/julia/juliarc.jl
$JULIA_HOME/../etc/julia/juliarc.jl

по умолчанию (через Base.load_juliarc()).

Например, на Linux-системе с исполняемым файлом Julia, расположенным по адресу /bin/julia, DATAROOTDIR из ../share, и SYSCONFDIR из ../etc, переменная JULIA_HOME будет установлена в значение /bin, путь поиска исходных файлов будет

/share/julia/base

и путь поиска глобальных файлов конфигурации будет

/etc/julia/juliarc.jl

JULIA_LOAD_PATH

Отделенный список абсолютных путей, которые должны быть добавлены к переменной LOAD_PATH. (В системах Unix-подобных системах разделитель путей :; в системах Windows разделитель путей ;.) Переменная LOAD_PATH используется Base.require и Base.load_in_path() для поиска кода; по умолчанию она содержит абсолютные пути

$JULIA_HOME/../local/share/julia/site/v$(VERSION.major).$(VERSION.minor)
$JULIA_HOME/../share/julia/site/v$(VERSION.major).$(VERSION.minor)

Таким образом, например, версия 0.6 Julia на Linux-системе с исполняемым файлом Julia по адресу /bin/julia будет иметь по умолчанию LOAD_PATH

/local/share/julia/site/v0.6
/share/julia/site/v0.6

JULIA_PKGDIR

Путь к родительскому каталогу Pkg.Dir._pkgroot() для репозиториев пакетов Julia, специфичных для версии. Если путь относительный, то он относится к рабочей директории. Если $JULIA_PKGDIR не установлено, то Pkg.Dir._pkgroot() по умолчанию

$HOME/.julia

Затем местоположение репозитория Pkg.dir для данной версии Julia равно

$JULIA_PKGDIR/v$(VERSION.major).$(VERSION.minor)

Например, для пользователя Linux, чей домашний каталог /home/alice, каталог, содержащий репозитории пакетов, по умолчанию будет

/home/alice/.julia

и репозиторий пакетов для версии 0.6 Julia будет

/home/alice/.julia/v0.6

JULIA_HISTORY

Абсолютный путь Base.REPL.find_hist_file() к файлу истории REPL. Если $JULIA_HISTORY не установлено, то Base.REPL.find_hist_file() по умолчанию

$HOME/.julia_history

JULIA_PKGRESOLVE_ACCURACY

Положительное значение Int, которое определяет, сколько времени подпрограмма max-sum MaxSum.maxsum() решателя зависимостей пакетов Base.Pkg.resolve будет тратить на попытку удовлетворения ограничений перед отказом: по умолчанию это значение 1, и большие значения соответствуют большим затратам времени.

Предположим, значение $JULIA_PKGRESOLVE_ACCURACY равно n. Тогда

  • количество итераций до децимации равно 20*n,

  • количество итераций между шагами децимации равно 10*n, и

  • на шагах децимации, максимум один из каждых 20*n пакетов подвергается децимации.

Внешние приложения

JULIA_SHELL

Абсолютный путь к оболочке, которую Julia должна использовать для выполнения внешних команд (через Base.repl_cmd()). По умолчанию используется переменная окружения $SHELL, и если $SHELL не установлена, то используется /bin/sh.

Примечание

В Windows эта переменная окружения игнорируется, и внешние команды выполняются непосредственно.

JULIA_EDITOR

Редактор, возвращаемый Base.editor() и используемый в, например, Base.edit, ссылающийся на команду предпочтительного редактора, например, vim.

$JULIA_EDITOR имеет приоритет над $VISUAL, который в свою очередь имеет приоритет над $EDITOR. Если ни одна из этих переменных окружения не установлена, то редактор определяется как open в Windows и OS X, или /etc/alternatives/editor если он существует, или emacs в противном случае.

Примечание

$JULIA_EDITOR не используется при определении редактора для Base.Pkg.edit: эта функция проверяет только $VISUAL и $EDITOR.

Параллелизация

JULIA_CPU_CORES

Переопределяет глобальную переменную Base.Sys.CPU_CORES, количество доступных логических ядер процессора.

JULIA_WORKER_TIMEOUT

Значение типа Float64, устанавливающее значение Base.worker_timeout() (по умолчанию: 60.0). Эта функция возвращает количество секунд, которое процесс-работник будет ждать от процесса-мастера для установления соединения перед завершением.

JULIA_NUM_THREADS

Неотрицательное 64-битное целое число (uint64_t) устанавливающее максимальное количество потоков, доступных для Julia. Если значение $JULIA_NUM_THREADS превышает количество доступных физических ядер процессора, то количество потоков устанавливается в количество ядер. Если $JULIA_NUM_THREADS не положительно или не установлено, или если количество ядер процессора нельзя определить через системные вызовы, то количество потоков устанавливается в 1.

JULIA_THREAD_SLEEP_THRESHOLD

Если установлено значение в виде строки, начинающейся с подстроки "infinite" (регистронезависимо), то вращающиеся потоки никогда не спят. В противном случае $JULIA_THREAD_SLEEP_THRESHOLD интерпретируется как 64-битное целое без знака (uint64_t) и задаёт время в наносекундах, через которое вращающиеся потоки должны перейти в состояние ожидания.

JULIA_EXCLUSIVE

Если установлено значение, отличное от 0, то политика потоков Julia соответствует запуску на выделенном компьютере: главный поток находится на процессоре 0, а потоки привязаны. В противном случае Julia позволяет операционной системе обрабатывать политику потоков.

Форматирование REPL

Переменные окружения, определяющие, как должен форматироваться вывод REPL на терминале. Как правило, эти переменные должны быть установлены в ANSI-последовательности экранов терминала. Julia предоставляет высокоуровневый интерфейс с аналогичной функциональностью: см. раздел Взаимодействие с Julia.

JULIA_ERROR_COLOR

Форматирование Base.error_color() (по умолчанию светло-красный, "\033[91m") сообщений об ошибках на терминале.

JULIA_WARN_COLOR

Форматирование Base.warn_color() (по умолчанию жёлтый, "\033[93m") сообщений об ошибках на терминале.

JULIA_INFO_COLOR

Форматирование Base.info_color() (по умолчанию голубой, "\033[36m") сообщений об информационных сообщениях на терминале.

JULIA_INPUT_COLOR

Форматирование Base.input_color() (по умолчанию стандартный, "\033[0m") ввода на терминале.

JULIA_ANSWER_COLOR

Форматирование Base.answer_color() (по умолчанию стандартный, "\033[0m") вывода на терминале.

JULIA_STACKFRAME_LINEINFO_COLOR

Форматирование Base.stackframe_lineinfo_color() (по умолчанию полужирный, "\033[1m") информации о строках во время отладки стека на терминале.

JULIA_STACKFRAME_FUNCTION_COLOR

Форматирование Base.stackframe_function_color() (по умолчанию полужирный, "\033[1m") вызовов функций во время отладки стека на терминале.

Отладка и профилирование

JULIA_GC_ALLOC_POOL, JULIA_GC_ALLOC_OTHER, JULIA_GC_ALLOC_PRINT

При установке эти переменные окружения принимают строки, которые необязательно начинаются с символа 'r', за которым следует строковая интерполяция списка из трёх целых 64-битных чисел, разделённых двоеточиями (int64_t). Эта тройка чисел a:b:c представляет собой арифметическую прогрессию a, a + b, a + 2*b, ... c.

END_OF_DOCUMENT_MARKER
  • Если это n-й раз, когда вызывается jl_gc_pool_alloc(), и n принадлежит арифметической прогрессии, представленной $JULIA_GC_ALLOC_POOL, то принудительно выполняется сборка мусора.

  • Если это n-й раз, когда вызывается maybe_collect(), и n принадлежит арифметической прогрессии, представленной $JULIA_GC_ALLOC_OTHER, то принудительно выполняется сборка мусора.

  • Если это n-й раз, когда вызывается jl_gc_collect(), и n принадлежит арифметической прогрессии, представленной $JULIA_GC_ALLOC_PRINT, то выводятся счётчики вызовов jl_gc_pool_alloc() и maybe_collect().

Если значение переменной среды начинается с символа 'r', то интервал между событиями сбора мусора случайным образом изменяется.

Примечание

Эти переменные среды действуют только в том случае, если Julia была скомпилирована с отладкой сбора мусора (то есть, если WITH_GC_DEBUG_ENV установлено в 1 в конфигурации сборки).

JULIA_GC_NO_GENERATIONAL

Если установлено значение, отличное от 0, то сборщик мусора Julia никогда не выполняет "быстрые проходы" по памяти.

Примечание

Эта переменная среды действует только в том случае, если Julia была скомпилирована с отладкой сбора мусора (то есть, если WITH_GC_DEBUG_ENV установлено в 1 в конфигурации сборки).

JULIA_GC_WAIT_FOR_DEBUGGER

Если установлено значение, отличное от 0, то сборщик мусора Julia будет ожидать подключения отладчика вместо прерывания при возникновении критической ошибки.

Примечание

Эта переменная среды действует только в том случае, если Julia была скомпилирована с отладкой сбора мусора (то есть, если WITH_GC_DEBUG_ENV установлено в 1 в конфигурации сборки).

ENABLE_JITPROFILING

Если установлено значение, отличное от 0, компилятор создаст и зарегистрирует обработчик событий для профилирования JIT (just-in-time).

Примечание

Эта переменная среды действует только в том случае, если Julia была скомпилирована с поддержкой профилирования JIT, используя либо

  • Intel's VTune™ Amplifier (USE_INTEL_JITEVENTS установлено в 1 в конфигурации сборки), или

  • OProfile (USE_OPROFILE_JITEVENTS установлено в 1 в конфигурации сборки).

JULIA_LLVM_ARGS

Аргументы, которые будут переданы в бэкэнд LLVM.

Примечание

Эта переменная среды действует только в том случае, если Julia была скомпилирована с JL_DEBUG_BUILD установленным — в частности, исполняемый файл julia-debug всегда компилируется с этой переменной сборки.

JULIA_DEBUG_LOADING

Если установлено, Julia выводит подробную информацию о кэше в процессе загрузки Base.require.

© 2009–2016 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/release-0.6/manual/environment-variables/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API