summaryrefslogtreecommitdiff
path: root/README.EXT.ja
diff options
context:
space:
mode:
authorshyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-09-05 01:06:25 +0000
committershyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2011-09-05 01:06:25 +0000
commit48cd6cb153c6b14b5843934cd403103ff369f648 (patch)
tree9ac5fb0b2edb36e32c7001943740866e39619c76 /README.EXT.ja
parent75c42535c9e49a3afae910d533874933558857ed (diff)
downloadruby-48cd6cb153c6b14b5843934cd403103ff369f648.tar.gz
README.ja, README.EXT.ja: resolve conflicts. [ruby-dev:44459]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33187 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'README.EXT.ja')
-rw-r--r--README.EXT.ja141
1 files changed, 0 insertions, 141 deletions
diff --git a/README.EXT.ja b/README.EXT.ja
index d061f16ff2..44ea819ebb 100644
--- a/README.EXT.ja
+++ b/README.EXT.ja
@@ -94,110 +94,6 @@ FIXNUMとNILに関してはより高速な判別マクロが用意されてい
FIXNUM_P(obj)
NIL_P(obj)
-<<<<<<< HEAD
-1.3 VALUEをCのデータに変換する
-
-データタイプがT_NIL,T_FALSE,T_TRUEである時,データはそれぞ
-れnil,false,trueです.このデータタイプのオブジェクトはひと
-つずつしか存在しません.
-
-データタイプがT_FIXNUMの時,これは31bitまたは63bitのサイズを
-持つ整数です.longのサイズが32bitのプラットフォームであれば
-31bitに,longのサイズが64bitのプラットフォームであれば63bit
-になります. FIXNUM を C の整数に変換するためにはマクロ
-「FIX2INT()」または「FIX2LONG()」を使います.これらのマクロ
-を使用する際には事前にデータタイプがFIXNUMであることを確認す
-る必要がありますが,比較的高速に変換を行うことができます.ま
-た,「FIX2LONG()」は例外を発生しませんが,「FIX2INT()」は変
-換結果がintのサイズに収まらない場合には例外を発生します.
-それから,FIXNUMに限らずRubyのデータを整数に変換する
-「NUM2INT()」および「NUM2LONG()」というマクロがあります.こ
-れらのマクロはマクロはデータタイプのチェック無しで使えます
-(整数に変換できない場合には例外が発生する).同様にチェック無
-で使える変換マクロはdoubleを取り出す「NUM2DBL()」があります.
-
-char* を取り出す場合, StringValue() と StringValuePtr()
-を使います.
-StringValue(var) は var が String
-であれば何もせず,そうでなければ var を var.to_str() の結果
-に置き換えるマクロ,StringValuePtr(var) は同様に var を
-String に置き換えてから var のバイト列表現に対する char* を
-返すマクロです.var の内容を直接置き換える処理が入るので,
-var は lvalue である必要があります.
-また,StringValuePtr() に類似した StringValueCStr() というマ
-クロもあります.StringValueCStr(var) は var を String に置き
-換えてから var の文字列表現に対する char* を返します.返され
-る文字列の末尾には nul 文字が付加されます.なお,途中に nul
-文字が含まれる場合は ArgumentError が発生します.
-一方,StringValuePtr() では,末尾に nul 文字がある保証はなく,
-途中に nul 文字が含まれている可能性もあります.
-
-それ以外のデータタイプは対応するCの構造体があります.対応す
-る構造体のあるVALUEはそのままキャスト(型変換)すれば構造体の
-ポインタに変換できます.
-
-構造体は「struct RXxxxx」という名前でruby.hで定義されていま
-す.例えば文字列は「struct RString」です.実際に使う可能性が
-あるのは文字列と配列くらいだと思います.
-
-ruby.hでは構造体へキャストするマクロも「RXXXXX()」(全部大文
-字にしたもの)という名前で提供されています(例: RSTRING()).
-
-構造体からデータを取り出すマクロが提供されています.文字列
-strの長さを得るためには「RSTRING_LEN(str)」とし,文字列strを
-char*として得るためには「RSTRING_PTR(str)」とします.配列の
-場合には,それぞれ「RARRAY_LEN(ary)」,「RARRAY_PTR(ary)」と
-なります.
-
-Rubyの構造体を直接アクセスする時に気をつけなければならないこ
-とは,配列や文字列の構造体の中身は参照するだけで,直接変更し
-ないことです.直接変更した場合,オブジェクトの内容の整合性が
-とれなくなって,思わぬバグの原因になります.
-
-1.4 CのデータをVALUEに変換する
-
-VALUEの実際の構造は
-
- * FIXNUMの場合
-
- 1bit左シフトして,LSBを立てる.
-
- * その他のポインタの場合
-
- そのままVALUEにキャストする.
-
-となっています.よって,LSBをチェックすればVALUEがFIXNUMかど
-うかわかるわけです(ポインタのLSBが立っていないことを仮定して
-いる).
-
-ですから,FIXNUM以外のRubyのオブジェクトの構造体は単にVALUE
-にキャストするだけでVALUEに変換出来ます.ただし,任意の構造
-体がVALUEにキャスト出来るわけではありません.キャストするの
-はRubyの知っている構造体(ruby.hで定義されているstruct RXxxx
-のもの)だけです.
-
-FIXNUMに関しては変換マクロを経由する必要があります.Cの整数
-からVALUEに変換するマクロは以下のものがあります.必要に応じ
-て使い分けてください.
-
- INT2FIX() もとの整数が31bitまたは63bit以内に収まる自信
- がある時
- INT2NUM() 任意の整数からVALUEへ
-
-INT2NUM()は整数がFIXNUMの範囲に収まらない場合,Bignumに変換
-してくれます(が,少し遅い).
-
-1.5 Rubyのデータを操作する
-
-先程も述べた通り,Rubyの構造体をアクセスする時に内容の更新を
-行うことは勧められません.で,Rubyのデータを操作する時には
-Rubyが用意している関数を用いてください.
-
-ここではもっとも使われるであろう文字列と配列の生成/操作を行
-い関数をあげます(全部ではないです).
-
- 文字列に対する関数
-=======
1.3 VALUEをCのデータに変換する
データタイプがT_NIL,T_FALSE,T_TRUEである時,データはそれぞ
@@ -300,7 +196,6 @@ Rubyが用意している関数を用いてください.
い関数をあげます(全部ではないです).
文字列に対する関数
->>>>>>> Change encoding from EUC-JP to UTF-8. [Feature #5128]
rb_str_new(const char *ptr, long len)
@@ -347,15 +242,9 @@ Rubyが用意している関数を用いてください.
rb_str_cat2(str, rb_vsprintf(format, ap)) と同等である.
rb_enc_str_new(const char *ptr, long len, rb_encoding *enc)
-<<<<<<< HEAD
-
- 指定されたエンコーディングでRubyの文字列を生成する.
-
-=======
指定されたエンコーディングでRubyの文字列を生成する.
->>>>>>> Change encoding from EUC-JP to UTF-8. [Feature #5128]
rb_usascii_str_new(const char *ptr, long len)
rb_usascii_str_new_cstr(const char *ptr)
@@ -1130,13 +1019,8 @@ Rubyコマンドの実装
enc/*.c : エンコーディングクラス群
enc/trans/* : コードポイント対応表
-<<<<<<< HEAD
-gorubyコマンドの実装
-
-=======
gorubyコマンドの実装
->>>>>>> Change encoding from EUC-JP to UTF-8. [Feature #5128]
goruby.c
golf_prelude.rb : goruby固有のライブラリ
-> golf_prelude.c : 自動生成
@@ -1296,21 +1180,12 @@ void rb_define_global_const(const char *name, VALUE val)
rb_define_method(VALUE klass, const char *name, VALUE (*func)(), int argc)
-<<<<<<< HEAD
- メソッドを定義する.argcはselfを除く引数の数.argcが-1の時,
- 関数には引数の数(selfを含まない)を第1引数, 引数の配列を第2
- 引数とする形式で与えられる(第3引数はself).argcが-2の時,
- 第1引数がself, 第2引数がargs(argsは引数を含むRubyの配列)と
- いう形式で与えられる.
-
-=======
メソッドを定義する.argcはselfを除く引数の数.argcが-1の時,
関数には引数の数(selfを含まない)を第1引数, 引数の配列を第2
引数とする形式で与えられる(第3引数はself).argcが-2の時,
第1引数がself, 第2引数がargs(argsは引数を含むRubyの配列)と
いう形式で与えられる.
->>>>>>> Change encoding from EUC-JP to UTF-8. [Feature #5128]
rb_define_private_method(VALUE klass, const char *name, VALUE (*func)(), int argc)
privateメソッドを定義する.引数はrb_define_method()と同じ.
@@ -1423,15 +1298,6 @@ VALUE rb_block_call(VALUE obj, ID mid, int argc, VALUE * argv,
[OBSOLETE] VALUE rb_iterate(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2)
-<<<<<<< HEAD
- func2をブロックとして設定し, func1をイテレータとして呼ぶ.
- func1には arg1が引数として渡され, func2には第1引数にイテレー
- タから与えられた値, 第2引数にarg2が渡される.
-
- 1.9でrb_iterateを使う場合は, func1の中でRubyレベルのメソッド
- を呼び出さなければならない.
- 1.9でobsoleteとなった. 代わりにrb_block_callが用意された.
-=======
func2をブロックとして設定し, func1をイテレータとして呼ぶ.
func1には arg1が引数として渡され, func2には第1引数にイテレー
タから与えられた値, 第2引数にarg2が渡される.
@@ -1439,7 +1305,6 @@ VALUE rb_block_call(VALUE obj, ID mid, int argc, VALUE * argv,
1.9でrb_iterateを使う場合は, func1の中でRubyレベルのメソッド
を呼び出さなければならない.
1.9でobsoleteとなった. 代わりにrb_block_callが用意された.
->>>>>>> Change encoding from EUC-JP to UTF-8. [Feature #5128]
VALUE rb_yield(VALUE val)
@@ -1694,15 +1559,9 @@ dir_config(target[, default_include, default_lib])
pkg_config(pkg)
-<<<<<<< HEAD
- pkg-configコマンドからパッケージpkgの情報を得る.
- pkg-configの実際のコマンド名は,--with-pkg-configコマンド
- ラインオプションで指定可能.
-=======
pkg-configコマンドからパッケージpkgの情報を得る.
pkg-configの実際のコマンド名は,--with-pkg-configコマンド
ラインオプションで指定可能.
->>>>>>> Change encoding from EUC-JP to UTF-8. [Feature #5128]
/*
* Local variables: