[#33567] rational, complex and nuby — Tadayoshi Funaba <tadf@...>

ruby に rational と complex を組みこもうと試していて nuby という派生物

21 messages 2008/02/02

[#33580] Re: cgi.rb再構築案 — "Makoto Kuwata" <kwa@...>

桑田といいます。

17 messages 2008/02/03

[#33611] Solaris で timeout.rb が Segmentation fault する。 — shiiya@...

はじめまして。椎屋と申します。

15 messages 2008/02/06
[#33612] Re: Solaris で timeout.rb が Segmentation fault する。 — Nobuyoshi Nakada <nobu@...> 2008/02/06

なかだです。

[#33613] Re: Solaris で timeout.rb が Segmentation fault する。 — shiiya yoshitaka <shiiya@...> 2008/02/06

椎屋です。反応ありがとうございます。

[#33650] Re: Solaris で timeout.rb が Segmentation fault する。 — Nobuyoshi Nakada <nobu@...> 2008/02/08

なかだです。

[#33652] Re: Solaris で timeout.rb が Segmentation fault する。 — SATOH Fumiyasu <fumiyas@...> 2008/02/08

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

[#33621] EUC-KR <-> UTF-8 transition table — "Park Ji-In" <tisphie@...>

朴 芝印です。

15 messages 2008/02/06

[#33628] encdet.rb — Tanaka Akira <akr@...>

前から考えていたのですが、ファイル先頭の magic comment や

18 messages 2008/02/07

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

rational は floor、truncate、ceil、round を定義していません。Numeric

66 messages 2008/02/08
[#33663] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/08

他にも問題、課題はあると思います。すぐに解決できるものと、そうでないも

[#33664] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/08

ひとつ書き忘れました。

[#33707] Re: rational, complex and mathn — Yukihiro Matsumoto <matz@...> 2008/02/12

まつもと ゆきひろです

[#33714] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/12

> 原さんのrationalは導入予定がありますので、この機会にもう一度

[#33727] Re: rational, complex and mathn — Shin-ichiro HARA <sinara@...> 2008/02/13

原です。

[#33761] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/13

> 前にふなばさんと個人的なメールのやりとりで、結局また私がrationalをまと

[#33788] Re: rational, complex and mathn — Shin-ichiro HARA <sinara@...> 2008/02/15

原です。

[#33795] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/15

> > それなりに速くはなるし、単純なところでそれなりに満足していますが、一度、

[#33806] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/16

nurat 0.0.2 を出しました (ついでに nucomp も)。

[#33812] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/16

仕様を確認していきたいと思います。

[#33815] Re: rational, complex and mathn — Yukihiro Matsumoto <matz@...> 2008/02/16

まつもと ゆきひろです

[#33818] Re: rational, complex and mathn — Shin-ichiro HARA <sinara@...> 2008/02/16

原です。

[#33819] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/17

> > new!はRubyで実装しているためにだけ必要なので、Cで実装するな

[#33821] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/17

> Rational() は、1つか2つの引数をとる。

[#33827] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/17

> 実際的に重要な機能が Rational() という名前で固定されるのはクラスの定義

[#33845] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/18

もうあまり手を入れないでおこうと思ったのです、つい手を入れてしまいまし

[#33886] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/21

ちょっと実験してみました。原さんの rational は、かけ算割り算が速いので、

[#33888] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/21

で、考えていたんですが、目的は、最速の rational を作ることではなくて、

[#33903] Re: rational, complex and mathn — Shin-ichiro HARA <sinara@...> 2008/02/22

原です。

[#33905] Re: rational, complex and mathn — "NARUSE, Yui" <naruse@...> 2008/02/22

成瀬です。

[#33908] Re: rational, complex and mathn — Yukihiro Matsumoto <matz@...> 2008/02/22

まつもと ゆきひろです

[#33914] Re: rational, complex and mathn — Tadayoshi Funaba <tadf@...> 2008/02/23

> はい。Complexについても1.9の間に組み込んでよいと思います。

[#33679] bigdecimal — Tadayoshi Funaba <tadf@...>

bigdecimal/math.rb の BigMath は、利用者が include してつかうことを前

23 messages 2008/02/09
[#33680] Re: bigdecimal — Tadayoshi Funaba <tadf@...> 2008/02/09

Integer や Float に比べると、BigDicimal() は、1 や 1.1 を受けつけない、

[#33686] Re: bigdecimal — Tadashi Saito <shiba@...2.accsnet.ne.jp> 2008/02/10

斎藤と申します。

[#33698] Re: bigdecimal — Tadayoshi Funaba <tadf@...> 2008/02/11

> 仮にBigDecimal(1.1)を、(二進小数として)受け付けると、「BigDecimalでは、

[#33705] Re: bigdecimal — Yukihiro Matsumoto <matz@...> 2008/02/12

まつもと ゆきひろです

[#33726] Re: [ruby-cvs:22680] Ruby:r15443 (trunk): * bootstraptest/runner.rb, bootstraptest/test_method.rb, enc/depend, — "U.Nakamura" <usa@...>

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

14 messages 2008/02/13
[#33730] Re: [ruby-cvs:22680] Ruby:r15443 (trunk): * bootstraptest/runner.rb, bootstraptest/test_method.rb, enc/depend, — "NARUSE, Yui" <naruse@...> 2008/02/13

成瀬です。

[#33889] Re: [ ruby-Bugs-17454 ] irb crash while iterating over all objects — Urabe Shyouhei <shyouhei@...>

卜部です。ちょっとお知恵を拝借したく。

22 messages 2008/02/21
[#33892] Re: [ ruby-Bugs-17454 ] irb crash while iterating over all objects — Nobuyoshi Nakada <nobu@...> 2008/02/21

なかだです。

[#33909] Re: [ ruby-Bugs-17454 ] irb crash while iterating over all objects — Urabe Shyouhei <shyouhei@...> 2008/02/22

Nobuyoshi Nakada さんは書きました:

[#36081] Re: [ ruby-Bugs-17454 ] irb crash while iterating over all objects — TOYOFUKU Chikanobu <nobu_toyofuku@...> 2008/09/01

豊福です。

[#36085] Re: [ ruby-Bugs-17454 ] irb crash while iterating over all objects — Yukihiro Matsumoto <matz@...> 2008/09/01

まつもと ゆきひろです

[ruby-dev:33688] Re: erb.rb の仕様について

From: "Makoto Kuwata" <kwa@...>
Date: 2008-02-10 17:47:54 UTC
List: ruby-dev #33688
桑田です。
回答ありがとうございます。


2008/2/10 Masatoshi SEKI <m_seki@mva.biglobe.ne.jp>:
> >
> > 1. ERB#result() で、safe_level が設定されているときに
> >   Thread を生成してからその中で eval していますが、
> >   Thread を生成する理由を教えていただけませんか。
>
> たしか、$SAFEはより大きな値しか設定できないからだったと
> 思います。
> 呼び出し元の$SAFEが変わってしまうのを避けるためですね。
> 今ならもっとうまい方法があるかもしれません。

こちらに書いてありました。
http://www.ruby-lang.org/ja/man/html/_A5BBA5ADA5E5A5EAA5C6A5A3A5E2A5C7A5EB.html
$SAFE って、普通のグローバル変数だと思ってましたが、
そうではないんですね。

それでは、Thread を使うかどうかは仕様ではなく、
「safe_level を設定したときにそれがメインプログラムの
$SAFE に影響を及ぼさないこと」が仕様だという理解で
よろしいでしょうか。
もしそうなら、次のようにすれば Thread の生成を少なく
できていいのかなと思いました。

Index: lib/erb.rb
===================================================================
--- lib/erb.rb  (revision 15382)
+++ lib/erb.rb  (working copy)
@@ -733,7 +733,7 @@
   # code evaluation.
   #
   def result(b=TOPLEVEL_BINDING)
-    if @safe_level
+    if @safe_level && @safe_level > $SAFE
       th = Thread.start {
        $SAFE = @safe_level
        eval(@src, b, (@filename || '(erb)'), 1)
===================================================================


> > 2. 以下のメソッドやモジュールは #:nodoc: がついてますが、
> >   これらは非公開であり積極的に使うべきでないと考えて
> >   いいでしょうか。
> >   もっというと、これらをERBの仕様と考えていいかどうかと
> >   いうことなんですが。
> >   - ERB#def_method
> >   - ERB#def_module
> >   - ERB#def_class
> >   - ERB::DefMethod
>
>
> これらは積極的に使ってほしいメソッドです。
>
> rdocについてはどなたかが書いてくれたもので、公開(?)と関
> 連はありません。
>
> 気分的には、ERB::Compiler関連が非公開(といっても
> Rubyなので実質公開)です。
> ERB::Compilerを改造しても怒られないだろうなあ、と期待してます。
>

なんと、erb.rb の正式な仕様でしたか。了解しました。
では :nodoc: は取り除いた方がいいですね。

あと Compiler class は ERB の仕様には含めないものとして
考えます。


> >
> > 3. ERB#set_eoutvar() って必要でしょうか?
> >   ERB#initialize() の引数 _eoutvar を使えば変数名 _erbout
> > は
> >   変更できるから、set_eoutvar() は必要ないように思います。
>
> すっかり忘れていましたが、_erboutは変数名しか設定できな
> いから
> メソッドにしてフックできるようにしたようです。
>
> * http://www.druby.org/ilikeruby/erbquote.html
> * http://d.hatena.ne.jp/m_seki/20061031#1162304780

これって、非公開としている Compiler オブジェクトが
引数に必要なんですよね。設計としてはあんまりよろしく
ないと思いますが、どうでしょうか。
#そもそも set_eoutvar() は非公開メソッド?
#なら :nodoc: つけてほしいです。
#丁寧にも RDoc がついているから、ERB の仕様だと
#思ってしまいました。

というか、オプション引数のことをまったく考慮していない
CGI#initalize() とは違って、ERB#initialize() は引数で
eoutvar を取るようにちゃんと設計されているので、
できればこれで済むような設計がいいと思います。
ERB#eoutvar と ERB#eoutvar= はあってもいいと思いますが。

たとえばこんなのはどうでしょうか。要件を満たしているか
どうか分かりませんが。

class ERB
  def initialize(eruby_str, safe_level=nil, trim_mode=nil, eoutvar='_eoutvar')
    ...
    @compiler = Compiler.new
    @compiler.eoutvar = eoutvar
    ...
  end
  def eoutvar=(name)
    @compiler.eoutvar = name
  end
  def eoutvar
    @compiler.eoutvar
  end
end

あるいは ERB class を拡張するのではなくて、composition を使って
使用する Compiler class を指定できるようにするとか。

--
makoto kuwata

In This Thread