[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 05/09 20:06 / Filesize : 66 KB / Number-of Response : 278
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Rubyについて Part 39



1 名前:デフォルトの名無しさん mailto:sage [2010/02/06(土) 23:48:01 ]
オブジェクト指向スクリプト言語Rubyについて扱うスレッドです。
まったりと行きましょう。

Ruby Home Page
www.ruby-lang.org/ja/

= 前スレ
Rubyについて Part 38
pc12.2ch.net/test/read.cgi/tech/1257079004/

過去スレ・関連スレは >>2-

51 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 16:46:15 ]
せんせいしつもん

$KCODE が使われてたらテストの動作変えたいです
でも $KCODE にアクセスしたら警告が表示されてしまう Ruby もあると聞きました

警告を出すことなしに
「$KCODE が時代遅れな場合は処理を変える」
ということをやる方法おしえてくださいチュ

52 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 16:47:23 ]
1.9 への移行準備ってゆーか、注意事項とか確認したいんだけど、
読み物ありませんか?

53 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 17:02:20 ]
>>51

$KCODEは実体がなく読み取りと読み出しのC関数があることによって
存在しているように見える仮想変数なんだが、1.9ではこの読み取りと
読み出し両方の関数で rb_warn という関数が常時呼ばれて警告が出る。

rb_warn は $VERBOSE.nil? が真なら出力することなくリターンするので、
テスト時に一時的にnilを代入すればよいと思う。(falseだとだめ)


54 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 17:13:24 ]
>>52
jp.rubyist.net/magazine/?0025-FirstStepRuby191

55 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 17:17:24 ]
>>53
先生それは「警告うざければその前後で$stderr乗っ取って警告捨てればいいんじゃね」レベルです
その間に $VERBOSE を利用する人がいたらどうするんですか責任とってくれるんですか蒼い時代ですか

要は個別に制御する方法は特に用意されてないのね
ちょっとがっかり

56 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 17:24:53 ]
テストが済んだら元に戻せばいいじゃない
割り込まれたくなければ Thread.criticalをいじればいいじゃない

57 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 17:27:08 ]
tmp = $VERBOSE
$VERBOSE = nil
begin
 hogehoge()
ensure
 $VERBOSE = tmp
end

58 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 17:28:49 ]
ActiveSupportにsilence_warningsあるね。


59 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 17:39:50 ]
>>58
irb1.9> silence_warnings{ $KCODE }
nil
irb1.9> $KCODE
(irb):3: warning: variable $KCODE is no longer effective
nil

キャーステキー



60 名前:デフォルトの名無しさん mailto:sage [2010/02/10(水) 17:47:09 ]
中身は>>57だけどな
スレッドには対応してなさそうだ

silence_stream(STDERR){ $KCODE } は 標準エラー出力乗っ取りだが mingw では動かなさそう

61 名前:52 mailto:sage [2010/02/10(水) 20:39:25 ]
>>54
あんがと

62 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 00:44:50 ]
やっぱりここはRubySpecFeatureみたいなクラス持ったgem作って配布するしか。

RubySpecFeature.has_feature?(Spec番号) とかやると実行してる処理系での当該Specをサポートしてるか教えてくれるの。

63 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 00:47:44 ]
よしまかせた。


64 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 12:50:32 ]
ttp://www.ruby-lang.org/ja/news/2010/01/10/webrick-escape-sequence-injection/
> 外部の攻撃者がエスケープシーケンスをWEBrickのログに挿入しそのログを閲覧したとすると、
> 攻撃者は端末エミュレータを攻撃する目的に利用することができます
これって p str でも起こる?
String#inspect を通してる限りは $KCODE があっても Encoding つき String でも大丈夫?

65 名前:デフォルトの名無しさん mailto:sage [2010/02/11(木) 14:46:24 ]
>>64
String#inspect では起こらない
エスケープ目的で使うのは勧めない(たとえば今回のようなとき、ログ文字列を inspect する)
あくまで結果的にエスケープもされるという程度

とここまで書いて、Shift_JIS 文字列として inspect すると引っかかるかもと思った

66 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 13:29:03 ]
ttp://www.ustream.tv/channel/matsuerubykaigi02
松江Ruby会議02やってるのか


67 名前:デフォルトの名無しさん mailto:sage [2010/02/13(土) 23:11:26 ]
cgi書いたんだけど、実行時間の半分以上が
require "rubygems" と require "rmagick"の二行に費やされてる。

68 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 00:40:24 ]
会議までに1.9.2の正式リリースがほしかった

69 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 02:28:45 ]
>>67
wrs



70 名前:デフォルトの名無しさん mailto:sage [2010/02/14(日) 10:36:12 ]
# Ripper で #on_const_ref, #on_void_stmt, #on_stmts_new, #on_stmts_add
# フック時の Ripper#lineno の返り値が1行ずれる場合があるような気がするんだけど
# これバグ?

require 'ripper'
class MyRipper < Ripper
[:const_ref, :void_stmt, :stmts_new, :stmts_add].each do |e|
define_method(:"on_#{e}"){|*a|puts "#{e}, lineno:#{lineno}, column:#{column}"}
end
end

puts RUBY_DESCRIPTION #=> ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32]

p code = "class C\nend"
MyRipper.new(code).parse
# const_ref, lineno:1, column:3
# void_stmt, lineno:2, column:3
# stmts_new, lineno:2, column:3
# stmts_add, lineno:2, column:3
# stmts_new, lineno:2, column:3
# stmts_add, lineno:2, column:3

p code = "module M\nend"
MyRipper.new(code).parse
# const_ref, lineno:1, column:3
# void_stmt, lineno:1, column:3
# stmts_new, lineno:1, column:3
# stmts_add, lineno:1, column:3
# stmts_new, lineno:2, column:3
# stmts_add, lineno:2, column:3


71 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:24:17 ]
ttp://doc.okkez.net/static/191/class/Regexp.html
* Regexp.new(string, option = nil, code = nil)
> 第一引数が正規表現であれば内容が同じ(ただし、上記フラグの内容はクリアされた)正規表現を複製して返します。
> このとき、複製した正規表現に対して、第二、第三引数の指定が設定されます。
> 第一引数が正規表現であれば第一引数を複製して返します。第二、第三引数は警告の上無視されます。

どっちやねん

72 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:29:31 ]
最初の方は「文字列」なんだろうけど、まあありがちだよ

73 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:34:29 ]
>>71
1行目と2行目は1.6の挙動だな
3行目は1.8の挙動
1.9では
「正規表現のエンコーディングを指定するには第一引数の文字列のエンコーディングを直接変更してください」
となるはず

74 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:40:07 ]
irb> /[[:cntrl]]/ =~ "わんこ".encode('ISO-2022-JP')
Encoding::CompatibilityError: incompatible encoding regexp match (US-ASCII regexp with ISO-2022-JP string)

irb> Regexp.new("[[:cntrl]]".encode('ISO-2022-JP')) =~ "わんこ".encode('ISO-2022-JP')
RegexpError: can't make regexp with dummy encoding: /[[:cntrl]]/

ガッデム

75 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:43:32 ]
ISO-2022-JPはなー。


76 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:52:34 ]
irb> Regexp.new("[[:cntrl:]]".encode('ISO-2022-JP'))
RegexpError: can't make regexp with dummy encoding: /[[:cntrl:]]/
irb> Regexp.new("[[:cntrl:]]".encode('stateless-ISO-2022-JP'))
/[[:cntrl:]]/
irb> Regexp.new("[[:cntrl:]]".encode('stateless-ISO-2022-JP')) =~ "わんこ".encode('stateless-ISO-2022-JP')
nil
irb> Regexp.new("[[:cntrl:]]".encode('stateless-ISO-2022-JP')) =~ "わん\eこ".encode('stateless-ISO-2022-JP')
Encoding::UndefinedConversionError: "\e" from EUC-JP to stateless-ISO-2022-JP in conversion from UTF-8 to stateless-ISO-2022-JP

なんかだんだんどうでもよくなってきた

77 名前:デフォルトの名無しさん mailto:sage [2010/02/15(月) 21:56:20 ]
初心者スレでコントロールコードを取り除きたいって言ってた人と同じかな

78 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 19:21:57 ]
日本製なのにJISが処理出来ないのもどうかとw

79 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 20:28:20 ]
【研究】 世界一ロマンチックじゃない「愛の告白」は、日本語…クリンゴン語よりも酷いと判定★4
tsushima.2ch.net/test/read.cgi/newsplus/1266273529/



80 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 21:59:29 ]
ISO-2022-JPを素で扱える正規表現エンジンはさすがにないだろ。

81 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 22:34:42 ]
日本語版マニュアルになんらかのコメントくらいはあってもいいかもしれない

82 名前:デフォルトの名無しさん mailto:sage [2010/02/16(火) 22:49:32 ]
>>81
それはRubyにおけるダミーエンコーディングの意味の説明が該当するのでは



83 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 00:51:02 ]
以前このスレでBigdecimalのバグと対処を上げていた人が
いろいろあってコミッターになったみたいだな。

ともあれ人手が増えたことはめでたい。

84 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 01:43:38 ]
あ〜、「バグっぽいの見つけたけど、報告はここでいいんですかね?」みたいな

いいわけないだろと心の中で突っ込んだが

85 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 01:46:52 ]
普遍的にバグであるかどうかを確認するためにスレで話題を振る、というのはアリではあるが

ライセンス上、パッチを2chに投稿したら取り込めないのでそこだけは注意

86 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 02:29:47 ]
ああ、著作権が2chに移っちゃうって話か。確かにそうだわな。

87 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 02:45:42 ]
まあそのまま取り込まなきゃ回避策はいくらでもある。
オープンソースなんて、どこかのをパクりまくり出し。

著作権は権利が認められれば、その作者が持ってるので放棄出来ないけどな。
著作権法よく読もうぜ。

88 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 02:51:51 ]
>>87
2chの書き込み規約よく読め

89 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 07:11:25 ]
1,2行の簡単なパッチに著作権が発生するかどうかは微妙なところ。



90 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 08:59:55 ]
あんな規約法的におkなのか?

91 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 09:09:30 ]
個別に争われる余地はあると思われ
少なくとも「アホ言うなバカ」と裁判所に門前払い食らうような内容ではない

余談だが、世の中の訴状は裁判所によってある程度、審議以前の問題だと却下されている
「○○を訴えました」という報道発表と実際の裁判の数は必ずしも一致しない
訴状を見てから判断する、という発言は本来は正しいんだがなぜか悪役になってる不思議

92 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 09:55:28 ]
>>88
あんなもんが法的に有効だとか思っちゃうお花畑は黙ってろ

93 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 10:00:02 ]
有功じゃないってことは具体的に何かに反してるってこと?

94 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:15:27 ]
>>89
「絶対に発生しない」のでなければ避ける以外の判断はできない
Rubyライセンスと整合するのでなければそもそもさわれないよ

ひろゆき…今はそうじゃないのか、2ch、が書き込まれたソースコードを利用するという意味ではなく
事前に2chという掲示板で公開されたソースコードをRubyにライセンス上取り込めるかどうかという話

俺は「取り込めるとは限らない(裁判での判断が必要)」と思う
だから「めんどくさいので2chにRubyライセンス関係のパッチを書き込むべきではない」と考える

95 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:22:26 ]
他のうpろだに揚げたものをリンクすれば医院で内科医

96 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:23:45 ]
>>94
初出の方が優先すると思う

97 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:29:49 ]
出来合いのブログサービスでソース公開してしまうのも結構マズい

というか、ライセンス上マージ可能なソース公開場所を挙げるほうがよさそうだな
githubとか?

98 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:38:08 ]
> 出来合いのブログサービスでソース公開してしまうのも結構マズい

そういう法的におかしな条項に、諾々と従ってしまうのが一番マズい

99 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:41:04 ]
俺の嫁の飯が一番マズイ



100 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:42:49 ]
>>98
君が私費を投じて戦って、トラブルがある(と予測される)たびに法的根拠のある判断を勝ち取ってくれるなら
誰も何も言わないよ(おまけに勝敗も問わない)

そうでないのなら何も言うべきではない

101 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:47:44 ]
無闇に安全側に倒すな、という人は危険側に寄ったぶんのコストを支払ってくれ
>>100の言うように別に負けてもいいんだが、それにかかる金額と時間がひたすら鬱陶しい

誰からも権利上の突っ込みを受けえない、という状態の有り難味を噛み締めて欲しいもんだ

102 名前:デフォルトの名無しさん [2010/02/17(水) 13:48:26 ]
せんせい質問!
CentOS5.4にRails環境作ったんだけど、script/serverのログの文字が一部化けます。
「サーバ2」=>「サーバ\357\274\222」
こんな感じ
CentOSのコンソール、Windowsのターミナルともに同じ化け方なので、ターミナルの問題ではなさそう。
ソース中のコメントはviで日本語で表示されます。

103 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:54:11 ]
Rubyのパッチレベルをちょっと戻すか、あるいは開発版使う
inspectの最後のマルチバイト文字がそのままになるんだよ

irb> $KCODE="u"; p "えびしおポテコが食べたいのに全然売ってない"
"えびしおポテコが食べたいのに全然売ってな\343\201\204"

ユーザーレベルでの対処法があるなら知りたい
最後がマルチバイト文字でなければきちんとなるんだけど、そんなの全部やるの無理だよな

irb> $KCODE="u"; p "えびしおポテコが食べたいのに全然売ってない\n"
"えびしおポテコが食べたいのに全然売ってない\n"


104 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:58:48 ]
去年も全く同じ話題が出てたな
ttp://b.hatena.ne.jp/entry/rubyist.g.hatena.ne.jp/n2s/20090130/p1
てことでgistとかSimple Paste使いましょう

105 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 13:59:30 ]

latin1

106 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 14:00:50 ]
>>102
今日のruby-listのメールくらいは読んでくれると嬉しい
blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/46859

107 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 14:02:35 ]
>>106
メーリングリストはアーカイブが適切な語でGoogleに引っかかってこそ価値があるのですよ

108 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 14:06:02 ]
>>106-107
…まあどっちもどっちではあるな
というか、修正されること自体はそもそも確定で、現時点でどーすればいいかということのほうが問題なような
っていうかこのへんのテストとかしてないのなんで漏れてんの

109 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 14:33:42 ]
>>108
確かめてないが、改行のテストも兼ねようと思って

"テスト\n".inspect assert_equal('\343\203\206\343\202\271\343\203\210\n')

みたいな感じだったんだと推測
まさか末尾がマルチバイトなときだけ問題になるとは間隙突かれたヒデキ感激みたいな



110 名前:デフォルトの名無しさん [2010/02/17(水) 14:37:46 ]
>>103
そうなんだ。
調べたけど、そういう問題抱えてるのみつけられなかったかったから助かりました。
ありがとう。


111 名前:デフォルトの名無しさん [2010/02/17(水) 14:51:13 ]
>>102
8.1.7は既に枯れたバージョンという認識だったので見ていませんでした。
Rubyのチケットを見ると上がってるんですね。
触り始めて2週間なのですが、検索エンジンで見つけられそうなキーワードを把握していませんでした。


112 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 15:34:24 ]
コミットしてからリリースまで誰も気づかなかったというのが物寂しいな
上の人はもう1.8系列で日本語表示なんて誰もしてないのだろう

113 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 15:38:09 ]
修正されているのはいいけど、
テストコードがないといつかまた再発しそう。
redmine.ruby-lang.org/repositories/revision/ruby-18?rev=26103


114 名前:デフォルトの名無しさん mailto:sage [2010/02/17(水) 18:31:52 ]
>>112
$KCODE設定してpで日本語表示しないと気づけないからねえ
スルーされる可能性は高い

115 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 12:32:31 ]
困ってる人一杯いるだろうから、これだけでも先にリリースして欲しいよな。
ダウングレード面倒だし。

116 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 13:56:56 ]
unrecognized options: --with-readline-dir

安定板ビルドしようとしたらこんなエラーでた
ぽにょ挫けそう

117 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 14:18:42 ]
dl.dropbox.com/u/4390580/wxruby-2.01-ruby19stable.png

何かmake途中エラーみたいのに遭遇したような気がするけど
気にしない。絵が出たから良し何ら問題なしあ...

118 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 14:49:41 ]
./configure --help |grep with

119 名前:デフォルトの名無しさん mailto:sage [2010/02/18(木) 23:29:46 ]
そういう問題を先送りが後で響いて困る訳でw



120 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 02:34:52 ]
初心者スレで質問したところ、本スレ行ってこいと言われたので失礼します。

Kernel#lambdaで作られるProcオブジェクトはブロック内でreturnしたときに
Proc#callから抜けるという特殊な挙動になっていますが、これはどのような仕組みなのでしょうか。

Kernel#lambdaはおそらくCで実装されているのだとは思いますが、
Rubyでも実装できるようになっていると思います。お願いします。

121 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 10:03:18 ]
これが政府のオープンソース関連事業だ、年間約5億円を仕分けられるか!?
itpro.nikkeibp.co.jp/article/COLUMN/20100217/344720/

Rubyもいろいろ金かかってるんだなー

122 名前:デフォルトの名無しさん [2010/02/19(金) 10:47:07 ]
      ,―ヽ_(((((_、―
   ,/  ノ       ヽ  ~\
  /   ノ   IPA    ヽ   ~\
/   ノ           ヽ、  `ヽ
|    ノ / ̄\   / ̄~ヽ ヽ    i
|   ノ              |  ノ
\  |  <●>  <●>  (  )
 \ |      | |       i /
    |      /  ヽ       レ
   i     (●_●)      /  
    i、    ,-――-、   ・ /
    i、  <(EEEEE)> ∵/    オープンソース情報データベースOSS iPediaの活用秘技. IPA OSSセンター 研究員 岡田 賢治
      i、  \   ./  /
       \   ーー   ,ノ       
  ,,.....イ.ヽヽ、ー-―一ノ゙-、.
  :   |  '; \_____ ノ.| ヽ i
      |  \/゙(__)\,|  i |

123 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 12:47:41 ]
1.9だと def []=(*keys, value) って書けて素敵よね

124 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 13:55:41 ]
むしろそれ以前でできなかった理由を知りたい
できるようにしてても特段デメリットないようにも見えるが

125 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 14:07:36 ]
意図的にできないようにしてたわけじゃないと思うけど。


126 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 14:12:02 ]
Emacs Lispの&rest とか &optional のような使い方がしたくて
実装しただけだと思う。少なくとも当初は。



127 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 14:13:13 ]
1.6くらいで思いついてて欲しかったとちょこっとだけ思う

128 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 14:15:58 ]
我々にできるのは1.9系列の周辺を使いやすくすることしかない
初級を抜けたランク4くらいの人を全部1.9ユーザーにしないと
gemライブラリも全部1.9対応にするくらいの勢いで
解説や記事も1.8用と1.9用の記述を並立

129 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 16:22:32 ]
>>123ってどういう使い方をするのですか?



130 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 17:20:46 ]
>>123って普通に可変長引数を通常の引数の前に置けるってこと?
それともブラケットメソッド関係で何か特殊なの?

131 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 17:46:34 ]
ary[x, y] みたいに多重配列が作れたりとかする?

132 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 18:17:16 ]
いや見たまんまだと思うが
最後の引数以外は可変

133 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 19:33:52 ]
1.9の普及が足りんな。 def test(a,*b, c) とか出来るぞ

134 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 20:56:12 ]
>>120
1.9の、しかもあくまで俺の理解した範囲でいうけど、まずコンパイル結果からして違う
ブロックの中のreturnはthrow 1っていう特殊な例外を投げる命令になるけど
普通のメソッド中のreturnはleaveっていうフレームを終了させる命令になる

で、ブロックがフレームに積まれるとき、lambdaかどうかはフレームに記憶されていて
前述の例外が通知されると、実行中のフレームがlambdaかメソッドならリターン処理
普通のブロックなら例外をさらに上のフレームに伝播させる、って感じでやってる
とそういうわけで、この特殊例外を発生させる方法がRubyにはないので無理です

あーあと、フレームってのは動的な処理の単位ね、メソッドとかクラス定義とかブロックとか
詳しく種類を知りたかったらvm_core.hにVM_FRAME_MAGIC_なんちゃらって並んでるから

135 名前:デフォルトの名無しさん mailto:sage [2010/02/19(金) 20:59:41 ]
>>134
×発生させる方法が
○発生させる方法もキャッチする方法も

136 名前:120 mailto:sage [2010/02/19(金) 21:04:49 ]
>>134
回答有難うございます。どうやら、VMの理解が必要そうですね。
とりあえず、ブロックのreturnとlambdaのreturnが別物ということはわかりました。

C言語は苦手ですが、勉強がてらソースコードを読んでみたいと思います。

137 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 10:13:42 ]
RubyForgeへいってoneclickrubyダウンロードしてるんですが、滅茶苦茶遅いのはなぜでしょう?
どこかにミラーとかって無いんですかね?

138 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 10:45:55 ]
>滅茶苦茶遅いのはなぜでしょう?
善悪属性値が下がってるんじゃね

とりあえず巷で話題になってないので、回線か経路的なもんだと推測される
何人か症状出てる人がいれば推測もできるんじゃないかと

139 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 23:11:48 ]
リファクタリング:Rubyエディション
www.amazon.co.jp/dp/4048678841



140 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 23:12:41 ]
ショッピングを続ける: 最近の履歴に含まれている商品を買った人は、こんな商品も買っています
ページ: 1 / 17 (最初に戻る)
前に戻る

*
恍惚美女~潤う甘い果実~ 菜摘四季 [DVD] DVD ~ 宇田マサル
¥ 2,952

おすすめ商品を修正
*
乙姫VOL.5 桜木久美子 [DVD] DVD ~ 桜木久美子
5つ星のうち 4.0 (5) ¥ 2,952

おすすめ商品を修正
*
快感ヌーディーフロント 阿井原すみれ [DVD] DVD ~ 宇田マサル
5つ星のうち 4.0 (2) ¥ 2,952

おすすめ商品を修正



141 名前:デフォルトの名無しさん mailto:sage [2010/02/21(日) 23:30:06 ]
>>139
> 価格: ¥ 5,040
絶対的価格がなんか微妙に高ッ!
450ページの大型本だから妥当なんだけどさ

142 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 11:51:43 ]
自称中級者でJAVA版のリファクタリングを読んだことは無いんだが読むべき?

143 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 11:58:52 ]
ttp://www.amazon.com/Refactoring-Ruby-Jay-Fields/dp/0321603508/
「好評のJava版のコードをRuby用にコピペ改変して載せただけなんじゃねっていうか動かないぞ金返せ」
「Java版を読んだなら読まなくてよしっていうか誤植直したのを売れバカ」
というツッコミが入ってるな

144 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 12:39:44 ]
そろそろ1.9に乗り換えないと流行に乗り遅れそうだ。

145 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 12:42:39 ]
手元でライブラリのメソッド再定義できるくらいの力のある人は普段使いを1.9.1にできるレベル
前はなんとかしないとならないgemライブラリが多すぎて諦めたもんだが

146 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 13:41:59 ]
戻り読みのできない正規表現エンジンとか使ってられないよ!!!

147 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 13:43:22 ]
>>143
だめぽいね
翻訳で大幅手直しが入っていれば、といったところか

148 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 13:52:03 ]
>>147
訳者が長尾さんだから期待したいところ

149 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 14:21:04 ]
内容変えちゃったらそれは翻訳じゃないじゃん
シドニィ・シェルダンみたいに別もんになるぞ



150 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 14:24:07 ]
明らかな誤植は直してほしいな。

151 名前:デフォルトの名無しさん mailto:sage [2010/02/22(月) 14:27:16 ]
動かないYO!くらいのヤク中はつけてくれるだろ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<66KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef