[#34261] ComplexFloat — "Kenta Murata" <muraken@...>

村田です.

117 messages 2008/04/06
[#34280] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/10

村田です.

[#34286] Re: ComplexFloat — Nobuyoshi Nakada <nobu@...> 2008/04/10

なかだです。

[#34288] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/10

むらたです.

[#34290] Re: ComplexFloat — "U.Nakamura" <usa@...> 2008/04/10

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

[#34293] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/10

むらたです.

[#34296] Re: ComplexFloat — "U.Nakamura" <usa@...> 2008/04/10

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

[#34298] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/10

むらたです.

[#34300] Re: ComplexFloat — Tanaka Akira <akr@...> 2008/04/10

In article <761216ce0804100221x67f10f12iab12b0e35b6f50e4@mail.gmail.com>,

[#34301] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/10

むらたです.

[#34303] Re: ComplexFloat — Yukihiro Matsumoto <matz@...> 2008/04/10

まつもと ゆきひろです

[#34314] Re: ComplexFloat — Tadayoshi Funaba <tadf@...> 2008/04/10

利点としては、拡張ライブラリが書きやすい、ということ。正当化の理由とし

[#34316] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/10

むらたです.

[#34317] Re: ComplexFloat — Tadayoshi Funaba <tadf@...> 2008/04/10

> 私にはいびつな進化という感じはしません.むしろ,せっかく C で実装できるのに

[#34318] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/10

むらたです.

[#34322] Re: ComplexFloat — Yukihiro Matsumoto <matz@...> 2008/04/10

まつもと ゆきひろです

[#34328] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/11

むらたです.

[#34331] Re: ComplexFloat — Yukihiro Matsumoto <matz@...> 2008/04/11

まつもと ゆきひろです

[#34340] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/11

むらたです.

[#34341] Re: ComplexFloat — Yukihiro Matsumoto <matz@...> 2008/04/11

まつもと ゆきひろです

[#34362] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/12

むらたです.

[#34363] Re: ComplexFloat — Tanaka Akira <akr@...> 2008/04/12

In article <761216ce0804120723n16bfbad7qdae90f142978d256@mail.gmail.com>,

[#34367] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/12

むらたです.

[#34368] Re: ComplexFloat — Tanaka Akira <akr@...> 2008/04/12

In article <761216ce0804121011h6132d58fh4916ecbb29d58690@mail.gmail.com>,

[#34369] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/12

むらたです.

[#34364] Re: ComplexFloat — Yukihiro Matsumoto <matz@...> 2008/04/12

まつもと ゆきひろです

[#34366] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/12

むらたです.

[#34386] Re: ComplexFloat — Yukihiro Matsumoto <matz@...> 2008/04/13

まつもと ゆきひろです

[#34415] Re: ComplexFloat — "Kenta Murata" <muraken@...> 2008/04/15

むらたです.

[#34439] Re: ComplexFloat — Shin-ichiro HARA <sinara@...> 2008/04/17

原です。

[#34442] Re: ComplexFloat — Yukihiro Matsumoto <matz@...> 2008/04/17

まつもと ゆきひろです

[#34451] Re: ComplexFloat — Shin-ichiro HARA <sinara@...> 2008/04/18

原です。

[#34455] Re: ComplexFloat — Tadayoshi Funaba <tadf@...> 2008/04/18

> 1. ComplexFloat を組込みにし、Complex を標準ライブラリとして提供する。

[#34457] Re: ComplexFloat — Shin-ichiro HARA <sinara@...> 2008/04/20

原です。

[#34458] Re: ComplexFloat — Tadayoshi Funaba <tadf@...> 2008/04/20

> 分かりににくかったですが、これは、ComplexFloat を含めた組込みの数体系が

[#34502] Re: ComplexFloat — sheepman <sh@...> 2008/04/24

こんばんは sheepman です。

[#34601] Re: ComplexFloat — Yukihiro Matsumoto <matz@...> 2008/05/07

まつもと ゆきひろです

[#34603] Re: ComplexFloat — keiju@... (石塚圭樹) 2008/05/07

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

[#34614] Re: ComplexFloat — Yukihiro Matsumoto <matz@...> 2008/05/08

まつもと ゆきひろです

[#34621] Re: ComplexFloat — keiju@... (石塚圭樹) 2008/05/08

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

[ruby-dev:34273] patch for [ruby-core:15551]

From: wanabe <s.wanabe@...>
Date: 2008-04-09 10:22:20 UTC
List: ruby-dev #34273
ワナベと申します。

[ruby-core:15551]に対するパッチを書きました。
Proc#curry で作られた Proc オブジェクトにブロックを渡せるようにしました。

proc_call() 中の BUILTIN_TYPE(proc->block.iseq) != T_NODE の意味が
よく分からなかったので外してしまいましたが、
何か特別な意図のある式なのでしょうか。

Index: proc.c
===================================================================
--- proc.c	(revision 15910)
+++ proc.c	(working copy)
@@ -496,8 +496,7 @@
     rb_block_t *blockptr = 0;
     GetProcPtr(procval, proc);

-    if (BUILTIN_TYPE(proc->block.iseq) != T_NODE &&
-	proc->block.iseq->arg_block != -1) {
+    if (proc->block.iseq->arg_block != -1) {

 	if (rb_block_given_p()) {
 	    rb_proc_t *proc;
@@ -1620,7 +1619,7 @@
 	arity = make_curry_proc(proc, passed, arity);
 	return arity;
     }
-    arity = rb_proc_call(proc, passed);
+    arity = proc_call(RARRAY_LEN(passed), RARRAY_PTR(passed), proc);
     return arity;
 }

Index: vm.c
===================================================================
--- vm.c	(revision 15910)
+++ vm.c	(working copy)
@@ -572,7 +572,7 @@
 	val = vm_eval_body(th);
     }
     else {
-	val = vm_yield_with_cfunc(th, block, self, argc, argv);
+	val = vm_yield_with_cfunc(th, block, self, argc, argv, blockptr);
     }
     return val;
 }
Index: vm_insnhelper.c
===================================================================
--- vm_insnhelper.c	(revision 15910)
+++ vm_insnhelper.c	(working copy)
@@ -644,7 +644,7 @@

 static inline VALUE
 vm_yield_with_cfunc(rb_thread_t *th, rb_block_t *block,
-		    VALUE self, int argc, VALUE *argv)
+		    VALUE self, int argc, VALUE *argv, rb_block_t *blockptr)
 {
     NODE *ifunc = (NODE *) block->iseq;
     VALUE val;
@@ -665,7 +665,15 @@
 		  self, (VALUE)block->dfp,
 		  0, th->cfp->sp, block->lfp, 1);

-    val = (*ifunc->nd_cfnc) (arg, ifunc->nd_tval, argc, argv);
+    if (blockptr) {
+	VALUE store_block = th->cfp->lfp[0];
+	th->cfp->lfp[0] = GC_GUARDED_PTR(blockptr);
+	val = (*ifunc->nd_cfnc) (arg, ifunc->nd_tval, argc, argv);
+	th->cfp->lfp[0] = store_block;
+    }
+    else {
+	val = (*ifunc->nd_cfnc) (arg, ifunc->nd_tval, argc, argv);
+    }

     th->cfp++;
     return val;
@@ -821,7 +829,7 @@
 	return Qundef;
     }
     else {
-	val = vm_yield_with_cfunc(th, block, block->self, argc,
STACK_ADDR_FROM_TOP(argc));
+	val = vm_yield_with_cfunc(th, block, block->self, argc,
STACK_ADDR_FROM_TOP(argc), 0);
 	POPN(argc); /* TODO: should put before C/yield? */
 	return val;
     }


-- 
ワナベ

In This Thread

Prev Next