>ここではKuinに関するバグや仕様についてまとめています。 ---- #contents(fromhere=true) ---- #aname(FIXME) // @wikiの部分編集(#areaedit())はスパム編集の入り口になりやすいイメージがあるので、使わないことにしました。 // #areaedit() // ======================================================================== *FIXME >Kuinの開発者が「修正すべきタスクのまとめ」を欲しているため、Wikiにリストアップしています。 >加筆・修正にご協力をお願い致します。特にルールはありません。じゃんじゃん書き込みましょう。 |''記入日''|''不具合の概要''|''詳細''|''修正見込等''|h |2013/09/29|avast!|[[詳細>https://twitter.com/b2/status/383945154119213056]]|| |2013/10/07|Draw@CFontクラスのMakeTexメソッド、等幅フォントを指定しても等幅にならない|[[詳細>https://twitter.com/tatt61880/status/385540484459802624]]|| |2013/11/16|ReadMe.pdf、35ページ目。stach (stackのtypo)||| |2013/11/17|ReadMe.pdf、25ページ目。list, stack, queueの定義で、[]は不要(そのままだとコンパイルエラーになる)。&br()var a: []list<int> :: #list<int>||| |2013/11/21|breakでブロック名が指定されていない場合のコンパイルエラーメッセージが E1000。わかりやすくしてほしい。(要望)||| |2013/12/08|4x4より小さなkntexファイル(例えば2x2)を読み込むと関数固有のエラー Code = 1002 (幅も高さもどちらも4以上必要)||仕様。Readme.pdfに書く予定| |2013/12/17|クラスメンバにKuin@CObjがあるとE9999||| |2014/01/04|ドライバ依存でRectに角が生えることがある。|rさん|| ||||| ↑ここに追加してください。 ※このページはあくまで覚え書きです。本当に不具合か、詳細情報が十分かどうかを、Kuinの作者([[b2>https://twitter.com/b2]])に問い合わせるのが望ましいです。 *要望 |''記入日''|''要望の概要''|''詳細''|''実装見込等''|h |2013/11/03|ラベル・ボタン・テキストボックス・チェックボックス・ダイアログボックスの実装||| |2013/11/03|コマンドライン引数の導入。ツールを作る際にないと不便です。|Kuin@Argv|| |2013/11/03|dict型|未実装?|| |2013/11/03|Input.knの改善|タイピングゲームが作れるレベルに。|| |2013/10/29|無駄にキャストした場合のエラーメッセージをわかりやすくしてほしい。|[[詳細>https://twitter.com/tatt61880/status/394005095160877056]]|| |2013/11/02|「Error: E2007 型が一致しません。 キャストなどを用いて正しい型に変換してください。」をよりわかりやすくしてほしい。|[[詳細>https://dl.dropboxusercontent.com/u/9975638/kuin/suggestions/20131102/20131102.txt]]|| ||||| ↑ここに追加してください。 ※このページはあくまで覚え書きです。要望の詳細が十分Kuinの作者([[b2>https://twitter.com/b2]])に伝わるか、確認するのがのが望ましいです。 >【便利な検索機能】 >Twitter検索: [[修正 from:b2>https://twitter.com/search?q=%E4%BF%AE%E6%AD%A3%20from%3Ab2&src=typd&f=realtime]] >Twitter検索: [[修正 from:tes_so>https://twitter.com/search?q=%E4%BF%AE%E6%AD%A3%20from%3Ates_so&src=typd&f=realtime]] >Twitter検索: [[調査 from:b2>https://twitter.com/search?q=%E8%AA%BF%E6%9F%BB%20from%3Ab2&src=typd&f=realtime]] >Twitter検索: [[調査 from:tes_so>https://twitter.com/search?q=%E8%AA%BF%E6%9F%BB%20from%3Ates_so&src=typd&f=realtime]] // #areaedit(end) // ======================================================================== ---- *Ver.0.04での更新情報(0.04同梱のReadme.txtより抜粋) -30fpsを60fpsに変更 -明るい部分が発光する効果(キラキラエフェクト)の廃止 -例外コードの全面的変更(より扱いやすい10進数の数値へ) -list型、stack型、queue型のサポートおよび、それらをforeachで回せるように -クラスの継承周りとアクセス指定子の完全サポート -ソースレベルのアクセス指定子のサポート -スーパークラスに.ToBins()、.FromBins()メソッドが追加されているが、まだ使用してはならない -配列に.Sub()メソッドが追加されているが、まだ使用してはならない -フィルタ機能の追加。Draw@SetFilter()関数で、画面全体をグレースケールやセピア調にできる -描画処理を10倍程度高速化。 -sbyte型の廃止。byte型に符号付き算術シフト.Sar()メソッドの追加 -throw 2000, "Hoge" のように、文字列が投げられる機能の完全サポート --(文字列を含む例外をcatchしなかった場合にメモリリーク警告が出ますが、これに関してはちゃんと解放されていますので安心してください) -その他、多数の細かなバグ修正 ---- 例外コード一覧 -0000~0499 ユーザが自由に使えるメッセージ領域 -0500~0599 Kuin側が使用するメッセージ領域 --0500 アプリケーションの終了要求(ウインドウを閉じると発生) --1000~1999 関数ごとに自由に使えるメッセージ領域この領域では、例外コードとその意味が1対1に対応していない。関数ごとに独立して設定できる。 以下に、標準ライブラリ関数での例外コード一覧 -Snd@Load --1000 サポートしていない形式のファイルをロードした --1001 サウンドのハードウェアエラー -CSnd.Play --1000 不正な引数パラメータ -SaveData@Load --1000 セーブデータが破損している(プレイヤーによる改竄の防止) -int.ToStrF, float.ToStrF --1000 不正なフォーマット指定 --1001 長すぎるフォーマット指定 -Kuin@Hash --1000 長すぎるデータ列 -CStream.Seek --1000 不正なOrigin指定、もしくはファイルの範囲を超えた位置にシークした -CStream.Read*** --1000 読み込めるデータが残っていない(ファイル終端にたどりついた) --1001 読み込んだデータがintやfloatなど得ようとした数値の型の範囲を超えている -Draw@LoadTex --1000 サポートしていない形式のファイルをロードした --1001 テクスチャサイズが、一辺2^nピクセルになっていない --1002 グラフィックスのハードウェアエラー -Draw@LoadFont --1000 サポートしていない形式のファイルをロードした -CFont.MakeTex --1000 テクスチャサイズが大きくなりすぎた --1001 グラフィックスのハードウェアエラー -Draw@LoadObj --1000 サポートしていない形式のファイルをロードした --1001 グラフィックスのハードウェアエラー -CObj.Draw --1000 不正な引数パラメータ -Draw@SetCamera --1000 不正な引数パラメータ(長さゼロのベクトルを指定した) -Draw@SetLight --1000 不正な引数パラメータ -2000~2999 ユーザが自由に使える例外領域 -3000~3999 Kuin側が使用する例外領域 --3000 assert文の条件がfalseになった --3001 GBerry.knが見つからない(この例外を検知しても、GBerryがないと例外情報を出力する術がないことに注意。そのうち対策する) --3002 配列の有効範囲外を参照した --3003 int型の数値がオーバーフローした(Kuinのint型はオーバーフローしないように扱うべき。とはいえ、2^63程度の膨大な数が扱えるので、そこまで気にしなくても良い) --3004 クラスのインスタンスを、変換できないクラスにキャストしようとした(親→子キャストで注意) --3005 ファイルが開けなかった(例外に埋め込まれた文字列に、ファイルパスが格納されている) --3006 GBerryの初期化エラー(例外に埋め込まれた文字列に、原因の詳細が格納されている) --3007 GBerryが扱うクラス(Draw@CTexなど)のコアなメソッド(.ToStrなど)を直接呼び出そうとした --3008 GBerryが扱うクラス(Draw@CTexなど)のインスタンスをユーザ側で作ろうとした --3009 オーバーライドされていない、.ToStr()、.Cmp()などのメソッドが呼び出された(クラス同士を比較するときは、Kuin側によって.Cmp()が呼ばれるが、そのときユーザ側でその中身を実装していないと、この例外が生じる) --9999 予期せぬ例外(Kuinコンパイラのバグなので、作者に報告すべき) -16#80000000~ CPUが発生させる例外領域(以下はCPUの仕様を読んで書いたので、実際に検証していない。おそらくこういう例外となっている、程度に認識してほしい。英語表記のものは、よく解らなかったもの) --16#80000002 Datatype misalignment --16#80000003 ブレークポイント(デバッガアプリから操作しないと通常発生しない) --16#c0000005 不正なメモリアクセス(nullインスタンスのメソッドを参照したときなどに発生) --16#c0000006 In Page Error --16#c0000008 Invalid Handle --16#c000001d Illegal Instruction --16#c0000025 Noncontinuable exception --16#c0000026 Invalid Disposition --16#c000008c Array Bounds Exceeded --16#c000008d Float denormal operand --16#c000008e 浮動小数点ゼロ除算(float型で0.0除算したときに発生、のように見えるが、Kuinでは無限大infの値になるので、実際には発生しないと思われる) --16#c000008f Float inexact result(このあたりに、0.0 / 0.0 のような NaN例外があるはず) --16#c0000090 Float invalid operation --16#c0000091 浮動小数点オーバーフロー(実際に発生するのかは不明) --16#c0000092 Float stack check --16#c0000093 浮動小数点アンダーフロー(実際に発生するのかは不明。負の大きな数があふれることを指すのではなく、絶対値の小さすぎる数が0.0に丸め込まれることを指す) --16#c0000094 整数ゼロ除算(int型で0除算したときに発生) --16#c0000095 整数オーバーフロー(Kuinではこの例外ではなく、3003コードが返るので、この例外は発生しないと思われる) --16#c0000096 Priv instruction --16#c00000fd スタックオーバーフロー(無限に再帰呼び出しをすると発生) ----