SL 改造計画
あなたは弐千六百四人目の加害者です.
UNIX の世界では知ってる方も多いと思いますが, sl(1) というキータイプ
矯正ソフトがあります. 1999 年 4 月にようやく開発者の豊田さんのwebをみつけ, 私なりの改造を施して遊んでいます.
このプログラムは重くなるほどに本来の目的
を果たせるので, M$ よろしく気兼ねなく新機能を盛り込めます. しか
し, ここまで改造が進むと本当に煩わしいので, 気の短かい方にはお勧めでき
ません.
sl の原作者の豊田さん, bug の報告, 改造案をくださった方々に感謝!何事
も最初に始めた人がエライっす.
某所にて「これはひどい」,「おバカなもの」と最高の賛辞を頂戴しました.
ありがとうございます.
最近アクセスが増えています. 被害が拡大してい
るようで, 海外も含めリンクが増えています. なにはともあれアクセスありが
とうございます.(06/Nov/2009)
Thank you very much for the access and the links.
過去の改造
- 改造版 1 (1999/4/9)
客車の追加
- 改造版 2 (1999/4/9)
踏切の追加
- 改造版 3 (1999/4/14)
列車が往復
- 改造版 4 (1999/4/17)
1) 客車の数の乱数による決定, 2) 列車のスピードの乱数による決定, 3) 列車
の往復の有無を乱数によって決定, 4) 列車が往復する場合は, 遮断機が一度上
がりかけてから再び降りる機能
1)〜3) は阪大の上田さんと秋山さんによ
る改造です. ありがとうございます.
- 改造版 4 fix 1 (1999/4/29)
JAIST の田中さんに sl -aF を実行したとき core dump するという報告をい
ただきました. これはその修正版です. 田中さんありがとうございました.
- 改造版 4 fix 2 (1999/5/11)
ドキュメントを少々修正しました. 機能は「改造版 4 fix 1」と変わりあり
ません. 再配布される場合はこちらをご利用ください.
- 改造版 5 (1999/7/3)
客車ですが, 岡山伯備線の D51 三重連です. 本当は貨物列車です.
- 改造版 5 fix 1 (2000/6/24)
FreeBSD 7.2 i386 用 (2009/5/7)
往路 28 両目で core dump するバグを発見・修正. ほとんどわかりませんが,
描画の効率向上. 新島さんに AIX の場合の注意点をい
ただいたので, ドキュメントへの反映. Free
BSD 7.2 i386 用パッチを十亀さんに作製いただきました. ありがとうご
ざいます.
総じて, 現在は
- 踏切の追加
- 客車の追加
- 列車の往復
- 客車の数の乱数による決定
- 列車のスピードの乱数による決定
- 列車の往復の有無を乱数によって決定
- 列車が往復する場合は, 遮断機が一度上がりかけてから再び降りる機能
- D51 三重連 (本当は貨物列車です)
のような改造を施してあります.
ここで配布しているのは, 豊田さん作 sl に対するパッチです. オリジナル
のソースは豊田さんのページからどうぞ. 動作確認は
- sparc-sun4m-solaris 2.3
- sparc-sun4d-solaris 2.4
- sparc-sun4m-solaris 2.6
- sparc-sun4u-solaris 2.6
- x86-unknown-linux-2.0 (Slackware 3.5)
- x86-unknown-linux-2.0 (Plamo Linux 1.4.5)
- sparc-sun4c-linux-2.0 (RedHat-5.2)
かつ, gcc-2.7.2 以降, でしてあります.
tar zxvf sl.tgz
cd sl
patch -p1 < ../sl5-1.patch
make
でバイナリができると思いますが, Solaris 2.3, 2.4 では Makefile をいじっ
てリンクオプションに
-lucb -L/usr/ucblib
を加えないとダメかもしれません.
これからの計画(課題)
- tcsh で built-in 化
- sl ライブラリ (libsl)(実験終了)
- D51 戦時中仕様(板の継目の表現がポイント)
- 駅を設け, 長々と停車させる(扉の開閉, 煙の動きがポイント)
- 信号機を設け, 長々と停車させる(煙の動きがポイント)
- 海外進出
問題点
- 踏切をつけてみたものの, D51 が活躍している時代には電動の踏切はな
かったと思うのでどのような対策をとるか, と考えていたが, 電動踏切の歴史
は古く, 既に存在していたらしいと判明したので解決.
- AIX 4.1.5では sl.h の中で文字列の定義に
static char * を使うと core dump するという報告を新島さんにいただきま
した. static をはずすと動作するようです. 新島さんありがとうございま
す.
リンク
Back