週刊mosh - exactness関連の修正 / 月刊R7RS / プログラミング言語の実装戦略

0.2.8の開発は進行中。
moshは日本語圏のほうがユーザが少ないので週刊moshも英語にしたほうが良いような気もしている。

exactness関連の修正(fixされたIssue)

Issue 217を修正したことで、 r6rs-test-suiteも通らなくなった。逆に言うとr6rs-test-suiteではIssue 217のような問題を検出出来なかったわけで、test-suiteを修正するのも考慮したほうがいいかもしれない。

月刊R7RS

INCLUDEの必要性はなかなか理解されづらい。

(module (hoge)
  (include "hoge.sls") ;; <= module levelのinclude
  (body
    (include "fuga.sls") ;; <= Top levelのinclude 
    (display "loaded")))

まず、Top levelのincludeとmodule levelのincludeは別物で、WG1はmodule levelのincludeを規定している。
R6RSや低レベルマクロを備えた他のSchemeではincludeをマクロを使って書けるので、loadさえあればほかはいらないという立場も有る。
nmoshはプログラムのコンパイルキャッシュを持っているので、includeをマクロで書く以外に専用のキャッシュシステムに認識されるincludeを持っている。

Per Bothner(Kawa)が、quasiquote中に循環参照を持った場合の問題を提起している。
コード中の循環参照をどうあつかうかは検討中で、現在投票項目になっている( http://trac.sacrideo.us/wg/ticket/155 )。

プログラミング言語の実装戦略(月刊R7RS)

John Cowanが、プログラミング言語の実装戦略を以下の3種類に分割している。

  • A) 複数の強力な実装と数少ない標準ライブラリ、豊富な3rd partyライブラリ。
  • B) ひとつの強力な実装と豊富な標準ライブラリ、委員会言語でないことが多い。
  • C) 複数の実装、数少ない標準ライブラリ、3rd partyライブラリは貧弱なことが多い。

この分類は絶妙なところで、例えば、JavaScriptをAに分類するには"ブラウザ上のJavaScript"という限定が多分必要で、純粋なECMAScriptはCに分類できるだろう。
R7RSはSchemeが分類Cに相当する言語であることに対処するうまい標準になることが期待されていて、多少複雑なモジュールシステムを標準で規定するなど方針のおおくはココに依存している。