Spec-Zone.ru › Julia 1.9

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

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

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, column::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 - номер строки для открытия редактора
  • 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])

Отображение файла с помощью стандартного визуализатора, необязательно с указанием начальной строки. Возвращение к приглашению 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.

END_OF_DOCUMENT_MARKER

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.* удаляются из выведенного биткода. Для полного 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 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() -> AbstractString

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

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

Spec-Zone.ru

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