[#43610] Re: [ruby-list:48149] Re: requireが配列を取れたら便利だと思うんだけど.. — Hiroshi Nakamura <nakahiro@...>

cnVieS1saXN0GyRCJCskaTt9JEMkRk1oJF4kNyQ/ISMkRyRiQjMkKyRKJD0kJiEjGyhCCgoyMDEx

12 messages 2011/06/02

[#43643] DateTime.new! and DateTime.jd — Aaron Patterson <aaron.patterson@...>

こんにちは、アーロンです。

25 messages 2011/06/07
[#43647] Re: DateTime.new! and DateTime.jd — Tadayoshi Funaba <tadf@...> 2011/06/07

blocker はお前だろ。

[#43648] Re: DateTime.new! and DateTime.jd — Yukihiro Matsumoto <matz@...> 2011/06/07

まつもと ゆきひろです

[#43651] Re: DateTime.new! and DateTime.jd — Tadayoshi Funaba <tadf@...> 2011/06/07

> うーん、ただでさえ日英のコミュニケーション障壁があるのに、よ

[#43653] Re: DateTime.new! and DateTime.jd — Aaron Patterson <aaron.patterson@...> 2011/06/07

2011/6/7 Tadayoshi Funaba <tadf@dotrb.org>:

[#43657] Re: DateTime.new! and DateTime.jd — Tadayoshi Funaba <tadf@...> 2011/06/07

皆さんってのに俺は入ってないみたいだな。

[#43661] Re: DateTime.new! and DateTime.jd — Yukihiro Matsumoto <matz@...> 2011/06/07

まつもと ゆきひろです

[#43662] Re: DateTime.new! and DateTime.jd — Tadayoshi Funaba <tadf@...> 2011/06/07

> Aaronが言ってる「リリース」は1.9.3のことだと思いますよ。

[#43645] Re: [ruby-core:36778] Re: 1.8.7 release next month — Urabe Shyouhei <shyouhei@...>

Moving to ruby-dev to understand strategies of backporting the Tk

13 messages 2011/06/07

[#43787] [Ruby 1.9 - Feature #4878][Open] CMath に frexp, ldexp, hypot の3関数は不要ではないか — Kenta Murata <muraken@...>

24 messages 2011/06/13
[#43788] Re: [Ruby 1.9 - Feature #4878][Open] CMath に frexp, ldexp, hypot の3関数は不要ではないか — Yukihiro Matsumoto <matz@...> 2011/06/13

まつもと ゆきひろです

[#43789] Re: [Ruby 1.9 - Feature #4878][Open] CMath に frexp, ldexp, hypot の3関数は不要ではないか — Tadayoshi Funaba <tadf@...> 2011/06/13

もう結論が出てしまったようですが、これは、元々 lib/complex.rb にあった

[#43794] Re: [Ruby 1.9 - Feature #4878][Open] CMath に frexp, ldexp, hypot の3関数は不要ではないか — Kenta Murata <muraken@...> 2011/06/13

=E3=82=80=E3=82=89=E3=81=9F=E3=81=A7=E3=81=99=E3=80=82

[#43795] Re: [Ruby 1.9 - Feature #4878][Open] CMath に frexp, ldexp, hypot の3関数は不要ではないか — Tadayoshi Funaba <tadf@...> 2011/06/13

> complex.rb をロードすると Math が CMath 相当に置き換わりますから、

[#43797] Re: [Ruby 1.9 - Feature #4878][Open] CMath に frexp, ldexp, hypot の3関数は不要ではないか — Kenta Murata <muraken@...> 2011/06/14

=E3=82=80=E3=82=89=E3=81=9F=E3=81=A7=E3=81=99=E3=80=82

[#43799] Re: [Ruby 1.9 - Feature #4878][Open] CMath に frexp, ldexp, hypot の3関数は不要ではないか — Yukihiro Matsumoto <matz@...> 2011/06/14

まつもと ゆきひろです

[#43800] Re: [Ruby 1.9 - Feature #4878][Open] CMath に frexp, ldexp, hypot の3関数は不要ではないか — Kenta Murata <muraken@...> 2011/06/14

=E3=82=80=E3=82=89=E3=81=9F=E3=81=A7=E3=81=99=E3=80=82

[#43803] Re: [Ruby 1.9 - Feature #4878][Open] CMath に frexp, ldexp, hypot の3関数は不要ではないか — Tadayoshi Funaba <tadf@...> 2011/06/14

> これに相当する事をやっているのが complex.rb なので、

[#43806] Re: [Ruby 1.9 - Feature #4878][Open] CMath に frexp, ldexp, hypot の3関数は不要ではないか — Yusuke ENDOH <mame@...> 2011/06/14

遠藤です。

[#43807] Re: [Ruby 1.9 - Feature #4878][Open] CMath に frexp, ldexp, hypot の3関数は不要ではないか — Tadayoshi Funaba <tadf@...> 2011/06/14

> 定義域を増やすだけにしよう、ということですよね。賛成です。

[#43809] Re: [Ruby 1.9 - Feature #4878][Open] CMath に frexp, ldexp, hypot の3関数は不要ではないか — Yusuke ENDOH <mame@...> 2011/06/14

2011年6月14日22:17 Tadayoshi Funaba <tadf@dotrb.org>:

[#43810] Re: [Ruby 1.9 - Feature #4878][Open] CMath に frexp, ldexp, hypot の3関数は不要ではないか — Tadayoshi Funaba <tadf@...> 2011/06/14

> 互換性がないという点では同じ話だと思うのですが……。

[#43811] Re: [Ruby 1.9 - Feature #4878][Open] CMath に frexp, ldexp, hypot の3関数は不要ではないか — Yusuke ENDOH <mame@...> 2011/06/14

2011年6月14日23:02 Tadayoshi Funaba <tadf@dotrb.org>:

[#43812] Re: [Ruby 1.9 - Feature #4878][Open] CMath に frexp, ldexp, hypot の3関数は不要ではないか — Tadayoshi Funaba <tadf@...> 2011/06/14

> いやあ、5 月末の feature freeze 時点では -2 を返していたはずなんですが、

[#43852] [Ruby 1.9 - Bug #4909][Open] trapハンドラは再入されてはいけないのではないか? — Motohiro KOSAKI <kosaki.motohiro@...>

11 messages 2011/06/20

[ruby-dev:43781] Re: [ruby-cvs:38869] nobu:r31690 (trunk): * gc.c (vm_xcalloc): use calloc provided by platforms.

From: Yutaka Kanemoto <kinpoco@...>
Date: 2011-06-13 10:47:19 UTC
List: ruby-dev #43781
金本と申します。

たびたびすみません。
おくったパッチはvm_xcalloc()の方がまちがっていたので、
すこし手直ししたものを送ります。
非常に場当たりなパッチで恐縮なのですが、
やりたいことの意図がつたわればと思っています。

よろしくお願いします。

2011年6月13日18:55 Yutaka Kanemoto <kinpoco@gmail.com>:
...
> ひと月ほど前の以下のvm_xcalloc()の導入時の変更で、
> 現状(r32051)でvm_malloc_prepare()にある720行目から724行目までのコードが、
> 実際のmalloc()時に反映されていません。
>
> gc.c@32051
>   714  static inline void
>   715  vm_malloc_prepare(rb_objspace_t *objspace, size_t size)
>   716  {
>   717      if ((ssize_t)size < 0) {
>   718          negative_size_allocation_error("negative allocation
> size (or too big)");
>   719      }
>   720      if (size == 0) size = 1;
>   721
>   722  #if CALC_EXACT_MALLOC_SIZE
>   723      size += sizeof(size_t);
>   724  #endif
>
> AIXでは0 size mallocでNULLが返るのでこまったことになっています。
>
> この関数でsizeの新しい数値を返してそれを利用するパッチを書いてみました。
> こんなのでよければコミットさせていただきますが、
> やっぱり返り値を変えるのはどうかと思ったので、
> 一度ご調査いただけますでしょうか?
> あるいは0 size mallocは今後は避けられないなどご意見いただきたいです。
> よろしくお願いいたします。

-- 
Yutaka KANEMOTO
http://d.hatena.ne.jp/kinpoco/

Attachments (1)

gc.diff (1.32 KB, text/x-diff)
Index: gc.c
===================================================================
--- gc.c	(revision 32051)
+++ gc.c	(working copy)
@@ -554,6 +554,7 @@
 	GET_THREAD()->errinfo = nomem_error;
 	JUMP_TAG(TAG_RAISE);
     }
+    abort();
     rb_thread_raised_set(th, RAISED_NOMEMORY);
     rb_exc_raise(nomem_error);
 }
@@ -711,7 +712,7 @@
 
 static void vm_xfree(rb_objspace_t *objspace, void *ptr);
 
-static inline void
+static inline size_t
 vm_malloc_prepare(rb_objspace_t *objspace, size_t size)
 {
     if ((ssize_t)size < 0) {
@@ -727,6 +728,7 @@
 	(malloc_increase+size) > malloc_limit) {
 	garbage_collect_with_gvl(objspace);
     }
+    return size;
 }
 
 static inline void *
@@ -757,7 +759,7 @@
 {
     void *mem;
 
-    vm_malloc_prepare(objspace, size);
+    size = vm_malloc_prepare(objspace, size);
     TRY_WITH_GC(mem = malloc(size));
     return vm_malloc_fixup(objspace, mem, size);
 }
@@ -843,11 +845,10 @@
 static void *
 vm_xcalloc(rb_objspace_t *objspace, size_t count, size_t elsize)
 {
+
     void *mem;
-    const size_t size = xmalloc2_size(count, elsize);
-
-    vm_malloc_prepare(objspace, size);
-    TRY_WITH_GC(mem = calloc(count, elsize));
+    const size_t size = vm_malloc_prepare(objspace, xmalloc2_size(count, elsize));
+    TRY_WITH_GC(mem = calloc(1, size));
     return vm_malloc_fixup(objspace, mem, size);
 }
 

In This Thread