В моем REPL Julia 1.0.0 LOAD_PATH возвращает неожиданные результаты - PullRequest
0 голосов
/ 18 сентября 2018

В справке My Julia REPL для LOAD_PATH предусмотрено следующее:

help?> LOAD_PATH
search: LOAD_PATH

  LOAD_PATH

  An array of paths for using and import statements to consdier as project environments or package directories when
  loading code. See Code Loading.

Вот мой вывод для LOAD_PATH в командной строке:

julia> LOAD_PATH  # What is the output below?
3-element Array{String,1}:
 "@"
 "@v#.#"
 "@stdlib"

Вывод, показанный выше для LOAD_PATH, кажется странным.

Есть предложения?

1 Ответ

0 голосов
/ 18 сентября 2018

То, что вы видите, это DEFAULT_LOAD_PATH.

Позвольте мне привести комментарии из соответствующего раздела исходного кода :

## LOAD_PATH, HOME_PROJECT & ACTIVE_PROJECT ##

# JULIA_LOAD_PATH: split on `:` (or `;` on Windows)
# first empty entry is replaced with DEFAULT_LOAD_PATH, the rest are skipped
# entries starting with `@` are named environments:
#  - the first three `#`s in a named environment are replaced with version numbers
#  - `@stdlib` is a special name for the standard library and expands to its path

Другими словами,

  • "@": для загрузки вещей относительно текущего пути (здесь не совсем точно, см. Обновление ниже)
  • "@v#.#": станет путем к среде v1.0 (при условии, что вы находитесь на 1.0).
  • "@stdlib": станет путем к stdlibs

Это, вероятно, должно быть объяснено более точно в документах Pkg где-нибудь. Не возражаете подать проблему туда ? (ОБНОВЛЕНИЕ: см. https://github.com/JuliaLang/Pkg.jl/issues/757)

UPDATE:

Можно поиграться с методом Base.load_path_expand(a::AbstractString), чтобы увидеть, что со временем станет:

julia> Base.load_path_expand.(LOAD_PATH.*"/test")
3-element Array{String,1}:
 "\\test\\Project.toml"
 "C:\\Users\\carsten\\.julia\\environments\\v1.0\\test\\Project.toml"
 "C:\\Users\\carsten\\.julia\\environments\\stdlib\\test\\Project.toml"
...