irb in Mac OS X 10.5.*

Mac OS XLeopardirbを使って驚いたのでメモ.

[ことはじめ]
irb内でKconvNKFを使ってみようとrequire.
> もう読み込んでいるよ!と怒られる.
>> 確かに,requireしなくても当たり前のようにライブラリが使える.

これまで(WinXP, Mac OS X Tiger, Linux...etc)はこんなこと無かったハズ.
[訂正]
winXPに入れた ruby 1.8.6(i386-mswin32)でも
Kconv他いろいろと最初から使える状態だった.記憶違い?
# ちなみにConfigは存在せず.

[しらべる]

>> Object::constants.sort
=> ["APPLE_GEM_HOME", "ARGF", "ARGV", "ArgumentError", "Array",
"Bignum", "Binding", "CROSS_COMPILING", "Class", "Comparable",
"ConditionVariable", "Config", "Continuation", "DTracer", "Data",
"Dir", "ENV", "EOFError", "ETC_IRBRC_LOADED", "Enumerable",
"Errno", "Exception", "Exception2MessageMapper", "FALSE", "FalseClass",
"File", "FileTest", "Fixnum", "Float", "FloatDomainError",
"GC", "Gem", "HISTFILE", "Hash", "IO", "IOError", "IRB",
"IndexError", "Integer", "Interrupt",
"Kconv", "Kernel", "LoadError", "LocalJumpError",
"MAXHISTSIZE", "Marshal", "MatchData", "MatchingData", "Math",
"Method", "Module", "Mutex",
"NIL", "NKF", "NameError",
"NilClass", "NoMemoryError",
"NoMethodError", "NotImplementedError", "Numeric", "Object",
"ObjectSpace", "PLATFORM", "Precision", "Proc", "Process", "Queue",
"RELEASE_DATE", "RUBY_FRAMEWORK",
"RUBY_FRAMEWORK_VERSION", "RUBY_PATCHLEVEL",
"RUBY_PLATFORM", "RUBY_RELEASE_DATE", "RUBY_VERSION",
"Range", "RangeError", "RbConfig", "Readline",
"Regexp", "RegexpError", "RubyLex", "RubyToken",
"RuntimeError", "SLex", "STDERR",
"STDIN", "STDOUT", "ScriptError", "SecurityError",
"Signal", "SignalException", "SizedQueue",
"StandardError", "String", "Struct", "Symbol",
"SyntaxError", "SystemCallError", "SystemExit", "SystemStackError",
"TOPLEVEL_BINDING",
"TRUE", "Thread", "ThreadError", "ThreadGroup", "Time",
"TrueClass", "TypeError", "UnboundMethod", "VERSION",
"ZeroDivisionError"]


確かに居る.あれ?と思い,irbの設定を調べてみる.
# irbrcは以下のファイルだけだった.

/private/etc/irbrc

中を見ても特に初期インポートにあたる箇所は以下だけ.

require 'rubygems'
require 'irb/completion'

あとはirbのhistroy読み込みについてだけだった.


んー, 釈然としないのでirbを起動して

IRB.conf
Config::CONFIG

を見てみるもpathがあるだけぽい.
# 実際にrequireはしていない
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/irb
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib


気になってirbのconf内を見てみたら
local.rb に

autoload :Kconv, "kconv" 

なんて発見.

...これ...か?
まだ釈然としないけど,また後で調べてみる!

# さすがに

irb -r libname 
ではないらしいw