changes
http://gcc.gnu.org/gcc-4.3/changes.html
相変わらずスルーっぷりがすごいので、何が変わったのか私の把握している範囲でまとめます。
- Ada2005関連
- Ada.Calendar以下のArithmeticだのFormattingだのがサポートされた。
- ゴルフに役に立つのは正直これぐらいか。閏秒問題出したらAdaが1位取れるかもしれない。(何が飛び出てくるかわからないCommon Lispあたりが伏兵にならなければ……ですが)
- build-in-placeがほとんど完璧に使えるようになった。
- 実はnew T'(Func)のように使う時はカスタムのStorage_Poolには未対応だったりする。まあカスタムアロケータ使うような用途で仮想コンストラクタ万歳なんてやるのはあまり考えられないので関係ないか。
- not nullの対応が進んだっぽい。
- ただし以前コンパイルできていた正しいコードが弾かれるケースも。
- Ada.Calendar以下のArithmeticだのFormattingだのがサポートされた。
- GNAT独自
- 文字コード変換関数(GNAT.Encode_String, Decode_String, etc)が用意された。
- 中途半端にUTF-8のファイル名が使えるようになった。
- 私の改造gccでは入出力系をそっくり挿げ替えているので関係ない話です。
- 他にもGNAT以下にいくつかライブラリが増えてますがあまり要るものはないです。
- pragmaがたくさん増えてます。
- Check_Name
- Compile_Time_Error ……genericの引数チェックできるので地味に便利
- Fast_Math
- Favor_Top_Level ……気になるがよくわからない
- Implemented_By_Entry
- Implicit_Packing
- Main
- No_Body ……ソース書き換え中で.adb放置して.adsだけ弄ってる時など地味に便利
- Shared
- Universal_Aliasing
- Unmodofied ……ドキュメントにはまだない
- Unreferenced_Objects
- Wide_Character_Encoding ……前からあったけどドキュメント化された
- 減る側としては、Thread_Bodyが廃止になったっぽい
- 他にもあるような気がする。抜けがあったらすみません。
- attributeも増えてます。
- 'Enabled
- 'Pool_Address
- 'Stub_Type
- 未使用の引数に警告が出るようになったのでpragma Unreferenced, pragma Unmodofied大活躍。
- 正直、仮想関数の引数は警告出さなくてもいいだろ。
- 全ツールで--versionが使えるようになったような気がしたが気のせいらしい。
4.4ですが、http://www.adacore.com/category/developers-center/development-log/を読む限り、DBCとか'OldとかEiffelっぽい機能が追加されるかもしれない。実にどうでもいいです。
そんなことよりString'Writeが効率的になるらしいので、そっちが嬉しいです。