[#15357] Regexp literal and Regexp.new() — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
高橋征義です。むーん、問題のありかが違ったかも。
まつもと ゆきひろです
[#15369] ruby_init_loadpath() on Windows — Shugo Maeda <shugo@...>
前田です。
わたなべです。
[#15395] UnboundMethod.bind to derived class instance — nobu.nakada@...
なかだです。
まつもと ゆきひろです
なかだです。
[#15410] pp - pretty printing — Tanaka Akira <akr@...17n.org>
さて、time.rb が片付いたので、次は pp.rb のご意見募集です。
In article <hvod71ntocb.fsf@coulee.a02.aist.go.jp>,
In article <hvo1yhuqhvk.fsf@coulee.a02.aist.go.jp>,
高橋征義です。
In article <20011224230059I.maki@rubycolor.org>,
[#15411] inconsistency of STR_ASSOC — "K.Kosako" <kosako@...>
Version : 1.7 latest (2001-12-10)
[#15418] block for MatchData#select, Hash#select — nobu.nakada@...
なかだです。
[#15430] [BUG] Segmentation fault/ruby 1.7.2 (2001-12-10) — WATANABE Tetsuya <tetsu@...>
渡辺哲也です。
[#15435] Time#utcoff — Tanaka Akira <akr@...17n.org>
In article <hvosnahj702.fsf@coulee.a02.aist.go.jp>,
まつもと ゆきひろです
わたなべです。
In article <1008292110.329151.8468.nullmailer@ev.netlab.jp>,
まつもと ゆきひろです
In article <1008320813.231850.10341.nullmailer@ev.netlab.jp>,
In article <hvosnaeblzu.fsf@coulee.a02.aist.go.jp>,
[#15441] exported symbol — nobu.nakada@...
なかだです。
[#15456] irb/completion で Segmentation fault — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
まつもと ゆきひろです
On Sat, 15 Dec 2001 18:28:12 +0900
まつもと ゆきひろです
[#15464] gsub weirdness: gsub(/.*$/, "foo") — "Akinori MUSHA" <knu@...>
なんか gsub がおかしいような気がするんですが、これはこういう
青山です。
At Mon, 17 Dec 2001 05:22:53 +0900,
[#15466] listen for sockets in both IPv4 and IPv6 — Ryo HAYASAKA <ryoh@...>
早坂@北陸先端です.
[#15479] [BUG] thread with tempfile.rb — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
[#15500] Re: define_method() does not properly set noex (PR#218) — nobu.nakada@...
なかだです。
[#15505] ERb — m_seki@...
In article <20011220114249J.seki@mr.nasu.toshiba.co.jp>,
In article <m3eljr5o9m.wl@edwin.mva.biglobe.ne.jp>,
高橋征義です。
In article <20020215085405G.seki@mr.nasu.toshiba.co.jp>,
ただただしです。
まつもと ゆきひろです
新井です。
西山和広です。
>>>>> In [ruby-dev : No.15909]
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
なかだです。
At Mon, 18 Feb 2002 12:50:31 +0900,
なかだです。
In message <200202201003.g1KA3As11455@sharui.nakada.kanuma.tochigi.jp>
新井です。
あづみです。
[#15507] fileutils (2) — Minero Aoki <aamine@...>
あおきです。
高橋征義です。
あおきです。
高橋征義です。結論は最後に。
あおきです。
高橋征義です。
あおきです。
高橋征義です。
あおきです。
高橋征義です。
あおきです。
高橋征義です。
あおきです。
けいじゅ@日本ラショナルソフトウェアです.
[#15519] typo in tracer.rb (SCRIPT_LINES__) — sheepman <sheepman@...>
こんにちは。
なひです。
まつもと ゆきひろです
なひです。
[#15556] TCPSocket#open で Errno::EALREADY — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#15569] [REQ] File?chmod — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
[#15573] [patch] resolv.rb for win32 platform — Tietew <tietew-ml-ruby-dev@...>
Tietew です。
なかだです。
こんにちは、なかむら(う)です。
なかだです。
In message <20011228143615.32D8.TIETEW-ML-RUBY-DEV@tietew.net>
こんにちは、なかむら(う)です。
Tietew です。
[#15603] filename within eval — nobu.nakada@...
なかだです。
[ruby-dev:15410] pp - pretty printing
さて、time.rb が片付いたので、次は pp.rb のご意見募集です。
pp.rb (と prettyprint.rb) は、端的にいえば、indent してくれる p です。
つまり、p obj の結果の
#<PP:0x806486c @stack=[], @nest=[0], @buf=#<PP::Group:0x8064844 @tail=0, @singleline_length=9, @buf=[#<PP::Group:0x80647cc @tail=0, @singleline_length=9, @buf=[#<PP::Text:0x8064768 @text="[">, #<PP::Group:0x80646c8 @tail=1, @singleline_length=1, @buf=[#<PP::Text:0x8064664 @text="1">]>, #<PP::Text:0x80646b4 @text=",">, #<PP::Breakable:0x8064650 @indent=1, @sep=" ">, #<PP::Group:0x8064614 @tail=1, @singleline_length=1, @buf=[#<PP::Text:0x80645b0 @text="2">]>, #<PP::Text:0x8064600 @text=",">, #<PP::Breakable:0x806459c @indent=1, @sep=" ">, #<PP::Group:0x8064560 @tail=1, @singleline_length=1, @buf=[#<PP::Text:0x80644fc @text="3">]>, #<PP::Text:0x806472c @text="]">]>]>>
などという読む気にならない出力のかわりに pp obj は
#<PP:0x403279c
@buf=
#<PP::Group:0x4032666
@buf=
[#<PP::Group:0x4032666
@buf=
[#<PP::Text:0x40326de @text="[">,
#<PP::Group:0x4032666
@buf=[#<PP::Text:0x40326de @text="1">],
@singleline_length=1,
@tail=1>,
#<PP::Text:0x40326de @text=",">,
#<PP::Breakable:0x40326b6 @indent=1, @sep=" ">,
#<PP::Group:0x4032666
@buf=[#<PP::Text:0x40326de @text="2">],
@singleline_length=1,
@tail=1>,
#<PP::Text:0x40326de @text=",">,
#<PP::Breakable:0x40326b6 @indent=1, @sep=" ">,
#<PP::Group:0x4032666
@buf=[#<PP::Text:0x40326de @text="3">],
@singleline_length=1,
@tail=1>,
#<PP::Text:0x40326de @text="]">],
@singleline_length=9,
@tail=0>],
@singleline_length=9,
@tail=0>,
@nest=[0],
@stack=[]>
というように改行・インデントして出力を行ないます。
すこし探した範囲ではメーリングリストにはこのような機能に関する話題は見
当たらなかったのですが、RAA に登録した後に 2回反応が出ています。
[ruby-dev:14390] [Patch] pp.rb and debug.rb
[ruby-list:32832] irb & pp
私の目から見て議論が必要そうなところは次のようなところです。
* Wadler の pretty printing algebra を採用したのは正しかったのか?
機能が足りなくないか?
* inspect と pretty_print を両方実装する場合に関する考察
(一回考えておかないとなーと思いつつ今のところ困ってないので何も考え
ていない。)
あと、中身は技術的には
prettyprint.rb:
Wadler の pretty printing algebra の実装。
詳細を説明するのは面倒なのでここではしませんが、私の知っているこの
類の話の中でこれはもっとも単純なものです。詳細については中に書いて
ある参考文献に詳しく書いてあります。
pp.rb:
prettyprint.rb を利用したインデントつき p の実装。
というふたつのレイヤにわかれており、原理的にいえば prettyprint.rb は
pp.rb 以外からも使えるはずです。
興味のある人は試して下さい。
http://www.ruby-lang.org/~knu/cgi-bin/cvsweb.cgi/rough/lib/pp.rb?rev=HEAD&content-type=text/x-cvsweb-markup
http://www.ruby-lang.org/~knu/cgi-bin/cvsweb.cgi/rough/lib/prettyprint.rb?rev=HEAD&content-type=text/x-cvsweb-markup
--
[田中 哲][たなか あきら][Tanaka Akira]
「ふえろ! わかめちゃん作戦です$(C⊇」(Little Worker, 桂遊生丸)