NOEMBLEM/エンブレムが設定されていません。

メールの詳細(メール表示)

件名:

[ANN] RubyCocoa 0.13.0 リリース

差出人: "kimura wataru"さん <kimuraw…>
送信日時 2007/11/25 20:18
ML.NO [rubycocoa:0456]
本文:

木村わ@The RubyCocoa Teamです。

RubyCocoaの新しいバージョン0.13.0をリリースしました。

http://rubycocoa.sf.net
http://sourceforge.net/project/showfiles.php?group_id=44114

から入手することができます。
* MacOS X 10.5 (Leopard)用のバイナリパッケージ
* MacOS X 10.4 (Tiger)用のバイナリパッケージ
* ソースコードのtarball
が用意されています。

Leopardシステムに用意されていRubyCocoa.frameworkは/System/Libraryに
ありますが、バイナリパッケージは/Libraryにインストールするので、元から
あるRubyCocoaは上書きされません。

オリジナル英語リリーアナウンスについては以下を参照してください
http://lists.sourceforge.jp/mailman/archives/rubycocoa-devel/2007-November/001230.html

(新しい機能)
- NSArrayやNSDictionaryRubyのArrayやHashのように扱うことができます。
NSStringも#=~および#matchを除いてRubyのStringと同じように扱うことが
できます。これは以前のmethod_missingを利用したものよりも高速で信頼性
の高いものになっています。

- NSRect, NSPoint, NSSizeおよびNSRangeにユーティリティメソッドが追加
されました。

- NSString, NSNumber, NSArray, NSDictionary, NSCFBooleanおよびNSDateの
inspectメソッドの出力をわかりやすくしました。また、NSString, NSArray,
NSDictionaryはpretty print(ppライブラリ)をサポートします。

- #to_nsメソッドをArray, Hash, String, Numeric, TrueClass, FalseClass,
Timeクラスに追加しました。Cocoaの類似オブジェクトに変換できます。

- ObjcPtr#cast_as(encoding)メソッドを追加しました。void*からのオブジェクト
の取り出しに利用できます。

- Leopard専用のサンプルを追加しました。

バグ修正など)

- RubyCocoaの初期化およびBridgeSupportのメモリリークを修正しました。

- ruby obj -> ocid および ruby obj -> SEL の変換処理のパフォーマンス
向上しました。

- Objective-Cオブジェクトメソッドポインタを引数として渡したあと、
そのポインタメソッド中で操作されなかったときに、Rubyオブジェクト
に変換しようとするとクラッシュしてしまう問題を修正しました。

- バイナリインストーラで再インストールすると「もう一度インストールして
ください」となってしまう問題を修正しました。

- 1つより多くのパラメータを受け取るsetメソッドは変換しないようにしました。

- slaveオブジェクトを必要に応じて生成するようにしました。これは、10.5で
CoreDataやbindingsを利用したときに発生していた問題を修正するためです。

- スレッドの復帰時にautorelease poolのコンテキストリセットするように
しました。

- Rubyスレッド上でメモリ確保されたオブジェクトが、スレッド終了後も
キャッシュに残ってしまうバグを修正しました。この問題はキャッシュ
衝突を引き起こしていました。

- CoreFoundationベースオブジェクトキャッシュしないようにしました。

- NSObjectから派生したRubyクラスオブジェクトメモリ確保時の循環参照
修正しました。Objective-CとRuby Proxyの両方でリークが発生していました。

- [copyWithZone:]の呼び出しをフックしてslaveオブジェクトリセットするように
しました。それにより、Objective-Cオブジェクトは異なるslaveを持つことが
できるようになりました。この変更は複数のObjective-Cオブジェクトで共有されて
いるslaveがreleaseされるとクラッシュしてしまう問題を修正しています。

- #objc_sendは渡されたセレクタアンダースコア"_"を変換しません。これにより
アンダースコアを含むObjective-Cメソッドを呼び出すことができます。たとえば
[__rbobj__]というようなメソッドを呼び出すことができます。

- OvMixでのretainサイクルを改善しました。RubyからOvMixオブジェクトが生成されると
そのRuby proxyはretainされません。retain/releaseメッセージを監視し、適切に
proxyをretain/releaseします。

- 以前の__slave_nsobj__インスタンス変数フックを削除しました。すべての
pure RubyオブジェクトはautoreleasされたRBObjectでラップされるように
なりました。

- Objective-Cの引数がObjective-CからRubyクロージャに渡されたときに
retainするようにしました。テストケースも追加しました。

- (10.5のみ)スレッド間のメッセージディスパッチを改善しました。以前の
実装では、RubyCocoaはメインスレッド上で実行されていることを想定して
いましたが、これは常にそうとは限りません。

- newメソッドの利用できるObjective-Cクラスではクラス.newとしてインスタンス
生成することができるようになりました。(クラス.alloc.initと同じ)

- 10.5用のスレッド対応のコードを追加しました

- 10.5では'--gen-bridge-support=no'がデフォルトになりました

- 新しいconfigオプション--sdkrootを追加しました。10.5で--macosx-deployment-target=10.4
としたときのエラーが起きないようになりました。

- 10.5でのString#to_nsstringを修正しました

- String#nsenconding, to_nsstring, to_nsmutablestringはdepricatedです。
開発者は#to_nsを利用するようにしてください

- Ruby文字列でutf-8として許容されないシーケンスを含むものにto_nsを
呼び出すとbus errorになってしまう問題を修正しました。

- slave proxyの生成時の無限ループを回避するため、

- 10.5でsample/Scripts/darkroom.rbがSEGVする問題を修正しました。

- CoreData.define_wrapper_for_entity()を追加しました。
CoreData.define_wrapper()の機能の一部で、普段呼び出すことはありません。

- (10.5のみ)libSystem.bridgesupportをロードするようにしました

- rb_nibtool
- Rubyスクリプトのみで定義されたアクションがありアウトレット
ないときにクラッシュする問題を修正しました。
- アクションアウトレットもないクラスについてnil#eachが呼び出されて
しまうバグを修正しました。
- スーパークラスがないためにInterface Builder上に新規クラスが表示されない
ことが発生する問題を修正しました。
- 存在するクラスが見つけられない問題を修正しました。

- standaloneify
- 環境変数ENV['RUBYCOCOA_STANDALONEIFYING?']をセットするようにしました。
standaloneify中にアプリケーションコードが実行されてしまうのを防ぎます。
(すみません、ここ意味がよくわからないです:木村わ)

- gen_bridge_doc
- 10.5のドキュメントに対応しました
- </i>タグが _ に変更されないバグを修正しました
- BOOLを返すメソッドドキュメントを追加するようにしました。たとえば
isRunningといメソッドがあればrunning?といエントリも生成されます。

--
kimura wataru

添付:
【PR】無料ホームページブログレシピふくびきメーリス

更新順メールリスト