Spec-Zone.ru › Julia 1.10

Интерактивные утилиты

Этот модуль предназначен для интерактивной работы. Он загружается автоматически в интерактивном режиме.

Base.Docs.aproposФункция

apropos([io::IO=stdout], pattern::Union{AbstractString,Regex})

Поиск доступных строковых описаний (docstrings) для записей, содержащих pattern.

Когда pattern является строкой, регистр игнорируется. Результаты выводятся в io.

apropos может быть вызвана из режима помощи в REPL, заключив запрос в двойные кавычки:

help?> "pattern"

InteractiveUtils.varinfoФункция

varinfo(m::Module=Main, pattern::Regex=r""; all=false, imported=false, recursive=false, sortby::Symbol=:name, minsize::Int=0)

Возвращает таблицу Markdown, предоставляющую информацию об экспортированных глобальных переменных в модуле, необязательно ограниченную теми, которые соответствуют pattern.

Оценка потребления памяти — приблизительная нижняя граница размера внутренней структуры объекта.

  • all : также перечисляет неэкспортированные объекты, определенные в модуле, устаревшие объекты и сгенерированные компилятором объекты.
  • imported : также перечисляет объекты, явно импортированные из других модулей.
  • recursive : рекурсивно включает объекты в подмодулях, соблюдая те же настройки в каждом.
  • sortby : столбец для сортировки результатов. Доступные варианты: :name (по умолчанию), :size, и :summary.
  • minsize : включает только объекты размером не менее minsize байт. По умолчанию 0.

Вывод varinfo предназначен только для отображения. Смотрите также names, чтобы получить массив символов, определенных в модуле, который подходит для более общих манипуляций.

InteractiveUtils.versioninfoФункция

versioninfo(io::IO=stdout; verbose::Bool=false)

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

  • verbose: вывести всю дополнительную информацию

Вывод этой функции может содержать конфиденциальную информацию. Перед публикацией обзора, пожалуйста, проверьте вывод и удалите любые данные, которые не должны быть опубликованы.

См. также: VERSION.

InteractiveUtils.methodswithФункция

methodswith(typ[, module or function]; supertypes::Bool=false])

Возвращает массив методов с аргументом типа typ.

Необязательный второй аргумент ограничивает поиск определенным модулем или функцией (по умолчанию — все модули верхнего уровня).

Если ключевой аргумент supertypes имеет значение true, также возвращает аргументы с родительским типом typ, исключая тип Any.

InteractiveUtils.subtypesФункция

subtypes(T::DataType)

Возвращает список непосредственных подтипов типа данных T. Обратите внимание, что включаются все загруженные в настоящее время подтипы, включая те, которые не видны в текущем модуле.

См. также supertype, supertypes, methodswith.

Примеры

julia> subtypes(Integer)
3-element Vector{Any}:
 Bool
 Signed
 Unsigned

InteractiveUtils.supertypesФункция

supertypes(T::Type)

Возвращает кортеж (T, ..., Any) типа T и всех его родительских типов, определяемых последовательными вызовами функции supertype, перечисленных в порядке <: и завершающихся Any.

См. также subtypes.

Примеры

julia> supertypes(Int)
(Int64, Signed, Integer, Real, Number, Any)

InteractiveUtils.editМетод

edit(path::AbstractString, line::Integer=0, column::Integer=0)

Редактирование файла или каталога, необязательно указав номер строки для редактирования файла. Возврат к приглашению julia при выходе из редактора. Редактор может быть изменён, установив JULIA_EDITOR, VISUAL или EDITOR как переменную окружения.

Аргумент column требует как минимум Julia 1.9.

См. также InteractiveUtils.define_editor.

InteractiveUtils.editМетод

edit(function, [types])
edit(module)

Редактирование определения функции, необязательно указав кортеж типов, чтобы указать, какой метод редактировать. Для модулей открывается основной исходный файл. Модуль необходимо загрузить, используя using или import сначала.

edit для модулей требует как минимум Julia 1.1.

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

InteractiveUtils.@editМакрос

@edit

Вычисляет аргументы вызова функции или макроса, определяет их типы и вызывает функцию edit с полученным выражением.

См. также: @less, @which.

InteractiveUtils.define_editorФункция

define_editor(fn, pattern; wait=false)

Определение нового редактора, соответствующего pattern, который может быть использован для открытия файла (возможно, на заданной строке) с использованием fn.

Аргумент fn является функцией, которая определяет, как открыть файл с помощью данного редактора. Она должна принимать четыре аргумента, как указано ниже:

  • cmd - объект базовой команды для редактора
  • path - путь к открываемому исходному файлу
  • line - номер строки для открытия редактора
  • column - номер столбца для открытия редактора

Редакторы, которые не могут открыть файл на конкретной строке или столбце с помощью команды, могут игнорировать аргументы line и/или column. Обратный вызов fn должен вернуть соответствующий объект Cmd для открытия файла или nothing для обозначения невозможности редактирования данного файла. Используйте nothing для обозначения того, что данный редактор не подходит для текущей среды, и следует попробовать другой. Возможна добавка более общих хуков редактирования, которые не требуют запуска внешних команд, путём добавления обратного вызова непосредственно в вектор EDITOR_CALLBACKS.

Аргумент pattern является строкой, регулярным выражением или массивом строк и регулярных выражений. Для вызова fn должно соответствовать одно из шаблонов. Шаблон должен соответствовать значению EDITOR, VISUAL или JULIA_EDITOR . Для строк строка должна быть равна basename первого слова команды редактора, без расширения, если таковое имеется. Например, "vi" не соответствует "vim -g", но соответствует "/usr/bin/vi -m"; также он соответствует vi.exe. Если pattern является регулярным выражением, оно сопоставляется со всей командой редактора в виде экранированной для оболочки строки. Массив шаблонов соответствует, если хоть один из его элементов соответствует. Если соответствует несколько редакторов, используется последний добавленный.

По умолчанию julia не ожидает закрытия редактора, запуская его в фоновом режиме. Однако, если редактор основан на терминале, вы, вероятно, захотите установить wait=true, и julia будет ждать закрытия редактора перед возобновлением.

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

(cmd, path, line, column) -> `$cmd $path`

Обратите внимание, что многие редакторы уже определены. Все следующие команды должны работать:

  • emacs
  • emacsclient
  • vim
  • nvim
  • nano
  • micro
  • kak
  • helix
  • textmate
  • mate
  • kate
  • subl
  • atom
  • notepad++
  • Visual Studio Code
  • open
  • pycharm
  • bbedit

Пример:

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

define_editor(
    r"\bemacs\b.*\s(-nw|--no-window-system)\b", wait=true) do cmd, path, line
    `$cmd +$line $path`
end

define_editor была введена в Julia 1.4.

InteractiveUtils.lessМетод

less(file::AbstractString, [line::Integer])

Показать файл с помощью стандартного просмотрщика (pager), необязательно указав стартовую строку. Возврат к приглашению julia при выходе из просмотрщика.

InteractiveUtils.lessМетод

less(function, [types])

Показать определение функции с помощью стандартного просмотрщика (pager), необязательно указав кортеж типов, чтобы указать, какой метод просмотреть.

InteractiveUtils.@lessМакрос

@less

Вычисляет аргументы вызова функции или макроса, определяет их типы и вызывает функцию less с полученным выражением.

См. также: @edit, @which, @code_lowered.

InteractiveUtils.@whichМакрос

@which

Применяется к вызову функции или макроса, вычисляет аргументы указанного вызова и возвращает объект Method метода, который был бы вызван для этих аргументов. Применяется к переменной, возвращает модуль, в котором переменная была связана. Вызывает функцию which.

См. также: @less, @edit.

END_OF_DOCUMENT_MARKER ```

InteractiveUtils.@functionlocМакрос

@functionloc

Применяется к вызову функции или макроса. Оценивает аргументы указанного вызова и возвращает кортеж (filename,line), содержащий расположение метода, который будет вызван для этих аргументов. Вызывает функцию functionloc.

InteractiveUtils.@code_loweredМакрос

@code_lowered

Оценивает аргументы вызова функции или макроса, определяет их типы и вызывает code_lowered для полученного выражения.

InteractiveUtils.@code_typedМакрос

@code_typed

Оценивает аргументы вызова функции или макроса, определяет их типы и вызывает code_typed для полученного выражения. Используйте необязательный аргумент optimize с

@code_typed optimize=true foo(x)

для управления применением дополнительных оптимизаций, таких как встраивание.

InteractiveUtils.code_warntypeФункция

code_warntype([io::IO], f, types; debuginfo=:default)

Выводит сниженные и типизированные AST-представления методов, соответствующие заданной обобщённой функции и подписи типа, в io, по умолчанию stdout. AST-представления аннотируются таким образом, чтобы подчеркнуть «не-листовые» типы, которые могут представлять проблему для производительности (если доступен цвет, отображаются красным). Это служит предупреждением о потенциальной нестабильности типов.

Не все не-листовые типы являются проблемой для производительности, и характеристики производительности конкретного типа — это деталь реализации компилятора. code_warntype будет стремиться окрашивать типы красным, если они могут представлять собой проблему производительности, поэтому некоторые типы могут быть окрашены красным, даже если они не влияют на производительность. Малые объединения конкретных типов обычно не являются проблемой, поэтому они выделены жёлтым цветом.

Необязательный ключевой аргумент debuginfo может принимать значения :source или :none (по умолчанию), чтобы указать уровень подробности комментариев к коду.

Дополнительная информация содержится в разделе @code_warntype раздела "Рекомендации по производительности" руководства.

InteractiveUtils.@code_warntypeМакрос

@code_warntype

Оценивает аргументы вызова функции или макроса, определяет их типы и вызывает code_warntype для полученного выражения.

InteractiveUtils.code_llvmФункция

code_llvm([io=stdout,], f, types; raw=false, dump_module=false, optimize=true, debuginfo=:default)

Выводит код LLVM, сгенерированный для выполнения метода, соответствующего заданной обобщённой функции и подписи типа, в io.

Если ключевой аргумент optimize не задан, код будет показан до оптимизаций LLVM. Вся метаданные и вызовы dbg.* будут удалены из выведенного кода LLVM. Для полного IR установите ключевой аргумент raw в true. Для вывода всего модуля, содержащего функцию (с объявлениями), установите ключевой аргумент dump_module в true. Необязательный ключевой аргумент debuginfo может принимать значения source (по умолчанию) или none, для указания уровня подробности комментариев к коду.

InteractiveUtils.@code_llvmМакрос

@code_llvm

Оценивает аргументы вызова функции или макроса, определяет их типы и вызывает code_llvm для полученного выражения. Установите необязательные ключевые аргументы raw, dump_module, debuginfo, optimize, передав их и значения перед вызовом функции, например:

@code_llvm raw=true dump_module=true debuginfo=:default f(x)
@code_llvm optimize=false f(x)

optimize управляет применением дополнительных оптимизаций, таких как встраивание. raw делает видимыми все метаданные и вызовы dbg.*. debuginfo может принимать значения :source (по умолчанию) или :none, чтобы указать уровень подробности комментариев. dump_module выводит весь модуль, содержащий функцию.

InteractiveUtils.code_nativeФункция

code_native([io=stdout,], f, types; syntax=:intel, debuginfo=:default, binary=false, dump_module=true)

Выводит инструкции машинного кода, сгенерированные для выполнения метода, соответствующего заданной обобщённой функции и подписи типа, в io.

  • Установите синтаксис ассемблера, задав syntax в :intel (по умолчанию) для синтаксиса Intel или :att для синтаксиса AT&T.
  • Установите уровень подробности комментариев к коду, задав debuginfo в :source (по умолчанию) или :none.
  • Если binary равно true, также выведите двоичный машинный код для каждой инструкции, предваряя его укороченным адресом.
  • Если dump_module равно false, не выводите метаданные, такие как rodata или директивы.
  • Если raw равно false, невыводимые инструкции (например, пролог функции safepoint) будут опушены.

См. также: @code_native, code_llvm, code_typed и code_lowered

InteractiveUtils.@code_nativeМакрос

@code_native

Оценивает аргументы вызова функции или макроса, определяет их типы и вызывает code_native для полученного выражения.

Установите любые необязательные ключевые аргументы syntax, debuginfo, binary или dump_module, передав их и значения перед вызовом функции, например:

@code_native syntax=:intel debuginfo=:default binary=true dump_module=false f(x)
  • Установите синтаксис ассемблера, задав syntax в :intel (по умолчанию) для синтаксиса Intel или :att для синтаксиса AT&T.
  • Установите уровень подробности комментариев к коду, задав debuginfo в :source (по умолчанию) или :none.
  • Если binary равно true, также выведите двоичный машинный код для каждой инструкции, предваряя его укороченным адресом.
  • Если dump_module равно false, не выводите метаданные, такие как rodata или директивы.

См. также: code_native, @code_llvm, @code_typed и @code_lowered

Base.@time_importsМакрос

@time_imports

Макрос, выполняющий выражение и генерирующий отчёт о времени, затраченном на импорт пакетов и их зависимостей. Любое время компиляции будет отображено в процентах, а также то, какая часть из этого — это перекомпиляция.

Для каждого пакета или расширения пакета печатается отдельная строка. Указанное время — это время импорта самого пакета, а не время загрузки его зависимостей.

В Julia 1.9+ расширения пакетов будут отображаться как Родитель → Расширение.

В процессе загрузки пакет последовательно импортирует все свои зависимости, а не только прямые.

julia> @time_imports using CSV
     50.7 ms  Parsers 17.52% compilation time
      0.2 ms  DataValueInterfaces
      1.6 ms  DataAPI
      0.1 ms  IteratorInterfaceExtensions
      0.1 ms  TableTraits
     17.5 ms  Tables
     26.8 ms  PooledArrays
    193.7 ms  SentinelArrays 75.12% compilation time
      8.6 ms  InlineStrings
     20.3 ms  WeakRefStrings
      2.0 ms  TranscodingStreams
      1.4 ms  Zlib_jll
      1.8 ms  CodecZlib
      0.8 ms  Compat
     13.1 ms  FilePathsBase 28.39% compilation time
   1681.2 ms  CSV 92.40% compilation time

Для этого макроса требуется Julia 1.8 или новее.

InteractiveUtils.clipboardФункция

clipboard(x)

Отправляет отформатированную версию x в буфер обмена операционной системы ("копировать").

clipboard() -> String

Возвращает строку с содержимым буфера обмена операционной системы ("вставить").

© 2009–2024 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/v1.10/stdlib/InteractiveUtils/

Spec-Zone.ru

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