週刊nmosh - 0.2.8進捗
いろいろと年を跨ぎそうになってきたけど。。作業量見積りのために目標設定等を具体化する作業。
リリースクライテリア
何をもってリリースとするのかは微妙なポイントだけど、以下を満たしたときにリリースにしましょうということで。ビルド関連は自動化したいので現在作業中。
- Tier1目標 (ダメだったらリリースしない)
- R6RS test suite 100% pass (psyntax-mosh/nmosh) on POSIX
- Windows配布での.chmドキュメント(日本語)
- Windows build (CMake, x64 / win32)
- Linux build (amd64 ubuntu 14.04 / CentOS 6 / CentOS 7)
- Cygwin build (Host BohemGC, Win32 / x64)
- FreeBSD build (ports, FreeBSD 10.0 amd64)
- Darwin build (OSX Yosemite amd64, homebrew)
- Autotools上のMinGW32ビルドの削除
- 旧 nmoshライブラリの削除
- 旧 yuniライブラリの削除
- 旧 nmosh Win32/POSIXサポートの削除
- 新 yuni/nmoshライブラリへの置き換え
- mini-gmpビルド
- 基本的なOSコールのyuniFFI化とWin32/POSIXサポートの書き直し
- プロファイラのWin32サポート
- Psyntax-mosh / nmoshビルド省略モード
- 以下のIssueのディスパッチ(可能なら修正):
- Issue 227: Hashtable does not store bytevector as its key
- Issue 229: get-bytevector-all does not work on pipes
- Issue 232: Textual port reads BOM when reuse a transcoder
- Issue 236: Passing a list to vector-length causes SEGV
- Issue 237: bytevector-s32-set! raises range error
- Issue 238: SRFI 41 library doesn't export required variable
- Issue 239: sys-get-bytevector causes SEGV
- Issue 242: Input/output port doesn't forward position after reading some of its content
- Issue 243: transcoded-port with (standard-output-port) doesn't print on stdout
- Tier2目標 (ダメだったらリリースノート)
- Tier3目標 (実装の仕切り直し、今回はテストしない)
- id:higeponと相談する:
- NaturalDocsからDITAベースドキュメントへの置き換え(これはDITA版を完全に書いてから)
- Win32版配布からライブラリソースの削除とランタイムライブラリの内蔵
- portの自動closeの削除
- Google code側のIssuesの運用
ひとまず、顧客が居るというかユースケースが有るものをTier1、やってみてはいるけど具体的なユースケースが今のところ無いのがTier2、今回は検証もしないTier3に分類。
R7RS testsはyuni側に投入するつもり(psyntax-moshでもライブラリフォーマット以外は互換のはずなので)。yuniライブラリの他Scheme処理系版はnmoshとは独立して配布する。0.2.8のタイミングではリリースしない。
リリースに必要なものでまだ無いもの(加速が必要なもの)は
- yuniFFIのためのCコードemit(本番実装)
- yuniFFIの差し替えに伴ない消滅するライブラリの削除
- ドキュメントワークフロー
重い...
これら以外に関しては手を止めてリリースを纏めることに集中した方が良さそう。2年分の年貢を収める作業でも有るので。