wiki:第3回AB開発者ミーティング

Version 3 (modified by llby, 18 years ago) ( diff )

--

第3回AB開発者ミーティング

TOC(inline)

6月1日 CP4公開

  • 開発Wikiのリファレンスをしっかり書こう。
  • 誰かチュートリアルなどを書きませんか。
  • IOまわりに修正が必要 >EnumBaseが文法エラーになる
  • 動的型情報、名前空間までを対応する。
  • ライブラリは現状のまま

名前空間

  • クラス・関数はできている[220]
  • 名前空間の指定を省略するUsingの導入。
  • 上に関連して、現状は全ファイルをインクルードしてコンパイルしているが、ファイル末尾に_Unusingをコンパイラが挿入することで対処。
  • Stringは、コンパイラがキーワードとして認識することで、System.StringをUsingなしで使用可能にするのはどうか。
  • CRTも名前空間に入れる。
  • OpenGLも名前空間待ち

インタフェース

  • 参照型オブジェクトのポインタを取り出す操作をVarPtrからObjPtrに分離したらどうか。
  • 動的型情報により、インタフェースを多重継承したクラスで目的のインタフェースへアップキャストできるようになる。

フォーム

  • .NETに完全に沿うのは無理だが、そこまでは求められない。(ごめんなさい、私が発言してばかりで記録を殆ど取っていません)

エディタ

  • 現在AB4から進捗がない。
  • フォーム関連のライブラリが進まないとどうにもできない。
  • 全面的に作り直すべきかもしれない。
  • Eclipseプラグイン化も一案。
  • 補完等を強化したい。(RADツールも)

キャスト

  • まもなく型情報を見て変換の可否を調べるダイナミックキャストが搭載される。
  • Operator() As Tを暗黙的型変換、Operator As() As Tを明示的型変換とする(現状は共に暗黙的型変換)。
  • 他の型から自クラスへの変換を静的メソッドのOperator (As)で定義できるようにする。
  • Datetime から文字列への変換は、ToString を使う

ガベージコレクタ

  • 実行時型情報の採用で、随分速くなった。
  • 今後、世代別GCを実装する。
  • GC処理でポインタの検索に2分探索を採用したら高速化するのではないだろうか。
  • GCの発動を制御したい。

ArrayListについて

  • 現状のArrayListがObjectを対象にしており、格納した型と異なる型で取り出すなどといったことができてしまう(ダイナミックキャストで穏便なエラーにできるが)。
  • 組込型を格納するためのラッパーを作る。構造体のラッパーはコンパイラと連携してやる。

ジェネリック

  • AB 5.1で導入したい。
  • 主目的は、コレクション。
  • Generic内でGeneric型引数をTypeDefの対象にできるか?(クラス内のTypedef?)
  • #98 EnumBaseが文法エラーになる」もEnumBaseをジェネリックにして対処できる。

テストケース

  • まずは手動で行おう。
  • SVNにディレクトリ・ABプロジェクトを追加
  • ABプロジェクトは、必要に応じてテストケースを追加してゆく。
  • コミット前には、なるべくテストをパスすることを確認するように。

その他

  • Stringは、参照型で共有される性質上、不変が望ましい。AB4までとの互換性を失うのは仕方がない。(配列の添え字指定での代入が出来ない)
  • 上に関連して、変更可能なStringBuilderを導入する。
  • Operator =を比較演算子へ。
  • Inkey$のカーソルキーコードをN88-Basicに合わせる。
  • CIntの端数処理を修正したい。この際端数処理の組込関数を整備したい。
  • リソース管理Usingは、Using - Entry - End Usingが一番ましか。はっきりとした結論は出ず。
  • コンストラクタ初期化子の簡略表記は、採用しない。
  • Cのclock関数相当が欲しい。⇒crt.sbpで宣言。
  • Imp, Eqv演算子が欲しい。⇒将来的に検討。
  • Debug.WriteLine( dateTime.ToString().GetType().name) みたいな事が出来る
  • コンパイラのコマンドライン化をします。
Note: See TracWiki for help on using the wiki.