爺awk

じぃおーく。

何年か前になるかと思うんだけど、Python さえも導入せずに、MSYS (と PosgreSQL, PostGIS) だけでかなり本気の業務ツールを、「シェルスクリプトだけで」作ってたことがあってね。そんときに、どうしても全体が遅くて、MSYS 付属の gawk より速い awk があったら嬉しいな、と探って、「ジジイ」の awk が現役なことに驚いたのね…。

まぁ gawk の拡張に依存しすぎてて乗り換え出来なかったし、速度も別にってことだったんで、ただの遊びで終わったわけなんだけれども。

それをなんだか今ふと思い出しちゃって。ネタに、も一回やってみよっかなと。

と思ったらジジイ、お茶目だ:

前に試したの、2007年よりは後だもん、そんときは気付かなかったなぁ。で、「Newest」はここに:

まぁもうベル研には所属してないので更新でけんのよ、とおっさってるわけな。73歳。なんつうか、世の主流に乗れなかったのね、現代的な SCM 使ってる形跡なし。しかしまぁ、SourceForge すら使ってこなかったのかしら? てか、どんな管理してんだ?

前回やったときは、確か MinGW でビルドしたか、「古い」と言ってるバイナリをそのまま使ったかどっちかだな。今回は Microsoft Visual C++ Compiler for Python 2.7で。

バッチと makefile があるので…

1 me@host: awk$ nmake -f makefile.win

ダメ。バッチは?

1 me@host: awk$ cnd /c buildwin.bat

コンパイルエラーだもんな、nmake だろうがバッチだろうが一緒だわ。

あぁ、めんどうくせぇ、コメントアウトしちまえ:

proto.h
1 /* ... snip ... */
2 extern	void	overflo(const char *) /*__attribute__((__noreturn__))*/;
3 /* ... snip ... */
4 extern	void	FATAL(const char *, ...) /*__attribute__((__noreturn__))*/;
 1 me@host: awk$ cnd /c buildwin.bat
 2 cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
 3 cl : Command line warning D9002 : ignoring unknown option '-QIfdiv-'
 4 maketab.c
 5 cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
 6 cl : Command line warning D9002 : ignoring unknown option '-QIfdiv-'
 7 b.c
 8 main.c
 9 parse.c
10 proctab.c
11 tran.c
12 lib.c
13 run.c
14 lex.c
15 ytab.c
16 missing95.c
17 Generating Code...

あ、イケた。楽勝。warning が気持ち悪い人もいるかもしれん。D9035 は御馴染みのヤツ。ほっとけばいい。’-QIfdiv-‘ は何がしたかったんだろうか? 全然見覚えないオプション。ま、いっか。

一応動くみたい。

だからなんだ。いや、やってみたかっただけ。