reader のエラー処理をまともに

#vu8(...) の bytevector の外部表現を read したい。
read.cpp を見返したところエラー時は printf して終わりという手抜き実装であることが発覚。
エラーを正しく Scheme 側に伝えることができるようになってきたので正しく実装し直すことに。


read に失敗したときは &lexical を raise する。
このエラー通知の仕組み構築に半日かけて満足のいくものにした。#vu8(...) の read の実装自体はすぐ。


それにしても WRITING SOLID CODEは確実に僕の実装を助ける。
assert を含めたバグが起きたときにすぐ見つけられる仕組み作りと、そのような姿勢の大事さを痛感。