Spec-Zone.ru › Julia 1.8

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

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

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

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

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

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

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

help?> "pattern"

InteractiveUtils.varinfoФункция

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

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

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

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

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)

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

См. также 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 - номер строки, с которой следует открыть редактор

Редакторы, которые не могут открыть файл на конкретной строке с помощью команды, могут игнорировать аргумент line . Функция обратного вызова 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) -> `$cmd $path`

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

  • emacs
  • emacsclient
  • vim
  • nvim
  • nano
  • micro
  • kak
  • 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])

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

InteractiveUtils.lessМетод

less(function, [types])

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

InteractiveUtils.@lessМакрос

@less

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

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

InteractiveUtils.@whichМакрос

@which

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

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

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)

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

Ключевой аргумент 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.* удаляются из выводимого биткода. Для полной 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=:att, debuginfo=:default, binary=false, dump_module=true)

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

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

См. также: @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 в :att (по умолчанию) для синтаксиса AT&T или :intel для синтаксиса Intel.
  • Укажите подробность комментариев к коду, установив debuginfo в :source (по умолчанию) или :none.
  • Если binary равно true, также выведите двоичный машинный код для каждой инструкции, предваряемый сокращенным адресом.
  • Если dump_module равно false, не выводите метаданные, такие как rodata или директивы.

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

InteractiveUtils.@time_importsМакрос

@time_imports

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

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

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() -> AbstractString

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

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

Spec-Zone.ru

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