Hachioji.pm #27
2013-04-06
About me
- Hideaki Ohno
- Favorite Programing Language
XS期がきてる
Digest::SpookyHash
- SpookyHashのC++実装のバインディング
- SpookyHash
- Bob Jenkins
- 128bitの非暗号論的ハッシュ
- キーが短い場合に非常に速い
- 64bit Integerが使える環境のみ
Digest::SpookyHash
- 作る過程でM::B::Pluggable::XSUtilのバグ見つけてpull-reqした
- C++を使う場合はM::B::Pluggable::XSUtil-1.01をprereqに
Algorithm::HyperLogLog
- HyperLogLogアルゴリズムの実装
- ある集合内の異なりの数(cardinality)を省メモリで推定するアルゴリズム
- PurePerlでも動く
- MurmurHash3-32もPurePerlで実装
- CPAN Testersからfail report
- PA-RISCの環境でXSとPPで結果が違う
- PA-RISCはビッグエンディアン
原因はMurmurHash3
- MurmurHash3のC実装がビッグエンディアンを想定していなかった
- 調べたらMurmurHash3に限らず、MurmurHash、MurmurHash2もバイトオーダーを考慮しない実装
- 関数名に "_x86"ってつかてるから当然といえば当然
テスト環境作った
- QEMU
- SPARCとかPowerPCのエミュレーションができる
- Debian
- Debian(Sqeeze) on QEMU(PowerPC)環境を構築
- SPARCも試したけど、Sqeezeが上手く入らなかった
今後も暫くXS期