Skip to content

Instantly share code, notes, and snippets.

@monaka
Created December 9, 2012 07:31
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save monaka/4243788 to your computer and use it in GitHub Desktop.
Save monaka/4243788 to your computer and use it in GitHub Desktop.

2012年の環境で超漢字クロスコンパイラは作れるか?

超漢字の開発環境は,マイクロスクリプトの他に C言語が使えます. マイクロスクリプトでできることには制限がありますし,実行の速度などの問題もあります. 超漢字の持つ機能を完全に使いたければ,C言語での開発が必要になります.

C言語の環境は,セルフとクロスの2種類があります. セルフ環境は,導入が容易で,超漢字のみがあれば開発を行えるというメリットはあります. しかし,プログラマの多くはお気に入りのコーディング環境があります. 超漢字の上でそれらの環境は揃わない可能性が高く,なるべく多くの開発者が高い開発効率を得られるようにすることを考えると,クロス環境を整えるべきと言えます.

超漢字の開発環境は,gcc と binutils を中心として,プロプライエタリのライブラリやツールで固められています. 現在も動作するはずですが,開発者サイトの最終更新は 2002 年です. その間に,gcc も binutils も進化を続けており,時代遅れの感は否めません.

gcc の進化とは,バグの修正のみならず,コード生成時の最適化の進化もあります. 試したわけではありませんが,最新の gcc で超漢字をリビルドすれば,コードに手を入れなくても超漢字の性能は向上する可能性があります. …脱線しましたので話をもとに戻します.

そんなこんなで時代から完全に取り残された超漢字開発環境は,今やプログラマが普通に使っている環境では,binutils のリビルドすらできなくなってきています. 例えば,MacOSX ではビルドできません.gcc の MacOSX (Darwin)サポートが本家にマージされたのは 2002 年よりも後ですから gcc を責めるのは酷というものです.

超漢字関連にも詳しいハッカーである uaa 氏をもってして

いくらなんでもgcc-2.95はもうどうにもならないっす。64bit機はともかく、32bit機でもビルドできる環境って残っていないんじゃないでしょうか…

https://twitter.com/uaa/status/275578918793261057

と言わしめるくらいの状態です.

ふむ確かに.なら,やってみようじゃないですか. ただし,OSS で困りそうなネタを解決するのは私の商売なので,ヒントだけ.

作れましたよ.

都知事選挙の期日前投票とか,家の仕事とか,いろいろやりながら,のべ3時間くらいでできました. 案外あっさりですが,何の経験もなかったら,数日はかかるでしょうねぇ.

ホスト環境は MinGW + MSYS.パッチを当てたソースコードは https://bitbucket.org/monaka/brightv-buildenv/src 辺りに置きました. ビルドは configure + make でイケますが,gcc は make bootstrap に失敗しても挫けず make install しちゃってください. あの頃の gcc のクロスビルドって,こういう強引なバッドノウハウが必要です.なんか懐かしいな….

できあがりは, https://bitbucket.org/monaka/brightv-buildenv/downloads 辺りに転がしておきます.

使えますか?

わかりません.だってもはや,超漢字,持ってませんもの. ビルドが通ったっていうことは,たぶん使えます. PMCさんのプロプラライブラリなどは含んでいませんので,いろいろ環境構築する必要があります.

あと,前出の uaa 氏が, 3.4 系でビルドする方法を,"分かる人には分かる"的な範囲で公開 なさっています. もし私が超漢字でアプリ書くなら,gcc-2.95 系でがんばろうなんて考えずに,最新の gcc とプロプラライブラリの組み合わせで動く環境をつくる方向で頑張るだろうと思います.

雑感

久しぶりに超漢字開発環境のサイトにいって,10年間更新が無かったことに驚きました. ワタクシゴトですが,2002年って,次女の生まれた年です.来年小学校6年です. ドッグイヤーと呼ばれる業界にあって,なんと申しますか………すごいことだなぁ,と.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment