[Reference:<_A2100@vin.ML_>]
Newsgroups: vin
Re: [vin:2100] vin4.0.0 -- ported onto MacOS X
In message <_A2100@vin.ML_>
on 10/26/04(01:01:50)
you Yasushi Shinjo <pimkabth4-mxhgu4zkrwxw.ml@delegate.org> wrote:
|新城@筑波大学です。こんにちは。
こんばんワ。さとうです。
|おお。待っていました。ついに MacOSX 版が出ましたか。先ほど試
|した所、特に問題はみつかりません。lib-doc-var.tar.gz は、前
|にコピーしてあった dist3.4.1 のものを使いました。
ほぼ新城さん向けのテスト版のつもりで出したので、ちゃんと動いたようで
なによりです(^^)
ところでMacOS Xは、10.3 をお使いでしょうか?
10.2のターミナルだと、特定のエスケープシーケンスでターミナルが死んで
しまうので困りものです。10.3 だと死ぬことは無いようなのですが、あい
かわらず日本語フォントはしょぼいし(探してはみたんですが。。。)、
vi (vim6.2) は日本語の文字幅をちゃんと扱ってくれなくて、編集すると
画面ぐちゃぐちゃだし。。。でぼくは結局vinを使う時(or vimする)時だけ
X11と昔懐かしktermを使ってるんですが、これだとコピー&ペーストが
出来なくて時々不便。いまさら聞けないなんとやらですが、どうしてます?
|> 今回のMacOS Xへの移植ですが、やってみるとだいたい一日仕事でした(昨日手を
|> つけました。のでほとんどテストはしてないのですが)。前処理として、protoize
|> を利用して ANSI C に変換したのですが、「引数が足りない」呼び出しが2、3
|> 見つかって修正しました。これらは再現性の無い突然死に関係していたかも知れ
|> ません(が追求する気力が。。。)。
|
|これは、大したものですね。1日仕事というのも、2、3というのも。
まあ、まだ体力はけっこうあって。カクシャクとしてるってんですかね:p。
生涯一プログラマは体力が命です。ボウリングで鍛えてるし。
すでにFreeBSDとLinuxに移植してますから、その関連の #if を足掛かりに
(三+数箇所に)コンパイラに叱られながら、#if defined(__APPLE__) を付け
足すってのが主な移植作業でした。素性から __FreeBSD__ と共通な場合が多い
わけですが、そうでない場合も結構あって面白いです。一方全然面白くないのが、
可変引数への対応で、これが60箇所余りの単純労働。コンパイラに叱られながら。
全般に単なる肉体労働だったのでワールドシリーズ見ながら機械的にできましたが、
一箇所だけこれは深刻かと思ったのが、make の過程でcosmos固有の言語定義を
内部表現に変換するところで出たSIGBUSです。なにしろ20年近く前に書いたきり
のブラックボックスですから。しかしそれも結局、単に文字列定数に '\0' を
書き込もうとしていたのが原因と判明して落着。
あと、makeが通った後に、ひっかかったのが、vinから外部エディタを起動する時の
エラーです。vin では jvim をデフォルトの EDITOR にしていますが、MacOS X
のデフォルトにはそれはありません。そこで sh (bash?) のエラーコードとして
127 が返されて、その部分の実装コードが STOP シグナルによる停止と見わけが
つかないようになっていて、しかもそのように即死してしまう子プロセス(sh)の
死亡を sigpause() で検知するcosmos側の実装が MacOS (BSD系?)ではうまく
動かないようになっていて。。。で結局返信とか編集とかしようとしてエデイタ
起動すると固まるという。そもそも vin の開発環境だった SunOSの /bin/sh では
コマンドが見つからない時の終了コードは 1 で、こういう問題は起こらなかった
わけですね。
これまでのvinの版でも、この問題はあったみたいで、存在しないエディタを指定
すると動作がおかしくなっていました。この移植を機械に太古のバグがひとつ
とれてちょっとしあわせ。
引数の数の不整合については、ファイルの中での整合性として2箇所ばかり実効的
な引数不足があったわけですが(実効的でない過不足は多数あった)、今後C++に
書き換えて(リンク時に)モジュール間の整合性をチェックしてみれば、ぞろぞろ
出てくるのではないかと思います。
それ以上に、山のような引数や返値の型の不整合の修正には、さすがに体力要り
そうで、1年に2回はやりたくないような。。。
|> たぶん、ザウルスへの移植もそれほどかからないと思うのですが、cosmos は自分
|> を使って自分を作るというのを2フェイズやらないといけないので、クロスだと
|> ちょっと面倒。かといってザウルス上でセルフでやると遅いのなんのって。。。
|
|なるほど。クロスだとそういう問題もあるわけですね。ザウルスく
|らいなら、速い CPU で VM を動かした方が速かったりして。
|(ザウルスの VM ってあるんですか?)
|ザウルス遅いと言っても、sun4 より速かったりしませんか。
どうなんでしょう。Linuxが動くってんで面白いから5月の連休に買ってDeleGate
を移植して以来、この子はほとんど動いていませんで(電源は入りっぱなしですが)、
あまり興味も無くなって(^^;
まあ、たしかに性能的にはsun4とコンパラっぽいですね。自分が化石時代の生き
残りだということを再認識させられます。
だとすれば問題なくvin も動きそう。
最近持ち歩き用には結局、ザウルスと一緒に購入したシグマリオンIII(+Pin@Free)
を愛用してるんですが、ザウルスに vin を載せたらそれはそれで可愛いかも。。。
D G
┌─┐┬┌──┬┐ //\^^ ( - ); {Do the more with the less -- B. Fuller}
├─┤│└─┐│ / 877m\_< >_ <URL:http://www.delegate.org/delegate/>
┴ └┴──┘┴──────────────────────────────
佐藤豊@情報技術研究部門.産業技術総合研究所(独立行政法人)
|