[#35789] [Ruby 1.9 - Bug #407] (Open) String#<< — Shyouhei Urabe <redmine@...>

チケット #407 が報告されました。 (by Shyouhei Urabe)

13 messages 2008/08/06

[#35845] [Bug #437] test_strftime(TestTime) fails on Solaris — Shugo Maeda <redmine@...>

Bug #437: test_strftime(TestTime) fails on Solaris

24 messages 2008/08/13
[#35855] Re: [Bug #437] test_strftime(TestTime) fails on Solaris — "Shugo Maeda" <shugo@...> 2008/08/15

前田です。

[#35856] Re: [Bug #437] test_strftime(TestTime) fails on Solaris — SATOH Fumiyasu <fumiyas@...> 2008/08/15

さとうふみやす @ OSS テクノロジです。

[#35857] Re: [Bug #437] test_strftime(TestTime) fails on Solaris — Yukihiro Matsumoto <matz@...> 2008/08/15

まつもと ゆきひろです

[#35870] Re: [Bug #437] test_strftime(TestTime) fails on Solaris — "Shugo Maeda" <shugo@...> 2008/08/18

前田です。

[#35863] Refactoring of enumerating prime numbers — "Yugui (Yuki Sonoda)" <yugui@...>

Yuguiです。

20 messages 2008/08/16
[#35865] Re: Refactoring of enumerating prime numbers — keiju@... (keiju ISHITSUKA) 2008/08/17

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

[#35867] Re: Refactoring of enumerating prime numbers — "Yugui (Yuki Sonoda)" <yugui@...> 2008/08/17

Yuguiです。

[#35875] Re: Refactoring of enumerating prime numbers — keiju@... (keiju ISHITSUKA) 2008/08/19

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

[#35877] Re: Refactoring of enumerating prime numbers — Nobuyoshi Nakada <nobu@...> 2008/08/19

なかだです。

[#35882] Re: Refactoring of enumerating prime numbers — keiju@... (石塚圭樹) 2008/08/20

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

[#35904] [Feature:1.9] pack format 'm' based on RFC 4648 — "Yusuke ENDOH" <mame@...>

遠藤です。

14 messages 2008/08/21
[#36442] [Feature #471] pack format 'm' based on RFC 4648 — Yuki Sonoda <redmine@...> 2008/09/22

チケット #471 が更新されました。 (by Yuki Sonoda)

[#35906] %N for Time#strftime — "Shugo Maeda" <shugo@...>

前田です。

13 messages 2008/08/21

[#35986] 1.9と1.8で、delegateのインスタンスのクラス名の違う — Fujioka <fuj@...>

xibbarこと藤岡です。

17 messages 2008/08/26
[#35987] Re: 1.9と1.8で、delegateのインスタンスのクラス名の違う — Yukihiro Matsumoto <matz@...> 2008/08/26

まつもと ゆきひろです

[#35991] Re: 1.9と1.8で、delegateのインスタンスのクラス名の違う — keiju@... (石塚圭樹) 2008/08/26

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

[#35994] Re: 1.9と1.8で、delegateのインスタンスのクラス名の違う — Fujioka <fuj@...> 2008/08/27

藤岡です。

[#35998] Re: 1.9と1.8で、delegateのインスタンスのクラス名の違う — keiju@... (石塚圭樹) 2008/08/27

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

[#36066] Numeric#scalar? — Tadayoshi Funaba <tadf@...>

1.9 の Numeric#scalar? について、適当でないのでは (real? などのほうがい

24 messages 2008/08/31
[#36069] Re: Numeric#scalar? — Shin-ichiro HARA <sinara@...> 2008/08/31

原です。

[#36104] Re: Numeric#scalar? — Tadayoshi Funaba <tadf@...> 2008/09/02

> やはり、scalar? はずれているんじゃないかな。real? の方がいい

[#36122] Re: Numeric#scalar? — Shin-ichiro HARA <sinara@...> 2008/09/03

原です。

[#36133] Re: Numeric#scalar? — Tadayoshi Funaba <tadf@...> 2008/09/03

> ここで、scalar? を疑問視する理由を復習すると、たとえば、「複

[#36173] Re: Numeric#scalar? — Tadayoshi Funaba <tadf@...> 2008/09/05

1.9.1 までに時間がないので scalar? だけ何とかしたいと思っていましたが、

[#36183] Re: Numeric#scalar? — "Shugo Maeda" <shugo@...> 2008/09/06

前田です。

[#36186] Re: Numeric#scalar? — Shin-ichiro HARA <sinara@...> 2008/09/06

原です。

[ruby-dev:35883] Re: Refactoring of enumerating prime numbers

From: Nobuyoshi Nakada <nobu@...>
Date: 2008-08-20 03:13:59 UTC
List: ruby-dev #35883
なかだです。

At Wed, 20 Aug 2008 11:52:55 +0900,
石塚圭樹 wrote in [ruby-dev:35882]:
> >Prime.instance.eachというのは冗長に感じます。どうせならそのイン
> >スタンス自体をPrimeという定数にしてはどうでしょうか。
> 
> 私もそうなのかなぁ? と思いつつも, では, 元のクラスの名前はどうするんだ? 
> と思ったりもしてます.

class << (Prime = Object.new); end で。

> >Prime.eachを追加するだけでいいような気もしなくはないです。

> これって, Yugui さんの第2案:
> と近いですが, include Enumerable が入っていません. Enuerable である必
> 要はなく each だけあればよいってことです? 

Enumerableは入れ忘れですが、Generatorのように別クラスを介する必
要はないのではないかということです。

> あと, 別件で気になっていることが...  現行でもそうですが, 結構重要なク
> ラス変数の使われ方をしています. これらのクラス変数の組を概念的に取りま
> とめたクラスというものも考えられそうと言う気がしています.

それがPrime自身の役割なんじゃないかなぁと。

> また, 微妙にスレッドセーフでない気もしたりもしているので, そこも解消で
> きればなぁ. などと思ったりしています

そこは問題ですね。Prime#succのループをsynchronizeさせればいいで
しょうか。

ひとまず、Prime関係を別ファイルに切り分けるところまでやってしまっ
てはどうでしょうか。


Index: lib/mathn.rb
===================================================================
--- lib/mathn.rb	(revision 18717)
+++ lib/mathn.rb	(working copy)
@@ -60,4 +60,5 @@ class Prime
                                    #   n < Math.sqrt(@@next_to_check) })
   @@ulticheck_next_squared = 121   # @@primes[@@ulticheck_index + 1] ** 2
+  @@lock = Mutex.new
 
   class << self
@@ -82,4 +83,6 @@ class Prime
   def succ
     @index += 1
+    if @index >= @@primes.length
+      @@lock.synchronize do
     while @index >= @@primes.length
       # Only check for prime factors up to the square root of the potential primes,
@@ -97,4 +100,6 @@ class Prime
       @@next_to_check += 2 
     end
+      end
+    end
     return @@primes[@index]
   end


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

In This Thread