読者です 読者をやめる 読者になる 読者になる

テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

(macro-of-inline report) mcppという選択肢

さきほど, 標準のgcc -Eなりcppの挙動がうんこすぎて死ねという話をした.

(macro-of-inline report) linemarkerの罠 - テストステ論

Debianのパッケージを調べてみると, mcppというのが見つかる. 試してみると, 「ファイルに入った時のlineno(すなわちincludeの位置)」「出てきた時の位置」が両方分かる. そして, gcc -Eに案じられるような異常なケースは回避出来るように作られている. ちょろっと使ってみたところ, まともくさい.

mcppのmは例によってMetaだろうか?と思ったが, 実はMatsuiだ. このソフトウェアは, 未踏プロジェクトで作られたものであり, 作者はKiyoshi Matsui(松井潔)さんである. 所属は陽和病院 相談室となっている. プリプロセッサのことを相談したい.

http://www.ipa.go.jp/files/000005716.pdf

mcpp -- a portable C preprocessor with Validation Suite

で, "For the achievements of the project, the author was evaluated as one of the highest class programmers." というくらいの自信家なので, これは良いソフトウェアっぽい感じがするし俄然興味がわいてくる.

Vectorを見ると, K&R規格野郎/プリプロセッサ野郎だということが分かる. カーネルにも言語にもいかず, ひたすらプリプロセッサと戦い続けてるのだろうか. 異常すぎる. 色々調べると, 1992年からmcppの開発を続けていたと分かる. 興味がある.

作者: 松井 潔

このmcpp, 2008年以降, Matsui氏は興味を失ってしまったのか保守されていない. しかし, サンディエゴのエンジニアがGithubレポジトリを作ってくれている. コードにアクセス出来るならば何かおかしなことがあっても発狂することはない(私にとって, CVSリポジトリなどは, 存在しないも同然であるからGithubで管理しなければならない).

h8liu/mcpp · GitHub

mcppは興味深い. FedoraやArchなどでも落とせるらしく, わりと標準的に受け入れられているソフトウェアなのではないかと思う. gcc -Eを使うことによって破滅する可能性を残すくらいならば, 使う方がいいように思う.

ここは, mcppを使ってみるというも手かも知れない. 松井さんがブログを読んでいたら連絡ください.