ruby-dev (Japanese) list archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-dev:46105] 拡張ライブラリの質問
@ 2012-09-04 11:32 SASADA Koichi
  2012-09-04 11:36 ` [ruby-dev:46106] 拡張ライブラリの質問 SASADA Koichi
  2012-09-05  0:52 ` [ruby-dev:46110] " NARUSE, Yui
  0 siblings, 2 replies; 12+ messages in thread
From: SASADA Koichi @ 2012-09-04 11:32 UTC (permalink / raw
  To: ruby developers list

 ささだです.


 trunk では,拡張ライブラリをビルドするとき,下記のようなオプションがつ
きます.

gcc -I. (snip) -Wall -Wextra -Wno-unused-parameter -Wno-parentheses
-Wno-long-long -Wno-missing-field-initializers -Wunused-variable
-Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement
-Wimplicit-function-declaration -ansi -std=iso9899:199409  (snip)

 -ansi -std=iso9899:199409 のあたりで,inline や // でのコメントアウト
を利用している拡張ライブラリがビルド出来ない感じです.
(inline については,ruby.h を include していれば適切に入れ替えられるん
ですが,ruby.h を include していない *.c をビルドする可能性もあり,そこ
でこけてる感じです)

 これは,仕様でしょうか.ぎゃっという人は多そうなので,拡張ライブラリの
CC のオプションは,以前に外した方が良さそうに思いますが.


# 目の前でマンガを読んでいる須藤さんから
# 何とかしろと言われたのでご相談した次第です.

-- 
// SASADA Koichi at atdot dot net

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

* [ruby-dev:46106] Re: 拡張ライブラリの質問
  2012-09-04 11:32 [ruby-dev:46105] 拡張ライブラリの質問 SASADA Koichi
@ 2012-09-04 11:36 ` SASADA Koichi
  2012-09-04 12:02   ` [ruby-dev:46107] " Nobuhiro IMAI
  2012-09-04 23:20   ` [ruby-dev:46109] " KIMURA Koichi
  2012-09-05  0:52 ` [ruby-dev:46110] " NARUSE, Yui
  1 sibling, 2 replies; 12+ messages in thread
From: SASADA Koichi @ 2012-09-04 11:36 UTC (permalink / raw
  To: ruby developers list

追記です.

(2012/09/04 20:32), SASADA Koichi wrote:
>  trunk では,拡張ライブラリをビルドするとき,下記のようなオプションがつ
> きます.
> 
> gcc -I. (snip) -Wall -Wextra -Wno-unused-parameter -Wno-parentheses
> -Wno-long-long -Wno-missing-field-initializers -Wunused-variable
> -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement
> -Wimplicit-function-declaration -ansi -std=iso9899:199409  (snip)
> 
>  -ansi -std=iso9899:199409 のあたりで,inline や // でのコメントアウト
> を利用している拡張ライブラリがビルド出来ない感じです.
> (inline については,ruby.h を include していれば適切に入れ替えられるん
> ですが,ruby.h を include していない *.c をビルドする可能性もあり,そこ
> でこけてる感じです)


 とりあえず,redcarpet <https://github.com/vmg/redcarpet/> というライブ
ラリで問題を確認しました.


# 須藤さんに例を書け,読む人を考えろと怒られたので追記しました.

-- 
// SASADA Koichi at atdot dot net

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

* [ruby-dev:46107] Re: 拡張ライブラリの質問
  2012-09-04 11:36 ` [ruby-dev:46106] 拡張ライブラリの質問 SASADA Koichi
@ 2012-09-04 12:02   ` Nobuhiro IMAI
  2012-09-04 23:20   ` [ruby-dev:46109] " KIMURA Koichi
  1 sibling, 0 replies; 12+ messages in thread
From: Nobuhiro IMAI @ 2012-09-04 12:02 UTC (permalink / raw
  To: ruby developers list

いまいです。

From: SASADA Koichi <ko1_at_atdot.net>
Date: Tue, 4 Sep 2012 20:36:42 +0900

>  とりあえず,redcarpet <https://github.com/vmg/redcarpet/> というライブ
> ラリで問題を確認しました.

http_parser.rb という gem でもコンパイル出来ないです。
# https://github.com/tmm1/http_parser.rb

ruby_http_parser.c:358:21: error: expected expression before '/' token

   355	    if (!RTEST(wrapper->stopped) && !RTEST(wrapper->completed))
   356	      rb_raise(eParserError, "Could not parse data entirely");
   357	    else
   358	      nparsed += 1; // error states fail on the current character
   359	  }
   360	
   361	  return INT2FIX(nparsed);
--
Nobuhiro IMAI <nov@yo•rim.or.jp>
Key fingerprint = E57F 2482 4074 13BC 3B9A  165B C689 5B16 A620 4657

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

* [ruby-dev:46109] Re: 拡張ライブラリの質問
  2012-09-04 11:36 ` [ruby-dev:46106] 拡張ライブラリの質問 SASADA Koichi
  2012-09-04 12:02   ` [ruby-dev:46107] " Nobuhiro IMAI
@ 2012-09-04 23:20   ` KIMURA Koichi
  1 sibling, 0 replies; 12+ messages in thread
From: KIMURA Koichi @ 2012-09-04 23:20 UTC (permalink / raw
  To: ruby developers list

木村です。

>  これは,仕様でしょうか.ぎゃっという人は多そうなので,拡張ライブラリの
> CC のオプションは,以前に外した方が良さそうに思いますが.

仕様でしょうかというのは Ruby の仕様のことだろうかと↓を書いてから気がつきました。


> >  -ansi -std=iso9899:199409 のあたりで,inline や // でのコメントアウト
> > を利用している拡張ライブラリがビルド出来ない感じです.
> > (inline については,ruby.h を include していれば適切に入れ替えられるん
> > ですが,ruby.h を include していない *.c をビルドする可能性もあり,そこ
> > でこけてる感じです)

-std=iso9899:199409 ってなんだっけと調べてみると、
C99を使ったオープンソース開発 
http://www.ibm.com/developerworks/jp/linux/library/l-c99/
によれば

> 
>     -std=c89 または -std=iso9899:1990
>     元々のC89標準
>     -std=iso9899:199409
>     C89と、Normative Addendum 1にある変更を加えたもの
>     -std=c99 または -std=iso9899:1999
>     C99で改版された標準

ということなので、// や inline がコンパイラーから拒絶されるのはそんなもんだろうという気がします。



-- 
木村浩一

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

* [ruby-dev:46110] Re: 拡張ライブラリの質問
  2012-09-04 11:32 [ruby-dev:46105] 拡張ライブラリの質問 SASADA Koichi
  2012-09-04 11:36 ` [ruby-dev:46106] 拡張ライブラリの質問 SASADA Koichi
@ 2012-09-05  0:52 ` NARUSE, Yui
  2012-09-05  2:11   ` [ruby-dev:46112] " Urabe Shyouhei
  1 sibling, 1 reply; 12+ messages in thread
From: NARUSE, Yui @ 2012-09-05  0:52 UTC (permalink / raw
  To: ruby developers list

成瀬です。

2012年9月4日 20:32 SASADA Koichi <ko1@atdot•net>:
>  trunk では,拡張ライブラリをビルドするとき,下記のようなオプションがつ
> きます.
>
> gcc -I. (snip) -Wall -Wextra -Wno-unused-parameter -Wno-parentheses
> -Wno-long-long -Wno-missing-field-initializers -Wunused-variable
> -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement
> -Wimplicit-function-declaration -ansi -std=iso9899:199409  (snip)
>
>  -ansi -std=iso9899:199409 のあたりで,inline や // でのコメントアウト
> を利用している拡張ライブラリがビルド出来ない感じです.
> (inline については,ruby.h を include していれば適切に入れ替えられるん
> ですが,ruby.h を include していない *.c をビルドする可能性もあり,そこ
> でこけてる感じです)
>
>  これは,仕様でしょうか.ぎゃっという人は多そうなので,拡張ライブラリの
> CC のオプションは,以前に外した方が良さそうに思いますが.

CRuby 本体からもコンパイラ内蔵の関数が使われなくなったりと影響があるので、
全面的に外した方がいいんじゃないかと思っていますが……。

-- 
NARUSE, Yui  <naruse@airemix•jp>

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

* [ruby-dev:46112] Re: 拡張ライブラリの質問
  2012-09-05  0:52 ` [ruby-dev:46110] " NARUSE, Yui
@ 2012-09-05  2:11   ` Urabe Shyouhei
  2012-09-05  3:17     ` [ruby-dev:46114] " NARUSE, Yui
  0 siblings, 1 reply; 12+ messages in thread
From: Urabe Shyouhei @ 2012-09-05  2:11 UTC (permalink / raw
  To: ruby developers list

On 09/05/2012 09:52 AM, NARUSE, Yui wrote:
>>  これは,仕様でしょうか.ぎゃっという人は多そうなので,拡張ライブラリの
>> CC のオプションは,以前に外した方が良さそうに思いますが.
> 
> CRuby 本体からもコンパイラ内蔵の関数が使われなくなったりと影響があるので、
> 全面的に外した方がいいんじゃないかと思っていますが……。

反対です。外すとへんなコードが紛れ込むのです。
少々遅くても正しく動くコードと速くても未定義動作を含むコードでは比較にならんのです。

拡張ライブラリ作者の人であればコンパイラの警告に対処するのは難しくないでしょう。
郷に入りては郷に従えという言葉もあることですし、粛々と対応していただくのがよいのではないかと思います。

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

* [ruby-dev:46114] Re: 拡張ライブラリの質問
  2012-09-05  2:11   ` [ruby-dev:46112] " Urabe Shyouhei
@ 2012-09-05  3:17     ` NARUSE, Yui
  2012-09-05  3:55       ` [ruby-dev:46116] " Urabe Shyouhei
  0 siblings, 1 reply; 12+ messages in thread
From: NARUSE, Yui @ 2012-09-05  3:17 UTC (permalink / raw
  To: ruby developers list

2012年9月5日 11:11 Urabe Shyouhei <shyouhei@ruby-lang.org>:
> On 09/05/2012 09:52 AM, NARUSE, Yui wrote:
>>>  これは,仕様でしょうか.ぎゃっという人は多そうなので,拡張ライブラリの
>>> CC のオプションは,以前に外した方が良さそうに思いますが.
>>
>> CRuby 本体からもコンパイラ内蔵の関数が使われなくなったりと影響があるので、
>> 全面的に外した方がいいんじゃないかと思っていますが……。
>
> 反対です。外すとへんなコードが紛れ込むのです。
> 少々遅くても正しく動くコードと速くても未定義動作を含むコードでは比較にならんのです。

他の警告はまだメリットデメリットでメリットが勝ってるように思いますけれど、
-std=iso9899:199409 はデメリットが大きいんじゃないかなぁ。
travisで動かすときだけとかでいいんじゃないかと思うんですが。

> 拡張ライブラリ作者の人であればコンパイラの警告に対処するのは難しくないでしょう。
> 郷に入りては郷に従えという言葉もあることですし、粛々と対応していただくのがよいのではないかと思います。

C89 を拡張ライブラリに強制とかだとなんか難しい気もしますが。

-- 
NARUSE, Yui  <naruse@airemix•jp>

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

* [ruby-dev:46116] Re: 拡張ライブラリの質問
  2012-09-05  3:17     ` [ruby-dev:46114] " NARUSE, Yui
@ 2012-09-05  3:55       ` Urabe Shyouhei
  2012-09-05  4:58         ` [ruby-dev:46117] " SASADA Koichi
  0 siblings, 1 reply; 12+ messages in thread
From: Urabe Shyouhei @ 2012-09-05  3:55 UTC (permalink / raw
  To: ruby developers list

On 09/05/2012 12:17 PM, NARUSE, Yui wrote:
>> 反対です。外すとへんなコードが紛れ込むのです。
>> 少々遅くても正しく動くコードと速くても未定義動作を含むコードでは比較にならんのです。
> 
> 他の警告はまだメリットデメリットでメリットが勝ってるように思いますけれど、
> -std=iso9899:199409 はデメリットが大きいんじゃないかなぁ。
> travisで動かすときだけとかでいいんじゃないかと思うんですが。

Travisの警告なんて誰も読んでないじゃないですか。できないことを言うのはやめましょうよ。

>> 拡張ライブラリ作者の人であればコンパイラの警告に対処するのは難しくないでしょう。
>> 郷に入りては郷に従えという言葉もあることですし、粛々と対応していただくのがよいのではないかと思います。
> 
> C89 を拡張ライブラリに強制とかだとなんか難しい気もしますが。

まあ拡張ライブラリに興味があって始めたことではないので、拡張ライブラリの時だけもう少し緩くするような変更を加えていただくのに関しては、さほど反対しません。コアから外すのは反対。

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

* [ruby-dev:46117] Re: 拡張ライブラリの質問
  2012-09-05  3:55       ` [ruby-dev:46116] " Urabe Shyouhei
@ 2012-09-05  4:58         ` SASADA Koichi
  2012-10-02 11:55           ` [ruby-dev:46191] " SASADA Koichi
  0 siblings, 1 reply; 12+ messages in thread
From: SASADA Koichi @ 2012-09-05  4:58 UTC (permalink / raw
  To: ruby developers list

(2012/09/05 12:55), Urabe Shyouhei wrote:
>> > 他の警告はまだメリットデメリットでメリットが勝ってるように思いますけれど、
>> > -std=iso9899:199409 はデメリットが大きいんじゃないかなぁ。
>> > travisで動かすときだけとかでいいんじゃないかと思うんですが。
> Travisの警告なんて誰も読んでないじゃないですか。できないことを言うのはやめましょうよ。

 警告じゃなくて,Travis でエラーが出たら気づく,という意味じゃないで
しょうか.

 そういう意味で,Travis ではきついオプション,そうじゃないところでは,
ゆるいオプションというのは選択肢に入りそうですね.

-- 
// SASADA Koichi at atdot dot net

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

* [ruby-dev:46191] Re: 拡張ライブラリの質問
  2012-09-05  4:58         ` [ruby-dev:46117] " SASADA Koichi
@ 2012-10-02 11:55           ` SASADA Koichi
  2012-10-02 13:56             ` [ruby-dev:46193] " Kouhei Sutou
  0 siblings, 1 reply; 12+ messages in thread
From: SASADA Koichi @ 2012-10-02 11:55 UTC (permalink / raw
  To: ruby developers list

(2012/09/05 13:58), SASADA Koichi wrote:
> (2012/09/05 12:55), Urabe Shyouhei wrote:
>>>> 他の警告はまだメリットデメリットでメリットが勝ってるように思いますけれど、
>>>> -std=iso9899:199409 はデメリットが大きいんじゃないかなぁ。
>>>> travisで動かすときだけとかでいいんじゃないかと思うんですが。
>> Travisの警告なんて誰も読んでないじゃないですか。できないことを言うのはやめましょうよ。
> 
>  警告じゃなくて,Travis でエラーが出たら気づく,という意味じゃないで
> しょうか.
> 
>  そういう意味で,Travis ではきついオプション,そうじゃないところでは,
> ゆるいオプションというのは選択肢に入りそうですね.
> 

ちょっと,宙ぶらりんになっているんですが,拡張ライブラリのビルド時にはゆ
るくする,という感じでよろしいんじゃないかと思います.

中田さん,こちらお願い出来ますか?

-- 
// SASADA Koichi at atdot dot net

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

* [ruby-dev:46193] Re: 拡張ライブラリの質問
  2012-10-02 11:55           ` [ruby-dev:46191] " SASADA Koichi
@ 2012-10-02 13:56             ` Kouhei Sutou
  2012-10-03  6:42               ` [ruby-dev:46195] " SHIBATA Hiroshi
  0 siblings, 1 reply; 12+ messages in thread
From: Kouhei Sutou @ 2012-10-02 13:56 UTC (permalink / raw
  To: ruby developers list

須藤です。

In <506AD646.8050001@atdot•net>
  "[ruby-dev:46191] Re: 拡張ライブラリの質問" on Tue, 2 Oct 2012 20:55:55 +0900,
  SASADA Koichi <ko1@atdot•net> wrote:

>>  そういう意味で,Travis ではきついオプション,そうじゃないところでは,
>> ゆるいオプションというのは選択肢に入りそうですね.
>> 
> 
> ちょっと,宙ぶらりんになっているんですが,拡張ライブラリのビルド時にはゆ
> るくする,という感じでよろしいんじゃないかと思います.
> 
> 中田さん,こちらお願い出来ますか?

あれ、これ入っていませんか?札幌でなかださんにお願いして入れ
てもらったつもりでした。

これじゃ足りないんでしたっけ。(まだ試していない。)
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?revision=36981&view=revision

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

* [ruby-dev:46195] Re: 拡張ライブラリの質問
  2012-10-02 13:56             ` [ruby-dev:46193] " Kouhei Sutou
@ 2012-10-03  6:42               ` SHIBATA Hiroshi
  0 siblings, 0 replies; 12+ messages in thread
From: SHIBATA Hiroshi @ 2012-10-03  6:42 UTC (permalink / raw
  To: ruby developers list

柴田です。

>> ちょっと,宙ぶらりんになっているんですが,拡張ライブラリのビルド時にはゆ
>> るくする,という感じでよろしいんじゃないかと思います.
>>
>> 中田さん,こちらお願い出来ますか?
>
> あれ、これ入っていませんか?札幌でなかださんにお願いして入れ
> てもらったつもりでした。
>
> これじゃ足りないんでしたっけ。(まだ試していない。)
>   http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?revision=36981&view=revision

笹田さん、須藤さん
r36981 以前のバージョンで拡張ライブラリのビルドエラーが発生を確認したのち、
本日の r37049 でビルド可能となっていることを確認しました。

この現象に困っていた一人ですので対応助かりました。
中田さんありがとうございます。

-- 
SHIBATA Hiroshi shibata.hiroshi@gmail•com
http://www.hsbt.org/

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

end of thread, other threads:[~2012-10-03  6:35 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-04 11:32 [ruby-dev:46105] 拡張ライブラリの質問 SASADA Koichi
2012-09-04 11:36 ` [ruby-dev:46106] 拡張ライブラリの質問 SASADA Koichi
2012-09-04 12:02   ` [ruby-dev:46107] " Nobuhiro IMAI
2012-09-04 23:20   ` [ruby-dev:46109] " KIMURA Koichi
2012-09-05  0:52 ` [ruby-dev:46110] " NARUSE, Yui
2012-09-05  2:11   ` [ruby-dev:46112] " Urabe Shyouhei
2012-09-05  3:17     ` [ruby-dev:46114] " NARUSE, Yui
2012-09-05  3:55       ` [ruby-dev:46116] " Urabe Shyouhei
2012-09-05  4:58         ` [ruby-dev:46117] " SASADA Koichi
2012-10-02 11:55           ` [ruby-dev:46191] " SASADA Koichi
2012-10-02 13:56             ` [ruby-dev:46193] " Kouhei Sutou
2012-10-03  6:42               ` [ruby-dev:46195] " SHIBATA Hiroshi

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).