InteractiveUtils
Base.Docs.apropos
── 関数
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
型を受け取るメソッドの配列を返します。
省略可能な第二引数を指定すると検索が特定のモジュールや関数に制限されます。デフォルトではトップレベルのモジュールが全て検索されます
キーワード引数 supertypes
が true
だと、Any
を除いた type
の上位型を引数に持つメソッドも返ります。
InteractiveUtils.subtypes
── 関数
subtypes(T::DataType)
DataType
型の値 T
の直接の部分型からなるリストを返します。読み込まれている全ての部分型が検索され、現在のモジュールから見えない部分型も検索されることに注意してください。
例
julia> subtypes(Integer)
3-element Array{Any,1}:
Bool
Signed
Unsigned
InteractiveUtils.supertypes
── 関数
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
で開かれている必要があります。
モジュールに対する edit
は Julia 1.1 以降でサポートされます。
行番号を指定した状態でファイルを開くには define_editor
を使った設定が必要な場合があります。
InteractiveUtils.@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
define_editor
は Julia 1.4 で追加されました。
InteractiveUtils.less
── メソッド
less(file::AbstractString, [line::Integer])
デフォルトのページャを使ってファイルを閲覧します。省略可能引数 line
が指定されると、その行を表示した状態でページャが起動します。ページャを閉じると Julia プロンプトに制御が戻ります。
InteractiveUtils.less
── メソッド
InteractiveUtils.@less
── マクロ
InteractiveUtils.@which
── マクロ
InteractiveUtils.@functionloc
── マクロ
@functionloc
関数またはマクロの呼び出しに適用すると、呼び出しの引数を評価し、@functionloc
がなければその引数に対して呼び出されていたはずのメソッドが定義された位置を表すタプル (filename,line)
を返します。このマクロは functionloc
関数を使って返り値を計算します。
InteractiveUtils.@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 は修飾され、葉型でない型が強調された状態で (色が利用可能なら赤くなって) 出力されます。これは型の不安定性が予期せず生じている可能性を示す警告です。全ての非葉型が性能に悪影響を与えるわけではないので、警告には臨機応変に対応してください。特に missing
と nothing
を含む型共用体は意図的であることが多いので、黄色で表示されます。
キーワード引数 debuginfo
はコードコメントの量を制御します。指定できる値は :source
と :none
で、デフォルトは :none
です。
詳細はパフォーマンス Tips の @code_warntype
を利用するを見てください。
InteractiveUtils.@code_warntype
── マクロ
InteractiveUtils.code_llvm
── 関数
code_llvm([io=stdout,],
f,
types;
raw=false,
dump_module=false,
optimize=true,
debuginfo=:default)
与えられた総称関数と型シグネチャに適合するメソッドを実行するときに生成される LLVM ビットコードを io
に出力します。
キーワード引数 optimize
を false
に設定すると、LLVM による最適化が行われる前のコードが表示されます。出力されるビットコードからはメタデータと dbg.* の呼び出しが削除されますが、キーワード引数 raw
を true
にすれば完全な IR を取得できます。関数を包むモジュール全体を (宣言と共に) ダンプするには dump_module
を true
にしてください。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
はインライン化といった追加の最適化を行うかどうかを制御します。raw
を true
にすると、メタデータと dbg.* の呼び出しが全て出力されます。debuginfo
はコードコメントの量を制御し、指定できる値は :source
(デフォルト) と :none
です。dump_module
を true
にすると、指定された関数を包むモジュール全体が出力されます。
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
です。