« MIME::Base64::URLSafe | メイン | Suica、おさいふケータイ、満員電車 »
2006年01月23日
C-0.04
告知が遅れましたが、C-0.04 をリリースしました。
RPM からそのままインストールするか、あるいは、tar.gz を展開して configure && make && make install してください。
C-0.04 における最大の変化は、コンパイルキャッシュの搭載です。コンパイルされたコードをキャッシュしてくれるので、動作がとても高速になりました。複雑なスクリプトではもちろんのこと、hello world を表示するようなワンライナーでさえ、 Perl よりも高速です (2回目以降の場合のみですが :-p)
C | Perl | |
---|---|---|
1回目 | 0.176s | 0.028s |
2回目 | 0.017s | 0.028s |
3回目 | 0.018s | 0.028s |
4回目 | 0.017s | 0.028s |
5回目 | 0.018s | 0.028s |
また、 C により書き直したことで、起動も高速化し、さらには、自己実行ができるようになりました。
% time C -m C.c -m C.c -m C.c -m C.c -m C.c -m C.c -m C.c -m C.c -m C.c -e 'printf("hello world\n")' hello worldreal 0m0.074s
user 0m0.020s
sys 0m0.050s
%
このように、十重に自己実行してもちゃんと動作します。しかも高速 (笑)。
よろしくお願いします。
投稿者 kazuho : 2006年01月23日 15:41
トラックバック
このエントリーのトラックバックURL:
http://labs.cybozu.co.jp/cgi-bin/mt-admin/mt-tbp.cgi/361
コメント
初めてコメントする者です.こんにちは.
私も以前に同様の(完成度は別として) ruby script を書いたのですが,
その時には -n オプションをつけて,while (1) {...} のような
機能をつけた記憶が.あんまり使わなかったけれど.
あとは main 関数に引数を渡すオプションをつけました.
-a "arg1" とすると,argv[1] = "arg1" になる感じです.
ちなみに,その時には何に使ったかというと,seq の代わりに使ったり,
http://www.ioccc.org/1992/westley.c
のような国際難解Cコードコンテストのソースを
cut&paste しては実行して遊びました.
投稿者 ogwd : 2006年01月29日 20:33
ogwd さん、コメントありがとうございます。
この手のツールは、ちょっとしたことをする際に便利ですね。
large-C では、スクリプトファイル名より後の引数が argv として扱われるようにしています。
でも、ファイル名を - にしても stdin からスクリプトが入力されると判断しないので、ご提示の westley.c を cut&paste して遊ぶことはできませんでした。
#今気づいた orz
投稿者 kazuho : 2006年01月30日 10:55