ruby-dev (Japanese) list archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-dev:47383] [ruby-trunk - Feature #8469][Open] ABI checker とか導入しませんか
@ 2013-06-01  5:43 kosaki (Motohiro KOSAKI)
  2013-06-04  5:00 ` [ruby-dev:47394] [ruby-trunk - Feature #8469] " usa (Usaku NAKAMURA)
  2013-07-08 21:42 ` [ruby-dev:47492] [ruby-trunk - Feature #8469][Closed] " kosaki (Motohiro KOSAKI)
  0 siblings, 2 replies; 21+ messages in thread
From: kosaki (Motohiro KOSAKI) @ 2013-06-01  5:43 UTC (permalink / raw
  To: ruby developers list


Issue #8469 has been reported by kosaki (Motohiro KOSAKI).

----------------------------------------
Feature #8469: ABI checker とか導入しませんか
https://bugs.ruby-lang.org/issues/8469

Author: kosaki (Motohiro KOSAKI)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 


最近 Vit が報告してきたように、193にもたまにABI非互換が入っているようです。
見たところ実害はなさそうなのですが、非互換が報告されてから実害の有無を検討するのは不毛なのでパッチリリース前に
機械的にチェックしたいですよね。ほとんどのケースは意図的な非互換だからOKという結論になるのだろうとは思いますが、
精神衛生上、枕を高くして寝れる度がちょっとだけ上がります。

で、ちょっと時間をとってみたところ、意外と簡単そう。

http://ispras.linuxbase.org/index.php/ABI_compliance_checker にある、ABI checkerと
https://github.com/kosaki/ruby/commit/e27c2e5f1e3c7a6fc2fe8b997e95a1e52f0beed3 のパッチをダウンロードして

./ruby ../tool/abi-checker.rb ~/local/ruby-193p0 ~/local/ruby-193

とすると、スクリーンショットのような結果が得られます。
193p0とくらべて最新の193ブランチは

rb_class_init_copy ( VALUE p1, VALUE p2 )
rb_path_end ( char const* p1 )
rb_path_last_separator ( char const* p1 )
rb_path_next ( char const* p1 )
rb_path_skip_prefix ( char const* p1 )
ruby_find_basename ( char const* name, long* baselen, long* alllen )
ruby_find_extname ( char const* name, long* len )

の7つのシンボルが消えてしまっているわけですね。
基本的に現在パッチリリースをしているのって世の中に三人しかいないので、うささん、ながちかさん、うらべさんの意見を聞きたい
ところですが、どうでしょうか。




-- 
http://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47394] [ruby-trunk - Feature #8469] ABI checker とか導入しませんか
  2013-06-01  5:43 [ruby-dev:47383] [ruby-trunk - Feature #8469][Open] ABI checker とか導入しませんか kosaki (Motohiro KOSAKI)
@ 2013-06-04  5:00 ` usa (Usaku NAKAMURA)
  2013-06-04  5:23   ` [ruby-dev:47395] " KOSAKI Motohiro
  2013-07-08 21:42 ` [ruby-dev:47492] [ruby-trunk - Feature #8469][Closed] " kosaki (Motohiro KOSAKI)
  1 sibling, 1 reply; 21+ messages in thread
From: usa (Usaku NAKAMURA) @ 2013-06-04  5:00 UTC (permalink / raw
  To: ruby developers list


Issue #8469 has been updated by usa (Usaku NAKAMURA).


CIに組み込んでもらえるとちょー助かる感じですぅ
----------------------------------------
Feature #8469: ABI checker とか導入しませんか
https://bugs.ruby-lang.org/issues/8469#change-39683

Author: kosaki (Motohiro KOSAKI)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 


最近 Vit が報告してきたように、193にもたまにABI非互換が入っているようです。
見たところ実害はなさそうなのですが、非互換が報告されてから実害の有無を検討するのは不毛なのでパッチリリース前に
機械的にチェックしたいですよね。ほとんどのケースは意図的な非互換だからOKという結論になるのだろうとは思いますが、
精神衛生上、枕を高くして寝れる度がちょっとだけ上がります。

で、ちょっと時間をとってみたところ、意外と簡単そう。

http://ispras.linuxbase.org/index.php/ABI_compliance_checker にある、ABI checkerと
https://github.com/kosaki/ruby/commit/e27c2e5f1e3c7a6fc2fe8b997e95a1e52f0beed3 のパッチをダウンロードして

./ruby ../tool/abi-checker.rb ~/local/ruby-193p0 ~/local/ruby-193

とすると、スクリーンショットのような結果が得られます。
193p0とくらべて最新の193ブランチは

rb_class_init_copy ( VALUE p1, VALUE p2 )
rb_path_end ( char const* p1 )
rb_path_last_separator ( char const* p1 )
rb_path_next ( char const* p1 )
rb_path_skip_prefix ( char const* p1 )
ruby_find_basename ( char const* name, long* baselen, long* alllen )
ruby_find_extname ( char const* name, long* len )

の7つのシンボルが消えてしまっているわけですね。
基本的に現在パッチリリースをしているのって世の中に三人しかいないので、うささん、ながちかさん、うらべさんの意見を聞きたい
ところですが、どうでしょうか。




-- 
http://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47395] Re: [ruby-trunk - Feature #8469] ABI checker  とか導入しませんか
  2013-06-04  5:00 ` [ruby-dev:47394] [ruby-trunk - Feature #8469] " usa (Usaku NAKAMURA)
@ 2013-06-04  5:23   ` KOSAKI Motohiro
  2013-06-04  5:27     ` [ruby-dev:47396] " Tanaka Akira
  0 siblings, 1 reply; 21+ messages in thread
From: KOSAKI Motohiro @ 2013-06-04  5:23 UTC (permalink / raw
  To: ruby developers list

> CIに組み込んでもらえるとちょー助かる感じですぅ

CI って誰に相談すればいいんですかね。今のツールだと比較対象のバイナリまたは
ABI情報をぶっこぬいたXMLファイル群をtarアーカイブしたものを比較対象として
どこかにおいておかないといけなくて、1.9.3だとp0からはもう差異があるのはわかってるので
最新のパッチリリースをCIに置きたいところなんですけど。

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47396] Re: [ruby-trunk - Feature #8469] ABI checker  とか導入しませんか
  2013-06-04  5:23   ` [ruby-dev:47395] " KOSAKI Motohiro
@ 2013-06-04  5:27     ` Tanaka Akira
  2013-06-04  6:26       ` [ruby-dev:47397] " KOSAKI Motohiro
  0 siblings, 1 reply; 21+ messages in thread
From: Tanaka Akira @ 2013-06-04  5:27 UTC (permalink / raw
  To: ruby developers list

2013年6月4日 14:23 KOSAKI Motohiro <kosaki.motohiro@gmail•com>:
>
> CI って誰に相談すればいいんですかね。今のツールだと比較対象のバイナリまたは
> ABI情報をぶっこぬいたXMLファイル群をtarアーカイブしたものを比較対象として
> どこかにおいておかないといけなくて、1.9.3だとp0からはもう差異があるのはわかってるので
> 最新のパッチリリースをCIに置きたいところなんですけど。

誰に、といわれると chkbuild に関しては私でしょうが、
後でちょっと見てみます。

比較対象を用意しないといけないのが面倒くさそうでほったらかしてたんですが。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47397] Re: [ruby-trunk - Feature #8469] ABI checker  とか導入しませんか
  2013-06-04  5:27     ` [ruby-dev:47396] " Tanaka Akira
@ 2013-06-04  6:26       ` KOSAKI Motohiro
  2013-06-05  1:41         ` [ruby-dev:47399] " Tanaka Akira
  0 siblings, 1 reply; 21+ messages in thread
From: KOSAKI Motohiro @ 2013-06-04  6:26 UTC (permalink / raw
  To: ruby developers list

>> CI って誰に相談すればいいんですかね。今のツールだと比較対象のバイナリまたは
>> ABI情報をぶっこぬいたXMLファイル群をtarアーカイブしたものを比較対象として
>> どこかにおいておかないといけなくて、1.9.3だとp0からはもう差異があるのはわかってるので
>> 最新のパッチリリースをCIに置きたいところなんですけど。
>
> 誰に、といわれると chkbuild に関しては私でしょうが、
> 後でちょっと見てみます。
>
> 比較対象を用意しないといけないのが面倒くさそうでほったらかしてたんですが。

それが受け入れられないとするとglibc みたいに公開するシンボルを全部別ファイルに記述させて、
make tests の仮定で突き合わせをするという処理をすることになりそうですが、これは結構
めんどくさいです。正直なところ。

e.g. http://sourceware.org/git/?p=glibc.git;a=blob;f=malloc/Versions;h=7ca9bdf25fcafdf2b01080d972bbde755a4f8108;hb=HEAD


環境変数で比較対象のrubyのパスが明示されてたときのみ、比較して結果を表示。とかだと一般の
chkbuildユーザーへの迷惑がすくないかなあ。

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47399] Re: [ruby-trunk - Feature #8469] ABI checker  とか導入しませんか
  2013-06-04  6:26       ` [ruby-dev:47397] " KOSAKI Motohiro
@ 2013-06-05  1:41         ` Tanaka Akira
  2013-06-05 18:29           ` [ruby-dev:47402] " KOSAKI Motohiro
  0 siblings, 1 reply; 21+ messages in thread
From: Tanaka Akira @ 2013-06-05  1:41 UTC (permalink / raw
  To: ruby developers list

2013年6月4日 15:26 KOSAKI Motohiro <kosaki.motohiro@gmail•com>:

>> 比較対象を用意しないといけないのが面倒くさそうでほったらかしてたんですが。
>
> それが受け入れられないとするとglibc みたいに公開するシンボルを全部別ファイルに記述させて、

別に受け入れられないことはなくて、おっくう、くらいの感じです。

で、試してみたんですが、--enable-shared が必要なようですね。
まぁそれはつけるとして、悩みどころは出力かなぁ。

今は標準出力に垂れ流したのをひとつのファイルとして記録しているのですが、
HTML ファイルをそのまま標準出力に出すのはよろしくないですよね。

chkbuild 的に簡単なのは w3m あたりでテキストにして標準出力に出してしまうというあたりですが。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47402] Re: [ruby-trunk - Feature #8469] ABI checker  とか導入しませんか
  2013-06-05  1:41         ` [ruby-dev:47399] " Tanaka Akira
@ 2013-06-05 18:29           ` KOSAKI Motohiro
  2013-06-06 15:42             ` [ruby-dev:47405] " Tanaka Akira
  0 siblings, 1 reply; 21+ messages in thread
From: KOSAKI Motohiro @ 2013-06-05 18:29 UTC (permalink / raw
  To: ruby developers list

>>> 比較対象を用意しないといけないのが面倒くさそうでほったらかしてたんですが。
>>
>> それが受け入れられないとするとglibc みたいに公開するシンボルを全部別ファイルに記述させて、
>
> 別に受け入れられないことはなくて、おっくう、くらいの感じです。

なるほど。じゃあ、いちど今提案している比較方式で走ってみて問題が多いようなら
再議論ということで。


> で、試してみたんですが、--enable-shared が必要なようですね。

すいません、前回のメールで書き忘れました。


> まぁそれはつけるとして、悩みどころは出力かなぁ。
>
> 今は標準出力に垂れ流したのをひとつのファイルとして記録しているのですが、
> HTML ファイルをそのまま標準出力に出すのはよろしくないですよね。
>
> chkbuild 的に簡単なのは w3m あたりでテキストにして標準出力に出してしまうというあたりですが。

abi-checkerのコマンドはxml出力をサポートしてるので、来週か再来週時間がとれたときに、そこからプレインテキストに変換するスクリプト書いてみます。
ところで、いま rubyci.orgでは test-all が0F0E以外のときは 1F2E
とかの数字表示とテーブルの色変更がサマリー画面のテーブルに表示されてますが、これは test-all から
grepしてるという理解であってますか?

ABI incompatible summary: nAnRnHnMnL

n: 数字、0であるべき
A: add
R: remove
H: 重要度Highの変更
M: 重要度Middleの変更
L: 重要度Lowの変更

みたいな行を先頭のほうに用意したら同じように数字が0以外のときにテーブルが赤くなるとか出来ます?

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47405] Re: [ruby-trunk - Feature #8469] ABI checker  とか導入しませんか
  2013-06-05 18:29           ` [ruby-dev:47402] " KOSAKI Motohiro
@ 2013-06-06 15:42             ` Tanaka Akira
  2013-06-06 17:08               ` [ruby-dev:47406] " KOSAKI Motohiro
  2013-06-07  3:31               ` [ruby-dev:47407] " Nobuyoshi Nakada
  0 siblings, 2 replies; 21+ messages in thread
From: Tanaka Akira @ 2013-06-06 15:42 UTC (permalink / raw
  To: ruby developers list

2013年6月6日 3:29 KOSAKI Motohiro <kosaki.motohiro@gmail•com>:
>
>> まぁそれはつけるとして、悩みどころは出力かなぁ。
>>
>> 今は標準出力に垂れ流したのをひとつのファイルとして記録しているのですが、
>> HTML ファイルをそのまま標準出力に出すのはよろしくないですよね。
>>
>> chkbuild 的に簡単なのは w3m あたりでテキストにして標準出力に出してしまうというあたりですが。

とりあえず、w3m で整形してつけてみました。

http://www.rubyist.net/~akr/chkbuild/debian/ruby-1.9.3/log/20130606T142542Z.log.html.gz#abi-check
http://www.rubyist.net/~akr/chkbuild/debian/ruby-2.0.0/log/20130606T134647Z.log.html.gz#abi-check
http://www.rubyist.net/~akr/chkbuild/debian/ruby-trunk/log/20130606T130700Z.log.html.gz#abi-check

1.9.3 と 2.0.0 はそれぞれの p0 との比較です。
ついでに trunk は 2.0.0p0 と比較してみました。
(1.8.7 はそろそろ終わるはずなのでやってません)

> abi-checkerのコマンドはxml出力をサポートしてるので、来週か再来週時間がとれたときに、そこからプレインテキストに変換するスクリプト書いてみます。
> ところで、いま rubyci.orgでは test-all が0F0E以外のときは 1F2E
> とかの数字表示とテーブルの色変更がサマリー画面のテーブルに表示されてますが、これは test-all から
> grepしてるという理解であってますか?

出力から行単位にパターンマッチして抜き出してます。
Ruby で書いてあるので、増やしたりなんなりはそんなにむずかしくはありません。
(ただし、行単位でその行を認識できる必要があります)

> ABI incompatible summary: nAnRnHnMnL
>
> n: 数字、0であるべき
> A: add
> R: remove
> H: 重要度Highの変更
> M: 重要度Middleの変更
> L: 重要度Lowの変更
>
> みたいな行を先頭のほうに用意したら同じように数字が0以外のときにテーブルが赤くなるとか出来ます?

抜き出してタイトルなどにつけるのはできると思います。
タイトルは recent.html の一行にもなり、rubyci.org は recent.html を読んでいるので、
rubyci.org まで情報は届きます。

赤くなるかどうかはよくわかりません。
どうやって色が変わっているか理解していないので。
というか HTML を読んでも色がどうやってついているのかわからないのです。
(なるせさんはなんか CSS でがんばっていると言ってていたような気がします)
-- 
[田中 哲][たなか あきら][Tanaka Akira]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47406] Re: [ruby-trunk - Feature #8469] ABI checker  とか導入しませんか
  2013-06-06 15:42             ` [ruby-dev:47405] " Tanaka Akira
@ 2013-06-06 17:08               ` KOSAKI Motohiro
  2013-06-07  5:46                 ` [ruby-dev:47409] " Tanaka Akira
  2013-06-07  3:31               ` [ruby-dev:47407] " Nobuyoshi Nakada
  1 sibling, 1 reply; 21+ messages in thread
From: KOSAKI Motohiro @ 2013-06-06 17:08 UTC (permalink / raw
  To: ruby developers list

2013/6/6 Tanaka Akira <akr@fsij•org>:
> 2013年6月6日 3:29 KOSAKI Motohiro <kosaki.motohiro@gmail•com>:
>>
>>> まぁそれはつけるとして、悩みどころは出力かなぁ。
>>>
>>> 今は標準出力に垂れ流したのをひとつのファイルとして記録しているのですが、
>>> HTML ファイルをそのまま標準出力に出すのはよろしくないですよね。
>>>
>>> chkbuild 的に簡単なのは w3m あたりでテキストにして標準出力に出してしまうというあたりですが。
>
> とりあえず、w3m で整形してつけてみました。
>
> http://www.rubyist.net/~akr/chkbuild/debian/ruby-1.9.3/log/20130606T142542Z.log.html.gz#abi-check
> http://www.rubyist.net/~akr/chkbuild/debian/ruby-2.0.0/log/20130606T134647Z.log.html.gz#abi-check
> http://www.rubyist.net/~akr/chkbuild/debian/ruby-trunk/log/20130606T130700Z.log.html.gz#abi-check
>
> 1.9.3 と 2.0.0 はそれぞれの p0 との比較です。
> ついでに trunk は 2.0.0p0 と比較してみました。
> (1.8.7 はそろそろ終わるはずなのでやってません)

うを。なんと、もうできたとは。もうこれでいいじゃん!出力想像してたよりも
ずっと綺麗だし。

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47407] Re: [ruby-trunk - Feature #8469] ABI checker  とか導入しませんか
  2013-06-06 15:42             ` [ruby-dev:47405] " Tanaka Akira
  2013-06-06 17:08               ` [ruby-dev:47406] " KOSAKI Motohiro
@ 2013-06-07  3:31               ` Nobuyoshi Nakada
  2013-06-07  5:38                 ` [ruby-dev:47408] " Tanaka Akira
  1 sibling, 1 reply; 21+ messages in thread
From: Nobuyoshi Nakada @ 2013-06-07  3:31 UTC (permalink / raw
  To: ruby developers list

(13/06/07 0:42), Tanaka Akira wrote:
> http://www.rubyist.net/~akr/chkbuild/debian/ruby-trunk/log/20130606T130700Z.log.html.gz#abi-check
> 
> 1.9.3 と 2.0.0 はそれぞれの p0 との比較です。
> ついでに trunk は 2.0.0p0 と比較してみました。

confname.hというファイルで大量に出ているようなんですが、これは何でしたっけ。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47408] Re: [ruby-trunk - Feature #8469] ABI checker  とか導入しませんか
  2013-06-07  3:31               ` [ruby-dev:47407] " Nobuyoshi Nakada
@ 2013-06-07  5:38                 ` Tanaka Akira
  2013-06-07 20:25                   ` [ruby-dev:47411] " KOSAKI Motohiro
  0 siblings, 1 reply; 21+ messages in thread
From: Tanaka Akira @ 2013-06-07  5:38 UTC (permalink / raw
  To: ruby developers list

2013年6月7日 12:31 Nobuyoshi Nakada <nobu@ruby-lang.org>:

> confname.hというファイルで大量に出ているようなんですが、これは何でしたっけ。

/usr/include/bits/confname.h っぽいですが、なんですかねぇ。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47409] Re: [ruby-trunk - Feature #8469] ABI checker  とか導入しませんか
  2013-06-06 17:08               ` [ruby-dev:47406] " KOSAKI Motohiro
@ 2013-06-07  5:46                 ` Tanaka Akira
  2013-06-07 19:36                   ` [ruby-dev:47410] " KOSAKI Motohiro
  0 siblings, 1 reply; 21+ messages in thread
From: Tanaka Akira @ 2013-06-07  5:46 UTC (permalink / raw
  To: ruby developers list

2013年6月7日 2:08 KOSAKI Motohiro <kosaki.motohiro@gmail•com>:

>> 1.9.3 と 2.0.0 はそれぞれの p0 との比較です。
>> ついでに trunk は 2.0.0p0 と比較してみました。
>> (1.8.7 はそろそろ終わるはずなのでやってません)
>
> うを。なんと、もうできたとは。もうこれでいいじゃん!出力想像してたよりも
> ずっと綺麗だし。

そういえば、これのためにこさきさんが書いた
https://github.com/kosaki/ruby/commit/e27c2e5f1e3c7a6fc2fe8b997e95a1e52f0beed3
の abi-checker.rb を chkbuild に入れたんですが、
chkbuild が修正BSDライセンスなので、abi-checker.rb も修正BSDライセンスでいいでしょうか?

入れた commit:
https://github.com/akr/chkbuild/commit/8fbf082a694938604a8d8275172f3de3284058d6

あるいは abi-checker.rb は ruby 本体に入れる想定なのかなぁ。
今から 1.9.3 や 2.0.0 ブランチに入れるのかという話はありますが。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47410] Re: [ruby-trunk - Feature #8469] ABI checker  とか導入しませんか
  2013-06-07  5:46                 ` [ruby-dev:47409] " Tanaka Akira
@ 2013-06-07 19:36                   ` KOSAKI Motohiro
  2013-06-07 20:59                     ` [ruby-dev:47412] " Tanaka Akira
  0 siblings, 1 reply; 21+ messages in thread
From: KOSAKI Motohiro @ 2013-06-07 19:36 UTC (permalink / raw
  To: ruby developers list

> 入れた commit:
> https://github.com/akr/chkbuild/commit/8fbf082a694938604a8d8275172f3de3284058d6
>
> あるいは abi-checker.rb は ruby 本体に入れる想定なのかなぁ。
> 今から 1.9.3 や 2.0.0 ブランチに入れるのかという話はありますが。

最初、chkbuildに組み込むところまで、考えてなくてRubyに入れて手動で実行するイメージだったんですが、明らかにchkbuildのほうが使い勝手がよいのでakrさんがよろしければ
chkbuildのツリーに入れていただきたいです。ライセンスは chkbuild本体と同じで。

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47411] Re: [ruby-trunk - Feature #8469] ABI checker  とか導入しませんか
  2013-06-07  5:38                 ` [ruby-dev:47408] " Tanaka Akira
@ 2013-06-07 20:25                   ` KOSAKI Motohiro
  0 siblings, 0 replies; 21+ messages in thread
From: KOSAKI Motohiro @ 2013-06-07 20:25 UTC (permalink / raw
  To: ruby developers list

>> confname.hというファイルで大量に出ているようなんですが、これは何でしたっけ。
>
> /usr/include/bits/confname.h っぽいですが、なんですかねぇ。

trunk だと、defines.hがunistd.h をincludeするようになったので、C拡張からみると
ruby.h をインクルードした時に定義されるSymbolが増えているということだと思います。

このへんの Severity rankがついていない、Other changes
はあんまり気にしなくていいんじゃないかな。どのみち衝突するのはCコードが _
始まりのシンボルを使っていた時だけで、それは自分の足を撃つ自由というやつなので。

紛らわしいから消せという意見がたくさん来たら、どっかに時間取ってスクリプト書きます

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47412] Re: [ruby-trunk - Feature #8469] ABI checker  とか導入しませんか
  2013-06-07 19:36                   ` [ruby-dev:47410] " KOSAKI Motohiro
@ 2013-06-07 20:59                     ` Tanaka Akira
  0 siblings, 0 replies; 21+ messages in thread
From: Tanaka Akira @ 2013-06-07 20:59 UTC (permalink / raw
  To: ruby developers list

2013年6月8日 4:36 KOSAKI Motohiro <kosaki.motohiro@gmail•com>:
>>
>> あるいは abi-checker.rb は ruby 本体に入れる想定なのかなぁ。
>> 今から 1.9.3 や 2.0.0 ブランチに入れるのかという話はありますが。
>
> 最初、chkbuildに組み込むところまで、考えてなくてRubyに入れて手動で実行するイメージだったんですが、明らかにchkbuildのほうが使い勝手がよいのでakrさんがよろしければ
> chkbuildのツリーに入れていただきたいです。ライセンスは chkbuild本体と同じで。
>

ライセンスを書いておきました。
https://github.com/akr/chkbuild/commit/a00f5b7fc15affc2fbea57c2fdfd65eb7d77ea0c

Ruby 側に abi-checker.rb があればそっちを実行するとかもできるので、
いろいろと改造したくなったらそういうことも考えましょう。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47492] [ruby-trunk - Feature #8469][Closed] ABI checker とか導入しませんか
  2013-06-01  5:43 [ruby-dev:47383] [ruby-trunk - Feature #8469][Open] ABI checker とか導入しませんか kosaki (Motohiro KOSAKI)
  2013-06-04  5:00 ` [ruby-dev:47394] [ruby-trunk - Feature #8469] " usa (Usaku NAKAMURA)
@ 2013-07-08 21:42 ` kosaki (Motohiro KOSAKI)
  2013-07-09  0:11   ` [ruby-dev:47493] " KOSAKI Motohiro
  1 sibling, 1 reply; 21+ messages in thread
From: kosaki (Motohiro KOSAKI) @ 2013-07-08 21:42 UTC (permalink / raw
  To: ruby developers list


Issue #8469 has been updated by kosaki (Motohiro KOSAKI).

Status changed from Open to Closed

Closeするの忘れてました。すいません。
----------------------------------------
Feature #8469: ABI checker とか導入しませんか
https://bugs.ruby-lang.org/issues/8469#change-40365

Author: kosaki (Motohiro KOSAKI)
Status: Closed
Priority: Normal
Assignee: 
Category: 
Target version: 


最近 Vit が報告してきたように、193にもたまにABI非互換が入っているようです。
見たところ実害はなさそうなのですが、非互換が報告されてから実害の有無を検討するのは不毛なのでパッチリリース前に
機械的にチェックしたいですよね。ほとんどのケースは意図的な非互換だからOKという結論になるのだろうとは思いますが、
精神衛生上、枕を高くして寝れる度がちょっとだけ上がります。

で、ちょっと時間をとってみたところ、意外と簡単そう。

http://ispras.linuxbase.org/index.php/ABI_compliance_checker にある、ABI checkerと
https://github.com/kosaki/ruby/commit/e27c2e5f1e3c7a6fc2fe8b997e95a1e52f0beed3 のパッチをダウンロードして

./ruby ../tool/abi-checker.rb ~/local/ruby-193p0 ~/local/ruby-193

とすると、スクリーンショットのような結果が得られます。
193p0とくらべて最新の193ブランチは

rb_class_init_copy ( VALUE p1, VALUE p2 )
rb_path_end ( char const* p1 )
rb_path_last_separator ( char const* p1 )
rb_path_next ( char const* p1 )
rb_path_skip_prefix ( char const* p1 )
ruby_find_basename ( char const* name, long* baselen, long* alllen )
ruby_find_extname ( char const* name, long* len )

の7つのシンボルが消えてしまっているわけですね。
基本的に現在パッチリリースをしているのって世の中に三人しかいないので、うささん、ながちかさん、うらべさんの意見を聞きたい
ところですが、どうでしょうか。




-- 
http://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47493] Re: [ruby-trunk - Feature #8469][Closed] ABI checker  とか導入しませんか
  2013-07-08 21:42 ` [ruby-dev:47492] [ruby-trunk - Feature #8469][Closed] " kosaki (Motohiro KOSAKI)
@ 2013-07-09  0:11   ` KOSAKI Motohiro
  2013-07-09  0:37     ` [ruby-dev:47494] " U.Nakamura
  2013-07-09  0:42     ` [ruby-dev:47495] " Tanaka Akira
  0 siblings, 2 replies; 21+ messages in thread
From: KOSAKI Motohiro @ 2013-07-09  0:11 UTC (permalink / raw
  To: ruby developers list

2013/7/8 kosaki (Motohiro KOSAKI) <kosaki.motohiro@gmail•com>:
>
> Issue #8469 has been updated by kosaki (Motohiro KOSAKI).
>
> Status changed from Open to Closed
>
> Closeするの忘れてました。すいません。

閉じてから聞くのもアレなんですが、rubyci.org のトップページの表に ABI breakage のカラムを追加するのは誰に相談すればよいでしょうか?

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47494] Re: [ruby-trunk - Feature #8469][Closed] ABI checker   とか導入しませんか
  2013-07-09  0:11   ` [ruby-dev:47493] " KOSAKI Motohiro
@ 2013-07-09  0:37     ` U.Nakamura
  2013-07-09  0:42     ` [ruby-dev:47495] " Tanaka Akira
  1 sibling, 0 replies; 21+ messages in thread
From: U.Nakamura @ 2013-07-09  0:37 UTC (permalink / raw
  To: ruby developers list

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

In message "[ruby-dev:47493] Re: [ruby-trunk - Feature #8469][Closed] ABI checker  とか導入しませんか"
    on Jul.09,2013 09:11:18, <kosaki.motohiro@gmail•com> wrote:
> 閉じてから聞くのもアレなんですが、rubyci.org のトップページの表に ABI breakage のカラムを追加するのは誰に相談すればよいでしょうか?

成瀬さんかな。どうでしょう?


それでは。
-- 
U.Nakamura <usa@garbagecollect•jp>

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47495] Re: [ruby-trunk - Feature #8469][Closed] ABI checker  とか導入しませんか
  2013-07-09  0:11   ` [ruby-dev:47493] " KOSAKI Motohiro
  2013-07-09  0:37     ` [ruby-dev:47494] " U.Nakamura
@ 2013-07-09  0:42     ` Tanaka Akira
  2013-07-09  1:25       ` [ruby-dev:47496] " KOSAKI Motohiro
  1 sibling, 1 reply; 21+ messages in thread
From: Tanaka Akira @ 2013-07-09  0:42 UTC (permalink / raw
  To: ruby developers list

2013年7月9日 9:11 KOSAKI Motohiro <kosaki.motohiro@gmail•com>:
>
> 閉じてから聞くのもアレなんですが、rubyci.org のトップページの表に ABI breakage のカラムを追加するのは誰に相談すればよいでしょうか?

1. (私が開発している) chkbuild が recent.html などを生成
  recent.html の例:
http://www.rubyist.net/~akr/chkbuild/debian/ruby-trunk/recent.html
2. (なるせさんが開発している) rubyci が各地の recent.html をとってきて表示

なので、まずは私ですかね。

ABI checker の結果はあまり真面目に読んでいないのですが、
http://www.rubyist.net/~akr/chkbuild/debian/ruby-1.9.3/log/20130708T174556Z.log.html.gz#abi-check
でいえば、Problem Summary の

                 Severity Count
 Added Symbols   -        17
Removed Symbols  High     8
 Problems with   High     0
   Data Types    Medium   0
                 Low      0
 Problems with   High     0
    Symbols      Medium   0
                 Low      0
 Problems with   Low      1
   Constants
 Other Changes   -        3
  in Constants

というのを縮めて ABI:8H1L あたりですかね。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47496] Re: [ruby-trunk - Feature #8469][Closed] ABI checker  とか導入しませんか
  2013-07-09  0:42     ` [ruby-dev:47495] " Tanaka Akira
@ 2013-07-09  1:25       ` KOSAKI Motohiro
  2013-07-10  0:36         ` [ruby-dev:47498] " Tanaka Akira
  0 siblings, 1 reply; 21+ messages in thread
From: KOSAKI Motohiro @ 2013-07-09  1:25 UTC (permalink / raw
  To: ruby developers list

2013/7/8 Tanaka Akira <akr@fsij•org>:
> 2013年7月9日 9:11 KOSAKI Motohiro <kosaki.motohiro@gmail•com>:
>>
>> 閉じてから聞くのもアレなんですが、rubyci.org のトップページの表に ABI breakage のカラムを追加するのは誰に相談すればよいでしょうか?
>
> 1. (私が開発している) chkbuild が recent.html などを生成
>   recent.html の例:
> http://www.rubyist.net/~akr/chkbuild/debian/ruby-trunk/recent.html
> 2. (なるせさんが開発している) rubyci が各地の recent.html をとってきて表示
>
> なので、まずは私ですかね。
>
> ABI checker の結果はあまり真面目に読んでいないのですが、
> http://www.rubyist.net/~akr/chkbuild/debian/ruby-1.9.3/log/20130708T174556Z.log.html.gz#abi-check
> でいえば、Problem Summary の
>
>                  Severity Count
>  Added Symbols   -        17
> Removed Symbols  High     8
>  Problems with   High     0
>    Data Types    Medium   0
>                  Low      0
>  Problems with   High     0
>     Symbols      Medium   0
>                  Low      0
>  Problems with   Low      1
>    Constants
>  Other Changes   -        3
>   in Constants
>
> というのを縮めて ABI:8H1L あたりですかね。

Lowはどうせみんな無視すると思ってるので 8
だけでいいと思います。当面は。Highで補足できない(かつ我々が補足したい)具体事例が出てからプラスα考えればいいと思います。
abi-compliance-checkerコマンド起動するときに -abi オプションつければソースコンパチビリティをチェックしなくなるので、

Removed Symbols  High     8
Problems with   High     0
Data Types    Medium   0
Problems with   High     0
Symbols      Medium   0

の五行を単純にgrepで拾ってきて数字加算すればいいかなあぐらいのイメージなんですが、どうでしょう。

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [ruby-dev:47498] Re: [ruby-trunk - Feature #8469][Closed] ABI checker  とか導入しませんか
  2013-07-09  1:25       ` [ruby-dev:47496] " KOSAKI Motohiro
@ 2013-07-10  0:36         ` Tanaka Akira
  0 siblings, 0 replies; 21+ messages in thread
From: Tanaka Akira @ 2013-07-10  0:36 UTC (permalink / raw
  To: ruby developers list

2013年7月9日 10:25 KOSAKI Motohiro <kosaki.motohiro@gmail•com>:

> Lowはどうせみんな無視すると思ってるので 8
> だけでいいと思います。当面は。Highで補足できない(かつ我々が補足したい)具体事例が出てからプラスα考えればいいと思います。
> abi-compliance-checkerコマンド起動するときに -abi オプションつければソースコンパチビリティをチェックしなくなるので、
>
> Removed Symbols  High     8
> Problems with   High     0
> Data Types    Medium   0
> Problems with   High     0
> Symbols      Medium   0
>
> の五行を単純にgrepで拾ってきて数字加算すればいいかなあぐらいのイメージなんですが、どうでしょう。

えぇ、実際そんなかんじで実装することになります。

とりあえず動かして見たところ、
rubyci でも赤くなったようです。

おすすめのとおり Low は無視しています。
Medium は無視してません。

なお、trunk については ABI incompatible なのはそういうものなので、
recent.html には出さない (rubyci には表示されない) ようにしています。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2013-07-10  1:04 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-01  5:43 [ruby-dev:47383] [ruby-trunk - Feature #8469][Open] ABI checker とか導入しませんか kosaki (Motohiro KOSAKI)
2013-06-04  5:00 ` [ruby-dev:47394] [ruby-trunk - Feature #8469] " usa (Usaku NAKAMURA)
2013-06-04  5:23   ` [ruby-dev:47395] " KOSAKI Motohiro
2013-06-04  5:27     ` [ruby-dev:47396] " Tanaka Akira
2013-06-04  6:26       ` [ruby-dev:47397] " KOSAKI Motohiro
2013-06-05  1:41         ` [ruby-dev:47399] " Tanaka Akira
2013-06-05 18:29           ` [ruby-dev:47402] " KOSAKI Motohiro
2013-06-06 15:42             ` [ruby-dev:47405] " Tanaka Akira
2013-06-06 17:08               ` [ruby-dev:47406] " KOSAKI Motohiro
2013-06-07  5:46                 ` [ruby-dev:47409] " Tanaka Akira
2013-06-07 19:36                   ` [ruby-dev:47410] " KOSAKI Motohiro
2013-06-07 20:59                     ` [ruby-dev:47412] " Tanaka Akira
2013-06-07  3:31               ` [ruby-dev:47407] " Nobuyoshi Nakada
2013-06-07  5:38                 ` [ruby-dev:47408] " Tanaka Akira
2013-06-07 20:25                   ` [ruby-dev:47411] " KOSAKI Motohiro
2013-07-08 21:42 ` [ruby-dev:47492] [ruby-trunk - Feature #8469][Closed] " kosaki (Motohiro KOSAKI)
2013-07-09  0:11   ` [ruby-dev:47493] " KOSAKI Motohiro
2013-07-09  0:37     ` [ruby-dev:47494] " U.Nakamura
2013-07-09  0:42     ` [ruby-dev:47495] " Tanaka Akira
2013-07-09  1:25       ` [ruby-dev:47496] " KOSAKI Motohiro
2013-07-10  0:36         ` [ruby-dev:47498] " Tanaka Akira

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).