[#37248] [Feature:1.9] Enumerator#inspect — "Yusuke ENDOH" <mame@...>
遠藤です。
At Tue, 2 Dec 2008 23:59:52 +0900,
まつもと ゆきひろです
こんにちは、なかむら(う)です。
At Wed, 3 Dec 2008 18:39:59 +0900,
遠藤です。
[#37265] [Feature #819] Caching Symbol#to_proc — Shumpei Akai <redmine@...>
Feature #819: Caching Symbol#to_proc
[#37275] [Bug #821] uninitialized constant Test::Unit::AutoRunner — Naohisa Goto <redmine@...>
Bug #821: uninitialized constant Test::Unit::AutoRunner
In article <4937d5c0586c_87b76ae0c6417f@redmine.ruby-lang.org>,
[#37278] invalid byte sequence by pack format 'A' or 'a' — "Yugui (Yuki Sonoda)" <yugui@...>
Yuguiです。
[#37295] [BUG:trunk] Encoding in which Array#pack returns when the last format is 'u', 'M', 'm' — "Yugui (Yuki Sonoda)" <yugui@...>
Yuguiです。
まつもと ゆきひろです
[#37337] [Feature #841] Object#self — "rubikitch ." <redmine@...>
Feature #841: Object#self
まつもと ゆきひろです
こんにちは、なかむら(う)です。
[#37357] Math and NaN — Tadayoshi Funaba <tadf@...>
Math.sin に NaN を与えてもそのまま NaN が返ってきますが、Math.sqrt はエ
まつもと ゆきひろです
> |Math.sin に NaN を与えてもそのまま NaN が返ってきますが、Math.sqrt はエ
[#37370] IA-64とx64でBigDecimalの割り算の計算結果がおかしい — TAKANO Mitsuhiro <tak@...32.tk>
-----BEGIN PGP SIGNED MESSAGE-----
[#37378] Ruby開発ミーティングログ — SASADA Koichi <ko1@...>
ささだです.
こんにちは、なかむら(う)です。
こんにちは、なかむら(う)です。
[#37384] [Bug #853] Rake のテストが無い — okkez _ <redmine@...>
Bug #853: Rake のテストが無い
[#37390] [BUG:trunk] r20625 dumps core and many strings associated with wrong encoding — "Yugui (Yuki Sonoda)" <yugui@...>
Yuguiです。
Yugui (Yuki Sonoda) さんは書きました:
[#37392] [1.9:Feature] faster bignum multiplication by karatsuba method — "Yusuke ENDOH" <mame@...>
遠藤です。
[#37427] Re: [ruby-core:20448] [Bug #727] Signal(CLD) seems not to work on OS X — "Yugui (Yuki Sonoda)" <yugui@...>
Yuguiです。
[#37455] Re: [ruby-cvs:27996] Ruby:r20778 (trunk): * common.mk (complex.$(OBJEXT), rational.$(OBJEXT)): Properly add — Nobuyoshi Nakada <nobu@...>
なかだです。
At Tue, 16 Dec 2008 15:14:40 +0900,
[#37458] [Bug #891] MiniTest::Assertions#assert_instance_of should use Object#instance_of? — okkez _ <redmine@...>
Bug #891: MiniTest::Assertions#assert_instance_of should use Object#instance_of?
[#37483] (was Re: [ruby-cvs:28066]) — "Akinori MUSHA" <knu@...>
At Wed, 17 Dec 2008 19:57:17 +0900 (JST),
(2008/12/17 20:25), Akinori MUSHA wrote:
At Thu, 18 Dec 2008 00:56:00 +0900,
[#37490] minitest/spec, minitest/mock を標準添付から外しませんか? — okkez <okkez000@...>
okkez です。
[#37496] when to use default_internal — "Yugui (Yuki Sonoda)" <yugui@...>
Yuguiです。
[#37505] Re: [ruby-cvs:28084] Ruby:r20866 (trunk): * error.c (exc_equal): duck typing equal to make it transitive. — "Yugui (Yuki Sonoda)" <yugui@...>
Yuguiです。
[#37513] Current status of 1.9.1 RC1's issues — "Yugui (Yuki Sonoda)" <yugui@...>
Hi, folks
咳といいます。
Yuguiです
咳といいます。
On 12/21/08 11:22 PM, Masatoshi SEKI wrote:
咳といいます。
Yuguiです。
Yuguiです。
[#37525] [Bug #914] Integer#upto(NaN) — tadayoshi funaba <redmine@...>
Bug #914: Integer#upto(NaN)
[#37537] [Bug #913] mathn した場合、sqrt(NaN) が複素数になる — Yuki Sonoda <redmine@...>
チケット #913 が更新されました。 (by Yuki Sonoda)
[#37555] [Bug #919] tool/file2lastrev.rbでエラー — Tadashi Saito <redmine@...>
Bug #919: tool/file2lastrev.rbでエラー
[#37560] fail to complie ext pty in cygwin — Masaki Suketa <masaki.suketa@...>
助田です。
[#37572] [Bug:1.9] `initialize_copy': wrong argument type #<Class:0x825d23c> (expected Data) (TypeError) — Tanaka Akira <akr@...>
以下のプログラムで、
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#37576] [BUG:trunk] encoding for stdio's — "Yugui (Yuki Sonoda)" <yugui@...>
Yuguiです。
[#37591] [BUG:trunk] [m17n] TestCSVFeatures fails because of r20905 — "Yugui (Yuki Sonoda)" <yugui@...>
Yuguiです。
[#37646] [Bug #943] Segmentation fault (cygwin) — Martin Dürst <redmine@...>
Bug #943: Segmentation fault (cygwin)
[ruby-dev:37391] Re: [BUG:trunk] r20625 dumps core and many strings associated with wrong encoding
Yugui (Yuki Sonoda) さんは書きました: > とりあえず、直すのはしてみました。結果として、process_options中に幾つか > default_externalに依存するオブジェクトを生成していることが分かりました。 パッチを添付し忘れました。 修正方針ってこれで良いものでしょうか? * LOAD_PATHのエンコーディングはどうするべき? -E を考慮したdefault_externalか、それともlocale encodingを強制するか * prelude内でのIOはどれほど許される? * なぜこんなに早いタイミングでpreludeが実行されてるんでしょうか? * rb_prognameをrb_gc_register_mark_objectしていましたが、rb_prognameはあ とから上書きされているのでこちらもrb_gc_register_mark_objectしないとまずい? -- Yugui <yugui@yugui.jp> http://yugui.jp 私は私をDumpする
Attachments (1)
diff --git a/encoding.c b/encoding.c
index 3253bfd..cd84af4 100644
--- a/encoding.c
+++ b/encoding.c
@@ -1072,7 +1072,7 @@ enc_set_default_encoding(struct default_encoding *def, VALUE encoding,
return overridden;
}
-static struct default_encoding default_external = {-2};
+static struct default_encoding default_external = {0};
rb_encoding *
rb_default_external_encoding(void)
diff --git a/gem_prelude.rb b/gem_prelude.rb
index ddc56c8..336dfac 100644
--- a/gem_prelude.rb
+++ b/gem_prelude.rb
@@ -2,6 +2,10 @@
# vim: filetype=ruby
# THIS FILE WAS AUTOGENERATED, DO NOT EDIT
+# NOTICE: Ruby is during initialization here.
+# * Encoding.default_external is always ASCII-8BIT.
+# * Should not expect Encoding.default_internal.
+# * Locale encoding is available.
if defined?(Gem) then
module Kernel
diff --git a/ruby.c b/ruby.c
index 913b454..0897c69 100644
--- a/ruby.c
+++ b/ruby.c
@@ -1097,6 +1097,8 @@ true_value(void)
#define rb_define_readonly_boolean(name, val) \
rb_define_virtual_variable((name), (val) ? true_value : false_value, 0)
+static void fix_objects_associated_with_default_external(void);
+
static VALUE
process_options(VALUE arg)
{
@@ -1178,7 +1180,7 @@ process_options(VALUE arg)
}
}
- ruby_script(opt->script);
+ rb_progname = rb_obj_freeze(rb_str_new_cstr(opt->script));
#if defined DOSISH || defined __CYGWIN__
translate_char(RSTRING_PTR(rb_progname), '\\', '/');
#endif
@@ -1211,6 +1213,7 @@ process_options(VALUE arg)
enc = lenc;
}
rb_enc_set_default_external(rb_enc_from_encoding(enc));
+ fix_objects_associated_with_default_external();
if (opt->intern.enc.index >= 0) {
enc = rb_enc_from_index(opt->intern.enc.index);
rb_enc_set_default_internal(rb_enc_from_encoding(enc));
@@ -1287,6 +1290,18 @@ process_options(VALUE arg)
return iseq;
}
+static void
+fix_objects_associated_with_default_external(void)
+{
+ int i;
+ VALUE load_path = GET_VM()->load_path;
+
+ for (i = 0; i < RARRAY_LEN(load_path); ++i) {
+ VALUE path = rb_ary_entry(load_path, i);
+ rb_enc_associate(path, rb_default_external_encoding());
+ rb_ary_store(load_path, i, path);
+ }
+}
struct load_file_arg {
VALUE parser;
@@ -1669,10 +1684,10 @@ ruby_process_options(int argc, char **argv)
struct cmdline_arguments args;
struct cmdline_options opt;
NODE *tree;
+ VALUE tmp_progname; /* rb_progname will set with right encoding later */
- ruby_script(argv[0]); /* for the time being */
- rb_argv0 = rb_str_new4(rb_progname);
- rb_gc_register_mark_object(rb_argv0);
+ tmp_progname = rb_obj_freeze(rb_str_new_cstr(argv[0]));
+ rb_obj_freeze(tmp_progname);
args.argc = argc;
args.argv = argv;
args.opt = cmdline_options_init(&opt);
@@ -1680,7 +1695,7 @@ ruby_process_options(int argc, char **argv)
opt.intern.enc.index = -1;
tree = (NODE *)rb_vm_call_cfunc(rb_vm_top_self(),
process_options, (VALUE)&args,
- 0, rb_progname);
+ 0, tmp_progname);
return tree;
}