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

メモリアロケータ書いた

ええ、車輪の再発明だということは承知しておる! Xtal全体がまぁ再発明ともいえるんですけど。 Xtalはユーザーが自由にmalloc, free関数を登録できるようになってるんですが、 「メモリ確保関数を用意して登録するのめんどくさい。単純にメモリのここからこ…

Rubyでバイナリデータを読み書きする

Rubyでバイナリデータを読み書きするのには、pack, unpack使うじゃないですか。 僕もねぇ、Ruby使い始めてもう何年も経つんですけど、pack, unpackっていつまでたっても覚えられないし、 使うとなんか汚い煩雑なコードになっていくんですね。そんなことって…

文字列リテラルを渡されて生成されたStringオブジェクトは、メモリ確保が起こらないようにした

もともと文字列の長さがsizeof(int)-1のものは、即値になるようにしてメモリ確保が起きないよう工夫していましたが、 今回、文字列リテラルを渡されて生成されたStringオブジェクトも即値になるようにしました。 void foo(){ StringPtr str = xnew<String>(XTAL_STRI</string>…

文字列リテラルのmurmurhashを即値にする

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を効率よくしたい

Xidというマクロは、簡単に書くと次のようになっています。 #define Xid(ident) intern(#ident, sizeof(#ident)) IDPtr intern(const char* str, int size){ strのハッシュを計算して、インターン済み文字列が格納されているハッシュテーブルを引いて、 存在…

ツイッター

作法とか勉強中。 Xtalのここが使いにくい!とか、更新が無いぞ!とか、なんでも気軽にツイッターで@dofixxつけてツイートしてください。

1.0.1.1

uninitialize時に、StringSpaceが持っている配列の開放時に停止する不具合を修正しました。

google group

なんか返信しても反映されない…。なんでだろう? - 再定義の件は、以前修正いたしました。スレッドの件ですが、 現在スレッド切り替えは、 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…

twitter

http://twitter.com/dofixx/iPhoneにもクライアント入れました。

あと

今勤めている会社でも、Xtalを採用してもらえるようになるかもしれないという動きが。 そうなれば、もっとXtalに時間を割けるようになるかもしれません。

デバッガ製作中

現在、QtでGUIデバッガを手作りしてます。 ・式評価 ・ブレークポイント設置 ・ステップイン、ステップアウト、ステップオーバー ・簡単なソース編集機能 ・コールスタックの表示 を実装しました。 できれば近いうちにリリースしたいと思います。

1.0.1.0

また音沙汰無い期間を作ってしまった…。 忙しいからと、一度離れてしまうと、自分の場合放置してしまう悪い癖があるようです。 忙しくても毎日日記を更新していくようにします。 - バージョン1.0.1.0をリリースします。 このバージョンからXtalはMIT licence…