- 1 名前:デフォルトの名無しさん [2008/01/29(火) 19:45:46 ]
- プログラミング言語Ruby 1.9.Xについてのスレです。
2007年12月26日にリリース!されたもののまだまだ不安定だし, 1.8.Xとの互換性の問題もあることだし, かといって,メーリングリストはほとんどROMだし(参加してないし), ということで,1.9.Xオンリーのインストールからスクリプトまでの話題などどうぞ。 エラー,バグ報告もどしどし ■質問,話題を振る人へ ポチッとな,とする前に次の3つのリンクを確認。 ・svn.ruby-lang.org/repos/ruby/tags/v1_9_0_0/doc/NEWS ・svn.ruby-lang.org/repos/ruby/tags/v1_9_0_0/ChangeLog ・eigenclass.org/hiki.rb?Changes+in+Ruby+1.9 (参考) 未完だけど,マニュアルページもね(^^) ・doc.loveruby.net/refm/api/ 質問には以下を書くこと。 ・インストール環境(OS名、configureオプションなど) ・インストールの問題なのか、スクリプト自体の問題なのかを区別すること ・エラーメッセージ(なるべくそのままで) ・1.8.Xとの違いをできるだけ確認すること(1.8.Xでは実行できたとか) 質問と回答は1.9.X(いずれはRuby2.0)に寄与発展することになる!筈だ(^^)
- 209 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 18:50:47 ]
- ASCII_8BITにするのがそんなに手間かね
- 210 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 18:54:05 ]
- >>209
はい
- 211 名前:デフォルトの名無しさん mailto:sage [2009/08/22(土) 18:57:32 ]
- レスから考えて1.8と1.9の共用スクリプトだろうからな
sizeのためにforce_encodingするとかまあありえんわ というかASCII_8BIT厨は早く絶滅してくれないかなと思う
- 212 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 10:23:40 ]
- >>209
そんな腐った修正ですますなんて、おまえ土方だな?
- 213 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 12:09:39 ]
- 具体的にどう修正すべきかも書けよ
- 214 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 12:21:03 ]
- RUBY_VERSION で場合分けする
安全確実高利回り コードが若干長くてやや複雑で記述が煩雑になるのだけが極めてごく些細微細な欠点
- 215 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 12:30:47 ]
- >>208
> というか 1.8.6 に String#bytesize とか入れておいてくれればよかったのに 1.8.7 には入ってるよ。 1.9 用とソースを共通化したいなら 1.8.6 はいい加減捨てよう。
- 216 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 12:31:58 ]
- respond_to?(:bytesize)
の方がいいと思う
- 217 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 13:03:09 ]
- >>214
それはないw
- 218 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 13:21:00 ]
- >>216
実際問題として、それではダメだ こういう場合、特定の名前のメソッドがあるかどうかが問題なのではなく、 メソッドが「どう」動作するかが重要だから あらゆるメソッドを responed_to? しなければならなくなるし、バージョン差異を埋めるのには向かないと思う
- 219 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 13:58:48 ]
- Pythonじゃないんだから互換性なんて無視してRubyらしさを追求すればいいと思う。
- 220 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 14:10:47 ]
- responed_to? がなんのために存在するメソッドか考えれば、1.8/1.9 判定に使うのが不適当とわかるはず
defined?(Encoding) とかも同様 Ruby 本体のバージョンが違うことが問題なんだから、素直にバージョン比較すればいいのに なんでそこでだけ頑なに「Ruby としての読み下しやすさ」を否定した処理をしようとするのがよくわからん
- 221 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 14:20:59 ]
- if RUBY_VERSION >= 1.9.0 then … else … end という記述がヤボったくてカッコ悪いと思われてるのでは
なんかこう、超クールな処理になるようにすればみんな使ってくれるかも 1.8 系列だと読み飛ばすけど 1.9 系列だと処理するブロックとか
- 222 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 14:25:55 ]
- > 1.8 系列だと読み飛ばすけど 1.9 系列だと処理するブロックとか
if RUBY_VERSION < "1.9.0" ... # for Ruby 1.8 else ... # for Ruby 1.9 end
- 223 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 14:46:04 ]
- $Rv = RUBY_VERSION < "1.9.0" ? {1.8 => true} : {1.9 => true}
というグローバル変数を設定してるスクリプトなら見たことがある if $Rv[1.8] ... # for Ruby 1.8 else ... # for Ruby 1.9 end とか (Ruby1.9専用処理) if $Rv[1.9] とか使うらしい
- 224 名前:デフォルトの名無しさん mailto:sage [2009/08/23(日) 14:50:33 ]
- よし構文と専用演算子の導入だ。
- 225 名前:デフォルトの名無しさん mailto:sage [2009/08/25(火) 02:53:38 ]
- RUBY_VERSIONで分岐すんなよ。消すぞ。
- 226 名前:デフォルトの名無しさん mailto:sage [2009/09/18(金) 23:28:08 ]
- 【extname.rbの中身】
# -*- coding: utf-8 -*- a = "記録.txt" b = "設定.txt" p File.extname(a) p File.extname(b) 【実行】 C:\Usr\Ruby>ruby --version ruby 1.9.1p129 (2009-05-12 revision 23412) [i386-mswin32] C:\Usr\Ruby>ruby extname.rb ".txt" "" ←.txtにならない 何ぞこれ
- 227 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 01:44:36 ]
- >>226
バグだろ。redmineに登録しといてくれ。
- 228 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 11:32:19 ]
- ちょっと調べてみた。
パス名関係はまだエンコーディングに対応してない。 常に外部エンコーディングと見なして処理してる。 より正確には、Windowsの場合はCharNextを使っているのでシステムのコードペー ジの設定に依存する。 詳しく説明すると、UTF-8では「設定.txt」は e8 a8 ad e5 ae 9a 2e 74 78 74 だが、 $ echo -e '\xe8\xa8\xad\xe5\xae\x9a.txt' | nkf -Swx 險ュ螳txt \xadは半角ユなので1バイトずれて\x9a\x2eが一文字と認識されてしまう。 そして.が消えてしまってextnameは空になる。
- 229 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 13:37:15 ]
- なるほど。
しかも ruby -w で pathname.rb を読むと警告でる。
- 230 名前:デフォルトの名無しさん mailto:sage [2009/09/19(土) 20:32:49 ]
- 出ないぞ、と思ったら1.9.1か?
trunkでは直ってるようだ。
- 231 名前:デフォルトの名無しさん [2009/09/26(土) 21:11:40 ]
- へえ
- 232 名前:デフォルトの名無しさん [2010/01/03(日) 12:32:43 ]
- 開けましておめでとうございます。
- 233 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 12:45:41 ]
- 空けましておめでとうございます。
- 234 名前:デフォルトの名無しさん mailto:sage [2010/01/03(日) 23:51:06 ]
- 貫通けましておめでとうございます
姫初めはいかがでしたか?
- 235 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 14:35:35 ]
- 大量のオブジェクトが生成されるコードがあって、1.8.7で実行すると
非常に遅いんだけど、ちょっと手直しして1.9で実行すると大幅に 改善されたりしますか? 自分で試したいのはやまやまなんだけど、「ちょっと」の手直しが どのくらいか不明なので、すいませんが教えてください。
- 236 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 15:38:04 ]
- >235
DBから20万行取得するだけのスクリプトが3倍速になった。
- 237 名前:234 mailto:sage [2010/03/21(日) 16:22:51 ]
- >236
本当ですか!?やっぱりスイッチする価値ありかなあ。
- 238 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 19:45:27 ]
- 手直しが確実に必要なわけ?
試しに動かせないの?
- 239 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 20:33:27 ]
- やってみないとわからないです(´・ω・`)
- 240 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 21:08:44 ]
- 手の施しようがないほど遅くなる場合もある
足し引きの結果が速くなるか遅くなるかは実際に動かさないと判断できない
- 241 名前:234 mailto:sage [2010/03/21(日) 21:25:53 ]
- >238
1.8系と1.9系の共存はできなくないらしいけど なんかヘマをやってライブラリ関係が衝突しそうで怖いのです。 まあそんなこと言ってる時点で1.9は「待ち」ですかね。 >240 なんとそういうこともありますか。 ますます移行しにくくなりました。 Mac使いなんで、1.9がOSXにプリインストールされる ようになったらまた考えます。
- 242 名前:デフォルトの名無しさん mailto:sage [2010/03/21(日) 22:36:36 ]
- >>241
いちおう、MacPportsでruby19を入れるなら、デフォルトで異なる 場所に入るし、コマンドの名前も違うので混ざりはしない。
- 243 名前:デフォルトの名無しさん [2010/06/13(日) 23:32:10 ]
- エンコード指定uzeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
マジックコメンkimeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee あのスマートだったruby君が理屈っぽいピザになってしまった。。。Railsとか言う奴のせいだ。
- 244 名前: ◆rT33C51l9k [2010/06/14(月) 00:11:52 ]
- マジックコメントはこんなことやれば一応は省略できるな
ruby -Ka filename.rb ruby -Ku filename.rb つうかまさかこのままマジックコメント付けることを義務化し続けるゴミ言語で突き進む気はないだろうな? なんだろう。OSの文字コードの標準をUTF-8にしやがれっていう見えないプレッシャーでもかけてるつもりかねwww
|

|