2010-01-01から1ヶ月間の記事一覧

バインダ改修中

結構何度も書き直してしまう関数のバインダ周りなんですが、また書き直してます。 これまでの記述方法でも書けるのですが、次のような新記法も追加することになりました。 XTAL_BIND(Vector){ Xdef_method(normalize); // このような、もっと簡単な記述方法…

標準ライブラリのバインド

たとえばluaでは、数学系の関数をluaから使いたいという場合、 lua_State *L = lua_open(); luaopen_math(L); というように、luaopen_math()を呼ぶ必要があります。これはsquirrelでもそうだったはずです。 使わないライブラリでメモリを圧迫しないようにで…

eval関数追加

デバッガの実装のために「ブレークポイントにて停止中に式を評価する機能」が必要だったので実装していたのですが、ついでにbuiltin::eval関数として追加することにしました。 foo: 100; eval("foo + 10").p; //=> 110; また、永らく使用不可能となっていたi…

16byteアライメントを持つメンバを持つオブジェクトに対応

これまでxnewで生成されたオブジェクトは16byteアライメントを持っていてもいなくても、関係なくmallocで取得したメモリに配置していました。 普通のnewも同様に、関係なく配置します。なのでアライメントの問題はどうしようもないだろう、と思っていたので…