{-# title: Bunny 0.9.1 版にむけた要対応項目 #-} # Bunny 0.9.1 にむけた要対応項目 もともと、0.9.1 では [P] 項目のみ目指してたかな。これらすべて対処したら 0.9.2。 それぞれ、1月、2月にリリースしたい。 2末までの日数:10+31+28 = 69 なので、およそ3日に2件くらいのペースで進める必要あり。(別途バーンダウンチャート書くかな) - 2020-12-21: A: 0/9, P: 0/19, B: 0/10, C: 0/5, all: 0/43 - 2020-12-29: A: 0/9, P: 0/19, B: 1/10, C: 0/5: all: 1/43 - 2021-01-14: A: 0/9, P: 1/19, B: 1/10, C: 0/5: all: 2/43 - 2021-01-28: A: 0/9, P: 1/19, B: 2/10, C: 0/5: all: 3/43 めも: Version 2 では、[memoized_fib 10000](https://wiki.haskell.org/Memoization) を妥当な時間で動かすのを目標にしてみようかな。 ## [A] 未実装機能 - [A1] import 宣言未実装 - [A1-1] 外部ファイルを import できる - [A1-2] qualified (005) - [A1-3] 選択的 import / hiding - [A2] 選択的 export - [A3] 識別子に Unicode を使用できない(文字列リテラル、文字リテラルには使える) - [A4] フィールドラベル付きのデータ型に対応していない - [A5] 4要素以上のタプル未実装 - [A6] defaulting 未対応(不完全) - [A7] Derived Instance の実装 (036) - [A7-1] Derived Eq の実装 (036-1) - [A7-2] Derived Ord の実装 (036-2) - [A7-3] Derived Enum の実装 (036-3) - [A7-4] Derived Bounded の実装 (036-4) - [A7-5] Derived Show の実装 (036-5) - [A7-6] Derived Read の実装 (036-6) - [A8] Monomorphism restriction を実装する (096) - [A9] newtype 宣言をサポートする (113) ## [P] Prelude.hs の未対応部分 ### 未定義のクラス - 【済】[P1] RealFloat ### 未定義のインスタンス - 【済】[P2] Read [a] - [P3] Read Float - [P4] Read Double - [P5] Read (a, b), Read (a, b, c) ... ### 未定義の関数など - [P6] type FilePath - [P7] data IOError - [P8] ioError - [P9] userError - [P10] catch - 【済】[P11] putChar - 【済】[P12] putStr - [P13] getContents - [P14] interact - [P15] readFile - [P16] writeFile - [P17] appendFile - [P18] readIO - [P19] readLn ## [B] 不具合 - [B1] インスタンス宣言における型変数の出現順位に関する問題 (051) - [B2] Derived Show Instance の実装が不完全 (078) - [B3] "0 -> expr" のような alt が parse error になる (084) - [B4] 関数のリテラルパターンでエラー(Double の Defaulting 待ち)(087) - 【済】[B5] 3要素のタプルへのパターンマッチでエラー (112) - [B6] 識別子(関数・変数)の多重定義がエラーにならない (115) - [B7] Double の Defaulting がされない (117) - [B8] Kind Inference が不完全 (118) - 【済】[B9] Class 宣言を topological sort する (079, 082) - [B10] Prim が名前空間を汚している ## [C] 要確認 - [C1] f 0 = ... から f x | x == 0 = ... への変形について網羅性を確認する (086) - [C2] 式変形で生成する変数名がすべて fresh になっているか確認する (089) - [C3] qname 登録のタイミングについて確認、改善 (071, 115 とも関連) - [C4] Binding Group について再確認 (088) - [C5] ~pat (Irrefutable pattern かな)について調べる (107)