InteractiveUtils

Base.Docs.apropos ── 関数

apropos(string)

文字列 string を全てのドキュメントから検索します。大文字と小文字を区別しません。

InteractiveUtils.varinfo ── 関数

varinfo(m::Module=Main, pattern::Regex=r"")

モジュールがエクスポートするグローバル変数に関する情報を示す Markdown の表を返します。省略可能な引数 pattern を指定すると、それとマッチするグローバル変数だけを含んだ表が返ります。

メモリ使用量はオブジェクトの内部構造のサイズの下限を近似した値です。

InteractiveUtils.versioninfo ── 関数

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

使われている Julia のバージョンに関する情報を出力します。出力は真偽値のキーワード引数によって制御されます:

  • verbose: 追加の情報を全て出力します。

InteractiveUtils.methodswith ── 関数

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

引数に type 型を受け取るメソッドの配列を返します。

省略可能な第二引数を指定すると検索が特定のモジュールや関数に制限されます。デフォルトではトップレベルのモジュールが全て検索されます

キーワード引数 supertypestrue だと、Any を除いた type の上位型を引数に持つメソッドも返ります。

InteractiveUtils.subtypes ── 関数

subtypes(T::DataType)

DataType 型の値 T の直接の部分型からなるリストを返します。読み込まれている全ての部分型が検索され、現在のモジュールから見えない部分型も検索されることに注意してください。

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

InteractiveUtils.supertypes ── 関数

supertypes(T::Type)

T とその上位型からなるタプル (T, ..., Any) を返します。タプルは supertype 関数を繰り返し呼ぶことで構築され、<: の順序で Any に到達するまで並べられます。

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

InteractiveUtils.edit ── メソッド

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

ファイルまたはディレクトリを編集します。省略可能引数 line は編集する行番号を表します。エディタを終了すると julia プロンプトに制御が戻ります。エディタは環境変数 JULIA_EDITOR, VISUAL, EDITOR を設定することで変更できます。

define_editor も参照してください。

InteractiveUtils.edit ── メソッド

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

関数の定義を編集します。省略可能引数 types は編集するメソッドを指定するための型のタプルです。モジュールに対してはメインのソースファイルが開きます。モジュールは using または import で開かれている必要があります。

Julia 1.1

モジュールに対する edit は Julia 1.1 以降でサポートされます。

行番号を指定した状態でファイルを開くには define_editor を使った設定が必要な場合があります。

InteractiveUtils.@edit ── マクロ

@edit

関数またはマクロの呼び出しに対する引数を評価して型を読み取り、その結果を使って edit 関数を呼び出します。

InteractiveUtils.define_editor ── 関数

define_editor(fn, pattern; wait=false)

エディタとマッチする新しいパターン pattern を定義します。このパターンにマッチしたエディタでファイルを開くときは fn が使われるようになります (fn にはファイルの行番号も渡されます)。

引数 fn は指定されたエディタでファイルを開く方法を定義する関数です。この関数は次の三つの引数を受け取るべきです:

  • cmd: ベースとなるエディタのコマンドオブジェクト
  • path: 開くソースファイルのパス
  • line: 開くべき行番号

コマンドを使って特定の行を開く機能を持たないエディタでは引数 line を無視して構いません。コールバック fn が返すべき値は、ファイルを開くための適切な Cmd オブジェクト、または指定したエディタでファイルを編集できないことを表す nothing です。nothing は指定したエディタが現在の環境では適切ではなく、他のエディタが試されるべきであることを示すために使ってください。コールバックをベクトル EDITOR_CALLBACKS に直接プッシュすれば、外部コマンドを直接は起動しない一般的な編集フックを追加することもできます。

引数 pattern は文字列または正規表現、もしくはそれらの配列です。fn が呼ばれるには、EDITOR, VISUAL, JULIA_EDITOR の値が pattern (のどれか) とマッチする必要があります。pattern が文字列のときは、その文字列がエディタコマンドの最初の単語の basename と (拡張子を除いて) 一致しなければなりません。例えば pattern"vi" のとき、"vim -g" はマッチしませんが、"/usr/bin/vi -m""vi.exe" はマッチします。pattern が正規表現のときは、シェルエスケープ文字列としてのエディタコマンド全体とマッチする必要があります。配列がマッチするのは要素のいずれかがマッチするときであり、複数のエディタがマッチしたときは最後に追加されたエディタが使われます。

デフォルトで Julia はエディタが閉じるのを待たず、バックグラウンドでエディタを実行します。ただしエディタがターミナルベースなら、おそらく wait=true として Julia にエディタの終了を待たせた方がよいでしょう。

エディタ環境変数のいずれかが設定されていて、それがどのエディタエントリーともマッチしないと、次のデフォルトのエディタエントリーが起動されます:

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

多くのエディタが最初から定義されることに注意してください。何もしなくても次のコマンドは動作するはずです:

  • emacs
  • emacsclient
  • vim
  • nvim
  • nano
  • 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
Julia 1.4

define_editor は Julia 1.4 で追加されました。

InteractiveUtils.less ── メソッド

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

デフォルトのページャを使ってファイルを閲覧します。省略可能引数 line が指定されると、その行を表示した状態でページャが起動します。ページャを閉じると Julia プロンプトに制御が戻ります。

InteractiveUtils.less ── メソッド

less(function, [types])

デフォルトのページャを使って関数の定義を表示します。省略可能引数 types は表示するメソッドを指定するための型のタプルです。

InteractiveUtils.@less ── マクロ

@less

関数またはマクロの呼び出しに対する引数を評価して型を読み取り、その結果を使って less 関数を呼び出します。

InteractiveUtils.@which ── マクロ

@which

関数またはマクロの呼び出しに適用すると、呼び出しの引数を評価し、@which がなければその引数に対して呼び出されていたはずのメソッドを表す Method オブジェクトを返します。変数に適用すると、その変数が束縛されたモジュールを返します。このマクロは which 関数を使って返り値を計算します。

InteractiveUtils.@functionloc ── マクロ

@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 に出力します。io のデフォルトの値は stdout です。AST は修飾され、葉型でない型が強調された状態で (色が利用可能なら赤くなって) 出力されます。これは型の不安定性が予期せず生じている可能性を示す警告です。全ての非葉型が性能に悪影響を与えるわけではないので、警告には臨機応変に対応してください。特に missingnothing を含む型共用体は意図的であることが多いので、黄色で表示されます。

キーワード引数 debuginfo はコードコメントの量を制御します。指定できる値は :source:none で、デフォルトは :none です。

詳細はパフォーマンス Tips の @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 に出力します。

キーワード引数 optimizefalse に設定すると、LLVM による最適化が行われる前のコードが表示されます。出力されるビットコードからはメタデータと dbg.* の呼び出しが削除されますが、キーワード引数 rawtrue にすれば完全な IR を取得できます。関数を包むモジュール全体を (宣言と共に) ダンプするには dump_moduletrue にしてください。debuginfo はコードコメントの量を制御し、指定できる値は :source (デフォルト) と :none です。

InteractiveUtils.@code_llvm ── マクロ

@code_llvm

関数またはマクロの呼び出しに対する引数を評価して型を読み取り、その結果を使って code_llvm を呼び出します。省略可能なキーワード引数 raw, dump_module, debuginfo, optimize は次のように呼び出しの前に置いて渡してください:

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

optimize はインライン化といった追加の最適化を行うかどうかを制御します。rawtrue にすると、メタデータと dbg.* の呼び出しが全て出力されます。debuginfo はコードコメントの量を制御し、指定できる値は :source (デフォルト) と :none です。dump_moduletrue にすると、指定された関数を包むモジュール全体が出力されます。

InteractiveUtils.code_native ── 関数

code_native([io=stdout,], f, types; syntax=:att, debuginfo=:default)

与えられた総称関数と型シグネチャに適合するメソッドを実行するときに生成されるネイティブアセンブリ命令を io に出力します。パラメータ syntax はアセンブリの記法を表すシンボルを指定します。指定できるのは :att (AT&T 記法) と :intel (Intel 記法) です。キーワード引数 debuginfo はコードコメントの量を制御し、指定できる値は :source (デフォルト) と :none です。

InteractiveUtils.@code_native ── マクロ

@code_native

関数またはマクロの呼び出しに対する引数を評価して型を読み取り、その結果を使って code_native を呼び出します。

省略可能なキーワード引数 debuginfo は次のように関数の前に置いて渡してください:

@code_native debuginfo=:default f(x)

debuginfo はコードコメントの量を制御し、指定できる値は :source (デフォルト) と :none です。

InteractiveUtils.clipboard ── 関数

clipboard(x)

x の出力形式をオペレーティングシステムのクリップボードに送信 (コピー) します。

clipboard() -> AbstractString

オペレーティングシステムのクリップボードにある文字列を取得 (ペースト) します。

広告