rubyを語るスレッド 4

このエントリーをはてなブックマークに追加
UNIX世界にRubyを啓蒙するべく、
オブジェクト指向スクリプト言語Rubyについて語ろう。

= 前スレ
:rubyを語るスレッド 3
http://pc.2ch.net/test/read.cgi/unix/1045705000/l50

= 過去スレ
:rubyを語るスレッド 2
http://pc.2ch.net/test/read.cgi/unix/1040496222/ (dat落ち)
:rubyを語るスレッド
http://pc.2ch.net/unix/kako/1018/10189/1018967064.html

= 関連リンク
:公式サイト
http://www.ruby-lang.org/
:RubyGarden
http://www.rubygarden.com/
:RubyCentral
http://www.rubycentral.com/
:Rubyist!
http://www.rubycolor.org/r/
:RNN
http://rnn.sourceforge.jp/modules/news/
2ゲットだーヨ
 ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧ ∧   ダーヨ!!
  (´ー` )   ̄∨ ̄ ̄
  \ <    ∧∧     /|      (´´
    \.\_(´ー` )__/|' /    (´⌒(´
     ⊂ _⊂ ___`つつ≡(´⌒;;;≡≡≡≡
              (´⌒(´⌒(´⌒;;
      ズザネ━━━━━━━━━━━━━━━ヨッ
どうせ立つと思ってたけどさ。

「啓蒙」とか書き加わってるからカチンとくるわけで。
>>3
最近は>>1で煽りを入れるのがunix板の流行らしいからね。
で、ツッコむと荒らし認定される
板違い。↓でやれ。

Ruby について Part 4
http://pc2.2ch.net/test/read.cgi/tech/1056944114/
そんな流行ネーヨ
↓↓↓↓以下、板違いDQNドモの屁理屈大会↓↓↓↓
>>4
最近も何も、前スレの1のコピペだろ、これ。
>>8
>>4 は「最近は・・・」とほざく新参者だな。許してやれ。
C#.NETの次期バージョンに
イテレータが導入され、yieldキーワードが
導入されるようです。

yieldっていうキーワード、rubyとCLU以外で使われているのですか?

MSはこの単語、どこからとったのだろう?
ttp://www.microsoft.com/japan/msdn/vs/vcsharp/vbconCProgrammingLanguageFutureFeatures.asp

>>8-9
前スレの>>1-7のコピペだろ、これ。
>>10
うるせーよ
どうせRubyは.Net陣営に組み込まれないマイナー言語
(´`c_,'` )プッ F#ですらあるのに

どうせMSはRUDYをぱくった!とかいうんだろ
半島のキチガイみたいに
>>10
yield自体の起源はたぶんCLUだと思われ。

C#は知らんけどPythonもyieldが追加されてる。
これはRubyから採り入れたっぽい。
まだ__future__をimportしなきゃいけないようだから予定かも知れないが。
変わったテンプレだなぁ
そーいや、最初なかなか yield ってのが理解できんかった。
そのうちふと、与えられたlambda式を funcallしてるだけじゃんと
気付いてからよく理解できたけど。
>>14
RDだね。
正直に告白します。
今までamstdの名前の由来を知りませんでした。
今までずーっと読み方わからないから脳内変換して
「アムステルダム」って読んでいました。
とってもオサレな名前だなーって思っていました。
ごめんなさい。
違うよ。冒頭のデジャブめいたテンプレwのこと >>16
>>17
同じく。
>>17,19
「スタジオ エッチ」という言葉に聞き覚えは?
スタジオ・エッジならなんとなく。
stdio.hか・・・
stdioはステという方針で。
>>23
djb 厨か・・・
>>24
[ruby-talk:36757]
>>25
その話自体は昔からよく聞くのだけど、要するに
「従来と比べてより下位のレベルで出入力を叩く」
ということ?
すなわち「ポータブル」なコードではなくなり、
コード量が増えメンテの手間も増えても、
もたらされる利益の方が大きいという事なのか。

いわばANSIを捨てるという行為は、時代に逆行する
気もするが…「使う側」の消費脳力最小化を目標とする
Rubyは、「作る側」の消費脳力増大などもろともしないと
いう事か。
>>26
話をI/Oのコードに限れば、そもそもとっくに「ポータブル」ではない。
stdioレベルでは互換性があってもPOSIXレベルでは互換性のない
プラットフォームの場合、ランタイムのコードとRuby側の非stdio部の
コード辻褄を合わせるのは難しい。
それなら最初からstdioを捨てた方が環境依存部分が減ることになる。

脳力の話は……あなたはRubyを作る側? 使う側?
2826:03/08/14 22:17
>>27
いまいち判然としないけど、要するにPOSIX依存なコードが
既にある程度入っている、という事でいいのでしょうか。
この板で言うのもなんだが、RubyにおけるUNIX中心主義を
加速させる変更になるのなら、あまり好かないかも。

もちろんこういう基礎的な話を知らないくらいだから、(ほぼ)使う側ですが。
個人的に、少し作る側が気になり出したので。
>>28
作る側が気になるならruby-dev検索すればすぐわかる。
わかったら問題点箇条書にしてここに書け!オネガイシマス
なぜstdioを使うことが問題になるかというと、rubyのthread&IO管理から見え
ないところでバッファリングされてしまうから。

>>26のいうようにデメリットもたしかに大きいのだけれど、stdioがそもそも
threadを考慮していない(環境もある)以上、あまり選択の余地がない。

「Ruby*を*作る側」の消費脳力増大はもともと気にしていない。全然。
作る側は好きでやってるんだから好きなだけ苦労させてやればいいのだ。
どうしても気になるなら手伝ってやれ。
入出力の抽象化レイヤを間に入れて差し替え可能にして入出力には
抽象化レイヤーを使え、ということにしないのかな。

スレッドはまともに使えないけれどもポータビリティの高い
stdio.h による実装と、今度採用するという方式による実装の、ど
ちらを使うか実行時に簡単に変えられるような。

それから、たまにParmみたいなUNIXからほど遠いシステムでRubyイ
ンターブリタを使いたい、ということがないですか。そんなときに
インタープリタ部分がANSI Cだけでも簡単にコンパイルして使える
といいな、と思うことがある。

ANSI Cだけの部分・システムに依存する部分・両者をつなぐ抽象化
レイヤ、こういったことが、rubyのソースレベルで明確に分離して
ればいいな、なんてね。ソース見てもよくわからんけど、すでにそ
うなってる?
>>32
今はなってないけど、その意見は参考にさせてもらおう。

> それから、たまにParmみたいな
Palm?
>>33
matz?おながいしまつ。
palmでした。間違ってた。
Ruby 自体がスレッドセーフになるのまだぁ?
>>34
ちゃう。

>>35
Rite以降。
37あぼーん:あぼーん
あぼーん
38あぼーん:あぼーん
あぼーん
>>32
えー、実行時は嫌だなあ。せめてコンパイル時にしようよ。
実行時にそういう基本的なところが切り替わったりすると
無駄にバグが増えるだけだ。
コンパイル時なんてカコワルイ。rubyなのに。
そのために抽象化レイヤ入れるんだしね。
>>40
大域的に影響を与える変更が実行時に起こるなんて考えられない。
一番現実味があるのは、configure時のオプションだろうな。
実行時に*勝手に*切り替わるのはもちろんいや。そりゃそうでしょう。
require 'stdio_io' とすると IO.gets の実装が切り替わる
というのでもいやですか。
どうせstdio自作せずに今のままいくともれは思う
自作だとstdio使う拡張ライブラリと相性悪そう
>>32のいう「ポータビリティの高い」「今度採用するという方式」というのは
あくまでもrubyの内部的な実装の話だから、Rubyレベルでのインターフェース
が変わってしまっては意味がない。

>>44
もしstdioを独自に使ってるのがあるとしたら、それは現時点でもスレッドと
非常に相性が悪い。
>>43
require では解決になってない。
まず require 'stdio' するライブラリとしないライブラリが混ぜて使えなくなる。
次に、stdio をつかってて、バッファに読んで、新しい io に切り替えると
バッファの中身が黙って捨てられることになる。逆も同じ。

デメリットに比べてメリットがなさすぎるな。
PerlIOを実装すれば解決
4832=43:03/08/16 09:51
>>46
> まず require 'stdio' するライブラリとしないライブラリが混ぜて使えなくなる。
例えばこういうのは? 簡略化して書いたつもり...

# io.rb or io.c or その他どこか
class IO # IO抽象化レイヤ
@__default_impl_class__ = NewIO::Implementation # default,過去と互換性の高い実装がよい
def self.set_default_implementation(new_impl_class)
@__default_impl_class__ = new_impl_class
end
def initialize(...)
@__impl__ = self.class.class_eval{ @__default_impl_class__ }.new(...)
...
end
def gets(rs) @__impl__.gets(rs); end
... is_a? などを小細工
end

# stdio_io.rb or stdio_io.c or その他どこか
module StdIO
class Implementation
def gets(rs) stdioによる実装; end
end
end
# new_io.rb or new_io.c or その他どこか
moudle NewIO
class Implementation
def gets(rs) newioによる実装; end
end
end
4932=43:03/08/16 09:53
(続き)
# 使い方
IO.new.gets => デフォルト実装のgetsの結果
IO.set_default_implementation StdIO::Implementation
IO.new.gets => stdio_ioの...
NewIO::IOImpl.new.gets => new_ioの...
# くどいのでこのくらいにしとく

>>46
> 次に、stdio をつかってて、バッファに読んで、新しい io に切り替えると
> バッファの中身が黙って捨てられることになる。逆も同じ。

IOのインスタンス生成時に実装が決定して、そのIOオブジェクトの実装を途中
で変えられなくすれば、いままでどおり普通に使う分にはそんなに問題ないで
しょ。それ以上のことは使う側の責任。IOの実装を明示して使うやつは意味や
副作用をわかって使えってことで。

ここまでは本質的な話じゃないので、あまりつっこまないでよ。
グタグタとマジレスしちゃったじゃん。
できる・できないの話ならできるでしょ。まちがってますかね。

> デメリットに比べてメリットがなさすぎるな。

メリットがあるかと問われると...そうなのかもしれない。ま、コンパイル時
レベルのことでもいいんです。実のところ現状のrubyでもじゅうぶん気に入っ
てるので。どうせならこういうのがいいなという私のあまり強くはない希望を
書いてみたまでです。
matzさんって言語オタクなのに、なんで結婚できたのか
というよりも、むしろなんで結婚したんだろうか。
奥さんは影の言語オタクなの?
そうであれば納得がいくけれども、そうでなければ、
言語の話が家庭でできずに可哀想だ。
気球つながり?
>>50
なんで言語オタクが言語の話しかできないとか思い込んでるの?
でも、結婚は宗教と関係あるかもね。

>>51
何と何が気球つながり?
>>51
禿しく人違いの伊予柑。
54名無しさん@お腹いっぱい。:03/08/16 23:11
>>52
宗教と言っても、モルモン教だからなあ。
モルモン教徒は、モルモン教徒同士じゃないと結婚できない。
真面目に神殿に通っていると結婚相手を紹介してもらえるのです。
実際にその人と結婚するかどうかはともかく。
っつーか、松本さんは外見こそオタク然だが、さわやかな並以上のナイスガイで知識人ですよ。
惚れる女もいるさ。

おれも入信しようかな。。。と思ってる奴は挙手。
57名無しさん@お腹いっぱい。:03/08/17 03:39
>>56
多妻婚を、今でも認めているグループなら入信してもいいかな(笑)
http://www.gospeljapan.com/csd/980906.htm
>>57
もまえにそんな甲斐性あんのかYO!
50のオタク像が古いのだ
とはいうもののそういう人も多いけど実際は
60あぼーん:あぼーん
あぼーん
今思いついたが、Pairクラスってどうよ。

そうすればCレベルrb_assoc_new(first, second)が必要なくなり、
余計無なmallocを減らすことができるし、
Rubyレベルでも何かと使い道はあるかと思う。
構造体はこんな感じで。
struct RPair {
struct RBasic basic;
VALUE first;
VALUE second;
};
何に使うのよ。
>>62
現状では「値を二つ持つオブジェックト」を要素が二つある配列として表現しているが、
それをPairと置き換えることでよりプログラムの意味が明確になる。

>>63
3つの場合はどうするのさ。
>>63
「意味が明確になる」っていうのが良く分からん。
>>64の言うように、配列を用いる事で
より少ないルールでかつ汎用的に扱えるのだから、
現状の方がベターじゃない?
>>63
言いたい事はわかるがRubyの方針と合わんと思う。
コレクションクラスを細分化する代わりにArrayをオールマイティ化している言語ですよ?
>>65
Cレベルで定義されている配列生成APIは「空配列」と「二つの値を持つ配列」
それと「任意の数の値を持つ配列」 で、「二つの値を持つ配列」のAPI(rb_assoc_new)
は殆ど要素を追加したり削除したりはしない。つまり、配列をPairとして使ってるわけだ。
この時、「この配列はPairとして使っている」ってことはプログラマが覚えておかなきゃいけないが、
Pairを使うことでコードにその意味を記すことができる、と。

>>66
そうかな。
Pairくらいあったほうがいいと思うんだが。
>>67
ほほぅ。
>>67
Pairってものがいまいちわからん
>>67
それが実現されるとスクリプトのレベルでユーザーが
どんな恩恵を受けるのか具体例があれば書いて欲しい。
配列で書いた場合とPairで書いた場合ってのがあればイイネ
行番号が扱えるtlexホスィ


・・・とここで言ってみるテスト。
73名無しさん@お腹いっぱい。:03/08/18 03:56
「pair があったほうが良い」と言うのは、「型があったほうが良い」と言うのと
同じようなもの。

>>61

ふつー
struct RPair {
struct RBasic basic;
VALUE car;
VALUE cdr;
};
Pairは大クラス主義と真っ向勝負だから無理として、
言語機能として意味があるのはTapleだろう。
引数や多重代入の意味論は整理されるかも知れない。
けどapplyがないとね。
Tapleってなに?
[ruby-talk:79280] はどうよ?
78名無しさん@お腹いっぱい。:03/08/18 13:48
>>76
表のこと
Tuple?
Table?
Tuple は Struct とは違うの?
Tupleってなんなのか(どんなものを想定しているのか)定義を述べてくれ。
二の腕の感触
みんなプログラマなんすか?
で、Taple か Tuple かどっちだ?
>>81
それは「たぷたぷ」
タプルタプルした二の腕
tuple はいくつかのものの組。
プログラミング言語では引数のリストを表すのに使うのが典型的。
>>87
その典型的な例をいくつかキボン。
f(x, y, z)
↑これが tuple の例?

じゃぁ tuple を用いない例は?
リストでも使えよ。
pythonにはtupleとlistがあるね。俺はtuple要らんとおもうけど。
MLにもtupleとlistがあるYO!
MLではlistの要素は全部同じ型じゃないといけない。
関数の引数は必ず一個。
なのでtupleを使うこともあるかも。
でもカリー化しちゃってもイイ!
tupleは要するに直積のようなもんでござる。
C++ではTupleを用いて多重代入を実現している(言語仕様/標準ライブラリには無いが)

http://boost.cppll.jp/HEAD/libs/tuple/doc/tuple_users_guide.html から引用

int i; char c; double d;
tie(i, c, d) = make_tuple(1,'a', 5.5);
std::cout << i << " " << c << " " << d;


>>80
Structとの違い:
・定義すること無しに作成できる
・フィールドの順番に意味がある
・名前(タグ)を持たない

ってことくらいかな?
で、RubyでTupleがあれば何が便利になる?
ファンクショナルになるというオチか?
例えば、Python の tuple は immutable list のようなものだけど、
それだけだと取り込む魅力はなさげ。

tuple が直積の抽象化だとすると、任意の x について
Tuple.new(x) == x && x == Tuple.new(x) && not Tuple.new(x).equal?(x)
になるのかな。
>>95
別に何も

複雑怪奇な多重代入の仕様を、少し整理してくれないかなぁ、というだけだろ
意味がよくわからない。
>>98
今のArray絡みの問題がそっくりTupleに移動するだけと思われ。
Array絡みの問題?
前スレで、Solaris 8 で 1.8 が落ちるって人がいたと思うけど、
[ruby-talk:79923] にパッチが出たでよ
[ruby-dev:21225]でも、まったく同じパッチが…
こういう事もあるのね。
# でも二時間差で、やっぱりNobu氏の勝利。
でもmake testが通らない罠。
どうやったらnobuさんのようにパッチを
ガンガン書けるようになるんですか?
書いたもの勝ち。バグっていても。
なんか変更してcvs diffすればパッチはできるぞ。
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。

BugのないrubyにnobuさんのパッチがあたってBugが増加?
「私とrubyのパッチ書くのとどっちが大切なのよ!」とか言われて
ないだろうか。nobuさん。
「rubyのパッチ」で話が通じる女なんていないと思われ。
[ruby-talk:80000]キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

…おもしろくない話だな。
>>110
そうでもないだろう。少なくとも俺が前付き合ってたのにはたぶん
通じる(ように教育してしまった)。
Windowsのペイントでてきとーなお絵描きして遊んでた人間が、最後には
「ばしばしUNIXのコマンド叩けるようになりたい」となってしまい。(イタィ

んで>>109のような状況にもなったりして、結局は別れたという落ちで…(イタタタ
ペアプログラミングとかペアデバッグとかすればよかったのに。
だよな。なんでバシバシUNIXコマンド叩けるところまで
調教しなかったんだ?もったいない。
「変数が容器だなんておかしいわプンプン。変数てのは名札なの!」
と言える程度には調教しとけ
バラストのメタファがわからん
気球
>>117
風船おじさんってこと?
バラストってのはこのへんからだろう。
http://nokada.jin.gr.jp/t/20030803.html#p01
しかし、質問自体がものすごい勢いで流されたな。
TMailの質問はあおきさんじゃなきゃ分からんってば。
>>121
そういえば、最近 install.rb を読んだんだが、動的杉。

そうか? net/http.rbとかのがすごいと思うぞ。
どっちがすごい、という話じゃないだろ。
俺定義キター!
>>124
動的さが。
Net::HTTP.version_1_1
Net::HTTP.version_1_2
でバージョンごとの挙動をスイッチングて…

焼肉で読んだ、ucb て打つと /usr/ucb の下にコマンドが現れる UNIX のはな
しを思い出した。
現れるんじゃなくて、PATHに/usr/ucbが追加されんじゃないのか?
どっちの動的さがすごい、という話じゃないだろ。
違うのか?
あってると思うYO
違うと思うYO
で、1.8.1はまだですか、と
クリスマスくらいまで待て。
(しつこいけど) shim まだぁ?
shim使わないで1.8使え。
>>136
unstable なバージョンは使えません。
stableなバージョンなどない!
>>137
1.8.0は stable version じゃなかったっけ?。
(安定してるかどうかはともかく。)
>>139
ちなみに、そうです。
どこがどう stable なのか説明したまえ
仕様がstable?
>>139
stable version と銘打った unstable なバージョンは使えません。
shimはその1.8の仕様に則ってるんだから、どっちにしてもだめだろ。
145名無しさん@お腹いっぱい。:03/08/31 03:28
Matz にっきが死んでいるみたいです。
Matz さん死んじゃった?
プログラマはコードで語るって言ってたし。
もしMatzさんがいなくなったと仮定して、その後、Rubyはどうなるんだろう?
148名無しさん@お腹いっぱい。:03/08/31 16:23
そんなことより/stand/sysinstallからパッケージ見てたら
「ja-gorua0.6」というのがあったんですけど何なんですか?
説明には「gtk+ on ruby user agent for 2ch BBS」とか書いてたように
記憶しているのですが…(うろ覚え)
goRua(Ruby/Gtkによる2chブラウザ)ってどうよ。
http://pc.2ch.net/test/read.cgi/unix/1008120213/

これのこつ?
150名無しさん@お腹いっぱい。:03/08/31 20:51
Matzさん故障?
matz壊れた
>>147
LarryがParrotの開発を放り出して開発を継続します(嘘。
153Larry:03/08/31 23:03
いやー、これでやっと真珠を捨てられるよ。
(゚Д゚)ゴルァ!!
Matzさん生きてたー
箱厨うざい。
Rubyのメソッドテーブルって、スーパークラスのメソッドも全て含めた仮想テーブルには出来ないのかな
後からメソッドを追加することもできるからかえってめんどくさい。
メソッドの定義は既にフックできるようになってるじゃん。
それにちょいと更新ルーチンを引っ掛ければいい。
>>159
スーパークラスはサブクラスを知らないから、サブクラスのリストを管理する手間が増える。
161名無しさん@お腹いっぱい。:03/09/01 14:47
>>149
どうも有り難うございます。
でもFreeBSD4.8RELEASEではWLI-PCM-S11Gが
使えないです。どうしましょ?
RSS には、
- RSS parser
- Ruby/RSS
- RERSS
とあるみたいですが、どれがオススメですか?
# まだ、具体的に RSS でこれがやりたい、ってのがないので漠然とした質問でスマソ。
漏れ、前スレで YAML をリテラルとして書きたい云々っていう話をしてたんだけど、
案の定、そんなのが・・・

ttp://whytheluckystiff.net/
[ruby-core:01465]か。
正直いって、あまり魅力は感じないんだよなぁ。
理由は前スレ788が述べていることに加えて、
インデントが意味を持つYAMLはソース埋め込みには向かないんじゃないかと思えること。

それに、前者に比べて後者の可読性が極端に劣るとも思えないってのもある。

data = %Y[
--- %YAML:1.0
hoge: fuga
foo:
  - bar
  -
    baz: qux
]

data = {
  "hoge"=>"fuga",
  "foo"=>[
    "bar",
    {"baz"=>"qux"}
  ],
}
165163:03/09/01 21:04
>>164
可読性云々よりも、漏れ的には、OrderedMapping のリテラル表記 (ry (←まだ言うか)
誰かYAMLのメリットを説明してくれ。
>>165
PseudoHashじゃダメだったわけ?
もしキーが固定なら、Struct使うってのはどうよ。
168163:03/09/01 22:25
>>166
Matz にっきか Linux Magazine のまつもとさんの連載記事がおすすめ。

>>167
実装はなんとかすればどうにかなるとして、
それよりとにかくリテラル表記してえんだよ!
っていう、気分の問題かな。

つか、あれから OrderedMapping を使う機会がなかったり。
やっぱ需要があまり無いのかしら・・・

まぁ、あんまりここまでして引っ張るネタじゃないか・・・
もうひとつ、_whyの実装が気に入らないってのがある。
あのパッチじゃ#{}を含んでるリテラルはまともに扱えない。

parse.yのyamlはこれで充分、他のファイルはいじる必要ない。

yaml  : tYAML_BEG xstring_contents tSTRING_END
      {
        static ID yaml, load;
        if (!yaml) {
          yaml = rb_intern("YAML");
          load = rb_intern("load");
          rb_autoload(rb_cObject, yaml, "yaml");
        }
        $$ = NEW_CALL(NEW_COLON3(yaml), load, NEW_LIST($2));
      }
    ;

             ∩
        ∧_∧   | |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       (  ´Д`)//  < 先生!うちのお父さんはRubyで作りました。
      /       /      \_____________
     / /|    /       
  __| | .|    |
  \   ̄ ̄ ̄ ̄ ̄ ̄ ̄\
  ||\             \
  ||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
  ||  || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
     .||              ||
171162:03/09/02 15:24
レス無いんで自分で見てみています。
まず RERSS を見てみたが、なんと *.rb 全てがライセンス表示のみでコードが無い。
パッケージングのミスか何かだとは思うが、
作者にやる気無しと看做して、却下することにきめました。
>>171
藁。
プロジェクトはじまったばっかりなんじゃ?
ともあれガンガレ。
>>171
そのライセンスには自由に修正してよいと書いてあるだろ。
おまいが中身を書いてやれ。
>>171
漏れは Ruby/RSS 使ってるよ。
API が一部少し変なのが気になってて、
進言しようかどうか迷ってたりするが。
おいらのサイトはblogに毛が三本なのでRSSもerubyでべた書き。
変化があったかどうか知りたいケースってそんなにあるかね?

それに、破壊的か非破壊的かにかかわらず、変化があったかどうかは、
知りたいときは知りたいし、知らなくていいときは知らなくていいので、
破壊的メソッドと非破壊的メソッドとで返りが変わるのは変な気がする。
bang method(って言うのね、初めて知った)をチェーンさせちゃいけないって初めて知った。
nil が返ってきて不便だなぁと思ったことは何度かあったけど、そういうものなのね。
この件に関して言えば、まつもとさんが一番混乱してるように思えてならない。
bang method の返り値、一度も使ったことないです・・・
同じく。
気が付いていないだけで有用な使い方があるのかな。
回文ワロタ
るびいをいびる
むしろ、変化したかの結果が欲しい場合は sub!? (と昔あったような話を蒸し返す)
ruby1.8+ia64-hpuxな環境でmake test がSEGVするのですけど、
CVS HEADだといけますかねぇ?
hpuxはメジャーバージョン上がるたびにひかかってないか?
やっぱりユーザが少ないとね…
>>184
make testまでいった?
hpuxのバージョンは?

参考: ttp://nokada.jin.gr.jp/t/20030817.html#p01
>>187
> make testまでいった?
はい。
CFLAGS="-O0 -D_XOPEN_SOURCE=500" でconfigure して。
前スレ 975 でアドバイスもらったとおり:
>curses_resizeterm(VALUE obj, VALUE lines, VALUE columns)
>window_resize(VALUE obj, VALUE lines, VALUE columns)
ここの引数がterm.hで#defineされていたので引数名を変えました。
#CVS HEADは直ってるみたいっすね。
で、これで make して一発でした。

> hpuxのバージョンは?
11.23でつ。

> 参考: ttp://nokada.jin.gr.jp/t/20030817.html#p01
で、今朝のCVS HEAD+このパッチで試してみても同じく
gcの2番目のテストでSegmentation faltしました。
A.中村さん、ああいう話題になるといつも喰いつきいいなぁ。

ところで、今までの RHG 読書会の log ってどっかに公開されてますか?
>>190
thx!
A.中村さん少し黙っててほしいんですが
ML で直接言え。
お世話になっております。
MLではだめ。言いたきゃ直接言えよ。
Date - Date が Rational になるのが少し驚いた。どうしてだろうか。
内部で Rational を使っているから。
分母が1でない Rational が返ってくることがあるの?
>>195

それ、マニュアルに注記してあったけれど、消されている。
何でじゃ?
スタジオでレッスンつうことは、音楽関係でつか?
Rubyで奏でる〜、ってか?
ギターかな
やっぱりでもあれだね、俺は携帯でも短いアドレスだけど、
今日日の携帯ユーザーはやけに長いアドレスなのね、
というのがこのメールで分かったよ。
Ruby Hacking Lesson です。スタジオにこもって青木さんにビッシビシしごかれます。
るびきちの誤爆を思い出した
Rubyist お気に入りの Sather って、もう開発してないの?
ttp://www.gnu.org/directory/sather.html

どんなんか見てみようと思っただけだけど。
GNU 入り前と仕様はそんなに変わってないのかな?
ttp://www.icsi.berkeley.edu/~sather/
拡張モジュールで、Init_xxx の "xxx" の部分の文字列は、
require "xxx" の "xxx" の文字列と必ず一致してないといけないの?
>>205
環境によって大文字小文字の違いが許容される場合はあるが、
原則としては一致してないといけない。
>>206
どうもです。ライブラリのファイル名を変えようと思ったら make し直しですかね。
>>207
原則はリコンパイル。

応急処置でよいなら、「新しい名前.rb」を作ってその中から
元のライブラリをrequireしておくといい。
>>208
を、その手がありましたか。
今は設計をごにょごにょいじってるところなので、
良い名前がキマるまではそれでしのごうと思います。
どうもありがとうです。
CGI で、PHP の $_SESSION みたいな、
Cookie などのセッションに紐付くオブジェクトの永続化を実現するのには、
どうする (何を使う) のが一番お手軽でしょうか?
使ったことないけど cgi/session.rb かな?

ttp://www.ruby-lang.org/ja/man-1.6/index.cgi?cmd=view;name=CGI%3A%3ASession
>>211
ありゃ、標準であったんですね。ありがとうございます。

ただ、この session って、値が文字列な Hash しか保持できないようでしたので、
CGI::Session#[]= の val の String の制限を外し、
任意の型のデータを保持できるようにして使うようにしました。

ところで、リファレンスマニュアルのるびきち氏分担の箇所だけ常体なのは何故?
るびきちだからです。

セッション固有のIDをキーにしてその時点での継続をPStoreで保存しておけば完璧…と思ったが、Continuationにはmarshal_dumpが定義されてない。残念。
Continuationをmarshalingできるくらいなら、先にProcとかThreadをしてるよなぁ。
>>212
ちなみに 1.8 では String の制限は外れてるよ。
216188:03/09/19 22:28
ia64-hp-hpux1123環境でmake testが通らずに、まだがんばってるわけなんですが、
やっとgdbの使い方覚えたので SEGVしたときのbtを見てみました。

で、rb_gc_mark の引数がNULLじゃないのにrb_gc_mark_childrenの引数の
ptrがNULLになってしまうのはコンパイラが腐っているからですか。

printfを至る所に入れてみたら
obj = RANY(ptr);
のあとでptrがNULLになってる見たいなんですけど・・・ありえないですよね。


#0 rb_gc_mark_children (ptr=0) at gc.c:649
#1 0x4118790:0 in rb_gc_mark (ptr=1093965744) at gc.c:643
#2 0x4117c60:0 in mark_entry (key=10458, value=1093965744) at gc.c:578
#3 0x430f7e0:0 in st_foreach (table=0x42157e10, func=0x404f5c0 <.opd+3472>,
arg=0) at st.c:495
#4 0x4117dd0:0 in rb_mark_tbl (tbl=0x42157e10) at gc.c:587
#5 0x411a390:0 in rb_gc_mark_children (ptr=1093965720) at gc.c:851
#6 0x4118790:0 in rb_gc_mark (ptr=1093965720) at gc.c:643
#7 0x4117c60:0 in mark_entry (key=10458, value=1093965720) at gc.c:578
#8 0x430f7e0:0 in st_foreach (table=0x42157e50, func=0x404f5c0
ptrが最適化されて消えてるに1票。レジスタ経由で渡されてその後のインストラクションで破壊されたとか。
>>217
むずかしい。。。(つД`)
・・・がんばります。
最適化オプションは -O0 してるのになぁ。
関数の引数もvolatileしておかないと消えるのか?
RHG の読書会、勇気を出して参加してみるべきだった。
↑チキン野郎
>>220
どうせ、読書会という名目の飲み会だろ。
それに参加したかったのか?
日経BYTE 技術の真髄 まつもとゆきひろの
「プログラミング言語論」の感想を一言↓
R
U
B
こないだRuby Way買った。
なんでTime.parseが載ってないんだよw
>>227
Ruby Way は Time.parse が載ってないから糞書籍、ということでよろしいでしょうか?
レベル低ぅ。
そりゃもう、板自体がな。
>>227-228
Time.parse なんて最近だろ。
俺が若かったころはな、ParseDate.parsedate(s) で分割して、配列にいれてだな…
ParseDate.parsedate.parsedate.parsedate.parsedate.parsedate.parsedate.
>>216
> printfを至る所に入れてみたら
> obj = RANY(ptr);
> のあとでptrがNULLになってる見たいなんですけど・・・ありえないですよね。
again:の直後?

> #1 0x4118790:0 in rb_gc_mark (ptr=1093965744) at gc.c:643
> #6 0x4118790:0 in rb_gc_mark (ptr=1093965720) at gc.c:643
この二つのptrの指してるメモリは?
というか24バイトしか離れてないってのもおかしいはおかしいんだけど。
>>233
> >>216
> > printfを至る所に入れてみたら
> > obj = RANY(ptr);
> > のあとでptrがNULLになってる見たいなんですけど・・・ありえないですよね。
> again:の直後?
あ、すんません。
rb_gc_mark の最初の RANYです。HEADだと624行目です。

> > #1 0x4118790:0 in rb_gc_mark (ptr=1093965744) at gc.c:643
> > #6 0x4118790:0 in rb_gc_mark (ptr=1093965720) at gc.c:643
> この二つのptrの指してるメモリは?
up して p ptr でいいんですよね。調べておきます。

実は今までベータ版のHPUX使っていたので、正式リリース版のHPUX11.23で試します。
pじゃなくてxとか、以前MLで流れてた.gdbinitを使えばrpとか。
236216:03/09/25 22:30
>>233
> > #1 0x4118790:0 in rb_gc_mark (ptr=1093965744) at gc.c:643
> > #6 0x4118790:0 in rb_gc_mark (ptr=1093965720) at gc.c:643
> この二つのptrの指してるメモリは?
(gdb) up 6
#6 0x4118790:0 in rb_gc_mark (ptr=1093965720) at gc.c:643
643 rb_gc_mark_children(ptr);
(gdb) rp ptr
T_OBJECT
$1 = {basic = {flags = 66, klass = 1095831936}, iv_tbl = 0x42157e10}
(gdb) p *$1->iv_tbl
$2 = {type = 0x40018e20, num_bins = 11, num_entries = 1, bins = 0x42157110}
(gdb) x/11 $2->bins
0x2000000042157110: 0x00000000 0x00000000 0x00000000 0x00000000
0x2000000042157120: 0x00000000 0x00000000 0x00000000 0x00000000
0x2000000042157130: 0x42157e30 0x00000000 0x00000000
(gdb) p *$2->bins[8]
$3 = {hash = 10458, key = 10458, record = 1093965744, next = 0x0}
237216:03/09/25 22:31
>>236 つづき
(gdb) down 5
#1 0x4118790:0 in rb_gc_mark (ptr=1093965744) at gc.c:643
643 rb_gc_mark_children(ptr);
(gdb) rp ptr
T_OBJECT
$4 = {basic = {flags = 66, klass = 1095831936}, iv_tbl = 0x42157dd0}
(gdb) p *$4->iv_tbl
$5 = {type = 0x40018e20, num_bins = 11, num_entries = 1, bins = 0x421570e0}
(gdb) x/11 $5->bins
0x20000000421570e0: 0x00000000 0x00000000 0x00000000 0x00000000
0x20000000421570f0: 0x00000000 0x00000000 0x00000000 0x00000000
0x2000000042157100: 0x42157df0 0x00000000 0x00000000
(gdb) p *$5->bins[8]
$6 = {hash = 10458, key = 10458, record = 1093965768, next = 0x0}
(gdb) rp 1093965768
T_OBJECT
$7 = {basic = {flags = 2, klass = 1095831936}, iv_tbl = 0x42157d90}

thx >>235
238216:03/09/25 22:45
>>237
でsample/test.rb の問題のコードはこうなので

class S
def initialize(a)
@a = a
end
end
l=nil
100000.times {
l = S.new(l)
}
GC.start

ptr以外にもインスタンス変数も表示してみました。
(正常そうな)オブジェクトのリンクをたどってmarkしているときに
なぜか突然死したように見えるのですが。。。うーん?
$-K と $KCODE って名前が違うだけで全く同じものと思って良いですか?
よい。
$ grep -w -e KCODE -e -K *.c
re.c: rb_define_virtual_variable("$KCODE", kcode_getter, kcode_setter);
re.c: rb_define_virtual_variable("$-K", kcode_getter, kcode_setter);
>>216
うーん、CHECK_STACK()がまずいのかなぁ。
rb_gc_mark()のCHECK_STACK()をcc -Eで展開するとどんな感じ?
>>240
どうもありがとうです。
243216:03/09/26 22:20
>>233
> というか24バイトしか離れてないってのもおかしいはおかしいんだけど。
すんません。man cc すらしていませんでした。
HP のコンパイラは +DD64 っていうオプションを付けないとLP64にならない
みたいです。
ついでに最適化オプションも間違ってました。-O0 じゃなくて +O0。

で、+DD64 を指定して、かつ+O1以上を指定すると mkmf.rb
の実行でBus error。。。
miniruby が bus error するもんで make clean もできねぇ(w

+DD64 +O0 だと >>216 と一緒。+DD64 は地雷が多そうだ。。。
>>241
> うーん、CHECK_STACK()がまずいのかなぁ。
> rb_gc_mark()のCHECK_STACK()をcc -Eで展開するとどんな感じ?
そういえば100000.times を 30000.times にすると問題なく、
40000にするとSEGVしました。なんか関係ありそうななさそうな。
#会社じゃ2chできないしなぁ。ruby-devに行ったほうが早いかなぁ。
245216:03/09/29 22:17
>>241
> >>216
> うーん、CHECK_STACK()がまずいのかなぁ。
> rb_gc_mark()のCHECK_STACK()をcc -Eで展開するとどんな感じ?
do { VALUE *stack_end = __builtin_alloca(1); (ret) = ( (rb_gc_stack_start - (stack_end)) > STACK_LEVEL_MAX + 512);} while (0) ;

こんなんでました。
>>244
> そういえば100000.times を 30000.times にすると問題なく、
> 40000にするとSEGVしました。なんか関係ありそうななさそうな。
GC絡みはそういうもん。

> #会社じゃ2chできないしなぁ。ruby-devに行ったほうが早いかなぁ。
たぶん。
1.8: 安定版 (のつもり)
1.9: (次の) 開発版
2.0: Rite で仕切り直し (開発版)

って感じなんでしょうか?
248名無しさん@お腹いっぱい。:03/10/15 23:57
>>247
1.8.x 安定版
1.9.0 開発版
1.9.1以降 安定版
ん?LL Saturdayだと
1.8.x: 安定版
1.9.x: 開発版(2.x系に向けての仕様の開発)
2.0.0: 開発版(実装の開発)
2.0.1?:安定版
とかっていっていたような。
>>249
1.9.0が開発版で1.9.[1-9]がそのメンテナンスリリースなのは確定。
ただ、1.9.[1-9]が世間一般で普通に使われるかどうかは微妙、という話だった。
で、1.8.1まだー?
FreeBSD PORTS の refe の名前、
ruby-ruby-refe って何か変な (っていうかくどい) 気がします。
ja-ruby-refe くらいが適当なような。
ん? Rite はバージョンいくつ?
>>253
2.0 以降
Rite は 2006 年のクリスマスくらいだと予想
誰か fork する奴はいねがー?
fork == ウザいから勝手にやってくれ
fork した elseif Ruby はどうなった?
class_attr が欲すぃ。
class <<Array ; attr_accessor :hoge ; end
Array.hoge = 1 ; p Array.hoge
あ、それでいけたのか。サンクスコ。
Ruby 1.8.1でamrita、添付ライブラリにならないかなー。
なんで添付ライブラリになっていないんだろう...
263名無しさん@お腹いっぱい。:03/10/25 06:23
比較的新しいからじゃない?
あとアプリ自体は入らないじゃなかったかな。
irb と erb
テンプレートライブラリは色々あるから
amrita の標準添付を検討するなら他のも検討しなきゃ。
1.8.1のpreview1が出たー。

>>262
入れて欲しければ早目にruby-devあたりに言っといた方がいいかと。
1.8.1には間に合わないかもしれんが。
>>266
syckでコンパイルエラーだー。
cvsから拾ってくれば問題ないけどな。
>>267対応のpreview2が出たー。
ruby-listにもアナウンスをだしてほすぃ
previewの動作確認ってどこまでするもんなん?
(1) make test がとおればまぁ大丈夫。
(2) test/runner.rb が全部通ればOK
(3) rubicon 通れば無問題
>>270
ttp://www.ruby-lang.org/ja/20031030.html

> Rubyを使ったアプリケーションやライブラリを作成されている方や、そうした
> アプリケーションを使用されている方は、このpreview版を使っての動作テス
> トを行ってみてください。もし不具合などがあった場合、それを報告していた
> だけると、正式リリースではその問題を修正したものが提供できるかもしれま
> せん。安定したRubyをリリースするため、ご協力をお願いします。
272270:03/11/02 18:01
>>271
あぁ。言葉たらずですんまそん。
1ユーザとしてどこまで確認すればいいのかなーって思ったしだいです。
test/runner.rb 動かしてエラーでたら報告でいいのかな。
rubiconはあまりメンテされたなさそうだし。
>>272
1ユーザ==「(Rubyを使った)アプリケーションを使用されている方」ではないの?
ブロロロローン
275名無しさん@お腹いっぱい。:03/11/07 06:25
最近、学校休みがち。
友達になんでって聞かれても、家で教科書読んでるからって言ってたけど、
実は掲示板と単語帳とWiki作ってた。
一応完成。
オリジナルWikiがお気に入り。
DBI:SQLite なんだけど、複数プロセスから connect すると、
"DBI::DatabaseError: database is locked" になっちゃうんだけど、
こういうものなのかしら?
connect しただけで lock されるのは変な気がするんだけど?
こう書きたい。

class Hoge
def initialize(@foo, @bar, @baz)
end
end
class Hoge
define_method(:initilaize) {|@foo, @bar, @baz|}
end

1.9 から使えなくなるらしいけどな。
>>278
むむむ、なんと。
おとなしく @foo, @bar, @baz = foo, bar, baz とすることにします。サンクスコ。
関係ないけど
ary.each{|@foo|...}
ary.each{|$foo|...}
とか行けるのな。初めて知った。
>>280
うっかり使ってミスるとハマりそうだな。いや、うっかり使うことはないだろうけど。
見た目はキモいがこんなことも可能。
irb(main):001:0> def reverse(a)
irb(main):002:1> ret = []
irb(main):003:1> i = a.size
irb(main):004:1> a.each {|ret[i-1]| i -=1 }
irb(main):005:1> ret
irb(main):006:1> end
=> nil
irb(main):007:0> reverse([1,2,3,4,5])
=> [5, 4, 3, 2, 1]
そーいえば lambdaの引数ぐらいはローカルにしてほしかったなー。
>>282 を見て思いついた。

foo = Object.new
def foo.[]=(a)
p a
end
[1,2,3].each{|foo[]|}

1
2
3
次世代1.9の仕様(見込み)はこちらをどーぞ。
ttp://www.rubyist.net/~matz/20031023.html#p02
rubyを使ってるやつは知障。
これからはXL。
> eval内で新規に登場したローカル変数はeval終了後消える
ぎゃー。
ズバリ、今、一番お手軽に https するには?
1.8(1.8.1?)以降なら、opensslが入ってるから
require 'net/https' すればよいと思われ。
>>289
サンクスコ。
shim-ruby16_18-1.8.1-preview2 にも入ってたんで使ってみます。
ちょっといじってみた感じ、うまくいってるみたい。
291名無しさん@お腹いっぱい。:03/11/12 11:31
Dir.globの引数に正規表現使いたくないですか?
>>291
Dir::open(path).grep(pattern) でしのげるからいいや。
293名無しさん@お腹いっぱい。:03/11/12 14:24
>>292
grepなんてメソッドあるんだ。

しかも、DirだけじゃくてArrayにもある。
便利だ。Thanks.
294名無しさん@お腹いっぱい。:03/11/12 16:06
なんで、DirとかArrayのリファレンスマニュアルにgrepのってないんだろー。
Javaみたいにマニュアルが整備されてないの?標準のライブラリくらいしっかりしろよー。
とかいろいろおもってたら、Enumerableっていうのをincludeしてるんですね。

しかも、このEnumerableっていうのをincludeしてるクラスはeachが定義されてると
いろんなメソッドが使える!

レベルかなりアップしました。っていうか、Enumerableしらなかったら、かなり損ですね。
294のレベルがあがった。294は少し賢くなった。
ていうか、 ri Array#grep とか refe Array#grep とかできるといいなあ。
ri grep とか refe grep でよくないか?
>>296 最新の refe なら出来るぞ

$ refe Array#grep
Array < Enumerable#grep
--- grep(pattern)
--- grep(pattern) {|item| ... }

pattern === item が成立する要素を全て含んだ配列を返し
ます。ブロックとともに呼び出された時には条件の成立した要素に対して
それぞれブロックを評価し、その結果の配列を返します。マッチする要素
がひとつもなかった場合は空の配列を返します。
>>298
あ、ホントだ。快適快適。
ttp://www.rubycolor.org/maki/d/200311b.html#12_t1
だよもんかと思ったんだよもん
>>300
同じことを思ったけど、そんなことを思うっちゃのは、たぶん私とあなただけだよもん
ttp://www.rubyist.net/~matz/slides/rc2003/mgp00028.htm

foo:wrap のなかでsuperを呼ばない場合はどうなるんだろう?

wrap pre
foo
warp post

かな?

wrap pre
pre
post
wrap post

なわけないか。
pre
foo
post

に一票。
wrapはsuperを呼んでなけりゃ無視されるってこと?
そりゃー難しいんじゃないかなー。
>>302 が not foundになるのだが、俺だけ?
>>305
最後のlが抜けてる。
スライドの39ページ
M17Nの所に二重丸が付いているのはどういう意味かな?
重点課題か?
◎◎
もうできたってことかな。
みなさん、 String#% ってどう書いてますか?

"%s"%str
"%s"% str
"%s" % str
いちばんした。
>>310
たしか、TRON関係のが救えないよね、って話が残ってた気がする。
>313
あれはちょっと特殊杉。
TRON独自markup言語とみるべきじゃないかな。
>>314
CSI⇒できるだけ多くのコードセットを扱える枠組みを作りたい、
という議論の中でだから、そういう特殊なのも話にでてきたんだろう。
よくよく考えると、今だってJISコード(Kanji-in/outのmarkupあり)は
サポートされてないし、そういうのは切り捨てざるを得ないのかな。
実際TRON以外では使われてないわけで、
標準でサポートされるとは考えにくい。
FreeBSD の ports/ruby-amrita-1.0.2 を使ってるんですが、
このバージョンだと escaped_id が効かなかったりしますか?バグ?

>>302
これって、アスペクト志向の言語レベルでのサポート?
だとするとちょっとありがたいというか面白そう。
AspectR 使ってみたけどなんかいまいちという印象だったんですよね。
Array#zip って結局 1.8 でも採用されなかったんだっけ?
試せばいいのに。
>>318
その通り。
>>320
そうですか。あればあったでたまーに便利なことがあるのでちょっと残念。
だから試せよ。

% ruby -e 'p [].respond_to?(:zip)'
true
323320:03/12/02 18:20
>>321
Enumerable#zip
>>322 >>323
ぐはぁ。どうもです。 Enumerable にあったのか・・・
shim では Array#zip みたいですね。
325276:03/12/03 13:30
遅レス&自己レスですみませんが、現行の DBI の作りによる制限のせいで、
どうも「こういうもの」ということのようですね (cf: [ruby-talk:75057]) 。
SQLite 向けに何か特別な workaround を入れないと使えなさそうなのですが、
それではせっかく DBI 使う旨味も無くなりそうで歯痒い気もします。
とりあえずしかたないので sqlite-ruby あたりを使うことにしようかと思います。
Net::HTTP の version_1_1, version_1_2 メソッドの説明で、
「この機能はスレッドセーフではありません」とあるのですが、
これってどういう意味でしょうか?

複数スレッド動作中に version_1_1, version_1_2 を実行した場合は動作保証しない、
ということでしょうか?

それとも、いちど version_1_1, version_1_2 を呼んだら、あとは、
Net::HTTP の全ての機能がスレッドセーフじゃなくなっちゃうということでしょうか?
>>326
自分で「この機能は」って引用しといて、どうして
「全ての機能が」という理論の飛躍ができるの?

ライブラリ全体で一つの状態を保持すれば、
MT Safeでないのは当然と思うが。
>>327
というか、その「この」が ambiguous だと感じたのです。
けれど、それは私の読み違いだったわけですね。
保守。
heliumってcore吐かしたりしてもいいんだね。部外者だから知らなかった。
α線か。
heliumにシェルアカウントがあれば、別にいいんじゃない?
駆け込みリリースはんたーい!
リリース前の猶予期間さんせーい!
リリース前に猶予期間は4ヶ月以上あったわけだが。
「最後の変更が行われてから、リリースまでの」猶予期間、という意味だけど、
その場合は何て言ったらいいんだよ?
むしろ駆け込みバグレポートを(ry
>>335
そう言えばいいじゃん。
独りよがりな省略をするな。
>>336
たしかに。リリース前日はすごかった。
339名無しさん@お腹いっぱい。:03/12/27 15:21
akr ってだれ?
>>339
金光さん
あれが同一人物だったら俺は窒息死できる。
>>337
じゃ、4ヶ月あった「リリース前の猶予期間」っていうのは、何を指してるの?
何が猶予期間の始まりなの?
>>342
クリスマスのリリースははじめからわかってる。
>>342
ということは、「クリスマスのリリースと言ったのが4ヶ月前(8月?)だから、
それからが後が猶予期間だった」というわけ?

それはそれでおかしな話だと思うんだけど(単なる「予定」か「希望」のような気がするので)
それはともかくとしても、その「猶予期間」中に新しいライブラリ入れてたり、
pthread 対応を入れ始めたりしてるのはよした方がいいんじゃないの? っていうことを
私は言いたかったんです。

1.8.0 といい、今回といい、どうしても

リリース直後・・・bug fix
しばらくの間・・・ちょっとずつ更新
リリース直前・・・新しい機能を入れて、それを直しきれずにリリース(で、上に戻る)

という感じがして。本来ならば


リリース直後・・・新しい機能を入れる
しばらくの間・・・ちょっとずつ更新
リリース直前・・・十分な期間、bug fix のみをしてからリリース

というんじゃないかと思っただけで。

まあ、独り言ですかね。
Ruby のリリースはちょっとあわただしいなぁというのは自分も同感。
1.8.0 の時ほどひどくはなかったけど、正式なリリース直前の修正があまりにも多すぎる。
ようやく1.9と1.8が分かれたから、
次はマシになるんじゃないかなあ。
と希望。
pthreadどうやって使うの?
>>344
だからね、「言いたかった」ことを最初にそのまま言えば誰も誤解しないんだってば。

それはそれとして、344の指摘はかなり正しいとは思う。もっとも、

リリース直後・・・bug fix
しばらくの間・・・big fix
リリース直前・・・十分な期間、bug fix のみをしてからリリース

であるべきだ、というのが私の意見だけど。
新しい機能は開発版ブランチだけでよろし。
でも、リリースしないと結局試してもらえないという話もある。
>>348
「もっとも〜でよろし。」のところは矛盾してねーか?
開発版ブランチで入れた機能のマージは、キミのリリースサイクルのどこに入るのだ?
>>348
「言いたかった」が伝わってなかったことについては、了解。
ようやく伝わって安心した。

>>349
確かにそれは言える。
でもだからといって、リリースの直前に入れるのも・・・、ね。
>>350
マージしない。
・ 「akr = 金光」説。
ワロタ
>>353
「(REエンジンの)鬼車への移行は確実」ってことでないの。
>>353 は鉄板の意味が分からなかったに300ども。
そーいえば俺も知らない < 鉄板
さいきんよく見かけるんだけどなー。
そのうち錆ちゃうってこと?
>>350-352がフィルタされて読めない。読もうとも思わない。
どの条件でフィルタされたのかは知らぬが、
なぜそれをいちいち報告するのだ?
鉄板: カタイ→確実の意味。元はギャンブル系?(競馬の予想とか)
361名無しさん@お腹いっぱい。:03/12/31 08:24
>>354
尾崎説もあるよ(藁
>>359
読む価値のなかったことを正確に伝えるため。
駆け込みを減らすには、
レアなプラットフォームの自信ありの人は毎日ビルドして ruby test/runner.rb する。
testを書ける人はとにかくtestを充実させる。
ってことをやっていくのがよいのではないかな。
>>362
まあ、あなたの書き込みは、ネタなんでしょうが、釣られついでに。

「読めなかった」文章を、「読む価値の無かった」と決めることが出来た方法を
教えて下さい。

それは私にも出来る方法ですか?
論文で発表されたことがありますか?
>>358がフィルタされて読めない。読もうとも思わない。
http://pc.2ch.net/test/read.cgi/unix/1060537252
がフィルタされて読めない。読もうとも思わない。
やまだあきら氏とたなかあきら氏の見分け方を教えて下さい
arika is akira
akr is akira
>>354
仮に「zsh シェルプログラミング」という本が出版されたとして
akr 著と金光著の2冊が並ぶとかなり笑えるかも。
http://dev.ruby-lang.org/
ってなに?
>>370
http://dev.ruby-lang.org/
> ってなに?

ruby-lang.org が tDiaryになる時のテストサイト.
# よって、available now.
出遅れたけど、
year += 1

今年もよろしゅう。
2004年のRubyの展望↓↓↓
2.0のブランチが切られる
想像できないようなすごいことが起こる
なんとmatzが・・・
akr-ruby
金光-ruby
あれ、2.0ってスクラッチから書かれるんじゃないんだ
>>379
VM周りがスクラッチから書かれるにせよ、他の共通部だってかなりあると思わん?
だったらRiteもブランチ切ってからやる方が自然でしょう。
Test First とはちょっと違うけど。
Riteによって特に高速化が期待されるようなコード群とそれらの目標速度が発表される(なんてことするなら実装を先に書くのかな、matz氏は)。
今年こそ lambdaが lambdaに相応しい挙動になる。
λλλ....

こんな感じか
しょんぼり。
Ruby で RSS 書き出すために必要なライブラリは、ズバリどれ?
(Parserは付いて無くても良い)
386385:04/01/03 22:22
>>385
ごめん、Parser だけど、
ttp://raa.ruby-lang.org/list.rhtml?name=rss
の RSS::RDF を使えば上手くいくみたい。失礼した。

使い方がドキュメント化されていないようなので、
ちょっと試行錯誤だけれども。
なんでパッチと本文の区切りはメスマークなんですか。
^L (Ctrl-L) のことか?
>>388
改ページだったのか。
Mozillaだと「♀」に見えるもんで。
RAA の RSS って、どこだっけ?
>>373
半角カタカナの積極的なサポート。
まずは tdiary から。
393391:04/01/06 14:17
>>392
是非 hankana.rb の contribute をお願いします。
# 人違いだったらすいません。
[ruby-list:39027]

* HTML生成部を外す
* NewCGI.new の引数か何かで、NewCGI.params の 各Value の返値を
Array of Strings, Array of StringIOs, Array of Tempfiles,
String, StringIO, Tempfiles のいずれかになるようにする

というのでどう?

# っていうのを、なぜここで話す>俺
nokada さんはどうして 1.8 のメンテナーの立候補をされないんでしょうか?
1.9 の方が楽しいに決まってるから?
>>394
CGIライブラリなのにHTMLが扱えるってのにいままで引っかかっていたけど、
これってもしかしてPerl伝来?

> 引数か何かで
継承の使いどころかと。
>>395
決まってるから。
>>398
ありがとん。

tml 使ってみようかな。
今だ!!400ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄       (´´
     ∧∧   )      (´⌒(´
  ⊂(゜Д゜⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
        ̄ ̄  (´⌒(´⌒;;
      ズザーーーーーッ
>>394
深く考えずにPHPっぽいのでいいとおもう。ってのでどう?
>>347
configure --enable-pthread
ttp://rrr.jin.gr.jp/
の存在理由というか、開設理由って、誰か知っていますか?

いまいち、何のためのサイトかよく分かってないんですが。
NaHiという人の、個人サイト?
>>403
> NaHiという人の、個人サイト?
そう
shim-ruby16_18-1.8.1 まだぁ?
class Foo; def self.foo; end; end
class Foo; def Foo::foo; end; end
class Foo; class<<self; def foo; end; end; end

この 3つは全て同じ意味になるんでしょうか?
同じ
なるほど。どうもです。
で、あとは実装者の好みとかスタイルとかで好きな書き方を選べばいいんですかね。
ふむふむ。
個人的には、二つ目はFooが何度も出てくることになるので好みじゃない。
個人的には、二つ目はFooのサブクラスを使う時にマズ-になりそうに見える(実際はOK)
ので好みじゃない。

個人的には、三つ目はネストが無駄に一段深くなるように見えるので好みじゃない。
最初のやつを使えってことか?
selfってなんだっけ、とか考えないといけないので最初のも好きじゃないんだけど
どれも使えなくて困るストーr(ry
じゃなくて、どうしろってんだゴルァ
>>413
selfってなんだっけ、とか考えてること自体がヤバい
416406:04/01/16 21:23
私は、最初 2だったんですが、>>410 >>411 と同じように思ったので、最近は 1です。
self ってなんだっけ、とか考えないといけない状況になったことは私はないですね。

ところで、他に書き方ありますか?
後はclass_evalを使うような変則的なのか、合わせ技みたいなのだけじゃないかな。
個人的には、一つだけなら一つ目、多ければ三つ目かな。
あまり明確な線引きがあるわけじゃないけど。
あぁ、確かに多くなると 3つ目の方が良さそうな気がしますね。なるほど。

コーディングスタイルネタはひとによっていろんな意見が聞けて面白いすね。
でも宗教戦争になるので深入りしないように。
class Foo; end; class << Foo; def foo; end
これが好き。
% ruby -e 'class Foo; end; class << Foo; def foo; end'
-e:1 syntax error
422420:04/01/17 23:45
end 一個足りなかったか。
>>423
w)
ネタなのか。typoなのか。
まつもとさんは、いまも日本語入力はこれなんだろうか。
ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/26383
これだと左手の負荷が大きいと思うのだけど、左利きなのでしょうか?
>>426
ゃゅょっんが独立してるから、子音が連続することはまずないと思うけど
そういうことではない?
この配列ってマ筒オリジナル?
skyとか何かをベースにしてる?
心優しいオレ様が、前後のメールすら調べようとしない >>428 のためにレスしてやろう。

[ruby-list:26406]
> Cannaの改善をいろいろ行ってた狩野さんが原作者です。所属は忘
> れちゃいました。早稲田? 私がいただいた頃には名前がなかった
> のですが、その後「きゅうり」という名前がついたようです。私の
> は若干配列などが変わっているので(子音の配列が若干変わってい
> ますし、「foo」で「しょう」などは私のオリジナルです)、あえて
> 呼ぶなら「きゅうり改」でしょうか。
あ、次のページ(26401-26600)でまだレス続いてたのか。
>>430
ruby-*を見るときはスレッド表示の方が便利だよ。
メール画面一番上の「---」をクリック。

つーかbladeのシステムって公開しないのかなあ。
WebのMLアーカイブでbladeより使いやすい物って見たことない。
なるほど。こりゃ便利。
以前 sylpheedのML覗いた時、わりといいなと思ったけど、
そこで利用されてる w3mlというのは blade参考にしてたのか。
# 実装じゃなくて見掛けの話。
開発は止まってしまってる模様。
>>432
w3ml と同じ作者がメーリングリストツールの tml ってのを作成中のもよう。
こっちは現在進行形だし、TODO に「w3mlとの統合」と書いてあるから、
そのうち w3ml も更新されそう。

今のところ
*w3ml → 1.6 系でしか動かない
*tml → 1.8 系でしか動かない
てのがちょっとオモロい。
> WebのMLアーカイブでbladeより使いやすい物って見たことない。
こういう意見を言う人をはじめて見た。
漏れには苦痛以外の何物でもないし、漏れの回りの人間も同じ意見なのだが。
MHonArcやpipermailの方がどちらかといえば直観的な気がする。
431とは別人だが、bladeはかなり使いやすいと思う。
けど漏れにはw3mlくらいで十分とも思う。
MHonArcはかなり苦痛。pipermailってのは知らん。
sourceforge.jpのアーカイブがpipermail。
blade派だけど、直感的ではないというのには同意。

でもそれは食わず嫌いに近いだろうと思えます。
MHonArcはわかりやすいだけとも言えませんか?
ああ、あれがpipermailなのか。
漏れ内部では blade>w3ml>>pipermail>>>>>>>MHonArc となりますた。
sf.netは酷い。
>>439
たしかに酷い。
俺的にはpipermail>>>>>>>sf.net archive>>geocrawlerだな。
ruby-cvs の日本語化も始まったことだし、残るは

 日刊 ruby-talk summary for Japanese

だけか。
ruby-listも廃れちゃってるからなあ

「rubyは日本発だから」とかいってる奴は現状を見たほうがいいとおもう
>>441

流量はすごそうだけど、内容は充実してんの?>ruby-talk
充実してるかどうかはともかく
本流であるのは確かだな。
>>441
ruby-cvsのは日本語化じゃなくて、解説を(たまたま)日本語でやってるだけだろ。
>>445
たまたまなの?
たまたまやってるのが日本人。
例えば、標準添付候補ライブラリは
/usr/local/lib/ruby/preview/ の配下にインストールする、というのはどうかな。
>>448
誰が?
>>449
あ、すんません、 [ruby-dev:22691] あたりの話です。
標準で付いて来ないとみんな評価してくれないわけなので、
標準で preview とかにインストールしてしまって、
RUBYLIB=/usr/local/lib/ruby/preview:$RUBYLIB するだけですぐ使えるように、
敷居を低くしておけば良いんじゃないのかな、と思いました。
previewにつけるならもうext配下にないと遅いよ。
>>448
cvs に合わせて preview じゃなくて rough にしとけ。
rough機能してないじゃん
sample なんてディレクトリがあったのか。
ライブラリのドキュメントが無くて苦労してたのに。
roughをextの下にln -sしとけ。
XMLParser 標準添付希望。
>>455
だから、rough 自体が機能していないのが問題ではないかと。

RubyForge が rough 相当になっても良いのではと思ったり。
ここでいうな。
459名無しさん@お腹いっぱい。:04/01/28 19:51
age
>>456
REXML 付いてるけど。
じゃなくて expat ラッパの xmlparser のこと?
>>460
はい。
SOAP や XML-RPC のサーバで pure Ruby な XML パーサは使い物にならんです。
あと、expat もそれほど特殊なライブラリでは無い (と個人的に思ってる) ので、
標準添付にしてもいいんじゃないかなと。
net/https.rb が見当たらないんですが、どこにあるのでしょうか?

1.8.1 の中にも無いし、
http://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/lib/net/
CVSにも見当たらないです。
>>463
ext/openssl/lib/net
ruby とは別にまた自分で入れないといけないんですね
あ、違う。
opensslのヘッダを入れてなかったからrubyのインストール時に入らなかったんですね。
入れなおします。
>>461-462
メンテナ必須なので、よしだむさんに頼んでみれ。
amrita 標準添付希望。
最近これなくして CGI プログラムが書けない身体になってきた。
>>468
webrick/cgi+amrita。これ最強。
だからここでいうな。
ここでいうなってのも理不尽だ。どこで言ってもいいだろ。



効果ないけどなー。
amrita→アニータ
という無意味な連想をしちゃうのはおれだけかな?
萌えかねないライブラリだなw
ってか、語源はインド神話だったのか。
ラムタラみたい
あおきみねろうほげほげ、かと思ったらこれは違うのか。
>>475
それは amstd (まだあるんだっけ?)
>>469
servletじゃなくてcgiなのは汎用性の問題?
皆さんの御自慢のワンライナーを晒してください。
% ruby -e 'eval(ARGF.read)'
for i in $(ruby -e '$stdin.read.scan(/"news\/(.+?\.mp3)"/) do fn = $1; puts fn unless File.exist?(fn) end' < news.html)
wget http://yhk3.hp.infoseek.co.jp/news/$i
みなさん getpass(3) みたいなの (echo back しない一行入力) ってどうしてますか?
私は自前で適当なのをいちいち書いたりするんですが、
標準でそういうメソッドがあったらなあ、と思います。
というか、定石みたいなものがあるんでしょうか?
もしかして、 readline か curses あたりでなんとかなるのかも知れませんが、
それも大袈裟な気がします。
begin
system("stty -echo")
$stdout.print("Enter passwd:")
$stdin.gets
$stdout.puts
ensure
system("stty echo")
end
>>482
そうそう、私もそれとおんなじようなの書いてるんですが、
Windows などほかの環境でも動くのかなとかそういうのが心配で。
Cygwin では動きますね。
ポータビリティのある書き方はできないと思う。
せいぜい DBI みたいに環境ごとにブリッジしてやるしかないかと。
ていうか、それをダメとか言うつもりないけど、
なぜにここでシステム非依存なコードの書き方の
話題が出るのか、ちょっと不思議。
UNIX板ですよ? ;-)
>>484
やっぱりそうですよね。
とするとなおさら Ruby 標準でそういうメソッドがあるといいなあ。

>>485
確かに・・・
487482:04/02/01 15:47
>>485
しかし互換性のあるメソッドが提供されたら絶対置き換えたいコードのひとつではある。
getch() のエコーしない関数がANSI-C ライブラリ標準で
存在すれば楽なんですけどね…
っと、ここはruby スレかw
tail -f するのによさそうな方法 or ライブラリはありますか?
ruby -e'IO.popen("tail -f #{ARGV[0]}") {|io| loop { print io.read(1) } }' /var/log/system.log
>>491
ひえ〜。

それらしいの書いちゃいました。

class IO
def tail_f
pos = 0
Thread::new {
loop do
self.seek(0, IO::SEEK_END)
if pos != self.pos
self.pos = pos
data = self.read
pos = self.pos
yield data
end
sleep 1
end
}
end
end

File::open("/var/log/system.log").tail_f { |f|
p f
}.join
loop {seek(0, SEEK_CUR); yield read; sleep 1}
で十分だろ。
sleep 1なんて書いておいてよく「十分」などと言えたもんだね。
まったくだ。「十分」ならsleep 600だろ。
誰か言うと思った。

・・・俺じゃなくて良かった。
ワラタ > [ruby-core:02433]
わしも食いっぱぐれそうになったら、
プライドを棄てて、適当な原稿を書いてみるかな。

いくら振り込まれるんだろ?
>>499
何の話?
>>500
[ruby-book:2437]

でも、知らなかった方が君のため。
ruby-book なんてあったっけ?
最初入ってたはずなんだけど、いつの間にか抜けていた。
よって差し支えない範囲で遺尿キボン>>501
>>503

Subject: [RubyBook:2437] Re: 「家サーバ」をちょいと書いてみました其の四
Date: Sat, 14 Feb 2004 17:32:05 +0900
To: [email protected]
Message-Id: <[email protected]>

> 家サーバの原稿第4弾です。
> OSのインストールの前までの、「解説」の部分はこれでイケると思います。

これはこれとして。

> 独言:とうとう蓄えが無くなった…明日から生活どうしよう…

口座をDMで教えてください。すぐに振り込みます。


M.Kanemitsu
ワロタ
オレオレ。おれだけど、原稿書いた。
印税が入ったら倍返しするから振り込んどいて。口座はXXXね。
ruby-dev
そろそろ鬱陶しくなってきたな。
>>507
いいんじゃない。静か過ぎるよりは百万倍マシ。
>>508
そうか、ワシも広い心を持たねば。
年を取っている割には心が狭くて、すまんな。
あそこまで引っ張るほどのネタかな、とは思う。
スマソ。
512名無しさん@お腹いっぱい。:04/02/17 22:47
どんまい
513482:04/02/18 00:58
学生さんなんですかねえ。
なんか暇そうだもんね。そういう季節か。
515名無しさん@お腹いっぱい。:04/02/19 00:42
個人的にはにぎやかで良いと思うが。
細かい仕様まできっちり考えるのは全然かまわんのだが、
もうちょっと考えてからメールを出して欲しいなあ。
あと、とっととテストを書いてほしい。
>>516
確かにね。
ちょっと最近、これの影響で current を使う気が無くなってきてるし。
興味のないメールは一瞥してから読み捨ててるんだけど、
メール数ばかり多いとスレッドごと捨てたくなっちゃう。
スレッドツリーが複雑になって追うのも大変だし。

30分〜1時間寝かせるだけできっともっとよくなるのにね。
もったいない。
殆どチャット感覚だしな。
まあ、「これからの成長を期待する」ということで。
521名無しさん@お腹いっぱい。:04/02/20 05:45
終了
http://jarp.jin.gr.jp/diary/200402b.html#200402192
Parser だけど、内部のクラスを使えば生成も出来るはず。

って、何でここで突っ込む?
close するの面倒。IO::read があるんだから、Kernel::read も用意しる。> open-uri
File.open を書く癖があるから、 URI.openって書きたい。
class URI < IO も作ってくれないかなぁ。>open-uri
なんで Tempfile#unlink は undocumented なのだ。
危うく車輪の再発明するところだった。
そうか、StringIOを返すわけだから別にIOを継承しなくてもいいのか。

module URI
 def open(name, *rest, &block)
  URI.parse(name).open(*rest, &block)
 end
 module_function :open
end
こんなのを足すだけでよさそう。
527名無しさん@お腹いっぱい。:04/02/21 13:14
鬼車のsymbolのprefixが変わってよかったよかった。
ROM に徹すること約 5 時間、か。

それはそうと、なぜ Dir はクラスメソッドにこだわるんだろ。

あと StringIO のリファレンスの更新キボン。内容古すぎです。
open-uri はむしろ close しちゃいけないんだと思ってた。
>>528
> それはそうと、なぜ Dir はクラスメソッドにこだわるんだろ。
そうなん?

1.8ブランチに新しいメソッドを入れるのは止めて欲しいなあ。
もうそっちはバグフィックスだけだろう。
なんのことか知らないけど、安定版の仕様変更のことなら同意。
require 'features/ruby18'
方式にして欲しい。
標準添付した時点で負け。
最近なんか入ったっけ。
SUSv3 準拠化の影響は dirname だけじゃないのね。
考えれば当たり前だけど、気がつかなかった。
>>531
どれのことかわからんけど、メソッドが消えるよりはマシだろう。
メソッド名を変えて元の名前を残さない、とかな。
>>536
マシとか言う以前にアリエナイ。
1.8.2 は出るんだったっけかな?
>>536,537
それって某ライブラリのことですか?
>>539
え、そんなのあるの?
……しらじらしすぎるか。
素でわからん。orz
びっぐでしまるのことかー!

>>538
そりゃ、いつかは出るんじゃない。
ゴールデンウィークあたりと予想してみる。
標準添付になったからといって油断できない、
このドキドキ感がたまりません。

まるで、無理やり口説いて「つきあおっか」と言わせたものの
いつまで続くのかはわからない、そんな不安を悶々と抱えていた
瑞々しい青春の日々を思い出させてくます。
544名無しさん@お腹いっぱい。:04/02/25 06:28
標準≠添付
1.8.2 があるんなら、メソッドが増えても構わないか。
(メソッドが消えるのは良くないのは当たり前)

なので、 >>531 は取り消す。勘違いした。すまない。

メソッドの有無ってのはクラスにとってのアイデンティティの一つでもあるわけだから、
stable では勝手に増やされても困るってのが私の考え。

でも 1.8.2 に向けての話なら、構わない。
ttp://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/ChangeLog?cvsroot=src&r1=1.2673.2.150&r2=1.2673.2.151
>>544
意訳すると
「『Ruby界で標準的に使われてるライブラリ群』と
『Ruby本体に(標準で)添付されてるライブラリ群』は
必ずしも一致しない」

「標準添付だからってよく使われてるとは限らねーぞ」
ってことでよろしい?
>>546
リファレンスマニュアルによると、標準ライブラリと添付ライブラリは区別された
概念であるはずだ、という仮説。
なんで「仮説」なのかというと、Matzあるいはリファレンスマニュアル編集者が
そこまで深く考えてそう書いたかどうかが未検証のため。
>>545
「stable では勝手に増やされても困る」と「1.8.2 に向けての話なら、構わない」とが
矛盾してない?
>>548
「1.8.xはもう new feature は取り込まない(=stable/1.8.2は出さない) なら、
 勝手にメソッドを増やされては困るけど、
 1.8.2 に向けて new feature を取り込んでも良いのであれば、
 メソッドが増えても構わない」

という意味でした。

550546:04/02/25 14:33
>>547
ぜんぜん意を汲めなくてスマソ。
その「区別された概念」っていうのは、両者をどのように区別したものなのでしょう?
>>539,542
斉藤さんでつか?
>>550
Rubyという言語仕様の一部か、ただのおまけか。
>>552
なるほど。開発者側がどこまでどの程度そう思っているかは興味深いかもしれない。
利用者から見れば「使えればみんな一緒」という感じだろうけれど。
添付されたライブラリの作者にとっては
配布方法とリポジトリの場所が変わっただけではないかと。
文書やテストも書く人は書き、書かない人は書かないし。
RDocがなぁ。
556名無しさん@お腹いっぱい。:04/02/26 09:32
標準添付ライブラリを書いているのにRDocを嫌がってる
人の方が不思議だ。世界中で使われてるんだからそのくらい
やる義務があると言っても過言ではあるまい。
557名無しさん@お腹いっぱい。:04/02/26 10:29
「義務」!
何か勘違いしてないか?
>>556
義務なんてねーよ。
RDoc化する義務があると思うならお前が全部やって永久にそれをメンテしろ。
559名無しさん@お腹いっぱい。:04/02/26 11:19
>>556
何様のつもりだ?
これから RDoc 化してやるぞという宣言か。
すばらしい。556 がんがれ。
>>557-559
    \   ∩─ー、    ====
      \/ ● 、_ `ヽ   ======
      / \( ●  ● |つ
      |   X_入__ノ   ミ    こんな餌で俺がクマーーーーー!!
       、 (_/   ノ /⌒l
       /\___ノ゙_/  /  =====
       〈         __ノ  ====
       \ \_    \
        \___)     \   ======   (´⌒
           \   ___ \__  (´⌒;;(´⌒;;
             \___)___)(´;;⌒  (´⌒;; 
                          (´⌒; (´⌒;;
Do or die!
RDocもロクに使えないヘタレが逆ギレしているスレはここですか?
実際には、RDocを使える人が、その上で文句を言ってるんだけどな。
話をすり替えると言うより、逃げだな。
おうちでママのおっぱいでもすってな。
566565:04/02/26 13:12
おっと、561〜563(同一とみた)のぼうやに対して
RDocってRDと違うの?
>>564
何が不満なの?
>>567
別。

RD http://www.rubyist.net/~rubikitch/RDP.cgi?cmd=view;name=RD
RDocはソースのlib/rdoc/READMEかな。

headingやunorderd listはどっちも = == や * だけど、ordered listはちょっ
と、labeled listはかなり違う。

>>1がRDの例。
>>568
コードの中にドキュメントをコメントとして埋め込むことが嫌。
>>570
ああ、そういう人結構いるよね。
572567:04/02/26 15:48
>>569
えっと、RDは知ってますというか、よく使ってるんですが、
RDocの方は知らなかったんです。

Rubyスクリプト等からドキュメントを生成するrdocってツールがあって
それが解釈するマークアップ形式がRDocという感じなのでしょうか?

最近はRDよりもRDoc推奨なんですか?
>>572
そう。
RDoc推奨なのは、対象となるクラスやメソッドを勝手に探してくれるからかなぁ。
んで、RDocのまとまった解説は
ttp://rwiki.jin.gr.jp/cgi-bin/rw-cgi.rb?cmd=view;name=RDoc%B3%D0%A4%A8%BD%F1%A4%AD
くらいしかないんでしょうか。
あるいは、RDoc自体のRDocを参照、と。
>>570氏や「結構いるそういう人」が嫌うのは、ドキュメントがソース中に
分散されるから? ツール使えば一発でまとめられるんだろうから、それは違うか。
そのコードをいじるときに、無駄なコメントがいっぱいあると邪魔なんだよ。
もちろん、使う人にとっては「無駄」じゃないんだろうってことはわかるんだけどな。
Emacs使ってるならナローイングすればいいんじゃない?
ソースの見通しが悪くなるから、に一票。

個人的には、エディタの機能で一時的に表示・非表示を切り換えられるのなら
そんなにイヤではないのかもしれない。
むしろテストにドキュメントを埋め込むのはどうか、などと
適当なことを言ってみる。
ドキュメントにプログラムのコードを埋め込む、ってそこまで行くとTeX
というかliterate programmingだな。
>>578
うん。それもいいね。テスト自体仕様みたいなもんだし。
うまい人の Ruby プログラムは簡潔でめちゃ読みやすいから、
過剰なドキュメントで分断されるのはむしろ邪魔。
581名無しさん@お腹いっぱい。:04/02/26 21:56
コードの中のドキュメントより俺様流で書かれた出来の悪い
README や HTML が付いてる方がよほど嫌だ。
つーか言語の標準添付ライブラリにドキュメント書くのめんどくさがる
くらいなら、そんな奴のライブラリは標準添付しなくていいと思う。
ライブラリそのものも日本人以外に書かせた方がマシなものになるだろうし。
>>581
ドキュメントはともかく、ソースコード自体に何人かは関係ないと思われ。

あんたが、その「出来の悪いもの」を直せばみんなから誉められるし、
直せないなら「口だけ」って言われるし、ただそれだけのこと。
>>581
何の話をしているのかつかめない。

>コードの中のドキュメントより俺様流で書かれた出来の悪い
>README や HTML が付いてる方がよほど嫌だ。
ドキュメントの質が悪いのはイヤ、というのは同意。
で、
・コード中に書かれた(質のよい)ドキュメント
・README や HTMLとして付属してくる出来の悪いドキュメント
を比較しても意味がないと思う。

>つーか言語の標準添付ライブラリにドキュメント書くのめんどくさがる
>くらいなら、そんな奴のライブラリは標準添付しなくていいと思う。
いいライブラリで代替物がないのであれば、(ドキュメント書きの)
メンテナ付けて標準添付、って手もあるよね。ライセンスにもよるけど。

>ライブラリそのものも日本人以外に書かせた方がマシなものになるだろうし。
なんでここで日本人どうこうの話が出てくるのかわからない。


……オレが誤読してるのかな。
現在、標準添付されてる(特定の)ライブラリのことを指して言ってる?
584名無しさん@お腹いっぱい。:04/02/26 23:34
>>581
なんか破綻してないか?

>README や HTML が付いてる方がよほど嫌だ。
無いよりマシと思うが?

>つーか言語の標準添付ライブラリにドキュメント書くのめんどくさがる
>くらいなら、そんな奴のライブラリは標準添付しなくていいと思う。
「README や HTML」はドキュメントじゃないのか?
とすると、RDoc 以外はドキュメントとしてみとめないってことか?

で、多くのボランティアが足りないところを補い合って今の Ruby
が有るわけだ、グダグダ言ってないでおまえが書けや。
そういう気配を感じさせないおまえの発言は、Ruby を支えている
彼らに対して失礼じゃないか?
>>581 が matz 氏だと想像してみる。
>>585
README.EXT.ja はましなドキュメントだと?
>>581
たしかにあいつら英語はうまいよなあ。
>>586
あれがあるのとないのとでは全然違う。
というわけで、ないよりはまし。

>>587
いやそうと限らず……。
>>585
本当は誰かうすうすわかってるくせに…
smalltalkそっくりだなrubyって
>>590
それはほめ言葉?
lispそっくりだなrubyって
>>592
あんなユーザビリティの悪いものと一緒にしないでください
593(w
lisp はクソだけどメソッドコンビネーションはしっかりとパクリスペクトさせていただきマス
メソッドコンビネーションってどんなの?
basicそっくりだなrubyって
>>597
お前「そっくり」って言いたいだけちゃうんかと。
597と592は似てない。
>>596
はるか昔,括弧の国の Lisp という言語の標準に一緒に入った機能で
既存のメソッドをコールする時に処理を追加できる.
:before であるメソッドが呼ばれる前にメソッドを追加できるし
:after であるメソッドが呼ばれた後にメソッドを追加できるし,
:around で既存のメソッドコールを包み込めるし,
ついでにこのメソッドコンビネーション自体がプログラマブルという
ナイスな機能だ.
>>600
アスペクト指向みたいなかんじでつか。
>>601
それはコンビネーションのつかいみちのひとつなんじゃないの?
>>600
rubyにそんなの入ってたっけ。
>>603
matzいわくRuby2に入るらしい。
http://www.rubygarden.org/ruby?Rite
の Hooks の項参照。
>>603
ユーザビリティ最悪なうえに 20 年前のポンコツ規格の駄目言語からでも
リスペクトすべきところはしっかりリスペクトするんだよ。LISP 信者が
「俺たちは20年前から実現してたぞ!」などと負け惜しみをいいつつ
悔しがる様子が目に浮かぶ。ゲラゲラ。
厨は花粉とともに
AspectR みたいに hook を外したりはできないのかな?
foo:xxx を undefine するか、空の foo:xxx を再定義すればいいのかな?
>>608
hook外し機能も必要だけど、再定義で上書きさたらあんまりうれしくないような。
何重にでも重ねたい時があるだろうし。
……それともfoo:before:before とかも定義できる?

あとは以前にも(別スレで?)出てたけど、
・foo:around で super よばなかったらどうなるか
・foo:around で foo の super 呼び出しはどうやるのか
あたりが気になる。
鼻フック
>>600
この自意識過剰の LISP 厨が!誰が LISP みてーなポンコツからパクるって
んだよ。良く見ろ!てめーらは :before だの :after だのいちいち長ったらしいんだよ。
クソが! Ruby ではスマートにシンプルに :pre :post :wrap コレ。コレ最強!
キーワード引数だって別にパクったわけじゃねーよ。さすが Ruby。Ruby 最高!
どうやらlispというキーワードで反lisp厨のスイッチが入った模様です。
611は括弧の国の Lispという加齢臭漂う表現に反応したの
>>609
たぶんその辺はまだ何にも考えられてないので、
ここらできっちり議論しておくと、
小人さんが ruby-(dev|core) に届けてくれることでしょう。
>>614
wiki じゃないんだから小人と呼ぶのは酷いと思われ。
なんで人様を小人呼ばわりするような香具師に踊らされて実名晒して
MLに届けなきゃいけないのかと小一時間(ry
大人 385円
中人 170円
小人  70円
とりあえず次期 Ruby は最高って事でいいんだな。マンセー。
>>616
>>614 は謙遜して「小人さん」と言っています。
http://www.dm4lab.to/~usa/ruby/d/200402c.html#id20040229_P1
「だめぽ」とか「よさげ」とか「よろー」を使うのなら、「〜を嫁」も使ってほしかったな。

というわけで、グッジョブ!
>>620
「嫁」は一般人向けに後で書き直したんだよもん。
>>621
なるペソ。
623名無しさん@お腹いっぱい。:04/03/02 00:48
FreeRIDEが新しくなったようですよ。

かなり使い心地よさげ。
色付けもしっかりしてるように感じられます。

個人的には、emacsのelispの代わりにRubyを使ってるようなのが欲しいのですが
だれか作ってくれないかなぁ。
vim + ruby とか mine とか rxsh とか・・・
そういえば、Ruby 製の vim クローンあったね。
626名無しさん@お腹いっぱい。:04/03/02 01:41
>FreeRIDE
DelphiのTEditorみたいな感じで
エディタ部分だけ簡単に使えるようにしてほしいな。


プログラミングが本職じゃない俺みたいな人間には、
ソースを読んで必要箇所を見つけるっていう作業が
とても面倒なわけなんだな。
>>626
変更箇所を見つけなくてもいいってどういうこと???
キャラクタベースの UI を実装するのには、
Curses, ncurses-ruby, Ruby/Newt, ruby-Lang, JTTui, ...,
などがあるようですが、どれを選択するのがおすすめでしょうか?
また、他にこういうのがあるよ、というのがあればよろしくです。

# raa のカテゴリだと「Library / TUI」に相当するようですが、
# 「TUI」って一般的な用語なんでしょうか?
>>628
自分の目的・条件を何にも言わずに「どれがいいですか?」って…。

# TUIがどれほど一般的か知らないけど、ネイティブにCUIといっても通じないのは事実。
>>628
cursesはRuby本体ついてくるから別途インスコしなくていい分ラク。
……とか月並の意見しか言えない

>>623
よく知らんけど、Ruby/Jedってどうなってるんだろ。
>>626
エディタ部分は FXScintilla という エディタコンポーネントの Scintilla を
Fox にポートしたものを使ってる。
Ruby/GtkSourceViewなんかどうよ?
まだ取り込まれていないけどruby.langもGNOME Bugzillaに登録されてるし。
633名無しさん@お腹いっぱい。:04/03/03 06:12
web siteはこっちね。
http://www.nongnu.org/fxscintilla/
誰か偉い人、
ttp://www.ruby-lang.org/cgi-bin/cvsweb.cgi/ruby/ChangeLog?cvsroot=src&r1=1.3010&r2=1.3011
の「new method」がなんの役に立つのか、分かりやすく説明してください。

批判とかじゃなくて、単に分からんだけなのです。
>>635
http://rrr.jin.gr.jp/rwiki?cmd=view;name=ruby-cvs-2004-03-03#a135532
これか。
すぐには使い道は思い浮かばないけど、なんかヘソタイな利用方法が
ありそうだな<Hashのキーに Proc類
Kernel#caller が String の配列を返すのが不思議なんだけど、
なんで String なの?

メソッド知りたい時に、リファレンスにある
 def parse_caller(at)
  if /^(.+?):(\d+)(?::in `(.*)')?/ =~ at
   file = $1
   line = $2.to_i
   method = $3
   [file, line, method]
  end
 end
みたいなコードを書かなきゃいけないのが気持ち悪い。

最初から file, line, method メソッドを持ったオブジェクトにすればいいのに。
# 互換性は to_str なり to_s を定義しとけばなんとかなる?
あんまり使って欲しくないので使いづらくしているのかもね。
>>637
昔からStackFrameとかいろいろ提言はされてるけどな。
ム板で ruby は変態文法だって言われてますた
ム板の話を持ち込まんでよろしい。
>>641
ここでも ruby は変態文法だって言われたいのか?
(‘ ε ’)「変態は誉め言葉モナ」
あ〜ん、もっと責めて
Debian だと ruby 1.8 だけ入れても erb とか入らないのね
青木さんのメールでようやく File.fnmatch の話が分かるようになってきました。
最近、HEADを make すると、

make: don't know how to make ./miniruby. Stop in /path/to/src/ruby.
gcc -g -O2 -I. -I. -c array.c
gcc -g -O2 -I. -I. -c bignum.c
gcc -g -O2 -I. -I. -c class.c
...

って出てくるけど、最初の行は気にしなくていいよね?
クロスコンパイルとかじゃなくて、普通に ./configure; make やっているだけだけど。
[ruby-dev:23148]の話?
>>649
ども。たぶん同じ話でした。
>>643
どうして変態と言われるんだろう。
PythonやPerlよりは綺麗だと思うのだが、いろんな見方があるもんだな。
>>651
あっちでやれよ、と言いたいところだが釣られてみると、文終端の判定や
()の省略ルールなどが変態なわけだ。
素直に文終端記号( ; など)を導入するとか、()が省略できるパターンを
明確にしておいたほうがよかったかもね。
例え変態といわれようと、;なんてなくて良かった。
>>653
わしも同意。; は要らない。

括弧の省略は無くてもいいけど、やっぱりあったほうが便利だわな。
あと、多重代入とかの解釈が気になる。わしは覚えられないので、ごく単純な場合にしか使わんが。
655名無しさん@お腹いっぱい。:04/03/08 20:35
ruby-intlってまだメンテナンスされてる?
実はapt-listbugsがこれを使ってたりするのだが。
*が演算子だったりすると変態。
cvs HEAD とはいえ、いつまでも make test-all が通らないままにしてほしくないな。
何のための UnitTest なんだか。

仕様が変わったんなら、先にテストを直したらいいのに。
>>656
単項ってことなら左辺で使えないから無理ぽ
>>657
ぜひruby-devやruby-coreで言ってやってください。
http://www.ruby-lang.org/ja/install.cgi?cmd=view;name=FreeBSD
最近はデフォルトが RUBY_VER=1.8 になってたりしますか?
>>660
[FreeBSD-users-jp 78437] ruby version depended another ports
をどっかから探してきて嫁。
>>661
ありがとうございます。早速読みました。
/usr/ports/UPDATING なんてのがあったんですね。

ところで、「ruby 1.6 は i386 でしか幸せになれないということで」、
と発言されている方がいますが、これはどういう意味なんでしょう?
i386 だと 1.6 のままの方が良い?
いつまでたっても make test-all は通らんな。
cvs HEAD の話。

http://www.dm4lab.to/~usa/ruby/d/200403a.html#id20040310_P2
私の場合はいつも make test-all && make install しているわけだが、今日はそれが通らずに([BUG]となる)
make install; make test-all して通るようになった。

1418 tests, 9584 assertions, 5 failures, 1 errors
だった。drb 関連の failures が減って、代わりに

test_break__nested_loop3(TestIterator)
test_break_from_enum(TestIterator)

が新たに failure となった。
[BUG]について語りたいならruby -vの結果くらいは示せよ。
>>665
いえ、[BUG] についてではなく、残っている failure について語りたいのです。
([BUG] は単に、make test-all を先にしてしまったからです)

ttp://www.dm4lab.to/~usa/ruby/d/200403a.html#id20040310_P1

これってC++が絡んでも結論は変わらない?
>>667
変わらない。

C++で書かれたサードパーティー製のライブラリ(DLL)があって、それは
VC++でもMinGWでもコンパイルできるとする。
そのライブラリに対するRubyバインディングとして拡張ライブラリを作ったとして、
VC++版のサードパーティ製ライブラリに対して作成した拡張ライブラリが
MinGW版のサードパーティ製ライブラリと一緒に使えるかどうか、となると、
使えないかもしれない。
でもこのパターンはRubyと関係ないやね。
669667:04/03/11 12:40
>>668
なるほど。勉強になりますた。
670名無しさん@お腹いっぱい。:04/03/12 10:39
スクリプト言語AIR
ttp://www.rubyist.net/~matz/20040309.html#p02

> 言語仕様を見てみると、パターンマッチなしのAWKみたい。

パターンマッチのないAWKなんて…
>>670
ム板にスレが…
スクリプト言語Air
http://pc2.2ch.net/test/read.cgi/tech/1079015351/

パターンマッチはあるようだ
"/pattern/" =~ str
正規表現の作成が"/"で囲む、というのが変態じみているが
regex = "/" + substring + "/"
if(regex =~ str){ ... }
672sage:04/03/12 19:25
>>662
sparc64, ia32等の環境でruby1.6で動かないと思われ。
ia32は動くよ、いくらなんでも。
ia64の間違いだよね。
昨日の変更で、CVS HEAD の Failure がひとつだけになりました(それまでは最近は4つだった)。

1) Failure:
test_range_cycle(YAML_Unit_Tests) [./yaml/test_yaml.rb:1214]:
<"0".."1"> expected but was
<0..1>.

1418 tests, 9595 assertions, 1 failures, 0 errors
パターンマッチなしのPERLみたいな新言語を作ろうと思う
>>675
どうぞ、そうしてください。
やれやれ
>>675
続きは厶板の適切なスレか新スレ立てる方向でよろしく。
>パターンマッチなし

パターンマッチ無しのスクリプト言語なんて意味あるのか
>>679
まあ、作る本人にだけ意味のある言語ってのもアリなのではないかと。

数字しか扱えない言語とか、条件分岐が出来ない言語とか、
他の人にはまったく意味の無い言語でも、作った本人が意味があればそれでいいのでは。
>>680
いいこといった。名づけてジコマン言語。自分が神になれる言語。
そのジコマンを洗練させていけば、いつかみんなが共感してくれるかも。
ruby は普通に使ってますが、

method(**{a=>b, c=>d})

って、何だ? って感じです。

method(a, b, c, d)

と同じってこと?
method(**{a=>b, c=>d})

method(**{c=>d, a=>b})
は同じで、

method(a, b, c, d)

method(c, d, a, b)
は違う、というようになるのでは。
>>683
ごめんなさい、全然分かりません。

そもそも method(**{a=>b, c=>d}) の引数がどのようになるのかが
まったくわかんないのです。

> method(**{a=>b, c=>d})
> と
> method(**{c=>d, a=>b})
> は同じで、

っていうことは、

def method(a,b)
p a
p b
end

なら、どちらも同じ結果なの?
>>681
matz氏はNHK(クローズアップ現代)に出た時もその他いろんな場所でも、そう強調してるよね。
「Rubyは、技術者としての自分が納得するため、自分のために作った言語だ」ってような話。

ただ世界には、言語処理系専攻の学生が卒論(修論/博論)のためのみに作り、そして洗練されずに終わる悪い意味でのジコマン言語が日夜、作り続けられてる…。
それが勉強の一環だから、>>680氏の言う「作る本人にだけ意味のある言語」でもまーしょうがないかな、と。

>>682
1.6.2 (2000-12-25) でも 1.8.1 (2003-12-25) でも 1.9.0 (2004-03-20) でも、「{」で syntax error になりますよ。
(一度変数に代入してからなら違いますが)
>>684
ていうか、うだうだ言って他人に世話してもらうより、自分でirb使った方が圧倒的に早いんじゃ。
>>686
そうですね。

>> a = *{1=>2, 3=>4}
=> [[1, 2], [3, 4]]
>> b, c = *a
=> [[1, 2], [3, 4]]
>> b
=> [1, 2]
>> c
=> [3, 4]

つまり、こういうことか。

今まで
method(a=>b, c=>d)
は、
method({a=>b, c=>d})
と同じ。

将来的には
method(a=>b, c=>d)
は、
method(*[[a, b], [c, d]])
と同じ。


def m(*a); p *a; end

m({:a=>1})
m(:a=>1)
m({:a=>1,:b=>2})
はもちろん
m({a:1})
がOKになったのに
m(a:1)
m(a:1,b:2)
m({a:1,b:2})
はエラーだ…

# ていうかmatz氏は、[Ruby2]な仕様を1.9で入れちゃうわけね(もちろんVM周り以外だろうけど)。
>>687
何故にそういう結論が出るの?
>ていうかmatz氏は、[Ruby2]な仕様を1.9で入れちゃうわけね

1.9 ってそのためにあるんじゃないの? と思ってたけど違う?
691689:04/03/21 19:29
すまんかった、Matzにっき見てなかった。orz
>>690
1.9って1.9.0が開発版、1.9.1以降が安定板リリースにする、ていうのじゃなかったでしたっけ?
もしそうだとしたら、2.0.0の開発版で入れればいいじゃん、と思ってたっす。
>>689
違いましたか?
どう違うのかご指摘ください。これ以上は私には思いつかなかったです。
>>692
> 1.9って1.9.0が開発版、1.9.1以降が安定板リリースにする
それ本当?素直に安定版を1.10とすればいいのに…
Ruby って 9.9.9 で打ち止めなの?
696689:04/03/22 00:28
>>693
分かり辛くてごめんなさい。>>691に書いた通りです。すんません。
>>694
本当。
なお、Rubyのmajor,minor,teenyはそれぞれ二桁以上になることはない、と
宣言されている。

>>695
今のリリースのペースだと、9.9.9に行くまでにMatz版Rubyの開発は終了
するだろうね。
>>692
1.9系は2.0系に向けての文法仕様の確認を兼ねているので。
ま、リリースしないと誰も使わないから、文法の変更がどれくらい影響を与えるかを
確認するには安定版のふりをしてリリースするしかないという気はする。

Matz自身は、1.9系は世間的に広く使われるバージョンにはならないだろう、と
言っていたと思った。
FreeBSD ports の ruby-date2 って無くなっちゃったのか。
date/holiday が無くなっちゃって悲しい。
>>697
> なお、Rubyのmajor,minor,teenyはそれぞれ二桁以上になることはない、と
> 宣言されている。
16進数だったりしてな。
>>700
RUBY_VERSION >= '1.8.1' で検査できることが目的(の一つ)だから36進数かもしれんぞ。
>>701
'z.z.z'っていうのもありえるけど、そのときはMatzは300歳ほどかな。
>>702
マイナーバージョン(真ん中の数字)がひとつ上がるのに4年くらいかかってるんだから、
300歳になっても数字の範囲は出ないと思われ。
704名無しさん@お腹いっぱい。:04/04/03 10:31
>>674
で、これっていつ直るの?
ask why.
YAMLの話は、実装のバグというより、仕様のバグのような気が。
数字のリテラルと、数字の文字列のリテラルを区別してないあたりが。
>>706
YAML::load のバグのような気がする。

yaml/rubytypes.rb の Range#is_complex_yaml? の、

if String === val and val =~ /^(.*[^.])(\.{2,3})([^.].*)$/
r1, rdots, r2 = $1, $2, $3

で、 r1 と r2 が "\"0\"" と "\"1\"" のままになってるけど、
"0" と "1" にする処理が要るはずなのに抜けてる。
708名無しさん@お腹いっぱい。:04/04/06 02:26
>>707
よくわからんが直してよし。
>>707
そう単純じゃない。
$ ruby -ryaml -e 'p YAML.load(("a..b".."a..c").to_yaml)'
"a..b..a".."c"
という風に、ちゃんとexprをパーズしないといけないところで手を抜いてるとか、
いろいろある。
>>709
なんでもいいが、英語で ruby-talk に言ってやれ。
そうすりゃ、_why も真剣になるだろ。
>>710
-coreでも-talkでもとっくに報告済み。
712名無しさん@お腹いっぱい。:04/04/13 15:59
メソッドの引数の記号がよくわかりません。
**とか、ハッシュでない(?)({}でくくってない)のに、=>を使ったりとか。。
そのため
>>683-688
で何をやってるかよくわかりません。

どこか、いいページはないでしょうか?
713名無しさん@お腹いっぱい。:04/04/13 16:17
selfというのが必要な理由がわかりません。

「たのしい Ruby」 では、selfの仕様例として
次のような例を挙げています。

class String
def count_word
ary = self.split(/\s+/)
return ary.size
end
end

str = "Just another ruby newbie"
p str.count_word
=> 4

でも、この3行目の self.split(/\s+/)って
単に split(\s+) でもいいですよね。

どういう時に、selfが絶対必要になるんでしょうか?
714713の訂正:04/04/13 16:19
3行目、使用例 に訂正
18行目、単にsplit(/\s+/)でもいいですよね に訂正(スラッシュ忘れた)
>>712
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=%A5%E1%A5%BD%A5%C3%A5%C9%B8%C6%A4%D3%BD%D0%A4%B7

ハッシュの話は載っていないな。
foo(1, 'bbr'=>2) は foo(1, {'bar'=>2}) と同じ扱い。
けど、これは将来廃止されるので(そうだよね?)、使わないほうが良い。

** というのは、現在は存在しない記法。
意味的に
bar = *[]
foo(*bar)
ということの様子。
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=FAQ%3A%3A%CA%D1%BF%F4%A1%A2%C4%EA%BF%F4%A1%A2%B0%FA%BF%F4#a2.2e8.20.2a.a4.ac.a4.c4.a4.a4.a4.bf.b0.fa.bf.f4.a4.cf.b2.bf.a4.c7.a4.b9.a4.ab
>>713
> でも、この3行目の self.split(/\s+/)って
> 単に split(/\s+/) でもいいですよね。

その通り。

> どういう時に、selfが絶対必要になるんでしょうか?

えーっと、どっかにそんな話の一覧があったような気がしますが、
わたしの覚えている範囲では以下の通り。

そのメソッド内に、他のインスタンスメソッドと同じ名前のローカル変数を
設定してしまったとき
class A
def b; puts 'A#b'; end
def c; b = nil; b; end
def d; b = nil; b(); end
def e; b = nil; self.b; end
end
A.new.c
A.new.d
A.new.e

代入形式のインスタンスメソッドを呼びたいとき
class A
def b=(val); puts val; end
def c; b = 'A#c'; end
def d; self.b = 'A#d'; end
end
A.new.c
A.new.d
717名無しさん@お腹いっぱい。:04/04/13 16:36
>>715
ありがとうございます。
でもこれって、どう便利なんでしょうか?
あまり便利な時が思いつきません。
>>716
予約語と同じ名前のメソッドを呼びたいとき、
というのもあるね。self.class とか。
こういうのは self 無しで書ける?
class String; def quote; "[#{self}]"; end; end
class Integer; def succ; self + 1; end; end
self が必要なケースと言えば return value に使うとか。

class C
 def foo
  #何かする
  self  # <- ここ
 end

 def bar
  #何かする
 end
end

で、C.new.foo.bar みたいな。


個人的には「ローカル変数じゃなくて、引数ナシのメソッド呼び出しなんだ!」と
強張したい時は、同名のローカル変数を定義してなくても self.foo と書いたりする。
>>717
これって、どれ?

ハッシュ形式のほうは、引数を「順番」ではなく、タグ(キーワード)で設定したいときに
便利だよね。

* の方は、可変長の引数をあらかじめ生成したいときに便利だよね。
args = []
while '何かの条件'
args << '何かを何回か加える'
end
# 最後にひとつのメソッドで呼ぶ
foo(*args)
>>719
class String; def quote; "[#{to_s}]"; end; end
class Integer; def succ; to_i + 1; end; end

そういう意味じゃないってことは、よく分かってるよ。
723719:04/04/13 17:32
>>722
がーん。まあ、できるかできないかで言えば、できるか。

class String; def quote; "[" + __send__(:+, "]"); end; end
class Integer; def succ; __send__(:+, 1); end; end

でも、関数形式じゃないのを self 使わずに書くのはかなり嫌だ。
確かに to_i ってのは結構どきっとするな
演算子は self なしで呼び出せないと思われ。
self["str"] とかはよくやるし。
726719:04/04/14 13:07
>>725
んなこたあないよ。
class Hash; def str; __send__(:[], "str"); end; end
>>726
なるほど、その手があった。やりたくないけどw
rb_hash_aset()にはHash#[]=の他にHash#storeっていう別名があるのに、rb_hash_aref()にはHash#[]しかないのはなぜ?
729初心者:04/04/15 00:17
私も、*による展開について理解できません。
1)
a , b = 1 , *[2,3]
p a => 1
p b => 2
2)
b = *[2,3]
p b => [2,3]

なぜ、2)はp b => 2にならないんでしょうか?
b, = *[2,3]
p b => 2
>>729
多重代入、難しいね。わたしは滅多に使わないようにしている。
http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=%B1%E9%BB%BB%BB%D2%BC%B0#a.c2.bf.bd.c5.c2.e5.c6.fe
そういや matz 日記で見た
x, *xs = *list
ってのにびっくりしたな
ひさしぶりに金光タソが投稿してるな。
おお久しぶりだーと思ったら、何あれ?
735名無しさん@お腹いっぱい。:04/04/21 02:45
多重代入の時

a , b = *[ 2 , 3 ]

とすると、
右辺の*って要らない気がするんですが
上のレスみてると、みんなつけてますよね。

これって作法ですか?
>>735
まず結論から言うと、「*」を付けるほうが「正しい」。
本来、理想的な多重代入の仕様からすると、両辺の
リスト要素が文法的に同じ数でないといけない。

a, b = 1, 2
p a # 1
p b # 2

従って右辺が配列のとき (文法的には要素一つ) は
「*」を付けて展開するのが「正しい」。

list = [1,2]
a, b = *list
p a # 1
p b # 2

では現在 a, b = list で a=1; b=2 になるのはなぜかと
言うと互換性のため。将来 (早ければ 1.9) には通らなく
なる可能性が高い。
>>735
明解な説明ありがとうございました。
なるほどです。
738sage:04/04/26 00:14
>>736
論拠は?
739738:04/04/26 00:16
あげてもた
すまそ
>>738
ruby-dev
Rubyのブロックって、いわゆるクロージャであるという理解でよろしいでしょうか。
そう考えてよろしいかと存じます。
なんか最近、面白い動きある?
744インデント君:04/05/11 22:58
質問です。

以下のような、ブロックを受け取るメソッドを定義したいんですけど、うまい案ありますか?
やりたいこと:
受け取ったブロック中での STDOUT とかへの出力をインデントする。

たとえば、メソッド名を indent とすると、

indent {
puts "hoge"
}
実行結果:
hoge # 一回インデント

indent {
indent {
puts "hoge"
}
}
実行結果
hoge # 2回インデントされる

みたいな感じです。
>>744
普通、文字列だけを受けるような。
def indent(tab="\t"); sprintf('%s%s', tab, yield); end
puts(indent { indent { "hoge" } })

ちゃんと質問に答えると、以下のような感じ?
require 'stringio'
def indent(tab="\t")
fd = $stdout
$stdout = StringIO.new
result = yield
$stdout.flush # need?
$stdout.rewind
$stdout.each{|line| fd.write(tab); fd.write(line) }
$stdout = fd
result
end
indent{ puts 'hoge' }
indent{ indent{ puts 'hoge' } }
746インデント君:04/05/12 01:01
>>745 さん
ありがとうございます。

いただいた文字列だけ受ける案のほうがいいみたいですね。
下の案だとやっぱりやりすぎかもしれません。
オフィシャルサイトもうちょっとやる気出さないかね・・・
ソースだけでRPMもZIPもCHMも何もなしで各種ファイルが散らばってて面倒すぎ。
>>747
まかせたぞ。
www.ruby-lang.org トップページの RAA updateって欄が更新されていないようにおもうんですけど
オッス、おら悟空!
1.6.xと1.8.0と1.8.1のCGI.rbの挙動の違いに、おらすっげーむかむかしてきたぞ!
標準添付の cgi.rb 使ってる香具師は負け組。
ふつーNora使う
>>751
その発言で勝ち組のつもりですか。
754名無しさん@お腹いっぱい。:04/05/20 00:37
1.9ではどうなるの?
Noraはネーミング的に標準添付ありえねー

と思うけどどうよ?
別に大丈夫じゃない?
Nora 使って書いててもコード上に Nora という文字は出てこないし。
Noraみてみようと思ったけど、
ドキュメントがない??
>>757
漏れもたまたま今日 Nora 調べ始めたけどそうみたいね。
README にサンプルコード見れとあったのでサンプル見てる。
そうか。みんな標準のCGI.rbなんか使わないのか。
Noraってmod_rubyと組み合わせても問題なく動きます?
↑のリンクたどったらNoraでのmod_rubyとFastCGIの
比較がいちばん上にあったけど、FastCGI使えって意味
なんかな?

FastCGIはmod_ほげほげと違ってapacheが太らないのが
魅力的だと思ってたんだけど(普通のコンテンツも同じ鯖に
混在してると特にね)、結構効率もいいのですね。やる内容
にもよるのかもしれないけれども。

つーかこのスレが上位に出てくる。
763名無しさん@お腹いっぱい。:04/05/28 11:58
CGIでカレントのURL(ブラウザのアドレスバーに表示されているもの)を得るのってどうやるの?
WebProg板の初心者質問スレへGO
ちょっとどっきりしたもんだよ
http://mattz.no-ip.info/contents/2ch/
766名無しさん@お腹いっぱい。:04/05/30 02:42
rubyも侵られてるし……
Anonymous CVS access via ssh での復活を希望。
やってるんだろうけど。
リファレンスが引けないのが痛い
おなじようなサービスやってるところあったっけ?
>>768
漏れは手元にダウンロードしてきて見てる。
http://www7.tok2.com/home/misc/ruby.html
おお
htmlヘルプ便利だ
さんくす
公式サイト復活してるね
復活情報サンクス
773名無しさん@お腹いっぱい。:04/06/21 22:55
anonymouse cvs まーだー?(AAry
言語塾、
入りたい気はたくさんあるけど、引っ込み事案な私は参加できないまま。
またperl厨の妨害にあわなきゃいいが。
言語塾ってただのメーリングリストじゃないの?それとも他に何かやるとか?
いや、多分今はただのメーリングリストなんだけど、今のところ「名乗らないと入れない」ってこと自体が
私には敷居が高いわけ。

まあ、そんなことで「敷居が高い」って言っていたら、とても自作言語を発表出来ない訳だが。
778名無しさん@お腹いっぱい。:04/06/22 08:48
自意識過剰ってやつですか。
そうでしょう。
cvsが復活したみたい
だからsubversion使えとあれほど・・・(嘘
pserver じゃ無くて、SSHにして欲しかったなり。
マスターはSSH
いいじゃん.archで.
>>774=777
言語塾MLできたぞー
うんっ!

て言っても、QuickMLなんで、本当に引っ込み事案の方は無理かも。
ログは公開されてるのかな?
1.8.2 が出るのか。

1.8.1 からは、そんなに大きな話は無かったよね?
バグ修正くらい?
>>787
そのバグ修正くらいが大きいのだ。
リリースはいつもあわただしいからなぁ
毎度のことだがあわただしすぎだろ。少しは学習しろよ
言語塾スレってないの?
>>791
まだMLではほとんど何の話も始まって無いですが、
あなたには何かここで喋りたいことがあるの?
ここでいいんジャネ?
794名無しさん@お腹いっぱい。:04/06/29 14:28
Matz氏の日記を見ていると、rubyはもう先細りかなという気がしてきた。

本人はコード書きの最前線に留まる気満々のようだけど、着実に流されて
いるよ、管理職方面に。なしくずし的に流されてる。
そろそろ別実装が出てくる時期かと。

しかし、作ったところで、Matzと不毛な論争に巻き込まれそうで嫌だな。
ネガティブキャンペーン張られそうで。
>>795
そうでもないんじゃないかな、昔どっかで言ってたじゃん、「別の実装がデファクトスタンダードになれば、我々のは参照実装になるだけだ」って。
awk的になってもかまわないということでしょう。
そんなことは動くもん作ってから心配しなさい
取り巻き連中からして、matzも飽きてくるはず。
.NET対応をきっちり行う以外にRubyの生き残る道はない。
>>799
誰かがやってなかったっけ?
それとも既存のは「きっちり」じゃない、とか?
>>799
やってちょ♥
最近、pythonで書かれたものしかないソフトウェアがどんどん出てきて、
rubyさよならかなという気がしてる。コミュニティの開発力でも完全に
負けているし。

コミュニティの第1期を盛り立てた連中が年を取って開発力を失って
いるけど、後に続く者たちがまったく育ってないないという状態かと思う。
玄人ぶってるユーザが多い気がする

なんにせよFreeBSDでは標準的なアプリケーションとして認識されてるでしょう
>>802
pythonでしかないものって、例えばどんなの?
805名無しさん@お腹いっぱい。:04/06/30 03:22
>>804
> pythonでしかないものって、例えばどんなの?

ヤバめのもの(w
マジレスしてやる.
XOOPSとかそうだろ.
補足.

>>805がいってるヤバめのものは
ninix-ayaとかfutasukeのことに思えたりするけどな.
808名無しさん@お腹いっぱい。:04/06/30 05:04
Rubyにも、環境(開発環境も、Zopeみたいなのも含めて)があれば、もっと簡単に開発できるのに。

tDiaryだけだとダメポ。
Emacsだけでもダメポ。
ここ二日くらいの集中書き込みにワラタ
>>808
>開発環境
RDE とか FreeRIDE とかあるけどどうよ?
#個人的にはemacsで満足してるのでIDE試したことがない
その言語独自のIDEなんてイヤだね。
Visual StudioとEclipseに組み込んでクレクレ
EclipseにRubyプラグインあった気がするが?

まぁ,オレは使ったことがないけど.
813名無しさん@お腹いっぱい。:04/06/30 18:13
でも、そのプラグインの開発、止まってない?
>>806
どこがマジレスだYO
すまん.
Zopeと間違ったんだよ.

レスしたときはマジだった.
俺様Pythonファン。
理由はRubyが嫌いだから。
日本製のソフトなんか流行っちゃいけないから。
てめぇはGRUB使うなよな.
liloファンでいてくれ.
818名無しさん@お腹いっぱい。:04/07/01 01:06
>>816
いろんなソフトの日本語化パッチ使うなよ
こんな過疎板でもちゃんと釣れるのか
釣れたと言えば恥ずかしい発言がなかったことになるわけではない。
また(ry
釣れたと言えば恥ずかしい(ry
釣れたと言えば恥ずかしい(*´-`*)ポ
ドイツにいったら、こちらが日本人であるとみるや「きみは Ruby 使ってる?」
と話しかけられたなあ。
どこのどいつだYO!
ruby はドイツ語で perl の意味。
オンドゥルルビィッタンディスカー!
>>824
アメリカ行ったときはRubyを知ってる奴がぜんぜんいなかったぞ
>>828
観光旅行か何かか?
830824:04/07/07 14:15
まあその手のイベントだったからなあ...
rubyってオープンソースであるがゆえにプラットフォーム間の互換性が損なわれて困ったもんだね。
>>831
最近はその程度じゃなかなか釣れないみたいだよ。
それを釣れている,と言わないかな.
世間的には.
そうだったかあ。こりゃ一本取られましたなあ。はっはっは。
性欲を持て余す
リリースを持て余す
Process.daemon
838名無しさん@お腹いっぱい。:04/08/08 23:15
Process.doraemon
Process.dayomon
840名無しさん@お腹いっぱい。:04/08/17 18:26
すみません。rubyから2chを開こうとすると下の様なエラーがでます。

/usr/local/lib/ruby/1.8/open-uri.rb:544:in `proxy_open':
500 Internal Server Error (OpenURI::HTTPError)
from /usr/local/lib/ruby/1.8/open-uri.rb:505:in `direct_open'
from /usr/local/lib/ruby/1.8/open-uri.rb:169:in `open_loop'
from /usr/local/lib/ruby/1.8/open-uri.rb:164:in `catch'
from /usr/local/lib/ruby/1.8/open-uri.rb:164:in `open_loop'
from /usr/local/lib/ruby/1.8/open-uri.rb:134:in `open_uri'
from /usr/local/lib/ruby/1.8/open-uri.rb:422:in `open'
from /usr/local/lib/ruby/1.8/open-uri.rb:85:in `open'
from temp.rb:35

でtemp.rb の35行目は下のopenです。


open("http://pc5.2ch.net/test/read.cgi/unix/1060537252/l50",
"Referer" => "http://www.2ch.net/") {|file|

file.each{|line|

p line

}

ほかの、2ch以外はこれでアクセスできます。どこを直すべきでしょうか。
教えてください。
>>840
> /usr/local/lib/ruby/1.8/open-uri.rb:544:in `proxy_open':
> 500 Internal Server Error (OpenURI::HTTPError)

クライアント側(temp.rb)じゃなくて鯖でエラーになってるようだが、
どういう串を使ってる? 規制に引っかかってたりはしないよな。
>>840
試してみたら漏れも同じようなエラーになった。 2ch 固有の仕様のせいと思われ。
User-Agent を Mozilla とかに指定したら取れるようになったので、お試しあれ。
843840:04/08/17 22:15
>>841,842

ありがとうございます。User-Agent Mozilla/5.0にしたら繋がりました。
ここいつも見ているんですけど、最近書き込み少ないんで、返事くれるかなって
思っていたんですけど、すばやいお返事どうもありがとうございました。
これからも、よろしくお願いします。

844あぼーん:あぼーん
あぼーん
845名無しさん@お腹いっぱい。:04/09/11 02:42:29
Rubyist Magazine創刊age
http://jp.rubyist.net/magazine/

金光タンの連載まだー?
例の商用DB関係とか(w
MoonWolfタンの写真がこわいよー
rubyist.net の更新時刻を取得しようとおもったんだけど、
UA で制限されてて Forbidden になるのは Hiki の仕様?
>>846
確かに怖い。他の人もそれなりに怖いけど
スラドで怖いと言いたかったが,さすがに気が引けた.
ここでなら言える.怖い,と.
Noraのページって落ちてる?
852おい、おまえら:04/09/12 05:29:30
いや、わざとあの写真だろ。
853名無しさん@お腹いっぱい。:04/09/12 05:54:20
怖いっていうか、精神病の匂いがする写真だ。
少なくとも雑誌をきっかけにして入って来るかも知れないような人に
見せるものじゃないと思う。きもいよ
>>854
うん。こんな人とはかかわり合いになりたくないと思う人がほとんどでしょうね。
ひどい言われようだが、俺自身は鏡とじっくり相談した結果、
コメントは差し控えた方がよいとの結論を得た。
漏れはこの写真を見て Nora を使うのはやめようと決心した。
誰かさ、Ripper が何で HEAD に入ったのかと、どういう風に使うのか、説明しちくり。
分かりやすく。
>>858
オレも手さぐり中なんだけど、使い方。

# Ripper クラスのサブクラス作る
class MyParser < Ripper; end

# そのクラスに「on__イベント名」ってメソッドを作る
class MyParser
def on__fcall(fname)
puts "#{fname} call"
end
end

# インスタンス作って(new の引数はparseしたいソース)
parser = MyParser.new("foo()")

# parseする。イベントに対応したメソッドが適宜呼ばれる。
parser.parse #=> "foo call"

# どんなイベントがいつ呼ばれるかは、↓こんなテスト用parserで試せばいいかも
class TestParser < Ripper
PARSER_EVENTS.each do |event|
define_method("on__#{event.to_s}"){|*arg|
p [event, lineno, column, pos, arg]
}
end
end
860名無しさん@お腹いっぱい。:04/09/15 06:39:20
>>859

> 「on__イベント名」
def on__orz
end
862名無しさん@お腹いっぱい。:04/09/15 12:34:03
>>846
目線入れとけ、と思た。
>>860-861
おまいらのせいでもうそれにしか見えなくなっちまったじゃねーかよ!
864名無しさん@お腹いっぱい。:04/10/03 13:20:40
Syslogの出力って、改行を含めることはできませんか?
改行が空白に変換されるんですけど、それを避けたいんです。
>>864
そもそも syslog に改行は出力できない (\n に変換される) と思うのだが。
もしかして OS によっては違ったりするの?
866名無しさん@お腹いっぱい。:04/10/03 15:25:02
>>865
ああ、やっぱりそうなんですか。syslog(3)にはそういうことは書いてなくて、
ちょっと淡い期待を抱いていたんですけど。
Apacheなんかのログはsyslogを使わないで独自にやってるんでしょうね。
ありがとうございました。
>Rubyist MagazineでNoraチュートリアルを連載しているのですが、記事について
>の要望とかありませんか?
普通の写真にしてください
ココは MoonWolf タンに巡回されてないのね・・・(´・ω・`)ショボーン
RubistMagazine第二号では写真変わっとる。
写真を選んだか、あるいは本人が変わったのか。
ようするに第一号の写真はジョークだったんじゃないか?
おまいらMoonWolfタンが一人だと思ってるのか・・・
実は双子なんだよね、彼等。知る人ぞ知るというか。
外の人が変わっただけ
双恋
GirlsSide
そんなの知らない
いつも不思議なんだが、なぜmatz氏の日記の検索ワードにはいつも
「関西援交」が上位に入っているんだ?一回でも言及したことあるのか?
次に不思議なのが、「はしのえみ 動画」。
>>877
リファラ偽装。
なるほど、yahooやgoogleから飛んできたんじゃなくて
「関西援交」で検索した時のURLを、あえてリファラとして使う。
でもそのメリットがわからん。ちょっとしたいやがらせ?
>>879
ゴッゴル方式(つーかGoogle方式リンクされまくってるサイトが上に来るから)
で上位に表示さえさせれば収入になる、もしくは収入になる可能性が上がるから
だと思ったがGoogleで検索してみるとあんまり統一感がないので陰謀説をでっちあげると

ラハイナ東海の社員がRubistでMats日記チェックしてて広告のためにリファラ偽装してるに101ペソ。

しかし関西円光シリーズのメーカー、ラハイナ東海って聞いたことなさすぎ。
古い IE なんかだと、別ウインドウの referer が出ちゃうってバグがあったよね。
タブブラウザで関西援交と matz 日記の両方開いててバグに当たった、に 2ガバス。

ってもしかするとそれって漏れかもしれない・・・
でも、関西援交からの数は尋常じゃないぞ。
そんなにみんな関西援交で検索してるもんなのか?(w
>>880の説のが説得力あるなぁ。
おまいら referer spam も知らんの?
動機がわからん、という話では。
Rubyでは「/.../」で正規表現を表しますが、これって字句解析時に「/」演算子とどうやって見分けているんですか?
つまりプログラムを一文字ずつ読み込んでいって「/」を見つけたとき、それが「/.../」なのか「/」演算子なのかどうやって判断するのか。
通常は一文字先読みすればわかるような文法になってるはずですが、正規表現の場合、最初の「/」のあとにどんな文字でもくる可能性があるから先読みしてもどっちか判断できないと思う。

ということは、構文解析しながらそのときのコンテキスト情報みたいなのを字句解析に渡しているんでしょうか。
教えてえらいひと。
>>885
> 通常は一文字先読みすればわかるような

先読みって、look ahead の事か?

先読みするのはトークン。文字じゃない。
これを読め。面白いから。保証する。
「コンパイラ―原理・技法・ツール〈1〉」
http://www.amazon.co.jp/exec/obidos/ASIN/4781905854/
888名無しさん@お腹いっぱい。:04/11/20 17:41:02
>>886
>先読みするのはトークン。文字じゃない。

いや、文字も先読みするよ。字句解析で。
例えば読み込んだ文字が「<」だった場合、次の文字が「=」か「<」かそれ以外かで返すトークンがかわるだろ。だから先読みが必要。
まあCならungetc()で文字を戻せるから、先読みというよりは「読み戻し」というほうがぴったりくるのかもしれんが、やってることは同じだ。

なお分かっていると思うが、トークンを先読みするのは構文解析での話。今問題にしているのは字句解析ね。そこんとこよろしく。
>>885で「一文字先読み」と書いたでしょ?トークンは一文字だけ先読みしてもわかんないよ。
889886:04/11/20 18:12:17
>>888
エイホウルマン読め。
それから wirth の A+D=P を読むならパスカルコンパイラの入っている古い版にしろ。
以上。
>>889
答えられないなら黙ってもいいよ。
>>885
素人考えなんだけど、 / の先を読まなくても / の前の状態を見ればわかるのでは?
ruby の言語仕様はソースだと matz がどこかに書いてたな。
>>891
そううまくはいかないのがRubyの恐ろしさ。

% ruby -e 'p /a/'
/a/
% ruby -e 'p / a/'
-e:1: parse error
% ruby -e 'p(/a/)'
/a/
% ruby -e 'p(/ a/)'
/ a/
なんにせよ、rubyだけの問題じゃないがな。
>>885
lex_stateという変数でパーザの状態をみている。
それだけでは確定できない場合は前後のスペースも考慮する。
>>895
ありがとう!やっぱり、構文解析部の情報を字句解析部に渡している(あるいは字句解析部が構文解析部の情報を読んでいる)のですね。
これって本や教科書じゃ見かけないやり方だけど、わりと一般的でしょうか。少なくともCやJavaはこんなことしてないよね。他にこんなことしている言語があったら教えてください(Perlはやってそうだな)。
しかしこれじゃflexとか使えないよね。もしかしてRubyはParser作るのが難しいだけじゃなく、Lexer作るのも難しいのか。というより、LexerがParserと一体化しており分離不可なのか。

>>894
意味分からん。

>>891
うーん、そうなのかな。もしそうなら、字句解析部は前回呼び出されたときに返したトークンを覚えておく必要があるな。
そのやり方も本や教科書に載ってないと思うが、新しいやり方だな。以外と面白い研究ネタになるかもな(もうあるかもしれんが)。

>>890
はげどう。とうか、黙ってください。
なんで>>889はわかってるふりをしたがるのだろう。わからないことは素直にわからないって言えばいいじゃん。
知ったかぶりするやつほど実はなんも知らんことが多いよな。昔そんな同期がいてうざかった。生半可に知識をひけらかすのだが、後輩に矛盾点を指摘されて逆ギレしてた。
煽られて、煽り返して、なんつーか
小学生?
>>897-898
答えられないなら黙ってもいいよ。
今、ふと思ったのだが、もしかしたら>>895のような「Parserの情報をLexerが参照する方法」や>>891のような「前回のTokenをLexerが覚えておく」というやり方っていうのは、すでにWirthの本やドラゴンブックにはすでに説明されているのかもしれん。
>>889はそれを知っててその本を薦めてくれたのかも。もしそうならすまんかった。心より謝る。
>>890,899
質問スレでも無いのに偉そうだな
>>900 == >>889 だと思うw
パーサとレクサで状態を共有するのをうまく書けるツールって出てきてても
いいと思うんだけど、ないんですかね?
905900:04/11/21 19:43:16
>>903
900==896==888==885です。889は別人。
別スレで「Rubyのソース読むとコンパイラのフロントエンド部分がわかるようになりますか」という質問をしているのがたぶん889だとおもう。
で、回答すると「Rubyのしくみを勉強するのが目的ならRubyのソースを読むのがいいけど、コンパイラのフロントエンド部分を理解するのが目的ならコンパイラの入門書を読んだほうがいい」。
知ったかぶりはうざいけど、勉強しようとする姿勢は立派だぞ。がんばれ>>889

>>904
はげどう。あってもおかしくないよね。
通常、LexerとParserは別々につくるけど、BNFで文法定義するときはふつう一緒に定義するよな。
だからLexerとParserを別々につくるツールじゃなくて、両者を同時に生成するようなツールなら、両者で状態を共有するのができるんじゃないかな。
おお、なんかよさげだぞ。せっかくだから提案書かいて未踏にでも応募しろ。>>904
> 別スレで「Rubyのソース読むとコンパイラのフロントエンド部分がわかるようになりますか」という質問をしているのがたぶん889だとおもう。

違う。
905 まだ居たのか
905 は 「rubyコンパイラに興味を持つ漏れってなんてエキセントリック!」とひたりたい不思議ちゃん。
オナヌーは人目につかぬところでやれ。
908 は 「rubyコンパイラに興味を持つヤシを叩く漏れってなんてエキセントリック!」とひたりたい不思議ちゃん。
オナヌーは人目につかぬところでやれ。
                   _____       
  / ̄ ̄ ̄ ̄\,,      /−、 −、    \      
 /_____  ヽ    /  |  ・| ・ | 、    \   
 | ─ 、 ─ 、 ヽ |  |   / / `-●−′ \    ヽ   
 | ・ |・  |─ |___/   |/ ── |  ──   ヽ   |
 |` - c`─ ′  6 l   |. ── |  ──    |   |
 ヽ (____  ,-′   | ── |  ──     |   l
   ヽ ___ /ヽ     ヽ (__|____  / /
   / |/\/ l ^ヽ    \           / /
  | |      |  |     l━━(t)━━━━┥
ドラえもんの中の人達もいよいよ総入れ換えなんだよな。(遠い目)
ここの住人ならスラドで知るんだろうな.
自分でソース見るより他人に質問する方が楽しいんだろうな
>913
ソース読んで理解する楽しみもあれば、
同好の士と知り合って教えを乞う楽しみもあろうさ。
別段、後者が劣っているわけではあるまい。
しかし、仲間は選びたいものだね。
916名無しさん@お腹いっぱい。:04/11/23 22:05:34
Rubyst Magazineを見て、noraに気を惹かれたんだけど、
あの作者の写真を見て、心配になってしまいました。

この人、大丈夫なんでしょうか?
今後変なことを言い出したりしないでしょうか?
普通の顔だと思うが。
今後変なことを言いそうな顔なのかい?

顔を見て人格を心配する、君のことが
むしろ心配だ。
>>916
前もそんな話あったなーと思いつつ見てみたら
(((;゚Д゚))ガクガクブルブル

まあ俺も人のこと言えない訳だが…orz
>>916
このスレの上の方見てみ。
ネタだとしたらガイシュツ
お前ら巣に帰れ
923名無しさん@お腹いっぱい。:04/11/25 19:06:24
Rubyを使ってみたいと思っているのですが
いまいち踏ん切りがつきません
RubyにはPerlccのようなコンパイラやPerlMagick(ImageMagick)は用意されているのでしょうか?
すいませんが教えてください
プログラム板な話題っすね
>>923
とりあえず目的は?
exerbもあるよ
ごめん,コンパイラではないね
実行形式にはできるけど
exerbはランタイム環境だよな。
930名無しさん@お腹いっぱい。:04/11/27 13:03:17
perlに不満がなければやめておけ。
だましだまし使っているうちにバッドノウハウまみれ
不満を認識していても移行がめんどくさくて抜けられない

ってのがよくある話
さすがにperl使い続けるよりはいいよ…… ありゃひどい言語だ。
perlはバッドノウハウの典型例のような気がするな.
perlを使えて損することはないとは思うんだけど、脳に余裕があるなら、
自分で一から書くスクリプトのための言語としてrubyをやるのは悪くないよね。
別にpythonでもいいけどね。
935名無しさん@お腹いっぱい。:04/11/28 19:53:39
perlスレ荒らすのを手伝ってくれ。
perl=パレスチナ
ruby=イスラエル
いや宗教に例えると

Perl=ユダヤ教
Python=キリスト教
Ruby=イスラム教

だろ?
あのぅTcl/Tkは…
ジェダイ
>>938
Tcl/Tk=マニ教
Java=小乗仏教
C#=大乗仏教
Lisp=神道
PHP=PHP研究所
HSP=幸福の科学

>>939
それはDelphi
半島にて変性したキリスト教にあたるのは?
rubyはモルモンなんじゃないのか?
perlには荒れるホットなネタがない。
rubyには荒れる生暖かいネタがある。

ruby信者は自らの首を絞めない。
おまいら全員盛るもん今日とだろ?当りだろ?
本日毒を誰かさんに盛るのですか。(((;゚Д゚))ガクガクブルブル
>945
それだけか。それがオマエの全力か。

というより、UNIX板でRuby専のスレってのが無理あるのかもな。
確かに相性はいいと思うんだよ。CUIがまだ元気なOSと、スクリプト言語は。
厶板だと、無闇に荒れるしな。
ていうかム板は
Ruby>>>>>>>>>>>>>>>>>>>>>>>>>>Perl
とか言ってる池沼ばっかりじゃん。
池沼ってなに?
池沼→ちしょう→知障
Perl は〜と言われるが程度の差こそあれ Ruby もバッドノウハウのかたまりだと
思うけどな。思考停止して Perl クソとかいうから普通の Ruby ユーザー全体
の印象が悪くなる。

何故 Ruby を使いつつ未だに Perl や Python を使いつづけるのかと考えると,Ruby
のいろんな言語から拝借してきた機能をツギハギしたフランケンシュタイン的なキモ
チわるさがふと気になるからだな。ちぐはぐな感じがする。
そんなユーザはRubyに不要。
さっさと消えろ
なんでRubyスレは毎回こういう流れになるのか寝。
スルーすればいいだけのこと。
>>950
具体的にどうぞ。
Rite で直せるものは直そう。
とりあえずS式で書けるようにしてくれ。
とりあえずlambdaをかけるようにしてくれ。
とりあえずdefine-syntaxをつかえるようにしてくれ。
>>955-957
Lisp厨乙
普段JavaとDelphiで書いてるしRubyとシェルスクリプトもよく使うが、最早Syntaxなんぞどうでもいい。
Rubyに足りないものはドキュメントだけ。
返値が書いてないリファレンスなんぞ使えないことこの上ないわけであり。
妥当そうなドキュメント整備の方針と妥当そうな書式を決めてくれれば書くのは手伝うんだが。
書式はRDocで決まりでしょ?
>>960
RDocでGNU gettext形式で外部ドキュメント足せるようにならんかな。
英語ドキュメントはそのままにしておきたいし。

とりあえずREADMEとかRDoc付きのソースとか見てみたけど、RDoc悪くなさそうだな。
>>961
intltoolとかpo-debconfとかgnome-doc-utilsのpo2xmlとxml2po
みたいなものがあるといいのかな。
文法面で1つ

+=とかで多重代入できない仕様は改めてほしいなぁ
>>962
intltoolが欲しいね。
一旦パースしてるんだからその気になれば吐けると思うけど。
それを作る気力はない。
Rubyドキュメントプロジェクトみたいなのって有るの?
外人の英語の奴を含めて。
>>963
a, b, c += 1, 2, 3

a += 1; b += 2; c += 3
になるってこと?
ここ、壊れてる?
ある意味。
>>425
> ttp://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/26383
ここのメールアーカイブ使いづらいなー.なんでこんな使いにくい
インターフェースしてんだろ.
UI が洗練されていないのを除けば(=慣れれば)、
使いやすい部類に入ると思う。
使いにくいことを除けば使いやすい。
>>971
バッドノウハウと「奥が深い症候群」そのまんまでつねw
ん?悪いとこがありゃ直せばいいだけの話でしょ。
んじゃMHonArcでアーカイブ作るか。
>>970
どーでもいいがログは読め。
ログを読まないと使えないってことか?
はい。
blade の印象。
* スレッド一覧表示(たとえば<http://blade.nagaokaut.ac.jp/ruby/ruby-list/thr39947-40194.html>)
 が見やすい。blade のいちばんの売り(?)だと思う。具体的には
 * Subject ではなく本文から一行表示してるところがいい
  (他のアーカイバだと、「RE: XXX」だらけで情報量の少ないことが多い)
 * Reference の親子関係がわかりやすい
  (Follow-up が一つしかない時にはインデントが深くならないのも○)
 など。
* メールの上のボタン群の使い方が直感的に解らない。(Help を見ればわかるけど)
* 今見ているスレッドの構造を知ってないと、ボタンだけでメールを行き来するのは難しい

というわけで、まとめると以下のような感じ。
* フレーム分割してスレッド一覧も表示してると使いやすい
* メールのフレームだけ表示(外部からリンクする時はこの URL がよく使われる)
 だと使いにくい
* フレームを分割する方法([---]ボタン)に気づきにくい

思いつく改善案は
* メールと同じフレームに、今見ているスレッドツリーをに表示する
 (ツリー全体が無理なら、一つ上と一つ下の階層だけでも)
かな。ツリーの表示を上と下のどっちに置くかは一長一短だけど。
980お約束:04/12/13 16:08:27
思いつく改善案は
* ソースを公開する
かな。
わかりやすいアイコンで一発って気もするがruby周りはそういう
初見でのわかりやすさや直感的って全然縁がないよな。
そもそも
< ^ > P N |<>|^_>< --- | ~ ...OEHelp
ってのは意味分からんよ。Helpクリックすると表示がウザイし。
次のメールに行くとまた < ^ > P N |<>|^_>< --- | ~ ...OEHelpになるし。
無理やりテキストベースにしようとしてるから分かりにくいんじゃないの?
個人的にテキストベースなのは非常に有難いのだが、
そんなに沢山選択肢(ボタン)があると試す気がそもそも起きない
and 便利な [---] が後のほうすぎるってのが。

俺も 2ch で blade 不便すぎって愚痴って、[---]を使えって言われた口。
結局Ruby村の村民だけ便利であればいいってことなんだろ。
>>984
まあUNIX自体がそんな感じだけど.でも,「.」がindexとか
「~」がcloseとか意味分からんよ…
今の時代に何でこんな貧しいインターフェースなのかね.
またPy厨新山タソがRubyをケチョンケチョンに言う根拠が一つ増えたか。
[---]知らなかったさんくす

コレだけ分かればぜんぜん違う
そろそろ次スレの季節ですか。