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

Ubuntu 10.10/i686 + VMWareFusion 3.1.1 でモジュールビルド失敗

vsock-only.cがダメでした。先のパッチとも微妙に違うので添付しておきます。 diff -Naur vsock-only.org//linux/af_vsock.c vsock-only//linux/af_vsock.c --- vsock-only.org//linux/af_vsock.c 2010-08-02 01:22:17.000000000 +0900 +++ vsock-only//linu…

ap4rプロセスが停止しない件について

ap4rプロセスが停止してくれない時があるのですが、原因は多分これですね。 http://redmine.ruby-lang.org/issues/show/3674以下、ruby-1.8.6-p420向けのパッチ。上記記事(Ruby1.9向け)の再編です。 --- lib/drb/drb-p420.rb 2010-11-01 15:09:36.138190005 …

Ruby-1.8.6系のSIGVTALRMバグ

1.8.7系では修正されているのですが、1.8.6系ではp420を含めてバックポートされていないようです。こんなの Virtual timer expired以下は1.8.7系での修正を1.8.6系へ移植したものです。 diff -Naur ruby-1.8.6-p420//eval.c ruby-1.8.6-p420-SIGVTALRM//eval…

Ubuntu 10.10/amd64 + VMWareWorkstation 7.1.2 でモジュールビルド失敗 その2

vmmon-onlyに続いてvsock-onlyもダメ。 CC [M] /tmp/vmware-root/modules/vsock-only/linux/af_vsock.o /tmp/vmware-root/modules/vsock-only/linux/af_vsock.c: In function ‘VSockVmciStreamConnect’: /tmp/vmware-root/modules/vsock-only/linux/af_vsock…

Ubuntu 10.10/amd64 + VMWareWorkstation 7.1.2 でモジュールビルド失敗

はい。どうやらお約束のようです。 CC [M] /tmp/vmware-root/modules/vmmon-only/linux/iommu.o /tmp/vmware-root/modules/vmmon-only/linux/iommu.c: In function ‘IOMMU_SetupMMU’: /tmp/vmware-root/modules/vmmon-only/linux/iommu.c:156: error: implic…

今度はgoogletest

CppUnitがアレだったのでgoogletest。感想: ちゃんと型変換してくれる。 EXPECT_NE(ASSERT_NE)がある。 CppUnitの半分のステップ数で同じテストが書けた。 1class/2methods/8assertsのとき。 よさげなので mtrace も埋め込んでみました。正しく「No memory …

今更CppUnit

今更ながらにCppUnitに手を出してみました。感想: CPPUNIT_ASSERT_EQUAL が型変換してくれないのでウザい。 何のためのマクロやねんと。 CPPUNIT_ASSERT_NOT_EQUAL がない。 結構致命的な気がするんだけどどうだろう? googletestに行ってみます(`・ω・´)ヾ

Ruby-1.9でutility_belt そのにっ

gem にしました。 http://github.com/suzumura-ss/utility_belt_r19 http://github.com/suzumura-ss/utility_belt_r19/blob/master/pkg/utility_belt_r19-0.0.1.gem さて、gemcutterに登録するにはどうするんだろう(´・ω・`) ※追記登録できました\(゚∀゚)/ $ g…

Ruby-1.9でutility_belt

かなり便利な gem utility_belt ですが、Ruby1.9系で使えません。(utility_belt-1.1.0) $ irb -r utility_belt /usr/local/lib/ruby/gems/1.9.1/gems/utility_belt-1.1.0/lib/utility_belt.rb:16: in `block in <top (required)>': wrong number of arguments (1 for 0) (Arg</top>…

Ubuntu10.04/i686でRuby1.9.1p429がビルドできない件について

make 途中で minruby が Segmentation fault で落ちてしまうというもの。 ./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb ./tool/generic_erb.rb -c -o encdb.h ./template/encdb.h.tmpl ./enc enc /home/suzumura/ruby-1.9.1-p429/lib/optpars…

firefox-3.6が起動できない件について

環境は CentOS5.5/x86_64 ですが、多分SELinuxが有効なら無関係かな。こんな感じで [ ~]$ firefox /usr/local/bin/firefox-3/firefox-bin: error while loading shared libraries: /usr/local/bin/firefox-3/libxul.so: cannot restore segment prot after r…

Ruby GServer を叩いてみる

GServer自体は簡単で良い物なんだけど、多少気になる挙動があるのでメモ。 echos.rb #!/usr/bin/env ruby require 'gserver' class EchoServer < GServer def self.start s = self.new(10001, '0.0.0.0', 1000) trap(:INT) { s.stop } s.start s end def ini…

Ruby拡張ライブラリを書いてみる。その2

前回をふまえて、もう少し複雑な拡張ライブラリを書いてみます。対象を「値 v と場所(Peer) p を記憶して、値 v が格納されている場所 p の配列を返すデータベース」としてみます。 typedef std::vector<int> IntArray; class Cache { Cache(); virtual Cache(); </int>…

Ruby拡張ライブラリを書いてみる。

rubyソースのdir.cを見ながら書いてみた。 インスタンスにCデータを保存する(今回はint)。 そのデータを元に obj.step(2) {|v| ... } させる。 簡単過ぎ。ドキュメントが無いのが悔やまれるが言わないのが約束というものなんでしょう。 sample.cpp #include …

RubyInlineでSunRPCをたたいてみる

RubyコードにCコードを直接埋め込む RubyInline。 これを使って SunRPC サーバーを叩いてみました。使用する RPCサーバーはこれ。 sample.x struct samplearg { int a; int b; }; struct sample { int sum; int diff; }; program SAMPLEPROG { version SAMPL…