Turing Complete FMはRui Ueyamaによるプログラミングについてのポッドキャストです。
28. プログラミング言語のブートストラッピング問題、コードとの互換性を保ちつつ言語を変更していく話
ゲスト: 川合史朗 (@anohana)
Gauche Schemeの作者の川合史朗さんと言語処理系についての話をしました。GaucheのCコードとの互換性を保ちつつ無限リストを導入するために採用したトリックや、Gauche自身で書かれているGaucheを過去のバージョンでビルドするために気をつけていることなどの話をしました。

速度 x1.0 (遅く / 速く) -15秒 / -5秒 / +5秒 / +15秒
この時点にリンク
0:00イントロ
2:28電卓そろばん対決の動画存在しました
3:33Gaucheとそのほかのプログラムのリリースプロセス
4:51コンパイラのブートストラッピング問題とバージョン間の互換性
18:08GCCやClangにおけるブートストラッピング問題
19:41Goでは言語仕様がフリーズされていてGo 1の間は変更されない
20:35Webブラウザの6週間のリリースサイクルは短いのか長いのか
21:32FirefoxもClangとlldにスイッチ
22:58Gaucheがstdioを使わずに独自bufferred IOを実装している理由
26:41FILE構造体の内部にアクセスする(移植性のない)実装
27:13プログラム終了時にバッファをフラッシュしないといけない
28:24stdioではstdinを読もうとしたらstdoutがフラッシュされる
31:05遅延シーケンス(無限リスト)
34:52Cレベルでの互換性を保ったままconsセルを遅延シーケンスにするトリック
37:29遅延シーケンスをどこで使っているのか
38:45遅延シーケンスのパフォーマンス最適化
42:07Clojure言語のTransducerという仕組み
46:06カリー化とは何か
48:09キーワードとシンボル
54:27キーワードをシンボルのサブクラスにして発生した問題
56:08Scheme言語仕様にはキーワードはない(シンボルで十分?)
58:27現在仕様策定中のScheme言語仕様R7RS
1:00:12R6RSの言語仕様は振り返ってみて良いものといえるのだろうか?
1:03:55標準化委員会が作る言語仕様と個人の作品としての言語仕様
1:05:09Goの言語仕様の変更のプロポーザル
1:06:51Schemeでは言語仕様を実験的に拡張して良さそうなら標準化するというのがよくある流れ
1:09:19言語仕様策定の投票権は全員平等なのが本当によいのか
1:10:02Schemeは誰でも参加できるところがよいところ
1:11:14C++のトライグラフの廃止に最後まで反対していたのはIBMとカナダ
1:13:22エンディング