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

Zip/Ruby: とりあえず追加できるようになった

http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/zipruby/ext/?root=svn ひたすらprintfデバッグ…パッチの問題じゃなかった。 #!/usr/bin/env ruby require 'zipruby' archive = Zip.open_archive("test2.zip", Zip::CREATE) archive.add_buffer("foo.txt…

StringValuePtrとStringValueCStr

StringValueCStrは使うことあるかなー? char * rb_string_value_ptr(ptr) volatile VALUE *ptr; { return RSTRING(rb_string_value(ptr))->ptr; } char * rb_string_value_cstr(ptr) volatile VALUE *ptr; { VALUE str = rb_string_value(ptr); char *s = R…

zip_source_filep

zip_source_filepに直接FILEのポインタ渡せるとかっこいいけど、べつにFile#readでString経由でzip_sourceを作ってもいいような気がしてきた。書き込みモードの場合は「IOError: not opened for reading」を飛ばしてくれるし。 たぶん中身はOpenFile構造体だ…

C++の関数をCから呼び出す

zoo.cpp #include <iostream> extern "C" { int add(int a, int b); } using namespace std; int add(int a, int b) { cout << "add()" << endl; return a + b; } bar.c #include <stdio.h> int add(int a, int b); int main() { printf("%d\n", add(1, 2)); } ビルド/実行 ~$ g</stdio.h></iostream>…

link:共有ライブラリをシステムに認識させるには

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/300sharelib.html

Check_Type

Check_Typeのソースを読む。 void rb_check_type(x, t) VALUE x; int t; { struct types *type = builtin_types; if (x == Qundef) { rb_bug("undef leaked to the Ruby space"); } if (TYPE(x) != t) { while (type->type >= 0) { if (type->type == t) { c…

コンソールベースのデバッガほしいなぁ…

なんかziprubyがSEGVで落ちる。たぶんlibzipのwin32のパッチがまずかったんだろう。 でもlibzipは別ソリューションだし、VSのデバッガがめんどくさいので、ちまちまとprintfデバッグ。 gdbライクなコンソールベースのデバッガが欲しいなぁ。

Zip/Ruby(作りかけ)

http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/zipruby/ext/?root=svn ※リリースしました ファイルの中身を読めるようにした。 require 'zipruby' archive = Zip.open_archive("test.zip") archive.num_files.times do |i| name = archive.get_name(i) …

Zip/Ruby(作りかけ)

※リリースしました http://storehouse.sakura.ne.jp/viewvc/viewvc.cgi/zipruby/ext/?root=svn libzipのラッパ。 とりあえず以下のコードは動くようになった。 require 'zipruby' archive = Zip.open("test.zip") archive.num_files.times do |i| name = arc…

libzipをwin32に移植中

libzipをwin32に移植中。 とりあえず、ビルドは通ったので要点を整理。 config.hはconfig.h.inをリネーム typedef int ssize_t strcasecmpはstricmpで代用 _getpid #define getpid _getpid typedef int pid_t; S_ISDIR #ifndef S_ISDIR #define S_ISDIR(m) (…

Rua 0.4.3

http://rua.rubyforge.org/ http://rubyforge.org/frs/?group_id=4845 しょーもないバグがあったので、修正しました。

libzip win32 patch

※このパッチは問題があります。修正版を作成しました。 しばらく動かしてみて問題なければパッチ送ろう。 diff -rup libzip-0.8.orig/lib/mkstemp.c libzip-0.8/lib/mkstemp.c --- libzip-0.8.orig/lib/mkstemp.c 2007-05-16 10:41:34.000000000 +0900 +++ l…

link:svn に登録されていないファイルをまとめて svn add

http://www.goodpic.com/mt/archives2/2007/03/svn_svn_add.html なるほどー。

やりたいことリスト

Apacheのモジュールの勉強 mod_substitute.cをキチンと読む Ruby 1.9のモジュールを作ってみる Ragelの勉強 link:Ragel 入門: 簡単な使い方から JSON パーサまで JSONパーサを作ってみる Ragelを使った構文解析を知りたい(字句解析じゃなくて) http://json…

Google Code Search

WEB

http://www.google.co.jp/codesearch 使うかな?

Benchmark: Passenger (mod_rails) vs Mongrel vs Thin

http://izumi.plan99.net/blog/index.php/2008/03/31/benchmark-passenger-mod_rails-vs-mongrel-vs-thin/ 話題の(?)mod_railsとMongrel、Thinのパフォーマンス比較。 この人のブログ、ホントおもしろい記事ばっかだなー。 それはさておき、速い理由がよく…

サーバとして起動しているかをチェック

RailsでdRubyを起動するようなコードを書いていて、コマンドラインでenvironment.rbが読み込まれたときにdRubyを起動してほしくないので、しばし考える。でまあ、Mongrel/WEBrick限定だけど、以下のようなコードをはさんでおけば良いのではないかと。。。 if d…