Project

General

Profile

Actions

Bug #3693

closed

visibility hidden functions

Added by authorNari (Narihiro Nakamura) about 14 years ago. Updated over 13 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.3dev (2010-08-13 trunk 28973) [i686-linux]
Backport:
[ruby-dev:42022]

Description

=begin
nari です。

ヘッダファイルに定義されていない関数を何個かみつけました。
修正したパッチを添付します。

定義漏れしていた関数は ext/objspace/objspace.c 内で使われているのですが、
この拡張ライブラリにはテストがなく、気づくのが遅れたようです。

そこで ext/objspace/objspace.c について簡単なテストを書いてみました。
書いたテストを実行した所、数点SEGVする箇所を見つけたので、それについて
も修正しています。

objspaceのメンテナの方からお許し頂ければコミットしたいと思います。
=end


Files

fixed_undifinitions_on_header.patch (1.38 KB) fixed_undifinitions_on_header.patch authorNari (Narihiro Nakamura), 08/14/2010 06:56 AM
fixed_objspace_test.rb (2.33 KB) fixed_objspace_test.rb authorNari (Narihiro Nakamura), 08/14/2010 06:56 AM

Related issues 1 (0 open1 closed)

Related to Backport192 - Backport #3896: Bus error in ObjectSpace.count_objects_sizeClosedyugui (Yuki Sonoda)10/02/2010Actions
Actions #1

Updated by ko1 (Koichi Sasada) about 14 years ago

=begin
 ささだです.

(2010/08/14 6:56), Narihiro Nakamura wrote:

ヘッダファイルに定義されていない関数を何個かみつけました。
修正したパッチを添付します。

 これらの関数は,まさに objspace.c 用なのと,あまり乱用してほしくないの
で,とりあえずヘッダファイルに入れていません.

そこで ext/objspace/objspace.c について簡単なテストを書いてみました。
書いたテストを実行した所、数点SEGVする箇所を見つけたので、それについて
も修正しています。

 具体的に,SEGV したのはどこで,修正はどれでしょうか.と思った
ら,fixed_objspace_test.rb の中かー.こっちは良いと思います.

--
// SASADA Koichi at atdot dot net
=end

Actions #2

Updated by ko1 (Koichi Sasada) about 14 years ago

=begin
 ささだです.

(2010/08/14 6:56), Narihiro Nakamura wrote:

ヘッダファイルに定義されていない関数を何個かみつけました。
修正したパッチを添付します。

 これらの関数は,まさに objspace.c 用なのと,あまり乱用してほしくないの
で,とりあえずヘッダファイルに入れていません.

そこで ext/objspace/objspace.c について簡単なテストを書いてみました。
書いたテストを実行した所、数点SEGVする箇所を見つけたので、それについて
も修正しています。

 具体的に,SEGV したのはどこで,修正はどれでしょうか.と思った
ら,fixed_objspace_test.rb の中かー.こっちは良いと思います.

--
// SASADA Koichi at atdot dot net

=end

Actions #3

Updated by ko1 (Koichi Sasada) about 14 years ago

=begin
(2010/08/14 7:44), SASADA Koichi wrote:

そこで ext/objspace/objspace.c について簡単なテストを書いてみました。
書いたテストを実行した所、数点SEGVする箇所を見つけたので、それについて
も修正しています。

 具体的に,SEGV したのはどこで,修正はどれでしょうか.と思った
ら,fixed_objspace_test.rb の中かー.こっちは良いと思います.

 あと,このタイミングで 1.9.2 への反映はどうしたものでしょうか.

--
// SASADA Koichi at atdot dot net

=end

Actions #4

Updated by authorNari (Narihiro Nakamura) about 14 years ago

=begin
nari です。

2010年8月14日7:44 SASADA Koichi :

 ささだです.

(2010/08/14 6:56), Narihiro Nakamura wrote:

ヘッダファイルに定義されていない関数を何個かみつけました。
修正したパッチを添付します。

これらの関数は,まさに objspace.c 用なのと,あまり乱用してほしくないの
で,とりあえずヘッダファイルに入れていません.

r28709のコミットで、ヘッダファイルに未定義な関数はC拡張ライブラリから見
えなくなっているようです。
なので、現状としてはヘッダファイルの修正を行わないと objspace は動かな
いと思います。

うーん。推奨しない関数の扱いはどうするといいんでしょうか…。

そこで ext/objspace/objspace.c について簡単なテストを書いてみました。
書いたテストを実行した所、数点SEGVする箇所を見つけたので、それについて
も修正しています。

 具体的に,SEGV したのはどこで,修正はどれでしょうか.と思った
ら,fixed_objspace_test.rb の中かー.こっちは良いと思います.

ありがとうございます。上記の問題が解決したらコミットしたいと思います。

--
Narihiro Nakamura (nari)
=end

Actions #5

Updated by authorNari (Narihiro Nakamura) about 14 years ago

=begin
nari です。

2010年8月14日7:44 SASADA Koichi :

 ささだです.

(2010/08/14 6:56), Narihiro Nakamura wrote:

ヘッダファイルに定義されていない関数を何個かみつけました。
修正したパッチを添付します。

これらの関数は,まさに objspace.c 用なのと,あまり乱用してほしくないの
で,とりあえずヘッダファイルに入れていません.

r28709のコミットで、ヘッダファイルに未定義な関数はC拡張ライブラリから見
えなくなっているようです。
なので、現状としてはヘッダファイルの修正を行わないと objspace は動かな
いと思います。

うーん。推奨しない関数の扱いはどうするといいんでしょうか…。

そこで ext/objspace/objspace.c について簡単なテストを書いてみました。
書いたテストを実行した所、数点SEGVする箇所を見つけたので、それについて
も修正しています。

 具体的に,SEGV したのはどこで,修正はどれでしょうか.と思った
ら,fixed_objspace_test.rb の中かー.こっちは良いと思います.

ありがとうございます。上記の問題が解決したらコミットしたいと思います。

--
Narihiro Nakamura (nari)

=end

Actions #6

Updated by kou (Kouhei Sutou) about 14 years ago

=begin
須藤です。

In
"[ruby-dev:42025] Re: [Bug #3693] visibility hidden functions" on Sat, 14 Aug 2010 08:47:55 +0900,
Narihiro Nakamura wrote:

2010年8月14日7:44 SASADA Koichi :

(2010/08/14 6:56), Narihiro Nakamura wrote:

ヘッダファイルに定義されていない関数を何個かみつけました。
修正したパッチを添付します。

これらの関数は,まさに objspace.c 用なのと,あまり乱用してほしくないの
で,とりあえずヘッダファイルに入れていません.

r28709のコミットで、ヘッダファイルに未定義な関数はC拡張ライブラリから見
えなくなっているようです。
なので、現状としてはヘッダファイルの修正を行わないと objspace は動かな
いと思います。

うーん。推奨しない関数の扱いはどうするといいんでしょうか…。

私は、こういうときは、private.hみたいなインストールされない
ヘッダーファイルを作って、.cの中からだけそれをincludeするよ
うにしています。

=end

Actions #7

Updated by nobu (Nobuyoshi Nakada) about 14 years ago

=begin
なかだです。

At Sat, 14 Aug 2010 09:00:21 +0900,
Kouhei Sutou wrote in [ruby-dev:42026]:

うーん。推奨しない関数の扱いはどうするといいんでしょうか…。

私は、こういうときは、private.hみたいなインストールされない
ヘッダーファイルを作って、.cの中からだけそれをincludeするよ
うにしています。

これも何年か前からのペンディング事項の一つなんですが、なんて名前
にしますかねぇ。includeの下に置かなければインストールされないの
で割とどんなのでもいいんじゃないかとも思いますが。

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

=end

Actions #8

Updated by kou (Kouhei Sutou) about 14 years ago

=begin
須藤です。

In
"[ruby-dev:42028] Re: [Bug #3693] visibility hidden functions" on Sat, 14 Aug 2010 11:10:28 +0900,
Nobuyoshi Nakada wrote:

うーん。推奨しない関数の扱いはどうするといいんでしょうか…。

私は、こういうときは、private.hみたいなインストールされない
ヘッダーファイルを作って、.cの中からだけそれをincludeするよ
うにしています。

これも何年か前からのペンディング事項の一つなんですが、なんて名前
にしますかねぇ。includeの下に置かなければインストールされないの
で割とどんなのでもいいんじゃないかとも思いますが。

今回のやつだとgc.hでもよさそうな気がします。
が、推奨しないだけで使いたい人は(自己責任で)使ってもいいよ、
くらいならinclude/ruby/experimental.hとかに入れて、明示的に
include ruby/experimental.hしないと使えないようにするのでも
よさそうな気がします。

=end

Actions #9

Updated by authorNari (Narihiro Nakamura) about 14 years ago

=begin
nari です。

中田さんの修正のおかげで ext/objspace/objspace.c が動くようになったので
テストとバグ修正をコミットしました(r28986)。

=end

Actions #10

Updated by nobu (Nobuyoshi Nakada) about 14 years ago

  • Status changed from Open to Closed

=begin

=end

Actions #11

Updated by ko1 (Koichi Sasada) about 14 years ago

=begin
 ささだです.

 SEGV バグなので,1.9.2 にバックポートして頂ければと思います.

(2010/08/14 18:17), Narihiro Nakamura wrote:

チケット #3693 が更新されました。 (by Narihiro Nakamura)

nari です。

中田さんの修正のおかげで ext/objspace/objspace.c が動くようになったので
テストとバグ修正をコミットしました(r28986)。


http://redmine.ruby-lang.org/issues/show/3693


http://redmine.ruby-lang.org

--
// SASADA Koichi at atdot dot net

=end

Actions #12

Updated by yugui (Yuki Sonoda) about 14 years ago

=begin
On 8/22/10 11:31 PM, SASADA Koichi wrote:

 SEGV バグなので,1.9.2 にバックポートして頂ければと思います.

はい。十分に「枯れた」パッチですし、バックポートします。

--
Yugui
http://yugui.jp
私は私をDumpする

=end

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0