зеркало из https://github.com/github/ruby.git
* remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
e1db3605fd
Коммит
3e6cae687c
|
@ -34,7 +34,7 @@ YARV は、Ruby プログラムのための次の機能を提供します。
|
|||
|
||||
* Compiler (compile.h, compile.c)
|
||||
|
||||
コンパイラは、Ruby インタプリタのパーサによって生成された構文木(RNode
|
||||
コンパイラは、Ruby インタプリタのパーサによって生成された構文木(RNode
|
||||
データによる木)を YARV 命令列に変換します。YARV 命令については後述しま
|
||||
す。
|
||||
|
||||
|
@ -43,7 +43,7 @@ YARV は、Ruby プログラムのための次の機能を提供します。
|
|||
|
||||
変換中は Ruby の Array オブジェクトに YARV 命令オブジェクト、およびオペ
|
||||
ランドを格納していき、最後に実行できる形に変換します。コンパイラでは、コ
|
||||
ンパイル中に生成するメモリ領域の管理が問題になることがありますが、YARV
|
||||
ンパイル中に生成するメモリ領域の管理が問題になることがありますが、YARV
|
||||
の場合、Ruby インタプリタがすべて面倒をみてくれるのでこの部分は非常に楽
|
||||
に作ることができました(ガーベージコレクタによって自動的にメモリ管理をし
|
||||
てくれるため)。
|
||||
|
@ -235,7 +235,7 @@ end
|
|||
|
||||
正常系(例外が発生しなかった場合)と異常系(例外が発生したときなど)の2
|
||||
種類の命令列が生成されます。正常系では、ただの連続したコード領域としてコ
|
||||
ンパイルされます。また、異常系ではブロックとして実装します。最後は必ず
|
||||
ンパイルされます。また、異常系ではブロックとして実装します。最後は必ず
|
||||
throw 命令で締めることになります。
|
||||
|
||||
|
||||
|
@ -301,7 +301,7 @@ YARV では高速化を目的としているので、さまざまな最適化手
|
|||
|
||||
*** threaded code
|
||||
|
||||
GCC の C 言語拡張である値としてのラベルを利用して direct threaded code
|
||||
GCC の C 言語拡張である値としてのラベルを利用して direct threaded code
|
||||
を実現しています。
|
||||
|
||||
|
||||
|
@ -322,7 +322,7 @@ GCC の C 言語拡張である値としてのラベルを利用して direct th
|
|||
|
||||
*** ブロックと Proc オブジェクトの分離
|
||||
|
||||
ブロック付きメソッド呼び出しが行なわれたときにはすぐにはブロックを Proc
|
||||
ブロック付きメソッド呼び出しが行なわれたときにはすぐにはブロックを Proc
|
||||
オブジェクトとして生成しません。これにより、必要ない Proc オブジェクトの
|
||||
生成を抑えています。
|
||||
|
||||
|
@ -377,7 +377,7 @@ YARV 命令列のアセンブラを用意しました。使い方は rb/yasm.rb
|
|||
|
||||
* Dis-Assembler (disasm.c)
|
||||
|
||||
YARV 命令列を示すオブジェクト YARVCore::InstructionSequence には disasm
|
||||
YARV 命令列を示すオブジェクト YARVCore::InstructionSequence には disasm
|
||||
メソッドがあります。これは、命令列を逆アセンブルした文字列を返します。
|
||||
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче