D

言語の解説本が出たそうで(id:ABA:20041222)、安い(単行本じゃなくムック)ので買ってみた。なるほど、折衷中道邁進言語。紹介ページにもあるが、理論やドグマだけを純粋にベースにする以外のやり方は確かにあっていいと思う。JavaだってC++だってそうだと思いますけどもね。
いろんなプラットフォームの生バイナリに対する需要ってのはやっぱりあるので、そういう場合普段はC + automake + check + boehm GCでやっていた。VM無し、インタプリタ無しが前提で、Objective-Cは基礎ライブラリにCocoaを使うかGNUStepかって段階で悩むのが面倒だし、C++はMayers本2冊の段階で付き合いきれないと思った上、STLで火が点いた(と思う)述語オブジェクトに至っては最早(略)で、1バイトすら書きたくない。これはいいかも。
Mac OSXで生gccから作ると-frameworkが渡らないそうなのでDarwin7.7.0のgccgdcを入れてみたけど、gcc/c-common.c にある山のようなAPPLE LOCAL パッチに挫折。これ本気でGCC本体にマージするつもりかなあ。他のファイルも入れるとすげえ量だ。
誰かにやって欲しいのと、またやる気になった時のために書いておこう。

  1. c-common.c に大体あたるのはd/d-builtins.cなので、これにCフロントエンドと同じ関数を突っ込む
  2. genindex.o はそのままd/Make-lang.in の D_BORROWED_C_OBJSに足せばOK(*index*の関数はこれ)

lang_build_type_variant()と変数くらいは足してみたが、cfstring周りがしんどい。ちなみに書いておくと、-frameworkが渡らなくても Frameworkの中へ -I、-Lを入れたり、-cでコンパイルしてldに-frameworkを渡せばいい。あるいは-Wl, -Xlinkerも併用するとかね。wrapper書いとけばいい話ではあるんだけども、生で出来るってのはそれだけでありがたいからなあ。