##PC上のUnix、ということでは初めてちゃんと使ったのは386BSDというやつで、当時Linuxも検討したんだけどまだ未完成というかUnix「もどき」という風情でUnixとして使おうとすると何かと足らなかったんだと思う。
#で386BSDもRuiさんの描写にあるようにスタンドアローンでユーザランドまで入れようとするとフロッピーディスクを何十枚も使わないとならないのだけれど、最小限のセットでブートしたら後はネットワークインストール、というオプションがあった。
#ところが当時配布されてたインストールイメージでは、たまたま使ってたPCのネットワークカードのドライバにバグがあってネットワークが使えない。色々あがいていたら、シリアルポートを使ったSLIPのドライバがあることに気づいた。
#そこでRS232Cの長いケーブルを引っ張り出して研究室のワークステーションのシリアルポートと接続し、その上でIPコネクションを張って残りのパッケージをダウンロードしたんだけど、なぜかボーレートが2400bpsだか以上にできなくて、結局ダウンロードだけで丸2日くらいかかった覚えがある。
#なんとなく、Ruiさんが最初に使ったCompaqのノート、俺が最初にLinuxを入れたのと同じ機種のような気がする。Compaq Conturaってやつ。4MB+80MBってスペックも、確かそんな感じだった気がするし。ちなみにインストールメディアは、おごちゃんがざべ誌の個人広告欄でフロッピー回覧を募集していたのに応募して、手に入れたFDで、Slackware+JEだった。
#1992〜93年くらいの話。
#その後ドライバのソースを覗いてバグを直してやっとEthernetを使えるようにした。確か、なんかデバッグスタブが残ってて変なことになっていただけだったような。
#BSDかLinuxか論争懐かしいっすね。
#その頃のLinuxってコマンドはsysV系ともBSD系とも言えない感じで、システムコールも色々違ってて互換性に苦労したような気がする。
#でもその1~2年後にはノートPCでLinux使ってたなあ。確か東芝のDynabookで、CPUが486、メモリ増設して24Mか32Mだかそんなもんだった気がする。そんでもX11が走ったのは感動した。
#そこいらへんにいろいろめげて、95年くらいにFreeBSDに移った気がする。98年くらいまでFreeBSD使ってたけど、PCカード周りのごたごたにげんなりしてDebianに戻り、しばらくしてNetBSDに移り、と結局どっちつかずで現在に至る。システムコールの互換性もそうだけど、初期のLinuxのマニュアルの嘘の多さには心底げんなりした。記述が足りないならまだしも、嘘書いて誰も直してないんだー、と。
#それが今や、Linuxがメインストリームになっちゃったんだから、驚くほかない。
#DynabookはFreeBSDで使ってましたね。XFree86も動いたけど、Accelarated Xって商用版のX11入れると、xengineが10倍くらいになってびっくりしたっけ。
#Ruiさんって俺より10歳くらい若いはずだけど、実機の最初の部分はほぼほぼ同じ時期ってのが、ちょうどそういう時代だったんだなぁ、という感じ。
#Compaq Aeroというやつだったと思うんですよね。486SX 25MHz
#たしかにConturaというのも同じ時期にあったような気がしますが
#と思ったけどいま調べてみるとCompaq Contura Aeroという機種ぽい
#ずばりでした
#あ、Aeroってことは一世代後のやつだ
#俺のContureは、386SL 25MHzとかそんなのだった。
#Unix入門は1995年ごろ、SGI Indigo2/IRIX 5.0/Indigo Magicだった。LinuxはLinux Magazine付録のCR-ROMから会社のサーバーにインストール。Slackwareだったような。
#AT互換機買って 386BSD いれたのは、自宅でも emacs を使う(デバッグする)ためだった覚えが。
#> Gaucheというのも偶然だが学ぶ対象としては大変よかった。その後いろいろなオープンソースプロジェクトのソースコードを読むことになったが、Gaucheほどに細部に至るまでキレイに書けているものはほとんどなかったように思う。これはひとえに川合史郎さんのスキルの高さによるものだと思うけど、その意味でいきなりよいお手本に当たれたのは運が良かった。
#Rui Ueyamaはワシが育てた by Shiro Kawai
#実際Gaucheのコード読んでるとやたらと勉強になるので
#「Gaucheソースコード完全解説」的な書籍の登場が待たれる
#待たれる。
#なんつって、個人的には解説が欲しいと思ったことはあまりないんですよね。意図が汲み取りやすいコードだし、コメントもドキュメントも簡にして要を得ているので。ちゃんと読めばわかる。
#git resetに--softを付け忘れて1日分の作業を吹き飛ばすなどした (>_<)
#Time Machine様に救われるなどした。冷や汗かくわ ^^;
#あれ、git resetに何もつけなかったらworking treeは残ってませんか。
#srfi-69 (Basic Hash Tables) は組み込みのAPIを変えるか別モジュールにするか判断を伸ばしてて未サポートだったような気がする。そろそろやっとくか。
#多分comparatorベースのやつがr7rs largeで出てくるだろうから、srfi-69は別モジュールがいいかな。
#GaucheのHEADをコンパイルするとドキュメント生成箇所でエラーが出ます。
#make[1]: Entering directory '/home/t.kato/work/gauche-head/doc'
if test Xmakeinfo != X -a Xgzip != X; then \
env LANG=C makeinfo --no-warn gauche-refe.texi; \
rm -rf gauche-refe.info*.gz; \
gzip gauche-refe.info gauche-refe.info-[0-9]*; \
fi
gauche-refe.texi:558: @xref reference to nonexistent node `Fullset of comparator API'
gzip: gauche-refe.info: No such file or directory
gzip: gauche-refe.info-[0-9]*: No such file or directory
Makefile:110: recipe for target 'gauche-refe.info.gz' failed
#あれ。
#もうそこへの参照って残ってないはずだけどな。makeの依存関係がおかしい? cleanしてやってみてください。
#srfi-69をサポートするにはデフォルトでequal hashtableになってるほうがいいのか。
#git pullした後に、make maintainer-clean; ./DIST genしたんですけど。
#あれぇ? ああ、srfi.scmに残ってた! しまった。
#pushしました。
#無事コンパイルできました。
#おっと、組み込みのmake-hash-tableの引数省略時がeq?ってのはもうオフィシャルだったな。ってことはおいそれと変えられないか。やっぱり別モジュールとして提供かな。
#R[57]RS的にはハッシュテーブルは存在しないので別モジュールでいいのではないでしょうか?R[57]RS+SRFIで書く人と素のGaucheを使う人はあんまり被らない気がしないでもないです。
#r7rs largeのhashtableが入ったらそれにできるだけ合わせる方針ではあるんですが。
#(しばらく先になるような予感は脇に置いて)SRFIの方も別モジュールでサポートしてあるとポータブルなものを書く際の選択肢の幅が広がるのがうれしいです。(largeのhashtableは多分comparatorもサポートしないといけないから、処理系の追従速度が遅くなりそうというのもあったり。)