2009-12-01から1ヶ月間の記事一覧
ええ、車輪の再発明だということは承知しておる! Xtal全体がまぁ再発明ともいえるんですけど。 Xtalはユーザーが自由にmalloc, free関数を登録できるようになってるんですが、 「メモリ確保関数を用意して登録するのめんどくさい。単純にメモリのここからこ…
Rubyでバイナリデータを読み書きするのには、pack, unpack使うじゃないですか。 僕もねぇ、Ruby使い始めてもう何年も経つんですけど、pack, unpackっていつまでたっても覚えられないし、 使うとなんか汚い煩雑なコードになっていくんですね。そんなことって…
もともと文字列の長さがsizeof(int)-1のものは、即値になるようにしてメモリ確保が起きないよう工夫していましたが、 今回、文字列リテラルを渡されて生成されたStringオブジェクトも即値になるようにしました。 void foo(){ StringPtr str = xnew<String>(XTAL_STRI</string>…
http://murmurhash.googlepages.com/ enum{ hash_m = 0x5bd1e995, hash_seed = 0xdeadbeef, hash_r = 24 }; template <int N> inline uint_t hashv(const char (&data)[N], uint_t h){ uint_t k = data[0]; k |= data[1] << 8; k |= data[2] << 16; k |= data[3] <<</int>…
Xidというマクロは、簡単に書くと次のようになっています。 #define Xid(ident) intern(#ident, sizeof(#ident)) IDPtr intern(const char* str, int size){ strのハッシュを計算して、インターン済み文字列が格納されているハッシュテーブルを引いて、 存在…
作法とか勉強中。 Xtalのここが使いにくい!とか、更新が無いぞ!とか、なんでも気軽にツイッターで@dofixxつけてツイートしてください。
uninitialize時に、StringSpaceが持っている配列の開放時に停止する不具合を修正しました。
なんか返信しても反映されない…。なんでだろう? - 再定義の件は、以前修正いたしました。スレッドの件ですが、 現在スレッド切り替えは、 Xtalの仮想命令の無条件ジャンプのときに検討するようになっているのですが、 示されたコードだと、無条件ジャンプが…
C++のクラスをバインドした場合、自動的にcppという名前空間に登録される仕様にしました。 C++のクラスを楽に参照することができます。 // main.cpp struct Vector{ float x, y; }; XTAL_PREBIND(Foo){ it->def_ctor0<Foo>(); } XTAL_BIND(Foo){ it->def_var("x",</foo>…
関数定義とクラス定義だけは、filelocalをつけなくとも、自動的にfilelocalにも同時に定義されるように、 そして、トップレベルの最後では自動的にfilelocalがリターンされる仕様にしました。 よって、次のように記述することができるようになります。 // aa…
http://twitter.com/dofixx/iPhoneにもクライアント入れました。
今勤めている会社でも、Xtalを採用してもらえるようになるかもしれないという動きが。 そうなれば、もっとXtalに時間を割けるようになるかもしれません。
現在、QtでGUIデバッガを手作りしてます。 ・式評価 ・ブレークポイント設置 ・ステップイン、ステップアウト、ステップオーバー ・簡単なソース編集機能 ・コールスタックの表示 を実装しました。 できれば近いうちにリリースしたいと思います。
また音沙汰無い期間を作ってしまった…。 忙しいからと、一度離れてしまうと、自分の場合放置してしまう悪い癖があるようです。 忙しくても毎日日記を更新していくようにします。 - バージョン1.0.1.0をリリースします。 このバージョンからXtalはMIT licence…