Spec-Zone.ru › Julia 1.3

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

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

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

Примечание

Некоторые переменные, такие как JULIA_NUM_THREADS и JULIA_PROJECT, должны быть установлены до запуска Julia, поэтому добавление их в ~/.julia/config/startup.jl слишком поздно на стадии запуска. В Bash переменные окружения можно установить вручную, например, выполнив export JULIA_NUM_THREADS=4 перед запуском Julia, или добавив ту же команду в ~/.bashrc или ~/.bash_profile, чтобы переменная устанавливалась каждый раз при запуске Bash.

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

JULIA_BINDIR

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

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

$JULIA_BINDIR/julia
$JULIA_BINDIR/julia-debug

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

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

$JULIA_BINDIR/$DATAROOTDIR/julia/base

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

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

$JULIA_BINDIR/$SYSCONFDIR/julia/startup.jl
$JULIA_BINDIR/../etc/julia/startup.jl

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

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

/share/julia/base

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

/etc/julia/startup.jl

JULIA_PROJECT

Путь к каталогу, указывающий, какой проект должен быть первоначально активным. Установка этой переменной окружения имеет тот же эффект, что и указание опции запуска --project, но --project имеет более высокий приоритет. Если переменная установлена в значение @., то Julia пытается найти каталог проекта, содержащий файл Project.toml или JuliaProject.toml в текущем каталоге и его родительских каталогах. Смотрите также главу о Загрузке кода.

Примечание

JULIA_PROJECT должна быть определена до запуска julia; определение её в startup.jl происходит слишком поздно на стадии запуска.

JULIA_LOAD_PATH

Переменная окружения JULIA_LOAD_PATH используется для заполнения глобальной переменной Julia LOAD_PATH, которая определяет, какие пакеты могут быть загружены с помощью import и using (см. Загрузку кода).

В отличие от переменной оболочки PATH, пустые записи в JULIA_LOAD_PATH расширяются до значения по умолчанию LOAD_PATH, ["@", "@v#.#", "@stdlib"], при заполнении LOAD_PATH. Это позволяет легко добавлять, вставлять и т. д. значения пути загрузки в сценарии оболочки независимо от того, установлено ли значение JULIA_LOAD_PATH или нет. Например, чтобы добавить каталог /foo/bar в начало LOAD_PATH, выполните

export JULIA_LOAD_PATH="/foo/bar:$JULIA_LOAD_PATH"

Если переменная окружения JULIA_LOAD_PATH уже установлена, её старое значение будет добавлено в начало /foo/bar. С другой стороны, если JULIA_LOAD_PATH не установлено, то оно будет установлено в значение /foo/bar:, которое расширится до LOAD_PATH значения ["/foo/bar", "@", "@v#.#", "@stdlib"]. Если JULIA_LOAD_PATH установлено в пустую строку, оно расширится до пустого массива LOAD_PATH. Другими словами, пустая строка интерпретируется как массив с нулевыми элементами, а не как массив с одним элементом, содержащим пустую строку. Это поведение было выбрано для возможности установки пустого пути загрузки через переменную окружения. Если вам нужен путь загрузки по умолчанию, снимите установку переменной окружения или, если значение должно быть, установите его в строку :.

JULIA_DEPOT_PATH

Переменная окружения JULIA_DEPOT_PATH используется для заполнения глобальной переменной Julia DEPOT_PATH, которая контролирует, где менеджер пакетов и механизмы загрузки кода Julia ищут реестры пакетов, установленные пакеты, именованные среды, клоны репозиториев, кэшированные скомпилированные изображения пакетов, файлы конфигурации и расположение по умолчанию файла истории REPL.

В отличие от переменной оболочки PATH, но аналогично JULIA_LOAD_PATH, пустые записи в JULIA_DEPOT_PATH расширяются до значения по умолчанию DEPOT_PATH. Это позволяет легко добавлять, вставлять и т. д. значения пути репозитория в сценарии оболочки независимо от того, установлено ли значение JULIA_DEPOT_PATH или нет. Например, чтобы добавить каталог /foo/bar в начало DEPOT_PATH, выполните

export JULIA_DEPOT_PATH="/foo/bar:$JULIA_DEPOT_PATH"

Если переменная окружения JULIA_DEPOT_PATH уже установлена, её старое значение будет добавлено в начало /foo/bar. С другой стороны, если JULIA_DEPOT_PATH не установлено, то оно будет установлено в значение /foo/bar:, что приведет к добавлению /foo/bar в начало пути репозитория по умолчанию. Если JULIA_DEPOT_PATH установлено в пустую строку, оно расширится до пустого массива DEPOT_PATH. Другими словами, пустая строка интерпретируется как массив с нулевыми элементами, а не как массив с одним элементом, содержащим пустую строку. Это поведение было выбрано для возможности установки пустого пути репозитория через переменную окружения. Если вам нужен путь репозитория по умолчанию, снимите установку переменной окружения или, если значение должно быть, установите его в строку :.

JULIA_HISTORY

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

$(DEPOT_PATH[1])/logs/repl_history.jl

JULIA_PKGRESOLVE_ACCURACY

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

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

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

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

JULIA_SHELL

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

Примечание

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

JULIA_EDITOR

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

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

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

JULIA_CPU_THREADS

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

JULIA_WORKER_TIMEOUT

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

JULIA_NUM_THREADS

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

Примечание

JULIA_NUM_THREADS должна быть определена до запуска julia; определение её в startup.jl происходит слишком поздно на стадии запуска.

JULIA_THREAD_SLEEP_THRESHOLD

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

JULIA_EXCLUSIVE

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

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

Переменные среды, определяющие, как должен форматироваться вывод REPL на терминале. Как правило, эти переменные должны быть установлены в соответствии с ANSI-последовательностями escape-символов терминала. Julia предоставляет высокоуровневый интерфейс с большей частью тех же возможностей; см. раздел о The Julia REPL.

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.

  • Если это 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, используя либо

  • Интеллектуальный VTune™ Amplifier (USE_INTEL_JITEVENTS установлено на 1 в конфигурации сборки), или
  • OProfile (USE_OPROFILE_JITEVENTS установлено на 1 в конфигурации сборки).

JULIA_LLVM_ARGS

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

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

Spec-Zone.ru

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