[#38121] regex performace tuning and ABI compatibility — Yukihiro Matsumoto <matz@...>

まつもと ゆきひろです

13 messages 2009/03/03

[#38191] big time — Tanaka Akira <akr@...>

思い立って、time_t を越える範囲を Time で扱うことに挑戦して

31 messages 2009/03/27
[#38194] Re: big time — Tadayoshi Funaba <tadf@...> 2009/03/28

> 思い立って、time_t を越える範囲を Time で扱うことに挑戦して

[#38196] Re: big time — Tanaka Akira <akr@...> 2009/03/28

In article <20090328.134401.209982445.tadf@dotrb.org>,

[#38202] Re: big time — Urabe Shyouhei <shyouhei@...> 2009/03/29

卜部です。

[#38205] Re: big time — Tanaka Akira <akr@...> 2009/03/29

In article <49CF6641.7010204@ruby-lang.org>,

[#38218] rinda/eval.rb — Masatoshi SEKI <m_seki@...>

咳といいます。

20 messages 2009/03/30
[#38219] Re: rinda/eval.rb — Tanaka Akira <akr@...> 2009/03/31

In article <F01982B3-FBB5-497F-BA36-38FA250E7D69@mva.biglobe.ne.jp>,

[#38223] Re: rinda/eval.rb — Masatoshi SEKI <m_seki@...> 2009/03/31

咳といいます。

[#38229] Re: rinda/eval.rb — "U.Nakamura" <usa@...> 2009/04/01

こんにちは、なかむら(う)です。

[#38233] Re: rinda/eval.rb — Tanaka Akira <akr@...> 2009/04/01

In article <20090401095853.B00A.C613B076@garbagecollect.jp>,

[#38222] *BSD で fork できない理由 — "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>

きしもとです

12 messages 2009/03/31

[ruby-dev:38162] Re: Request for plans to break compatibility

From: Tadashi Saito <shiba@...2.accsnet.ne.jp>
Date: 2009-03-11 16:30:52 UTC
List: ruby-dev #38162
斎藤と申します。
サイレントマジョリティたる rb_num_coerce_* ユーザの一人です。

On Wed, 4 Mar 2009 10:08:37 +0900
Nobuyoshi Nakada <nobu@ruby-lang.org> wrote:

> r15437が問題になるのは、既存のインターフェースが1.8と変更になっ
> ているために、ソースレベルでの互換性をとるのが難しいからです。も
> しこれはそのままにするということであれば、インターフェースを確認
> するためのマクロを追加しようと思います。

このマクロというのは

#define RB_NUM_COERCE_FUNCS_NEED_3ARGS 1

みたいなものでしょうか?

もし1.9.2でAPIを変えるのであれば、拡張ライブラリ側で、extconf.tb中にtry_compile()として、
自前でAPIインターフェースのチェックを書くのは骨が折れるので、入れて頂けるととてもありがたい
です。これでまず、1.9.1 <=> 1.9.x間の拡張ライブラリの互換性の確保が将来、簡単になりますね。

また中田さんは「(r15437を)そのままにするということであれば」とおっしゃっていますが、
そのままに「しなくても」「1.8/1.9両ブランチに」ぜひ入れてもらいたいです。というのは、もう
1.8.xと1.9.1の間でrb_num_coerce_*のインターフェースが違うのはすでに確定している上、
1.8/1.9両対応の拡張ライブラリを作りたい身としては、どちらにせよtry_compile()が必要と
なるからです(もっと良い手段があったら教えてください)。

1.8から1.9過渡期の現在、両方に対応したライブラリを書きたいという要求は小さくないと思います。
また過渡期は、しばらく続くでしょう。

拡張ライブラリからAPIの違いを簡単にチェックできる手段を、1.9だけでなく1.8を含むすべての
ブランチに入れていただけるならば、1.9.1p0が古くなった時点で、拡張ライブラリを書く人間は
マクロのチェックだけで済むようになります。1.8から1.9.1への移行もやはり簡単になる、という
わけです。

いかがでしょうか。

On Wed, 4 Mar 2009 10:12:24 +0900
Yukihiro Matsumoto <matz@ruby-lang.org> wrote:

> |r15437が問題になるのは、既存のインターフェースが1.8と変更になっ
> |ているために、ソースレベルでの互換性をとるのが難しいからです。も
> |しこれはそのままにするということであれば、インターフェースを確認
> |するためのマクロを追加しようと思います。
> 
> とはいえ、1.9.1は出てしまっているので、どこかに非互換性が発
> 生するのは避けられませんね。

上述のとおり、もう1.8.xと1.9.1で非互換が発生しています。なので1.9.1と1.9.xで非互換が
発生しても、どっちみちチェックを行うので、あんまり関係というのが現役(?)拡張ライブラリ
作者の感覚です。
むしろその1.9.xの非互換が、1.8との互換性をとる方向の変更である (rb_num_coerce_* の
引数が二つになる) のならば、個人的には賛成です。

もともと「機能は増えないのに、引数として必要な情報だけ増える」という、うれしくない
方向のAPI変更でしたし。

--
斎藤ただし

In This Thread