Ruby勉強会@関西#35に参加してきました。
ohaiさんのRuby/SDLのメンテナンス期間が素晴らしく長い件。
新バージョンから、それまでGC頼りだったリソースの解放が明示的にできるようになった、ということが語られていました。すごい。
ただ、何故かチャットではGCの方が話題になり、それってザ・ワールドだよね、ということで作ってみました。
module Kernel def The(proc) proc.call end def World() Proc.new{ GC.start } end end The World #=> NameError: uninitialized constant World The World() #=> nil (OK)
カッコがださいので、world を使うという逃げ方もできるわけですが、破壊的なメソッドには、! を使うというローカルルールがありますので、こう書くことになりました。
# 差分のみ module Kernel def World! Proc.new{ GC.start } end end The World! #=> nil (OK)
使い途?そんなものはありません。GC.start を使いましょう。