[#34011] Should --verbose be equal to -v ? — Yugui <yugui@...>

Yuguiです。

15 messages 2008/03/10
[#34012] Re: Should --verbose be equal to -v ? — Yukihiro Matsumoto <matz@...> 2008/03/10

まつもと ゆきひろです

[#34105] rational.rb, complex.rb and mathn.rb — Tadayoshi Funaba <tadf@...>

rational と complex が組み込みになったことで、lib/mathn.rb の意義は薄

29 messages 2008/03/22
[#34106] Re: rational.rb, complex.rb and mathn.rb — Tadayoshi Funaba <tadf@...> 2008/03/22

現時点で rational.rb と complex.rb を残しているのは、それが無難だから

[#34107] Re: rational.rb, complex.rb and mathn.rb — Tadayoshi Funaba <tadf@...> 2008/03/22

で、かなり選択肢を絞った叩き台です。

[#34120] Re: rational.rb, complex.rb and mathn.rb — keiju@... (石塚圭樹) 2008/03/24

けいじゅ@いしつかです.

[#34125] Re: rational.rb, complex.rb and mathn.rb — Shin-ichiro HARA <sinara@...> 2008/03/25

原です。

[#34130] Re: rational.rb, complex.rb and mathn.rb — Tadayoshi Funaba <tadf@...> 2008/03/25

> 私も Complex の組み込みは Rational とは比較にならないくらい、仕様が決め

[#34158] Complex組み込み — Masahiro TANAKA <masa16.tanaka@...>

Complexが組み込みになるそうですが、これはcomplex.rbを踏襲して、

49 messages 2008/03/27
[#34161] Re: Complex組み込み — Shin-ichiro HARA <sinara@...> 2008/03/28

原です。

[#34168] Re: Complex組み込み — Tadayoshi Funaba <tadf@...> 2008/03/28

> 今までの Complex は、complex.rb にほぼ残して、たとえば Rational 成分

[#34186] Re: Complex組み込み — Shin-ichiro HARA <sinara@...> 2008/03/31

原です。

[#34187] Re: Complex組み込み — Tadayoshi Funaba <tadf@...> 2008/03/31

> そうです。Complex が難しい、という話を書いておくと、

[#34193] Re: Complex組み込み — Yukihiro Matsumoto <matz@...> 2008/03/31

まつもと ゆきひろです

[#34203] Re: Complex組み込み — Tadayoshi Funaba <tadf@...> 2008/04/01

> |僕としては、/ 演算子の振舞いについて前向きに検討してほしいです。

[#34215] Re: Complex組み込み — Yukihiro Matsumoto <matz@...> 2008/04/02

まつもと ゆきひろです

[#34166] Re: Complex組み込み — Tadayoshi Funaba <tadf@...> 2008/03/28

> となるようですが、別の実装として、

[ruby-dev:34100] delegate Kernel#{gets,readline,readlines} to ARGF

From: Nobuyoshi Nakada <nobu@...>
Date: 2008-03-20 14:54:05 UTC
List: ruby-dev #34100
なかだです。

Kernel#putsやKernel#putcが$stdoutに委譲するように、Kernel#getsや
readlineなどもARGFに委譲するようにしてはどうでしょうか。


Index: io.c
===================================================================
--- io.c	(revision 15813)
+++ io.c	(working copy)
@@ -5228,6 +5228,16 @@ argf_lineno_setter(VALUE val, ID id, VAL
  */
 
+static VALUE argf_gets(int, VALUE *, VALUE);
+static VALUE
+rb_f_gets(int argc, VALUE *argv, VALUE recv)
+{
+    if (recv == argf) {
+	return argf_gets(argc, argv, argf);
+    }
+    return rb_funcall2(argf, rb_intern("gets"), argc, argv);
+}
+
 static VALUE
-rb_f_gets(int argc, VALUE *argv)
+argf_gets(int argc, VALUE *argv, VALUE argf)
 {
     VALUE line;
@@ -5244,5 +5254,5 @@ rb_gets(void)
 
     if (rb_rs != rb_default_rs) {
-	return rb_f_gets(0, 0);
+	return rb_f_gets(0, 0, argf);
     }
 
@@ -5274,6 +5284,16 @@ rb_gets(void)
  */
 
+static VALUE argf_readline(int, VALUE *, VALUE);
 static VALUE
-rb_f_readline(int argc, VALUE *argv)
+rb_f_readline(int argc, VALUE *argv, VALUE recv)
+{
+    if (recv == argf) {
+	return argf_readline(argc, argv, argf);
+    }
+    return rb_funcall2(argf, rb_intern("readline"), argc, argv);
+}
+
+static VALUE
+argf_readline(int argc, VALUE *argv, VALUE argf)
 {
     VALUE line;
@@ -5281,5 +5301,5 @@ rb_f_readline(int argc, VALUE *argv)
     if (!next_argv()) rb_eof_error();
     ARGF_FORWARD(argc, argv);
-    line = rb_f_gets(argc, argv);
+    line = argf_gets(argc, argv, argf);
     if (NIL_P(line)) {
 	rb_eof_error();
@@ -5299,6 +5319,16 @@ rb_f_readline(int argc, VALUE *argv)
  */
 
+static VALUE argf_readlines(int, VALUE *, VALUE);
 static VALUE
-rb_f_readlines(int argc, VALUE *argv)
+rb_f_readlines(int argc, VALUE *argv, VALUE recv)
+{
+    if (recv == argf) {
+	return argf_readlines(argc, argv, argf);
+    }
+    return rb_funcall2(argf, rb_intern("readlines"), argc, argv);
+}
+
+static VALUE
+argf_readlines(int argc, VALUE *argv, VALUE argf)
 {
     VALUE line, ary;
@@ -6903,8 +6933,8 @@ Init_IO(void)
     rb_define_method(rb_cARGF, "read",  argf_read, -1);
     rb_define_method(rb_cARGF, "readpartial",  argf_readpartial, -1);
-    rb_define_method(rb_cARGF, "readlines", rb_f_readlines, -1);
-    rb_define_method(rb_cARGF, "to_a", rb_f_readlines, -1);
-    rb_define_method(rb_cARGF, "gets", rb_f_gets, -1);
-    rb_define_method(rb_cARGF, "readline", rb_f_readline, -1);
+    rb_define_method(rb_cARGF, "readlines", argf_readlines, -1);
+    rb_define_method(rb_cARGF, "to_a", argf_readlines, -1);
+    rb_define_method(rb_cARGF, "gets", argf_gets, -1);
+    rb_define_method(rb_cARGF, "readline", argf_readline, -1);
     rb_define_method(rb_cARGF, "getc", argf_getc, 0);
     rb_define_method(rb_cARGF, "getbyte", argf_getbyte, 0);


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

In This Thread

Prev Next