From: Koji Arai Date: 2005-12-20T01:54:29+09:00 Subject: [ruby-dev:28063] Re: 1.8.4 what remains? 新井です。 In message "[ruby-dev:28045] 1.8.4 what remains?" on 19 Dec 2005 12:01:51 +0900, "URABE Shyouhei aka. mput" wrote: > 卜部です。 > ついにこの週です。結局ドキュメントのほうはどんな状況なのでしょうか。 どんな状況かと問われると、こんな状況です。12/16時点で今は作 業が止まってます。卜部さんのおっしゃりようからしてもう完成し てないと困るってことでしょうか?だとすると私の認識が甘かった ようです。12/24 に間に合えばっと思っていたので(実際それも危 うかったところみなさんの協力のおかげで間に合うかな?っと望み が出たのが先週。今はまたヤバめ)。 ちょっと失敗したのは、土日に作業ができなかったのと、一気にみ なさんが書いてくれたので、その影に隠れて一部のコミッタの分が 抜けている点です。これはコミッタの人が悪いように見えてしまう けど全然そんなことはなく、私が悪かったのですが。 私が次に(フルタイムで)作業着手するのは、12/23 です(その前に 数時間でも時間が割ければ良いのですが)。 # 普通こんな進捗報告したら殴られるな.. ところで、宣言したとおりゴールは step2 までで、リファレンス の 1.8.4 feature のページに書き出すところまでを考えています が、それで良いですか? doc/NEWS ファイルとかはどうしますか?普通なら追加メソッドと 仕様変更と大きなバグ修正を書き出せば良いのかなとは思うのです が、今の doc/NEWS は 1.8.0 にバージョンアップしたときの NEWS っぽいですね。今からこのあたり整備しようと思っても現実間に合 わないから保留ですかね。 以下、「不要」分を削って出します。 「?」の部分は募集します。残り26個 #Fri Dec 9 23:31:02 2005 Nobuyoshi Nakada # # * lib/rexml/encoding.rb (encoding=): give priority to particular # conversion to iconv. [ruby-core:06520] = REXML 日本語のエンコーディング変換にiconvよりもnkfを優先して使用するようにし ました。[ruby-list:41325], [ruby-core:06520] これは、問題点がより具体的な [ruby-list:41325] も関連すると思うのでリ ンクしときます。 #Thu Dec 8 02:07:19 2005 Nobuyoshi Nakada # # * eval.c (umethod_bind): adjust invoking class for module method. # [ruby-dev:27964] = UnboundMethod#bind UnboundMethod#bindされたモジュールのインスタンスメソッド中で superを使えなかったバグを修正しました。 module Foo def initialize super end end class Bar include Foo def initialize Foo.instance_method(:initialize).bind(self).call end end Bar.new # => ruby 1.8.3 (2005-09-21) [i686-linux] -:3:in `initialize': method `initialize' called on terminated object (0xb7dd2bec) (NotImplementedError) from -:10:in `initialize' from -:14 # => ruby 1.8.4 (2005-12-16) [i686-linux] #Thu Dec 8 00:40:52 2005 Yukihiro Matsumoto # # * eval.c (call_trace_func): klass parameter should be a # class/module that defines calling method. [ruby-talk:169307] # ? #Wed Dec 7 15:31:35 2005 Yukihiro Matsumoto # # * sprintf.c (rb_str_format): integer overflow check added. # # * sprintf.c (GETASTER): ditto. = printf printfのフォーマット指定子にinteger overflowのバグがありました。 perl のそれとは違い、セキュリティバグはないそうです。 [http://www.rubyist.net/~matz/20051207.html#p01] 再現スクリプト募集! #Thu Dec 1 00:50:33 2005 Nobuyoshi Nakada # # * eval.c (rb_funcall2): allow to call protected methods. # fixed: [ruby-dev:27890] = 拡張ライブラリAPI 拡張ライブラリ(C言語)からRubyメソッドを呼ぶ関数 rb_funcall2() が (private メソッドを呼べるのに) protected メソッド を呼べない不具合を修正しました。 #Mon Nov 28 18:55:43 2005 NAKAMURA Usaku # # * ext/socket/socket.c (init_inetsock_internal): remove setting # SO_REUSEADDR option on server socket on Cygwin. # fixed: [ruby-core:6765] ([ ruby-Bugs-2872 ]) # = TCPSocket#initialize = TCPServer#initialize Cygwinの場合のみ、使用中socketに対する再acceptがErrno::EADDRINUSE 例外になっていなかった。[ruby-dev:27818] #Mon Nov 28 13:08:54 2005 Hirokazu Yamamoto # # * win32/win32.c (rb_w32_strerror): remove all CR and LF. (avoid broken # error message on bccwin32 + winsock) = Ruby本体 (bccwin32) bccwin32 で winsock のエラーを表示するとき、strerror の返すエラー メッセージの途中に改行が入るために、ruby の出力するエラーメッセー ジが壊れていたのを修正。 #Mon Nov 28 09:21:49 2005 Hirokazu Yamamoto # # * lib/mkmf.rb (create_makefile): should not change sodir with # dir.gsub!. (bccwin32 failed to install third party exntesions) # [ruby-dev:27834] なんとなく不要かな? EXTOUT を使わず、extconf.rb で外部拡張ライブラリをインストールする 時に、make ターゲット名が意図せず改変されていたため、bccwin32 で拡 張ライブラリがインストールできなくなっていたのを修正。 #Sun Nov 27 00:56:13 2005 NAKAMURA, Hiroshi # # * lib/wsdl/xmlSchema/complexContent.rb: missing # ComplexContent#elementformdefault method. ? #Sat Nov 26 19:57:45 2005 WATANABE Hirofumi # # * dln.c (conv_to_posix_path): should initialize posix. = Ruby本体 (cygwin) cygwin環境で、RUBYLIB環境変数が空だと、$LOAD_PATHにゴミが入る。 [ruby-dev:27830] #Wed Nov 23 03:40:49 2005 Guy Decoux # # * re.c (KR_REHASH): should cast to unsigned for 64bit CPU. # [ruby-core:06721] ? #Wed Nov 23 07:26:44 2005 GOTOU Yuuzou # # * ext/openssl/extconf.rb: check for X509V3_EXT_nconf_nid. # # * ext/openssl/ossl_x509ext.c (MakeX509ExtFactory): should use # OPENSSL_malloc to allocate X509V3_CTX. # # * ext/openssl/ossl_x509ext.c (ossl_x509extfactory_create_ext): use # X509V3_EXT_nconf_nid to avoid SEGV (and to build extensions which # values are placed in separate section). # # * test/openssl/test_x509ext.rb: new file. ? #Wed Nov 23 01:22:57 2005 Nobuyoshi Nakada # # * file.c (test_identical): test if two files are identical. # # * file.c (rb_f_test): support DOSISH systems where st_ino is not # reliable. fixed: [ruby-core:06672] # # * win32.h, win32.c (rb_w32_osid): check the running platform. = 組み込み関数 test i-nodeを持たないシステム(Windows等)でtest(?-, ...)が常にtrueを返し ていたバグを修正 = File.identical [new] = FileTest.identical [new] test(?-, ...) の代替メソッドとして追加。 #Tue Nov 22 23:52:06 2005 Nobuyoshi Nakada # # * lib/optparse.rb: match incomplete (in current enconding) multibyte # string. http://inamode6.tokuhirom.dnsalias.org/show/1551 = lib/optparse.rb $KCODEで無効なマルチバイト文字列や、改行を含む文字列を引数に渡 すと切り捨てられていたバグの修正 require "optparse" puts "[#{ARGV * ', '}]" ARGV.options do |opt| opt.on("-n NODE") {|v| puts v } opt.parse! end >ruby -v -Ku a.rb -n 時間 ruby 1.8.2 (2004-12-25) [i386-mswin32] [-n, 時間] 時 >ruby -v -Ku a.rb -n 時間 ruby 1.8.4 (2005-12-16) [i686-linux] [-n, 時間] 時間 #Tue Nov 22 14:46:57 2005 NAKAMURA Usaku # # * file.c (rb_file_s_basename): skip slashes just after UNC top slashes. # # * test/ruby/test_path.rb (test_dirname, test_basename): follow new # spec. and add new tests. = File.split = File.basename = File.dirname UNCパスに対するFile.dirname・File.basename・File.splitの仕様 を変更した(UNCをサポートするプラットフォームのみ)。 File.split("//aaa") #=> old: ["//", "aaa"] new:["//aaa", "/"] File.split("//aaa/") #=> old: ["//", "aaa"] new:["//aaa", "/"] File.split("//aaa/bbb") #=> old:["//aaa", "bbb"] new:["//aaa/bbb", "/"] File.split("//aaa/bbb/") #=> old:["//aaa", "bbb"] new:["//aaa/bbb", "/"] File.split("///aaa") #=> old:["//", "aaa"] new:["//aaa", "/"] #Tue Nov 22 13:18:32 2005 Hirokazu Yamamoto # # * win32/win32.c (rb_w32_stat): Dir.chdir('//server/shared'); # p Dir.glob('*') should work on WinNT. (implemented our own # stat(2) on WinNT) [ruby-list:41552] [ruby-dev:27711] # = Dir.glob (Win全般) 共有フォルダの共有名に対する Dir.glob が失敗していたのを修正。(こ れはWinNT における、ランタイムライブラリの stat のバグだと思う)自 前で stat を実装することで回避した。 #Tue Nov 22 01:45:21 2005 Nobuyoshi Nakada # # * file.c (rb_file_s_basename): DOSISH_UNC is defined on cygwin but # DOSISH is not. fixed: [ruby-dev:27797] = File.basename (Win全般) 不完全なUNCを分割しないようにした([ruby-dev:28026]参照) # * parse.y (dsym): prohibit empty symbol literal by interpolation. # fixed: [ruby-talk:166529] = Ruby本体 式展開で空のSymbolを作ることができたバグの修正 p :"" # => ruby 1.8.3 (2005-09-21) [i686-linux] -:1: empty symbol literal # => ruby 1.8.4 (2005-12-16) [i686-linux] -:1: empty symbol literal p :"#{""}" # => ruby 1.8.3 (2005-09-21) [i686-linux] : # => ruby 1.8.4 (2005-12-16) [i686-linux] -:1: empty symbol literal #Fri Nov 18 17:26:06 2005 NAKAMURA Usaku # # * file.c (rb_file_s_dirname): added checks for some patterns with drive # letter. fixed: [ruby-dev:27738] # # * test/ruby/test_path.rb (test_dirname): added tests for above # patterns. = File.dirname (Win全般) ドライブレターを含むパスに対するFile.dirnameの問題を修正した (ドライブレターをサポートするプラットフォームのみ)。 File.dirname("C:a/b") #=> old: "C:a." new: "C:a" File.dirname("C:a///") #=> old: "C:a///" new: "C:a" #Fri Nov 18 12:18:02 2005 Hirokazu Yamamoto # # * win32/win32.h (S_IFIFO): r,w = IO.pipe; r.stat.pipe? now # returns true on VisualC++6. = File::Stat#pipe? VisualC++ 6 では S_IFIFO がなく _S_IFIFO しか定義されていないため、 パイプに対する stat.pipe? が false を返していたのを修正。 #Tue Nov 15 23:46:35 2005 Yukihiro Matsumoto # # * lib/find.rb (Find::find): should not ignore symbolic links to # non-existing files. [ruby-talk:165866] ? #Tue Nov 15 14:39:16 2005 Yukihiro Matsumoto # # * array.c (rb_ary_fill): should adjust array length correctly when # an array is expanded in the fill process. [ruby-core:06625] ? #Fri Nov 11 07:44:18 2005 Hirokazu Yamamoto # # * configure.in: undef HAVE_LINK on BeOS. (link(2) always returns # EINVAL, and this causes error in test/fileutils.) # # * file.c: overwride chown(2) and fchown(2) on BeOS. (these functions # should not change user/group id if -1 is passed as corresponding # argument, and this causes error in test/fileutils too) # [ruby-dev:27672] # # * file.c (rb_file_s_link): checks HAVE_LINK. BeOS でのいくつかのテスト失敗に対処。link(2) が定義されていながら常に失敗 するので test/fileutils が誤動作していたのに対処。BeOS には link(2) は存在 しないと見なすようにした。chown、fchown に id として -1 を渡した場合は、 POSIX 的には id を変更すべきでないが、BeOS では (unsigned) -1 に変更して しまっていた。これに対処。 #Tue Nov 8 15:32:27 2005 GOTOU Yuuzou # # * lib/drb/ssl.rb (DRb::SSLConfig#accept): fixed typo. # [ruby-dev:27560] [ruby-core:4627] ? #Sun Nov 6 23:39:13 2005 Nobuyoshi Nakada # # * ext/iconv/iconv.c (Iconv::BrokenLibrary): exception when detected a # bug of underlying library. 1.8.3 に存在したバグかどうか未確認。SEGV バグの修正。 errnoが正しくセットされなかったときの例外を追加(Windowsで iconv.dllの使用するMSVC runtime DLLのバージョンが、ruby本体が使 用するものと一致していない場合も含む) #Tue Nov 1 14:20:11 2005 Yukihiro Matsumoto # # * eval.c (rb_call_super): should call method_missing if super is # called from Kernel method. # # * eval.c (exec_under): frame during eval should preserve external # information. ? #Tue Nov 01 10:50:17 2005 GOTOU Yuuzou # # * ext/openssl/extconf.rb: should check ERR_peek_last_error(). # [ruby-dev:27597] # # * ext/openssl/ossl.c (ossl_raise): ditto. ? #Mon Oct 31 17:34:46 2005 Yukihiro Matsumoto # # * configure.in: use proper option for Sun linker. A patch from # Shinya Kuwamura . [ruby-dev:27603] # ? #Mon Oct 31 05:49:23 2005 GOTOU Yuuzou # # * ext/openssl/ossl_cipher.c (ossl_cipher_update): input data must # not be empty. [ruby-talk:161220] # # * test/openssl/test_cipher.rb: add test for Cipher#update(""). ? #Mon Oct 31 05:37:20 2005 GOTOU Yuuzou # # * lib/webrick/httpservlet/cgihandler.rb # (WEBrick::HTTPServlet::CGIHandler#do_GET): the value of Set-Cookie: # header field should be splited into each cookie. [ruby-Bugs:2199] # # * lib/webrick/cookie.rb (WEBrick::Cookie.parse_set_cookie): new method # to parse the value of Set-Cookie: header field. # # * test/webrick/test_cookie.rb, test/webrick/test_cgi.rb, # test/webrick/webrick.cgi: add some test for cookie. ? #Mon Oct 31 03:19:36 2005 Yukihiro Matsumoto # # * ext/readline/readline.c (readline_readline): type check. # [ruby-core:6089] # # * numeric.c (fix_rshift): RDoc fix. [ruby-core:6351] # # * util.h (strtod): add #undef for platforms defines strtod() # macro. [ruby-dev:27563] ? #Thu Oct 27 16:45:31 2005 Yukihiro Matsumoto # # * string.c (scan_once): wrong condition to use mbclen2(). # [ruby-dev:27535] ? #Wed Oct 26 09:27:27 2005 Hirokazu Yamamoto # # * ext/syck/implicit.c (syck_type_id_to_uri): should return # newly allocated memory. otherwise, type_id will be freed # twice. [ruby-dev:27384] [ruby-core:6385] syck のメモリバグをひとつ修正。(他にもたくさんあります!私には修正不能) #Wed Oct 26 09:04:51 2005 Hirokazu Yamamoto # # * ruby.h (Qfalse, Qtrue, Qnil, Qundef): make sure these immediate # values have VALUE type. there is an environment where sizeof(VALUE) # != sizeof(int) like IA64. if 32bit integer (Qtrue) is passed to ANYARGS # and received by 64bit integer (VALUE), upper bits may have garbage value. # [ruby-dev:27513] IA64 で、Qtrue Qfalse Qnil が 64bit 整数でなく 32bit 整数として定義されていた ため、ANYARGS を通して Qtrue を渡し、VALUE で受けると、サイズの違いから値が 壊れることのあった問題を修正。 #Tue Oct 25 15:32:00 2005 Yukihiro Matsumoto # # * lib/rational.rb: applied documentation patch from Gavin Sinclair # . [ruby-core:06364] # # * lib/irb.rb (IRB::Irb::eval_input): handle prompts with newlines # in irb auto-indentation mode. [ruby-core:06358] ? #Tue Oct 25 02:12:08 2005 Nobuyoshi Nakada # # * lib/rdoc/markup/simple_markup.rb (SM::SimpleMarkup::LABEL_LIST_RE): # reduce redundant backtrack. [ruby-talk:161771] 正規表現のバックトラックが深くなりすぎて失敗することがあった 不要(?) #Tue Oct 25 00:27:35 2005 Masatoshi SEKI # # * lib/rinda/*: RDoc documentation from Eric Hodel # added. ? #Mon Oct 24 20:49:45 2005 NAKAMURA Usaku # # * ext/Win32API/lib/win32/resolv.rb (get_info): support multiple DNS. # fixed: [ruby-list:40058], [ruby-dev:27479] # DNSを手動で複数設定した場合に正しく動作していなかった。 (あれ、devの方のML番号が間違ってるな...) #Sun Oct 23 21:50:15 2005 Yukihiro Matsumoto # # * ext/enumerator/enumerator.c: applied documentation patch from # James Edward Gray II . # [ruby-core:06348] # ? #Sat Oct 22 13:26:57 2005 Nobuyoshi Nakada # # * object.c (sym_inspect), parse.y (parser_yylex, rb_symname_p): check # if valid as a symbol name more strictly. [ruby-dev:27478] # # * test/ruby/test_symbol.rb: tests for [ruby-core:03573]. Symbolに適合する文字列を厳密にした #Fri Oct 21 17:49:32 2005 Yukihiro Matsumoto # # * bin/erb (ERB::Main::run): typo fixed. [ruby-core:06337] ? #Wed Oct 19 08:28:32 2005 Nobuyoshi Nakada # # * file.c (rb_file_join): elements may contain null pointer strings. # report and fixed by Lloyd Zusman (hippoman): [ruby-core:06326] NULLポインタを持つStringを渡すとFile.joinがSEGVすることがあった バグの修正 #Wed Oct 19 01:27:07 2005 Nobuyoshi Nakada # # * regex.c (re_compile_pattern): numeric literal inside character class # disabled succeeding backtrack. fixed: [ruby-list:41328] 文字コードの形で正規表現の文字クラスを指定すると、それ以降のバッ クトラックが効かなくなるバグの修正 #Sun Oct 16 14:30:05 2005 Masatoshi SEKI # # * lib/rinda/rinda.rb (Rinda::Tuple#initialize): check remote hash # tuple. fixed: [ruby-list:41227] # # * test/rinda/test_rinda.rb: test it. これ、http://www.druby.org/ilikeruby/drb_changelog_18.html から引用させていただきます。 HashタプルとArrayタプルの判断をミスしていました。ローカルのオブジェクトは合ってたのだけど、 リモートにあるとき、クラスによる判断はできないのだった。失敗。 あんな巧妙な仕掛けでリモートのタプルを変換していたとは…。[ruby-list:41227] #Sun Oct 16 03:38:07 2005 Yukihiro Matsumoto # # * rubysig.h (CHECK_INTS): prevent signal handler to run during # critical section. [ruby-core:04039] # # * eval.c (load_wait): need not to call rb_thread_schedule() # explicitly. [ruby-core:04039] # # * eval.c (rb_thread_schedule): clear rb_thread_critical. # [ruby-core:04039] ? #Fri Oct 14 16:57:32 2005 GOTOU Yuuzou # # * lib/webrick/config.rb (Config::FileHandler): :UserDir should be nil. # It is harmful to permit the access to ~/public_html by default. # suggested by Hiroyuki Iwatsuki. WEBrick::Config::FileHandler [lib][compat] WEBrick::Config::FileHandler[:UserDir]のデフォルト値が "public_html"からnilになり、意図せずにユーザディレクトリ (/~user/public_html)以下が公開されることがなくなりました。 ([webrickja:148]) #Wed Oct 12 12:52:57 2005 GOTOU Yuuzou # # * ext/openssl/ossl.c (Init_openssl): should call # OpenSSL_add_ssl_algorithms(). ? #Tue Oct 11 21:41:58 2005 Nobuyoshi Nakada # # * eval.c (rb_obj_respond_to): check if obj responds to the given # method with the given visibility. [ruby-dev:27408] # # * eval.c (rb_respond_to): conform to Object#respond_to?. [ruby-dev:27411] rb_respond_to()をObject#respond_to?のデフォルトの動作と同じにした rb_obj_respond_to()追加 (拡) #Tue Oct 11 00:01:21 2005 Yukihiro Matsumoto # # * st.c (st_free_table): do not call free() but xfree(). # [ruby-core:06205] ? #Sat Oct 8 20:04:40 2005 Nobuyoshi Nakada # # * eval.c (Init_Binding): add Binding#dup method. [yarv-dev:666] メソッドの追加 これは不要にしようかな # * parse.y (rb_parser_malloc, rb_parser_free): manage parser stack on # heap. [ruby-list:41199] Bison 2.0対応 # * ext/iconv/charset_alias.rb: parse config.charset_alias file directly. Windows上でもencoding名の別名テーブルを生成するようにした #Fri Oct 7 09:54:00 2005 Yukihiro Matsumoto # # * lib/cgi.rb (CGI::Cookie::parse): Cookies from Nokia devices may # not be parsed correctly. A patch from August Z. Flatby # (augustzf) in [ruby-Patches-2595]. [ruby-core:06183] ? #Wed Oct 05 04:42:38 2005 GOTOU Yuuzou # # * lib/xmlrpc/server.rb (XMLRPC::Server#initialize): should mount the # servlet on "/". ? #Wed Oct 05 03:59:09 2005 GOTOU Yuuzou # # * lib/xmlrpc/server.rb (XMLRPC::Server#serve): delete wrong call # of "join". ? #Mon Oct 3 00:04:00 2005 Kazuhiro NISHIYAMA # # * pack.c (EXTEND16): [ruby-dev:27383] ? #Thu Sep 29 10:26:18 2005 Tanaka Akira # # * ext/dl/dl.c (rb_io_to_ptr): abolish sizeof(FILE). # [ruby-dev:27317] ? #Thu Sep 29 00:57:35 2005 Nobuyoshi Nakada # # * eval.c (ev_const_get), variable.c (rb_const_get_0): retry only when # autoload succeeded. # # * variable.c (rb_autoload_load): now return true if autoload # succeeded. fixed: [ruby-dev:27331] const_missingが再定義されていて実行を継続した場合にSEGVする可能 性があったバグの修正 #Wed Sep 28 15:14:19 2005 GOTOU Yuuzou # # * lib/webrick/cgi.rb (WEBrick::CGI#start): req.query_string should # refer the value of QUERY_STRING. [ruby-list:41186] # # * lib/webrick/httprequest.rb (WEBrick::HTTPRequest#query_string=): # add new method. WEBrick::CGI#startでreq.query_stringがオリジナルの QUERY_STRINGを指すように。 新メソッドWEBrick::HTTPRequest#query_string=の追加。 #Wed Sep 28 08:12:18 2005 Nobuyoshi Nakada # # * io.c (read_buffered_data): check if reached EOF. fixed: [ruby-dev:27334] SolarisなどでEOF後にゴミを読み出すことがあった。 #Mon Sep 26 22:32:13 2005 Yukihiro Matsumoto # # * eval.c (set_trace_func): add rb_secure(4) to prevent adding # tracing function. $SAFE=4でtrace_funcの追加を禁止。 #Sat Sep 24 08:38:07 2005 Minero Aoki # # * lib/fileutils.rb: fix visibility of FileUtils::NoWrite, Verbose, # DryRun (backported from trunk, rev 1.66). [ruby-core:05954] # # * test/fileutils/test_nowrite.rb: test it. # # * test/fileutils/test_dryrun.rb: new file. # # * test/fileutils/test_verbose.rb: new file. FileUtils::NoWrite, Verbose, DryRun のメソッドが 呼べなくなっていたのを修正しました。 #Thu Sep 22 23:36:24 2005 Nobuyoshi Nakada # # * lib/mkmf.rb (find_executable0): default path if environment is not # set. [ruby-dev:27281] mkmf.rb: find_executable() 実行ファイルを探索するときに環境変数 PATH がセットされてい ない場合を考慮しました。PATH がセットされていない場合は、 /usr/local/bin:/usr/ucb:/usr/bin:/bin をPATHの代わりに利用してここからコマンドを探索します。 (影響度から最終的に捨てる項目になるかも、でも調べたので書いた) -- 新井康司 (Koji Arai)