Giraffe+ 0.5.53.668
前リリースからの変化
- NULLブロックが評価されたときにエラーにならないようにした
- メソッドオブジェクトのブロック化を保存的にした
- VC++のhash_mapをBoost.Unorderedに置き換えた
NULLブロックが評価されたときにエラーにならないようにした
eval(Nil)やBlock.evalでエラーになってた問題です。空ブロックの評価([].eval)と同じようにNULLオブジェクトを返すことになりました。
メソッドオブジェクトのブロック化を保存的にした
`arg[body]が[body]になっていたのを、[`arg[body].invoke]と、メソッドオブジェクトをそのまま保持するようにしました。
これにより、arg部とbody部に分割可能な単純なユーザメソッド以外でもブロック化できるようになりました。
旧言語との兼ね合いで、こうしたほうがよさそうなのでそうすることにしました。
これまでの仕様:
`arg[body].to_Block //[body] `arg[body].to_Block(false) //[body] `arg[body].to_Block(true) //[arg] Method.to_Block //Nil
新仕様:
`arg[body].to_Block //[`arg[body].invoke] `arg[body].to_Block(0) //[`arg[body].invoke] `arg[body].to_Block(1) //[arg] `arg[body].to_Block(2) //[body] Method.to_Block //[Method.invoke] Method.to_Block(1) //Nil Method.to_Block(2) //Nil