From d1a42eddce1f445e3d402b6d19a6cd8af5904d19 Mon Sep 17 00:00:00 2001 From: usa Date: Thu, 24 Dec 2015 17:24:57 +0000 Subject: * doc/{ChangeLog,NEWS}-2.3.0: moved. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53291 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- doc/ChangeLog-2.3.0 | 12187 ++++++++++++++++++++++++++++++++++++++++++++++++++ doc/NEWS-2.3.0 | 404 ++ 2 files changed, 12591 insertions(+) create mode 100644 doc/ChangeLog-2.3.0 create mode 100644 doc/NEWS-2.3.0 (limited to 'doc') diff --git a/doc/ChangeLog-2.3.0 b/doc/ChangeLog-2.3.0 new file mode 100644 index 0000000000..f4a56b75ca --- /dev/null +++ b/doc/ChangeLog-2.3.0 @@ -0,0 +1,12187 @@ +Thu Dec 24 23:01:57 2015 SHIBATA Hiroshi + + * NEWS: added entry for CGI.escapeHTML optimization. + +Thu Dec 24 18:43:19 2015 Nobuyoshi Nakada + + * error.c (rb_compile_error_with_enc, rb_compile_error), + (rb_compile_bug): deprecate internal functions. + + * parse.y (parser_yyerror): construct exception message with + source code and caret. + +Thu Dec 24 17:25:42 2015 Nobuyoshi Nakada + + * compile.c (append_compile_error), parse.y (compile_error): + preserve encoding of source file name in exceptions. + + * error.c (rb_compile_error_str, rb_compile_bug_str): add. + +Thu Dec 24 16:17:47 2015 NARUSE, Yui + + * common.mk (fake.rb): $(arch)-fake.rb must depend miniruby because + it may depend miniruby. + +Thu Dec 24 16:13:05 2015 NARUSE, Yui + + * common.mk (ripper.c): r50045 wrongly replace $(PWD) with ../.. + It is the top of build directory, not topsrcdir. + +Thu Dec 24 15:02:42 2015 sorah (Shota Fukumori) + + * tool/vcs.rb (IO.popen): Refactor. Avoid assigning in condition. + +Thu Dec 24 15:01:38 2015 sorah (Shota Fukumori) + + * tool/file2lastrev.rb: Fix ArgumentError to work on Ruby 1.8.7. + +Thu Dec 24 14:44:08 2015 sorah (Shota Fukumori) + + * tool/vcs.rb (IO.popen): Enable on Ruby 1.9 where chdir option is not + supported on IO.popen + + * tool/vcs.rb (IO.popen): Fix NoMethodError. I guess r49705 was not + tested... :/ + +Thu Dec 24 14:57:03 2015 Koichi Sasada + + * NEWS: rename + "Implementation changes" section to + "Supported platform changes" section. + + * NEWS: add "Implementation improvements" and add several entries. + + * NEWS: add NEWS entries by Eric Wong. [ruby-core:72450] + +Thu Dec 24 00:26:05 2015 Nobuyoshi Nakada + + * ext/io/console/extconf.rb: fix gem build failure on Windows. + only win32_vk.inc is included in the gem and no dependencies for + the header, so that gperf will not be mandatory. + [ruby-core:72453] [Bug #11866] + + * ext/io/console/io-console.gemspec: include depend file and + win32_vk header. + +Wed Dec 23 23:58:44 2015 Nobuyoshi Nakada + + * io.c (rb_readwrite_syserr_fail): works with the given errno than + thread local errno. + +Wed Dec 23 17:57:45 2015 Nobuyoshi Nakada + + * file.c, io.c, util.c: prefer rb_syserr_fail with saved errno + over setting errno then call rb_sys_fail, not to be clobbered + potentially and to reduce thread local errno accesses. + +Wed Dec 23 11:58:52 2015 Yuichiro Kaneko + + * string.c: Fix document. Default value of the first + argument of `String#split` is not `$;` but `nil`. + When `nil` is passed as first argument, `$;` is used. + [ci skip] [Bug #11729] [ruby-dev:49378] + +Wed Dec 23 07:15:17 2015 Eric Wong + + * ext/socket/init.c (rsock_init_sock): reject reserved FDs + [ruby-core:72445] [Bug #11862] + +Wed Dec 23 02:59:26 2015 Nobuyoshi Nakada + + * configure.in (__STDC_WANT_LIB_EXT1__): necessary to use memset_s + in strict C99 mode. + +Wed Dec 23 02:34:36 2015 Nobuyoshi Nakada + + * regexec.c (match_at): move direct threaded VM code to get rid of + mixed declarations and code, and enable it only for gcc since it + depends on a gcc extension. + +Wed Dec 23 02:23:19 2015 Yuki Nishijima + + * gems/bundled_gems: Upgrade the did_you_mean gem to 1.0.0 + + * NEWS: Add news about the did_you_mean gem + +Wed Dec 23 02:18:57 2015 Jake Worth + + * doc/contributing.rdoc: [DOC] remove an extra word "here". + [Fix GH-1169] + +Wed Dec 23 01:58:20 2015 Nobuyoshi Nakada + + * regexec.c (USE_DIRECT_THREADED_VM): enable direct threaded VM by + the default. + +Tue Dec 22 22:15:53 2015 Nobuyoshi Nakada + + * gc.c (internal_object_p): should not expose singleton classes + without a metaclass. based on patches by ko1 and shugo. + [Bug #11740] + + * class.c (rb_singleton_class_object_p): added. + +Tue Dec 22 22:15:08 2015 Nobuyoshi Nakada + + * ext/io/console/io-console.gemspec: bump up to 0.4.4. + +Tue Dec 22 22:11:06 2015 SHIBATA Hiroshi + + * NEWS: Added news entry of Psych 2.0.17 + +Tue Dec 22 22:09:01 2015 SHIBATA Hiroshi + + * NEWS: Added news entry of RDoc 4.2.1 + +Tue Dec 22 21:20:00 2015 Kenta Murata + + * ext/bigdecimal/bigdecimal.gemspec: bump version to 1.2.8. + +Tue Dec 22 21:08:05 2015 SHIBATA Hiroshi + + * lib/rdoc.rb: bump version to 4.2.1. It contains following fixes. + https://github.com/rdoc/rdoc/pull/340 + https://github.com/rdoc/rdoc/pull/341 + https://github.com/rdoc/rdoc/pull/367 + https://github.com/rdoc/rdoc/pull/368 + * lib/rdoc/*: ditto. + * test/rdoc/*: ditto. + +Tue Dec 22 20:25:33 2015 SHIBATA Hiroshi + + * ext/psych/lib/psych.rb: bump version to 2.0.17 + * ext/psych/psych.gemspec: ditto. + +Tue Dec 22 20:14:47 2015 Koichi Sasada + + * vm_insnhelper.c: move vm_callee_setup_block_arg() (and related + functions) to the latter location. + This moving recovers performance a little. + [Bug #11829] + +Tue Dec 22 15:21:11 2015 Nobuyoshi Nakada + + * string.c (str_compat_and_valid): as scrub does nothing for dummy + encoding string now, incompatible encoding is not a matter. + +Tue Dec 22 14:31:28 2015 Toru Iwase + + * ext/cgi/escape/escape.c (optimized_escape_html): CGI.escapeHTML + should return unfrozen new string. + [ruby-core:72426] [Bug #11858] + +Tue Dec 22 05:39:58 2015 Takashi Kokubun + + * ext/cgi/escape/escape.c (preserve_original_state): Preserve + original state for tainted and frozen. [Fix GH-1166] + [ruby-dev:49451] [Bug #11855] + +Tue Dec 22 03:57:20 2015 Eric Wong + + * ext/socket/init.c (rsock_init_sock): check FD after validating + * test/socket/test_basicsocket.rb (test_for_fd): new + [ruby-core:72418] [Bug #11854] + +Mon Dec 21 21:29:45 2015 Naohisa Goto + + * variable.c (struct ivar_update): rename "extended" to "iv_extended" + to avoid name conflict with /usr/include/floatingpoint.h on + Solaris. [Bug #11853] [ruby-dev:49448] + +Mon Dec 21 12:15:32 2015 Kimura Wataru + + * test/ruby/test_io.rb: handled rlimit value same as r52277 + [Bug #11852][ruby-dev:49446] + +Mon Dec 21 10:21:22 2015 Ilya Vassilevsky + + * lib/net/http.rb (open_timeout): update default value in RDoc + [ruby-core:72413] + +Mon Dec 21 10:18:46 2015 Kazuki Yamaguchi + + * vm_backtrace.c (rb_profile_frames): ignore ifunc frames as it + did before. [ruby-core:72409] [Bug #11851] + +Mon Dec 21 09:33:17 2015 Karol Bucek + + * ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLSocket): fix + NotImplementedError typo. [Fix GH-1165] + +Sun Dec 20 20:54:51 2015 Takashi Kokubun + + * cgi/escape/escape.c: Optimize CGI.escapeHTML for + ASCII-compatible encodings. [Fix GH-1164] + +Sun Dec 20 15:36:46 2015 SHIBATA Hiroshi + + * lib/erb.rb: revert r53123. It breaks compatibility like thor and + rspec-rails. + We should try with Ruby 2.4 or 3.0. + [Bug #11842][ruby-core:72374] + * lib/rdoc/erb_partial.rb: ditto. + * template/verconf.h.tmpl: ditto. + +Sun Dec 20 11:43:31 2015 Nobuyoshi Nakada + + * parse.y (parser_yylex): allow here documents in labeled + argument. [ruby-core:72396] [Bug #11849] + +Sun Dec 20 11:14:11 2015 Koichi Sasada + + * proc.c (rb_mod_define_method): should check Symbol or not. + [Bug #11850] + + * test/ruby/test_method.rb: add a test. + +Sun Dec 20 11:01:57 2015 Koichi Sasada + + * proc.c (rb_mod_define_method): fix notation. + +Sun Dec 20 10:54:15 2015 Koichi Sasada + + * proc.c (proc_new): fix notation. + +Sun Dec 20 00:29:00 2015 Nobuyoshi Nakada + + * proc.c (rb_proc_get_iseq): proc made from symbol does not have + iseq. fix infinite loop. [ruby-core:72381] [Bug #11845] + +Sat Dec 19 20:06:10 2015 Naohisa Goto + + * enc/windows_1250.c: Should not use C++ style comments (C99 feature). + [Bug #11843] + +Sat Dec 19 17:17:04 2015 Nobuyoshi Nakada + + * lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler#initialize): + use WEBrick::Utils::TimeoutHandler::Thread, which is ignored by + LeakChecker#find_threads, instead of ::Thread to get rid of + thread leak checker. since this TimeoutHandler is resident + during tests because of Singleton, it waits for the next timeout + if it has any schedules. in the case of nested timeouts, inner + timeout does not cancel outer timeouts and then those schedules + still remain. + +Sat Dec 19 14:28:01 2015 Jake Worth + + * ext/zlib/zlib.c (Init_zlib): [DOC] Fix double-word typo and + grammatical error. [Fix GH-1162] + +Sat Dec 19 14:23:59 2015 Jake Worth + + * lib/csv.rb (CSV#initialize): [DOC] Fix double-word typo. + [Fix GH-1161] + +Sat Dec 19 10:33:33 2015 Martin Duerst + + * enc/iso_8859_2.c, enc/windows_1250.c: separate Windows-1250 + from ISO-8859-2 to fix 0x80..0x9e range (from Kimihito Matsui) + +Fri Dec 18 21:26:54 2015 Naohisa Goto + + * lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler): To prevent + potential deadlocks, Queue is used to tell update of @timeout_info + instead of sleep and wakeup. [Bug #11742] [ruby-dev:49387] + +Fri Dec 18 17:24:09 2015 Koichi Sasada + + * compile.c (ibf_load_object_string): use fstring if frozen string. + +Fri Dec 18 16:54:38 2015 Nobuyoshi Nakada + + * ext/stringio/stringio.c (strio_set_encoding): add StringIO's own + encoding and separate it from the buffer string to override the + encoding of string when reading. [ruby-core:72189] [Bug #11827] + note that setting the encoding of its buffer string directly + without StringIO#set_encoding may cause unpredictable behavior. + +Fri Dec 18 16:50:35 2015 Koichi Sasada + + * compile.c (ibf_load_setup): check tainted string argument. + +Fri Dec 18 16:12:13 2015 Koichi Sasada + + * vm_core.h: define USE_LAZY_LOAD if it is not defined. + +Fri Dec 18 15:40:06 2015 Nobuyoshi Nakada + + * ext/stringio/stringio.c (strio_unget_bytes): extract from + strio_ungetbyte to share with strio_ungetc. + +Fri Dec 18 12:39:42 2015 SHIBATA Hiroshi + + * doc/syntax/*.rdoc: separated modifier at sentence. + [ci skip][fix GH-1121] Patch by @clandry94 + +Fri Dec 18 12:09:21 2015 Nobuyoshi Nakada + + * ext/stringio/stringio.c (strio_ungetbyte): pad with \000 when + the current position is after the end. + +Fri Dec 18 11:24:48 2015 Shugo Maeda + + * vm_method.c (rb_method_entry_make, check_override_opt_method): + should check whether a newly created method overrides an optimize + method in case the method is defined in a prepended module of a + built-in class. + [ruby-core:72226] [Bug #11836] + +Fri Dec 18 11:09:38 2015 KOSAKI Motohiro + + * vm.c (vm_exec): call RUBY_DTRACE_CMETHOD_RETURN_HOOK instead of + RUBY_DTRACE_METHOD_RETURN_HOOK. + +Fri Dec 18 10:24:44 2015 SHIBATA Hiroshi + + * lib/irb/ruby-lex.rb: fixed parse error for striped heredocument syntax. + [fix GH-1127] Patch by @koic + +Fri Dec 18 09:44:47 2015 SHIBATA Hiroshi + + * ext/pty/pty.c: fix double words typo. + [ci skip][fix GH-1157] Patch by @jwworth + +Fri Dec 18 09:42:45 2015 SHIBATA Hiroshi + + * ext/nkf/nkf-utf8/utf8tbl.c: fix a typo. + [ci skip][fix GH-1159] Patch by @akshay-vishnoi + * ext/nkf/nkf-utf8/utf8tbl.h: ditto. + +Fri Dec 18 07:39:01 2015 Shugo Maeda + + * vm.c (rb_vm_check_redefinition_opt_method): should check the real + class instead of the origin iclass. + [ruby-core:72188] [Bug #11826] + +Thu Dec 17 22:13:10 2015 Shugo Maeda + + * vm_args.c (vm_caller_setup_arg_block): remove code for ifunc + because it was made unnecessary by r52138. + +Thu Dec 17 16:13:10 2015 Shugo Maeda + + * proc.c (rb_block_arity): should not call GetProcPtr() for symbols. + [ruby-core:72205] [Bug #11830] + +Thu Dec 17 14:16:29 2015 Nobuyoshi Nakada + + * string.c (rb_str_scrub): the result should be infected by the + original string. + +Thu Dec 17 13:35:27 2015 Nobuyoshi Nakada + + * transcode.c (rb_econv_substr_append, econv_primitive_convert): + the result should be infected by the original string. + +Thu Dec 17 09:46:08 2015 Nobuyoshi Nakada + + * re.c (reg_names_iter): should consider encoding of regexp. + [ruby-core:72185] [Bug #11825] + +Thu Dec 17 03:52:10 2015 Koichi Sasada + + * vm.c (vm_make_env_each): should not compare with Qfalse and FALSE. + Pointed at http://d.hatena.ne.jp/nagachika/20151216/ruby_trunk_changes_53128_53163 + +Thu Dec 17 03:15:25 2015 Koichi Sasada + + * vm_insnhelper.c (vm_call_method_each_type): should not set fastpath + with keyword arguments for VM_METHOD_TYPE_ATTRSET type methods. + + Normally, we can not use keyword arguments for this kind of methods, + (obj.foo = 1), but we can set alias names for them. + [Bug #11657] + + * test/ruby/test_keyword.rb: add a test for this fix. + +Wed Dec 16 20:32:43 2015 CHIKANAGA Tomoyuki + + * ext/fiddle/handle.c: check tainted string arguments. + Patch provided by tenderlove and nobu. + + * test/fiddle/test_handle.rb (class TestHandle): add test for above. + + +Wed Dec 16 19:30:56 2015 Shugo Maeda + + * vm.c (vm_make_proc_from_block): should convert a Symbol to a Proc. + [ruby-core:72083] [Bug #11811] + +Wed Dec 16 16:17:34 2015 Eric Wong + + * test/ruby/test_io.rb: fix spelling errors + +Wed Dec 16 16:04:49 2015 Eric Wong + + * NEWS: note IO#advise change [ruby-core:72168] + +Wed Dec 16 15:35:13 2015 Koichi Sasada + + * vm.c: fix mark miss for proc given as passed block. + [Bug #11750] + + * vm.c (vm_make_proc_from_block): should return a Proc object + if block is given. Previous implementation returns + a Proc object only when corresponding Proc object is not + available. + + * vm.c (vm_make_env_each): ditto. + + * test/ruby/test_proc.rb: add a test for this bug. + +Wed Dec 16 12:24:59 2015 Marc-Andre Lafortune + + * test_struct.rb: Test that initialize is overridable [#11708] + +Wed Dec 16 10:49:51 2015 Nobuyoshi Nakada + + * parse.y (block_command, block_call): fix `&.` calls after + block_call. [Feature #11537] + +Wed Dec 16 00:53:45 2015 Naohisa Goto + + * lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler): Acquire + TimeoutMutex only when accessing @timeout_info for avoiding + potential deadlock. [Bug #11742] [ruby-dev:49387] + +Wed Dec 16 00:39:27 2015 Jake Worth + + * doc/extension.rdoc: [DOC] fix double-word typo. [Fix GH-1153] + +Wed Dec 16 00:25:41 2015 Naohisa Goto + + * lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler#initialize): + TimeoutMutex should be acquired when accessing @timeout_info. + To avoid deadlock, interrupt() calls are delayed. + Due to the mutex, it is safe to treat ary without ary.dup. + [Bug #11742] [ruby-dev:49387] + +Tue Dec 15 23:13:10 2015 Naohisa Goto + + * gc.c: Delete excess semicolon after RUBY_ALIAS_FUNCTION(). + Suppress "syntax error: empty declaration" warnings by + Oracle Solaris Studio 12.x on Solaris. [Bug #11821] + + * hash.c: ditto, after NOINSERT_UPDATE_CALLBACK(). + +Tue Dec 15 18:04:04 2015 Martin Duerst + + * NEWS: added news about EBCDIC encoding + +Tue Dec 15 17:57:57 2015 Martin Duerst + + * enc/ebcdic.h, enc/trans/ebcdic.trans, + test/ruby/test_transcode.rb: Fixed encoding name + to the correct one in the IANA registry (IBM037) + and added an alias (ebcdic-cp-us) + +Tue Dec 15 16:19:26 2015 Takashi Kokubun + + * lib/erb.rb: Render erb with array buffer for function call optimization. + [fix GH-1143] + * lib/rdoc/erb_partial.rb: ditto. + * template/verconf.h.tmpl: ditto. + +Tue Dec 15 13:50:05 2015 Nobuyoshi Nakada + + * string.c (rb_str_oct): [DOC] mention radix indicators. + [ruby-core:71310] [Bug #11648] + +Tue Dec 15 12:20:30 2015 Takashi Kokubun + + * lib/erb.rb: Simplify regexp to optimize erb scanner. + [fix GH-1144] + +Tue Dec 15 11:56:24 2015 SHIBATA Hiroshi + + * lib/uri/common.rb: make code block for rdoc. + [ci skip][fix GH-1152] Patch by @Tonkpils + +Tue Dec 15 11:55:08 2015 SHIBATA Hiroshi + + * ext/zlib/zlib.c: fix a typo. + [ci skip][fix GH-1149] Patch by @crismali + +Tue Dec 15 09:14:14 2015 Martin Duerst + + * tool/transcode_tablegen.rb: detailed documentation + for transcode_tblgen function [ci skip] + +Mon Dec 14 22:11:11 2015 Martin Duerst + + * enc/ebcdic.h: new dummy encoding EBCDIC-US + * enc/trans/ebcdic.trans: transcodings between EBCDIC-US + and iso-8859-1 [with code from Andrea Ribuoli] + * test/ruby/test_transcode.rb: tests for above + * tool/transcode_tablegen.rb: additional argument for + method transcode_tblgen + +Mon Dec 14 17:04:14 2015 SHIBATA Hiroshi + + * ext/socket/lib/socket.rb: use safe navigation operator. + [fix GH-1142] Patch by @mlarraz + * lib/drb/extservm.rb: ditto. + * lib/net/http.rb: ditto. + * lib/net/http/response.rb: ditto. + * lib/scanf.rb: ditto. + * lib/uri/generic.rb: ditto. + +Mon Dec 14 17:03:05 2015 SHIBATA Hiroshi + + * bootstraptest/runner.rb: use safe navigation operator. + [fix GH-1142] Patch by @mlarraz + * test/openssl/test_pair.rb: ditto. + * test/ruby/test_econv.rb: ditto. + * test/ruby/test_settracefunc.rb: ditto. + * test/thread/test_queue.rb: ditto. + +Mon Dec 14 14:33:35 2015 SHIBATA Hiroshi + + * lib/xmlrpc.rb: added documentation for parser details. + [ci skip][fix GH-1124] Patch by @jrafanie + +Mon Dec 14 11:46:52 2015 SHIBATA Hiroshi + + * enum.c: fix a typo in documentation. + [ci skip][fix GH-1140] Patch by @jutaz + * io.c: ditto. + * iseq.c: ditto. + * numeric.c: ditto. + * process.c: ditto. + * string.c: ditto. + * vm_trace.c: ditto. + +Mon Dec 14 11:41:59 2015 SHIBATA Hiroshi + + * lib/cgi.rb: fix a typo in documentation. + [ci skip][fix GH-1140] Patch by @jutaz + +Mon Dec 14 11:31:00 2015 SHIBATA Hiroshi + + * compile.c: fix typos. + [ci skip][fix GH-1140] Patch by @jutaz + * dir.c: ditto. + * gc.c: ditto. + * io.c: ditto. + * node.h: ditto. + * thread_pthread.c: ditto. + * vm_insnhelper.c: ditto. + * vsnprintf.c: ditto. + +Mon Dec 14 11:27:01 2015 SHIBATA Hiroshi + + * enc/iso_2022_jp.h: fix typos. + [ci skip][fix GH-1140] Patch by @jutaz + * enc/utf_16_32.h: ditto. + * enc/utf_7.h: ditto. + +Mon Dec 14 11:25:57 2015 SHIBATA Hiroshi + + * benchmark/bm_app_aobench.rb: fix typos. + [ci skip][fix GH-1140] Patch by @jutaz + * benchmark/bm_vm_thread_pipe.rb: ditto. + +Sun Dec 13 23:46:10 2015 Nobuyoshi Nakada + + * parse.y (trace_lex_state): trace lex_state changes if yydebug is + set, and send the messages to rb_stdout. + + * parse.y (rb_parser_printf): store YYPRINTF messages per lines + so that lex_state traces do not mix. + + * tool/ytab.sed: add parser argument to yy_stack_print too. + +Sun Dec 13 20:41:16 2015 Nobuyoshi Nakada + + * parse.y (build_lex_state_name, trace_lex_state): lex_state is + now bit flags and can be set 2 bits or more. + +Sun Dec 13 20:26:30 2015 Yuki Yugui Sonoda + + * test/ruby/test_syntax.rb: fix typo in test + +Sun Dec 13 20:12:14 2015 Yuki Yugui Sonoda + + * parse.y (parse_percent): Allow %-literals in labeled arg as + r51624 did for parentheses. + Fixes [ruby-core:72084] [Bug #11812]. + +Sun Dec 13 20:02:15 2015 SHIBATA Hiroshi + + * ChangeLog: fix a typo + +Sun Dec 13 19:54:26 2015 SHIBATA Hiroshi + + * test/lib/envutil.rb: move envutil's assertions under Test::Unit::Assertion. + * test/lib/test/unit/assertions.rb: ditto. + +Sun Dec 13 19:24:20 2015 Yuki Yugui Sonoda + + * parse.y (lex_state_name): Make it return the correct names. + Add new names to follow r51617; Indices ffs(2) returns are 1-origin. + +Sun Dec 13 18:40:45 2015 Yuki Yugui Sonoda + + * parse.y: debug output of lex_state transition if PARSER_DEBUG + +Sun Dec 13 18:49:25 2015 Nobuyoshi Nakada + + * io.c (parse_mode_enc): preserve encoding of mode string in + warnings. + + * io.c (io_encname_bom_p): check BOM prefix only, not including + UTF prefix. + + * io.c (parse_mode_enc): warn BOM with non-UTF encoding. + + * io.c (parse_mode_enc): fix buffer overflow. + +Sun Dec 13 18:35:57 2015 Nobuyoshi Nakada + + * ext/fiddle/function.c (initialize): check all arguments first. + reported by Marcin 'Icewall' Noga of Cisco Talos. + + * ext/fiddle/conversions.h (PTR2NUM): use signed integer to make + Fixnum for negative values. + +Sun Dec 13 18:33:41 2015 Nobuyoshi Nakada + + * pack.c (pack_pack): always check index range against the + receiver array length, which can be shortened by elements + conversion. reported by Marcin 'Icewall' Noga of Cisco Talos. + +Sun Dec 13 18:28:52 2015 Nobuyoshi Nakada + + * ext/psych/psych_emitter.c (start_document): should not exceed + tags array range. + + * ext/psych/psych_emitter.c (start_document): ensure string before + encoding conversion. + +Sun Dec 13 18:26:31 2015 Nobuyoshi Nakada + + * ext/tk/tkutil/tkutil.c (tk_hash_kv): check types of array + argument. reported by Marcin 'Icewall' Noga of Cisco Talos. + + * ext/tk/tkutil/tkutil.c (cbsubst_table_setup): check length of + argument arrays for each access, as callback methods can modify + them. reported by Marcin 'Icewall' Noga of Cisco Talos. + + * ext/tk/tkutil/tkutil.c (cbsubst_table_setup): check types of + argument elements. reported by Marcin 'Icewall' Noga of Cisco + Talos. + +Sun Dec 13 18:19:20 2015 Nobuyoshi Nakada + + * ext/win32ole/win32ole.c (ole_vstr2wc): check argument type, vstr + must be a String here. reported by Marcin 'Icewall' Noga of + Cisco Talos. + +Sun Dec 13 16:41:01 2015 Nobuyoshi Nakada + + * configure.in (BOOTSTRAPRUBY): make BASERUBY full path before + building ruby to get rid of unexpectedly invoking built ruby. + [ruby-core:72065] [Bug #11807] + + * configure.in (BOOTSTRAPRUBY): use MINIRUBY but not BASERUBY + unless cross compiling. [ruby-core:72065] [Bug #11807] + +Sun Dec 13 14:17:19 2015 Akinori MUSHA + + * test/test_shellwords.rb (TestShellwords): Add many more tests + for handling whitespace characters and frozenness. + +Sun Dec 13 14:16:09 2015 Akinori MUSHA + + * lib/shellwords.rb (Shellwords#shellsplit): Document that this + method does not treat shell metacharacters as such. + +Sun Dec 13 12:17:43 2015 Eric Wong + + * lib/shellwords.rb (shellescape): duplicate frozen literal + * test/test_shellwords.rb (test_stringification): new test + +Sun Dec 13 11:47:35 2015 Shugo Maeda + + * object.c (rb_inspect): check the default internal encoding as + String#inspect do. + [ruby-dev:49415] [Bug #11787] + +Sun Dec 13 11:38:12 2015 Akinori MUSHA + + * lib/shellwords.rb: Turn on frozen-string-literal after fixing + shellsplit. + +Sun Dec 13 10:44:44 2015 Martin Duerst + + * KNOWNBUGS.rb: Fixed typo, made more explicit [ci skip] + +Sun Dec 13 10:26:47 2015 NARUSE, Yui + + * ext/openssl/ossl_ssl.c (ssl_npn_select_cb_common): fix parsing + protocol list. + The protocol list from OpenSSL is not null-terminated. + patched by Kazuki Yamaguchi [Bug #11810] [ruby-core:72082] + +Sun Dec 13 06:40:30 2015 Marc-Andre Lafortune + + * lib/ostruct.rb: Have OpenStruct#dig raise if argument is not a + symbol + nor a string. See [#11762] + +Sun Dec 13 00:05:42 2015 Shugo Maeda + + * vm_insnhelper.c (vm_call_method_missing): method_missing should + not be refined. + [ruby-core:72080] [Bug #11809] + +Sat Dec 12 23:00:17 2015 NARUSE, Yui + + * ext/nkf/nkf-utf8/nkf.c: Merge nkf 2.1.4. + +Sat Dec 12 18:52:26 2015 Nobuyoshi Nakada + + * object.c (rb_obj_dig): raise TypeError if an element does not + have #dig method. [ruby-core:71798] [Bug #11762] + +Sat Dec 12 17:59:07 2015 Yuichiro Kaneko + + * test/ruby/test_regexp.rb: Add test cases for `$KCODE` and `$=` warning + [Misc #11770][ruby-dev:49398] + +Sat Dec 12 17:11:57 2015 CHIKANAGA Tomoyuki + + * doc/NEWS-0.2.2: add description about incompatible change in Hash + duplicated key overriding policy. [Bug #10315] [Bug #11501] + +Sat Dec 12 07:44:38 2015 Eric Wong + + * io.c (do_io_advise): do not raise on ENOSYS + * test/ruby/test_io.rb (test_advise): do not skip on Errno::ENOSYS + (test_advise_pipe): ditto + [ruby-core:72066] [Feature #11806] + +Sat Dec 12 07:05:29 2015 Nobuyoshi Nakada + + * enc/windows_1252.c: separate from ISO-8859-1 to fix 0x80..0x9e + range. [ruby-core:64049] [Bug #10097] + +Fri Dec 11 23:33:40 2015 Yusuke Endoh + + * sample/trick2015/: added the award-winning entries of TRICK 2015. + See https://github.com/tric/trick2015 for the contest outline. + +Fri Dec 11 17:59:05 2015 Eric Wong + + * insns.def (opt_case_dispatch): avoid converting Infinity + * test/ruby/test_optimization.rb (test_opt_case_dispatch_inf): new + [ruby-dev:49423] [Bug #11804]' + +Fri Dec 11 16:48:57 2015 Eric Wong + + * hash.c (rb_num_hash_start): avoid pathological behavior + [ruby-core:72028] [Feature #11405] + +Fri Dec 11 11:58:46 2015 SHIBATA Hiroshi + + * NEWS: Mentioned rubygems-2.5.1 + +Fri Dec 11 11:52:39 2015 SHIBATA Hiroshi + + * lib/rubygems: Update to RubyGems 2.5.1 + * test/rubygems: ditto. + +Fri Dec 11 11:38:14 2015 Nobuyoshi Nakada + + * compile.c (iseq_compile_each, ibf_load_object_hash): rehash + case-dispatch hash to reduce collisions. + http://d.hatena.ne.jp/ku-ma-me/20151210 + +Fri Dec 11 03:44:43 2015 NARUSE, Yui + + * object.c (rb_inspect): dump inspected result with rb_str_escape() + instead of raising Encoding::CompatibilityError. [Feature #11801] + + * string.c (rb_str_escape): added to dump given string like + rb_str_inspect without quotes and always dump in US-ASCII + like rb_str_dump. + +Thu Dec 10 14:59:59 2015 Koichi Sasada + + * test/ruby/test_gc.rb (test_expand_heap): relax condition (1->2). + +Thu Dec 10 14:15:59 2015 SHIBATA Hiroshi + + * cont.c: fix a double word typo. + [Bug #11313][ruby-core:69749] + +Thu Dec 10 14:13:34 2015 SHIBATA Hiroshi + + * ext/tk/lib/multi-tk.rb: fix typos. + [Bug #11764][ruby-core:71800] + +Thu Dec 10 11:33:34 2015 Eric Wong + + * compile.c (iseq_compile_each): reduce needless rb_str_dup + [ruby-core:72018] <5668DB6E.8000101@ruby-lang.org> + +Thu Dec 10 09:32:51 2015 Nobuyoshi Nakada + + * lib/mkmf.rb, lib/shellwords.rb: disable frozen-string-literal. + [ruby-core:72011] [Bug #11800] + +Thu Dec 10 06:33:39 2015 Eric Wong + + * marshal.c (memsize_dump_arg): remove NULL check + (memsize_load_arg): ditto + +Thu Dec 10 05:53:18 2015 Nobuyoshi Nakada + + * tool/mkconfig.rb: rbconfig must not be frozen-string-literal to + expand CONFIG hash. [ruby-core:72006] [Bug #11798] + +Thu Dec 10 05:03:51 2015 Eric Wong + + * ext/socket/ifaddr.c (ifaddr_mark): remove empty function + (ifaddr_type): pass zero to rb_data_type_t.function.dmark + +Thu Dec 10 04:49:16 2015 Eric Wong + + * proc.c (bm_free): remove, use default free + (method_data_type): use RUBY_TYPED_DEFAULT_FREE + +Thu Dec 10 02:01:41 2015 Koichi Sasada + + * compile.c (iseq_compile_each): do not add debug information + without --debug or --debug=frozen-string-literal option + because String#dup slows down with debug information. + [Feature #11725] + + * NEWS: apply about it. + + * test/ruby/test_rubyoptions.rb: catch up this fix with refactoring. + +Thu Dec 10 00:06:56 2015 Koichi Sasada + + * iseq.c: rename methods + RubyVM::InstructionSequence#to_binary_format -> #to_binary + RubyVM::InstructionSequence.from_binary_format -> .load_from_binary + RubyVM::InstructionSequence.from_binary_format_extra_data -> + .load_from_binary_extra_data + + * iseq.c: fix document of iseq.to_binary. + [Fix GH-1134] + + * sample/iseq_loader.rb: catch up this change. + + * test/lib/iseq_loader_checker.rb: ditto. + +Wed Dec 9 17:02:03 2015 Nobuyoshi Nakada + + * regparse.h (SET_NTYPE): get rid of breaking strict aliasing. + patch by Zarko Todorovski in [ruby-core:71953]. [Bug #11790] + +Wed Dec 9 16:10:37 2015 Koichi Sasada + + * vm.c (rb_vm_cref_in_context): Module#define_method in non-class + expression should be public. + [Bug #11754] + + * test/ruby/test_method.rb: add a test. + +Wed Dec 9 14:45:27 2015 Koichi Sasada + + * gc.c (gc_mark_stacked_objects): fix typo. + reported by XIE Zhibang. [Bug #11763] + +Wed Dec 9 14:37:51 2015 Shugo Maeda + + * doc/syntax/refinements.rdoc: remove outdated description. + +Wed Dec 9 09:58:09 2015 Koichi Sasada + + * ext/**/*.c (*_memsize): same as r52986 for extensions. + +Wed Dec 9 09:46:19 2015 SHIBATA Hiroshi + + * .gitignore: ignored ISeq binary format. + +Wed Dec 9 09:34:41 2015 Koichi Sasada + + * *.c (*_memsize): do not check ptr. + NULL checking is finished Before call of memsize functions. + See r52979. + +Wed Dec 9 09:25:29 2015 SHIBATA Hiroshi + + * test/net/smtp/test_response.rb: use Test::Unit. We should use Test::Unit + without rubygems and rdoc. + +Wed Dec 9 06:26:23 2015 Colin Kelley + + * lib/uri/generic.rb: enable frozen_string_literal + (split_userinfo): remove explicit .freeze for string literals + (check_path): ditto + (query): ditto + (fragment): ditto + (to_s): ditto + [ruby-core:71910] [Bug #11759] + +Wed Dec 9 06:25:47 2015 Eric Wong + + * test/uri/test_generic.rb (to_s): new test + [ruby-core:71820] + +Wed Dec 9 02:18:52 2015 Koichi Sasada + + * compile.c (ibf_dump_memsize): should check NULL. + +Wed Dec 9 01:46:35 2015 NAKAMURA Usaku + + * string.c (rb_str_init): now accepts new option parameter `encoding'. + [Feature #11785] + +Wed Dec 9 00:52:37 2015 Nobuyoshi Nakada + + * file.c (rb_stat_wr, rb_stat_ww): call get_stat only once and + reduce checking struct. patch by Yuki Kurihara in + [ruby-core:71949]. [Misc #11789] + +Wed Dec 9 00:24:33 2015 Koichi Sasada + + * compile.c (iseq_ibf_dump): dump extra data just string length. + + * sample/iseq_loader.rb: add using + RubyVM::InstructionSequence.from_binary_format_extra_data method + (commented out). + +Mon Dec 9 00:21:19 2015 Yuki Nishijima + + * gems/bundled_gems: Upgrade the did_you_mean gem to 1.0.0.rc1 + +Wed Dec 9 00:17:49 2015 Koichi Sasada + + * compile.c (ibf_load_setup): cast to int. + +Wed Dec 9 00:13:09 2015 Koichi Sasada + + * compile.c (ibf_setup_load): rename to ibf_load_setup(). + + * compile.c (iseq_load_setup): check binary format. + +Tue Dec 8 23:30:07 2015 Naohisa Goto + + * test/io/console/test_io_console.rb (run_pty): Avoid waiting twice + for a process. Fix Errno::ECHILD in TestIO_Console#test_close and + TestIO_Console#test_sync. + +Tue Dec 8 23:05:47 2015 Koichi Sasada + + * compile.c (iseq_ibf_dump): fix for clang type checker. + +Tue Dec 8 23:04:02 2015 Koichi Sasada + + * iseq.c (iseq_s_load): fix mysterious bug. + +Tue Dec 8 22:31:58 2015 Koichi Sasada + + * introduce new ISeq binary format serializer/de-serializer + and a pre-compilation/runtime loader sample. + [Feature #11788] + + * iseq.c: add new methods: + * RubyVM::InstructionSequence#to_binary_format(extra_data = nil) + * RubyVM::InstructionSequence.from_binary_format(binary) + * RubyVM::InstructionSequence.from_binary_format_extra_data(binary) + + * compile.c: implement body of this new feature. + + * load.c (rb_load_internal0), iseq.c (rb_iseq_load_iseq): + call RubyVM::InstructionSequence.load_iseq(fname) with + loading script name if this method is defined. + + We can return any ISeq object as a result value. + Otherwise loading will be continue as usual. + + This interface is not matured and is not extensible. + So that we don't guarantee the future compatibility of this method. + Basically, you shouldn't use this method. + + * iseq.h: move ISEQ_MAJOR/MINOR_VERSION (and some definitions) + from iseq.c. + + * encoding.c (rb_data_is_encoding), internal.h: added. + + * vm_core.h: add several supports for lazy load. + * add USE_LAZY_LOAD macro to specify enable or disable of + this feature. + * add several fields to rb_iseq_t. + * introduce new macro rb_iseq_check(). + + * insns.def: some check for lazy loading feature. + + * vm_insnhelper.c: ditto. + + * proc.c: ditto. + + * vm.c: ditto. + + * test/lib/iseq_loader_checker.rb: enabled iff suitable + environment variables are provided. + + * test/runner.rb: enable lib/iseq_loader_checker.rb. + + * sample/iseq_loader.rb: add sample compiler and loader. + + $ ruby sample/iseq_loader.rb [dir] + + will compile all ruby scripts in [dir]. + With default setting, this compile creates *.rb.yarb files + in same directory of target .rb scripts. + + $ ruby -r sample/iseq_loader.rb [app] + + will run with enable to load compiled binary data. + +Tue Dec 8 21:21:16 2015 Kazuhiro NISHIYAMA + + * NEWS: mention about Enumerator::Lazy#grep_v. + [ruby-core:71845] [Feature #11773] + +Tue Dec 8 17:36:36 2015 Martin Duerst + + * string.c: removed unused variable + +Tue Dec 8 16:23:40 2015 Nobuyoshi Nakada + + * enumerator.c (lazy_grep_v): add Enumerator::Lazy#grep_v as well + as Enumerable, to enumerate lazily. + [ruby-core:71845] [Feature #11773] + +Tue Dec 8 14:27:07 2015 Nobuyoshi Nakada + + * error.c (name_err_local_variables): new method + NameError#local_variables for internal use only. + [Feature #11777] + +Tue Dec 8 14:20:38 2015 Nobuyoshi Nakada + + * marshal.c (w_objivar): skip internal instance variables in + T_OBJECT too. + +Tue Dec 8 12:58:04 2015 Naohisa Goto + + * test/io/console/test_io_console.rb (test_getpass): s.getpass + should be tested. Narrow ensure block. This reverts r52911. + [Bug #11780] [ruby-dev:49412] + +Tue Dec 8 10:40:21 2015 Eric Wong + + * benchmark/bm_vm2_case_lit.rb: new benchmark + * compile.c (case_when_optimizable_literal): add nil/true/false + * insns.def (opt_case_dispatch): ditto + * vm.c (vm_redefinition_check_flag): ditto + * vm.c (vm_init_redefined_flag): ditto + * vm_core.h: ditto + * object.c (InitVM_Object): define === explicitly for nil/true/false + * test/ruby/test_case.rb (test_deoptimize_nil): new test + * test/ruby/test_optimization.rb (test_opt_case_dispatch): update + (test_eqq): new test + [ruby-core:71923] [Feature #11769] + Original patch by Aaron Patterson + +Tue Dec 8 10:19:02 2015 Jake Worth + + * lib/optparse.rb: fix double word typo in the document. + [Misc #10608] [Fix GH-1126] + +Tue Dec 8 09:03:19 2015 Nobuyoshi Nakada + + * ext/date/date_core.c (d_lite_lshift): should check the argument + before negation. + +Tue Dec 8 08:56:16 2015 Eric Wong + + * insns.def (opt_case_dispatch): check Float#=== redefinition + * test/ruby/test_optimization.rb (test_opt_case_dispatch): new + [ruby-core:71920] [Bug #11784] + +Tue Dec 8 03:56:05 2015 Koichi Sasada + + * test/lib/iseq_loader_checker.rb: add iseq dumper/loader checker. + If you enable this checker (remove `#' in test/runner.rb), + you can see comparison results between an original iseq disassembed + result and dumped and loaded iseq disassembed result. + + There are several bugs around there, because of inexact stack depth + calculation. Now, I leave these bugs because they are not critical + and difficult to solve completely. + + * test/runner.rb: require test/lib/iseq_loader_checker.rb but + disabled at default (commented out). + +Tue Dec 8 03:45:47 2015 Eric Wong + + * doc/extension.rdoc: warn about kwargs performance in C + [Feature #11339] [ci skip] + +Tue Dec 8 03:44:51 2015 Koichi Sasada + + * iseq.c (iseq_load): disable peephole optimization option + because apply it multiple times change the sequence. + (iseq != peephole_optimize(load(iseq.to_a))) + +Tue Dec 8 03:43:21 2015 Koichi Sasada + + * compile.c (rb_iseq_build_from_ary): do not allocate table + if table_size is 0. + +Tue Dec 8 03:30:34 2015 Eric Wong + + * ext/socket/unixsocket.c (unix_send_io): document args + (unix_recv_io): ditto + * test/socket/test_unix.rb (test_fd_passing_class_mode): added + +Tue Dec 08 02:21:35 2015 Koichi Sasada + + * iseq.c (iseq_translate): at the end of constructing an iseq, + call RubyVM::InstructionSequence.translate(iseq) if this method + is defined. If the return value is also an object of + RubyVM::InstructionSequence, then use it instead of created one. + + For example, this method is useful to test iseq dumper/loader + such as RubyVM::InstructionSequence#to_a and rb_iseq_load(). + + Because this method is for such internal experimental usage, + the interface is not matured. For example, this interface has + no extensibility. Two or more translators can not run + simultaneously. + + So that we don't guarantee future compatibility of this method. + Basically, do not use this method. + +Tue Dec 8 01:57:13 2015 Aaron Patterson + + * ext/psych/*: update psych to 2.0.16 + * test/psych/*: ditto + +Mon Dec 7 23:45:20 2015 Koichi Sasada + + * string.c: introduce String#+@ and String#-@ to control + String mutability. + [Feature #11782] + +Mon Dec 7 23:39:49 2015 Ben Miller + + * parse.y: add heredoc <<~ syntax. [Feature #9098] + +Mon Dec 7 23:06:16 2015 Kazuhiro NISHIYAMA + + * prelude.rb (IO#read_nonblock): [DOC] add missing options to + call-seq. [ruby-core:71627] [Bug #11730] + +Mon Dec 7 15:50:50 2015 Martin Duerst + + * .gitignore: added cygruby*.def for Cygwin + +Sun Dec 6 19:52:31 2015 Eric Wong + + * include/ruby/intern.h (rb_autoload): deprecate + * internal.h (rb_autoload_str): declare + * load.c (rb_mod_autoload): use rb_autoload_str + * variable.c (rb_autoload): become compatibility wrapper + (rb_autoload_str): hoisted out from old rb_autoload + [ruby-core:71369] [Feature #11664] + +Sun Dec 6 18:25:22 2015 NAKAMURA Usaku + + * test/webrick/test_cgi.rb (TestWEBrickCGI#test_cgi): gave up the test + of binary path info test on Windows because the test had passed + occasionally as the comment said. + +Sun Dec 6 15:25:06 2015 Nobuyoshi Nakada + + * ext/io/console/console.c (console_getpass): add IO#getpass + method. + +Sun Dec 6 08:39:05 2015 SHIBATA Hiroshi + + * ext/json/json.gemspec: bump version to json 1.8.3. CRuby already contained + upstream changes. + + https://github.com/ruby/ruby/commit/4d059bf9f5f10f3d3088de49fc87e5555db7770d + https://github.com/flori/json/commit/d4c99de78905d96c3f301f48b2c789943bb3f098 + + * ext/json/lib/json/version.rb: ditto. + +Sat Dec 5 17:48:25 2015 Lars Kanis + + * tool/fake.rb: Fix cross build when srcdir is an absolute path. + + * Makefile.in: PREP dependency is needed when cross build too, not + "-r$(arch)-fake" to be used before created. [Fix GH-1125] + +Sat Dec 5 17:26:24 2015 Nobuyoshi Nakada + + * hash.c (env_str_new, env_path_str_new): make default string + UTF-8 for the case conversion is not possible. [Bug #8822] + + * hash.c (get_env_cstr): convert non-ASCII string to UTF-8 string. + + * hash.c (ruby_setenv): use wide char version to put environment + variable to deal with non-ASCII value. + +Sat Dec 5 09:56:50 2015 Nobuyoshi Nakada + + * ruby_atomic.h (ATOMIC_CAS): old value to be swapped should be + same as the destination. immediate value may need type + promotion. + + * ruby_atomic.h (ATOMIC_SIZE_CAS): fix the argument order of + InterlockedCompareExchange64. new value and then old value is + the last. + +Sat Dec 5 09:23:34 2015 Nobuyoshi Nakada + + * random.c (fill_random_seed): fix the size to be filled, not the + size of element, but the whole size of array. + +Sat Dec 5 06:03:54 2015 Eric Wong + + * vm.c (ruby_vm_verbose_ptr): make static + (ruby_vm_debug_ptr): ditto + +Sat Dec 5 00:56:29 2015 Naohisa Goto + + * include/ruby/ruby.h (RB_OBJ_TAINT): follow-up of r52881. + Turn into void expression not to use unexpected result. + Fix "operands have incompatible types" error with + Oracle Solaris Studio 12.x on Solaris. + +Fri Dec 4 19:52:52 2015 Martin Duerst + + * enc/iso_8859_13.c: Added three missing lower/upper-case + character pairs (from Kimihito Matsui) + +Fri Dec 4 18:57:57 2015 Martin Duerst + + * enc/iso_8859_4.c: Added missing lower/upper-case character + pair (U+014A and U+014B, LATIN CAPITAL/SMALL LETTER ENG) + (from Kimihito Matsui) + +Fri Dec 4 16:48:19 2015 Nobuyoshi Nakada + + * string.c (rb_obj_as_string): fstring should not be infected. + re-apply r52872 and fix a typo. + TODO: other frozen strings also may not be. + +Fri Dec 4 15:21:45 2015 SHIBATA Hiroshi + + * lib/rubygems: Update to RubyGems 2.5.0+ HEAD(fdab4c4). + this version includes #1396, #1397, #1398, #1399 + * test/rubygems: ditto. + +Fri Dec 4 11:22:40 2015 Nobuyoshi Nakada + + * thread.c (rb_thread_setname): name must be ascii-compatible, as + pthread APIs do not accept legacy wide char strings. + +Thu Dec 3 15:39:21 2015 SHIBATA Hiroshi + + * lib/scanf.rb: fixed double words typo. + [ci skip][fix GH-1123] Patch by @jwworth + +Thu Dec 3 15:37:56 2015 SHIBATA Hiroshi + + * test/ruby/test_mixed_unicode_escapes.rb: fixed typo. + [fix GH-1122] Patch by @davydovanton + * test/ruby/test_object.rb: ditto. + * test/socket/test_tcp.rb: ditto. + +Thu Dec 3 15:33:08 2015 Nobuyoshi Nakada + + * sprintf.c (rb_str_format): fix wrong shifting position in + Rational conversion when not at the beginning of the result. + [ruby-core:71806] [Bug #11766] + +Thu Dec 3 14:22:16 2015 Nobuyoshi Nakada + + * range.c (range_to_s): should be infected by the receiver. + str2 infects by appending. [ruby-core:71811] [Bug #11767] + +Thu Dec 3 11:57:12 2015 Nobuyoshi Nakada + + * configure.in: separate SET_CURRENT_THREAD_NAME, which can set + the name of current thread only, and SET_ANOTHER_THREAD_NAME, + which can set the name of other threads. + + * thread.c (rb_thread_setname): use SET_ANOTHER_THREAD_NAME. OS X + is not possible to set another thread name. + + * thread_pthread.c (native_set_thread_name, thread_timer): use + SET_CURRENT_THREAD_NAME. + +Wed Dec 02 22:57:46 2015 Koichi Sasada + + * vm_core.h, iseq.h: remove rb_iseq_t::variable_body. + Fields in rb_iseq_t::variable_body are contained by + rb_iseq_t::body::mark_ary (hidden Array object). + + Index 0 to 2 of mark_ary are reserved by these objects. + + * iseq.c: catch up this fix. + + * compile.c (rb_iseq_original_iseq): trivial rewrite. + +Wed Dec 2 17:19:02 2015 Koichi Sasada + + * iseq.h: introduce ISEQ_ORIGINAL_ISEQ() and + ISEQ_ORIGINAL_ISEQ_ALLOC() macro. + + * compile.c: use them to access original iseq buffer. + + * iseq.c: ditto. + + * vm_core.h: rename iseq field to support this fix. + +Wed Dec 2 17:10:32 2015 Koichi Sasada + + * iseq.h: introduce ISEQ_FLIP_CNT_INCREMENT() macro. + + * compile.c (iseq_compile_each): use it. + + * vm_core.h: rename flip_cnt field to support this fix. + +Wed Dec 2 17:05:15 2015 Koichi Sasada + + * iseq.h: introduce ISEQ_COVERAGE() and ISEQ_COVERAGE_SET() macro. + + * compile.c: use them. + + * iseq.c: ditto. + + * iseq.c (rb_iseq_coverage): added. + + * thread.c (update_coverage): use rb_iseq_coverage(). + + * vm_core.h: rename coverage field name to support this fix. + +Wed Dec 2 17:00:54 2015 Nobuyoshi Nakada + + * encoding.c (enc_name, rb_enc_name_list_i, rb_enc_aliases_enc_i): + make fstring instead of making each copies. + +Wed Dec 2 16:32:08 2015 Koichi Sasada + + * iseq.h: introduce ISEQ_COMPILE_DATA() macro. + + * compile.c, iseq.c: use ISEQ_COMPILE_DATA(). + + * vm_core.h: rename compile_data field to support this fix. + +Wed Dec 2 16:27:19 2015 Nobuyoshi Nakada + + * encoding.c (enc_m_loader): defer finding encoding object not to + be infected by marshal source. [ruby-core:71793] [Bug #11760] + + * marshal.c (r_object0): enable compatible loader on USERDEF + class. the loader function is called with the class itself, + instead of an allocated object, and the loaded data. + + * marshal.c (compat_allocator_table): initialize + compat_allocator_tbl on demand. + + * object.c (rb_undefined_alloc): extract from rb_obj_alloc. + +Wed Dec 2 15:12:43 2015 SHIBATA Hiroshi + + * configure.in: Fixed double negative comments. + [Bug #11698][ruby-core:71506] + +Wed Dec 2 14:55:01 2015 yui-knk + + * test/ruby/test_string.rb: removed non executing tests. + [Misc #11757][ruby-dev:49397] + +Wed Dec 2 11:23:06 2015 SHIBATA Hiroshi + + * lib/csv.rb: enable frozen_string_literal. + [fix GH-1116] Patch by @marshall-lee + +Wed Dec 2 10:36:25 2015 SHIBATA Hiroshi + + * ext/bigdecimal/bigdecimal.c: Fix double word typo. + [ci skip][fix GH-1120] Patch by @jwworth + +Wed Dec 2 07:43:51 2015 Eric Wong + + * ext/openssl/ossl_ssl.c (mSSLExtConfig): make static + (eSSLError): ditto + (ID_callback_state): ditto + (ossl_ssl_ex_vcb_idx): ditto + (ossl_ssl_ex_store_p): ditto + (ossl_ssl_ex_ptr_idx): ditto + * ext/openssl/ossl_ssl.h: remove extern declarations for + mSSLExtConfig and eSSLError + +Wed Dec 2 07:41:08 2015 Eric Wong + + * missing/explicit_bzero.c (explicit_bzero): fixup r52839 + for compilers with "weak" attribute + +Wed Dec 2 06:47:25 2015 KOSAKI Motohiro + + * missing/explicit_bzero.c: add ruby_explicit_bzero_hook_unused + for preventing optimization. Inspired from OpenBSD. + +Tue Dec 1 23:36:39 2015 Nobuyoshi Nakada + + * thread.c (rb_thread_setname): allow to reset thread name. + +Tue Dec 1 23:14:04 2015 Nobuyoshi Nakada + + * thread.c (rb_thread_setname): check the argument if valid + string. [ruby-core:71774] [Bug #11756] + +Tue Dec 1 17:13:41 2015 Nobuyoshi Nakada + + * string.c (rb_string_value_cstr): should not raise on frozen + string. + +Tue Dec 1 09:35:29 2015 KOSAKI Motohiro + + * missing/explicit_bzero.c: add a few comment. + +Tue Dec 1 09:31:19 2015 KOSAKI Motohiro + + * missing/explicit_bzero.c: add disabling optimization on gcc. + +Tue Dec 1 07:50:33 2015 Eric Wong + + * missing/explicit_bzero.c: new file. define explicit_bzero. + Fixup r52806 + +Thu Oct 22 12:54:43 2015 KOSAKI Motohiro + + * thread_pthread.c (register_ubf_list): renamed from + add_signal_thread_list. + * thread_pthread.c (unregister_ubf_list): renamed + from remove_signal_thread_list. + * thread_pthread.c (ubf_wakeup_all_threads): renamed from + ping_signal_thread_list. + * thread_pthread.c (ubf_wakeup_thread): renamed from + ubf_select_each. + * thread_pthread.c (ubf_threads_empty): renamed from + check_signal_thread_list(). + * thread_pthread.c (ubf_list_lock): renamed from + signal_thread_list_lock. + + * thread_pthread.c (register_ubf_list): large simplification + by using ccan/list.h. + bonus: removed malloc() and exit(EXIT_FAILURE). + * thread_pthread.c (unregister_ubf_list): ditto. + * thread_pthread.c (ubf_threads_empty): ditto. + * thread_pthread.c (ubf_wakeup_all_threads): ditto. + + * thread_pthread.c (print_signal_list): removed. + +Thu Oct 22 08:03:49 2015 KOSAKI Motohiro + + * test/ruby/test_rand.rb (TestRand#test_default_seed): add + srand case. + +Thu Oct 22 06:33:38 2015 KOSAKI Motohiro + + * random.c (InitVM_Random): move Random::DEFAULT initialization + bits to Init_Random_default. + * random.c (Init_Random_default): renamed from Init_RandomSeed2. + * random.c (Init_RandomSeedCore): renamed from Init_RandomSeed. + +Thu Oct 22 06:20:48 2015 KOSAKI Motohiro + + * random.c (Init_RandomSeed): move all Random::DEFAULT + construction bits to Init_RandomSeed2. Random::DEFAULT + and Ruby internal hashes are no longer shared their seed. + * random.c (Init_RandomSeed2): ditto. And, kill evil + rb_obj_reveal() stuff. + + * random.c (init_hashseed): add MT argument. + * random.c: (init_siphash): ditto. + + * test/ruby/test_rand.rb (TestRand#test_default_seed): new + test for Random::DEFAULT::seed. + +Thu Oct 22 05:23:48 2015 KOSAKI Motohiro + + * random.c (init_hashseed, init_siphash): extract initialize + functions. + +Thu Oct 22 01:01:34 2015 KOSAKI Motohiro + + * configure.in: sort AC_CHECK_HEADERS() by alphabetical order. + +Thu Oct 22 00:19:07 2015 KOSAKI Motohiro + + * random.c (init_randomseed): remove "initial" argument. It never + be used from outside of this function. + +Thu Oct 22 00:12:33 2015 KOSAKI Motohiro + + * lib/securerandom.rb (SecureRandom::gen_random): use /dev/urandom + for initialize OpenSSL's rand. + +Wed Oct 21 12:10:04 2015 KOSAKI Motohiro + + * ext/openssl/ossl_rand.c (ossl_rand_bytes): RAND_bytes could + be return -1 as an error. Therefore, added error handling. + * ext/openssl/ossl_pkey_dsa.c (dsa_generate): ditto. + +Wed Oct 21 09:04:09 2015 KOSAKI Motohiro + + * include/ruby/util.h: remove a warning suppression C4723 + (potential divide by zero) for VisualC++. It's meaningless. + Before r26197, there is ruby_div0() in this place and it + actually made divide by zero. But now it's just garbage. + +Wed Oct 21 08:23:36 2015 KOSAKI Motohiro + + * random.c: random_raw_seed don't use GRND_NONBLOCK. GRND_NONBLOCK + mean the result might not have an enough cryptic strength and + easy predictable. That's no good for SecureRandom. + +Sun Oct 18 17:26:53 2015 KOSAKI Motohiro + + * common.mk: add a rule for explicit_bzero.o. + * configure.in: detect explicit_bzero and memset_s. + * include/ruby/missing.h: add explicit_bzero. + * random.c (init_randomseed): use explicit_bzero() instead of + memset(). memset could be eliminated by compiler optimization. + +Mon Nov 30 18:46:44 2015 NARUSE, Yui + + * ext/readline/extconf.rb: call dir_config("libedit") + if --enable-libedit is specified. [Bug #11751] + patched by John Hein + +Mon Nov 30 08:44:29 2015 Eric Wong + + * variable.c: remove spurious #define for globals + [ruby-core:71735] [Feature #11749] + +Sun Nov 29 09:13:03 2015 Conor Landry + + * NEWS: [DOC] Various grammar corrections and clarifications to + increase readability. [Fix GH-1115] + +Sat Nov 28 19:33:55 2015 Nobuyoshi Nakada + + * parse.y (parser_here_document): store dispatched result of + on_tstring_content at the last fragment of a here document. + +Fri Nov 27 19:19:44 2015 NARUSE, Yui + + * lib/net/http.rb (connect): detect closed connection and reconnect + If the server closes a keep-alive http connection, the client socket + reaches EOF. To avoid an EOFError, detect the closed connection and + reconnect. + Added test to ensure HTTP#post succeeds even if the + keep-alive-connection has been closed by the server. + by Kristian Hanekamp + https://github.com/ruby/ruby/pull/1089 fix GH-1089 + +Thu Nov 26 21:36:40 2015 Nobuyoshi Nakada + + * compile.c (iseq_peephole_optimize): enable tail call + optimization for specialized indexers. + + * compile.c (iseq_compile_each): blockiseq should be NULL, but not + Qnil. + +Thu Nov 26 17:22:53 2015 NARUSE, Yui + + * regcomp.c, regenc.c, regexec.c, regint.h, enc/unicode.c: + Merge Onigmo 58fa099ed1a34367de67fb3d06dd48d076839692 + + https://github.com/k-takata/Onigmo/pull/52 + +Thu Nov 26 09:50:02 2015 yui-knk + + * test/coverage/test_coverage.rb: Added test-case for Coverage.restart. + [Misc #11732][ruby-dev:49379] + +Thu Nov 26 09:46:36 2015 yui-knk + + * test/coverage/test_coverage.rb: Added test-case for Coverage.peek_result + without Coverage.start. [Misc #11726][ruby-core:71622] + +Thu Nov 26 07:22:55 2015 Eric Wong + + * test/openssl/test_ssl.rb (test_copy_stream): new test + +Wed Nov 25 21:23:39 2015 Nobuyoshi Nakada + + * io.c (copy_stream_body): try to_io conversion before read, + readpartial, and write methods. [ruby-dev:49008] [Bug #11199] + +Wed Nov 25 10:55:21 2015 Shugo Maeda + + * io.c (argf_getpartial): should not resize str if the second + argument is not given. + [ruby-core:71668] [Bug #11738] + +Tue Nov 24 23:56:25 2015 Naohisa Goto + + * configure.in: On Solaris, it is safe to define _LARGEFILE_SOURCE + when _FILE_OFFSET_BITS=64 is defined (= when 32-bit compile). + +Tue Nov 24 10:00:10 2015 SHIBATA Hiroshi + + * lib/rubygems/installer.rb: Fix two double-word typos. + [ci skip][fix GH-1108] Patch by @jwworth + +Tue Nov 24 09:17:02 2015 Alexander von Gluck IV + + * beos: Drop support for BeOS now that Haiku is stable. + [Fix GH-1112] + +Tue Nov 24 09:16:35 2015 Nobuyoshi Nakada + + * internal.h (rb_gc_for_fd): move to export, as referred by + ext/socket. + +Tue Nov 24 09:04:29 2015 David Rodriguez + + * file.c: [DOC] add a missing period to File docs, to terminate + the sentence and separate from the next sentence. [Fix GH-1111] + +Tue Nov 24 08:30:06 2015 JuanitoFatas + + * NEWS: Fix the issue number of `Struct#dig`, which should be + [Feature #11688]. [Fix GH-1110] + +Tue Nov 24 07:56:54 2015 Eric Wong + + * ext/socket/init.c (rsock_s_accept): handle ENOMEM + +Tue Nov 24 07:50:15 2015 Eric Wong + + * dir.c (dir_initialize): use rb_gc_for_fd for ENOMEM + * ext/socket/init.c (rsock_socket): ditto + * ext/socket/socket.c (rsock_socketpair): ditto + * internal.h (rb_gc_for_fd): prototype + * io.c (rb_gc_for_fd): remove static + [ruby-core:71623] [Feature #11727] + +Tue Nov 24 06:46:27 2015 Eric Wong + + * io.c (rb_gc_for_fd): new helper function + (ruby_dup): use rb_gc_for_fd + (rb_sysopen): ditto + (rb_fdopen): ditto + (rb_pipe): ditto + [ruby-core:71623] [Feature #11727] + +Tue Nov 24 05:13:35 2015 Eric Wong + + * ext/fiddle/function.c (struct nogvl_ffi_call_args): + new struct for GVL release + (nogvl_ffi_call): new function + (function_call): adjust for GVL release + [ruby-core:71642] [Feature #11607] + * ext/fiddle/closure.c (struct callback_args): + new struct for GVL acquire + (with_gvl_callback): adjusted original callback function + (callback): wrapper for conditional GVL acquire + * ext/fiddle/depend: add dependencies + * ext/fiddle/extconf.rb: include top_srcdir for internal.h + * internal.h (ruby_thread_has_gvl_p): expose for fiddle + * vm_core.h (ruby_thread_has_gvl_p): moved to internal.h + * test/fiddle/test_function.rb (test_nogvl_poll): new test + +Mon Nov 23 19:53:12 2015 Naohisa Goto + + * configure.in: On Solaris, with gcc, "-std=iso9899:1999" + in $ansi_options is often also needed in CPPFLAGS, + because some feature definitions vary depending on such + standards options. + +Mon Nov 23 12:54:39 2015 Hamish Morrison + + * configure.in: remove obsolete workarounds for Haiku. + + * dln.c, file.c, io.c: remove obsolete Haiku workarounds. + + * thread_pthread.c: add stack bounds detection for Haiku. + + * signal.c: get stack pointer from signal context on Haiku. + [ruby-core:67923] [Bug #10811] [Fix GH-1109] + +Mon Nov 23 11:44:11 2015 SHIBATA Hiroshi + + * gems/bundled_gems: bump version to minitest-5.8.3 + +Mon Nov 23 08:55:00 2015 SHIBATA Hiroshi + + * ChangeLog: fix wrong reference for r52714 + +Sun Nov 22 22:23:37 2015 Rei Odaira + + * gc.c (rb_raw_obj_info): fix compile errors when USE_RGENGC + is 0. + +Sun Nov 22 21:58:09 2015 Naohisa Goto + + * lib/cmath.rb: methods which has suffix '!' are now deprecated. + Re-apply r52469 made by Kazuki Tanaka, with fixing bug about + mathn.rb compatibility. [ruby-core:68528] [Feature #10974] + +Sun Nov 22 19:36:51 2015 SHIBATA Hiroshi + + * ext/openssl/ossl.c: fix brew command for installation of openssl. + [ci skip][fix GH-1107] Patch by @arthurnn + +Sun Nov 22 17:59:50 2015 Naohisa Goto + + * configure.in: On Solaris, add -D_XOPEN_SOURCE=n only when both + AC_TRY_CPP and AC_TRY_COMPILE pass, because some options + (e.g. -std=iso9899:1999) are not set when running C preprocessor + or building ext. + +Sun Nov 22 16:53:34 2015 Nobuyoshi Nakada + + * compile.c (iseq_peephole_optimize): remove unreachable code + chunk after jump/leave. + + * parse.y: move dead code elimination of logical operation to + compile.c. not to warn logical operation of literal constants. + +Sun Nov 22 16:37:10 2015 Nobuyoshi Nakada + + * compile.c (iseq_peephole_optimize): eliminate always/never + branches after a literal object and when the value is used after + the branch. + +Sun Nov 22 01:23:43 2015 Naohisa Goto + + * configure.in: Add -D_XOPEN_SOURCE=500 (or 600 or 700) on Solaris + if available, mainly for enabling some features in sockets. + +Sun Nov 22 00:17:22 2015 Naohisa Goto + + * test/socket/test_socket.rb (test/socket/test_socket.rb): skip + the test when Socket::SO_TIMESTAMP is not defined. Fix error + on Solaris 10. [Bug #11728] [ruby-dev:49377] + +Sat Nov 21 18:57:28 2015 Nobuyoshi Nakada + + * ruby.c (need_argument): move frozen-string-literal-debug option + from --enable to --debug. [Feature #11725] + + * ruby.c (proc_options): fix pointer overrun. do not advance argv + until it is valid. + +Sat Nov 21 13:59:09 2015 NARUSE, Yui + + * ext/digest/sha1/extconf.rb: OpenSSL's struct name for SHA1 is + SHA_CTX. http://openssl.org/docs/man0.9.8/crypto/SHA1.html + +Sat Nov 21 13:31:52 2015 NARUSE, Yui + + * ext/digest/*/*.[ch]: include ruby.h before digest.h to avoid + including ext/digest/extconf.h. [Bug #3231] + https://msdn.microsoft.com/library/36k2cdd4.aspx + + * ext/digest/*/extconf.rb: remove ext/digest from include search path + to avoid confusion of cl.exe. + + * ext/digest/*/*.[ch]: explicitly specify def.h's path. + +Sat Nov 21 13:05:16 2015 NARUSE, Yui + + * ext/openssl/ossl.h: LibreSSL doesn't have and need e_os2.h. + +Sat Nov 21 09:18:10 2015 Koichi Sasada + + * thread_sync.c: reduce the specification of Queue#close. + * Queue#close accepts no arguments. + * deq'ing on closed queue returns nil, always. + [Feature #10600] + + * test/thread/test_queue.rb: catch up this fix. + +Sat Nov 21 08:44:21 2015 Koichi Sasada + + * compile.c (iseq_compile_each): add debug information to NODE_STR + strings as default. + [Feature #11725] + + * insns.def (freezestring): add new instruction to support adding + debug information for dynamically constructed strings. + + * compile.c (iseq_compile_each): support adding debug information + for NODE_DSTR with freezestring instruction. + + * error.c (rb_error_frozen): change the debug information ID name + id_debug_created_info and this field should have a 2 element array + containing path and line information. + + * defs/id.def: ditto. + + * test/ruby/test_rubyoptions.rb: catch up this fix. + + * test/ruby/test_iseq.rb: now frozen strings are not same. + +Sat Nov 21 04:34:16 2015 Nobuyoshi Nakada + + * symbol.c (rb_str_intern): should not freeze the receiver itself + unexpectedly. [ruby-core:71611] [Bug #11721] + +Fri Nov 20 23:15:18 2015 Naotoshi Seo + + * lib/logger.rb: expose logger mutex + [fix GH-541] Patch by @arthurnn + +Fri Nov 20 15:05:28 2015 SHIBATA Hiroshi + + * Added missing reference of GitHub + +Fri Nov 20 14:57:01 2015 Trevor Rowe + + * lib/net/http.rb: Fixed regression for Net::HTTP::PUT with "Expect-100" + header. [fix GH-949] + * test/net/http/test_http.rb: added test. + +Fri Nov 20 14:39:56 2015 SHIBATA Hiroshi + + * lib/net/http.rb: set hostname before call ossl_ssl_set_session. + [Bug #11401][ruby-core:70152][fix GH-964] Patch by @mkarnebeek + +Fri Nov 20 12:53:19 2015 SHIBATA Hiroshi + + * array.c: clarify docs for take_while/drop_while samples. + [ci skip][fix GH-1028] Patch by @leriksen + +Fri Nov 20 12:48:04 2015 SHIBATA Hiroshi + + * ext/socket/socket.c: remove mention of :UNIX in getaddrinfo(). + It's typically not a support option. + [ci skip][fix GH-990] Patch by @eam + +Fri Nov 20 12:44:06 2015 SHIBATA Hiroshi + + * lib/rss/syndication.rb: Add nodoc marker for #validate_sy_updatePeriod. + [ci skip][fix GH-1105] Patch by @davydovanton + +Fri Nov 20 09:05:21 2015 Koichi Sasada + + * vm.c (rb_vm_cref_replace_with_duplicated_cref): added. + + CREFs should not be shared by methods between `using'. + [Bug #11247] + + * vm_insnhelper.c (vm_cref_replace_with_duplicated_cref): ditto. + + * vm.c (vm_cref_dup): should copy refinements correctly. + + * eval.c: use rb_vm_cref_replace_with_duplicated_cref(). + + * eval_intern.h: add a decl. of + rb_vm_cref_replace_with_duplicated_cref(). + + * vm_eval.c (eval_string_with_cref): do not need to pass + scope's CREF because VM can find out CREF from stack frames. + + * test/ruby/test_refinement.rb: add a test. + +Fri Nov 20 06:52:53 2015 Eric Wong + + * .gitattributes: new file for git users + [ruby-core:71578] [Feature #11713] + +Thu Nov 19 22:35:31 2015 Tanaka Akira + + * ext/socket/ancdata.c: Check buffer full and ignore MSG_TRUNC flag. + buffer fullness is more robust to detect the message is too big for + the buffer. + AIX 7.1 recvmsg doesn't set MSG_TRUNC for rflags when MSG_PEEK is + given. + +Thu Nov 19 21:55:11 2015 Koichi Sasada + + * gc.c (gc_start): force to invoke GC by GC.start + even if it is GC.disable'd. + + * test/ruby/test_gc.rb: add a test. + +Thu Nov 19 20:08:59 2015 Koichi Sasada + + * gc.c: trivial performance improvements. + + name modified + vm1_gc_short_lived* 1.015 + vm1_gc_short_with_complex_long* 1.014 + vm1_gc_short_with_long* 1.000 + vm1_gc_short_with_symbol* 1.016 + vm1_gc_wb_ary* 1.002 + vm1_gc_wb_ary_promoted* 0.996 + vm1_gc_wb_obj* 1.045 + vm1_gc_wb_obj_promoted* 1.014 + vm3_gc 1.021 + + * gc.c (gc_writebarrier_generational): reorder parameters to optimize + register passing function call. + + * gc.c (gc_writebarrier_incremental): ditto. + + * gc.c (rb_gc_writebarrier): remove LIKELY(). + LIKELY() seems to move related functions not better places. + +Thu Nov 19 19:45:05 2015 Nobuyoshi Nakada + + * ruby.c (ruby_prog_init): [DOC] ARGV does not contain the name of + the executable. [ruby-core:71561] [Bug #11711] + +Thu Nov 19 15:53:21 2015 Koichi Sasada + + * signal.c: should also clear ruby_disable_gc. + [Bug #11692] + +Thu Nov 19 15:31:45 2015 Koichi Sasada + + * compile.c (iseq_compile_each): T_IMEMO/iseq objects should be + wrap with ISeq wrappers. [Bug #11676] + +Thu Nov 19 15:16:12 2015 SHIBATA Hiroshi + + * lib/rubygems: Update to RubyGems 2.5.0+ HEAD(c6b4946). + this version includes #1114, #1314, #1322, #1375, #1383, #1387 + * test/rubygems: ditto. + +Thu Nov 19 14:14:37 2015 NAKAMURA Usaku + + * win32/win32.c (finish_overlapped_socket): return value of this + function should be only 0 or SOCKET_ERROR. + +Thu Nov 19 14:12:12 2015 Nobuyoshi Nakada + + * compile.c (iseq_tailcall_optimize): apply tail call optimization + before conversion to specialized instructions. when looking + back from `leave` instruction, `send` instructions have been + translated already. + +Thu Nov 19 13:57:58 2015 NAKAMURA Usaku + + * win32/win32.c (finish_overlapped_socket): ignore EMSGSIZE when input, + because POSIX platforms just do so. fixes test errors revealed by + r52647. + +Thu Nov 19 02:52:30 2015 NAKAMURA Usaku + + * ext/socket/ancdata.c (bsock_recvmsg_internal): stretch the buffer size + only when vmaxdatlen is nil. + +Thu Nov 19 02:20:11 2015 Tanaka Akira + + * test/socket/test_socket.rb (test_udp_recvmsg_truncation): rflags is + nil on Solaris 10 which have no HAVE_STRUCT_MSGHDR_MSG_CONTROL. + Reported by Naohisa Goto. [ruby-core:71557] [Bug #11709] + +Thu Nov 19 01:48:05 2015 NAKAMURA Usaku + + * configure.in: add -static-libgcc for mingw automatically if available. + +Thu Nov 19 00:53:26 2015 NAKAMURA Usaku + + * ext/extmk.rb (--extflags): new option to pass EXTLDFLAGS to children, + especially exts.mk. + + * common.mk (EXTMK_ARGS): use above option. + +Wed Nov 18 22:50:43 2015 Koichi Sasada + + * vm_method.c (rb_class_clear_method_cache): should clear all + RCLASS_CALLABLE_M_TBLs of all sub-classes (T_ICLASS). + + RCLASS_CALLABLE_M_TBL() caches complemented method entries. + It should be cleared when the modules are cleared. + On previous version clears only for direct children. + It is enough for normal modules because corresponding T_ICLASSes + are direct children. + + However, refinements create complex data structure. So that + we need to clear all children (and descendants). + [ruby-core:71423] [Bug #11672] + + * vm_method.c (rb_clear_method_cache_by_class): rb_mKernel + doesn't call rb_class_clear_method_cache, so that + clear child T_ICLASSes. + + * test/ruby/test_refinement.rb: enable disabled test. + +Wed Nov 18 21:09:08 2015 Koichi Sasada + + * vm_method.c (prepare_callable_method_entry): use + RCLASS_CALLABLE_M_TBL() instead of accessing a filed directly. + +Wed Nov 18 17:08:18 2015 Koichi Sasada + + * method.h: introduce the following field and macros. + + * rb_method_definition_t::complemented_count to count shared method + entries because of complemented method entries and separate from + alias_count. + + Shared `def' only by complemented method entries should not prevent + method re-definition warning. + + * METHOD_ENTRY_COMPLEMENTED(me) to represent complemented method entry. + * METHOD_ENTRY_COMPLEMENTED_SET(me) to check it as complemented me. + + * vm_insnhelper.c (aliased_callable_method_entry): should also + check me->def->complemented_count. + + * vm_method.c (method_definition_addref_complement): add to count + complemented method entries number. + + * vm_method.c (rb_method_definition_release): release `def' iff + alias_count == 0 and complemented_count == 0. + + * test/ruby/test_module.rb: add a test. + +Wed Nov 18 17:06:19 2015 Koichi Sasada + + * gc.c (rb_raw_obj_info): fix trivial issues. + + * support SPECIAL_CONSTs. + * fix IMEMO/ment outputs. + +Wed Nov 18 11:32:15 2015 Nobuyoshi Nakada + + * compile.c (iseq_peephole_optimize): eliminate always/never + branches after a literal object. this sequence typically + appears by defined? operator for a method call on a local + variable. + +Wed Nov 18 10:33:06 2015 NAKAMURA Usaku + + * ext/socket/ancdata.c (bsock_recvmsg_internal): stretch the buffer size + when EMSGSIZE occurs on non HAVE_STRUCT_MSGHDR_MSG_CONTROL platforms + (such as, Windows). fixes a test error revealed by r52625. + +Wed Nov 18 10:12:36 2015 Eric Wong + + * ext/socket/ancdata.c (bsock_recvmsg_internal): use 4096 as + default size to match pre-r52610, which also maps to a common + page size. + +Wed Nov 18 10:05:25 2015 Shugo Maeda + + * doc/syntax/refinements.rdoc: update documentation to reflect + recent changes. + [ci skip] [ruby-core:71466] [Misc #11681] Patch by James Adam + +Wed Nov 18 09:50:21 2015 Naotoshi Seo + + * test/logger/test_logdevice.rb: Fix tests of logger to make it work on + windows (windows can not remove opened file) [Bug #11702] + +Wed Nov 18 06:59:52 2015 Eric Wong + + * ext/socket/ancdata.c (bsock_recvmsg_internal): grow buffer + on unspecified maxdatlen + [ruby-core:71517] [Bug #11701] + * ext/socket/lib/socket.rb (Socket#recvmsg): nil default for dlen + (Socket#recvmsg_nonblock): ditto + * test/socket/test_socket.rb (test_recvmsg_udp_no_arg): new test + +Tue Nov 17 19:50:06 2015 NAKAMURA Usaku + + * win32/win32.c (fstat): declare for mingw. + +Tue Nov 17 19:02:59 2015 NAKAMURA Usaku + + * configure.in (BASERUBY): use Kernel#print instead of Kernel#p because + the baseruby may output CRLF as end of line. + +Tue Nov 17 15:34:34 2015 Martin Duerst + * NEWS: Added update from Unicode 7.0.0 to 8.0.0 [ci skip] + +Tue Nov 17 15:30:30 2015 Martin Duerst + * enc/unicode/casefold.h, name2ctype.h: Change Unicode + Version for regular expressions from 7.0.0 to + 8.0.0 (with help from Kimihito Matsui) [Feature #11563] + +Tue Nov 17 14:36:00 2015 Kenichi Kamiya + + * lib/ostruct.rb (dig): Implement OpenStruct#dig + [Feature #11688] + +Tue Nov 17 14:04:14 2015 NAKAMURA Usaku + + * ext/socket/lib/socket.rb (Socket#recvmsg{,_nonblock}): default values + of clen must be nil. + + * ext/socket/ancdata.c (bsock_sendmsg_internal): handle nil of clen. + fixes test errors introduced at r52602. + +Tue Nov 17 13:43:46 2015 NAKAMURA Usaku + + * ext/socket/lib/socket.rb: UNIXSocket is not always exists. fixes + install error on Windows, introduced at r52601. + +Tue Nov 17 11:27:23 2015 Eric Wong + + * ext/socket/lib/socket.rb (Socket#recvfrom_nonblock): + UDPSocket#recvfrom_nonblock): + update doc for `exception: false` and destination buffer + [ruby-core:69542] [Feature #11229] + [ruby-core:69543] [Feature #11242] + +Tue Nov 17 11:25:05 2015 Eric Turner + + * array.c (rb_ary_dig), hash.c (rb_hash_dig): [DOC] Update + comments describing dig methods. [Fix GH-1103] + + * struct.c (rb_struct_dig): [DOC] add rdoc. + +Tue Nov 17 11:22:22 2015 Martin Duerst + * NEWS: Small grammatical fix [ci skip] + +Tue Nov 17 10:12:30 2015 Eric Wong + + * ext/socket/lib/socket.rb (Socket.accept_loop): avoid exceptions + (Socket.udp_server_recv): ditto + +Tue Nov 17 09:59:00 2015 Eric Wong + + * ext/socket/ancdata.c (bsock_sendmsg_internal): avoid arg parsing + [ruby-core:71439] [Feature #11339] + (rsock_bsock_sendmsg): make private, adjust for above + (rsock_bsock_sendmsg_nonblock): ditto + * ext/socket/rubysocket.h: adjust prototypes + (rsock_opt_false_p): remove + * ext/socket/basicsocket.c (rsock_init_basicsocket): + define private methods + * ext/socket/lib/socket.rb (BasicSocket#sendmsg): new wrapper + (BasicSocket#sendmsg_nonblock): ditto + +Tue Nov 17 09:45:18 2015 Eric Wong + + * ext/socket/ancdata.c (bsock_recvmsg_internal): avoid arg parsing + (rsock_bsock_recvmsg): adjust for above change + (rsock_bsock_recvmsg_nonblock): ditto + [ruby-core:71439] [Feature #11339] + * ext/socket/rubysocket.h: adjust prototypes for above + * ext/socket/basicsocket.c (rsock_init_basicsocket): + adjust private methods + * ext/socket/lib/socket.rb (BasicSocket#recvmsg): wrapper method + (BasicSocket#recvmsg_nonblock): ditto + +Tue Nov 17 08:36:34 2015 Eric Wong + + * ext/socket/init.c (rsock_s_accept_nonblock): avoid parsing args + [ruby-core:71439] [Feature #11339] + * ext/socket/rubysocket.h: adjust prototype + * ext/socket/socket.c (sock_accept_nonblock): make private + * ext/socket/tcpserver.c (tcp_accept_nonblock): ditto + * ext/socket/unixserver.c (unix_accept_nonblock): ditto + * ext/socket/lib/socket.rb (Socket#accept_nonblock): + implement as wrapper, move RDoc + (TCPServer#accept_nonblock): ditto + (UNIXServer#accept_nonblock): ditto + +Tue Nov 17 08:25:57 2015 Eric Wong + + * ext/socket/socket.c (sock_connect_nonblock): + avoid argument parsing in C. + [ruby-core:71439] [Feature #11339] + * ext/socket/lib/socket.rb (Socket#connect_nonblock): + new wrapper for private method, move RDoc + +Tue Nov 17 08:16:09 2015 Eric Wong + + * ext/socket/init.c (rsock_s_recvfrom_nonblock): + avoid arg parsing with C API + [ruby-core:71439] [Feature #11339] + * ext/socket/basicsocket.c (bsock_recv_nonblock): + adjust for above change, make private + * ext/socket/socket.c (sock_recvfrom_nonblock): ditto + * ext/socket/udpsocket.c (udp_recvfrom_nonblock): ditto + * ext/socket/lib/socket.rb (BasicSocket#recv_nonblock): + new wrapper for private method, move RDoc + (Socket#recvfrom_nonblock): ditto + (UDPSocket#recvfrom_nonblock): ditto + +Mon Nov 16 21:27:54 2015 Naohisa Goto + + * test/dtrace/helper.rb (Dtrace::TestCase#trap_probe): dtrace buffer + size is set as 8m on Solaris (default 4m). [Bug #11697] + +Mon Nov 16 20:03:14 2015 Naotoshi Seo + + * lib/logger.rb: Add Logger#reopen + +Mon Nov 16 18:21:52 2015 Nobuyoshi Nakada + + * object.c (rb_obj_dig): dig in nested structs too. + + * struct.c (rb_struct_dig): new method Struct#dig. + [Feature #11688] + +Mon Nov 16 17:41:33 2015 Nobuyoshi Nakada + + * compile.c (iseq_peephole_optimize): optimize tail calls on aref + and aset specialized instructions. + + * compile.c (iseq_peephole_optimize): optimize replaced leave + instruction copied to jump instruction too. + +Mon Nov 16 16:39:38 2015 Akinori MUSHA + + * lib/set.rb: Enable frozen_string_literal. + + * lib/set.rb: Move << out of the begin block that ensures pop. + +Mon Nov 16 16:28:30 2015 Akinori MUSHA + + * lib/set.rb (Hash#flatten!, #add?, #delete?, #collect!, #reject!, + #select!, #^, #classify): Micro-optimize some methods for + performance and readability. + +Mon Nov 16 16:17:58 2015 SHIBATA Hiroshi + + * ChangeLog: fixed accidentally commit. + +Mon Nov 16 16:10:51 2015 SHIBATA Hiroshi + + * mkconfig.rb: Add some high-level documentation. + [ci skip][fix GH-1081] Patch by @ulfalizer + +Mon Nov 16 15:59:14 2015 yui-knk + + * proc.c: Add call-seq of `Method#super_method` + [ci skip][fix GH-1094] + +Mon Nov 16 15:58:39 2015 Kenichi Kamiya + + * struct.c: Standardize a method signature of Struct#[]=. + [ci skip][fix GH-1095] + +Mon Nov 16 15:42:36 2015 Akinori MUSHA + + * lib/set.rb (#>=, #>, #<=, #<): Make use of Hash#>=, #>, #<, and + #<= when comparing against an instance of the same kind. + +Mon Nov 16 15:37:11 2015 Naotoshi Seo + + * lib/logger.rb: Support symbol and string log level setting + +Mon Nov 16 15:33:11 2015 SHIBATA Hiroshi + + * tool/rbinstall.rb: fix wrong permission for gem specification without + zlib runtime. [Bug #11685][ruby-dev:49343] + +Mon Nov 16 12:11:11 2015 SHIBATA Hiroshi + + * lib/webrick/httpauth/basicauth.rb: fix a typo. + [ci skip][fix GH-1099] Patch by @jwworth + * lib/webrick/httpauth/digestauth.rb: ditto. + +Sun Nov 15 18:28:43 2015 Kenichi Kamiya + + * vm_method.c (set_method_visibility): should fail if the receiver + is frozen. [ruby-core:71489] [Bug #11687] + +Sat Nov 14 22:15:07 2015 Tanaka Akira + + * ext/socket/lib/socket.rb: Specify frozen_string_literal: true. + +Sat Nov 14 21:44:56 2015 Tanaka Akira + + * lib/time.rb: Use "<<" to reduce string allocation. + +Sat Nov 14 17:45:49 2015 Tanaka Akira + + * lib/tsort.rb: Specify frozen_string_literal: true. + +Sat Nov 14 17:25:15 2015 Tanaka Akira + + * lib/resolv-replace.rb: Specify frozen_string_literal: true. + +Sat Nov 14 17:00:13 2015 Tanaka Akira + + * lib/time.rb: Specify frozen_string_literal: true. + +Sat Nov 14 16:43:02 2015 Tanaka Akira + + * lib/open3.rb: Specify frozen_string_literal: true. + +Sat Nov 14 05:04:09 2015 Koichi Sasada + + * node.h: remove old comments. + +Sat Nov 14 04:55:36 2015 Koichi Sasada + + * refactoring CREF related code. + + * eval_intern.h: remove unused setter functions. + CREF_CLASS_SET() + CREF_NEXT_SET() + CREF_SCOPE_VISI_COPY() + + * eval_intern.h: rename flags: + * NODE_FL_CREF_PUSHED_BY_EVAL_ -> CREF_FL_PUSHED_BY_EVAL + * NODE_FL_CREF_OMOD_SHARED_ -> CREF_FL_OMOD_SHARED + and use IMEMO_FL_USER1/2. + + * vm.c (vm_cref_new): accept push_by_eval parameter. + + * vm.c (vm_cref_new_use_prev): added for rb_vm_rewrite_cref(). + + * vm_insnhelper.c (vm_cref_push): accept pushed_by_eval parameter. + + * vm_insnhelper.h: remove unused macros: + COPY_CREF_OMOD() and COPY_CREF(). + + * vm_eval.c, insns.def: catch up this fix. + +Sat Nov 14 02:58:03 2015 Koichi Sasada + + * vm.c (vm_define_method): refactoring. + * get CREF in this function. + * cbase is no longer needed (CREF_CLASS(cref) is enough). + + * compile.c: RubyVM::FrozenCore.define_method only accept 2 args. + +Sat Nov 14 02:34:43 2015 Koichi Sasada + + * vm.c (vm_define_method): do not use current CREF immediately, + but check CREF in environment or methods. Methods defined in methods + should be public. + [Bug #11571] + + * vm_method.c (rb_scope_module_func_check): check CREF in env or me. + if CREF is contained by `me', then return FALSE. + + * test/ruby/test_method.rb: add a test. + +Sat Nov 14 02:19:16 2015 Koichi Sasada + + * method.h: constify rb_cref_t::scope_visi; + + * eval_intern.h (CREF_SCOPE_VISI_COPY): catch up this fix. + + * vm_method.c: ditto. + +Sat Nov 14 01:53:52 2015 Naohisa Goto + + * pack.c (pack_unpack, AVOID_CC_BUG): Very ugly workaround for + optimization bug of Oracle Solaris Studio 12.4 on Solaris + with -xO4 optimization option. [Bug #11684] + +Fri Nov 13 23:00:23 2015 Hiroshi Shirosaki + + * configure.in: unset LD_PRELOAD on mingw. msys2 child processes + crash at make test-all with LD_PRELOAD. + [ruby-core:71461] [Bug #11680] + +Fri Nov 13 14:00:43 2015 Zachary Scott + + * ext/openssl/ossl_pkey.c: Merge ruby/openssl@b9ea8ef [Bug #10735] + +Fri Nov 13 13:09:16 2015 Zachary Scott + + * ext/openssl/ossl_ssl.c: Merge ruby/openssl@81e1a30 + + * test/openssl/test_ssl.rb: ditto + +Fri Nov 13 13:05:37 2015 Nobuyoshi Nakada + + * prelude.rb (Thread.exclusive): warn as deprecated. + +Fri Nov 13 10:36:39 2015 Victor Nawothnig + + * parse.y (new_unless): optimize constant condition for `unless` + as well as `if`. [Fix GH-1092] + +Fri Nov 13 10:08:41 2015 SHIBATA Hiroshi + + * ext/psych/psych.gemspec: bump version to 2.0.15 + +Thu Nov 12 18:44:26 2015 Nobuyoshi Nakada + + * parse.y (parser_magic_comment): should match exactly. + [ruby-core:71460] [Bug #11679] + +Thu Nov 12 16:16:20 2015 Nobuyoshi Nakada + + * template/prelude.c.tmpl: enable tail call optimization. + +Thu Nov 12 14:17:01 2015 Nobuyoshi Nakada + + * parse.y (parser_yylex): ANDDOT at the head of the line denote + line continuation from previous one to support fluent interface, + as well as single dot. + +Thu Nov 12 13:49:50 2015 SHIBATA Hiroshi + + * lib/rubygems: Update to RubyGems 2.5.0+ HEAD(db78980). + this version includes #1367 , #1373 , #1375 + * test/rubygems: ditto. + +Thu Nov 12 10:53:41 2015 Eric Wong + + * benchmark/bm_io_nonblock_noex2.rb: new benchmark based + on bm_io_nonblock_noex.rb + * io.c (io_read_nonblock): move documentation to prelude.rb + (io_write_nonblock): ditto + (Init_io): private, internal methods for prelude.rb use only + * prelude.rb (IO#read_nonblock): wrapper + documentation + (IO#write_nonblock): ditto + [ruby-core:71439] [Feature #11339] + +Wed Nov 11 18:30:28 2015 Nobuyoshi Nakada + + * sprintf.c (rb_str_format): look up the key, then get default + value and raise KeyError if the returned value is nil. + [ruby-dev:49338] [Ruby trunk - Bug #11677] + +Wed Nov 11 17:38:24 2015 Nobuyoshi Nakada + + * vm_eval.c (local_var_list_add): skip internal local variable + name by its type but not if it has a name. internal local + variable names are just unique per frame, not globally. + [ruby-core:71437] [Bug #11674] + +Wed Nov 11 14:14:33 2015 SHIBATA Hiroshi + + * transcode.c: fix a typo + [ci skip][fix GH-1091] Patch by @jwworth + +Wed Nov 11 11:58:38 2015 Shugo Maeda + + * lib/net/ftp.rb (initialize): Connections are in passive mode per + default now. The default mode can be changed by + Net::FTP.default_passive=. + [ruby-core:71146] [Feature #11612] + + * lib/net/ftp.rb (default_passive=, default_passive): new methods. + +Wed Nov 11 09:03:12 2015 Nobuyoshi Nakada + + * sprintf.c (rb_str_format): respect default value of a hash. no + longer raises KeyError unless the default value of the hash is + nil. [ruby-core:71354] [Bug #11661] + +Tue Nov 10 20:35:12 2015 Tanaka Akira + + * lib/open-uri.rb: Remove indicator for "frozen_string_literal: true". + + * lib/pp.rb: Ditto. + + * lib/prettyprint.rb: Ditto. + + * lib/resolv.rb: Ditto. + + * lib/securerandom.rb: Ditto. + + * lib/tmpdir.rb: Ditto. + + * lib/unicode_normalize/tables.rb: Ditto. + + * test/net/ftp/test_buffered_socket.rb: Ditto. + + * test/net/ftp/test_mlsx_entry.rb: Ditto. + + * test/open-uri/test_open-uri.rb: Ditto. + + * test/open-uri/test_ssl.rb: Ditto. + + * test/pathname/test_pathname.rb: Ditto. + + * test/test_pp.rb: Ditto. + + * test/test_prettyprint.rb: Ditto. + + * tool/transcode-tblgen.rb: Ditto. + + * ext/pathname/lib/pathname.rb: Ditto. + +Tue Nov 10 18:42:24 2015 Aleksandrs Ledovskis + + * defs/id.def, parse.y: Switch internal token name to reflect + current form of safe-call operator. [Fix GH-1090] + +Tue Nov 10 18:25:56 2015 Nobuyoshi Nakada + + * hash.c (rb_hash_to_proc): use rb_func_proc_new to make light + weight proc. [Feature #11653] + +Tue Nov 10 18:23:35 2015 Nobuyoshi Nakada + + * proc.c (cfunc_proc_t): add room for me. + + * proc.c (cfunc_proc_new): generalise for cfunc proc without env. + + * proc.c (rb_func_proc_new, rb_func_lambda_new): new functions to + make proc/lambda without env from cfunc. + +Tue Nov 10 17:32:35 2015 Naohisa Goto + + * bootstraptest/test_fork.rb ([ruby-dev:37934]): :NPROC (RLIMIT_NPROC) + is not supported on some platforms (e.g. Solaris 10). + +Tue Nov 10 16:57:14 2015 Nobuyoshi Nakada + + * hash.c (rb_hash_to_proc): new method Hash#to_proc. + [Feature #11653] + +Tue Nov 10 14:34:09 2015 NARUSE, Yui + + * time.c (rb_time_timespec_new): swap utc and localtime + to generate gmt flag by INT_MAX - gmtoff. + +Tue Nov 10 14:01:59 2015 Nobuyoshi Nakada + + * hash.c (rb_hash_{le,lt,ge,gt}): new methods, Hash#<=, Hash#<, + Hash#>=, Hash#>, to test if all elements of a hash are also + included in another hash, and vice versa. + [ruby-core:68561] [Feature #10984] + +Tue Nov 10 11:25:29 2015 NARUSE, Yui + + * time.c (rb_timespec_now): added. [Feature #11558] + + * time.c (rb_time_timespec_new): added. [Feature #11558] + +Tue Nov 10 06:17:17 2015 Eric Wong + + * variable.c (rb_autoload_load): allow recursive calls + [ruby-core:71345] [Bug #11658] + * test/ruby/test_autoload.rb (test_autoload_while_autoloading): + new test by: Hiroshi Shirosaki + [ruby-core:71390] + +Tue Nov 10 00:36:46 2015 Tanaka Akira + + * lib/resolv.rb (Resolv::DNS::Message::MessageEncoder#put_labels): + Prevent overflow of pointer to labels. + Patch by Hannes Georg. [ruby-core:71248] [Bug #11632] + +Tue Nov 10 00:25:41 2015 Kazuki Tsujimoto + + * gems/bundled_gems: update to power_assert 0.2.6. + +Mon Nov 9 21:48:17 2015 Nobuyoshi Nakada + + * vm_eval.c (rb_check_funcall_default): split from + rb_check_funcall to return the given fallback value. + + * object.c (rb_obj_dig): use rb_check_funcall_default so that tail + call optimization will be possible. [Feature #11643] + +Mon Nov 9 21:27:23 2015 Nobuyoshi Nakada + + * array.c (rb_ary_dig): new method Array#dig. + + * hash.c (rb_hash_dig): new method Hash#dig. + + * object.c (rb_obj_dig): dig in nested arrays/hashes. + [Feature #11643] + +Mon Nov 9 18:00:47 2015 Yuki Nishijima + + * gems/bundled_gems: Upgrade the did_you_mean gem to 1.0.0.beta3 + +Mon Nov 9 17:38:14 2015 SHIBATA Hiroshi + + * test/runner.rb: use official repository for coverage tool. + * Makefile.in: ditto. + * common.mk: ditto. + * .gitignore: ignored third party repositories. + +Mon Nov 9 17:29:09 2015 Shugo Maeda + + * compile.c (iseq_compile_each): Dynamic string literals should be + frozen. + [ruby-core:57574] [Feature #8976] + +Mon Nov 9 15:56:07 2015 SHIBATA Hiroshi + + * common.mk: Use ruby organization url for simplecov repository. + +Sun Nov 8 16:24:09 2015 Masaki Matsushita + + * NEWS: describe addition of File::TMPFILE + +Sun Nov 8 15:19:17 2015 Masaki Matsushita + + * file.c: Add O_TMPFILE. + +Sun Nov 8 14:24:43 2015 windwiny + + * method.h (METHOD_ENTRY_{VISI,BASIC,FLAGS}_SET): suppress + shift-op-parentheses warnings. [Fix GH-1082] + +Sun Nov 8 14:01:22 2015 SHIBATA Hiroshi + + * ext/psych/psych_emitter.c: backport 5bd7744 from tenderlove/psych. + support backward compatibility of Ruby 2.0 + +Sun Nov 8 10:55:10 2015 Anton Davydov + + * io.c (rb_io_gets_m): Update IO#gets doc for characters more than + 1 byte. [Fix GH-1085] + +Sun Nov 8 10:37:58 2015 SHIBATA Hiroshi + + * lib/uri/ftp.rb: fix a typo. + [fix GH-1084][ci skip] Patch by @windwiny + +Sun Nov 8 08:10:31 2015 Koichi Sasada + + * vm_trace.c (exec_hooks_precheck): check need_clean everytime + to clean-up unused hooks. + + * vm_trace.c (list->need_clean): use as boolean value. + +Sun Nov 8 01:31:27 2015 NARUSE, Yui + + * lib/net/http.rb (Net::HTTP#initialize): + default value of Net::HTTP#open_timeout is now 60 (was nil). + +Sat Nov 7 12:18:05 2015 Eric Wong + + * string.c (id_to_s): remove redundant variable + (rb_obj_as_string): trade id_to_s for idTo_s + (rb_str_equal): replace rb_intern(...) with pre-defined ID + (rb_str_cmp_m): ditto + (rb_str_match): ditto + (str_upto_each): ditto + (rb_str_sum): ditto + (Init_String): remove id_to_s initialization + +Sat Nov 7 11:40:05 2015 Eric Wong + + * thread.c (rb_cThreadShield): make static + +Sat Nov 7 09:51:38 2015 Koichi Sasada + + * vm_trace.c (rb_threadptr_exec_event_hooks_orig): + maintain trace_running counter on internal events. + + This patch is made by Takashi Kokubun . + [Bug #11603] https://github.com/ruby/ruby/pull/1059 + +Sat Nov 7 03:32:27 2015 Koichi Sasada + + * include/ruby/ruby.h (RSTRUCT_PTR): need a close parenthesis. + +Sat Nov 7 01:32:06 2015 Naohisa Goto + + * dir.c (dir_fileno, dirfd): support of Dir#fileno on Solaris 10. + Solaris 10 does not have dirfd, but the file descriptor of a + directory is stored in the d_fd or dd_fd member in the DIR struct. + Note that Solaris 11 has dirfd(3C). + + * configure.in: checks for DIR.d_fd and DIR.dd_fd on Solaris 10. + +Fri Nov 6 23:13:53 2015 Kazuki Tanaka + + * array.c: clarifies Array#reject! documentation. + [fix GH-894][ci skip] Patch by @GxSplinter + +Fri Nov 6 20:18:25 2015 SHIBATA Hiroshi + + * test/runner.rb: extracted test helper. + * test/lib/zombie_hunter.rb: ditto. + +Fri Nov 6 18:07:47 2015 Naohisa Goto + + * include/ruby/ruby.h (rb_array_const_ptr, rb_struct_const_ptr): + Suppress pointer type mismatch warnings occurred with old version + of Fujitsu C Compiler (fcc) on Solaris 10. The warnings cause + failure of TestMkmf::TestConvertible. [Bug #11644] [ruby-dev:49326] + * include/ruby/ruby.h (FIX_CONST_VALUE_PTR): macro for the above, + only effective with fcc. + +Fri Nov 6 12:39:21 2015 Nobuyoshi Nakada + + * defs/id.def (token_ops), parse.y (parser_yylex): change DOTQ + from ".?" to "&.". [ruby-core:71363] [Feature #11537] + +Fri Nov 6 09:01:26 2015 Nobuyoshi Nakada + + * parse.y (kwd_append): fix segv after invalid keyword argument, + preceding keyword list is NULL when syntax error is there. + [ruby-core:71356] [Bug #11663] + +Fri Nov 6 06:59:37 2015 Eric Wong + + * test/ruby/test_autoload: hoist out ruby_impl_require + +Thu Nov 5 13:03:58 2015 Nobuyoshi Nakada + + * defs/id.def (token_ops): gather associations between IDs, + operators, and parser tokens. + +Thu Nov 5 10:17:17 2015 Nobuyoshi Nakada + + * ext/socket/socket.c (make_addrinfo): use RARRAY_ASET for + write-barrier. + + * ext/tk/tcltklib.c ({call,eval,invoke}_queue_handler): ditto. + + * ext/tk/tkutil/tkutil.c (ary2list, ary2list2): ditto. + +Thu Nov 5 10:09:12 2015 Nobuyoshi Nakada + + * ext/**/*.c: prefer RARRAY_AREF to indexing RARRAY_CONST_PTR. + pointed out by hanmac. + https://github.com/ruby/ruby/commit/3553a86#commitcomment-14187670 + +Wed Nov 4 17:33:24 2015 SHIBATA Hiroshi + + * lib/debug.rb: Add documentation for #thread_list_all. + [Misc #11580][ci skip] + +Wed Nov 4 15:45:59 2015 SHIBATA Hiroshi + + * class.c: fix documentation for rb_define_class{_id}_under. + [fix GH-991][ci skip] Patch by @kachick + +Wed Nov 4 15:40:45 2015 SHIBATA Hiroshi + + * method.h: fix typo. Patch by @davydovanton + [fix GH-1076][ci skip] + +Wed Nov 4 15:39:32 2015 SHIBATA Hiroshi + + * hash.c: use correct grammer. Patch by @tveastman + [fix GH-1079][ci skip] + +Wed Nov 4 11:38:23 2015 Jake Worth + + * process.c (proc_getsid): [DOC] Fix double word 'for' and typo. + [Fix GH-1080] + +Wed Nov 4 06:01:52 2015 Eric Wong + + * include/ruby/ruby.h (struct RObject): hide iv_index_tbl type + [ruby-core:71306] [Feature #11647] + +Tue Nov 3 06:48:58 2015 Eric Wong + + * variable.c (find_class_path): remove cast for rb_class_ivar_set + (rb_ivar_set): ditto + (rb_cvar_set): ditto + +Tue Nov 3 06:18:21 2015 Eric Wong + + * variable.c (rb_global_tbl): convert to id_table + +Tue Nov 3 01:58:46 2015 Naohisa Goto + + * parse.y (NO_QCALL): fix type mismatch of operands that causes + compile error with Oracle Solaris Studio on Solaris. + [Bug #11645] [ruby-dev:49327] + +Sun Nov 1 17:14:36 2015 Koichi Sasada + + * id_table.c (mix_id_table_insert): do not touch list during + list->hash transition because GC can run during transition. + +Sun Nov 1 11:07:31 2015 Eric Wong + + * iseq.c (iseq_memsize): account for rb_call_cache entries + +Sun Nov 1 09:12:10 2015 Nobuyoshi Nakada + + * parse.y (parser_yylex): ':' separated by a comment and a newline + is not valid as symbol. + +Sat Oct 31 20:15:48 2015 SHIBATA Hiroshi + + * test/openssl/test_pair.rb: skipped tests if openssl doesn't support + ECDH cipher. + +Sat Oct 31 14:58:10 2015 Nobuyoshi Nakada + + * man/ruby.1 (SYNOPSIS): remove extraneous space for -F option as + it does not allow spaces before its argument. + [ruby-core:71283] [Bug #11641] + +Sat Oct 31 14:58:01 2015 Nobuyoshi Nakada + + * man/ruby.1 (SYNOPSIS): remove extraneous space for -F option as + it does not allow spaces before its argument. + [ruby-core:71283] [Bug #11641] + +Sat Oct 31 10:22:49 2015 yui-knk + + * eval_error.c (undef_mesg_for): fix typo. Before this commit + `ArgumentError: malformed format string - %$` was raised when + `NameError#message` is called. [ruby-core:71282] [Bug #11640] + [Fix GH-1077] + +Fri Oct 30 21:12:45 2015 Kazuki Tsujimoto + + * gems/bundled_gems: update to power_assert 0.2.5. + +Fri Oct 30 19:29:52 2015 Koichi Sasada + + * gc.c (newobj_slowpath): do not need to use flags hack (commit miss). + +Fri Oct 30 19:08:48 2015 Koichi Sasada + + * gc.c (heap_get_freeobj_from_next_freepage): not so UNLIKELY. + +Fri Oct 30 18:09:51 2015 Koichi Sasada + + * gc.c (newobj_slowpath): reduce 1 parameter to use only registers + for performance. + + On my laptop, 'N.times{x = []}' (where N = 29_000_000) is + 1.86 sec -> 1.74 sec. + +Fri Oct 30 12:53:21 2015 yui-knk + + * test/ruby/test_call.rb: added test for safe navigation operator. + [fix GH-1066] + +Fri Oct 30 12:47:34 2015 SHIBATA Hiroshi + + * ChangeLog: fix wrong commit name. + +Fri Oct 30 12:36:16 2015 yui-knk + + * vm_method.c: added documentation of protected/private methods. + [fix GH-1072] + * test/ruby/test_module.rb: added testcase for method_defined? + [fix GH-1071] + +Fri Oct 30 12:06:59 2015 Nobuyoshi Nakada + + * variable.c (rb_class_ivar_set): rename as class specific ivar + setter, and st_table is no longer involved. + +Fri Oct 30 11:36:33 2015 Eric Wong + + * variable.c (generic_ivar_remove): adjust type, set valp + (rb_obj_remove_instance_variable): simplify call + * test/ruby/test_object.rb (test_remove_instance_variable): + expand for implementation details + +Fri Oct 30 10:37:56 2015 Eric Wong + + * internal.h (rb_st_insert_id_and_value): update prototype + * variable.c (rb_st_insert_id_and_value): reduce args + (find_class_path): adjust call for less args + (rb_ivar_set): ditto + (rb_cvar_set): ditto + * class.c (rb_singleton_class_attached): ditto + +Fri Oct 30 09:57:22 2015 SHIBATA Hiroshi + + * gems/bundled_gems: update latest gems. + test-unit-3.1.5 and minitest-5.8.2 + +Fri Oct 30 09:54:05 2015 SHIBATA Hiroshi + + * lib/rubygems: Update to RubyGems HEAD(60d7972). + this version contains pull requests number of #1343, #1356, #1357, #1363 + at https://github.com/rubygems/rubygems/pulls + * test/rubygems: ditto. + +Fri Oct 30 07:38:29 2015 Koichi Sasada + + * insns.def (getinlinecache/setinlinecache): compare ic->ic_cref and + current cref only when cached CREF list includes singleton class. + + Singleton classes have own namespaces, so that we need to check + cref as a key (#10943). + + However, if current CREF list does not include singleton class, + no need to check CREF because it should be same name space. + + * vm_insnhelper.c (vm_get_const_key_cref): add a function returns + CREF only when it includes singleton class. + + * vm_core.h: constify iseq_inline_cache_entry::ic_cref. + +Fri Oct 30 06:43:50 2015 Koichi Sasada + + * vm_insnhelper.c (vm_env_cref): make it inline for performance. + + * vm_insnhelper.c (rb_vm_get_cref): use NULL instead of 0. + +Fri Oct 30 06:20:40 2015 Koichi Sasada + + * insns.def: nobody set ic->ic_value.value to Qundef. + +Fri Oct 30 06:15:50 2015 Koichi Sasada + + * vm.c: add ifndef guard for VM_CHECK_MODE. + +Fri Oct 30 06:13:10 2015 Koichi Sasada + + * vm_insnhelper.c (vm_check_frame_detail): should require me for + VM_FRAME_FLAG_BMETHOD type frame. + +Thu Oct 29 18:42:30 2015 Koichi Sasada + + * gc.c (gc_mark_ptr): specify NOINLINE so that gc_mark() can return + immediately when obj is not a markable object. + +Thu Oct 29 18:05:22 2015 Koichi Sasada + + * encoding.c (rb_enc_check_str): add for performance. + This function only accepts T_STRING (and T_REGEXP). + + This patch improves performance of a tiny_segmenter benchmark + (num=2) 2.54sec -> 2.42sec on my machine. + https://github.com/chezou/TinySegmenter.jl/blob/master/benchmark/benchmark.rb + + * encoding.c: add ENC_DEBUG and ENC_ASSERT() macros. + + * internal.h: add a decl. of rb_enc_check_str(). + + * string.c (rb_str_plus): use rb_enc_check_str(). + + * string.c (rb_str_subpat_set): ditto. + +Thu Oct 29 17:16:40 2015 Koichi Sasada + + * internal.h: export rb_wb_(un)protected_newobj_of() + because some extensions include internal.h. + +Thu Oct 29 16:42:19 2015 Koichi Sasada + + * gc.c (rb_imemo_new): should not pass FL_WB_PROTECTED flag. + + * gc.c (rb_wb_protected_newobj_of): add more assertions. + + * gc.c (rb_wb_unprotected_newobj_of): ditto. + +Thu Oct 29 16:20:26 2015 Koichi Sasada + + * gc.c: introduce rb_wb_unprotected_newobj_of() and + rb_wb_protected_newobj_of(), pass the WB_PROTECTED + information explicitly. + + * internal.h: use introduced functions by NEWOBJ_OF(). + `flag' is immediate value, so that C compilers can + solve them at compile time. + + * include/ruby/ruby.h: add a comment about that. + +Thu Oct 29 14:52:03 2015 Koichi Sasada + + * gc.c: add rb_objspace::flags::has_hook to represent hook availability. + + * gc.c: add gc_event_hook_available_p(objspace) to check that flag. + + * gc.c (newobj_of): use gc_event_hook_available_p() instead of + checking gc_event_hook_needed_p(objspace, RUBY_INTERNAL_EVENT_NEWOBJ). + for performance. + + * gc.c (newobj_init): add UNLIKELY() for FL_WB_PROTECTED flag. + + * gc.c (newobj_init): change parameters order (trivial change). + +Thu Oct 29 14:45:15 2015 Nobuyoshi Nakada + + * vm_core.h (rb_thread_struct): move forward declarations before + used. + +Thu Oct 29 14:07:54 2015 Koichi Sasada + + * gc.c (gc_mark_ptr): remove debug code for #11244. + +Thu Oct 29 10:08:33 2015 Eric Wong + + * variable.c (struct autoload_state): usable as wait-queue head + (struct autoload_data_i): remove 2 words of overhead + (autoload_i_mark): remove marking for thread + (autoload_reset): adjust for struct changes + (rb_autoload): ditto + (rb_autoloading_value): ditto + (rb_autoload_load): ditto + (const_update): ditto + +Thu Oct 29 08:48:05 2015 Eric Wong + + * variable.c (struct autoload_data_i): add waitq_head + (struct autoload_state): new struct + (autoload_require): save result in autoload_state for use + in autoload_reset + (autoload_reset): wake up other waiters with open-coded + wait-queues + (rb_autoload_load): add ensure autoload_const_set happens + atomically w.r.t. autoload-triggered "require" + [ruby-core:70075] [ruby-core:71239] [Bug #11384] + +Wed Oct 29 00:39:50 2015 Naohisa Goto + + * test/rubygems/test_gem_commands_server_command.rb + (test_handle_options_port): change port from http to discard. + Solaris does not include "http 80/tcp" in its default + /etc/inet/services. AFAIK, discard (9/tcp) is older than http + and it is expected that all OS can resolve the service name. + [Bug #10004] [ruby-core:63518] + +Wed Oct 28 23:52:48 2015 Naohisa Goto + + * probes_helper.h (RUBY_DTRACE_HOOK): add RB_GC_GUARD, though paranoic. + +Wed Oct 28 15:36:11 2015 Nobuyoshi Nakada + + * error.c (rb_name_err_new): store the receiver directly. + + * error.c (name_err_receiver): return directly stored receiver. + [Feature #10881] + + * error.c (name_err_mesg_to_str): quote the name if unprintable. + + * object.c (check_setter_id): use rb_check_id to convert names. + + * variable.c (uninitialized_constant): use NameError::message to + keep the receiver of uninitialized constant. [Feature #10881] + + * error.c (rb_name_err_new): new function to create NameError + exception instance. [Feature #10881] + +Wed Oct 28 13:29:39 2015 Nobuyoshi Nakada + + * parse.y (new_attr_op_assign): fix op_assign type, which is + already an ID since r52284. [Feature #11537] + +Tue Oct 27 23:14:14 2015 Nobuyoshi Nakada + + * defs/id.def: enable anonymous IDs not to expose internal IDs for + frozen-string-literal-debug by Marshal.dump. + +Tue Oct 27 17:06:55 2015 Nobuyoshi Nakada + + * defs/id.def: move internal IDs for frozen-string-literal-debug. + +Tue Oct 27 16:41:05 2015 Nobuyoshi Nakada + + * error.c (rb_error_frozen_object): use rb_attr_get instead of + rb_ivar_get to get rid of warnings for string objects created + when frozen-string-literal-debug is disabled. + +Tue Oct 27 16:18:12 2015 Nobuyoshi Nakada + + * lib/logger.rb (Logger::Period#previous_period_end): as weekly + rotation shifts the log file on Sundays, the end date of the + previous period should be Saturdays. fix r45072. + [ruby-dev:49314] [Bug #11622] + +Tue Oct 27 16:12:37 2015 NARUSE, Yui + + * vm_dump.c (rb_print_backtrace): our addr2line doesn't work on sparc. + http://rubyci.s3.amazonaws.com/unstable11s/ruby-trunk/log/20151027T043311Z.log.html.gz + +Tue Oct 27 12:00:33 2015 Nobuyoshi Nakada + + * lib/logger.rb (Logger::Period#next_rotate_time): get rid of + adding to mday not to exceed the days of the month. + [ruby-core:71185] [Bug #11620] + +Mon Oct 26 22:43:03 2015 yui-knk + + * test/ruby/test_module.rb (test_method_defined): Add test cases + for `public/protected/private _method_defined?` + These methods accept string as argument, so add string argument + cases. [Fix GH-1067] + +Mon Oct 26 22:23:30 2015 SimonDKnight + + * lib/racc/rdoc/grammar.en.rdoc: Grammatical errors fixed. + [Fix GH-1070] + +Mon Oct 26 18:36:43 2015 Shota Fukumori (sora_h) + + * vm_method.c(rb_method_entry_make): + [DOC] [ci skip] Remove a needless space from comment + [Fixes GH-1069] Patch by @yui-knk + +Mon Oct 26 17:30:13 2015 Ryan Hosford + + * lib/fileutils.rb: rename tailing to trailing. + [Misc #11548] + +Mon Oct 26 17:11:53 2015 Nobuyoshi Nakada + + * parse.y (call_op, call_op2): fix values on ripper. [Feature #11537] + +Mon Oct 26 12:55:06 2015 Nobuyoshi Nakada + + * parse.y (call_op2): separate from call_op and also allow "::", + while dot_or_colon should not allow ".?". [Feature #11537] + +Mon Oct 26 01:03:23 2015 Rei Odaira + + * thread_pthread.c: fix compile errors when + USE_SLEEPY_TIMER_THREAD is disabled. + +Sun Oct 25 10:12:05 2015 Nobuyoshi Nakada + + * symbol.c (op_tbl): add DOTQ for ripper. [Feature #11537] + +Sat Oct 24 22:51:18 2015 SHIBATA Hiroshi + + * configure.in: fixed build failure of Haiku. + [fix GH-984] Patch by @kallisti5 + * ext/socket/getaddrinfo.c: ditto. + * ext/socket/getnameinfo.c: ditto. + * ext/socket/rubysocket.h: ditto. + +Sat Oct 24 21:16:53 2015 Nobuyoshi Nakada + + * test/fileutils/test_fileutils.rb (test_uptodate): relax error + message format. [Feature #9025], [ruby-core:71178] [Bug #11617] + +Sat Oct 24 21:06:43 2015 Shota Fukumori (sora_h) + + * lib/mkmf.rb: Revert r45640 because it may lead to link + with different libruby. [Bug #9760] + +Sat Oct 24 15:42:20 2015 Nobuyoshi Nakada + + * bootstraptest/test_method.rb: relax error message format. + + * test/ruby/test_arity.rb (err_mess): ditto. + [Feature #9025], [ruby-core:71178] [Bug #11617] + +Sat Oct 24 12:47:47 2015 Martin Duerst + + * vm_insnhelper.c: improved error message for "wrong number + of arguments", distinguishing given and expected argument + numbers clearly. [Feature #9025] + +Sat Oct 24 11:57:59 2015 Shugo Maeda + + * vm_insnhelper.c: remove the typedef redeclaration of + vm_call_handler. + +Sat Oct 24 07:29:12 2015 Nobuyoshi Nakada + + * lib/forwardable.rb (def_instance_delegator, def_single_delegator): + match backtraces against ::Forwardable in case the target class + is a subclass of BasicObject and does not include Kernel. + [ruby-core:71176] [Bug #11616] + +Sat Oct 24 04:10:13 2015 Koichi Sasada + + * iseq.c (make_compile_option_value): include frozen_string_literal* + in a made option value. + + * vm_opts.h: forgot to add OPT_FROZEN_STRING_LITERAL_DEBUG + at last commit. + +Sat Oct 24 03:58:02 2015 Koichi Sasada + + * ruby.c: introduce --enable-frozen-string-literal-debug option. + If this option is enabled, the modify error will be: + can't modify frozen String (RuntimeError) => + can't modify frozen String, created at test.rb:3 (RuntimeError) + + * iseq.h: add compile option frozen_string_literal_debug. + + * compile.c: catch up this fix. + + * error.c (rb_error_frozen): ditto. + + * iseq.c (set_compile_option_from_hash): ditto. + + * test/ruby/test_rubyoptions.rb: add a test for this fix. + +Sat Oct 24 02:02:24 2015 Koichi Sasada + + * vm_insnhelper.c: introduce new call handler for simple ISeqs. + + vm_call_iseq_setup_normal_0start() is simple, however it has + some loops/conditions depends on ISeq::param.size and + ISeq::local_size (in vm_push_frame(), inlined into this function). + + There are many simple methods which has a few parameters and local + variables. So that this patch introduces several special functions + generated in vm_call_iseq_optimized.inc by + tool/mk_call_iseq_optimized.rb. + + This script makes + vm_call_iseq_setup_normal_0start_Xparams_Ylocals() + where X is 0 to 3 and Y is 1 to 6 (as current setting). + In this case, X * Y = 24 functions are created. + + These functions creates fast method dispatch by inlining + vm_push_frame() with immediate params/locals sizes. + + On my laptop, we can have the following results. + + vm2_method* 1.083 (8.3% faster) + vm2_poly_method* 0.961 (3.4% slower) + + It shows 8.3% faster for inner loop method dispatch (hit inline + cache), but 3.4% slower when inline cache miss because we need + to find a suitable call handler. + + * common.mk: add a rule for vm_call_iseq_optimized.inc. + + * tool/mk_call_iseq_optimized.rb: added. + + * vm.c: include vm_call_iseq_optimized.inc. + +Sat Oct 24 01:58:50 2015 Koichi Sasada + + * vm_core.h: define vm_call_handler. + +Sat Oct 24 01:56:01 2015 Koichi Sasada + + * vm_core.h, vm_insnhelper.h: move definition of VMDEBUG + from vm_insnhelper.h to vm_core.h. + +Sat Oct 24 01:51:01 2015 Akinori MUSHA + + * NEWS: [DOC] In the new safe call syntax, arguments are evaluated + only if a call is made. + + * doc/syntax/calling_methods.rdoc: Fix a typo. + +Sat Oct 24 00:38:34 2015 Shugo Maeda + + * lib/forwardable (def_instance_delegator, def_single_delegator): + rescue ::Exception instead of Exception in case Exception is + defined under the target class. + [ruby-core:71175] [Ruby trunk - Bug #11615] + +Fri Oct 23 21:10:37 2015 Nobuyoshi Nakada + + * error.c (name_err_mesg_to_str): separate class names from the + receiver description. + + * vm_eval.c (make_no_method_exception, raise_method_missing): add + format specifiers for class names. + +Fri Oct 23 18:10:32 2015 SHIBATA Hiroshi + + * .gitignore: ignored environmental wrapper files. + +Fri Oct 23 17:55:29 2015 SHIBATA Hiroshi + + * lib/irb.rb: Ignored assignment of STDOUT.sync = true + when irb.rb loaded. It's affected to IDE such as Jetbrain. + [fix GH-864] Patch by @os97673 + +Fri Oct 23 16:35:08 2015 SHIBATA Hiroshi + + * lib/ipaddr.rb, test/test_ipaddr.rb: Reject invalid address contained + EOL string. Patch by @kachick [fix GH-942][Bug #11513] + +Fri Oct 23 16:03:26 2015 SHIBATA Hiroshi + + * file.c: fix indent style. [fix GH-977] + * test/ruby/test_string.rb: indent. [fix GH-975] + [ci skip] These patches are contributed from @yui-knk + +Fri Oct 23 15:46:09 2015 SHIBATA Hiroshi + + * string.c: Added method signature to include hash. It's inconsistency + with `gsub` method signature. + [ci skip][fix GH-1023] Patch by @danielevans + +Fri Oct 23 15:25:51 2015 Shugo Maeda + + * lib/net/imap.rb: remove an empty comment line and -*-. + +Fri Oct 23 15:20:02 2015 Shugo Maeda + + * lib/net/ftp.rb (gettextfile, getbinaryfile): use the safe + navigation operator. + +Fri Oct 23 13:51:33 2015 yui-knk + + * test_call.rb (test_safe_call): Add test cases for safe + navigation operator assignment. [Fix GH-1064] + Validate: + * can assign an attribute which is `nil` + * can "or assign" an attribute which is `nil` + +Fri Oct 23 11:58:21 2015 Nobuyoshi Nakada + + * compile.c (iseq_peephole_optimize): optimize lengthy safe + navigation method chain. [Feature #11537] + +Fri Oct 23 10:58:41 2015 Shugo Maeda + + * lib/matrix/eigenvalue_decomposition.rb (tridiagonalize): fix + indentation to avoid a warning when the command line option -w of + ruby is specified. + + * lib/matrix/eigenvalue_decomposition.rb (hessenberg_to_real_schur): + change the name of a block parameter to avoid a warning when the + command line option -w of ruby is specified. + +Fri Oct 23 10:49:36 2015 Nobuyoshi Nakada + + * compile.c (iseq_compile_each): support safe navigation of simple + attribute assignment. [Feature #11537] + + * parse.y (mlhs_node, lhs, attrset_gen): ditto. keep mid + non-attrset as the sign of safe navigation. + +Fri Oct 23 07:17:11 2015 Eric Wong + + * test/io/wait/test_io_wait.rb (test_wait_eof): test return value + +Fri Oct 23 00:32:02 2015 NARUSE, Yui + + * ext/openssl/ossl_ssl.c (ssl_npn_select_cb): explicitly raise error + in ext/openssl instead of OpenSSL itself because LibreSSL + silently truncate the selected protocol name by casting the length + from int to unsigned char. [Bug #11369] + Patch by Jeremy Evans + +Fri Oct 23 00:49:45 2015 Shugo Maeda + + * lib/un.rb (help): change the name of a block parameter to avoid + a warning when the command line option -w of ruby is specified. + +Fri Oct 23 00:22:20 2015 Josef Simanek + + * string.c (rb_str_tr): [DOC] Escape backslash in String#tr + documentation. [Fix GH-1063] + +Fri Oct 23 00:19:04 2015 yui-knk + + * array.c (rb_ary_collect): [DOC] Fix space of code example of + Array#map. [Fix GH-1062] + +Thu Oct 22 18:52:53 2015 Akinori MUSHA + + * vm_eval.c (rb_f_loop): When a loop is stopped by a StopIteration + exception, return what the enumerator has returned instead of + nil. [ruby-core:71133] [Feature #11498] + +Thu Oct 22 18:25:10 2015 Shugo Maeda + + * lib/net/imap.rb (idle): add a new argument timeout for keep-alive. + [ruby-core:63693] [Bug #10031] + +Thu Oct 22 15:30:08 2015 Nobuyoshi Nakada + + * compile.c (iseq_peephole_optimize): peephole optimization for + branchnil jumps. + + * compile.c (iseq_compile_each): generate save navigation operator + code. + + * insns.def (branchnil): new opcode to pop the tos and branch if + it is nil. + + * parse.y (NEW_QCALL, call_op, parser_yylex): parse token '.?'. + [Feature #11537] + +Thu Oct 22 13:16:19 2015 Guilherme Reis Campos + + * dir.c (ruby_brace_expand): glob brace expansion edge case fix. + When there are closing braces '}' before a open brace '{' it + must be ignored and considered as literal. + [ruby-core:71138] [Bug #11609] + +Thu Oct 22 13:13:49 2015 Nobuyoshi Nakada + + * io.c (argf_next_argv): check ARGV element type, and try + conversion if necessary. [ruby-core:71140] [Bug #11610] + +Thu Oct 22 11:11:16 2015 Shugo Maeda + + * test/net/ftp/test_ftp.rb: add tests for getbinaryfile and + gettextfile. + +Wed Oct 21 18:34:06 2015 Nobuyoshi Nakada + + * parse.y (parser_magic_comment): allow a sole magic comment without + indicators, neither other non-space comments. [Feature #8976] + +Tue Oct 20 12:17:56 2015 Marc-Andre Lafortune + + * lib/prime.rb: Add basic argument checking to Prime.prime? + [Bug #11606] + +Tue Oct 20 12:17:50 2015 Marc-Andre Lafortune + + * lib/prime.rb: Optimize Integer#prime? + Patch by Nick Slocum [Bug #10354] + +Tue Oct 20 08:12:47 2015 Rei Odaira + + * configure.in: pthread_getattr_np is broken on AIX. + More specifically, the stack address and size returned are + not correct. + +Tue Oct 20 05:54:46 2015 Eric Wong + + * ext/fiddle/closure.c (callback): static function + +Mon Oct 19 10:33:46 2015 Nobuyoshi Nakada + + * ext/socket/init.c (rsock_raise_socket_error): get rid of a glibc + bug. [ruby-core:71100] [Bug #11600] + +Mon Oct 19 01:26:26 2015 NAKAMURA Usaku + + * file.c (rb_file_identical_p): not necessary to compare the paths after + comparing the file indexes on Windows. designate by kosaki. + +Sun Oct 18 21:17:27 2015 Tanaka Akira + + * lib/open-uri.rb: Specify frozen_string_literal: true. + +Sun Oct 18 14:37:56 2015 KOSAKI Motohiro + + * random.c (fill_random_bytes_urandom): add a comment why using + O_NONBLOCK and O_NOCTTY. + +Sun Oct 18 13:24:17 2015 KOSAKI Motohiro + + * random.c (fill_random_bytes_syscall): use ATOMIC_SET() for + updating try_syscall. + +Sun Oct 18 13:03:52 2015 KOSAKI Motohiro + + * include/ruby/backward/util.h: Good-by Borland-C. + +Sun Oct 18 13:03:09 2015 KOSAKI Motohiro + + * common.mk: add a comment how to use "make test-all" + +Sun Oct 18 12:59:22 2015 KOSAKI Motohiro + + * common.mk: add comments how to use "make benchmark" + +Sun Oct 18 12:58:15 2015 Tanaka Akira + + * lib/securerandom.rb: Specify frozen_string_literal: true. + +Sun Oct 18 11:22:52 2015 KOSAKI Motohiro + + * dln.c: remove defined(__WATCOMC__). + +Sun Oct 18 11:16:33 2015 KOSAKI Motohiro + + * lib/mkmf.rb: Good-by Borland-C. + +Sun Oct 18 11:04:36 2015 KOSAKI Motohiro + + * numeric.c: Good-by Borland-C. + * include/ruby/backward/rubyio.h: ditto. + * include/ruby/backward/st.h: ditto. + * include/ruby/backward/util.h: ditto. + * include/ruby/backward/rubysig.h: ditto. + * include/ruby/backward/classext.h: ditto. + * dln.c: ditto. + * gc.c: ditto. + * win32/resource.rb: ditto. + * win32/dir.h: ditto. + * ext/tk/tcltklib.c: ditto. + * NEWS: announce that Borland-C is no longer supported. + +Sun Oct 18 10:54:52 2015 KOSAKI Motohiro + + * dln.c: simplify #ifdef. _WIN32 and __CYGWIN__ are exclusive. + see include/ruby/defines.h + * gc.c: ditto. + * ext/sdbm/_sdbm.c: ditto. + +Sun Oct 18 10:42:19 2015 KOSAKI Motohiro + + * ruby.c (open_load_file): add a comment. + +Sun Oct 18 10:12:46 2015 KOSAKI Motohiro + + * file.c (rb_file_identical_p): simplify ifdefs + +Sun Oct 18 10:01:40 2015 KOSAKI Motohiro + + * ChangeLog: Good-bye OS/2. + * common.mk: ditto. + * configure.in: ditto. + * dln_find.c: ditto. + * ext/Setup.emx: ditto. + * ext/extmk.rb: ditto. + * ext/socket/extconf.rb: ditto. + * ext/zlib/extconf.rb: ditto. + * file.c: ditto. + * include/ruby/defines.h: ditto. + * io.c: ditto. + * lib/mkmf.rb: ditto. + * missing/os2.c: ditto. + * process.c: ditto. + * ruby.c: ditto. + * NEWS: announce OS/2 is no longer supported. + +Sun Oct 18 08:50:15 2015 KOSAKI Motohiro + + * include/ruby/defines.h (DOSISH): add comments. + +Sun Oct 18 08:26:51 2015 KOSAKI Motohiro + + * io.c (fptr_finalize): don't release gvl if fptr is not writable. + writable fd may block on close(2) when it's on NFS. But readonly + fd doesn't. [Bug #11559] + result: make benchmark OPTS="-p bm_require_t -e ruby-trunk -e ruby-2.2.2" + build-ruby: 0.171 + ruby 2.3.0dev(r52151): 0.659 + ruby 2.2.0p95 (r50295): 0.834 + +Sun Oct 18 09:32:58 2015 KOSAKI Motohiro + + * file.c (ruby_is_fd_loadable): this should be fail if st_mode is + not regular file nor FIFO. + +Sun Oct 18 09:20:17 2015 KOSAKI Motohiro + + * ruby.c (open_load_file): use rb_thread_wait_fd() instead of reopen. + +Sun Oct 18 05:11:22 2015 KOSAKI Motohiro + + * ruby.c (open_load_file): reset O_NONBLOCK after open. + Even if S_ISREG() is true, the file may be file on FUSE filesystem + or something. We can't assume O_NONBLOCK is safe. + Moreover, we should wait if the path is point to FIFO. That's + FIFO semantics. GVL should be transparent from ruby script. + Thus, just reopen without O_NONBLOCK for filling the requirements. + [Bug #11060][Bug #11559] + + * ruby.c (loadopen_func): new for the above. + + * file.c (ruby_is_fd_loadable): new. for checks loadable file type + of not. + * file.c (rb_file_load_ok): use ruby_is_fd_loadble() + * internal.h: add ruby_is_fd_loadble() + + * common.mk: now, ruby.o depend on thread.h. + + * test/ruby/test_require.rb + (TestRequire#test_loading_fifo_threading_success): new test. + This test successful case that loading from FIFO. + + * test/ruby/test_require.rb + (TestRequire#test_loading_fifo_threading_raise): rename from + test_loading_fifo_threading. You shouldn't rescue an exception + if you test raise or not. + Moreover, this case should be caught IOError because load(FIFO) + should be blocked until given any input. + +Sat Oct 17 13:55:32 2015 Nobuyoshi Nakada + + * file.c (rb_file_expand_path_internal): concatenate converted + string to the result instead of making converted string and + append it. + + * string.c (rb_str_cat_conv_enc_opts): from rb_str_conv_enc_opts, + separate function to concatenate with transcoding. + +Sat Oct 17 13:19:10 2015 Nobuyoshi Nakada + + * ruby.c (load_file): unify each preparations and clean-ups by + merging load_file_internal and load_file_internal2, and remove + nested rb_protect and rb_ensure. + +Sat Oct 17 05:28:32 2015 Rei Odaira + + * test/ruby/test_symbol.rb (test_symbol_fstr_leak): add a warm-up + code and check RSS to avoid false positive on AIX and false + negative on Mac OS X. [Bug #10686] + +Fri Oct 16 15:54:37 2015 Nobuyoshi Nakada + + * file.c (rb_file_load_ok): open in non-blocking mode withoout + releasing GVL. don't care about others than regular files and + directories. [ruby-dev:49272] [Bug #11559] + + * ruby.c (load_file_internal): ditto. + +Thu Oct 15 23:56:03 2015 Nobuyoshi Nakada + + * proc.c (rb_sym_to_proc): make void env. + +Thu Oct 15 13:37:23 2015 Nobuyoshi Nakada + + * proc.c (rb_sym_to_proc): move from string.c and create a Proc + with no environments. [ruby-core:71088] [Bug #11594] + +Thu Oct 15 01:57:03 2015 CHIKANAGA Tomoyuki + + * test/objspace/test_objspace.rb + (test_trace_object_allocations_start_stop_clear): clear object + allocation table first to get rid of erroneous detection for obj3. + [ruby-dev:49095] [Bug #11271] + +Thu Oct 15 01:53:38 2015 Benoit Daloze + + * test/ostruct/test_ostruct.rb: Add tests for OpenStruct#respond_to. + Patch by @jeremy in [GH-1041]: https://github.com/ruby/ruby/pull/1041 + +Thu Oct 15 01:49:25 2015 Benoit Daloze + + * lib/ostruct.rb: Finish defining OpenStruct attributes lazily. + Patch by @sferik in [GH-1037]: https://github.com/ruby/ruby/pull/1037 + This commit is an addendum to https://github.com/ruby/ruby/pull/1033. + It: + 1. lazily defines attribute accessors for copied and marshaled objects, + 2. returns nil when an attribute reader is not defined, and + 3. defines respond_to_missing? to maintain the same respond_to? behavior + +Wed Oct 14 16:56:50 2015 Nobuyoshi Nakada + + * configure.in: check for libunwind.h, which is not available in + very old OS X SDK. [ruby-core:71080] [Bug #11591] + +Wed Oct 14 14:11:42 2015 Brian Black + + * iseq.c (rb_insn_operand_intern): change kw in callinfo disasm from the + number of keyword arguments to an ordered list of the keywords used. + [Feature #11589] + +Wed Oct 14 13:58:44 2015 Nobuyoshi Nakada + + * parse.y (parser_nextc): send a warning to ripper, not to STDERR + always. + + * parse.y (rb_warn1, rb_warning1): move argument conversions to + callers. PRIsVALUE is not valid in String#%. + +Wed Oct 14 13:37:23 2015 SHIBATA Hiroshi + + * lib/racc/rdoc/grammar.en.rdoc: fix spell error. + [fix GH-1053][ci skip] Patch by @Matrixbirds + +Tue Oct 13 22:06:50 2015 Tanaka Akira + + * ext/socket/raddrinfo.c (rsock_fd_family): Check sa_len. + +Tue Oct 13 12:14:10 2015 Craig Davison + + * ext/socket/rsock_addrinfo (rsock_addrinfo): specify address + family. [Fix GH-1052] + + * ext/socket/udpsocket.c (udp_connect, udp_bind, udp_send): + address family by the receiver. + +Sun Oct 11 07:09:19 2015 Koichi Sasada + + * vm_insnhelper.c (vm_push_frame): initialize other than sp (and ep) + first for performance. + +Sun Oct 11 06:21:50 2015 Koichi Sasada + + * vm_eval.c, internal.h (rb_yield_1): added for performance which + doesn't check Qundef. + + * numeric.c (int_dotimes): use rb_yield_1. + +Sun Oct 11 06:19:49 2015 Koichi Sasada + + * vm_insnhelper.c (vm_call_iseq_setup_normal): setup sp first + for performance. + +Sun Oct 11 05:29:51 2015 Koichi Sasada + + * vm.c (invoke_block_from_c): split this function into several + functions. + + * vm_insnhelper.c (vm_yield_callee_setup_arg): remove this function + because it is only delegation function. + +Sun Oct 11 03:48:46 2015 Koichi Sasada + + * gc.c (newobj_of_slowpass): fix typo (pass -> path). + Pointed out by Yukihiro Matsumoto . + + * gc.c (newobj_of_...): `of' is unnecessary. + +Sat Oct 10 19:04:42 2015 Nobuyoshi Nakada + + * ext/socket/udpsocket.c (udp_connect, udp_bind): get open files + inside ensure functions. + +Sat Oct 10 18:35:12 2015 Koichi Sasada + + * vm_insnhelper.c (vm_call_method0): do not propagate enable_fastpath, + but pass dummy CC to prevent wrong caching. + +Sat Oct 10 15:28:45 2015 Koichi Sasada + + * import a github pull request + https://github.com/ruby/ruby/pull/1050 + by Kazuho Oku . + + This pull request has the following commits. + + * gc.c: reduce # of args to 6 (max. of register args on x86-64) so + that the `newobj_of_slowpass` can be called via TCO. + + * gc.c (newobj_of), string.c (str_duplicate): for performance, + the hot functions must be inlined. + + * gc.c: for performance, preceding arguments of `.*newobj_of.*` + must be same, so that the arg registers can be reused in case of + TCO. + +Sat Oct 10 08:52:21 2015 Nobuyoshi Nakada + + * ext/socket/udpsocket.c (udp_connect, udp_bind, udp_send): fix + memory leaks at closed socket. + +Fri Oct 9 17:29:07 2015 Shugo Maeda + + * lib/net/ftp.rb (parse257): refactor. + +Fri Oct 9 16:42:26 2015 Shugo Maeda + + * lib/net/imap.rb: use frozen_string_literal: true. + + * test/net/imap/test_imap.rb: ditto. + + * test/net/imap/test_imap_response_parser.rb: ditto. + +Fri Oct 9 15:52:28 2015 Shugo Maeda + + * lib/net/ftp.rb: use frozen_string_literal: true. + + * test/net/ftp/test_buffered_socket.rb: ditto. + + * test/net/ftp/test_ftp.rb: ditto. + + * test/net/ftp/test_mlsx_entry.rb: ditto. + +Fri Oct 9 14:12:35 2015 Shota Fukumori (sora_h) + + * ext/openssl/lib/openssl/ssl.rb: Revert r52082 because it was + dropping TLS v1.1 support too. Supporting only TLS v1.2 is too + early, because many popular websites still don't support it. + + For instance, Servers where aws-sdk connects to still don't support + TLS v1.2 and it became broken. + + We should consider more carefully about this. + + [Fix GH-873] [Feature #11524] + +Fri Oct 9 12:52:08 2015 Shugo Maeda + + * compile.c (iseq_compile_each): Dynamic string literals (e.g., + "#{x}") should not be frozen because they don't literally + represent strings. + https://twitter.com/shugomaeda/status/651937650027401216 + https://twitter.com/yukihiro_matz/status/651942882312482817 + https://twitter.com/yukihiro_matz/status/651980835181096960 + +Fri Oct 9 06:52:49 2015 KOSAKI Motohiro + + * benchmark/prepare_require.rb: skip file creation if it already + exist. Suggested by ko1. + +Fri Oct 9 06:18:04 2015 KOSAKI Motohiro + * benchmark/bm_require.rb: new benchmark for require. + * benchmark/bm_require_thread.rb: new benchmark for conflicting + require vs thread. like [Bug #11559] + * prepare_require.rb: new file for preparing above tests. + * prepare_require.rb: ditto. + +Thu Oct 8 14:10:45 2015 Zachary Scott + + * ext/openssl/lib/openssl/ssl.rb: Default to TLSv1.2 and drop TLS v1 + Patch provided by @claudijd [Fixes GH-873] [Feature #11524]: + https://github.com/ruby/ruby/pull/873 + +Wed Oct 7 22:55:02 2015 Nobuyoshi Nakada + + * test/minitest/metametameta.rb (with_output): restore output to + fix mixing test result output in worker responses. + +Wed Oct 7 21:32:51 2015 Nobuyoshi Nakada + + * string.c (str_duplicate): move from rb_str_resurrect to short + circuit initialization. + +Wed Oct 7 20:43:14 2015 Nobuyoshi Nakada + + * string.c (rb_str_resurrect): fix resurrection of short enough to + be embedded but not embedded string. + +Wed Oct 7 20:17:29 2015 Koichi Sasada + + * gc.c (newobj_of): divide fast path and slow path + to avoid register savings for fast path. + + This idea is given by Kazuho Oku . + +Wed Oct 7 17:30:50 2015 Nobuyoshi Nakada + + * string.c (rb_str_times): optimize for the argument 0 and 1. + +Wed Oct 7 01:20:46 2015 Koichi Sasada + + * gc.h, gc.c: introduce new debug function rb_obj_info_dump(VALUE obj) + which prints the result of rb_raw_obj_info(..., obj). + +Wed Oct 7 01:16:11 2015 Koichi Sasada + + * vm_args.c: remove an unused field args_info::calling. + +Tue Oct 6 23:43:10 2015 Koichi Sasada + + * proc.c (rb_method_entry_min_max_arity): should support + OPTIMIZED_METHOD_TYPE_CALL. + +Tue Oct 6 21:29:08 2015 Tanaka Akira + + * lib/tmpdir.rb (Dir.tmpdir): return duplicated string to be + modify safely even when $SAFE > 0. + +Tue Oct 6 19:24:38 2015 Koichi Sasada + + * vm_insnhelper.c (vm_call_method0): use switch() for visibilities + (for readability). + +Tue Oct 6 19:23:58 2015 Koichi Sasada + + * proc.c (Init_Proc): Proc#call and others should be public. + +Tue Oct 6 18:51:51 2015 Koichi Sasada + + * method.h: IMEMO_FL_USER3 and IMEMO_FL_USER4 is not needed any more. + +Tue Oct 6 18:47:45 2015 Koichi Sasada + + * method.h: remove METHOD_ENTRY_SAFE(me) and related code + because $SAFE = 3 and 4 is not available. + Now, $SAFE is not checked on method dispatch at all. + + * vm_eval.c, vm_insnhelper.c, vm_method.c: ditto. + +Tue Oct 6 13:56:14 2015 Nobuyoshi Nakada + + * include/ruby/ruby.h: turn function macros into inline functions, + for debuggers. + + * include/ruby/ruby.h: turn constant macros into enums, for + debuggers. + +Tue Oct 6 13:48:05 2015 SHIBATA Hiroshi + + * method.h: typo fix. Patch by @davydovanton [fix GH-1032][ci skip] + +Tue Oct 6 06:54:34 2015 Koichi Sasada + + * iseq.c (rb_iseq_free): free iseq::variable_body to avoid memory + leak. + +Tue Oct 6 06:32:52 2015 Koichi Sasada + + * proc.c: enable optimization of Proc#call. + [Feature #11569] + + * NEWS: write about this optimization and incompatibilities. + + * test/ruby/test_backtrace.rb: catch up this fix. + +Tue Oct 6 04:41:03 2015 Koichi Sasada + + * vm_insnhelper.c: solve goto spaghetti. + + Change all goto statement across blocks to tail call functions. + +Tue Oct 6 02:29:38 2015 Nobuyoshi Nakada + + * string.c (rb_str_resurrect): optimize by short circuit to copy + hidden string without checking length, encoding and so on. + +Mon Oct 5 23:08:17 2015 CHIKANAGA Tomoyuki + + * test/ruby/test_thread.rb (test_handle_interrupt_blocking): check if + exception handling was postponed until sleep. + +Mon Oct 5 22:25:49 2015 Tanaka Akira + + * lib/pp.rb: Use frozen_string_literal: true. + + * lib/prettyprint.rb: Ditto. + + * lib/resolv.rb: Ditto. + + * lib/tmpdir.rb: Ditto. + + * test/test_pp.rb: Ditto. + + * test/test_prettyprint.rb: Ditto. + + * tool/transcode-tblgen.rb: Ditto. + +Mon Oct 5 20:39:32 2015 Benoit Daloze + + * test/ruby/test_thread.rb: fix potential race condition. + The thread could have a "sleep" status because it tries + to acquire the mutex, but does not have it yet. + +Mon Oct 5 15:39:30 2015 Zachary Scott + + * numeric.c: [DOC] Overview for Numeric class by Joe Corcoran + This patch was created at ROSSConf Berlin 2015 [Bug #11555] + +Mon Oct 5 15:34:56 2015 Nobuyoshi Nakada + + * proc.c (proc_new): link ep to calling block. + [ruby-core:70980] [Bug #11566] + +Mon Oct 5 00:53:51 2015 Nobuyoshi Nakada + + * dir.c (rb_dir_getwd): make ASCII-8BIT if filesystem encoding is + US-ASCII, like as Dir.glob. + +Sun Oct 4 23:39:09 2015 Tanaka Akira + + * enum.c (nmin_filter): Fix limit value. + patch by Helder Pereira. + [Bug #11471] [ruby-core:70477] + +Sun Oct 4 15:11:48 2015 NARUSE, Yui + + * enc/euc_jp.c (mbc_case_fold): check given string is valid or not, + and if invalid, return 1. [Bug #11486] + +Sun Oct 4 10:09:57 2015 Nobuyoshi Nakada + + * dir.c (rb_dir_getwd): normalize OS path to UTF-8 on OS X. + +Sun Oct 4 00:09:45 2015 Nobuyoshi Nakada + + * template/ruby-runner.c.in: wrapper to set dynamic loading path + environment variable. /bin/sh on Mac OS X 10.11 (El Capitan) + clears DYLD_LIBRARY_PATH. + + it must: + - do nothing even if current directory is not present + - do not set other environment variables, e.g. PWD, SHLVL, etc + - do not open other FDs, e.g. pipes for timer thread + +Sun Oct 2 10:59:00 2015 schneems + + * ext/pathname/lib/pathname.rb: freeze string literals for + reduced object allocation. + [Feature #11375] [ruby-core:70043] + +Fri Oct 2 09:20:20 2015 Martin Duerst + + * common.mk, lib/unicode_normalize/tables.rb: Change Unicode + Version for character normalization data from 7.0.0 to + 8.0.0. + +Fri Oct 2 00:18:39 2015 Nobuyoshi Nakada + + * proc.c (proc_mark): block.ep of Proc from Symbol is now NULL. + [ruby-core:70961] [Bug #11560] + +Wed Sep 30 15:47:13 2015 Nobuyoshi Nakada + + * vm_args.c (vm_caller_setup_arg_block): bypass Symbol#to_proc + call to optimize symbol block passing. + +Wed Sep 30 01:34:34 2015 Nobuyoshi Nakada + + * parse.y (parser_free): fix memory leak at syntax error when + warn-indent is enabled. + +Tue Sep 29 22:27:50 2015 Benoit Daloze + + * parse.y: fix minor typo. [ci skip][fix GH-1038]. + Patch by @ltratt. + +Tue Sep 29 16:53:53 2015 Martin Duerst + + * tool/unicode_norm_gen.tmpl, lib/unicode_normalize/tables.rb: + get rid of many .freeze commands by using frozen_string_literal + pragma. + +Tue Sep 29 16:37:29 2015 Nobuyoshi Nakada + + * compile.c (compile_dstr_fragments): fix performance by omitting + the first empty string only for keeping literal encoding if + other literals are too. [ruby-core:70930] [Bug #11556] + + * string.c (rb_str_append_literal): append but keep encoding non + US-ASCII. + +Mon Sep 28 17:40:17 2015 Shugo Maeda + + * lib/net/ftp.rb (mtime): use usec instead of fractions to parse + decimal fractions of a second correctly when the number of digits + is not 6. + +Mon Sep 28 16:07:08 2015 Shugo Maeda + + * lib/net/ftp.rb (mtime): parse decimal fractions of a second as + specified in RFC 3659. + +Mon Sep 28 10:31:12 2015 SHIBATA Hiroshi + + * test/test_forwardable.rb: Write basic tests for lib/forwardable. + [fix GH-1035] Patch by @kachick + +Sun Sep 27 23:32:46 2015 Nobuyoshi Nakada + + * class.c (rb_define_class, rb_define_class_id_under): refine + error messages. + + * class.c (rb_define_module, rb_define_module_id_under): ditto, + and make consistent with class. + +Sun Sep 27 18:44:43 2015 SHIBATA Hiroshi + + * ChangeLog: removed duplicated message. + +Sun Sep 27 15:46:58 2015 Nobuyoshi Nakada + + * ruby.c (process_options): add an option to enable/disable + frozen-string-literal. [Feature #8976] + + * compile.c (iseq_compile_each): override compile option by option + given by pragma. + + * iseq.c (rb_iseq_make_compile_option): extract a function to + overwrite rb_compile_option_t. + + * parse.y (parser_set_compile_option_flag): introduce pragma to + override compile options. + + * parse.y (magic_comments): new pragma "frozen-string-literal". + [Feature #8976] + +Sun Sep 27 08:16:35 2015 Nobuyoshi Nakada + + * lib/ostruct.rb (delete_field): do not raise NameError for + existing keys. [Fix GH-1033] + +Sun Sep 27 00:34:31 2015 Zachary Scott + + * lib/ostruct.rb: Move method definitions for getter/setter to be lazy + Patch by @sferik in [GH-1033]: https://github.com/ruby/ruby/pull/1033 + +Fri Sep 25 10:07:25 2015 SHIBATA Hiroshi + + * lib/net/http.rb: removed unused variable. It's removed at r13648. + [fix GH-1022] Patch by @nkondratyev + +Fri Sep 25 09:48:27 2015 SHIBATA Hiroshi + + * gems/bundled_gems: upgrade to minitest-5.8.1 + +Fri Sep 25 09:47:12 2015 SHIBATA Hiroshi + + * id_table.c: fix typo. [ci skip][fix GH-1031] Patch @davydovanton + +Fri Sep 25 07:54:05 2015 Rei Odaira + + * test/gdbm/test_gdbm.rb (TestGDBM#test_s_open_lock): skip + this test on AIX. The issue is the same as on Solaris. + [ruby-dev:47631] + +Thu Sep 24 17:25:09 2015 Nobuyoshi Nakada + + * parse.y (paren_args): fix separator token at `foo::bar()` in + ripper. + +Thu Sep 24 00:00:17 2015 Rei Odaira + + * complex.c: ruby/config.h must be included before math.h + because it defines _LARGE_FILES on AIX and _LARGE_FILES + must be defined before sys/types.h is included from math.h. + [Bug #11483] + +Wed Sep 23 22:22:38 2015 Zachary Scott + + * ext/openssl/ossl_pkcs12*: Remove svn commit id macro + +Wed Sep 23 01:11:28 2015 Zachary Scott + + * ext/openssl/*: Remove svn commit id macros to make sync easier + +Tue Sep 22 04:20:01 2015 Masatoshi SEKI + + * test/drb/test_drb.rb: Run Rinda/DRb tests on localhost. [Fix GH-1027] + patch by voxik. + + * test/rinda/test_rinda.rb: ditto + +Mon Sep 21 20:53:39 2015 tbpgr + + * test/win32ole/test_win32ole_event.rb: fix typo. + swbemsink_avairable? => swbemsink_available? [Fix GH-1025] + +Sun Sep 20 10:07:35 2015 Anton Davydov + + * cont.c (rb_callcc): [DOC] append continuations example accros + methods. [Fix GH-1026] + +Sun Sep 20 03:20:21 2015 Koichi Sasada + + * iseq.c (rb_iseq_free): free rb_iseq_t::body::cc_entries. + +Sun Sep 20 02:46:34 2015 Koichi Sasada + + * vm_core.h: split rb_call_info_t into several structs. + * rb_call_info (ci) has compiled fixed information. + * if ci->flag & VM_CALL_KWARG, then rb_call_info is + also rb_call_info_with_kwarg. This technique reduce one word + for major rb_call_info data. + * rb_calling_info has temporary data (argc, blockptr, recv). + for each method dispatch. This data is allocated only on + machine stack. + * rb_call_cache is for inline method cache. + + Before this patch, only rb_call_info_t data is passed. + After this patch, above three structs are passed. + + This patch improves: + * data locality (rb_call_info is now read-only data). + * reduce memory consumption (rb_call_info_with_kwarg, + rb_calling_info). + + * compile.c: use above data. + + * insns.def: ditto. + + * iseq.c: ditto. + + * vm_args.c: ditto. + + * vm_eval.c: ditto. + + * vm_insnhelper.c: ditto. + + * vm_insnhelper.h: ditto. + + * iseq.h: add iseq_compile_data::ci_index and + iseq_compile_data::ci_kw_index. + + * tool/instruction.rb: introduce TS_CALLCACHE operand type. + +Sun Sep 20 02:18:10 2015 Tanaka Akira + + * test/lib/envutil.rb: mkfifo command based File.mkfifo method + definition removed. + +Fri Sep 18 20:11:11 2015 Nobuyoshi Nakada + + * file.c (rb_file_s_mkfifo): implement File.mkfifo. + [Feature #11536] + +Fri Sep 18 16:56:19 2015 Shugo Maeda + + * NEWS: add Net::FTP#mlst and Net::FTP#mlsd. + +Fri Sep 18 07:39:22 2015 Aaron Patterson + + * ext/objspace/objspace_dump.c (obj_type): add IMEMO types to the heap + dump information. + +Thu Sep 17 22:33:07 2015 SHIBATA Hiroshi + + * common.mk: fix command error with outside builddir. + +Thu Sep 17 17:42:09 2015 SHIBATA Hiroshi + + * common.mk: separated test for test-framework from test-all task. + They should be invoke at first before tests of test-all. + +Thu Sep 17 12:05:54 2015 KOSAKI Motohiro + + * test/ruby/test_dir.rb (TestDir#test_fileno): s/?x/"x"/. Don't + use tricky code, please. + +Wed Sep 16 20:49:56 2015 Masaki Suketa + + * encindex.h: fix typo of last #endif comment. [ci skip] + +Wed Sep 16 20:39:26 2015 Nobuyoshi Nakada + + * variable.c (set_const_visibility): fail if the class/module is + frozen. [ruby-core:70828] [Bug #11532] + +Wed Sep 16 17:16:43 2015 Nobuyoshi Nakada + + * vm_core.h (ENABLE_VM_OBJSPACE): enable per-VM object space on + Windows by default, as rb_w32_sysinit() no longer depends on + ruby_xmalloc. + +Wed Sep 16 15:08:17 2015 Akinori MUSHA + + * doc/syntax/literals.rdoc (Strings): [DOC] Revise the character + literal part. + +Wed Sep 16 14:55:33 2015 Akinori MUSHA + + * doc/syntax/literals.rdoc (Strings): [DOC] Document the full list + of supported escape sequences in string literals. + +Wed Sep 16 14:49:58 2015 Nobuyoshi Nakada + + * string.c (rb_str_setbyte): keep the code range as possible. + +Wed Sep 16 13:23:48 2015 NAKAMURA Usaku + + * doc/syntax/literals.rdoc (Strings): mention about ?a literal. + +Wed Sep 16 12:06:53 2015 KOSAKI Motohiro + + * dir.c (glob_helper): check pathtype once again by lstat(2) if + dp->d_type is DT_UNKNOWN. XFS may return DT_UNKNOWN. + +Wed Sep 16 03:49:19 2015 KOSAKI Motohiro + + * test/ruby/test_thread.rb (TestThread#test_mutex_synchronize): + insert waste loop for invoking preemptive thread context switch. + [Bug #11496] + +Tue Sep 15 19:38:55 2015 Nobuyoshi Nakada + + * gc.c (rb_objspace_alloc, rb_objspace_free): define always + regardless ENABLE_VM_OBJSPACE, and free heap pages. + +Tue Sep 15 15:15:41 2015 Nobuyoshi Nakada + + * win32/win32.c (rb_w32_sysinit, rb_w32_readdir): compare by + encoding index to get rid of encoding initialization before VM + object space allocation. + + * dir.c (fundamental_encoding_p, push_glob): compare by encoding + index immediately. + + * enc/{ascii,us_ascii,utf_8}.c: set encoding indexes of + fundamental built-in encodings so that usable as well as + allocated rb_encoding before rb_enc_init(). + + * encindex.h: separate encoding index constants from internal.h. + +Tue Sep 15 13:13:13 2015 Nobuyoshi Nakada + + * array.c (rb_ary_sort_bang, rb_ary_sort): [DOC] correct block + return values, which may be a negative or positive integer, not + only -1 or +1. + +Tue Sep 15 12:49:10 2015 Jason Barnabe + + * array.c (rb_ary_sort_bang, rb_ary_sort): [DOC] Correct + description of array sort block return values. And also fix up + the grammar a bit. [Fix GH-1020] + +Tue Sep 15 12:44:32 2015 Nobuyoshi Nakada + + * util.c (ruby_qsort): use BSD-style qsort_r if available. + +Mon Sep 14 19:26:34 2015 Shugo Maeda + + * lib/net/ftp.rb (parse_mlsx_entry): parse pathnames including + space correctly. + +Mon Sep 14 11:12:10 2015 Anton Davydov + + * lib/racc/rdoc/grammar.en.rdoc: [DOC] fix typo, "convertion" to + "conversion". [Fix GH-1016] + +Sun Sep 13 11:03:13 2015 Nobuyoshi Nakada + + * include/ruby/ruby.h: prefix RUBY or RB to global symbols to get + rid of name conflicts with other headers. + + * include/ruby/encoding.h, include/ruby/intern.h: ditto. + +Sun Sep 13 09:38:51 2015 Shugo Maeda + + * lib/net/ftp.rb (size, modify, create, type, unique, perm, lang, + media_type, charset): new methods to return standard facts. + +Sat Sep 12 19:43:49 2015 Koichi Sasada + + * vm_insnhelper.c (vm_call_iseq_setup_normal): do not clear local + variables here. vm_push_frame() clears. + + * vm_insnhelper.c (vm_call_iseq_setup_tailcall): ditto. + + * vm_insnhelper.c (vm_push_frame): move check code to + vm_check_frame(). + + Reorder initialization timing to reuse same values (sp). + + * compile.c (rb_iseq_compile_node): use + iseq_set_exception_local_table() for ISEQ_TYPE_DEFINED_GUARD. + +Sat Sep 12 23:06:51 2015 Shugo Maeda + + * lib/net/ftp.rb (file?, directory?, appendable?, creatable?, + deletable?, enterable?, renamable?, listable?, directory_makable?, + purgeable?, readable?, writable?): new methods. + +Sat Sep 12 21:27:22 2015 Shugo Maeda + + * lib/net/ftp.rb (FACT_PARSERS): support system dependent facts + UNIX.mode, UNIX.owner, UNIX.group, UNIX.ctime, and UNIX.atime. + +Sat Sep 12 19:08:58 2015 Nobuyoshi Nakada + + * win32/win32.c (rb_w32_dup2): should return the new fd on + success, while msvcrt returns 0 wrongly. + +Sat Sep 12 18:14:11 2015 Shugo Maeda + + * lib/net/ftp.rb (parse_mlsx_entry, mlst) raise an FTPProtoError + when parsing failed. + +Sat Sep 12 18:00:35 2015 Shugo Maeda + + * lib/net/ftp.rb (TIME_PARSER): use "Z" instead of "+00:00" to + get UTC time. Thanks, Wilson Bilkovich. + +Sat Sep 12 17:55:24 2015 Shugo Maeda + + * lib/net/ftp.rb (mlst, mlsd): support new commands MLST and MLSD + specified in RFC 3659. + +Sat Sep 12 16:14:31 2015 SHIBATA Hiroshi + + * file.c: access()/eaccess() wrapping methods check more than just uid. + [fix GH-1007][ci skip] Patch by @eam + +Sat Sep 12 16:07:01 2015 SHIBATA Hiroshi + + * README.md: improve markdown rendering for readability. + [fix GH-1015][ci skip] Patch by @Matrixbirds + +Sat Sep 12 14:30:03 2015 Nobuyoshi Nakada + + * process.c (save_redirect_fd): make saved FDs close-on-exec not + to be inherited. + + * process.c (run_exec_dup2): restore close-on-exec flags too. + + * win32/win32.c (fcntl): implement F_GETFD, F_SETFD, and + F_DUPFD_CLOEXEC. + +Sat Sep 12 05:35:24 2015 Eric Wong + + * rational.c (string_to_r_strict): preserve encoding in exception + +Fri Sep 11 20:23:35 2015 Koichi Sasada + + * vm_core.h: remove rb_call_info_t::aux.opt_pc. + + * vm_insnhelper.c: introduce shortcut functions for opt_pc == 0 + because opt_pc is always 0 on shortcut function. + +Fri Sep 11 17:49:36 2015 Koichi Sasada + + * iseq.c: disable ISeq.load. It enabled accidentally at r51794. + +Fri Sep 11 11:15:12 2015 Shugo Maeda + + * lib/net/ftp.rb (size, mdtm, system): parse responses according to + RFC 959 and 3659, where reply codes must be followed by SP. + + * lib/net/ftp.rb (system): remove LF from the return value. + +Thu Sep 10 22:48:49 2015 Nobuyoshi Nakada + + * parse.y (literal_concat_gen, evstr2dstr_gen): keep literal + encoding beginning with an interpolation same as the source file + encoding. [ruby-core:70703] [Bug #11519] + +Thu Sep 10 22:15:51 2015 Joe Rafaniello + + * process.c (rb_f_spawn): Be more specific regarding "other + values" by having "non-zero positive integers" Add nil, the + default value, as a possible value and what it means. + + Try to use more consistent language. + [Fix GH-1008] + +Thu Sep 10 15:16:02 2015 Shugo Maeda + + * lib/net/ftp.rb (getmultiline): refactor. + +Thu Sep 10 12:17:28 2015 Nobuyoshi Nakada + + * compile.c (iseq_build_from_ary_body): register cdhash to the + iseq constant body instead of compile time mark array, not to + get GCed. [ruby-core:70708] [Feature #8543] + +Wed Sep 9 18:16:14 2015 NAKAMURA Usaku + + * lib/rubygems/stub_specification.rb (Gem::StubSpecification#data): + should not change the value of $. when `require`ing gems. + this fixed test failures introduced by r51813. + +Wed Sep 9 16:55:45 2015 NAKAMURA Usaku + + * ruby.c (usage, enable_option, disable_option, process_options): new + option `--disable-did_you_mean`. + + * gem_prelude.rb: now requires did_you_mean gem by default if available. + +Wed Sep 9 13:38:56 2015 Nobuyoshi Nakada + + * tool/extlibs.rb (do_patch): let "patch" command change the + working directory and open the patch file there, instead of + spawn options, so that proper error message will be shown by the + command not just "chdir" or "open". + +Wed Sep 9 11:33:05 2015 NAKAMURA Usaku + + * common.mk (update-gems): use BASERUBY instead of RUNRUBY. + +Wed Sep 9 11:08:59 2015 Zachary Scott + + * lib/delegate.rb: Remove backtrace cleaning for delegated methods + This patch was provided by Rafael Franca and greatly improves + performance when an exception is raised. [Bug #11461] + +Wed Sep 9 10:05:41 2015 SHIBATA Hiroshi + + * test/rubygems/test_config.rb: fix broken tests for Windows platform. + +Wed Sep 9 07:46:32 2015 SHIBATA Hiroshi + + * lib/rubygems: Update to RubyGems HEAD(fe61e4c112). + this version contains new feature that warn invalid SPDX license + identifiers. https://github.com/rubygems/rubygems/pull/1249 + and #1032, #1023, #1332, #1328, #1306, #1321, #1324 + * test/rubygems: ditto. + +Tue Sep 8 23:17:36 2015 Yuki Nishijima + + * gems/bundled_gems: Upgrade the did_you_mean gem to 1.0.0.beta2. + +Tue Sep 8 23:09:28 2015 Nobuyoshi Nakada + + * io.c (rb_io_s_popen): do not wait the child process during being + killed. [ruby-core:70671] [Bug #11510] + +Tue Sep 8 22:18:04 2015 NAKAMURA Usaku + + * gems/bundled_gems: revert because ruby trunk never be able to install + the did_you_mean gem. retry after enough test. + +Tue Sep 8 21:48:22 2015 Yuki Nishijima + + * gems/bundled_gems: Automatically install the did_you_mean gem + as a bundled gem. [Feature #11252] + +Tue Sep 8 17:17:48 2015 Koichi Sasada + + * vm_core.h: remove rb_call_info_t::blockiseq. + + * insns.def (send, invokesuper): pass blockiseq explicitly. + + * compile.c: catch up this fix. + + * iseq.c: ditto. + + * vm_args.c: ditto. + + * iseq.c (ISEQ_MINOR_VERSION): 2->3 because instruction spec was + changed. + +Tue Sep 8 15:01:19 2015 Shugo Maeda + + * lib/net/ftp.rb (list): fetch all the lines before yielding a block + to allow other commands in the block. [Feature #11454] + Patched by Srikanth Shreenivas. + +Tue Sep 8 12:05:00 2015 NAKAMURA Usaku + + * win32/win32.c (rb_w32_read_reparse_point): return correct required + buffer size for IO_REPARSE_TAG_MOUNT_POINT. + +Tue Sep 8 00:14:43 2015 Nobuyoshi Nakada + + * process.c (rb_execarg_parent_start1): raise with the target path + name when open() failed. + +Mon Sep 7 23:45:28 2015 Nobuyoshi Nakada + + * process.c (rb_exec_fail): raise with the target directory name + when chdir() failed. pointed out by sorah. + +Mon Sep 7 22:05:28 2015 Nobuyoshi Nakada + + * win32/win32.c (insert): should use plain strdup() instead of + ruby_strdup() at startup time, and plain free()ed in cmdglob(). + +Mon Sep 7 16:49:30 2015 Nobuyoshi Nakada + + * vm_core.h (rb_vm_struct): define objspace always regardless + ENABLE_VM_OBJSPACE. + +Mon Sep 7 15:54:58 2015 Nobuyoshi Nakada + + * ruby_atomic.h (ATOMIC_VALUE_CAS): fix typo. + TODO: make arguments of all CAS macros consistent. + +Sun Sep 6 16:07:22 2015 Eric Wong + + * ccan/list/list.h: suppress unused argument warnings + [ccan commit 6aaca17e07588997417a73fac19dcf0ff17ed81b] + +Sat Sep 5 11:39:52 2015 Nobuyoshi Nakada + + * lib/rss/rss.rb (Time#w3cdtf): fix zero-trimmed width of fraction + digits. [ruby-core:70667] [Bug #11509] + +Sat Sep 5 08:28:58 2015 Nobuyoshi Nakada + + * hash.c (rb_hash_equal, rb_hash_eql): [DOC] the orders of each + hashes are not compared. [Bug #11508] + +Fri Sep 4 23:26:22 2015 Nobuyoshi Nakada + + * include/ruby/win32.h: fix macro name for VC runtime version, + RT_VER is only in Makefile. + +Fri Sep 4 17:46:17 2015 SHIBATA Hiroshi + + * doc/contributing.rdoc: fix configuration option. + [ci skip] [fix GH-1009] + +Fri Sep 4 04:46:54 2015 Koichi Sasada + + * iseq.c (iseq_memsize): functions for wrapper object should have + iseqw_ prefix. + +Thu Sep 3 21:12:12 2015 Nobuyoshi Nakada + + * lib/cgi/session.rb (create_new_id): use SHA512 instead of MD5. + pointed out by SARWAR JAHAN. + +Thu Sep 3 20:29:18 2015 Koichi Sasada + + * gc.c (rb_raw_obj_info): iseq->body->location.first_lineno is Fixnum. + +Thu Sep 3 17:54:26 2015 Nobuyoshi Nakada + + * vm_eval.c (raise_method_missing): "names" should be singular. + pointed out by Filip Bartuzi. + +Thu Sep 3 17:50:09 2015 Koichi Sasada + + * gc.c (rb_raw_obj_info): should support IMEMO/iseq. + +Thu Sep 3 10:07:49 2015 Nobuyoshi Nakada + + * vm_eval.c (raise_method_missing): refine error messages when a + symbol is not given. [Fix GH-1013] + +Wed Sep 2 18:49:55 2015 SHIBATA Hiroshi + + * ext/psych/*: merge psych master(8737e5b). It contains following fixes. + https://github.com/tenderlove/psych/pull/242 + https://github.com/tenderlove/psych/pull/246 [ruby-list:50219] + * test/psych/*: ditto. + +Wed Sep 2 18:04:13 2015 Koichi Sasada + + * vm_insnhelper.h (GET_PC_COUNT): remove unused macro. + +Wed Sep 2 17:18:37 2015 Chris Schneider + + * process.c (proc_detach): [DOC] fix typo "intent" as "intend" in + rdoc. [Fix GH-1011] + +Wed Sep 2 16:58:21 2015 Nobuyoshi Nakada + + * file.c (rb_realpath_internal): use filesystem encoding if the + argument is in ASCII encodings. + + * win32/file.c (rb_readlink): needs the result encoding. + +Tue Sep 1 18:37:15 2015 Koichi Sasada + + * test/thread/test_queue.rb: catch up last commit. + +Tue Sep 1 18:16:32 2015 Koichi Sasada + + * thread_sync.c (queue_do_close): ignore multiple close to allow + multiple producers. + https://bugs.ruby-lang.org/issues/10600#note-14 + +Tue Sep 1 18:06:26 2015 Koichi Sasada + + * thread_tools.c: rename thread_tools.c to thread_sync.c. + +Mon Aug 31 17:04:45 2015 Koichi Sasada + + * class.c (move_refined_method): should insert a write barrier + from an original class to a created (cloned) method entry. + + * test/ruby/test_refinement.rb: add a test. + +Sun Aug 30 02:42:22 2015 Aaron Patterson + + * ext/openssl/ossl_ssl.c (ossl_ssl_method_tab): Only add SSLv3 support + if the SSL library supports it. Thanks Kurt Roeckx + [Bug #11376] + + * ext/openssl/extconf.rb: check for SSLv3 support in the SSL + implementation. + + * test/openssl/test_ssl.rb (class OpenSSL): Skip tests that need SSLv3 + if there is no support. + +Fri Aug 28 16:05:09 2015 SHIBATA Hiroshi + + * lib/rdoc/*: Update rdoc master(cfffed5) + https://github.com/rdoc/rdoc/pull/337 + https://github.com/rdoc/rdoc/pull/367 + +Fri Aug 28 10:16:20 2015 Koichi Sasada + + * vm.c (hook_before_rewind): prevent kicking :return event while + finishing vm_exec func because invoke_block_from_c() kick a :return + event for bmethods. + [Bug #11492] + + * test/ruby/test_settracefunc.rb: add a test. + +Thu Aug 27 18:05:42 2015 SHIBATA Hiroshi + + * lib/webrick/server.rb: use IO::NULL instead of '/dev/null' + * test/ruby/test_string.rb: ditto. + +Thu Aug 27 15:24:57 2015 Koichi Sasada + + * compile.c (iseq_set_sequence): rename variable names + to make it readable. + +Thu Aug 27 07:45:34 2015 Koichi Sasada + + * thread_tools.c: add Queue#close(exception=false) and + SizedQueue#close(exception=false). + [Feature #10600] + + Trying to deq from a closed empty queue return nil + if exception parameter equals to false (default). + + If exception parameter is truthy, it raises + ClosedQueueError (< StopIteration). + ClosedQueueError inherits StopIteration so that you can write: + + loop{ e = q.deq; (using e) } + + Trying to close a closed queue raises ClosedQueueError. + + Blocking threads to wait deq for Queue and SizedQueue will be + restarted immediately by returning nil (exception=false) or + raising a ClosedQueueError (exception=true). + + Blocking threads to wait enq for SizedQueue will be + restarted by raising a ClosedQueueError immediately. + + The above specification is not proposed specification, so that + we need to continue discussion to conclude specification this + method. + + * test/thread/test_queue.rb: add tests originally written by + John Anderson and modify detailed behavior. + +Wed Aug 26 10:52:02 2015 Nobuyoshi Nakada + + * re.c (rb_memsearch_wchar, rb_memsearch_qchar): test matching + till the end of string. [ruby-core:70592] [Bug #11488] + + * test/ruby/test_m17n.rb (test_include?, test_index): add tests by + Tom Stuart. + +Wed Aug 26 09:26:00 2015 Nobuyoshi Nakada + + * id_table.c (list_table_extend, hash_table_extend): remove C99 + features. [ruby-dev:49239] [Bug #11487] + +Tue Aug 25 06:34:43 2015 Nobuyoshi Nakada + + * win32/win32.c (w32_symlink): implement symlink(). + +Mon Aug 24 16:01:19 2015 Nobuyoshi Nakada + + * encoding.c (rb_locale_encindex): find encoding index without + making a string object every time. [ruby-core:58160] [Bug #9080] + +Sat Aug 22 15:43:12 2015 Nobuyoshi Nakada + + * vm_eval.c (check_funcall_failed, check_funcall_missing): cache + results of respond_to? and respond_to_missing?, and search a + public method only for compatibility with rb_respond_to. + +Sat Aug 22 08:23:32 2015 Koichi Sasada + + * ext/thread/thread.c: move definitions of Queue, SizedQueue + and ConditionalVariables to thread_tools.c. In other words, + such classes are built-in. + [Feature #8919] + + At first, I planned to embed only a Queue class. + However, rubygems requires 'thread.rb' (rubygems are + required at first, when launch MRI without --disable-gems). + So most of people require 'thread.rb' as an embedded library. + + Now, ext/thread/thread.c is empty, only for a dummy for + compatibility. + + * thread.c: move a definition of Mutex class to thread_tools.c. + + And define Mutex class under Thread (so now Mutex is Thread::Mutex). + Because other thread related classes are also defined under Thread. + We remain ::Mutex as Thread::Mutex. Only an inspect result is changed. + + * common.mk: add dependency from thread.o to thread_tools.c. + +Sat Aug 22 05:31:37 2015 Koichi Sasada + + * vm_opts.h, iseq.c, iseq.h: add compile option to force frozen + string literals. + [Feature #11473] + + This addition is not specification change, but to try frozen + string literal world discussed on [Feature #11473]. + + You can try frozen string literal world using this magical line: + + RubyVM::InstructionSequence.compile_option = + {frozen_string_literal: true} + + Note that this is a global compilation option, so that you need to + compile another script like that: + + p 'foo'.frozen? #=> false + RubyVM::InstructionSequence.compile_option = + {frozen_string_literal: true} + p 'foo'.frozen? #=> false, because this line is already compiled. + p eval("'foo'.frozen?") #=> true + + Details: + * String literals are deduped by rb_fstring(). + * Dynamic string literals ("...#{xyz}...") is now only frozen, + not deduped. Maybe you have other ideas. + + Now, please do not use this option on your productions :) + Of course, current specification can be changed. + + * compile.c: ditto. + + * test/ruby/test_iseq.rb: add a test. + +Sat Aug 22 02:53:12 2015 Aaron Patterson + + * ext/psych/*: update to Psych 2.0.14 + + * test/psych/*: ditto + +Fri Aug 21 19:58:48 2015 Koichi Sasada + + * ext/objspace/objspace.c: add a new method ObjectSpace.count_symbols. + [Feature #11158] + + * symbol.c (rb_sym_immortal_count): added to count immortal symbols. + + * symbol.h: ditto. + + * test/objspace/test_objspace.rb: add a test for this method. + + * NEWS: describe about this method. + +Fri Aug 21 19:48:17 2015 Nobuyoshi Nakada + + * win32/Makefile.sub ($(LIBRUBY_SO)): needs additional libraries + for extension libraries to link statically. + [ruby-core:70499] [Feature #9018] + +Fri Aug 21 18:49:22 2015 Koichi Sasada + + * include/ruby/ruby.h, cont.c, vm_trace.c: add a new event + fiber_switch. We need more discussion about this feature + so that I don't write it on NEWS. + [Feature #11348] + + * test/ruby/test_settracefunc.rb: add tests. + +Fri Aug 21 17:32:42 2015 Koichi Sasada + + * vm_insnhelper.c (vm_invoke_block): we should not expect ci->argc is + stable after invoking a block. [Bug #11451] + + * test/ruby/test_yield.rb: add a test. This test script is given by + Alex Dowad. + +Fri Aug 21 06:35:50 2015 Aaron Patterson + + * test/openssl/test_ssl_session.rb: Fix tests so that they take in to + account OpenSSL installations that have SSLv3 disabled by default. + Thanks Jeremy Evans for the patches. + [Bug #11366] [Bug #11367] + +Thu Aug 20 22:19:17 2015 Nobuyoshi Nakada + + * vm_method.c (basic_obj_respond_to): call respond_to_missing? + only when redefined. [ruby-core:70460] [Bug #11465] + +Thu Aug 20 14:13:27 2015 Nobuyoshi Nakada + + * vm_eval.c (check_funcall_respond_to): share the behavior with + rb_obj_respond_to. [ruby-core:70460] [Bug #11465] + + * vm_method.c (vm_respond_to): extract from rb_obj_respond_to and + merge r39881. + +Thu Aug 20 08:53:09 2015 Nobuyoshi Nakada + + * vm_method.c (rb_obj_respond_to): reuse found method entry + instead of searching same entry repeatedly. + +Thu Aug 20 08:31:17 2015 Nobuyoshi Nakada + + * dir.c (replace_real_basename), win32/win32.c (opendir_internal): + check reparse point tags and treat supported tags only as + symbolic links. [ruby-core:70454] [Bug #11462] + +Wed Aug 19 23:59:28 2015 Aaron Patterson + + * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): add OP_ALL to + existing options rather than just setting it. Some vendors apply + custom patches to their versions of OpenSSL that set default values + for options. This commit respects the custom patches they've + applied. + + * test/openssl/test_ssl.rb (class OpenSSL): check that OP_ALL has been + added to the options. + +Wed Aug 19 23:55:29 2015 Nobuyoshi Nakada + + * process.c (rb_f_spawn): [DOC] elaborate environment variable + values. [ruby-core:70456] [Bug #11463] + +Wed Aug 19 23:48:06 2015 Nobuyoshi Nakada + + * win32/win32.c (winnt_lstat): check reparse point tags and treat + supported tags only as symbolic links. + [ruby-core:70454] [Bug #11462] + +Tue Aug 18 20:05:49 2015 NARUSE, Yui + + * thread_pthread.c (reserve_stack): ensure the memory is really + allocated. [Bug #11457] + +Tue Aug 18 17:19:21 2015 Nobuyoshi Nakada + + * parse.y (IS_BEG): include labeled argument state, which was + EXPR_LABELARG. [ruby-dev:49221] [Bug #11456] + +Tue Aug 18 16:16:21 2015 Nobuyoshi Nakada + + * include/ruby/ruby.h (RClass): define only in C, `__attribute__` + between `struct` and the name can't compile with g++. + [ruby-core:70297] [Bug #11426] + +Mon Aug 17 20:56:36 2015 Nobuyoshi Nakada + + * parse.y: fix syntax error at do-block after a conditional + operator. separate label-allowed and after-a-label states from + others as bit flags. [ruby-dev:48790] [Bug #10653] + +Mon Aug 17 11:57:36 2015 Nobuyoshi Nakada + + * io.c (rb_io_each_codepoint): raise an exception at incomplete + character before EOF when conversion takes place. [Bug #11444] + +Sun Aug 16 17:33:45 2015 SHIBATA Hiroshi + + * gems/bundled_gems: update latest version of bundled gems. + It includes minitest-5.8.0 and test-unit 3.1.3. + +Sun Aug 16 17:24:10 2015 Kazuki Tsujimoto + + * gc.c (gc_mark_children): check if RCLASS_EXT is valid + before marking. This fixes the following test failure + introduced in r51126: + + make test-all TESTOPTS='--gc-stress ruby/test_refinement.rb' + +Sat Aug 15 10:51:08 2015 Nobuyoshi Nakada + + * ext/win32/lib/win32/registry.rb (API#SetValue): data size should + be in bytes, not in chars. [ruby-core:70365] [Bug #11439] + +Sat Aug 15 10:15:20 2015 Nobuyoshi Nakada + + * io.c (rb_io_each_codepoint): read more data when read partially. + [ruby-core:70379] [Bug #11444] + +Sat Aug 15 04:33:39 2015 Eric Wong + + * hash.c (any_hash): skip rb_objid_hash for static syms + (rb_num_hash_start): extract from rb_ident_hash + (rb_objid_hash): call rb_num_hash_start + (rb_ident_hash): ditto + [ruby-core:70181] [Feature #11405] + +Sat Aug 15 04:16:13 2015 Eric Wong + + * iseq.c (rb_iseq_mark): reduce NULL checks + +Fri Aug 14 18:50:57 2015 Eric Wong + + * method.h (METHOD_ENTRY_VISI_SET): cast visi to int + (METHOD_ENTRY_FLAGS_SET): ditto + +Fri Aug 14 18:43:11 2015 Eric Wong + + * process.c (close_unless_reserved): add extra check + (dup2_with_divert): remove + (redirect_dup2): use dup2 without divert + (before_exec_non_async_signal_safe): adjust call + comment + (rb_f_exec): stop timer thread for all OSes + (rb_exec_without_timer_thread): remove + * eval.c (ruby_cleanup): adjust call + * thread.c (rb_thread_stop_timer_thread): always close pipes + * thread_pthread.c (struct timer_thread_pipe): add writing field, + mark owner_process volatile for signal handlers + (rb_thread_wakeup_timer_thread_fd): check valid FD + (rb_thread_wakeup_timer_thread): set writing flag to prevent close + (rb_thread_wakeup_timer_thread_low): ditto + (CLOSE_INVALIDATE): new macro + (close_invalidate): new function + (close_communication_pipe): removed + (setup_communication_pipe_internal): make errors non-fatal + (setup_communication_pipe): ditto + (thread_timer): close reading ends inside timer thread + (rb_thread_create_timer_thread): make errors non-fatal + (native_stop_timer_thread): close write ends only, always, + wait for signal handlers to finish + (rb_divert_reserved_fd): remove + * thread_win32.c (native_stop_timer_thread): adjust (untested) + (rb_divert_reserved_fd): remove + * vm_core.h: adjust prototype + [ruby-core:70386] [Bug #11336] + +Fri Aug 14 18:40:43 2015 Nobuyoshi Nakada + + * ext/win32/lib/win32/registry.rb (API#SetValue): add terminator + size, not 1 byte. [ruby-core:70365] [Bug #11439] + +Thu Aug 13 22:49:42 2015 Juanito Fatas + + * lib/timeout.rb (Timeout#timeout): freeze a string message to + reduce string allocations. [Fix GH-996] + +Thu Aug 13 17:42:34 2015 Koichi Sasada + + * vm_core.h (rb_call_info_kw_arg_bytes): move the definition + to iseq.h because this function is shared with iseq.c and compile.c. + +Thu Aug 13 14:36:31 2015 Nobuyoshi Nakada + + * object.c (rb_num_to_dbl): move from num2dbl_with_to_f in math.c. + +Thu Aug 13 09:01:25 2015 Eric Wong + + * load.c (features_index_add): avoid repeat calculation + +Wed Aug 12 21:57:31 2015 Koichi Sasada + + * id_table.c: IMPL() macro accept op as _opname instead of opname + because jemalloc seems to replace the word `free' to `je_free'. + +Wed Aug 12 21:51:11 2015 Koichi Sasada + + * id_table.c (mix_id_table_insert): fix memory leak. + +Wed Aug 12 21:17:38 2015 Eric Wong + + * iseq.c (iseq_memsize): reimplement for wrapper + (param_keyword_size): extracted from iseq_memsize + (iseqw_mark): new mark function + (iseqw_data_type): new data type + (iseqw_new): wrap as iseqw_data_type + (iseqw_check): adjust for wrapper + (Init_ISeq): remove iseqw_iseq_key initialization + * test/objspace/test_objspace.rb: new test + [ruby-core:70344] [Feature #11435] + +Wed Aug 12 21:15:27 2015 Eric Wong + + * vm_core.h (rb_call_info_kw_arg_bytes): extract from compile.c + * compile.c (iseq_build_callinfo_from_hash): use above function + +Wed Aug 12 18:00:17 2015 Koichi Sasada + + * class.c (move_refined_method): same as the last commit. + +Wed Aug 12 17:57:53 2015 Koichi Sasada + + * class.c, gc.c vm.c: use ID_TABLE_* instead of ST_* + (such as ST_CONTINUE) for enum rb_id_table_iterator_result. + +Wed Aug 12 17:05:36 2015 Koichi Sasada + + * id_table.h: introduce ID key table. + [Feature #11420] + + This table only manage ID->VALUE table to reduce overhead of st. + + Some functions prefixed rb_id_table_* are provided. + + * id_table.c: implement rb_id_table_*. + + There are several algorithms to implement it. + + Now, there are roughly 4 types: + + * st + * array + * hash (implemented by Yura Sokolov) + * mix of array and hash + + The macro ID_TABLE_IMPL can choose implementation. + You can see detailes about them at the head of id_table.c. + + At the default, I choose 34 (mix of list and hash). + This is not final decision. + Please report your suitable parameters or + your data structure. + + * symbol.c: introduce rb_id_serial_t and rb_id_to_serial() + to represent ID by serial number. + + * internal.h: use id_table for method tables. + + * class.c, gc.c, marshal.c, vm.c, vm_method.c: ditto. + +Wed Aug 12 05:19:11 2015 Eric Wong + + * parse.y (rb_parser_compile_cstr): remove volatile arg + (rb_parser_compile_string): ditto + (rb_parser_compile_file): ditto + (rb_parser_compile_string_path): ditto + (rb_parser_compile_file_path): ditto + [ruby-core:70323] [Misc #11431] + +Tue Aug 11 22:59:57 2015 Tanaka Akira + + * numeric.c (Init_Numeric): Fix document for Float::MIN and + Float::EPSILON. + +Tue Aug 11 15:22:31 2015 Nobuyoshi Nakada + + * include/ruby/ruby.h (ALLOCV_N): check integer overflow, as well + as ruby_xmalloc2. pointed out by Paul . + +Tue Aug 11 14:57:09 2015 Nobuyoshi Nakada + + * array.c (rb_ary_repeated_permutation): fix buffer size, ALLOCV_N + already multiplies element size. + +Tue Aug 11 12:13:20 2015 Jeremy Evans + + * test/openssl/test_ssl.rb: Fix LocalJumpErrors being raised + in OpenSSL tests. [ruby-core:70020][Bug #11368] + +Tue Aug 11 11:54:13 2015 Alexey Lipnyagov + + * string.c: Fix documentation for String#slice + [ruby-core:70298][Bug #11427] + +Tue Aug 11 11:53:28 2015 Nobuyoshi Nakada + + * parse.y (superclass): make superclass rule optional and allow + any contents without a terminator. [EXPERIMENTAL] + +Tue Aug 11 10:58:42 2015 Juanito Fatas + + * string.c: [DOC] Make #end_with? example doc symmetry + with #start_with? [fix GH-992][ci skip] + +Tue Aug 11 10:51:19 2015 SHIBATA Hiroshi + + * test/ruby/test_array.rb: Add test for `Array#flatten` with level 1 + [fix GH-986] Patch @yui-knk + +Tue Aug 11 10:48:16 2015 SHIBATA Hiroshi + + * enum.c: added doc for Enumerable#zip + [fix GH-985] Patch by @yui-knk + * test/ruby/test_enum.rb: added tests for Enumerable#zip + [fix GH-985] Patch @yui-knk + +Tue Aug 11 10:33:26 2015 SHIBATA Hiroshi + + * vm_method.c: typo fix [fix GH-993][ci skip] Patch by @0x0dea + * test/ruby/test_refinement.rb: ditto. + +Sun Aug 9 14:15:54 2015 Nobuyoshi Nakada + + * vm.c (Init_vm_objects, rb_vm_fstring_table): use frozen_strings + table in rb_vm_t. [ruby-core:70274] [Bug #11423] + +Sat Aug 8 03:59:51 2015 Zachary Scott + + * object.c: [DOC] Improve grammar for Module#=== + Patch by @SkyBirdSoar in documenting-ruby/ruby#52: + https://github.com/documenting-ruby/ruby/pull/52 + +Sat Aug 8 03:39:33 2015 Zachary Scott + + * hash.c: [DOC] Improve description of symbol key syntax + Patch by Raphael Das Gupta in documenting-ruby/ruby#51: + https://github.com/documenting-ruby/ruby/pull/51 + +Fri Aug 7 21:04:19 2015 Nobuyoshi Nakada + + * parse.y (parser_params): turn in_def and in_single into bit + flags and reduce the size by 2-words. + + * parse.y (parser_params): remove redundant prefixes. + + * parse.y (yylex): non-pure parser has not been supported since + merger of ripper. change argument types from void pointers. + +Fri Aug 7 17:07:56 2015 Nobuyoshi Nakada + + * proc.c (method_super_method): uncallable method entry does not + have the defined class, use the owner instead. + [ruby-core:70254] [Bug #11419] + + * test/ruby/test_method.rb (test_super_method_unbound): add test + by Akira Matsuda. + +Thu Aug 6 10:49:57 2015 Nobuyoshi Nakada + + * node.c (rb_alloc_tmp_buffer): round up the size and check the + range. + + * ruby_atomic.h (ATOMIC_VALUE_EXCHANGE, ATOMIC_VALUE_CAS): add + atomic operations for VALUE. + +Thu Aug 6 08:15:49 2015 Aaron Patterson + + * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): move + SSLSocket#sysclose to Ruby. + + * ext/openssl/ossl_ssl.c (ossl_ssl_close): ditto + +Thu Aug 6 07:57:21 2015 Aaron Patterson + + * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): move nonblock + enable to SSLSocket#initialize and remove Nonblock module. + +Thu Aug 6 07:53:47 2015 Aaron Patterson + + * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): move + OpenSSL::SSL::SSLSocket#initialize to Ruby. + + * ext/openssl/ossl_ssl.c: ditto + +Thu Aug 6 02:25:31 2015 Nobuyoshi Nakada + + * node.c (rb_alloc_tmp_buffer): use NODE_ALLOCA to mark locations + like as builtin alloca. [ruby-core:70251] [Bug #11418] + +Wed Aug 5 14:37:55 2015 Nobuyoshi Nakada + + * transcode.c (rb_econv_open0): rb_econv_t::source_encoding_name + and rb_econv_t::destination_encoding_name should refer static + strings always or NULL. [ruby-core:70247] [Bug #11416] + +Tue Aug 4 16:53:43 2015 Aaron Patterson + + * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): extract callback + lookup to private Ruby methods. This means we can keep the default + DH callback logic hidden from consumers. Also, since the SSLSocket + always has a context, we can remove conditionals about that + instance. + + * ext/openssl/ossl_ssl.c: move callback lookup methods to private Ruby + methods. + +Tue Aug 4 16:40:26 2015 Koichi Sasada + + * test/ruby/test_module.rb: should not expect a method table ordering. + [Feature #11414] + +Tue Aug 04 15:30:04 2015 Koichi Sasada + + * proc.c (rb_block_clear_env_self): clear by Qfalse instead of Qnil. + [Bug #11409] + + * test/ruby/test_eval.rb: add tests for this issue, + written by @0x0dea. + https://github.com/ruby/ruby/pull/988 + +Tue Aug 4 12:12:14 2015 Eric Wong + + * variable.c: wrap long lines + +Tue Aug 4 09:32:30 2015 SHIBATA Hiroshi + + * proc.c: Removing duplicate doc [fix GH-987][ci skip] + Patch by @ronakjangir47 + +Tue Aug 4 09:21:58 2015 Richard Schneeman + + * doc/contributing.rdoc: fixed wrong instructions with OS X + [fix GH-989][ci skip] Patch by @schneems + +Mon Aug 3 10:08:33 2015 Nobuyoshi Nakada + + * re.c (rb_memsearch): should match only char boundaries in wide + character encodings. [ruby-core:70220] [Bug #11413] + +Sun Aug 2 07:01:17 2015 Eric Wong + + * ext/openssl/lib/openssl/buffering.rb (gets): + avoid comparing fixnum with nil + * test/openssl/test_pair.rb: test gets with limit when EOF is hit + Thanks to Bar Hofesh for the bug report + and testing. + [ruby-core:70149] [Bug #11400] + +Sat Aug 1 17:13:15 2015 Kazuki Tsujimoto + + * lib/net/http/response.rb (Net::HTTPResponse::Inflater#finish): + fix a bug that empty gzipped response body causes Zlib::BufError. + [ruby-core:68846] [Bug #11058] + + * test/net/http/test_httpresponse.rb: tests for the above. + +Sat Aug 1 17:05:18 2015 Kazuki Tsujimoto + + * lib/net/http/response.rb (Net::HTTPResponse#inflater): + fix TypeError. An exception object might be nil. + [ruby-core:68846] [Bug #11058] + +Sat Aug 1 09:09:46 2015 Aaron Patterson + + * ext/openssl/ossl_ssl.c (ossl_sslctx_setup): Implement + SSLContext#options and options= using SSL_CTX_set_options and + SSL_CTX_get_options. This reduces the number of ivars we need and + simplifies `ossl_sslctx_setup`. + + * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): Default `options` + to SSL_OP_ALL + +Sat Aug 1 06:54:36 2015 Aaron Patterson + + * ext/openssl/ossl_ssl.c (Init_ossl_ssl): OpenSSL declares these + constants as longs, so we should follow that and use LONG2NUM. + http://git.io/vOqxD + +Sat Aug 1 04:06:29 2015 Aaron Patterson + + * ext/openssl/ossl_ssl.c (ossl_call_tmp_dh_callback): change callback + to return the Ruby dh (or ecdh) object that the caller cares about + instead of doing rb_iv_get / set to communicate. This means we can + remove an rb_iv_get call, and only use the set calls for their + intended purpose (to prevent the object from being GC'd). + + * ext/openssl/ossl_ssl.c (ossl_tmp_dh_callback): ditto + * ext/openssl/ossl_ssl.c (ossl_call_tmp_ecdh_callback): ditto + * ext/openssl/ossl_ssl.c (ossl_tmp_ecdh_callback): ditto + +Sat Aug 1 03:49:31 2015 Aaron Patterson + + * ext/openssl/ossl_ssl.c (ossl_call_tmp_dh_callback): Similarly to the + tmp_ecdh_callback, the SSLSocket instance always holds a reference + to the SSLContext object (it's always set in `initialize`). The + SSLContext holds a reference to the tmp_dh_callback. Ask the + context for the callback instead of storing the callback in two + places. + +Sat Aug 1 03:43:10 2015 Aaron Patterson + + * ext/openssl/ossl_ssl.c (ossl_call_tmp_dh_callback): create an array + and use `rb_apply` to clean up calls to `rb_protect`. + + * ext/openssl/ossl_ssl.c (ossl_tmp_dh_callback): ditto + +Sat Aug 1 03:27:12 2015 Aaron Patterson + + * ext/openssl/ossl_ssl.c (ossl_call_tmp_ecdh_callback): The SSL socket + always holds a reference to the SSLContext object, which will have + the callback object. Ask the context for the callback instead of + storing the callback in two places. + +Sat Aug 1 03:14:07 2015 Aaron Patterson + + * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): convert + `tmp_dh_callback` to Ruby, and call it when setting up an SSL + connection. This allows us to move the "default" behavior to the + reader method. + + * ext/openssl/ossl_ssl.c: call the tmp_dh_callback instead of + accessing the SSLContext's internals. + +Fri Jul 31 23:34:27 2015 Aaron Patterson + + * .travis.yml: update libssl before running tests. + Thanks to Chris Sinjakli for figuring out the + travis settings! + +Fri Jul 31 21:34:49 2015 Nobuyoshi Nakada + + * load.c (rb_require_internal): use rb_load_internal0 not to raise + a exception to be caught. + +Thu Jul 30 13:19:54 2015 Nobuyoshi Nakada + + * variable.c (rb_const_get_0): warn deprecated constant reference. + + * variable.c (rb_mod_deprecate_constant): mark constants to be + warned as deprecated. [Feature #11398] + +Thu Jul 30 11:53:54 2015 Nobuyoshi Nakada + + * thread.c (rb_thread_s_handle_interrupt): make identity hash, to + compare masking classes just by their IDs. + +Thu Jul 30 11:52:55 2015 Nobuyoshi Nakada + + * load.c (rb_load_internal0): stop separating exits at loading + from exits from execution. TAG_FATAL is the only case that + `errinfo` is a Fixnum, and should continue to exit by JUMP_TAG + but not raising as an ordinary exception. + [ruby-core:70169] [Bug #11404] + +Thu Jul 30 10:42:27 2015 Alex Dowad + + * load.c (rb_load_internal0): extra check before returning + TAG_RAISE when a non-local transfer of control happens while + loading and parsing a Ruby source file. + [ruby-core:70169] [Bug #11404] + +Thu Jul 30 08:48:42 2015 Eric Wong + + * st.c (find_entry): constify st_table* + (find_packed_index_from): ditto + (find_packed_index): ditto + (get_keys): ditto + (get_values): ditto + +Thu Jul 30 04:29:25 2015 Eric Wong + + * benchmark/bm_hash_aref_dsym.rb: new benchmark + * benchmark/bm_hash_aref_dsym_long.rb: ditto + * benchmark/bm_hash_aref_fix.rb: ditto + +Wed Jul 29 21:38:41 2015 Nobuyoshi Nakada + + * hash.c (any_hash), symbol.c (dsymbol_alloc): fix dynamic symbol + hash value by restricting in Fixnum range, that is `long`. + +Wed Jul 29 17:25:46 2015 Nobuyoshi Nakada + + * hash.c (rb_obj_hash): move in order to share with rb_any_hash. + +Wed Jul 29 16:00:22 2015 Nobuyoshi Nakada + + * string.c (str_buf_cat): consider empty non-embed string case, + not to loop infinitely. [ruby-core:70074] [Bug #11383] + +Wed Jul 29 15:25:19 2015 Nobuyoshi Nakada + + * vm_eval.c (send_internal): set method_missing_reason before + invoking overriding method_missing method so that the default + method_missing can achieve it properly. + [ruby-core:68515] [Bug #10969] + +Wed Jul 29 14:54:16 2015 Nobuyoshi Nakada + + * hash.c (rb_sym_hash): return same value as rb_any_hash() of + Symbol. [Bug #9381] + + * hash.c (rb_any_hash): fix Float hash. rb_dbl_hash() returns a + Fixnum, but not a long. [Bug #9381] + +Wed Jul 29 11:07:10 2015 Nobuyoshi Nakada + + * internal.h (LIKELY, UNLIKELY): make a boolean to enforce 1 or 0. + +Wed Jul 29 10:44:43 2015 Alex Dowad + + * gc.c: document argument passed to finalizer proc. + [fix GH-976][ci skip] Patch by @alexdowad + +Wed Jul 29 10:36:58 2015 NARUSE, Yui + + * io.c (rb_io_extract_modeenc): add option parameter `flags' + to append extra oflags to normal mode. + [Feature #11253] [ruby-core:69539] + +Wed Jul 29 04:54:47 2015 Eric Wong + + * test/rubygems/test_gem_remote_fetcher.rb: pre-generate test key + [ruby-core:70151] [Bug #11397] + +Tue Jul 28 10:32:09 2015 Nobuyoshi Nakada + + * internal.h (struct RClass): moved from ruby/ruby.h to hide the + internals. + +Tue Jul 28 08:48:29 2015 Nobuyoshi Nakada + + * configure.in (RUBY_TYPE_ATTRIBUTE): attribute declaration for + types. + +Tue Jul 28 07:23:03 2015 Eric Wong + + * symbol.h (struct RSymbol): add hashval field + * symbol.c (dsymbol_alloc): setup hashval field once + * hash.c (rb_any_hash): return RSymbol->hashval directly + * common.mk: hash.o depends on symbol.h + Thanks to Bruno Escherl for the bug report + [ruby-core:70129] [Bug #11396] + +Tue Jul 28 03:26:15 2015 Aaron Patterson + + * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): raise a more + helpful exception when verifying the peer connection and an + anonymous cipher has been selected. [ruby-core:68330] [Bug #10910] + Thanks to Chris Sinjakli for the patch. + + * test/openssl/test_ssl.rb (class OpenSSL): test for change + +Mon Jul 27 13:24:11 2015 Koichi Sasada + + * template/id.h.tmpl (ID2ATTRSET): remove an unused macro. + +Mon Jul 27 12:21:15 2015 NAKAMURA Usaku + + * test/openssl/test_ssl.rb: run tests on non-Unix platforms. + +Sun Jul 26 19:21:31 2015 Nobuyoshi Nakada + + * ext/openssl/ossl_ssl.c (ossl_ssl_alpn_protocol): fix condition + to compile, needs ALPN to be available. [Feature #9390] + +Sun Jul 26 11:29:01 2015 Nobuyoshi Nakada + + * signal.c (default_handler, Init_signal): discard SIGSYS, ENOSYS + should raise a SystemCallError always instead. + +Sun Jul 26 10:26:35 2015 Aaron Patterson + + * ext/openssl/ossl_ssl.c (ossl_call_servername_cb): set the ssl context + object returned by the servername callback on to the socket as an + instance variable. If the callback allocated a new context object + and didn't keep a reference to it, it could be GC'd out from under + the socket object. + + * test/openssl/test_ssl.rb (class OpenSSL): test for change. + +Sun Jul 26 10:07:26 2015 Aaron Patterson + + * test/openssl/test_ssl.rb (class OpenSSL): add test coverage around + OpenSSL::SSL::SSLContext#servername_cb + +Sun Jul 26 09:10:32 2015 SHIBATA Hiroshi + + * gems/bundled_gems: update latest version of bundled power_assert. + +Sun Jul 26 08:49:28 2015 SHIBATA Hiroshi + + * test/rubygems/test_gem_remote_fetcher.rb: backport rubygems upstream + change for OpenSSL key length. see detail to + https://github.com/rubygems/rubygems/pull/1290 + +Sun Jul 26 08:33:03 2015 Aaron Patterson + + * ext/openssl/lib/openssl/pkey.rb: implement DEFAULT_512 and + DEFAULT_1024 constants in Ruby. + + * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): Ask PKey for the + default DH callback since it already must check whether openssl has + been compiled with DH support. + + * ext/openssl/ossl_pkey_dh.c (OSSL_PKEY_BN): Remove C definitions of + DEFAULT_512 and DEFAULT_1024 + + * ext/openssl/ossl_pkey_dh.c (Init_ossl_dh): ditto + + * test/openssl/test_pkey_dh.rb (class OpenSSL): add test to ensure the + Ruby definitions are the same as the C definitions were. + +Sun Jul 26 08:14:59 2015 Aaron Patterson + + * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): support + specifically setting the tmp_dh_callback to nil. + + * ext/openssl/ossl_ssl.c (Init_ossl_ssl): ditto + + * test/openssl/test_pair.rb (module OpenSSL): add a test + +Sun Jul 26 07:47:14 2015 Aaron Patterson + + * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): move the default + tmp_dh_callback Ruby code and set it as a default in `initialize`. + + * ext/openssl/ossl_pkey_dh.c (static unsigned char DEFAULT_DH_512_GEN): + move this constant to Ruby. + + * ext/openssl/ossl_pkey_dh.c (static unsigned char DEFAULT_DH_1024_GEN): + ditto + + * ext/openssl/ossl_pkey_dh.c (Init_ossl_dh): ditto + + * ext/openssl/ossl_ssl.c (ossl_tmp_dh_callback): ditto + + * ext/openssl/ossl_ssl.c (ossl_sslctx_setup): tmp_dh_callback should + always be set, so we can remove this conditional + +Sun Jul 26 06:22:24 2015 Aaron Patterson + + * test/openssl/test_pair.rb: add a test ensuring that the default DH + callback is used when no DH callback is specified. + +Sun Jul 26 04:08:27 2015 Aaron Patterson + + * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): add missing + instance variables to squash warnings with alpn. + +Sun Jul 26 03:42:19 2015 Aaron Patterson + + * ext/openssl/lib/openssl/ssl.rb (module OpenSSL): move + OpenSSL::SSL::SSLContext#initialize implementation to pure Ruby. + + * ext/openssl/ossl_ssl.c (ossl_sslctx_initialize): ditto + + * ext/openssl/ossl_ssl.c (Init_ossl_ssl): ditto + +Sat Jul 25 21:03:45 2015 Nobuyoshi Nakada + + * random.c (fill_random_bytes_syscall): get rid of blocking when + no entropy is available. based on the patch by mame in + [ruby-core:70114]. [Bug #11395] + +Sat Jul 25 11:05:31 2015 Nobuyoshi Nakada + + * string.c (str_replace_shared_without_enc): fill the terminator + of embedded strings in wide char encodings. + +Sat Jul 25 06:38:36 2015 Koichi Sasada + + * vm_core.h: size should be unsigned. + * rb_call_info_t::index + * rb_iseq_constant_body::stack_max + * rb_iseq_constant_body::local_size + * rb_iseq_constant_body::param::size + * rb_iseq_constant_body::local_table_size + * rb_iseq_constant_body::is_size + * rb_iseq_constant_body::callinfo_size + + * iseq.h: same for iseq_catch_table::size. + + * compile.c: catch up these fix. + + * iseq.c: ditto. + + * proc.c: ditto. + + * vm.c: ditto. + + * vm_args.c: ditto. + + * vm_eval.c: ditto. + + * vm_insnhelper.c: ditto. + +Sat Jul 25 06:00:09 2015 Koichi Sasada + + * vm_core.h: constify rb_iseq_constant_body::line_info_table. + + * iseq.c: catch up this fix. + +Sat Jul 25 05:56:43 2015 Koichi Sasada + + * vm_core.h: constify rb_iseq_constant_body::param::opt_table and + rb_iseq_constant_body::param::keyword. + + * compile.c: catch up this fix. + +Sat Jul 25 04:47:01 2015 Koichi Sasada + + * vm_core.h: constify rb_iseq_constant_body::catch_table. + + * compile.c (iseq_set_exception_table): catch up this fix. + + * iseq.c: ditto. + + * vm.c (vm_exec): ditto. + +Fri Jul 24 21:29:54 2015 Nobuyoshi Nakada + + * st.c (EQUAL, st_delete_safe): fix arguments order to compare + function, searching key is the first and stored key is the + second always. + +Fri Jul 24 21:27:29 2015 Nobuyoshi Nakada + + * string.c (fstr_update_callback): fstring must not be a shared + string, or the content without RSTRING_FSTR may be freed. + [ruby-dev:49188] [Bug #11386] + +Fri Jul 24 20:09:43 2015 Naohisa Goto + + * test/rinda/test_rinda.rb (RingIPv6#prepare_ipv6): prevent to use + IPv6 loopback interface for + Rinda::TestRingFinger#test_make_socket_ipv6_multicast and + Rinda::TestRingFinger#test_make_socket_ipv6_multicast_hops. + The tests are skipped if there are no IPv6 devices other than the + loopback device. [Bug #11394] [ruby-dev:49199] + + * test/rinda/test_rinda.rb (test_make_socket_ipv6_multicast): ditto + for Rinda::TestRingServer#test_make_socket_ipv6_multicast. + + * test/rinda/test_rinda.rb (test_ring_server_ipv6_multicast): ditto + for Rinda::TestRingServer#test_ring_server_ipv6_multicast. + +Fri Jul 24 16:35:55 2015 Nobuyoshi Nakada + + * string.c (fstr_update_callback): pool bare strings only. + + * string.c (rb_fstring): return the original string with sharing a + fstring if it has extra attributes, not the fstring itself. + [ruby-dev:49188] [Bug #11386] + +Fri Jul 24 16:35:34 2015 yui-knk + + * file.c (rb_file_s_extname): [DOC] add an example. + + * test/ruby/test_path.rb (test_extname): add tests. [Fix GH-978] + * path starts with dot ('.a.rb') + * path includes dir name ('a/b/d/test.rb') + * path includes dir name and dir name starts with dot + ('.a/b/d/test.rb') + +Thu Jul 23 18:50:43 2015 Koichi Sasada + + * vm_core.h: constify rb_iseq_constant_body::local_table and + rb_iseq_param_keyword::table and + rb_iseq_param_keyword::default_values. + + * compile.c: catch up this fix. + + * iseq.c: ditto. + +Thu Jul 23 17:30:43 2015 Koichi Sasada + + * vm_core.h: constify rb_iseq_constant_body::iseq_encoded and + rb_control_frame_t::pc. + + * compile.c (rb_iseq_translate_threaded_code): catch up this fix. + + * iseq.c: ditto. + + * vm_exec.c (vm_exec_core): ditto. + +Thu Jul 23 10:25:46 2015 Nobuyoshi Nakada + + * include/ruby/ruby.h: add raw FL macros, which assume always the + argument object is not a special constant. + + * internal.h (STR_EMBED_P, STR_SHARED_P): valid only for T_STRING. + + * string.c: deal with taint flags directly across String instances. + +Thu Jul 23 09:05:28 2015 Nobuyoshi Nakada + + * parse.y (lambda_body): pop cmdarg stack for lookahead + token. [ruby-core:70067] [Bug #11380] + +Thu Jul 23 04:03:03 2015 Aaron Patterson + + * ext/openssl/ossl_ssl.c: fix tests by not setting the instance + variable on the frozen ssl instance. + +Thu Jul 23 03:32:26 2015 Aaron Patterson + + * ext/openssl/ossl_ssl.c: add ECDH callback support. [Feature #11356] + + * test/openssl/test_pair.rb: test for ECDH callback support + +Thu Jul 23 03:29:49 2015 Aaron Patterson + + * ext/openssl/ossl_ssl.c: add ALPN support. [Feature #9390] + + * ext/openssl/extconf.rb: detect ALPN support in OpenSSL + + * test/openssl/test_ssl.rb: test for ALPN + +Wed Jul 22 23:44:17 2015 Nobuyoshi Nakada + + * string.c (rb_str_reverse): reversed string is not a substring, + and should not set coderange of the original string. + [ruby-dev:49189] [Bug #11387] + +Wed Jul 22 20:17:51 2015 Koichi Sasada + + * vm_core.h: modify layout of rb_iseq_constant_body. + + Move frequent accessing fields to upper part. + +Wed Jul 22 19:57:47 2015 Koichi Sasada + + * vm_core.h: remove unused declaration of + iseq_compile_data_ensure_node_stack. + +Wed Jul 22 19:52:45 2015 Koichi Sasada + + * vm_core.h: separate rb_iseq_body into rb_iseq_constant_body and + rb_iseq_variable_body (rb_iseq_t::variable_body). + + rb_iseq_variable_body can be modified after compilation. + + * compile.c: use rb_iseq_t::variable_body. + + * iseq.c: ditto. + + * thread.c: ditto. + +Wed Jul 22 17:50:35 2015 SHIBATA Hiroshi + + * lib/matrix/eigenvalue_decomposition.rb: refine code style. + [fix GH-959][ci skip] Patch by @bogdanvlviv + +Wed Jul 22 15:48:47 2015 SHIBATA Hiroshi + + * test/ruby/test_range.rb: Add test case for Range#end with + exclude_end true case. [fix GH-968] Patch by @yui-knk + +Wed Jul 22 09:45:31 2015 Maksim Sitnikov + + * numeric.c (num_coerce): [DOC] fix doc for Numeric#coerce, + missing '+'. [Fix GH-974] + +Wed Jul 22 07:24:18 2015 Koichi Sasada + + * make rb_iseq_t T_IMEMO object (type is imemo_iseq). + + All contents of previous rb_iseq_t is in rb_iseq_t::body. + Remove rb_iseq_t::self because rb_iseq_t is an object. + + RubyVM::InstructionSequence is wrapper object points T_IMEMO/iseq. + So RubyVM::ISeq.of(something) method returns different wrapper + objects but they point the same T_IMEMO/iseq object. + + This patch is big, but most of difference is replacement of + iseq->xxx to iseq->body->xxx. + + (previous) rb_iseq_t::compile_data is also located to + rb_iseq_t::compile_data. + It was moved from rb_iseq_body::compile_data. + + Now rb_iseq_t has empty two pointers. + I will split rb_iseq_body data into static data and dynamic data. + + * compile.c: rename some functions/macros. + Now, we don't need to separate iseq and iseqval (only VALUE). + + * eval.c (ruby_exec_internal): `n' is rb_iseq_t (T_IMEMO/iseq). + + * ext/objspace/objspace.c (count_imemo_objects): count T_IMEMO/iseq. + + * gc.c: check T_IMEMO/iseq. + + * internal.h: add imemo_type::imemo_iseq. + + * iseq.c: define RubyVM::InstructionSequence as T_OBJECT. + Methods are implemented by functions named iseqw_.... + + * load.c (rb_load_internal0): rb_iseq_new_top() returns + rb_iseq_t (T_IMEMO/iesq). + + * method.h (rb_add_method_iseq): accept rb_iseq_t (T_IMEMO/iseq). + + * vm_core.h (GetISeqPtr): removed because it is not T_DATA now. + + * vm_core.h (struct rb_iseq_body): remove padding for + [Bug #10037][ruby-core:63721]. + +Wed Jul 22 07:15:33 2015 Koichi Sasada + + * ext/objspace/objspace.c (total_i): no need to skip singleton classes. + +Wed Jul 22 06:37:54 2015 Koichi Sasada + + * vm_core.h: constify rb_call_info_t::kw_arg, + rb_control_frame_t::iseq and rb_control_frame_t::block_iseq. + + * iseq.c (iseq_free): catch up this fix. + + * vm.c: ditto. + + * vm_dump.c: ditto. + +Wed Jul 22 06:25:45 2015 Koichi Sasada + + * vm_core.h: constify rb_call_info_t::blockiseq and rb_block_t::iseq. + + * vm.c, vm_insnhelper.c: catch up this fix. + + * iseq.c (iseq_data_to_ary): constify the first iseq parameter. + + * vm_insnhelper.c (vm_make_proc_with_iseq): ditto. + +Wed Jul 22 06:17:35 2015 Koichi Sasada + + * method.h: constify rb_method_iseq_t::iseqptr. + + * proc.c (rb_method_entry_min_max_arity): catch up this fix. + + * vm_insnhelper.c (def_iseq_ptr): constify. + +Wed Jul 22 03:37:39 2015 Koichi Sasada + + * gc.c (internal_object_p): Now a singleton classes appear by + ObjectSpace.each_object. [Bug #11360] + + * test/ruby/test_objectspace.rb: add a test about it. + +Tue Jul 21 21:21:33 2015 Nobuyoshi Nakada + + * thread.c (do_select): replace switch and goto with a loop to + suppress maybe-uninitialized warnings by gcc6. + + * thread.c (set_unblock_function, rb_wait_for_single_fd): ditto. + +Tue Jul 21 20:32:33 2015 SHIBATA Hiroshi + + * test/ruby/test_range.rb: Add test for Range#hash + [fix GH-969] Patch by @yui-knk + +Tue Jul 21 19:43:20 2015 Koichi Sasada + + * compile.c: constify the first parameter (iseq). + * iseq_add_mark_object() + * iseq_add_mark_object_compile_time() + + * iseq.c, iseq.h (rb_iseq_add_mark_object): ditto. + +Tue Jul 21 16:18:48 2015 Eric Wong + + * test/socket/test_nonblock.rb: increase buffer sizes + to OpenBSD limits. Thanks to Jeremy Evans + [ruby-core:70058] + +Tue Jul 21 16:08:53 2015 Eric Wong + + * load.c (ruby_dln_librefs): make static + +Tue Jul 21 13:36:54 2015 yuuji.yaginuma + + * lib/optparse.rb (complete): [DOC] fix typo. [Fix GH-973] + +Tue Jul 21 05:20:21 2015 Eric Wong + + * io.c (nogvl_wait_for_single_fd): new function for Linux + (maygvl_copy_stream_wait_read): Linux-specific version + (nogvl_copy_stream_wait_write): use nogvl_wait_for_single_fd + [ruby-core:70051] [Feature #11377] + +Mon Jul 20 15:04:30 2015 Eric Wong + + * parse.y (parser_initialize): avoid redundant zero-ing + +Mon Jul 20 12:12:05 2015 Eric Wong + + * parse.y (struct parser_params): pack: 88 => 256 bytes on 64-bit + [ruby-core:70034] [Feature #11371] + +Sun Jul 19 14:29:18 2015 windwiny + + * ext/pty/pty.c: [DOC] fix example typo, an old name at move from + PTY.open. [Fix GH-972] + +Sat Jul 18 21:29:19 2015 Nobuyoshi Nakada + + * thread.c (vm_check_ints_blocking): gather common statements at + the end, and prefer LIKELY for Visual C optimization. + +Sat Jul 18 20:44:56 2015 Nobuyoshi Nakada + + * load.c (rb_load_internal0): do not raise any exceptions but + return the result tag state. + + * load.c (rb_load_protect): reduce nested EXEC_TAGs. + +Sat Jul 18 19:52:17 2015 Nobuyoshi Nakada + + * gc.c (run_finalizer): set and restore safe level here to reduce + nested EXEC_TAGs. + +Sat Jul 18 18:45:22 2015 Nobuyoshi Nakada + + * eval.c (ruby_cleanup): error_handle() returns exit status to the + system, not internal error state, do not convert the exit status + again. + +Sat Jul 18 10:29:03 2015 Eric Wong + + * test/ruby/test_process.rb: test thread+sigs work after failed exec + +Sat Jul 18 07:20:18 2015 Jeremy Evans + + * test/socket/test_nonblock: use smaller buffer for sendmsg + [ruby-core:70016] [Bug #11364] + +Sat Jul 18 07:04:24 2015 Eric Wong + + * signal.c (trap_handler): cleanup to use RSTRING_GETMEM + memcmp + +Sat Jul 18 02:53:06 2015 Eric Wong + + * io.c (argf_read_nonblock): support `exception: false' + (io_nonblock_eof): new function + (io_read_nonblock): use io_nonblock_eof + (argf_getpartial): accept kwargs hash for `exception: false' + * test/ruby/test_argf.rb (test_read_nonblock): new test + * NEWS: add item for ARGF.read_nonblock + [ruby-core:70000] [Feature #11358] + +Fri Jul 17 23:51:31 2015 Nobuyoshi Nakada + + * vm_eval.c (rb_eval_cmd): $SAFE=4 has been deprecated. + +Fri Jul 17 22:18:09 2015 Nobuyoshi Nakada + + * compile.c (iseq_compile_each): use enum ruby_tag_type names. + + * vm_core.h (ruby_tag_type): move from eval_intern.h for compiling + break/next/redo/return. + +Fri Jul 17 15:39:19 2015 Nobuyoshi Nakada + + * include/ruby/encoding.h (ENC_CODERANGE_CLEAN_P): predicate that + tells if the coderange is clean, that is 7bit or valid, and no + needs to scrub. + + * re.c (rb_reg_expr_str): use ENC_CODERANGE_CLEAN_P. + + * string.c (enc_strlen, rb_enc_cr_str_buf_cat, rb_str_scrub): + ditto. + + * string.c (rb_str_enumerate_chars): ditto, and suppress a warning + by gcc6. + +Fri Jul 17 15:36:52 2015 yui-knk + + * test/ruby/test_range.rb (test_first_last): Add test for + `Range.new`. [Fix GH-971] + +Fri Jul 17 15:36:40 2015 yui-knk + + * test/ruby/test_range.rb (test_first_last): Add assertions to + test of `Range#last` with exclude_end true case. [Fix GH-970] + +Fri Jul 17 09:59:14 2015 Eric Wong + + * thread.c (rb_thread_alone): simplify + +Fri Jul 17 09:58:32 2015 Eric Wong + + * lib/rinda/tuplespace.rb: remove enumerator require + * test/pathname/test_pathname.rb: ditto + +Fri Jul 17 05:33:58 2015 Eric Wong + + * iseq.c (rb_iseq_compile_with_option): reuse result of previous + GET_THREAD() call + * thread.c (thread_create_core): ditto + (rb_mutex_trylock): ditto + (rb_mutex_lock): ditto + * process.c (rb_waitpid): avoid multiple eval from RUBY_VM_CHECK_INTS + * thread.c (rb_thread_check_ints): ditto + +Thu Jul 16 19:12:30 2015 Eric Wong + + * thread.c (mutex_alloc): remove needless volatile + +Thu Jul 16 22:05:29 2015 Koichi Sasada + + * vm_core.h: constify rb_iseq_t::parent_iseq. + + rb_iseq_t::local_iseq is not constant data because + local_iseq::flip_cnt can be modified (commented). + + * compile.c: catch up this fix. + + * iseq.c: ditto. + + * vm_insnhelper.c: ditto. + +Thu Jul 16 21:47:47 2015 Naohisa Goto + + * process.c (redirect_dup2): when the new FD of dup2() conflicts + with one of the timer thread FDs, the internal FD is diverted. + [Bug #11336] [ruby-core:69886] [Bug #11350] [ruby-core:69961] + + * process.c (dup2_with_divert): new function for the above purpose. + + * thread_pthread.c (rb_divert_reserved_fd): new function for + diverting reserved FD. If the given FD is the same as one of the + reserved FDs, the reserved FD number is internally changed. + It returns -1 when error. Otherwise, returns 0. It also returns + 0 if there is no need to change reserved FD number. + + * thread_win32.c (rb_divert_reserved_fd): always returns 0 because + of no reserved FDs. + + * internal.h (rb_divert_reserved_fd): prototype declaration. + It is Ruby internal use only. + +Thu Jul 16 21:47:46 2015 Koichi Sasada + + * iseq.c (rb_iseq_disasm): rename rb_iseq_t *iseqdat to iseq + and VALUE *iseq to code. + + * iseq.c (rb_iseq_disasm_insn): ditto. + +Thu Jul 16 14:34:24 2015 Nobuyoshi Nakada + + * vm.c (REWIND_CFP): keep the arguments region inside the valid + value stack. [ruby-core:69969] [Bug #11352] + +Thu Jul 16 11:38:21 2015 Eric Wong + + * process.c (close_unless_reserved): declare type of `fd' arg + +Thu Jul 16 08:47:29 2015 Eric Wong + + * load.c (rb_construct_expanded_load_path): fstring expanded path + (get_loaded_features_index): fstring feature path + (rb_provide_feature): ditto + [ruby-core:69871] [Feature #11331] + +Thu Jul 16 02:56:14 2015 Eric Wong + + * thread.c (thread_initialize): avoid RSTRING_PTR and NUMT2INT + +Thu Jul 16 01:00:46 2015 Naohisa Goto + + * test/ruby/test_process.rb (test_exec_close_reserved_fd): test for + [Bug #11353] + +Thu Jul 16 00:35:42 2015 Kazuhiro NISHIYAMA + + * .gitignore: ignore version.i. + +Wed Jul 15 23:40:32 2015 Naohisa Goto + + * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking): + use RUBY (= EnvUtil.rubybin) + +Wed Jul 15 23:01:22 2015 Naohisa Goto + + * process.c (redirect_close, parent_redirect_close): should not close + reserved FD. It should be closed in the exec system call due to the + O_CLOEXEC or FD_CLOEXEC flag. [Bug #11353] [ruby-core:69977] + + * process.c (close_unless_reserved): new function to close FD unless + it is reserved for internal communication. + + * thread_pthread.c (rb_reserved_fd_p): should check owner_process pid + to avoid false positive in forked child process. + +Wed Jul 15 18:31:18 2015 Eric Wong + + * proc.c (proc_mark): remove redundant check + * vm.c (env_mark): ditto + +Wed Jul 15 17:27:40 2015 Eric Wong + + * iseq.c (iseq_mark): remove check for data pointer + * proc.c (binding_mark): ditto + * vm.c (rb_thread_mark): ditto + * vm_trace.c (tp_mark): ditto + +Wed Jul 15 16:55:04 2015 Nobuyoshi Nakada + + * encoding.c (enc_autoload): drop dummy encoding flag from + the loaded encoding index. this flag is used only in this + source. + +Wed Jul 15 14:39:29 2015 Koichi Sasada + + * vm.c (vm_make_env_each): add comments about env layout. + Do not use `i' to specify `new_ep'. + + * vm.c (rb_proc_create, rb_vm_make_proc_lambda): envval is not used. + +Wed Jul 15 08:59:19 2015 Nobuyoshi Nakada + + * gc.h (RUBY_MARK_UNLESS_NULL): evaluate the argument only once + to get rid of inadvertent side effects. + +Wed Jul 15 02:53:11 2015 Koichi Sasada + + * vm_core.h, vm.c: remove rb_proc_t::envval because we can know it via + rb_proc_t::block::ep. + + rb_vm_proc_envval(const rb_proc_t *proc) returns an Env object which + the Proc object use. + + * proc.c: catch up this fix. + + * vm_dump.c (rb_vmdebug_proc_dump_raw): ditto. + +Wed Jul 15 02:27:22 2015 Koichi Sasada + + * vm_core.h, vm.c: remove rb_env_t::prev_envval because we can know it + via env->ep. + + rb_vm_env_prev_envval(env) returns prev_envval via env->ep. + + * vm_core.h (rb_vm_env_local_variables): change parameter type + from VALUE (T_DATA/env) to `const rb_env_t *' to make same as + rb_vm_env_prev_envval(). + + * proc.c: catch up these changes. + + * vm_dump.c: ditto. + + * vm.c: rename macros. + + * ENV_IN_HEAP_P() to VM_EP_IN_HEAP_P() because it uses ep. + * ENV_VAL() to VM_ENV_EP_ENVVAL() because it is too short. + +Wed Jul 15 01:09:09 2015 Koichi Sasada + + * vm.c: refactoring Proc/Env related code. + + * vm_core.h: remove blockprocval field from rb_proc_t and rb_binding_t. + Instead of this field, mark given block in Proc at rb_env_t::env. + + * vm.c (vm_make_env_each): make an Env object with this layout. + And also simplify parameters. + + * proc.c: catch up this fix. + + * vm_core.h: remove rb_env_t::local_size because it is not used. + + * vm_dump.c (rb_vmdebug_env_dump_raw): catch up this fix. + + * vm_core.h (rb_vm_make_env_object): remove rb_vm_make_env_object() + because it is only referred from vm.c. + + * vm_eval.c (eval_string_with_cref): catch up this fix. + +Wed Jul 15 00:03:36 2015 Kazuhiro NISHIYAMA + + * gc.c (__has_feature): move into internal.h. + + * internal.h (__has_feature): ditto. + + * internal.h (__has_extension): new macro. + + * internal.h (STATIC_ASSERT): use _Static_assert with + clang. [ruby-core:69931] [Bug #11343] + +Wed Jul 15 00:00:00 2015 Kazuhiro NISHIYAMA + + * random.c (fill_random_bytes_syscall): fix compile error with + clang. [ruby-core:69931] [Bug #11343] + +Tue Jul 14 11:22:42 2015 Nobuyoshi Nakada + + * lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler#register): + notify the handler thread of new timeout registration. + + * lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler#initialize): + make sleep intervals adaptive than fixed period intervals. + + * lib/webrick/server.rb (WEBrick::GenericServer#start): flush + shutdown pipe. + + * lib/webrick/server.rb (WEBrick::GenericServer#stop): request the + server to stop immediately by sending data via shutdown pipe. + +Mon Jul 13 23:58:08 2015 Stefano Tortarolo + + * lib/webrick/httpproxy.rb (WEBrick::HTTPProxyServer#do_CONNECT): + fix typos in debugger statements. [Fix GH-967] + +Mon Jul 13 19:11:35 2015 Nobuyoshi Nakada + + * lib/timeout.rb (timeout): warn as deprecated for a long time. + +Mon Jul 13 01:37:27 2015 Zachary Scott + + * ext/openssl/ossl.c: [DOC] Backport ruby/openssl@dbb3fdb [Bug #11345] + Thanks to Tomoya Chiba for the report and help with patch. + +Sun Jul 12 09:20:02 2015 Shota Fukumori + + * ext/socket/basicsocket.c: [DOC] typo (Errno::AGAIN -> Errno::EAGAIN) + + * ext/socket/socket.c: ditto + + * ext/socket/tcpserver.c: ditto + + * ext/socket/udpsocket.c: ditto + + * ext/socket/unixserver.c: ditto + + * io.c: ditto + +Sun Jul 12 06:42:23 2015 ksss + + * test/stringio/test_stringio.rb (test_sysread): add a test for + StringIO#sysread. [Fix GH-966] + +Sat Jul 11 21:16:34 2015 ksss + + * ext/stringio/stringio.c (Init_stringio): [DOC] Fix an example, + StringIO#puts should be set "\n" at last. [Fix GH-965] + +Sat Jul 11 12:45:51 2015 Nobuyoshi Nakada + + * lib/timeout.rb (Timeout#timeout): remove regexp with wrong line + number and fix caller depth. + +Fri Jul 10 22:05:50 2015 Nobuyoshi Nakada + + * lib/timeout.rb (ExitException): removed internal exception class + and use Timeout::Error instead, as using throw/catch to isolate + each timeouts now. [ruby-dev:49179] [Bug #11344] + +Fri Jul 10 17:41:54 2015 Nobuyoshi Nakada + + * dir.c (is_case_sensitive): get attributes by the file descriptor + of open directory, instead of using mount point name. + +Fri Jul 10 10:46:02 2015 ksss + + * ext/stringio/stringio.c (writable): remove unnecessary check for + deprecated safe level 4. [Fix GH-963] + +Thu Jul 9 15:07:12 2015 NAKAMURA Usaku + + * win32/win32.c (waitpid): return immediately if interrupted. + reported by [ruby-dev:49176] [Bug #11340] + +Thu Jul 9 13:03:46 2015 Koichi Sasada + + * vm_insnhelper.c (vm_search_super_method): use CI_SET_FASTPATH(). + +Thu Jul 9 11:07:06 2015 Koichi Sasada + + * vm_core.h: remove rb_call_info_t::klass because + rb_callable_method_entry_t has information about defined class. + + * vm_insnhelper.c (vm_search_method): don't set ci->klass because + it is removed. + + * vm_insnhelper.c (rb_equal_opt): ditto. + + * vm_insnhelper.c (vm_search_superclass): removed because it is too + simple to write code directly. + + * vm_insnhelper.c (vm_defined): don't use vm_search_superclass(). + This fix avoid searching current callable `me' twice. + + * vm_insnhelper.c (vm_search_super_method): ditto. + +Thu Jul 9 10:03:10 2015 SHIBATA Hiroshi + + * lib/net/http/responses.rb: Added 308 status to CODE_TO_OBJ list. + [fix GH-961] Patch by @billinghamj + +Thu Jul 9 09:34:14 2015 Koichi Sasada + + * vm_core.h (rb_control_frame_t): fix comments (layout index). + +Thu Jul 9 09:25:50 2015 Zachary Scott + + * parse.y: Improve duplicate key warning with patch by @andremedeiros + [Fix GH-938] https://github.com/ruby/ruby/pull/938 [Bug #11327] + +Wed Jul 8 07:43:01 2015 SHIBATA Hiroshi + + * lib/csv.rb: typo fix [ci skip][fix GH-958] Patch by @henrik + +Wed Jul 8 04:42:27 2015 Eric Wong + + * iseq.c (iseq_data_to_ary): dump kw_arg as symbol + * test/-ext-/iseq_load/test_iseq_load.rb: test kw_arg roundtrip + [ruby-core:69891] [Bug #11338] + +Tue Jul 7 18:18:41 2015 Kazuhiro NISHIYAMA + + * random.c (fill_random_bytes_syscall): fix compile error. + +Tue Jul 7 16:47:30 2015 Eric Wong + + * compile.c (COMPILE_ERROR): reduce GET_THREAD() calls + +Tue Jul 7 16:39:04 2015 Eric Wong + + * random.c (fill_random_bytes_syscall): return -1 for error + * random.c (fill_random_bytes): try urandom on syscall failure + +Tue Jul 7 15:02:18 2015 Nobuyoshi Nakada + + * file.c (rb_str_normalize_ospath): skip invalid byte sequence not + to loop infinitely. this case usually does not happen as the + input name should come from real file systems. + +Tue Jul 7 14:40:08 2015 Koichi Sasada + + * vm_backtrace.c: remove debug flag introduced accidentally. + +Tue Jul 7 12:05:37 2015 Koichi Sasada + + * cont.c (cont_free): remove mysterious fflush() + introduced at r19890, maybe accidentally. + +Tue Jul 7 11:45:14 2015 Koichi Sasada + + * proc.c (rb_method_call): because data->me should be non-NULL, + do not check data->me + + * proc.c (method_inspect): ditto. + +Tue Jul 7 11:37:25 2015 Koichi Sasada + + * vm_core.h: remove rb_iseq_t::orig because rb_iseq_clone() + no longer exists. + + * iseq.c: don't use rb_iseq_t::orig. + +Tue Jul 07 11:25:57 2015 Koichi Sasada + + * iseq.c, internal.h (rb_iseq_clone): removed because we don't need to + clone iseq any more. + + * class.c (clone_method): share iseq between cloned methods. All of + method dependent information are able to refer from method entry. + +Tue Jul 7 04:42:25 2015 Eric Wong + + * string.c (Init_String): use rb_str_freeze for String#freeze + to resize internal buffer + [ruby-core:69870] [Feature #11330] + +Tue Jul 7 04:12:32 2015 Koichi Sasada + + * vm.c (vm_define_method): remove an unused local variable. + +Tue Jul 7 03:57:28 2015 Koichi Sasada + + * vm_core.h: remove rb_iseq_t::defined_method_id because it is not + needed. + + * eval.c (frame_func_id): simplify. rb_callable_method_entry_t + has enough information. + + * eval.c (frame_called_id): ditto. + + * iseq.c (prepare_iseq_build): catch up this fix. + + * proc.c (rb_mod_define_method): ditto. + + * vm.c (vm_define_method): ditto. + +Tue Jul 7 03:47:26 2015 Koichi Sasada + + * vm_core.h: remove a useless declaration. + +Tue Jul 7 03:33:20 2015 Koichi Sasada + + * vm_core.h: remove rb_iseq_t::klass to reduce dynamic data. + + * internal.h, iseq.c (rb_iseq_klass): remove it because + rb_iseq_t::klass is removed. + + * vm_insnhelper.c (vm_super_outside): do not see cfp->iseq, but + check callable method entry on a frame. + This fix simplify the logic to search super class. + + * test/ruby/test_method.rb: support super() from Proc. + Now, [Bug #4881] and [Bug #3136] was solved. + + * proc.c (rb_mod_define_method): catch up this change. + + * vm.c (vm_define_method): ditto. + + * vm_backtrace.c (rb_profile_frames): now, each `frame' objects + are rb_callable_method_entry_t data or iseq VALUEs. + + This fix introduce minor compatibility issue that + rb_profile_frame_label() always returns + rb_profile_frame_base_label(). + + * test/-ext-/debug/test_profile_frames.rb: catch up this change. + +Tue Jul 7 01:52:14 2015 Koichi Sasada + + * cont.c (fiber_init): initialize control frame correctly. + This fix does not affect any ordinal execution, but + affects debug prints. + +Mon Jul 6 17:59:05 2015 Koichi Sasada + + * vm_insnhelper.c (vm_search_super_method): do not skip calling + same methods in super. + [Bug #3351] + + * test/ruby/test_super.rb: fix a test. + +Mon Jul 6 17:59:11 2015 SHIBATA Hiroshi + + * ext/tk/tcltklib.c: removed deprecated safe level. + +Mon Jul 6 17:16:37 2015 Koichi Sasada + + * method.h, proc.c (rb_method_entry_location): make it static + and remove prefix `rb_' because it is used only in proc.c. + +Mon Jul 6 16:42:10 2015 SHIBATA Hiroshi + + * test/lib/memory_status.rb: removed redundant path. + +Mon Jul 6 01:18:11 2015 Nobuyoshi Nakada + + * test/lib/test/unit/parallel.rb: make @@project_dir one level + upper as this file had moved one level deeper. + +Sun Jul 5 23:54:10 2015 mizokami + + * lib/optparse.rb: [DOC] Fix typo. + +Sun Jul 5 18:25:37 2015 Eric Wong + + * gc.c (gc_profile_record_get): fix spelling error in keys + +Sun Jul 5 14:49:01 2015 CHIKANAGA Tomoyuki + + * README.md: fix a typo pointed out by raoulvdberge. + https://github.com/ruby/ruby/pull/953#commitcomment-11998186 + +Sun Jul 5 12:56:20 2015 Irvi Firqotul Aini + + * README.md: Added link HowToReport bugs. + +Sun Jul 5 10:51:48 2015 Nobuyoshi Nakada + + * array.c (rb_ary_sort_bang): the original array may not be + embedded even if a substitution array is embedded, as it is + embedded when the original array is short enough but not + embedded. [ruby-dev:49166] [Bug #11332] + +Sun Jul 5 09:31:40 2015 Eric Wong + + * test/ruby/test_process.rb: test for fd=3 usability in child + +Sat Jul 4 19:43:31 2015 SHIBATA Hiroshi + + * Add test case for empty array and first method with args. + Patch by @yui-knk [fix GH-955] + +Sat Jul 4 19:39:08 2015 SHIBATA Hiroshi + + * Add test for `Enumerable#sort` with block. Patch by @yui-knk + [fix GH-954] + +Sat Jul 4 14:38:43 2015 Eric Wong + + * enum.c (zip_ary): remove volatile, use RB_GC_GUARD + (zip_i): ditto + +Sat Jul 4 10:42:57 2015 Nobuyoshi Nakada + + * lib/rubygems/test_case.rb (teardown): do not delete features + loaded from the original load paths, the same libraries should + be loaded again when the same features are required. + [ruby-dev:49031] [Bug #11222] + +Sat Jul 4 09:38:52 2015 Eric Wong + + * vm.c (rb_vm_mark): reduce branches for always-set VM fields + (rb_vm_add_root_module): ditto + +Fri Jul 03 20:05:10 2015 Koichi Sasada + + * method.h: introduce rb_callable_method_entry_t to remove + rb_control_frame_t::klass. + [Bug #11278], [Bug #11279] + + rb_method_entry_t data belong to modules/classes. + rb_method_entry_t::owner points defined module or class. + + module M + def foo; end + end + + In this case, owner is M. + + rb_callable_method_entry_t data belong to only classes. + For modules, MRI creates corresponding T_ICLASS internally. + rb_callable_method_entry_t can also belong to T_ICLASS. + + rb_callable_method_entry_t::defined_class points T_CLASS or + T_ICLASS. + rb_method_entry_t data for classes (not for modules) are also + rb_callable_method_entry_t data because it is completely same data. + In this case, rb_method_entry_t::owner == rb_method_entry_t::defined_class. + + For example, there are classes C and D, and includes M, + + class C; include M; end + class D; include M; end + + then, two T_ICLASS objects for C's super class and D's super class + will be created. + + When C.new.foo is called, then M#foo is searched and + rb_callable_method_t data is used by VM to invoke M#foo. + + rb_method_entry_t data is only one for M#foo. + However, rb_callable_method_entry_t data are two (and can be more). + It is proportional to the number of including (and prepending) + classes (the number of T_ICLASS which point to the module). + + Now, created rb_callable_method_entry_t are collected when + the original module M was modified. We can think it is a cache. + + We need to select what kind of method entry data is needed. + To operate definition, then you need to use rb_method_entry_t. + + You can access them by the following functions. + + * rb_method_entry(VALUE klass, ID id); + * rb_method_entry_with_refinements(VALUE klass, ID id); + * rb_method_entry_without_refinements(VALUE klass, ID id); + * rb_resolve_refined_method(VALUE refinements, const rb_method_entry_t *me); + + To invoke methods, then you need to use rb_callable_method_entry_t + which you can get by the following APIs corresponding to the + above listed functions. + + * rb_callable_method_entry(VALUE klass, ID id); + * rb_callable_method_entry_with_refinements(VALUE klass, ID id); + * rb_callable_method_entry_without_refinements(VALUE klass, ID id); + * rb_resolve_refined_method_callable(VALUE refinements, const rb_callable_method_entry_t *me); + + VM pushes rb_callable_method_entry_t, so that rb_vm_frame_method_entry() + returns rb_callable_method_entry_t. + You can check a super class of current method by + rb_callable_method_entry_t::defined_class. + + * method.h: renamed from rb_method_entry_t::klass to + rb_method_entry_t::owner. + + * internal.h: add rb_classext_struct::callable_m_tbl to cache + rb_callable_method_entry_t data. + + We need to consider about this field again because it is only + active for T_ICLASS. + + * class.c (method_entry_i): ditto. + + * class.c (rb_define_attr): rb_method_entry() does not takes + defined_class_ptr. + + * gc.c (mark_method_entry): mark RCLASS_CALLABLE_M_TBL() for T_ICLASS. + + * cont.c (fiber_init): rb_control_frame_t::klass is removed. + + * proc.c: fix `struct METHOD' data structure because + rb_callable_method_t has all information. + + * vm_core.h: remove several fields. + * rb_control_frame_t::klass. + * rb_block_t::klass. + + And catch up changes. + + * eval.c: catch up changes. + + * gc.c: ditto. + + * insns.def: ditto. + + * vm.c: ditto. + + * vm_args.c: ditto. + + * vm_backtrace.c: ditto. + + * vm_dump.c: ditto. + + * vm_eval.c: ditto. + + * vm_insnhelper.c: ditto. + + * vm_method.c: ditto. + +Fri Jul 3 14:30:18 2015 Nobuyoshi Nakada + + * win32/file.c: some mingw compilers need a tweek for the + declarations of _wfreopen_s. [Bug #11320] + +Fri Jul 3 12:25:19 2015 Nobuyoshi Nakada + + * transcode.c (rb_econv_set_replacement): target encoding name can + be empty now. [ruby-core:69841] [Bug #11324] + +Fri Jul 3 07:21:06 2015 Eric Wong + + * benchmark/bm_io_nonblock_noex.rb: new benchmark + * ext/openssl/ossl_ssl.c (no_exception_p): new function + (ossl_start_ssl): adjust for no_exception_p + (ossl_ssl_connect): adjust ossl_start_ssl call + (ossl_ssl_connect_nonblock): ditto + (ossl_ssl_accept): ditto + (ossl_ssl_accept_nonblock): ditto + (ossl_ssl_read_internal): adjust for no_exception_p + (ossl_ssl_write_internal): ditto + (ossl_ssl_write): adjust ossl_write_internal call + (ossl_ssl_write_nonblock): ditto + * ext/stringio/stringio.c (strio_read_nonblock): + delay exception check + * io.c (no_exception_p): new function + (io_getpartial): call no_exception_p + (io_readpartial): adjust for io_getpartial + (get_kwargs_exception): remove + (io_read_nonblock): adjust for io_getpartial, + check no_exception_p on EOF + (io_write_nonblock): call no_exception_p + (rb_io_write_nonblock): do not check `exception: false' + (argf_getpartial): adjust for io_getpartial + [ruby-core:69778] [Feature #11318] + +Fri Jul 3 07:13:11 2015 Nobuyoshi Nakada + + * dir.c (replace_real_basename): Win32 API does not set errno, get + the last error by GetLastError() and map to errno. [Bug #10015] + +Thu Jul 2 21:32:06 2015 Nobuyoshi Nakada + + * dir.c (replace_real_basename): show warnings at errors. + [Bug #10015] + +Thu Jul 2 18:39:20 2015 Koichi Sasada + + * gc.c: remove `#define RGENGC_OBJ_INFO 1' line introduced to + debug Bug #11244. + +Thu Jul 2 18:34:26 2015 Koichi Sasada + + * gc.c (rb_raw_obj_info): separated from rb_obj_info(). + Fill internal object information into passed buffer. + + * gc.h: declare rb_raw_obj_info(). + +Thu Jul 2 16:15:04 2015 Nobuyoshi Nakada + + * dir.c (replace_real_basename): update path type by the target + attributes if possible, to improve the performance. [Bug #10015] + +Thu Jul 2 14:45:53 2015 NAKAMURA Usaku + + * st.c: get rid of VC++'s warnings of C4700 (uninitialized local + variable used). I think that these are wrong, but should shut them + up. + +Thu Jul 2 14:15:50 2015 Nobuyoshi Nakada + + * lib/rubygems.rb (Gem.load_path_insert_index): search + @gem_prelude_index first. + + * lib/rubygems/test_case.rb (Gem::TestCase#setup): keep already + expanded paths to preserve instance variables. + +Thu Jul 2 14:12:01 2015 Nobuyoshi Nakada + + * ruby.c (process_options): also copy initial load path marks at + setting load paths encoding. + +Thu Jul 2 12:26:11 2015 Nobuyoshi Nakada + + * test/rubygems/test_gem_server.rb (process_based_port): use + dynamically chosen port numbers to get rid of conflicts. + +Thu Jul 2 11:58:59 2015 NAKAMURA Usaku + + * test/rubygems/test_gem_specification.rb: skip tests which the + platform does not permit the filename of its test file. + +Thu Jul 2 11:36:20 2015 Nobuyoshi Nakada + + * test/rubygems/test_gem_resolver_git_specification.rb: require + rubygems/installer.rb before Gem::TestCase#setup runs, otherwise + as Gem::TestCase#teardown restores $LOADED_FEATURES to the state + at that time, the requiring the file in GitSpecification#install + method causes a lot of constant redefinitions. + +Thu Jul 2 10:43:36 2015 Eric Wong + + * ext/socket/rubysocket.h: flags for common socket families + (rsock_getfamily): update signature + * include/ruby/io.h: comment socket FMODE flags + * ext/socket/init.c (rsock_getfamily): memoize family + * ext/socket/basicsocket.c: adjust rsock_getfamily calls + * ext/socket/ancdata.c: ditto + [ruby-core:69713] [Feature #11298] + +Thu Jul 2 10:30:01 2015 SHIBATA Hiroshi + + * lib/rubygems/resolver.rb: fixed NameError of Gem::Util::NULL_DEVICE. + +Thu Jul 2 09:51:44 2015 SHIBATA Hiroshi + + * lib/rubygems/resolver.rb: fix error of null device reference with DOSISH + platform. + +Thu Jul 2 06:49:44 2015 SHIBATA Hiroshi + + * lib/rubygems: Update to RubyGems HEAD(c202db2). + this version contains many enhancements see http://git.io/vtNwF + * test/rubygems: ditto. + +Wed Jul 1 23:50:34 2015 Kazuhiro NISHIYAMA + + * test/net/http/test_httpresponse.rb + (HTTPResponseTest#test_read_body_content_encoding_deflate_uppercase): + fix a failure without zlib. + +Wed Jul 1 10:54:56 2015 SHIBATA Hiroshi + + * Add test for Enumerable#none? [fix GH-950] Patch by @yui-knk + +Wed Jul 1 09:30:36 2015 Nobuyoshi Nakada + + * struct.c (struct_set_members): hide internal back_members + object, and members object does not need to be duped as it + should be frozen and hidden. + +Wed Jul 1 09:28:47 2015 Nobuyoshi Nakada + + * struct.c (struct_member_pos): revert r51080 to fix other + implicit conversions but cast the return value to fix the + previous implicit conversion. + +Wed Jul 1 08:47:24 2015 NARUSE, Yui + + * struct.c (struct_member_pos): avoid implicit conversion loses + integer precision: 'long' to 'int'. + +Wed Jul 1 05:57:03 2015 Eric Wong + + * vm_method.c (rb_add_method_iseq): add RB_GC_GUARD + * class.c (clone_method): remove RB_GC_GUARD + * struct.c (define_aref_method): ditto + (define_aset_method): ditto + * vm.c (vm_define_method): + * iseq.c (rb_iseq_clone): add RB_GC_GUARD + +Wed Jul 1 05:43:58 2015 Eric Wong + + * struct.c (AREF_HASH_THRESHOLD): new macro + (id_back_members): new ID + (struct_member_pos_ideal): new function + (struct_member_pos_probe): ditto + (struct_set_members): ditto + (struct_member_pos): ditto + (rb_struct_getmember): use struct_member_pos for O(1) access + (rb_struct_aref_sym): ditto + (rb_struct_aset_sym): ditto + (setup_struct): call struct_set_members + (struct_define_without_accessor): ditto + (Init_Struct): initialize __members_back__ + [ruby-core:66851] [ruby-core:69705] [ruby-core:69821] + +Tue Jun 30 23:12:08 2015 Nobuyoshi Nakada + + * io.c (rb_io_reopen): FilePathValue() ensures the path + NUL-terminated and frozen, so it is unnecessary to make it shared. + +Tue Jun 30 23:11:53 2015 Nobuyoshi Nakada + + * dir.c (check_dirname): ensure path name NUL-terminated for + SHARABLE_MIDDLE_SUBSTRING. + + * io.c (rb_sysopen): ditto. + +Tue Jun 30 18:38:16 2015 NAKAMURA Usaku + + * win32/file.c (rb_freopen): need to terminate by NUL. + +Tue Jun 30 17:28:25 2015 Nobuyoshi Nakada + + * io.c (rb_io_reopen): freopen(3) with OS encoding path. + [ruby-core:69780] [Bug #11320] + + * win32/file.c (rb_freopen): wrapper of wchar version freopen(3). + use _wfreopen_s() if available. + +Tue Jun 30 08:24:08 2015 Eric Wong + + * io.c (rb_io_oflags_modestr): handle O_TRUNC correctly + * test/ruby/test_io.rb (test_reopen_stdio): new test + Patch-by: cremno phobia + [ruby-core:69779] [Bug #11319] + +Tue Jun 30 02:47:02 2015 Eric Wong + + * include/ruby/st.h (struct st_table): hide struct list_head + * st.c (struct st_table_entry): adjust struct + (head, tail): remove shortcut macros + (st_head): new wrapper function + (st_init_table_with_size): adjust to new struct and API + (st_clear): ditto + (add_direct): ditto + (unpack_entries): ditto + (rehash): ditto + (st_copy): ditto + (remove_entry): ditto + (st_shift): ditto + (st_foreach_check): ditto + (st_foreach): ditto + (get_keys): ditto + (get_values): ditto + (st_values_check): ditto + (st_reverse_foreach_check): ditto (unused) + (st_reverse_foreach): ditto (unused) + [ruby-core:69726] [Misc #10278] + +Mon Jun 29 17:38:01 2015 Nobuyoshi Nakada + + * insns.def (defineclass): do not quote unprintable characters at + raising an exception. + +Mon Jun 29 16:01:24 2015 NARUSE, Yui + + * lib/net/http/response.rb (inflater): CONTENT_ENCODING can be upper + case. [ruby-core:69670] [Bug #11285] patched by Andy Chu + +Mon Jun 29 14:50:08 2015 Shugo Maeda + + * eval.c (add_activated_refinement): should not include the original + class. + +Mon Jun 29 12:09:10 2015 SHIBATA Hiroshi + + * README.md: tweak styles. [fix GH-945][ci skip] Patch by @bryndyment + +Mon Jun 29 07:23:55 2015 Nobuyoshi Nakada + + * template/sizes.c.tmpl: extract RUBY_DEFINT to define sizes of + types checked by configure.in, and fix size of intptr_t in + universal binary. + +Mon Jun 29 02:10:10 2015 Nobuyoshi Nakada + + * insns.def (defineclass): preserve encoding of name in error + messages for super class mismatch. + + * insns.def (defineclass): preserve encoding of name in error + messages for non-class super. + + * insns.def (defineclass): preserve encoding of name in error + messages when already defined but type mismatch. + +Sun Jun 28 12:07:35 2015 Nobuyoshi Nakada + + * class.c (rb_define_class_id_under): raise TypeError exception + same as ruby level class definition when superclass mismatch. + +Sun Jun 14 19:02:03 2015 Benoit Daloze + + * lib/net/ftp.rb (makeport): close the TCPServer + when sending the port fails. + + * test/net/ftp/test_ftp.rb: test for above. + +Fri Jun 26 12:48:37 2015 Nobuyoshi Nakada + + * transcode.c (load_transcoder_entry): fix transcoder loading race + condition, by waiting in require. [ruby-dev:49106] [Bug #11277] + +Fri Jun 26 07:53:56 2015 Eric Wong + + * enum.c (enum_minmax): simplify return value creation + * test/ruby/test_enum.rb: test behavior on empty + * hash.c (rb_hash_fetch_m): remove unnecessary volatile since r41597 + (env_reject_bang): trade volatile for GC guard + (env_select): ditto + (env_select_bang): ditto + (env_keep_if): ditto + (rb_env_clear): ditto + +Thu Jun 25 21:24:28 2015 Naohisa Goto + + * test/-ext-/popen_deadlock/test_popen_deadlock.rb: test [Bug #11265] + + * ext/-test-/popen_deadlock/infinite_loop_dlsym.c: new ext to call + dlsym(3) infinitely without GVL, used in the above test. + + * ext/-test-/popen_deadlock/extconf.rb: extconf.rb for the above + ext. Currently, only enabled on Solaris (main target) and Linux + (as a reference platform and for debugging the ext). + +Thu Jun 25 19:24:25 2015 Naohisa Goto + + * configure.in: not to use vfork on Solaris to avoid deadlock + occurred in vfork(2) with multi-threading and dynamic linker + on Solaris. [Bug #11265] [ruby-dev:49089] + +Thu Jun 25 18:25:41 2015 Naohisa Goto + + * test/lib/envutil.rb (Test::Unit::Assertions#assert_no_memory_leak): + NO_MEMORY_LEAK_ENVS is moved to Memory::NO_MEMORY_LEAK_ENVS + to reduce child executions during test-all on Solaris. + + * test/lib/memory_status.rb (Memory::NO_MEMORY_LEAK_ENVS): ditto. + +Thu Jun 25 17:32:33 2015 Koichi Sasada + + * vm_method.c (rb_method_entry_create): need to call + method_definition_reset() if def is given. + + Actually, `me' is a new object, so we don't need to call it. + It is just to make sure. + + * vm_method.c (method_definition_reset): remove duplicated insertion. + + * vm_method.c (rb_method_entry_clone): assign dst->def here, + not in method_definition_reset(). + +Thu Jun 25 16:44:54 2015 Koichi Sasada + + * vm_method.c: make a rb_method_definition_t data (def) *after* making + a rb_method_entry_t data (me). + + Normally, `me' points `def'. Some Ruby objects pointed from `def' + and objects are marked by `me' (mark_method_entry() in gc.c). + However, `def' is built before making a `me', then nobody can mark + objects pointed from `def' before making (and pointing from) `me'. + + I hope this patch solve #11244. + + * vm_method.c: remove `rb_' prefix from some static functions. + + * method.h (rb_method_entry_create): constify + + * gc.c (mark_method_entry): add checking `def' and + `def->body.iseq.iseqptr' availability because they can be NULL. + +Thu Jun 25 14:14:16 2015 takiy33 + + * test/test_prime.rb (test_eratosthenes_works_fine_after_timeout): + use spaces instead of TABs in ruby codes. [Fix GH-944] + +Thu Jun 25 07:08:35 2015 Koichi Sasada + + * gc.c (obj_info, method_type_name): show method type name in a string + instead of a number. + +Thu Jun 25 06:49:25 2015 Koichi Sasada + + * gc.c (obj_info): show more details for T_IMEMO/imemo_ment. + +Thu Jun 25 06:40:46 2015 Koichi Sasada + + * vm_method.c (rb_method_definition_reset): need a WB for + VM_METHOD_TYPE_ATTRSET. + +Thu Jun 25 03:33:21 2015 Koichi Sasada + + * gc.c (RGENGC_OBJ_INFO, obj_info): add a macro to enable/disable + rich obj_info() output. + + At the default, the value of RGENGC_OBJ_INFO is + (RGENGC_DEBUG | RGENGC_CHECK_MODE). + + * gc.c (RGENGC_OBJ_INFO): force enable it to debug #11244. + + * gc.c (gc_mark_ptr): print more details with obj_info(). + + * gc.c (gc_mark_children): remove useless debug prints. + +Thu Jun 25 02:40:33 2015 Eric Wong + + * ext/openssl/ossl_ssl.c (ossl_ssl_read_internal): + do not process kwargs in blocking mode + * test/openssl/test_ssl.rb: test sysread + +Wed Jun 24 16:54:11 2015 Koichi Sasada + + * gc.c (gc_mark_children): add additional debug code for #11244. + +Wed Jun 24 16:05:42 2015 Eric Wong + + * string.c (rb_str_justify): use RB_GC_GUARD + +Wed Jun 24 14:25:17 2015 Koichi Sasada + + * gc.c (gc_mark_ptr): add a check code for #11244. + + It should be removed later. But we can remain this check + because it is only a branch. + +Wed Jun 24 12:49:11 2015 Nobuyoshi Nakada + + * string.c (rb_fstring_cstr): new function to make a fstring from + a string literal. + + * internal.h (rb_fstring_lit): new macro to make a fstring from a + string literal. + + * include/ruby/intern.h (rb_strlen_lit): new macro to get the + length of a string literal, borrowed from mruby/mruby@e4afd53. + +Wed Jun 24 12:21:16 2015 SHIBATA Hiroshi + + * re.c: Update documentation for Regexp class. + [fix GH-937][ci skip] Patch by @davydovanton + +Wed Jun 24 09:23:03 2015 Eric Wong + + * variable.c (generic_ivar_set): remove FL_ABLE check + (gen_ivar_copy): ditto + [ruby-core:69715] + +Wed Jun 24 08:28:15 2015 Eric Wong + + * ext/socket/ancdata.c (bsock_recvmsg_internal): reduce stack use + [ruby-core:69595] [Feature #11263] + +Tue Jun 23 14:32:42 2015 Nobuyoshi Nakada + + * error.c (name_err_receiver): raise ArgumentError if no receiver + is available on this exception object. [Feature #10881] + +Tue Jun 23 09:48:34 2015 Eric Wong + + * dir.c (check_dirname): avoid volatile, use return value + (dir_s_chroot, dir_s_mkdir, dir_s_rmdir): adjust callers + +Tue Jun 23 06:37:10 2015 Eric Wong + + * struct.c (struct_ivar_get): cache member definition in a subclass + Thanks to Sokolov Yura aka funny_falcon + in https://bugs.ruby-lang.org/issues/10585 + +Tue Jun 23 04:58:06 2015 Eric Wong + + * benchmark/bm_vm2_struct_big_href_hi.rb: new benchmark + * benchmark/bm_vm2_struct_big_href_lo.rb: ditto + * benchmark/bm_vm2_struct_big_hset.rb: ditto + * benchmark/bm_vm2_struct_small_href.rb: ditto + * benchmark/bm_vm2_struct_small_hset.rb: ditto + Thanks to Sokolov Yura aka funny_falcon + in https://bugs.ruby-lang.org/issues/10585 + +Mon Jun 22 18:08:48 2015 Naohisa Goto + + * test/lib/test/unit.rb (Test::Unit::Parallel#start_watchdog): removed + because it has been meaningless since r36385. [Bug #11288] + + * test/lib/test/unit.rb (Test::Unit::Parallel#_run_parallel): delete + lines related to the removed start_watchdog method + +Sun Jun 21 23:52:46 2015 Kazuhiro NISHIYAMA + + * NEWS: mention about Array#bsearch_index and Hash#fetch_values. + +Sun Jun 21 23:46:27 2015 Kazuhiro NISHIYAMA + + * NEWS: add a reference to a ticket. + +Sun Jun 21 20:28:09 2015 Nobuyoshi Nakada + + * internal.h (roomof): extract from type_roomof, and move from + bignum.c. + +Sun Jun 21 18:32:37 2015 Nobuyoshi Nakada + + * ruby_atomic.h (ATOMIC_PTR_CAS): define by generic CAS macro, not + via size_t, to suppress a warning by mingw gcc. + +Sun Jun 21 05:31:41 2015 Shota Fukumori + + * ext/objspace/objspace_dump.c(dump_object): Return empty JSON object when + passed object is a special const, instead of SEGV. + Based patch by Kohei Suzuki (eagletmt). [ruby-core:69692] [Bug #11291] + + * test/objspace/test_objspace.rb(test_dump_special_consts): Test for above fix. + + +Sat Jun 20 03:56:58 2015 Yusuke Endoh + + * enc/make_encmake.rb: the list of encoding extension libraries must + not include encinit.c itself. It caused "undefined reference to + Init_encinit". + +Sat Jun 20 02:03:53 2015 Naohisa Goto + + * process.c (rb_execarg_parent_start1): new macro ALWAYS_NEED_ENVP + to generate envp_str anytime on Solaris 10 (or earlier version + of Solaris) to avoid calling execv() which is async-signal unsafe + on Solaris 10. [Bug #11265] [ruby-dev:49089] + + * process.c (exec_with_sh, proc_exec_cmd): On Solaris 10, + because ALWAYS_NEED_ENVP is 1 and envp_str is always generated, + execv() in exec_with_sh() and proc_exec_cmd() are never called. + To guarantee this, execv() is replaced by a macro to print + out error message on Solaris 10. + + * process.c (proc_exec_sh): Because proc_exec_sh() may be called + by rb_proc_exec() with envp_str = Qfalse, execl() is replaced + by a macro that calls execle() with "extern char **environ" + traditional global variable on Solaris 10. + TODO: This may be unsafe and should be changed in the future. + Although rb_proc_exec() is not used from inside current version + of ruby, it may be called by third-party extensions. + +Sat Jun 20 01:10:13 2015 Kazuhiro NISHIYAMA + + * NEWS: mention about $SAFE. + +Fri Jun 19 14:53:35 2015 Nobuyoshi Nakada + + * proc.c (rb_mod_define_method): now requires a block direct to + this method call. [ruby-core:69655] [Bug #11283] + +Fri Jun 19 13:54:43 2015 Nobuyoshi Nakada + + * proc.c (rb_mod_define_method): get rid of inadvertent ID + creations at error. + +Fri Jun 19 07:58:11 2015 Nobuyoshi Nakada + + * ext/extmk.rb: if no with-ext option is given, default to + enable everything. [ruby-dev:49108] [Bug #11280] + +Fri Jun 19 06:30:07 2015 Koichi Sasada + + * bootstraptest/test_method.rb: remove a test because $SAFE=2 was + obsolete. + + Please check btest, too. + +Thu Jun 18 23:51:51 2015 Kazuhiro NISHIYAMA + + * bin/erb: $SAFE=3 is obsolete. + +Thu Jun 18 23:45:11 2015 Kazuhiro NISHIYAMA + + * safe.c: removed needless doc related $SAFE=2 + +Thu Jun 18 23:38:07 2015 NAKAMURA Usaku + + * thread.c (rb_thread_safe_level): fix document. $SAFE=3 is obsolete. + [ci skip] + +Thu Jun 18 23:25:51 2015 Nobuyoshi Nakada + + * ext/extmk.rb: configure intersection of with-ext and not + without-ext, as withouts is no longer true by default if + with-ext option is given. [ruby-dev:49108] [Bug #11280] + +Thu Jun 18 23:20:46 2015 SHIBATA Hiroshi + + * include/ruby/ruby.h: $SAFE=2 is now obsolete. + + * dir.c, ext/fiddle/handle.c, ext/socket/basicsocket.c, file.c + gc.c, io.c, process.c, safe.c, signal.c, win32/file.c: + removed code for $SAFE=2 + + * test/erb/test_erb.rb, test/fiddle/test_handle.rb + test/ruby/test_env.rb: removed tests for $SAFE=2. + +Thu Jun 18 22:50:07 2015 Yusuke Endoh + + * enc/make_encmake.rb: added --transes and --no-transes options. + +Thu Jun 18 18:24:12 2015 Eric Wong + + * test/socket/test_unix.rb: replace sleep with select + +Thu Jun 18 17:59:06 2015 Koichi Sasada + + * vm.c (rb_vm_control_frame_id_and_class): remove useless codes. + `me' knows ID and owner class. + +Thu Jun 18 16:58:35 2015 Koichi Sasada + + * method.h: constify rb_method_alias_struct::original_me and + rb_method_refined_struct::orig_me. + + * class.c (move_refined_method): use RB_OBJ_WRITE() for + me->def->body.refined.orig_me. + +Thu Jun 18 14:35:28 2015 Koichi Sasada + + * ext/objspace/objspace.c (count_imemo_objects): support imemo_ment. + +Thu Jun 18 13:32:46 2015 Nobuyoshi Nakada + + * error.c (name_err_receiver): add NameError#receiver method. + [Feature #10881] + +Thu Jun 18 10:00:06 2015 SHIBATA Hiroshi + + * safe.c: removed needless doc related $SAFE=3 + +Thu Jun 18 09:59:23 2015 SHIBATA Hiroshi + + * safe.c: rename old method name for $SAFE=3 + +Thu Jun 18 06:02:42 2015 Eric Wong + + * compile.c (get_exception_sym2type, iseq_build_from_ary_body): + rely on %+PRIsVALUE instead of calling rb_inspect directly + +Wed Jun 17 20:59:25 2015 Nobuyoshi Nakada + + * common.mk (ENC_MK): needs fake.rb if cross compilation. + [ruby-dev:49098] [Bug #11272] + +Wed Jun 17 20:23:29 2015 Tanaka Akira + + * ext/rbconfig/sizeof/extconf.rb: Check __float80. + +Wed Jun 17 15:15:53 2015 NAKAMURA Usaku + + * safe.c (safe_setter): of course, don't have to warn the limitation of + $SAFE=3 after it's removed. + +Wed Jun 17 14:29:43 2015 SHIBATA Hiroshi + + * include/ruby/ruby.h: $SAFE=3 is now obsolete. + + * ext/socket/init.c, ext/socket/socket.c, ext/socket/tcpsocket.c + ext/socket/udpsocket.c, gc.c, object.c, re.c, safe.c: removed code + for $SAFE=3 + + * bootstraptest/test_method.rb, test/erb/test_erb.rb, test/ruby/test_dir.rb + test/ruby/test_file.rb, test/ruby/test_method.rb, test/ruby/test_regexp.rb + test/ruby/test_thread.rb: remove tests for $SAFE=3 + +Wed Jun 17 12:13:33 2015 SHIBATA Hiroshi + + * ChangeLog: added contributor name. + +Wed Jun 17 10:57:28 2015 SHIBATA Hiroshi + + * lib/csv.rb: accept to use Range object for row selection. + contributed by Mitsutaka Mimura. + [Feature #11267][ruby-dev:49091] + +Wed Jun 17 09:50:12 2015 Nobuyoshi Nakada + + * lib/rdoc/servlet.rb (documentation_search, root_search): + requires json for JSON.dump and fix sporadic failures due to + the loading order. + +Tue Jun 16 19:19:53 2015 Tanaka Akira + + * ext/rbconfig/sizeof/extconf.rb: Check several types defined in C99 + and x86_64 ABI. + + * template/sizes.c.tmpl: Relax a pattern for types. + +Tue Jun 16 17:37:01 2015 Koichi Sasada + + * test/objspace/test_objspace.rb: relax pattern because uncollectible + flag and marked flag can be false at major GC. + [Bug #10852] + +Tue Jun 16 04:50:44 2015 Eric Wong + + * ext/socket/basicsocket.c (bsock_recv): document outbuf + * ext/socket/unixsocket.c (unix_recvfrom): ditto + * ext/socket/init.c (rsock_strbuf, recvfrom_locktmp): new functions + (rsock_s_recvfrom): support destination buffer as 3rd arg + (rsock_s_recvfrom_nonblock): ditto + * string.c (rb_str_locktmp_ensure): export for internal ext + * test/socket/test_nonblock.rb: test recv_nonblock + * test/socket/test_unix.rb: test recv + [ruby-core:69543] [Feature #11242] + +Tue Jun 16 04:38:02 2015 Eric Wong + + * ext/socket/ancdata.c (bsock_sendmsg_internal, + bsock_recvmsg_internal): + support "exception: false" kwarg + * ext/socket/init.c (rsock_s_recvfrom_nonblock): + ditto + * ext/socket/init.c (rsock_s_recvfrom_nonblock): use rsock_opt_false_p + * ext/socket/socket.c (sock_connect_nonblock): ditto + * ext/socket/rubysocket.h (rsock_opt_false_p): new function + * ext/socket/basicsocket.c (bsock_recv_nonblock): update rdoc + * ext/socket/udpsocket.c (udp_recvfrom_nonblock): ditto + * test/socket/test_nonblock.rb: new tests + [ruby-core:69542] [Feature #11229] + +Mon Jun 15 14:33:02 2015 Akinori MUSHA + + * lib/set.rb: Make Set#each and SortedSet#each generate a sized + enumerator. [GH-931] by kachick (Kenichi Kamiya) + + * test/test_set.rb: Import tests from Set into SortedSet. [GH-931] + by kachick (Kenichi Kamiya) + +Mon Jun 15 02:26:34 2015 NARUSE, Yui + + * lib/net/http.rb (Net::HTTP#connect): use connect_nonblock and + io/wait to eliminate timeout use. fix GH-899 + +Sat Jun 13 07:21:18 2015 KOSAKI Motohiro + + * thread.c (thread_start_func_2): don't interrupt when last thread + exit unless main thread is already exited. Otherwise main thread + could be wrongly interrupted when it uses rb_thread_call_without_gvl(). + Patch by Takehiro Kubo. [Bug #11237][ruby-dev:49044][GH-898] + + * test/-ext-/gvl/test_last_thread.rb: new test for the above fix. + + * ext/-test-/gvl/call_without_gvl/call_without_gvl.c: new ext for + the above test. + * ext/-test-/gvl/call_without_gvl/extconf.rb: ditto. + +Mon Jun 15 00:14:33 2015 Tanaka Akira + + * ext/pathname/lib/pathname.rb (descend): Blockless form supported. + (ascend): Ditto. + [ruby-core:68820] [Feature #11052] Patch by Piotr Szotkowski. + +Sun Jun 14 20:09:25 2015 Tanaka Akira + + * time.c (time_getlocaltime): [DOC] Add examples of valid utc_offset + formats. + [ruby-core:68306] [Misc #10905] Patch by Charles Korn. + +Sun Jun 14 18:49:56 2015 Tanaka Akira + + * ext/socket/raddrinfo.c (parse_numeric_port): Detect + port overflow. + (numeric_getaddrinfo): Use parse_numeric_port. + numeric_getaddrinfo fails if port is too big now. + This makes rb_getaddrinfo invokes the real getaddrinfo() + on such condition. + This change is related to [ruby-core:69355] [Bug #11179]. + +Sun Jun 14 17:26:03 2015 Tanaka Akira + + * enum.c (enum_chunk_while): New method Enumerable#chunk_while. + [ruby-core:67738] [Feature #10769] proposed by Tsuyoshi Sawada. + +Sun Jun 14 17:20:40 2015 Nobuyoshi Nakada + + * file.c (rb_file_load_ok): try opening file without gvl not to + lock entire process. [Bug #11060] + +Sun Jun 14 10:43:50 2015 NAKAMURA Usaku + + * tool/runruby.rb: just remove the lines of RUBY_VERSION check and raise + instead of replacing the check to `true`, for getting rid of a + warning `possibly useless use of true in void context`. + +Sun Jun 14 10:13:55 2015 Kouhei Sutou + + * lib/rexml/source.rb (REXML::IOSource#scan): Fix a typo in + document. [fix GH-934] + Patch by Anton Davydov. Thanks!!! + +Sun Jun 14 10:09:48 2015 Kouhei Sutou + + * lib/rexml/attlistdecl.rb (REXML::AttlistDecl): Fix a typo in + document. [fix GH-934] + Patch by Anton Davydov. Thanks!!! + +Sun Jun 14 06:24:57 2015 Benoit Daloze + + * test/ruby/test_io.rb: add test for IO.binread fd leak. + See r50881. + +Sun Jun 14 05:23:51 2015 Benoit Daloze + + * io.c (rb_io_s_binread): close fd if seek offset is invalid. + +Sun Jun 14 04:40:32 2015 Benoit Daloze + + * test/lib/leakchecker.rb (check): refactor. + +Sun Jun 14 04:34:14 2015 Benoit Daloze + + * test/lib/leakchecker.rb: Return false for no leaks. + Otherwise the GC could run for nothing. + +Sun Jun 14 04:15:40 2015 Benoit Daloze + + * lib/delegate.rb: [DOC] Update SimpleDelegator example. [ci skip] + +Sat Jun 13 20:28:14 2015 NARUSE, Yui + + * file.c (rb_stat_ino): get inode from the interval of struct st. + + * win32/win32.c (stati64_set_inode): get nFileIndexHigh/Low, and set it + to the interval of struct st as inode. + [Feature #11216] + + * win32/win32.c (stati64_set_inode_handle): call stati64_set_inode. + + * win32/win32.c (rb_w32_fstati64): call stati64_set_inode_handle. + + * win32/win32.c (stati64_handle): call stati64_set_inode. + +Sat Jun 13 19:44:53 2015 NAKAMURA Usaku + + * ext/io/console/depend (.list.chksum): revert a part of r50859, because + it was not mentioned at its commit log and it caused a build error on + Windows ($(MAKE) is already quoted). + +Sat Jun 13 17:35:11 2015 NARUSE, Yui + + * vm_core.h (rb_thread_t): add th->name. + + * vm.c (th_init): initialize th->name. + + * thread.c (Init_Thread): add Thread.name and name=. [Feature #11251] + + * thread.c (rb_thread_inspect): show thread's name if set. + + * thread.c (rb_thread_getname): defined. + + * thread.c (rb_thread_setname): ditto. + +Sat Jun 13 11:39:43 2015 SHIBATA Hiroshi + + * lib/tempfile.rb: Fix typo. [fix GH-933] Patch by @Zorbash + +Sat Jun 13 11:38:00 2015 SHIBATA Hiroshi + + * ext/openssl/ossl_ocsp.c: fix documentation on ocsp response cert status. + [fix GH-932] Patch by @chrisholmes + +Sat Jun 13 11:35:19 2015 SHIBATA Hiroshi + + * ext/bigdecimal/bigdecimal.gemspec: Fix require paths for released gem. + [fix GH-929] Patch by @voxik + * ext/io/console/io-console.gemspec: ditto. + +Sat Jun 13 00:45:08 2015 Marc-Andre Lafortune + + * lib/prime.rb: Return sized enumerators. + Patch by Kenichi Kamiya [GH-931] + +Sat Jun 13 00:45:06 2015 Marc-Andre Lafortune + + * lib/prime.rb: Fix with_object with no block given + +Sat Jun 13 00:44:59 2015 Marc-Andre Lafortune + + * lib/prime.rb: Have with_index accept an offset parameter. + Based on patch by T Yamada. [#11007] + +Fri Jun 12 22:21:12 2015 Kazuhiro NISHIYAMA + + * test/ruby/test_extlibs.rb (TestExtLibs::check_existence): fix + error. [Bug #11255] [ruby-dev:49079] + +Fri Jun 12 21:17:46 2015 NAKAMURA Usaku + + * pack.c (pack_{un,}pack): new template character `j` and `J`, pointer + with signed and unsigned integers. + + * NEWS: mention about this feature. + [Feature #11215] [ruby-dev:49015] + +Fri Jun 12 21:01:44 2015 NAKAMURA Usaku + + * file.c (File::SHARE_DELETE): new flag to be able to delete opened file + on Windows. + + * include/win32/win32.c (O_SHARE_DELETE): new pseudo file mode flag. + + * win32/win32.c (rb_w32_{w,}open): support above flag. [EXPERIMENTAL] + + * NEWS: mention about this feature. + [Feature #11218] [ruby-dev:49022] + +Fri Jun 12 18:21:45 2015 SHIBATA Hiroshi + + * ChangeLog: added missing commit message. + +Fri Jun 12 18:20:37 2015 SHIBATA Hiroshi + + * sample/exyacc.rb: Fix some typos. [fix GH-927] Patch by @davydovanton + * sample/list.rb: ditto. + * sample/trick2013/kinaba/remarks.markdown: ditto. + +Fri Jun 12 17:34:14 2015 Wojciech Mach + + * hash.c (rb_hash_fetch_values): add `Hash#fetch_values`. + [Feature #10017] [Fix GH-776] + +Fri Jun 12 16:28:17 2015 Radan Skoric + + * array.c (rb_ary_bsearch_index): Implement Array#bsearch_index + method, which is similar to bsearch and returns the index or + nil. [Feature #10730] + +Thu Jun 11 19:11:22 2015 SHIBATA Hiroshi + + * ext/zlib/zlib.c: Fix indentation for rdoc. + [Bug #11221][ruby-core:69465] + +Thu Jun 11 16:23:37 2015 Koichi Sasada + + * method.h (METHOD_ENTRY_BASIC_SET): fix last commit (unbalanced parens). + +Thu Jun 11 15:14:16 2015 NARUSE, Yui + + * configure.in: define SET_THREAD_NAME if it has pthread_set_name_np + for FreeBSD, and don't define it if both pthread_setname_np + and pthread_set_name_np don't exist. + + * thread_pthread.c (SET_THREAD_NAME): don't define if they don't exist. + + * thread_pthread.c (native_set_thread_name): run if SET_THREAD_NAME + is defined. + +Thu Jun 11 15:53:31 2015 Koichi Sasada + + * method.h (METHOD_ENTRY_BASIC_SET): should clear last bit. + +Thu Jun 11 14:34:45 2015 SHIBATA Hiroshi + + * lib/rubygems.rb: bump version to 2.4.7 and 2.4.8. these versions fixed + CVE-2015-3900. + * lib/rubygems/remote_fetcher.rb: ditto. + * test/rubygems/test_gem_remote_fetcher.rb: added testcase for CVE-2015-3900 + +Thu Jun 11 14:18:51 2015 SHIBATA Hiroshi + + * lib/rubygems.rb: bump version to 2.4.6. It's missing change at r49774. + +Thu Jun 11 13:50:19 2015 Nobuyoshi Nakada + + * array.c (ary_ensure_room_for_push): check if array size will + exceed maximum size to get rid of buffer overflow. + [ruby-dev:49043] [Bug #11235] + + * array.c (ary_ensure_room_for_unshift, rb_ary_splice): ditto. + +Thu Jun 11 13:17:34 2015 NAKAMURA Usaku + + * test/test_cmath.rb (TestCMath#test_trigonometric_functions): should + not compare float values (in complex values) by `==`. + +Thu Jun 11 08:52:01 2015 Koichi Sasada + + * method.h: embed rb_method_entry_t::attr::flags (5 bits) into + rb_method_entry_t::flags to make one word spare space. + + Add some macros to access these flags. + + * vm_method.c: use these macros. + + * internal.h: define IMEMO_FL_USHIFT and IMEMO_FL_USER[0-4] + for T_IMEMO local flags. + +Thu Jun 11 08:27:06 2015 Koichi Sasada + + * vm.c: use VM_ASSERT instead of assert(). + + * vm_args.c: ditto. + + * vm_insnhelper.c: ditto. + + * vm_method.c: ditto. + +Thu Jun 11 08:16:48 2015 Koichi Sasada + + * vm_core.h: define VM_ASSERT() for assertion + enabled only when (VM_CHECK_MODE > 0). + + * vm_insnhelper.c: move definition VM_CHECK_MODE + from vm_insnhelper.c to vm_core.h. + + * vm.c: remove + +Thu Jun 11 06:46:07 2015 Koichi Sasada + + * vm_insnhelper.c (check_frame): check type of cref_or_me first. + +Thu Jun 11 04:34:39 2015 Kazuki Tanaka + + * test/test_cmath.rb: Add some assertions. + +Thu Jun 11 00:34:39 2015 Nobuyoshi Nakada + + * template/fake.rb.in: expanded macro result may have spaces + between tokens. [ruby-dev:49047] [Bug #11243] + +Wed Jun 10 22:27:32 2015 Naohisa Goto + + * lib/mkmf.rb: revert r50804 because of build failure when specifying + LDFLAGS during configure, observed on Solaris with GCC 4.6. + [Bug #11245] + +Wed Jun 10 21:59:51 2015 Kazuhiro NISHIYAMA + + * README.ja.md: fix markup miss. + +Wed Jun 10 11:06:25 2015 Nobuyoshi Nakada + + * template/fake.rb.in: turn into erb template from autoconf + template to fake more accurately. + + * common.mk (fake.rb): needs preprocessed file now. + + * version.c (Init_version): add dummy expression to + RUBY_ENGINE_VERSION. + +Tue Jun 9 12:31:25 2015 Marc-Andre Lafortune + + * lib/prime.rb: Simplify and optimize EratosthenesSieve + +Tue Jun 9 11:45:00 2015 Marc-Andre Lafortune + + * lib/prime.rb: Simplify and optimize EratosthenesSieve + based on patch by Ajay Kumar. [Fixes GH-921] + +Mon Jun 8 05:09:58 2015 Koichi Sasada + + * gc.c (obj_info): print method id for T_IMEMO/ment. + +Sun Jun 7 07:05:43 2015 Kazuki Tanaka + + * Move test cases from test/ruby/test_complex.rb to test/test_cmath.rb + +Sat Jun 6 18:23:41 2015 Koichi Sasada + + * method.h: back to share rb_method_definition_t by + rb_method_entry_t. + + r50728 changed sharing `def's to isolating `def's + on alias and so on. However, this change conflicts + future improvement plan. So I change back to sharing approach. + + * method.h: move rb_method_definition_t::flags to + rb_method_entry_t::attr::flags. + + rb_method_entry_t::attr is union with VALUE because this field + should have same size of VALUE. rb_method_entry_t is T_IMEMO). + + And also add the following access macros to it's fields. + + * METHOD_ENTRY_VISI(me) + * METHOD_ENTRY_BASIC(me) + * METHOD_ENTRY_SAFE(me) + + * vm_method.c (rb_method_definition_addref): added instead of + rb_method_definition_clone(). + + Do not create new definition, but increment alias_count. + + * class.c (clone_method): catch up this fix. + + * class.c (method_entry_i): ditto. + + * proc.c (mnew_internal): ditto. + + * proc.c (mnew_missing): ditto. + + * vm_eval.c: ditto. + + * vm_insnhelper.c: ditto. + + * vm_method.c: ditto. + +Sat Jun 6 15:59:38 2015 Koichi Sasada + + * class.c: ins_methods_push() needs rb_method_visibility_t type on + 2nd arg. + +Sat Jun 6 15:05:47 2015 Koichi Sasada + + * class.c (ins_methods_push): Change type and name of parameters + to make more clear. + +Sat Jun 6 08:52:13 2015 Eric Wong + + * test/socket/test_nonblock.rb: try to avoid EMSGSIZE + [ruby-core:69466] + +Sat Jun 6 07:58:30 2015 Koichi Sasada + + * gc.c: remove struct mark_tbl_arg and pass objspace directly + to avoid indirect access overhead. + +Sat Jun 6 07:08:45 2015 Eric Wong + + * ext/socket/ancdata.c (bsock_sendmsg_internal): drop redundant assignment + +Sat Jun 6 01:00:06 2015 Naohisa Goto + + * ext/socket/ancdata.c (bsock_sendmsg_internal): all arguments are + parsed even on systems without HAVE_STRUCT_MSGHDR_MSG_CONTROL + to prevent SEGV caused by passing Qnil to RARRAY_LENINT and + to preserve behavior before r50776. + [Bug #11224] [ruby-core:69468] [Bug #11225] [ruby-core:69469] + +Fri Jun 5 22:37:42 2015 Koichi Sasada + + * class.c (ins_methods_push): change 3rd parameter's type + from long to rb_method_visibility_t. + + * class.c (ins_methods_i): catch up this fix. + + * class.c (method_entry_i): cast to st_data_t instead of `long'. + +Fri Jun 5 20:37:10 2015 Koichi Sasada + + * internal.h: move definition of rb_cref_t to method.h. + + * eval_intern.h: move definition of rb_scope_visibility_t + to method.h. + + * method.h: change rb_cref_t::scope_visi from VALUE to + rb_scope_visibility_t. + [Bug #11219] + + * vm.c (vm_cref_new): accept rb_method_visibility_t directly. + + * vm_insnhelper.c (rb_vm_rewrite_cref): don't use 0, + but METHOD_VISI_UNDEF. + + * vm_method.c (rb_scope_visibility_set): don't need to use cast. + + * vm_method.c (rb_scope_module_func_set): ditto. + +Fri Jun 5 17:27:30 2015 Eric Wong + + * ext/socket/ancdata.c (bsock_sendmsg_internal): avoid msg_control + ptr if msg_controllen is zero to fix portability problems. + +Fri Jun 5 09:17:45 2015 Eric Wong + + * ext/socket/ancdata.c (bsock_sendmsg_internal): fix build error + from r50776 + +Fri Jun 5 07:05:58 2015 Eric Wong + + * io.c (sym_wait_readable, sym_wait_writable): declare + (io_getpartial): use sym_wait_readable + (io_write_nonblock): use sym_wait_writable + (Init_IO): initialize sym_wait_*able + +Fri Jun 5 06:43:00 2015 Eric Wong + + * doc/extension.rdoc: note rb_get_kwargs changes keywords_hash + [ruby-core:68507] + +Fri Jun 5 05:50:29 2015 Eric Wong + + * ext/socket/ancdata.c (bsock_sendmsg_internal): use rb_scan_args + [ruby-core:69439] [Feature #11207] + +Fri Jun 5 02:20:06 2015 Koichi Sasada + + * test/lib/envutil.rb (assert_no_memory_leak): change default value + of limit from 1.5 to 2.0. It is ad-hoc fix to solve test failure + in travis-ci. + +Fri Jun 5 01:17:21 2015 Koichi Sasada + + * vm_insnhelper.c (vm_defined): no need to use cast. + +Fri Jun 5 01:14:02 2015 Koichi Sasada + + * vm_insnhelper.c (vm_defined): show additional messages on rb_bug(). + +Fri Jun 5 01:06:02 2015 Koichi Sasada + + * vm_method.c (rb_add_method_iseq): use intermediate struct to + avoid initializing struct with variables. + [Bug #11217] + + * method.h: add a comment about it. + +Fri Jun 5 00:55:21 2015 Koichi Sasada + + * method.h: constify rb_method_refined_t::orig_me. + + Also constify the following functions. + + * rb_resolve_refined_method() + * rb_method_entry_with_refinements() + * rb_method_entry_without_refinements() + * rb_method_entry_copy()'s parameter. + + * class.c: catch up this fix. + + * vm_insnhelper.c: ditto. + + * vm_method.c: ditto. + +Thu Jun 4 12:47:54 SGT 2015 SHIBATA Hiroshi + + * array.c: Revert r50763. because "reentered" is not typo. + +Thu Jun 4 11:12:29 2015 SHIBATA Hiroshi + + * ext/win32ole/win32ole.c: fix a typo. Patch by @davydovanton + [fix GH-923] + * include/ruby/st.h: ditto. + * include/ruby/util.h: ditto. + +Thu Jun 4 10:54:30 2015 SHIBATA Hiroshi + + * array.c: fix a typo. Patch by @manish-shrivastava + [fix GH-922] + +Thu Jun 4 09:52:02 2015 Eric Wong + + * ext/openssl/lib/openssl/ssl.rb: use io/nonblock instead of fcntl + [ruby-core:69382] [Feature #11190] + +Thu Jun 4 07:22:45 2015 Koichi Sasada + + * method.h: introduce rb_method_refined_t for refined method entry. + + * class.c (move_refined_method): catch up this fix. + + * gc.c (mark_method_entry): ditto. + + * vm_eval.c (vm_call0_body): ditto. + + * vm_insnhelper.c (vm_call_method): ditto. + + * vm_method.c: ditto. + +Thu Jun 4 07:12:20 2015 Nobuyoshi Nakada + + * dir.c (dirent_match): match short names only when FNM_SHORTNAME + flag is given, for the backward compatibility, and the new + behavior is often dangerous. [ruby-core:69435] [Bug #11206] + +Thu Jun 4 05:44:01 2015 Eric Wong + + * variable.c (special_generic_ivar): remove flag + (givar_i, rb_mark_generic_ivar_tbl): remove functions + (rb_free_generic_ivar, rb_ivar_lookup, rb_ivar_delete, + generic_ivar_set, rb_ivar_set, rb_ivar_defined, + rb_copy_generic_ivar, rb_ivar_foreach, rb_ivar_count, + rb_obj_remove_instance_variable): + adjust for lack of ivar support in special constants + * test/ruby/test_variable.rb: test ivars for special consts + * internal.h: remove rb_mark_generic_ivar_tbl decl + * gc.c (gc_mark_roots): remove rb_mark_generic_ivar_tbl call + [ruby-core:69441] [Feature #11208] + +Thu Jun 4 05:13:34 2015 Koichi Sasada + + * vm_insnhelper.c (def_iseq_ptr): `iseqval' is not available any more. + +Thu Jun 4 04:50:12 2015 Koichi Sasada + + * class.c (method_entry_i): mtbl should not have `me' as NULL. + +Thu Jun 4 04:28:45 2015 Koichi Sasada + + * class.c (clone_method): do not use me->klass, but use explicitly + passed argument. + +Thu Jun 4 04:10:43 2015 Koichi Sasada + + * vm_core.h (rb_vm_rewrite_cref_stack): rename to rb_vm_rewrite_cref(). + + * class.c (clone_method): use renamed name. + + * vm_insnhelper.c (rb_vm_rewrite_cref): do not use `node' in variable + names. + +Wed Jun 3 23:03:50 2015 Koichi Sasada + + * vm_method.c: rename `rb_frame_...' to `rb_scope_...'. + + * eval_intern.h: move decl. of rb_scope_visibility_set() to method.h. + + * load.c: catch up this fix. + +Wed Jun 3 21:14:20 2015 Tanaka Akira + + * ext/rbconfig/sizeof/extconf.rb: Check C99 standard integer types. + +Wed Jun 3 21:00:47 2015 Tanaka Akira + + * configure.in: Don't check __int128. + + * ext/rbconfig/sizeof/extconf.rb: Check __int128. + + * ext/rbconfig/sizeof/depend: sizes.c depends on + ext/rbconfig/sizeof/extconf.rb. + + * template/sizes.c.tmpl: Detect check_sizeof. + +Wed Jun 3 20:07:07 2015 Koichi Sasada + + * class.c (clone_method): remove redundant check for me->def != NULL. + Now, all `me` have `me->def`. + + * proc.c (rb_method_entry_location): ditto. + + * vm.c (rb_vm_check_redefinition_opt_method): ditto. + + * vm.c (add_opt_method): ditto. + + * vm_eval.c (vm_call0_body): ditto. + +Wed Jun 3 19:24:12 2015 Koichi Sasada + + * vm_core.h: rename enum missing_reason to enum method_missing_reason. + + * vm_core.h: use enum method_missing_reason for + rb_thread_t::method_missing_reason. + + * vm_eval.c: catch up this fix. + + * vm_insnhelper.c: ditto. + +Wed Jun 3 16:17:21 2015 Aaron Patterson + + * vm.c: eagerly allocate `loading_table`. This eliminates the need to + do NULL checks when looking up the `loading_table` hash. + https://github.com/ruby/ruby/pull/918 + + * load.c: remove various NULL checks + +Wed Jun 3 11:47:15 2015 Koichi Sasada + + * method.h: change fields order to gather frequent access fields. + + * vm_insnhelper.c (vm_call_method): add LIKELY(). + +Wed Jun 03 10:35:45 2015 Koichi Sasada + + * method.h: split rb_method_definition_t::flag to several flags. + + `flag' contains several categories of attributes and it makes us + confusion (at least, I had confused). + + * rb_method_visibility_t (flags::visi) + * NOEX_UNDEF -> METHOD_VISI_UNDEF = 0 + * NOEX_PUBLIC -> METHOD_VISI_PUBLIC = 1 + * NOEX_PRIVATE -> METHOD_VISI_PRIVATE = 2 + * NOEX_PROTECTED -> METHOD_VISI_PROTECTED = 3 + * NOEX_SAFE(flag) -> safe (flags::safe, 3 bits) + * NOEX_BASIC -> basic (flags::basic, 1 bit) + * NOEX_MODFUNC -> rb_scope_visibility_t in CREF + * NOEX_SUPER -> MISSING_SUPER (enum missing_reason) + * NOEX_VCALL -> MISSING_VCALL (enum missing_reason) + * NOEX_RESPONDS -> BOUND_RESPONDS (macro) + + Now, NOEX_NOREDEF is not supported (I'm not sure it is needed). + + Background: + I did not know what "NOEX" stands for. + I asked Matz (who made this name) and his answer was "Nothing". + "At first, it meant NO EXport (private), but the original + meaning was gone." + This is why I remove the mysterious word "NOEX" from MRI. + + * vm_core.h: introduce `enum missing_reason' to represent + method_missing (NoMethodError) reason. + + * eval_intern.h: introduce rb_scope_visibility_t to represent + scope visibility. + It has 3 method visibilities (public/private/protected) + and `module_function`. + +Wed Jun 3 08:06:30 2015 NAKAMURA Usaku + + * gem/bundled_gems: updated to test-unit 3.1.1 and minitest 5.7.0. + +Wed Jun 3 04:48:05 2015 Koichi Sasada + + * vm_insnhelper.c (vm_defined): check respond_to_missing? + at defined?(func()). + [Bug #11212] + + * test/ruby/test_defined.rb: add a test for this fix. + +Wed Jun 3 04:34:39 2015 Koichi Sasada + + * vm_insnhelper.c (vm_defined): skip respond_to_missing? when + a method is available. + [Bug #11211] + + * test/ruby/test_defined.rb: add a test for this fix. + +Wed Jun 3 04:14:13 2015 Koichi Sasada + + * insns.def (defined), vm_insnhelper.c (vm_defined): + move instruction body to the vm_defined() function. + +Wed Jun 3 02:29:25 2015 Benoit Daloze + + * test/ruby/test_module.rb: Do not assume class variable order. + Patch by @enebo. + +Wed Jun 3 01:10:38 2015 Yusuke Endoh + + * vm_method.c (rb_method_definition_set): remove a double assignment. + Coverity Scan found this bug. + +Wed Jun 3 00:04:51 2015 Koichi Sasada + + * vm_method.c (rb_alias): rename parameter names. + +Tue Jun 2 23:27:18 2015 Koichi Sasada + + * method.h: remove rb_method_iseq_t::iseqval. + While making a r50728, iseqval is needed (to mark correctly), + but now just iseqptr is enough. + + * class.c: catch up this fix. + + * gc.c: ditto. + + * proc.c: ditto. + + * vm_method.c: ditto. + +Tue Jun 2 21:29:28 2015 Koichi Sasada + + * proc.c (proc_curry): remove a debug line. + +Tue Jun 2 12:43:46 2015 Koichi Sasada + + * method.h: make rb_method_entry_t a VALUE. + Motivation and new data structure are described in [Bug #11203]. + + This patch also solve the following issues. + + * [Bug #11200] Memory leak of method entries + * [Bug #11046] __callee__ returns incorrect method name in orphan + proc + + * test/ruby/test_method.rb: add a test for [Bug #11046]. + + * vm_core.h: remove rb_control_frame_t::me. me is located at value + stack. + + * vm_core.h, gc.c, vm_method.c: remove unlinked_method... codes + because method entries are simple VALUEs. + + * method.h: Now, all method entries has own independent method + definitions. Strictly speaking, this change is not essential, + but for future changes. + + * rb_method_entry_t::flag is move to rb_method_definition_t::flag. + * rb_method_definition_t::alias_count is now + rb_method_definition_t::alias_count_ptr, a pointer to the counter. + + * vm_core.h, vm_insnhelper.c (rb_vm_frame_method_entry) added to + search the current method entry from value stack. + + * vm_insnhelper.c (VM_CHECK_MODE): introduced to enable/disable + assertions. + +Tue Jun 2 10:46:36 2015 Eric Wong + + * test/socket/test_nonblock.rb: new test for sendmsg_nonblock + +Tue Jun 2 09:04:14 2015 Eric Wong + + * lib/benchmark.rb: just use Process::CLOCK_MONOTONIC + [ruby-core:69390] + +Mon Jun 1 22:01:27 2015 Nobuyoshi Nakada + + * lib/mkmf.rb (pkg_config): split --libs if --libs-only-l option + is not available. patch in [ruby-core:69428] by Hans Mackowiak. + [ruby-core:69421] [Bug #11201] + +Mon Jun 1 21:18:24 2015 Koichi Sasada + + * gc.c (gc_mark_children): remove a garbage character + introduced at the last commit. + +Mon Jun 1 19:24:42 2015 Koichi Sasada + + * vm_method.c (rb_method_entry_make): do not show warning message + when method_entry is an alias. + +Mon Jun 1 15:47:16 2015 Koichi Sasada + + * internal.h: move class related definitions. + +Mon Jun 1 15:43:03 2015 Koichi Sasada + + * class.c: remove needless include pragma for method.h. + + * struct.c: ditto. + + * vm_method.c: ditto. + +Mon Jun 1 05:42:00 2015 Koichi Sasada + + * eval_intern.h, vm_method.c: move macros to functions. + * SCOPE_TEST(f) -> rb_frame_visibility_test(flag). + * SCOPE_CHECK(f) -> rb_frame_visibility_check(flag). + * SCOPE_SET(f) -> rb_frame_visibility_set(flag). + + * load.c (load_ext): use it. + +Mon Jun 1 04:47:37 2015 Zachary Scott + + * ext/date/date_core.c: [DOC] Add comparison of Time and DateTime + Patch provided by @pixeltrix + +Mon Jun 1 04:22:09 2015 Koichi Sasada + + * vm_core.h (VM_FRAME_MAGIC_DUMMY): introduce new frame type to + recognize dummy frame. + + * vm.c (th_init): use new frame type. + + * vm_args.c (raise_argument_error): ditto. + +Mon Jun 1 04:15:42 2015 Koichi Sasada + + * class.c (rb_class_has_methods): added to reduce dependency + to internal class data structure. + + * internal.h: ditto. + + * hash.c (has_extra_methods): use added function. + +Mon Jun 1 04:11:48 2015 Koichi Sasada + + * gc.c , gc.h (rb_obj_info): export obj_info(VALUE) for debugging. + +Mon Jun 1 03:52:55 2015 Koichi Sasada + + * test/ruby/test_gc.rb: increase timeout seconds for GC stressful + debugging. + +Sun May 31 04:18:06 2015 Koichi Sasada + + * method.h: fix typo of comments. + +Sun May 31 03:36:42 2015 Koichi Sasada + + * method.h: add VM_METHOD_TYPE_ALIAS rb_method_definition_t::type + to fix [Bug #11173]. + + Now, inter class/method alias creates new method entry + VM_METHOD_TYPE_ALIAS, which has an original method entry. + + * vm_insnhelper.c (find_defined_class_by_owner): added. + Search corresponding defined_class from owner class/module. + + * vm_method.c (rb_method_entry_get_without_cache): return me->klass + directly for defined_class. + + Now, no need to check me->klass any more. + + * vm_method.c (method_entry_set0): separated from method_entry_set(). + + * vm_method.c (rb_alias): make method entry has VM_METHOD_TYPE_ALIAS. + + * vm_method.c (release_method_definition): support VM_METHOD_TYPE_ALIAS. + + * vm_method.c (rb_hash_method_definition): ditto. + + * vm_method.c (rb_method_definition_eq): ditto. + + * vm_method.c (release_method_definition): ditto. + + * vm_insnhelper.c (vm_call_method): ditto. + + * vm_insnhelper.c (vm_method_cfunc_entry): ditto. + + * vm_eval.c (vm_call0_body): ditto. + + * gc.c (mark_method_entry): ditto. + + * proc.c (method_def_iseq): ditto. + + * proc.c (method_cref): ditto. + + * proc.c (rb_method_entry_min_max_arity): ditto. + + * test/ruby/test_alias.rb: add tests. + + * test/ruby/test_module.rb: fix a test to catch up current behavior. + +Sun May 31 03:34:25 2015 Koichi Sasada + + * vm_method.c (rb_unlink_method_entry): make it static. + +Sun May 31 03:26:58 2015 Koichi Sasada + + * method.h, vm_method.c (rb_free_method_entry): constify a parameter. + + * vm_core.h: remove useless declaration about rb_unlink_method_entry(). + +Sat May 30 18:05:02 2015 NAKAMURA Usaku + + * lib/tempfile.rb (Remover#call): fixed wrong condition. introduced at + r50682. + +Sat May 30 16:12:35 2015 Eric Wong + + * ext/socket/ancdata.c: use RB_GC_GUARD instead of volatile + [ruby-core:69419] [Feature #11198] + +Sat May 30 15:59:10 2015 NAKAMURA Usaku + + * lib/tempfile.rb (Tempfile#initialize): initialize @unlinked to fix + test failures introduced at r50682. I hope that check the results of + tests before committing, at least the tests about the changed feature. + +Sat May 30 11:02:55 2015 Martin Englund + + * doc/dtrace_probes.rdoc: change lingering dtrace probe documentation + from function- to method- + +Sat May 30 10:26:09 2015 Masaki Matsushita + + * lib/tempfile.rb: refactoring. + * use warn instead of STDERR.print + * remove @tmpname and use @tmpfile.path + * introduce @unlinked flag + * Remover takes only @tmpfile + * mode will be modified just before file reopen + +Sat May 30 09:02:51 2015 Eric Wong + + * include/ruby/intern.h (rb_generic_ivar_table): deprecate + * internal.h (rb_attr_delete): declare + * marshal.c (has_ivars): use rb_ivar_foreach + (w_ivar): ditto + (w_object): update for new interface + * time.c (time_mload): use rb_attr_delete + * variable.c (generic_ivar_delete): implement + (rb_ivar_delete): ditto + (rb_attr_delete): ditto + [ruby-core:69323] [Feature #11170] + +Sat May 30 09:14:28 2015 Scott Francis + + * cont.c (cont_free): check if ruby_current_thread is still valid. + [Fix GH-914] + +Sat May 30 08:36:04 2015 Eric Wong + + * variable.c (static int special_generic_ivar): move + (rb_generic_ivar_table): rewrite for compatibility + (gen_ivtbl_bytes): new function + (generic_ivar_get): update to use ivar index + (generic_ivar_update): ditto + (generic_ivar_set): ditto + (generic_ivar_defined): ditto + (generic_ivar_remove): ditto + (rb_mark_generic_ivar): ditto + (givar_i): ditto + (rb_free_generic_ivar): ditto + (rb_mark_generic_ivar_tbl): ditto + (rb_generic_ivar_memsize): ditto + (rb_copy_generic_ivar): ditto + (rb_ivar_set): ditto + (rb_ivar_foreach): ditto + (rb_ivar_count): ditto + (givar_mark_i): remove + (gen_ivtbl_mark): new function + (gen_ivar_each): ditto + (iv_index_tbl_extend): update for struct ivar_update + (iv_index_tbl_newsize): ditto + [ruby-core:69323] [Feature #11170] + +Sat May 30 08:10:46 2015 Eric Wong + + * variable.c (iv_index_tbl_make): extract from rb_ivar_set + (iv_index_tbl_extend): ditto + (iv_index_tbl_newsize): ditto + (rb_ivar_set): use extracted functions + [ruby-core:69323] (Part 1) + +Fri May 29 17:39:14 2015 Koichi Sasada + + * tool/make_hgraph.rb: added. + +Fri May 29 14:39:00 2015 Nobuyoshi Nakada + + * compile.c (iseq_compile_each): out of range NTH_REF is always + nil. + + * parse.y (parse_numvar): check overflow of NTH_REF and range. + [ruby-core:69393] [Bug #11192] + + * util.c (ruby_scan_digits): make public and add length parameter. + +Fri May 29 11:18:58 2015 Eric Wong + + * ext/socket/ancdata.c (bsock_sendmsg_internal, + bsock_recvmsg_internal): + avoid redundant fcntl on Linux + [ruby-core:69154] [Feature #11145] + * ext/socket/init.c (rsock_s_recvfrom_nonblock): ditto + * ext/socket/rubysocket.h (MSG_DONTWAIT_RELIABLE): new macro + +Fri May 29 10:30:34 2015 Eric Wong + + * lib/net/resolv.rb (request): use monotonic clock + * lib/net/http.rb (begin_transport, end_transport): ditto + [ruby-core:69384] [Feature #11124] + +Fri May 29 04:37:38 2015 Koichi Sasada + + * ext/objspace/objspace.c: add two methods to debug internals. + + * ObjectSpace.internal_class_of: return RBASIC_CLASS(obj). + * ObjectSpace.internal_super_of: return RCLASS_SUPER(cls). + + * NEWS: add information about both methods. + + * test/objspace/test_objspace.rb: add tests for both methods. + +Thu May 28 06:55:53 2015 Anton Davydov + + * ext/tk/sample/figmemo_sample.rb (open_file), + ext/tk/sample/tktextio.rb (TkTextIO): fix typo in messages. + [Fix GH-916] + +Wed May 27 09:50:51 2015 Eric Wong + + * ext/openssl/ossl_asn1.c (ossl_asn1_traverse, ossl_asn1_decode, + ossl_asn1_decode_all): use RB_GC_GUARD instead of volatile + [ruby-core:69371] [Bug #11185] + +Wed May 27 09:27:30 2015 Eric Wong + + * lib/drb/drb.rb (set_sockopt): remove redundant fcntl call + * lib/drb/unix.rb (set_sockopt): ditto + [ruby-core:69128] [Feature #11137] + +Tue May 26 22:10:43 2015 Shugo Maeda + + * vm_method.c (rb_alias): should resolve refined methods. + [ruby-core:69360] [Bug #11182] + +Tue May 26 21:35:13 2015 Kazuhiro NISHIYAMA + + * include/ruby/defines.h (RUBY_ATTR_ALLOC_SIZE): fix condition. + +Mon May 25 22:35:58 2015 NAKAMURA Usaku + + * tool/redmine-backporter.rb (rel): after the relations is changed, + @changesets is no longer right. + +Mon May 25 11:27:14 2015 NARUSE, Yui + + * win32/win32.c (setup_overlapped): seek to the file end only when + writing (mode:a), not reading (mode:a+, read). + +Mon May 25 00:27:37 2015 Benoit Daloze + + * numeric.c (Numeric#negative?): [DOC] Fix call-seq. + Patch by @yui-knk. [Fixes GH-908] + +Sun May 24 01:35:22 2015 Koichi Sasada + + * debug.c (ruby_debug_print_id): use rb_id2name() for fprintf(). + +Sat May 23 18:38:46 2015 Nobuyoshi Nakada + + * man/*.1: updated dates in man pages. + [ruby-dev:48988] [Bug #11171] + +Sat May 23 03:10:58 2015 NAKAMURA Usaku + + * win32/win32.c (rb_w32_write_console): should return the count of + actually eaten characters, include escape sequences. + +Fri May 22 22:36:14 2015 Marc-Andre Lafortune + + * lib/prime.rb: Remove obsolete Prime.new + patch by Ajay Kumar. [Fixes GH-891] + +Fri May 22 21:13:12 2015 Nobuyoshi Nakada + + * include/ruby/intern.h (rb_sym_count): move `rb_sym_all_symbols` + to a symbol.c specific section. a part of patch by Lourens + Naude. + +Fri May 22 20:56:33 2015 NAKAMURA Usaku + + * complex.c (f_complex_polar): simple bug reproduced only when y is + a float but x is not a float. + +Fri May 22 19:42:06 2015 Nobuyoshi Nakada + + * process.c (rb_spawn_process): do not discard global escape + status. [ruby-core:69304] [Bug #11166] + + * process.c (rb_execarg_spawn): extract the start procedure in a + parent process with ensuring the end procedure. + +Fri May 22 16:48:32 2015 SHIBATA Hiroshi + + * NEWS: added news for net-telnet and rake + +Thu May 21 20:27:07 2015 NARUSE, Yui + + * configure.in (RUBY_DTRACE_POSTPROCESS): cmp -b is GNU extension. + darwin uses GNU cmp, and FreeBSD and Solaris are not. + Note that accidentally equals to expected result. + +Thu May 21 18:00:19 2015 Koichi Sasada + + * iseq.c: constify. + + * iseq.h: ditto. + + * method.h: ditto. + + * proc.c: ditto. + + * vm_method.c: ditto. + +Thu May 21 17:44:53 2015 Koichi Sasada + + * proc.c: fix issues caused by binding created from Method#to_proc. + [Bug #11163] + + * vm.c (vm_cref_new_toplevel): export as rb_vm_cref_new_toplevel(). + + * test/ruby/test_method.rb: add some assertions. + +Thu May 21 17:29:26 2015 SHIBATA Hiroshi + + * lib/matrix.rb: added documentation for Matrix#empty and Matrix#/ + [Feature #10070][ruby-dev:48433] Patch by @gogotanaka + +Thu May 21 17:02:43 2015 Koichi Sasada + + * proc.c: rename functions. + * method_get_def() -> method_def() + * method_get_iseq() -> method_def_iseq() + * method_get_cref() -> method_cref() + +Thu May 21 16:52:44 2015 Koichi Sasada + + * proc.c (rb_method_get_iseq): rename to rb_method_iseq. + + * iseq.c: catch up this fix. + + * iseq.h: commit ditto. + +Thu May 21 15:41:45 2015 SHIBATA Hiroshi + + * lib/net/telnet.rb: gemify net-telnet. + [Feature #11083] + * gems/bundled_gems: added net-telnet to bundled gems. + +Thu May 21 15:37:32 2015 Zachary Scott + + * vm_method.c: Remove private attribute warning [Bug #10967] + Patch by @spastorino [Fixes GH-849] + https://github.com/ruby/ruby/pull/849 + + * test/ruby/test_module.rb: Update test for changes + +Thu May 21 10:59:43 2015 Koichi Sasada + + * proc.c (method_proc): rename to method_to_proc. + +Thu May 21 10:51:54 2015 Jake Worth + + * io.c (rb_f_select): [DOC] Fixes for grammar and style. + [Fix GH-906] + +Thu May 21 08:25:19 2015 Eric Wong + + * variable.c (Init_var_tables): init generic_iv_tbl + (rb_generic_ivar_table, generic_ivar_get, generic_ivar_set, + generic_ivar_defined, generic_ivar_remove, + rb_mark_generic_ivar, givar_i, rb_mark_generic_ivar_tbl, + rb_free_generic_ivar, rb_copy_generic_ivar, rb_ivar_foreach, + rb_ivar_count): remove checks for uninitialize generic_iv_tbl + [ruby-core:69155] [Feature #11146] + +Thu May 21 04:11:03 2015 Koichi Sasada + + * iseq.c (exception_type2symbol): show correct bug message. + +Wed May 20 23:19:05 2015 Yusuke Endoh + + * lib/base64.rb: Fix rdoc-formatting for padding argument. + [fix GH-905][ci skip] Patch by @davydovanton + +Wed May 20 13:16:23 2015 Nobuyoshi Nakada + + * configure.in (DEPRECATED_BY): deprecate warning with preferable + alternative. + + * configure.in (RUBY_FUNC_ATTRIBUTE): allow attribute arguments in + the macro. + +Wed May 20 11:23:24 2015 NARUSE, Yui + + * vm_dump.c (rb_print_backtrace): return value of libexec's backtrace + is size_t, so simply cast as int. + +Tue May 19 18:54:41 2015 Nobuyoshi Nakada + + * iseq.c (rb_iseq_compile_with_option): check source type, must be + an IO or a String. [ruby-core:69219] [Bug #11159] + +Tue May 19 17:15:03 2015 SHIBATA Hiroshi + + * lib/benchmark.rb: Update Benchmark documentation and formatting. + [fix GH-903][ci skip] Patch by @davydovanton + +Tue May 19 13:10:08 2015 Nobuyoshi Nakada + + * numeric.c (num_positive_p): should false on Bignum 0. + http://twitter.com/rafaelfranca/status/600509783427391488 + [ruby-core:69173] [Feature #11151] + +Tue May 19 11:22:28 2015 NARUSE, Yui + + * lib/uri/rfc2396_parser.rb (initialize_pattern): + URI::Generic.build should accept port as a string. + pattern[:PORT] is not defined for long. + by Dave Slutzkin + https://github.com/ruby/ruby/pull/804 fix GH-804 + +Tue May 19 11:18:46 2015 Nobuyoshi Nakada + + * include/ruby/ruby.h (rb_data_typed_object_alloc), + (rb_data_object_alloc): add old names for source level backward + compatibilities. + + * gc.c (rb_data_object_alloc, rb_data_typed_object_alloc): add + aliases for binary level backward compatibilities. + +Tue May 19 09:54:44 2015 Nobuyoshi Nakada + + * include/ruby/ruby.h (Data_Make_Struct0): needs function pointer + casts to fix function overloading in C++. + +Tue May 19 09:43:56 2015 Nobuyoshi Nakada + + * include/ruby/ruby.h (Data_Make_Struct0, TypedData_Make_Struct0): + explicit cast from void* is necessary as implicit cast is + disallowed in C++. + +Mon May 18 15:31:31 2015 Nobuyoshi Nakada + + * include/ruby/intern.h (rb_f_notimplement): should not respond to + not-implemented methods. as the address inside a DLL and the + imported address are different on Windows, use an exported + variable to share the same address. + +Mon May 18 13:55:01 2015 Shugo Maeda + + * lib/monitor.rb (mon_try_enter, mon_enter): should reset @mon_count + just in case the previous owner thread dies without mon_exit. + [fix GH-874] Patch by @chrisberkhout + +Sun May 17 17:21:29 2015 Eric Wong + + * lib/webrick/utils.rb (set_non_blocking): use IO#nonblock= + * (set_close_on_exec): use IO#close_on_exec= + [Feature #11136] + +Sun May 17 15:01:26 2015 Nobuyoshi Nakada + + * numeric.c (num_positive_p, num_negative_p): add methods + Numeric#positive? and Numeric#negative?. + [ruby-core:69173] [Feature #11151] + + * numeric.c (flo_positive_p, flo_negative_p): specialized + functions for Float. + + * complex.c (Init_Complex): Complex do not have positive? and + negative? methods + +Sun May 17 14:57:42 2015 Eric Wong + + * lib/webrick/server.rb (accept_client): avoid redundant fcntl call + [Feature #11137] + +Sun May 17 12:13:33 2015 Eric Wong + + * ext/socket/init.c (cloexec_accept): support nonblock flag and + use SOCK_NONBLOCK if possible + * ext/socket/init.c (rsock_s_accept_nonblock): + update cloexec_accept call + * ext/socket/init.c (accept_blocking): ditto for blocking + * test/socket/test_nonblock.rb: check nonblock? on accepted socket + [Feature #11138] + +Sun May 17 03:58:59 2015 Aaron Patterson + + * load.c (loaded_feature_path): stop returning false negatives for + filenames which are trailing substrings of file extensions. For + example, 'b', which a trailing substring of ".rb" should not return + false. [Bug #11155][ruby-core:69206] + + * test/ruby/test_autoload.rb: test for fix + +Sat May 16 21:41:24 2015 SHIBATA Hiroshi + + * string.c: added documentation for character sequence \' with String#sub + [Bug #11132][ruby-core:69121][fix GH-900][ci skip] Patch by @shishir127 + +Sat May 16 21:38:05 2015 SHIBATA Hiroshi + + * enum.c: fix a sample code. Patch by @eagletmt + [fix GH-901][ci skip] + +Sat May 16 21:17:11 2015 Nobuyoshi Nakada + + * gc.c (rb_data_object_wrap, rb_data_typed_object_wrap): rename + alloc as wrap. these functions do not allocate data pointers + but just wrap the given pointers. + +Sat May 16 19:59:24 2015 NAKAMURA Usaku + + * win32/win32.c (rb_w32_accept): simplified. + +Fri May 15 18:28:20 2015 Nobuyoshi Nakada + + * array.c (rb_ary_assoc, rb_ary_rassoc): [DOC] the result when key + was found is the existing element, not a new array. reported by + Giau Nguyen . + +Fri May 15 08:24:28 2015 Takeyuki FUJIOKA + + * lib/cgi/cookie.rb: Implement HttpOnly flag for cookies. + [fix GH-887] Patch by @martinpovolny + +Fri May 15 06:54:19 2015 Aaron Patterson + + * variable.c: Change autoload to call `require` through Ruby rather + than directly calling `rb_require_safe`. This allows things like + RubyGems to intercept file loading done though `autoload`. + [Feature #11140] + + * test/ruby/test_autoload.rb: Test for change. + +Wed Apr 8 19:18:02 2015 Shota Fukumori (sora_h) + + * enum.c (enum_grep_v, grep_i, grep_iter_i, Init_enum): + Implement Enumerable#grep_v. [Feature #11049] + +Thu May 14 15:54:13 2015 SHIBATA Hiroshi + + * ext/pathname/lib/pathname.rb: Remove condition of RUBY_VERSION <= 1.9. + [Feature #11082] + +Wed May 13 17:10:37 2015 Masaki Matsushita + + * enum.c (enum_to_a): revert r50457. + it requires recursion check. + then, it doesn't make performance improvement. + [Bug #11130] [Feature #9118] + +Wed May 13 11:13:40 2015 Nobuyoshi Nakada + + * parse.y (parse_gvar): separate message for gvar without + non-space characters from message for invalid identifiers. + +Tue May 12 22:18:27 2015 Masaki Matsushita + + * enum.c (enum_to_a): fix incompatibility introduced in r50457. + [Bug #11130] + + * test/ruby/test_enum.rb: test for above. + +Tue May 12 17:08:03 2015 Koichi Sasada + + * method.h: remove unused declaration. + +Mon May 11 10:58:45 2015 SHIBATA Hiroshi + + * gems/bundled_gems: Update minitest-5.6.1 and power_assert-0.2.3. + +Mon May 11 00:20:31 2015 Nobuyoshi Nakada + + * include/ruby/ruby.h (Data_Make_Struct, TypedData_Make_Struct): + allocate wrapper data object before allocating DATA_PTR to get + rid of possible memory leak when the former failed. + +Sun May 10 21:32:45 2015 Nobuyoshi Nakada + + * gc.c (gc_mark_children): call dmark function for non-NULL + pointers only, so that DATA_PTR can be NULL safely now. + +Sun May 10 16:23:58 2015 Kazuki Tsujimoto + + * proc.c (proc_binding): fix segmentation fault on marking phase. + envptr of newenvval should not be NULL. + + You can reproduce by + make test-all TESTS='--gc-stress -n test_to_proc_binding ruby/test_method.rb' + +Sun May 10 12:41:18 2015 Masaki Matsushita + + * ext/zlib/zlib.c (rb_gzreader_external_encoding): + define GzipReader#external_encoding. + [Bug #10900] + + * test/zlib/test_zlib.rb: test for above. + +Sun May 10 11:57:48 2015 Masaki Matsushita + + * ext/win32ole/win32ole_variant.c: fix typo "indicies". + the patch is from davydovanton . + [fix GH-892] + + * lib/rubygems/indexer.rb: ditto. + + * test/rubygems/test_gem_indexer.rb: ditto. + +Sun May 10 11:44:37 2015 Masaki Matsushita + + * string.c (rb_str_crypt): Raise ArgumentError when + string passed to String#crypt contains null. + the patch is from jrusnack . + [Bug #10988] [fix GH-853] + + * test/ruby/test_string.rb: test for above. + +Sun May 10 11:23:03 2015 Masaki Matsushita + + * enum.c (enum_to_a): Use size to set array capa when possible. + the patch is from HonoreDB . + [fix GH-444] + +Sat May 9 06:48:36 2015 Eric Wong + + * ext/socket/ancdata.c (bsock_recvmsg_internal): GC guard + [Bug #11123] + +Fri May 8 22:57:24 2015 takiy33 + + * test/matrix/test_matrix.rb (test_determinant): refactor test on + Matrix#determinant, by merging with test_det for an alias method + det. [Fix GH-897] + +Fri May 8 15:43:11 2015 Shugo Maeda + + * lib/net/imap.rb (body_ext_mpart): should work even if body-fld-dsp + is omitted. [ruby-core:69093] [Bug #11128] + +Fri May 8 15:05:57 2015 SHIBATA Hiroshi + + * doc/syntax/control_expressions.rdoc: fix a missing "a" + [fix GH-888][ci skip] Patch by @riffraff + +Fri May 8 12:11:33 2015 Nobuyoshi Nakada + + * vm_eval.c (rb_method_call_status): resolve refined method entry + to check if undefined. [ruby-core:69064] [Bug #11117] + +Thu May 7 22:22:59 2015 Sho Hashimoto + + * proc.c: [DOC] fix Binding#local_variable_set example. [ci skip] + +Thu May 7 11:32:57 2015 NARUSE, Yui + + * Makefile.in (rbconfig.rb): add rule to make. + +Thu May 7 05:14:39 2015 Eric Wong + + * ext/socket/lib/socket.rb (connect_nonblock): use IO#wait_writable + * lib/drb/drb.rb (DRB::DRbTCPSocket#alive?): use IO#wait_readable + * lib/webrick/httpserver.rb (run): ditto + * lib/resolv.rb (request): ditto for single socket case + [ruby-core:68943] [Feature #11081] + +Wed May 6 22:49:54 2015 Nobuyoshi Nakada + + * vm_eval.c (rb_method_call_status): undefined refined method is + not callable unless using. [ruby-core:69064] [Bug #11117] + +Sun May 3 22:40:06 2015 Rei Odaira + + * ext/-test-/file/fs.c: need to include sys/statvfs.h + to use statvfs(). + + * ext/-test-/file/extconf.rb: check the existence of + sys/statvfs.h + +Sun May 3 21:59:48 2015 SHIBATA Hiroshi + + * lib/yaml.rb: fix typo. [ci skip][fix GH-890] + Patch by @miketheman + +Sun May 3 10:02:12 2015 Nobuyoshi Nakada + + * range.c (linear_object_p, range_include): test if covered for + linear objects. [ruby-core:69052] [Bug #11113] + +Fri May 1 13:30:24 2015 Nobuyoshi Nakada + + * dln.c (dln_load): check if a different libruby is loaded by the + extension library, and then bail out to get rid of very + frequently reported stale bug reports. + +Thu Apr 30 19:51:11 2015 Nobuyoshi Nakada + + * compile.c (iseq_compile_each): revert r46873 and r46875, not to + allow to execute private readers by pretending op assign. + [ruby-core:68984] [Bug #11096] + +Thu Apr 30 17:02:33 2015 SHIBATA Hiroshi + + * rational.c: Added documentation for rational literal. + [Bug #11075][fix GH-885][ci skip] Patch by @shishir127 + +Thu Apr 30 16:39:44 2015 Nobuyoshi Nakada + + * ext/socket/ipsocket.c (init_inetsock_internal): preserve errno + before other library calls and use rb_syserr_fail. + [ruby-core:68531] [Bug #10975] + +Thu Apr 30 16:22:16 2015 Nobuyoshi Nakada + + * parse.y (lambda): push and reset cmdarg_stack in lambda body. + [ruby-core:69017] [Bug #11107] + +Sun Apr 26 07:36:48 2015 Nobuyoshi Nakada + + * enc/utf_8.c (code_to_mbclen, code_to_mbc): reject values larger + than UTF-8 max codepoints. [Feature #11094] + +Sat Apr 25 14:26:19 2015 Nobuyoshi Nakada + + * string.c (str_buf_cat): expand later so that the buffer can be + larger for further use. [Bug #11080] [Bug #11095] + +Fri Apr 24 23:48:45 2015 Akinori MUSHA + + * misc/ruby-electric.el: Import version 2.2.3 from + https://github.com/knu/ruby-electric.el. + +Fri Apr 24 10:40:02 2015 NAKAMURA Usaku + + * win32/win32.c (rb_w32_{getc,putc}): removed. they are needed for old + ruby (before 1.8), but not now. + +Fri Apr 24 08:40:13 2015 NARUSE, Yui + + * win32/win32.c: remove bcc related code. + + * include/ruby/win32.h: ditto. + +Fri Apr 24 08:21:07 2015 NARUSE, Yui + + * win32/win32.c (rb_acrt_lowio_lock_fh): wrap _pioinfo(i)->lock. + + * win32/win32.c (rb_acrt_lowio_unlock_fh): ditto. + +Fri Apr 24 06:47:19 2015 NARUSE, Yui + + * win32/win32.c (_filbuf): msvc14 doesn't have it, use _fgetc_nolock. + + * win32/win32.c (_flsbuf): msvc14 doesn't have it, use _fputc_nolock. + + * win32/win32.c (vcruntime_file): define vcruntime_file on msvc14 + because it doesn't export FILE's internal structure. + + * win32/win32.c (FILE_COUNT): added to abstract FILE->_cnt. + + * win32/win32.c (FILE_READPTR): added to abstract FILE->_ptr. + + * win32/win32.c (FILE_FILENO): added to abstract FILE->_file. + + * win32/win32.c (init_stdhandle): use FILE_FILENO. + + * win32/win32.c (rb_w32_getc): use FILE_COUNT and FILE_READPTR. + + * win32/win32.c (rb_w32_putc): ditto. + +Fri Apr 24 06:37:07 2015 NARUSE, Yui + + * win32/win32.c (dupfd): use _set_osfhnd. + + * win32/win32.c (rb_w32_wopen): use _set_osflags. + +Thu Apr 24 05:38:01 2015 Koichi Sasada + + * gc.c (gc_mark_roots): fox to work PRINT_ROOT_TICKS. + +Fri Apr 24 04:49:05 2015 NARUSE, Yui + + * win32/Makefile.sub: MSVC14 have struct timespec. + + * win32/rtname.cmd: support vcruntime140.dll. + + * time.c (localtime_with_gmtoff_zone): MSVC14 doesn't have tzname and + daylight but have _tzname and _daylight. + +Thu Apr 23 11:35:55 2015 Nobuyoshi Nakada + + * vm_eval.c (rb_obj_instance_eval, rb_obj_instance_exec): allow + symbols to just instance_eval/exec, except for definition of + singletons. [ruby-core:68961] [Bug #11086] + +Thu Apr 23 10:01:36 2015 SHIBATA Hiroshi + + * lib/delegate.rb: fix a typo. + [fix GH-881][ci skip] Patch by @Zorbash + +Wed Apr 22 18:36:50 2015 Shugo Maeda + + * lib/net/imap.rb (move, uid_move): support the MOVE command defined + in RFC6851. Patch by ojab ojab. + [ruby-core:68960] [Feature #11077] + +Tue Apr 22 12:42:12 2015 Kazuki Tanaka + + * test/ruby/test_object.rb: add tests for Kernel#String and Kernel#Array. + [fix GH-879][fix GH-880] Patch by @yui-knk + +Tue Apr 21 20:46:02 2015 SHIBATA Hiroshi + + * test/ruby/test_object.rb: renamed tests to explicitly class name. + [fix GH-877] Patch by @yui-knk + +Tue Apr 21 05:31:00 2015 Eric Wong + + * ext/socket/lib/socket.rb (connect_internal): avoid common exceptions + from connect_nonblock. [ruby-core:68909] + +Mon Apr 20 23:46:53 2015 NAKAMURA Usaku + + * win32/win32.c (rb_w32_wreadlink): follow the official format of + REPARSE_DATA_BUFFER structure. + +Mon Apr 20 20:23:04 2015 NAKAMURA Usaku + + * common.mk ($(arch)-fake.rb): revert r50354 because bsdmake seems not + to handle such substitution. + + * tool/expand-config.rb: convert path separators here. + +Mon Apr 20 16:52:20 2015 NAKAMURA Usaku + + * tool/fake.rb: don't fake libdir. use libdirname instead. + +Mon Apr 20 16:49:52 2015 NAKAMURA Usaku + + * lib/mkmf.rb (MakeMakefile#configuration): DESTDIR should never affect + top_srcdir and builddir. + +Mon Apr 20 16:18:17 2015 NAKAMURA Usaku + + * common.mk ($(arch)-fake.rb): fix the path separator up for Windows. + +Mon Apr 20 15:02:47 2015 NAKAMURA Usaku + + * win32/win32.c (rb_w32_wreadlink): fixed a bug that a junction misses + its drive letter. + +Mon Apr 20 12:54:56 2015 SHIBATA Hiroshi + + * ext/openssl/*: use license instead of licence. + [fix GH-876][ci skip] Patch by @davydovanton + * lib/net/https.rb: ditto. + +Mon Apr 20 12:42:40 2015 SHIBATA Hiroshi + + * benchmark/bm_so_meteor_contest.rb: fix a typo. + [fix GH-876][ci skip] Patch by @davydovanton + * tool/bisect.sh: ditto. + * tool/update-deps: ditto. + +Mon Apr 20 11:10:46 2015 Eric Wong + + * ext/socket/socket.c (sock_connect_nonblock): do not raise EISCONN + [ruby-core:68926] [Feature #11072] + * test/socket/test_nonblock.rb: check non-EISCONN on 2nd connect + +Sun Apr 19 12:19:17 2015 Chad Brewbaker + + * ext/{etc,openssl,tk}: Adding parens and comparisons around + assignments to get rid of Wparentheses warnings. [Fix GH-875] + +Sun Apr 19 10:42:54 2015 Nobuyoshi Nakada + + * hash.c (get_env_cstr): environment variables must be ASCII + compatible, as dummy encodings and wide char encodings are + unsupported now. + +Sat Apr 18 15:18:56 2015 Nobuyoshi Nakada + + * ext/json/parser/parser.rl: raise with messages in UTF-8 + encoding. [ruby-core:67386] [Bug #10705] + +Fri Apr 17 11:58:34 2015 Nobuyoshi Nakada + + * string.c (STR_SET_EMBED): clear NOFREE flag at embedding as + embedded strings no longer refer static strings. + [ruby-core:68436] [Bug #10942] + +Thu Apr 16 05:15:50 2015 Eric Wong + + * NEWS: note IO#wait_readable change in r50263 + +Thu Apr 16 05:09:36 2015 Eric Wong + + * lib/net/protocol.rb (rbuf_fill): use IO#wait_*able + * lib/net/http/generic_request.rb (wait_for_continue): ditto + [ruby-core:68891] [Feature #11056] + +Wed Apr 15 18:43:43 2015 Koichi Sasada + + * vm_trace.c (rb_tracepoint_new): fix documentation. + Commented by @emilsoman. + +Wed Apr 15 17:36:51 2015 Koichi Sasada + + * vm_trace.c (rb_tracepoint_new): Add documentation for + rb_tracepoint_new C level API [ci skip] + Provided by @emilsoman. [fix GH-869] + +Wed Apr 15 10:37:40 2015 SHIBATA Hiroshi + + * doc/contributors.rdoc: fix a typo. Patch by @davydovanton + [fix GH-872][ci skip] + * doc/syntax/methods.rdoc: ditto. + * ext/digest/sha2/sha2.c: ditto. + * ext/socket/ipsocket.c: ditto. + * ext/tk/*: ditto. + +Wed Apr 15 07:51:23 2015 Yuki Yugui Sonoda + + * doc/extension.ja.rdoc: Added description of TypedData_XXX. + Deprecated the old DATA_XXX. + Reviewed by ko1 and nobu. + Fixes [ruby-dev:40881] #3064 + + * doc/extension.rdoc: ditto. + +Wed Apr 15 07:34:49 2015 Nobuyoshi Nakada + + * thread_pthread.c (reserve_stack): keep sp safe zone to get rid + of crash by -fstack-check. [ruby-core:68740] [Bug #11030] + +Tue Apr 14 16:03:49 2015 NAKAMURA Usaku + + * tool/merger.rb (versionup): should also increment revision when + changing teeny. + +Tue Apr 14 11:24:56 2015 Nobuyoshi Nakada + + * ext/-test-/printf/printf.c (uint_to_str): renamed to get rid of + conflict on cygwin. [ruby-core:68877] [Bug #11065] + +Tue Apr 14 08:59:04 2015 Zachary Scott + + * gc.c: [DOC] Improve documentation for ObjectSpace.count_objects + with regards to `:TOTAL` key, with patch by @schneems [Fixes GH-871] + https://github.com/ruby/ruby/pull/871 [Bug #11067] + +Mon Apr 13 22:44:07 2015 Tanaka Akira + + * test/lib/envutil.rb (File.mkfifo): Defined using mkfifo command. + + * test/ruby/test_io.rb: Use File.mkfifo. + + * test/ruby/test_file_exhaustive.rb: Ditto. + + * test/ruby/test_process.rb: Ditto. + +Mon Apr 13 21:20:20 2015 CHIKANAGA Tomoyuki + + * ext/openssl/lib/openssl/ssl.rb: stricter hostname verification + following RFC 6125. with the patch provided by Tony Arcieri and + Hiroshi Nakamura [ruby-core:61545] [Bug #9644] + * test/openssl/test_ssl.rb: add tests for above. + +Sun Apr 12 18:40:04 2015 SHIBATA Hiroshi + + * ext/json/json.gemspec: bump version to 1.8.2. + * ext/json/lib/json/version.rb: ditto. + +Sun Apr 12 18:12:07 2015 SHIBATA Hiroshi + + * ext/json/json.gemspec, lib/rdoc/rdoc.gemspec: added gemspec directly. + * defs/default_gems, tool/rbinstall.rb: removed default_gems definition. + it make simple installation for default gems. + +Sun Apr 12 17:35:17 2015 SHIBATA Hiroshi + + * ext/json/*, test/json/*: Reverted r50231. Because it's not + working with cross-compile environment. + +Sun Apr 12 15:34:59 2015 Nobuyoshi Nakada + + * parse.y (arg): fix segfault by null caused by syntax error. + [ruby-core:68851] [Bug #10957] + +Sun Apr 12 15:11:16 2015 SHIBATA Hiroshi + + * lib/rubygems/test_case.rb: use explicitly exception class and reverted + to require JSON library for rubygems tests with Ruby 2.2.0 or earlier. + +Sun Apr 12 15:10:18 2015 Nobuyoshi Nakada + + * ext/io/wait/wait.c (io_wait_readable): simply returns that IO is + readable without blocking, but no longer returns EOF. + + * ext/io/wait/wait.c (io_ready_p, io_wait_readable): try polling + first and check FIONREAD optionally to see if EOF. + [ruby-core:36805] [Feature #4849] + +Sun Apr 12 14:53:23 2015 SHIBATA Hiroshi + + * lib/rubygems/test_case.rb: fixed json load error for rubygems tests. + +Sun Apr 12 14:13:28 2015 SHIBATA Hiroshi + + * gc.c: Document require name for ObjectSpace methods. + [ci skip][fix GH-860] Patch by @schneems + +Sun Apr 12 13:54:05 2015 Tanaka Akira + + * test/ruby/test_io.rb: New test that open(fifo) doesn't block other + threads. + +Sun Apr 12 13:52:18 2015 SHIBATA Hiroshi + + * ext/coverage/coverage.c: Remove extension from require argument. + [ci skip][fix GH-870] Patch by @yui-knk + +Sun Apr 12 10:29:14 2015 Eric Wong + + * ext/openssl/ossl_ssl.c (ossl_ssl_connect_nonblock): + support `exception: false' + * (get_no_exception): move function location + * ext/socket/socket.c (sock_connect_nonblock): + support `exception: false' + * test/openssl/test_pair.rb (test_connect_accept_nonblock_no_exception): + test `exception: false' on connect, + rename from `test_accept_nonblock_no_exception' + * test/socket/test_nonblock.rb (test_connect_nonblock_no_exception): + new test + +Sun Apr 12 09:57:16 2015 Tanaka Akira + + * test/ruby/test_file_exhaustive.rb: Test a block device on GNU/Linux. + +Sun Apr 12 09:24:03 2015 Tanaka Akira + + * test/ruby/test_file_exhaustive.rb: Test a file not owned. + +Sun Apr 12 09:05:44 2015 Tanaka Akira + + * ext/fiddle/depend: Fix "Wrong mix of special targets" error with + OpenBSD make. + +Sun Apr 12 09:04:37 2015 NAKAMURA Usaku + + * test/ruby/test_file_exhaustive.rb: Windows doesn't support Unix file + modes. + +Sun Apr 12 08:56:44 2015 Tanaka Akira + + * ext/-test-/file/fs.c: OpenBSD needs sys/param.h before sys/mount.h. + +Sun Apr 12 08:52:01 2015 Tanaka Akira + + * test/ruby/test_file_exhaustive.rb: Test suid, sgid and sticky file. + +Sat Apr 11 23:48:30 2015 SHIBATA Hiroshi + + * template/fake.rb.in: Don't assign baseruby, Because it's affect to + Makefile of native gem like json on bundled gems. + +Sat Apr 11 23:33:22 2015 Tanaka Akira + + * file.c (rb_f_test): Consider nsec for "=", "<" and ">" for "test" + method. + +Sat Apr 11 23:26:05 2015 SHIBATA Hiroshi + + * tool/rbinstall.rb: support destdir for native extension gem. + +Sat Apr 11 21:02:06 2015 NAKAMURA Usaku + + * test/ruby/test_file_exhaustive.rb + (TestFileExhaustive#test_stat_socket_p): r50226 accidentally missed + the guard for non-unix environments. + +Sat Apr 11 20:14:21 2015 SHIBATA Hiroshi + + * ext/json/*, test/json/*, defs/default_gems: Gemify JSON library. + [fix GH-867][Feature #11057] + * test/ruby/test_extlibs.rb: removed json gem from existence extensions. + * gems/bundled_gems: added json gem into bundled gem. + * lib/rdoc/rubygems_hook.rb: ignored no json environment. + * lib/rubygems/test_case.rb, test/rubygems/*: ditto. + * lib/rdoc/test_case.rb, test/rdoc/*: ditto. + +Sat Apr 11 15:56:58 2015 Tanaka Akira + + * test/ruby/test_file_exhaustive.rb: Create sample files lazily. + +Sat Apr 11 14:03:47 2015 Tanaka Akira + + * test/ruby/test_file_exhaustive.rb: Test character device using + /dev/null. + +Sat Apr 11 10:59:58 2015 Nobuyoshi Nakada + + * lib/mkmf.rb (append_cppflags, append_cflags, append_ldflags): + utility methods to append compiler options. + +Sat Apr 11 08:22:24 2015 SHIBATA Hiroshi + + * lib/rdoc/text.rb: removed duplicated code. + +Sat Apr 11 04:46:42 2015 Eric Wong + + * lib/net/protocol.rb (rbuf_fill): avoid exception with read_nonblock + [ruby-core:68787] [Feature #11044] + +Fri Apr 10 23:57:44 2015 Nobuyoshi Nakada + + * dir.c (need_normalization): use getattrlist() if fgetattrlist() + is unavailable, on OSX 10.5. [ruby-core:68829] [Bug #11054] + +Fri Apr 10 22:29:21 2015 Nobuyoshi Nakada + + * lib/mkmf.rb (try_compile): pass the given werror flag to try_do + to check if stderr is empty. + + * lib/mkmf.rb (try_cflags, try_ldflags): default werror to true. + + * win32/Makefile.sub (WERRORFLAG): remove useless option. VC does + not make warnings of unknown command option an error. + +Fri Apr 10 19:34:24 2015 Tanaka Akira + + * test/ruby/test_file_exhaustive.rb: Test socket. + +Fri Apr 10 19:38:46 2015 Koichi Sasada + + * test/objspace/test_objspace.rb: remove debug prints. + +Fri Apr 10 19:35:51 2015 Koichi Sasada + + * ext/objspace/objspace.c: add ObjectSpace.count_imemo_objects method + to count imemo objects for each type. + + * test/objspace/test_objspace.rb: add a test. + + * NEWS: describe about this addition. + +Fri Apr 10 19:34:24 2015 Tanaka Akira + + * test/ruby/test_file_exhaustive.rb: Test anonymous pipe. + +Fri Apr 10 19:31:56 2015 Tanaka Akira + + * test/ruby/test_file_exhaustive.rb: Test named pipe. + +Fri Apr 10 19:10:34 2015 Koichi Sasada + + * ext/objspace/objspace.c (setup_hash): unify common routine. + +Fri Apr 10 18:29:49 2015 Tanaka Akira + + * process.c (rb_execarg_parent_start1): Handle EINTR. + +Fri Apr 10 17:27:58 2015 Koichi Sasada + + * vm.c (vm_exec): check other events when RETURN is thrown. + [Bug #10724] + + * test/ruby/test_settracefunc.rb: add a test. + +Fri Apr 10 11:44:09 2015 Nobuyoshi Nakada + + * ext/date/extconf.rb: check warnings. + + * lib/mkmf.rb (try_cflags): pass options to try_compile. + + * win32/Makefile.sub (WERRORFLAG): make unknown command line + options an error. + +Fri Apr 10 08:00:17 2015 NAKAMURA Usaku + + * test/ruby/test_process.rb: unfortunately, windows is not POSIX... + cygwin has mkfifo command, but it does not affect system-wide. + +Fri Apr 10 02:18:53 2015 Tanaka Akira + + * test/ruby/test_process.rb: Use mkfifo command instead of mknod + command to create a named pipe. mkfifo command is defined by POSIX. + +Fri Apr 10 01:29:05 2015 Tanaka Akira + + * process.c: Release GVL when opening a file in spawn() to avoid whole + process blocking when opening a named pipe. + (open_func): New function. + (rb_execarg_parent_start1): Extracted from rb_execarg_parent_start and + use rb_thread_call_without_gvl2 to release GVL when opening a file. + (rb_execarg_parent_start): Invoke rb_execarg_parent_start1 via + rb_protect and invoke rb_execarg_parent_end when error. + +Thu Apr 9 22:19:19 2015 Tanaka Akira + + * process.c (redirect_open): Removed. + +Thu Apr 9 21:38:20 2015 Tanaka Akira + + * internal.h (rb_execarg_parent_end): Declared. + + * process.c: "spawn" opens files in the parent process. + (check_exec_redirect): Add an placeholder for fd in parameters + for fd_open. + (check_exec_fds_1): Delete fd_open condition. + (check_exec_fds): Don't call check_exec_fds_1 with fd_open. + (rb_execarg_parent_start): Open files specified as "spawn" options + and add "dup2" options. + (rb_execarg_parent_end): New function to close opened fds. + (run_exec_open): Removed. + (rb_execarg_run_options): Don't call run_exec_open. + (rb_spawn_internal): Call rb_execarg_parent_end. + + * io.c (pipe_open): Call rb_execarg_parent_end. + + * ext/pty/pty.c (establishShell): Call rb_execarg_parent_end. + +Thu Apr 9 20:52:31 2015 Tanaka Akira + + * internal.h (rb_execarg_parent_start): Renamed from rb_execarg_fixup. + + * process.c: Follows the above change. + + * io.c: Ditto. + + * ext/pty/pty.c: Ditto. + +Thu Apr 9 20:35:12 2015 Tanaka Akira + + * process.c (fd_clear_cloexec): Extracted from run_exec_dup2. + +Thu Apr 9 09:26:47 2015 Eric Wong + + * ccan/list/list.h: sync with ccan upstream + [ccan commit c2fbfe5282ba264f3485586e7efa8a5967f2d386] + +Thu Apr 9 08:24:03 2015 Masahiro Tomita + + * ext/socket/raddrinfo.c (addrinfo_mload): fix memory leak of + addrinfo. [ruby-dev:48923] [Bug #11051] + +Wed Apr 8 17:45:02 2015 Shannon Skipper + + * version.c (Init_version): the version of the engine or + interpreter. [Fix GH-858] + +Wed Apr 8 16:15:30 2015 Kenta Murata + + * bigdecimal: conform to ruby's license. [ruby-core:68466] [Bug #10952] + +Wed Apr 8 14:57:06 2015 NAKAMURA Usaku + + * win32/win32.c (rb_w32_wreadlink): should treat junctions like as + symlinks. + +Wed Apr 8 14:03:47 2015 Koichi Sasada + + * test/ruby/test_symbol.rb: fix syntax error. + +Wed Apr 8 13:01:06 2015 Nobuyoshi Nakada + + * hash.c (rb_any_hash): Symbols are compared by the identities + always. [ruby-core:68767] [Bug #11035] + +Tue Apr 7 10:22:51 2015 SHIBATA Hiroshi + + * internal.h: fix typo. Patch by @sferik [fix GH-865] + +Mon Apr 6 22:52:35 2015 Tanaka Akira + + * enum.c: Enumerable#chunk and Enumerable#slice_before no longer takes + the initial_state argument. [Feature #10958] + +Mon Apr 6 16:09:58 2015 Koichi Sasada + + * vm_args.c: protect value stack from calling other methods + during complex parameter setting process (splat, kw, and so on). + [Bug #11027] + + * vm_core.h: remove rb_thread_t::mark_stack_len. + With this modification, we don't need to use th->mark_stack_len. + + * test/ruby/test_keyword.rb: add a test. + + * cont.c (cont_capture): catch up this fix. + + * vm.c (rb_thread_mark): ditto. + +Mon Apr 6 11:26:42 2015 NARUSE, Yui + + * tool/downloader.rb (http_options): prevent content auto decoding + because this is a downloader. + +Sun Apr 5 09:55:18 2015 NAKAMURA Usaku + + * doc/contributing.rdoc: update Maintainers list. + +Sun Apr 5 09:11:00 2015 SHIBATA Hiroshi + + * tool/rbinstall.rb: fix bin script permission of bundled gems. + +Sun Apr 5 08:46:08 2015 SHIBATA Hiroshi + + * tool/rbinstall.rb: support --program-suffix option. + +Sat Apr 4 21:31:18 2015 SHIBATA Hiroshi + + * lib/rake/*: Gemify rake [fix GH-862][Feature #11025] + * test/rake/*: ditto. + * tool/rbinstall.rb: ditto. + +Sat Apr 4 11:30:24 2015 Nobuyoshi Nakada + + * string.c (rb_str_setbyte): check the argument first not to + discard shared string and code range unnecessarily until + actually changing the contents. pointed out by headius. + +Sat Apr 4 08:16:43 2015 NARUSE, Yui + + * lib/net/http.rb (edit_path): use path which is absolute ftp url + on using ftp_proxy. + +Fri Apr 3 11:43:17 2015 Nobuyoshi Nakada + + * vm_eval.c (vm_call0_cfunc): update invoker arguments. + + * vm_insnhelper.c (vm_call_cfunc_latter): ditto. + + * vm_insnhelper.c (rb_vm_call_cfunc_push_frame): ditto, and prefix + with rb_. + +Thu Apr 2 16:26:59 2015 Nobuyoshi Nakada + + * common.mk, tool/mkconfig.rb: check the running ruby version in + rbconfig.rb with the program version, as RUBY_VERSION has never + been affected by --with-ruby-version option. + [ruby-core:68639] [Bug #11002] + + * configure.in (LIBRUBY_DLDFLAGS): compatibility_version must be + valid version numbers, not an arbitrary string. + +Wed Apr 1 11:09:15 2015 Nobuyoshi Nakada + + * dir.c (push_glob): remove indirect links of arguments for + trampoline. + +Wed Apr 1 09:59:12 2015 Nobuyoshi Nakada + + * lib/fileutils.rb (FileUtils#mv): show the exact target path in + the error message instead of the destination parent directory + name. patched by Joao Britto at + [ruby-core:68706]. [Bug #11021] + +Tue Mar 31 15:25:07 2015 SHIBATA Hiroshi + + * doc/ChangeLog-0.06_to_0.52: added archived Changelog. + [ruby-list:50105] + * doc/ChangeLog-0.50_to_0.60: ditto. + * doc/ChangeLog-0.60_to_1.1: ditto. + +Mon Mar 30 22:02:55 2015 Kazuhiro NISHIYAMA + + * README.EXT.ja: add redirect [ruby-core:68631] + +Mon Mar 30 14:42:41 2015 Nobuyoshi Nakada + + * win32/win32.c (fileattr_to_unixmode, winnt_lstat): deal with + symbolic link than directory, and set executable bits. + +Mon Mar 30 11:27:54 2015 Nobuyoshi Nakada + + * io.c (copy_stream_body): use the arguments without conversion if + having read, readpartial, and write methods, than conversion by + to_path method. [ruby-core:68676] [Bug #11015] + +Sun Mar 29 21:08:37 2015 SHIBATA Hiroshi + + * gc.c (objspace_allrefs_destruct_i): fix a typo. + [Bug #11013] + +Sun Mar 29 11:51:32 2015 Nobuyoshi Nakada + + * proc.c (proc_binding): replicate env from method object, and + allocate the local variable area for the iseq local table. + [ruby-core:68673] [Bug #11012] + +Sat Mar 28 09:19:41 2015 NARUSE, Yui + + * ext/date/extconf.rb: try_cflags("-std=iso9899:1999") [Bug #10906] + ruby itself (including numeric.c) is built with strict compile + options including -std=iso9899:1999, but ext/date is not. + By the way -std=iso9899:1999 is not only a warning option but also + changes behavior like MACRO definitions for example INFINITY. + gcc on Solaris affect this. + +Fri Mar 27 16:34:16 2015 Nobuyoshi Nakada + + * common.mk: revert using BOOTSTRAPRUBY for enc.mk, as + enc/depend uses CONFIG. [ruby-core:68647] [Bug #11004] + +Thu Mar 26 10:05:13 2015 SHIBATA Hiroshi + + * test/test_observer.rb: add tests for Observable module. + [fix GH-859] Patch by @brightbits + +Thu Mar 26 06:35:10 2015 Eric Wong + + * README.EXT: add redirect [ruby-core:68631] + +Wed Mar 25 16:46:49 2015 NARUSE, Yui + + * ext/socket/extconf.rb: Solaris 11 has struct tcp_info.tcpi_ca_state, + but it is a dummy. + + * ext/socket/option.c: Solaris 11 doesn't have u_intN_t. + + * ext/socket/option.c: Solaris 11 needs inspect_tcpi_msec. + + * ext/socket/raddrinfo.c: Solaris 11 has AF_PACKET but doesn't have + related macros. + +Wed Mar 25 17:03:08 2015 Nobuyoshi Nakada + + * ext/-test-/file/fs.c (get_fsname): try magic number only if + f_type is included. [ruby-dev:48913] [Bug #11000] + +Wed Mar 25 11:20:40 2015 Nobuyoshi Nakada + + * benchmark/bm_hash_aref_flo.rb: make more realistic data. + [ruby-core:68632] [[Bug #10999] + +Wed Mar 25 10:39:06 2015 SHIBATA Hiroshi + + * .document: removed needless entries. + +Wed Mar 25 08:07:28 2015 Eric Wong + + * doc/extension.rdoc: fix spelling of filename + * doc/extension.ja.rdoc: ditto. + +Tue Mar 25 06:55:43 2015 Kazuki Tanaka + + * complex.c (k_inexact_p, k_exact_zero_p): use k_exact_zero_p macro + to remove k_inexact_p macro. + + * complex.c (k_exact_one_p): remove unused macro k_exact_one_p. + +Tue Mar 24 22:23:33 2015 SHIBATA Hiroshi + + * doc/extention.rdoc: move from toplevel document and added extname. + * doc/extention.ja.rdoc: ditto. + +Tue Mar 24 22:06:58 2015 SHIBATA Hiroshi + + * doc/standard_library.rdoc: strip. + +Tue Mar 24 22:06:27 2015 SHIBATA Hiroshi + + * doc/standard_library.rdoc: move Thread to Extensions. + +Tue Mar 24 21:59:10 2015 SHIBATA Hiroshi + + * doc/contributing.rdoc: update Maintainers list. + +Tue Mar 24 19:10:24 2015 Koichi Sasada + + * gc.c (gc_writebarrier_generational): fix messages for rb_bug(). + Remove `rb_' prefix. + + * gc.c (gc_writebarrier_incremental): ditto. + +Tue Mar 24 17:34:01 2015 Shugo Maeda + + * README.ja.md: should be chunibyo. + +Tue Mar 24 17:30:12 2015 Nobuyoshi Nakada + + * ext/-test-/file/fs.c (get_fsname): return filesystem name by + statfs/statvfs. [ruby-core:68624] [Bug #10998] + +Tue Mar 24 16:46:02 2015 NAKAMURA Usaku + + * tool/redmine-backporter.rb: now doesn't required spaces just after + `!`. + +Mon Mar 23 23:18:27 2015 Nobuyoshi Nakada + + * dir.c (dir_close): don't raise on double close for consistent to + IO#close. [Feature #10950] + +Mon Mar 23 21:22:07 2015 Nobuyoshi Nakada + + * win32/file.c (rb_readlink): move from file.c for better buffer + allocation and the result encoding. + + * win32/win32.c (wreadlink, rb_w32_ureadlink): implement readlink(). + +Mon Mar 23 14:40:45 2015 Nobuyoshi Nakada + + * win32/win32.c (winnt_stat): stat with following symbolic links. + + * win32/win32.c (winnt_lstat): rename old winnt_stat, which does + not follow symbolic links. + +Mon Mar 23 01:44:35 2015 Nobuyoshi Nakada + + * marshal.c (r_symreal): register symbol names as strings first so + that r_symlink always returns valid names. + [ruby-core:68587] [Bug #10991] + + * marshal.c (r_ivar, r_object0): now need to intern symbol names. + + * marshal.c (r_object0): compare with symbol names. + +Sun Mar 22 22:07:40 2015 Kouhei Sutou + + * doc/etc.rd.ja: Fix wrong coding for Emacs. + +Sun Mar 22 09:53:15 2015 Nobuyoshi Nakada + + * tool/make-snapshot (package): add default CONFIGURE name to + follow r50039. + + * tool/make-snapshot (package): substitute configuration variables + in Makefile.in instead of passing by the command line, and make + temporary Makefile instead of a pipe. + +Sun Mar 22 08:09:47 2015 Nobuyoshi Nakada + + * common.mk (ext/ripper/ripper.c, ext/rbconfig/sizeof/sizes.c): + strip autogenerated dependencies which have invalid syntax in + other than nmake. + +Sat Mar 21 15:01:26 2015 Nobuyoshi Nakada + + * ext/io/console/console.c (console_set_winsize): use handle for + writing. GetConsoleScreenBufferInfo seems failing on a handle + for reading. + + * io.c: [DOC] update the example of IO#winsize to use $stdout + instead of $stdin, which does not work on Windows. a patch by + Jan Lelis at [ruby-core:68574]. + [Bug #10986] + +Fri Mar 20 18:41:03 2015 Nobuyoshi Nakada + + * proc.c (respond_to_missing_p): check if the receiver responds to + the given method by respond_to_missing?. + + * proc.c (mnew_missing): create Method object for method_missing. + [ruby-core:68564] [Bug #10985] + +Fri Mar 20 17:43:18 2015 SHIBATA Hiroshi + + * .travis.yml: enabled email notification. + +Fri Mar 20 17:39:52 2015 SHIBATA Hiroshi + + * .travis.yml: removed Ruby 1.9.3 build on Travis CI + +Fri Mar 20 12:38:36 2015 Koichi Sasada + + * gc.c (obj_info): obj_info() can receive internal objects. + + * gc.c (check_rvalue_consistency): obj_info() returns const char *. + +Fri Mar 20 12:14:37 2015 Koichi Sasada + + * gc.c (obj_info): show class name and T_DATA type_name. + +Thu Mar 19 22:12:46 2015 Koichi Sasada + + * gc.c (rb_copy_wb_protected_attribute): `dest' can be WB unprotected. + +Thu Mar 19 21:25:25 2015 Koichi Sasada + + * gc.c (rb_copy_wb_protected_attribute): demote `dest' object. + +Thu Mar 19 16:18:00 2015 Koichi Sasada + + * gc.c, internal.h: export rb_gc_verify_internal_consistency(). + +Thu Mar 19 16:15:24 2015 Koichi Sasada + + * gc.c (obj_info): show allocation site if GC_DEBUG is not 0. + +Thu Mar 19 16:12:01 2015 Koichi Sasada + + * gc.c (newobj_of): fix RGENGC_OLD_NEWOBJ_CHECK logics. + * skip on incremental marking because not sure what happen :p + * rb_gc_writebarrier_remember() is enough to mark children. + +Thu Mar 19 16:08:42 2015 Koichi Sasada + + * gc.c (rb_copy_wb_protected_attribute): need demote for old objects. + +Thu Mar 19 10:31:00 2015 Nobuyoshi Nakada + + * random.c (fill_random_bytes): release the handle in the static + variable, not a local variable. + +Thu Mar 19 06:30:35 2015 Koichi Sasada + + * object.c (rb_obj_clone): do not touch age (FL_PROMOTED[01]) because + rb_obj_alloc() can return old object in debug. + +Thu Mar 19 06:29:28 2015 Koichi Sasada + + * test/objspace/test_objspace.rb: flag name was changed + (long_lived -> uncollectible). + +Thu Mar 19 05:30:13 2015 Koichi Sasada + + * iseq.c (iseq_mark): skip some marking if iseq->orig is available. + + * iseq.c (rb_iseq_clone): need WB for iseq1->klass = iseq0->klass + (done in MEMCPY). + +Thu Mar 19 04:55:53 2015 Koichi Sasada + + * internal.h (IMEMO_DEBUG): added. + + * internal.h: remove unused FL_IMEMO_MARK_V[0-3]. + + * gc.c (rb_imemo_new_debug): added. + + * gc.c (obj_info): show imemo type name. + +Thu Mar 19 04:52:26 2015 Koichi Sasada + + * gc.c (RGENGC_OLD_NEWOBJ_CHECK): add check mechanism. + + If RGENGC_OLD_NEWOBJ_CHECK > 0, then create old objects + (not new objects) periodically. + + Create one old objects per RGENGC_OLD_NEWOBJ_CHECK objects are + created. + +Thu Mar 19 04:46:36 2015 Koichi Sasada + + * enum.c (enum_sort_by): add WBs. + +Thu Mar 19 03:37:52 2015 Koichi Sasada + + * gc.c (check_rvalue_consistency): refactoring. + * not inline on RGENGC_CHECK_MODE > 0. + * check SPECIAL_CONST_P(obj) first. + * add a check that remembered_bit is only TRUE when old (age == 3). + + * gc.c (RVALUE_DEMOTE): should clear RVALUE_REMEMBERED bit. + + remembered_bit should be TRUE only for old (age == 3) objects. + + Actually there are no effect because demoted objects will be + uncollectible WB unprotected objects (marked at the beginning of + every minor GC). + +Thu Mar 19 02:52:48 2015 Koichi Sasada + + * gc.c: rename terminologies. + * long_lived -> uncollectible: + because this bitmap does not mean "long lived objects in past", + but means "prohibit collection these objects until next major GC". + + Uncollectible objects consist of two types objects, one is old + objects (WB protected objects which age == 3) and another is + uncollectible WB unprotected objects which are referred from old + objects + + * remembered_wb_unprotected_objects -> + uncollectible_wb_unprotected_objects: + because uncollectible objects does not mean remembered objects. + +Wed Mar 18 17:21:12 2015 Koichi Sasada + + * gc.c (gc_writebarrier_generational): add an alternative write + barrier (WB) implementation. + When finding reference from [Old obj] to [New obj] by WB, current + implementation marks [Old obj] as remembered old objects and marks + children of [Old obj] at the beginning of marking. + + Added (but disabled) code changes current behaviour. This fix promote + [New obj] to old and marks as a remembered old object. We can assume + "new objects referred from old objects are maybe long-lived old + objects". + + Disadvantage of added algorithm is we may promote unwilling + short-lived objects. For example, consider many new objects push and + pop to an old stack object. All of new objects (short-lived objects) + promote to old objects unexpectedly. + + To compare these behaviour, I add this new code (but disabled it). + +Wed Mar 18 17:14:39 2015 Koichi Sasada + + * gc.c (RVALUE_PROMOTE_RAW): rename to RVALUE_OLD_LONG_LIVED_SET() + to make clear. + +Wed Mar 18 17:10:01 2015 Koichi Sasada + + * gc.c (check_rvalue_consistency): do not need to check is_sweeping(). + +Wed Mar 18 14:13:22 2015 Koichi Sasada + + * benchmark/bm_vm1_gc_wb_ary.rb: run GC to finish "marking" phase. + + * benchmark/bm_vm1_gc_wb_obj.rb: ditto. + + * benchmark/bm_vm1_gc_wb_ary_promoted.rb: add parameter + full_mark: false to invoke only minor GC. + + * benchmark/bm_vm1_gc_wb_obj_promoted.rb: ditto. + +Wed Mar 18 12:07:36 2015 Koichi Sasada + + * string.c: add a comment about RSTRING_FSTR. + +Wed Mar 18 12:01:53 2015 Nobuyoshi Nakada + + * hash.c (rb_any_hash): use same hash values with Float#hash so + that -0.0 and +0.0 will be identical. + [ruby-core:68541] [Bug #10979] + +Wed Mar 18 05:34:32 2015 Koichi Sasada + + * string.c: introduce STR_FAKESTR to show string is FAKESTR or not. + + * string.c (STR_SET_SHARED): ignore FAKESTR because only Ruby objects + can use write barrier. + +Tue Mar 17 18:59:16 2015 Koichi Sasada + + * include/ruby/ruby.h: use rb_gc_writebrrier() simply. + For incremental GC, we need to get a pointer to the objspace. + We can share this pointer for the following WB process. + And considering icache hit ratio, process in the GC. + + * gc.c (rb_gc_writebarrier): added. + + * gc.c (gc_writebarrier_generational, gc_writebarrier_incremental): + make them NOINLINE because inlining them into rb_gc_writebarrier() + makes a prologue code of rb_gc_writebarrier() longer (storing callee + save registers). + + This patch improve the performance of WB on micro-benchmarks. + + name ruby 2.1 trunk modified + vm1_gc_wb_ary* 0.511 0.632 0.532 + vm1_gc_wb_ary_promoted* 0.578 0.701 0.674 + vm1_gc_wb_obj* 0.419 0.575 0.492 + vm1_gc_wb_obj_promoted* 0.537 0.664 0.618 + (sec) + +Tue Mar 17 18:51:43 2015 Koichi Sasada + + * benchmark/bm_vm1_gc_wb_ary(_promoted).rb: separate fastpath and + slowpath for WB. + + Before this change bm_vm1_gc_wb_ary.rb tried to check the performance + for WB slowpath (making a reference from oldobj to newobj). However, + from Ruby 2.2, 3 GCs are needed to promote new objects because + only 3 age objects are promoted objects. + + To compare fastpath and slowpath, introduce new "promoted" version + benchmark. + + bm_vm1_gc_wb_ary.rb is for fastpath and + bm_vm1_gc_wb_ary_promoted.rb is for slowpath. + + * benchmark/bm_vm1_gc_wb_obj(_promoted).rb: ditto. + +Tue Mar 17 17:23:11 2015 Nobuyoshi Nakada + + * dir.c (glob_helper): distinguish not-yet-stated and DT_UNKNOWN + by readdir, and traverse recursively for the former. Linux + readdir returns DT_UNKNOWN on some filesystems, e.g., smbfs, + iso9660. + +Mon Mar 16 17:43:21 2015 SHIBATA Hiroshi + + * lib/webrick/server.rb: Fix regression bug in WEBrick's + :DoNotReverseLookup config option implementation. + [fix GH-731] Patch by @vais + * test/webrick/test_do_not_reverse_lookup.rb: ditto. + +Sat Mar 14 20:05:23 2015 Kazuki Tanaka + + * math.c (math_gamma): optimization for passed small integer. + +Sat Mar 14 18:07:23 2015 Kazuki Tanaka + + * enum.c: [DOC] Fixes Enumerable#member? documentation + [fix GH-756][ci skip] Patch by @shamanime + +Sat Mar 14 12:23:53 2015 Nobuyoshi Nakada + + * dir.c (glob_helper): use d_type to reduce lstat system calls. + + * win32/dir.h (struct direct): add d_type instead of d_isdir and + d_isrep. SYMLINKD is unreliable, since the target can be + replaced after a link was created. + + * win32/win32.c (readdir_internal): set d_type. + +Sat Mar 14 02:14:50 2015 Nobuyoshi Nakada + + * parse.y (primary): empty parentheses at cmdarg can be null. + [ruby-core:68477] [Bug #10957] + +Fri Mar 13 15:04:36 2015 Nobuyoshi Nakada + + * ext/stringio/stringio.c (strio_close): don't raise on double + close for consistent to IO#close. + +Fri Mar 13 15:03:20 2015 Nobuyoshi Nakada + + * io.c (rb_io_close_read, rb_io_close_write): don't raise after + close same as IO#close. + +Fri Mar 13 12:29:07 2015 Tanaka Akira + + * test/readline/test_readline.rb: Restore environment variables: + COLUMNS LINES + +Fri Mar 13 11:37:46 2015 Nobuyoshi Nakada + + * ext/fiddle/extconf.rb: needs --enable-shared when linked to + libruby or fiddle.so. since --with-static-linked-ext does no + longer link extensions to ruby program with --enable-shared, the + only combination needs --enable-static is --disable-shared and + --with-static-linked-ext. [ruby-dev:48901] [Bug #10960] + +Fri Mar 13 07:02:20 2015 Eric Wong + + * ext/socket/init.c (rsock_s_accept_nonblock): use rb_hash_lookup2 + * ext/openssl/ossl_ssl.c (get_no_exception): new function + (ossl_ssl_accept_nonblock): use get_no_exception + (ossl_ssl_read_internal): ditto + (ossl_ssl_write_nonblock): ditto + [ruby-core:68511] + +Fri Mar 13 07:01:38 2015 Eric Wong + + * ext/openssl/ossl_ssl.c: predefine wait_*able symbols + +Thu Mar 12 22:59:53 2015 Tanaka Akira + + * test/lib/leakchecker.rb: Check environment variables. + +Thu Mar 12 05:54:27 2015 Eric Wong + + * ext/socket/init.c (rsock_s_accept_nonblock): + support exception: false + [ruby-core:66385] [Feature #10532] + * ext/socket/init.c (rsock_init_socket_init): define new symbols + * ext/socket/rubysocket.h: adjust prototype + * ext/socket/socket.c (sock_accept_nonblock): support exception: false + * ext/openssl/ossl_ssl.c (ossl_ssl_accept_nonblock): ditto + * ext/socket/socket.c (Init_socket): adjust accept_nonblock definition + * ext/openssl/ossl_ssl.c (Init_ossl_ssl): ditto + * ext/socket/tcpserver.c (rsock_init_tcpserver): ditto + * ext/socket/unixserver.c (rsock_init_unixserver): ditto + * ext/socket/tcpserver.c (tcp_accept_nonblock): adjust + rsock_s_accept_nonblock call + * ext/socket/unixserver.c (unix_accept_nonblock): ditto + * ext/openssl/ossl_ssl.c (ossl_start_ssl): support no_exception + * ext/openssl/ossl_ssl.c (ossl_ssl_connect): adjust ossl_start_ssl call + * ext/openssl/ossl_ssl.c (ossl_ssl_connect_nonblock): ditto + * ext/openssl/ossl_ssl.c (ossl_ssl_accept): ditto + * test/socket/test_nonblock.rb (test_accept_nonblock): test for + "exception :false" + * test/socket/test_tcp.rb (test_accept_nonblock): new test + * test/socket/test_unix.rb (test_accept_nonblock): ditto + * test/openssl/test_pair.rb (test_accept_nonblock_no_exception): ditto + +Thu Mar 12 10:53:06 2015 Koichi Sasada + + * internal.h, node.h: move a definition of `struct rb_global_entry' + and related functions from node.h to internal.h. + + * variable.c: remove unused include pragma. + + * common.mk: remove unused dependency. + +Thu Mar 12 10:32:39 2015 Koichi Sasada + + * common.mk: remove unused dependency. + +Thu Mar 12 08:20:14 2015 Koichi Sasada + + * load.c: removed unused header file "node.h". + + * method.h: ditto. + + * symbol.c: ditto. + +Thu Mar 12 08:14:48 2015 Koichi Sasada + + * gc.c: RGENGC_CHECK_MODE should be 0. + +Thu Mar 12 07:44:17 2015 Koichi Sasada + + * internal.h: use T_IMEMO to represent `struct MEMO' value. + memo->v1 and memo->v2 is WB protected values. + So use MEMO_V1/V2_SET() macros to set these values. + memo->u3 is ambiguous (sometimes a VALUE, sometimes an integer + value), so use gc_mark_maybe() in gc.c to mark it. + + Rename NEW_MEMO() to MEMO_NEW(). + + Move MEMO_FOR and NEW_MEMO_FOR macros from node.h. + + Export a rb_imemo_new() function for ext/ripper. + + * node.h: remove NODE_MEMO. + + * enum.c: catch up these change. + + * enumerator.c: ditto. + + * load.c: ditto. + + * ext/objspace/objspace.c (count_nodes): ditto. + + * gc.c (gc_mark_children): mark imemo_memo type. + + * parse.y (new_args_gen): use T_IMEMO. + (I'm not sure it is working correctly...) + +Wed Mar 11 22:36:34 2015 Koichi Sasada + + * eval.c (frame_called_id): it should use vm_ifunc type. + + * eval.c (frame_func_id): ditto. + +Wed Mar 11 22:27:05 2015 Koichi Sasada + + * node.h: remove NODE_IFUNC, NEW_IFUNC. + + * internal.h: use T_IMEMO for IFUNC. + + rename `struct IFUNC' to `struct vm_ifunc' and move the definition + from vm_insnhelper.h. Add imemo_ifunc. + + * gc.c (gc_mark_children): mark imemo_ifunc type T_IMEMO object. + + * compile.c: catch up these changes. + + * proc.c: ditto. + + * vm_core.h (RUBY_VM_IFUNC_P): ditto. + + * vm_eval.c (rb_iterate): ditto. + + * vm_insnhelper.c: ditto. + + * ext/objspace/objspace.c: ditto. + +Wed Mar 11 21:53:43 2015 Koichi Sasada + + * internal.h, eval_intern.h: move CREF accessors. + + List IMEMO supported types in internal.h. + +Wed Mar 11 21:45:36 2015 Koichi Sasada + + * vm_insnhelper.h: use T_IMEMO to create THROW_DATA. + + Add THROW_DATA_NEW(). + + * internal.h: move definition of `struct THROW_DATA' + from vm_insnhelper.h to internal.h. + + Rename `THROW_DATA' to `vm_throw_data'. + + * eval_intern.h (THROW_DATA_P): move to internal.h. + THROW_DATA is no longer T_NODE, so check T_IMEMO. + + * gc.c (gc_mark_children): mark THROW_DATA. + + * vm.c: catch up these changes. + + * vm_eval.c: ditto. + + * vm_insnhelper.c: ditto. + +Wed Mar 11 21:21:56 2015 Koichi Sasada + + * vm_insnhelper.c: use T_IMEMO to create SVAR. + + * internal.h, vm_insnhelper.h: move definition `struct SVAR' + from vm_insnhelper.h to internal.h. And rename it to struct vm_svar. + + new imemo_type imemo_svar is added. + + * gc.c (gc_mark_children): mark imemo_svar. + + * node.c (rb_gc_mark_node): remove useless marking. + +Wed Mar 11 19:35:46 2015 Koichi Sasada + + * include/ruby/ruby.h: introduce new type T_IMEMO. + T_IMEMO is Internal Memo type, internal use only. + T_IMEMO has same purpose of NODE_MEMO. + + To insert T_IMEMO, type numbers are modified a little. + + * internal.h: define struct RIMemo. Each RIMemo objects + has imemo_type. We can observe it by the imemo_type() function. + + * gc.c (rb_imemo_new): added. + + * node.h: remove NODE_CREF and NEW_CREF(). + + * node.c (rb_gc_mark_node): ditto. + + * vm.c (vm_cref_new): use rb_imem_new(). + + * vm_eval.c: ditto. + + * vm_insnhelper.c: use RIMemo objects for CREF. + + * ext/objspace/objspace.c: support T_IMEMO. + +Wed Mar 11 17:03:20 2015 Koichi Sasada + + * gc.c: fix memory leak by prepend method. + + It is easy to reproduce with such script: + + module M; def bar; end; end + loop{ + Class.new do + def foo; end + prepend M + end + } + + * gc.c (obj_free): free T_ICLASS::m_tbl if it is created by prepend. + To recognize it, check RICLASS_IS_ORIGIN flag. + + * gc.c (gc_mark_children): T_ICLASS objects only need to mark + T_ICLASS::m_tbl if RICLASS_IS_ORIGIN is set. + + * gc.c (obj_memsize_of): count T_ICLASS if RICLASS_IS_ORIGIN is set. + + * internal.h (RCLASS_SET_ORIGIN): add to set RCLASS_SET_ORIGIN. + + TODO: The word `origin' seems not good name. We need to invent + another good name. + + * class.c: use RCLASS_SET_ORIGIN(). + + * class.c (class_alloc): zero clear rb_classext_t. + +Wed Mar 11 13:28:49 2015 Nobuyoshi Nakada + + * configure.in: check also procstat_getvmmap, which is not + available on FreeBSD 9. [ruby-core:68468] [Bug #10954] + + * vm_dump.c (procstat_vm): use kinfo_getvmmap instead if + procstat_getvmmap is not available. + +Wed Mar 11 09:15:21 2015 Koichi Sasada + + * internal.h: define struct MEMO. + + * enum.c: use MEMO. + + * enumerator.c: ditto. + + * load.c: ditto. + + * node.h: return (struct MEMO *) pointer. + +Wed Mar 11 06:26:21 2015 Koichi Sasada + + * vm_insnhelper.h (THROW_DATA_STATE): return int, not VALUE. + + * vm_insnhelper.h (THROW_DATA_STATE_SET): accept int value. + +Wed Mar 11 05:06:46 2015 Koichi Sasada + + * vm_eval.c (rb_catch_protect): use THROW_DATA_VAL(). + +Wed Mar 11 04:56:04 2015 Koichi Sasada + + * vm_insnhelper.h: define struct IFUNC. + + * vm_eval.c (rb_iterate): use it. + + * vm_insnhelper.c (vm_yield_with_cfunc): ditto. + +Wed Mar 11 03:52:12 2015 Koichi Sasada + + * eval_intern.h (THROW_DATA_P): use RB_TYPE_P() instead of + BUILTIN_TYPE(). + + * thread.c (thread_join): use THROW_DATA_P(). + +Wed Mar 11 03:48:01 2015 Koichi Sasada + + * proc.c: use RUBY_VM_IFUNC_P() to recognize IFUNC or not. + + * vm.c: ditto. + + * vm_dump.c: ditto. + + * vm_insnhelper.c: ditto. + + * vm_core.h (RUBY_VM_IFUNC_P): use RB_TYPE_P() instead of + BUILTIN_TYPE(). + +Wed Mar 11 03:21:37 2015 Koichi Sasada + + * vm_insnhelper.h: define struct THROW_DATA to represent + throwing data. Also define accessor functions. + + * eval_intern.h: move related changes into vm_insnhelper.h. + Now these MACROs (functions) are only used in vm*.c. + + There is only THROW_DATA_P(err) to check this data type or not. + + * vm.c: catch up these changes. + + * vm_eval.c: ditto. + + * vm_insnhelper.c: ditto. + +Wed Mar 11 00:57:00 2015 Rei Odaira + + * test/rubygems/test_gem_security_trust_dir.rb: The return value of + File::Stat#mode is OS dependent. In AIX, 0200000 is set. + +Tue Mar 10 20:03:41 2015 Tanaka Akira + + * lib/webrick/server.rb: Invoke setup_shutdown_pipe in start method + instead of listen method. + [ruby-core:68476] [Bug #10956] Reported by Shintaro Kojima. + +Tue Mar 10 17:27:27 2015 Koichi Sasada + + * thread.c (thread_join): Fixnum (except TAG_FATAL) and + NODE should not be reached here. + +Mon Mar 9 21:42:10 2015 Koichi Sasada + + * vm_insnhelper.c (ep_cref): rename to lep_cref() because it should be + local ep. + +Mon Mar 9 16:34:36 2015 Nobuyoshi Nakada + + * ext/stringio/stringio.c (strio_close): don't raise on double + close for consistent to IO#close. + +Mon Mar 09 06:44:48 2015 Koichi Sasada + + * vm_insnhelper.h: define struct SVAR for SVAR. + This data type is also same layout of NODE (NODE_IF). + + * vm_insnhelper.c: catch up this change. + +Mon Mar 9 06:43:21 2015 Koichi Sasada + + * vm_insnhelper.c (lep_svar_set): add WBs. + +Mon Mar 9 06:19:06 2015 Koichi Sasada + + * internal.h: define rb_cref_t and change to use it. + + rb_cref_t is data type of CREF. Now, the body is still NODE. + It is easy to understand what is CREF and what is pure NODE. + +Mon Mar 9 06:00:37 2015 Koichi Sasada + + * vm_insnhelper.h (COPY_CREF_OMOD): fix translation miss. + +Mon Mar 9 04:47:58 2015 Koichi Sasada + + * internal.h: define CREF accessor macros. + * CREF_CLASS(cref) + * CREF_NEXT(cref) + * CREF_VISI(cref) + * CREF_VISI_SET(cref, v) + * CREF_REFINEMENTS(cref) + * CREF_PUSHED_BY_EVAL(cref) + * CREF_PUSHED_BY_EVAL_SET(cref) + * CREF_OMOD_SHARED(cref) + * CREF_OMOD_SHARED_SET(cref) + * CREF_OMOD_SHARED_UNSET(cref) + + This is process to change CREF data type from NODE. + +Sun Mar 8 22:50:57 2015 Tanaka Akira + + * ext/zlib/zlib.c (rb_gzfile_close): Don't raise on double + close for consistent to IO#close. + +Sun Mar 8 16:57:35 2015 Nobuyoshi Nakada + + * dir.c (glob_helper): match patterns against legacy short names + too, not only ordinary names. [ruby-core:67954] [Bug #10819] + + * win32/dir.h (struct direct): add short name members. + + * win32/win32.c (opendir_internal, readdir_internal): ditto. + +Sat Mar 7 09:36:05 2015 SHIBATA Hiroshi + + * array.c: document that first element is kept when using + Array#uniq and #uniq! [fix GH-845][ci skip] + Patch by @riffraff + +Sat Mar 7 09:28:02 2015 SHIBATA Hiroshi + + * thread.c: Mutex#owned? is no longer experimental since 2.1.0 + [fix GH-839][ci skip] Patch by @takiy33 + +Sat Mar 7 09:18:42 2015 SHIBATA Hiroshi + + * tool/merger.rb: Added documentation to version method. + [fix GH-847][ci skip] Patch by @magikid + +Fri Mar 6 22:50:36 2015 Koichi Sasada + + * class.c (rb_prepend_module): need a WB for klass -> origin. + +Fri Mar 6 20:18:38 2015 Koichi Sasada + + * fix namespace issue on singleton class expressions. [Bug #10943] + + * vm_core.h, method.h: remove rb_iseq_t::cref_stack. CREF is stored + to rb_method_definition_t::body.iseq_body.cref. + + * vm_insnhelper.c: modify SVAR usage. + When calling ISEQ type method, push CREF information onto method + frame, SVAR located place. Before this fix, SVAR is simply nil. + After this patch, CREF (or NULL == Qfalse for not iseq methods) + is stored at the method invocation. + + When SVAR is required, then put NODE_IF onto SVAR location, + and NDOE_IF::nd_reserved points CREF itself. + + * vm.c (vm_cref_new, vm_cref_dump, vm_cref_new_toplevel): added. + + * vm_insnhelper.c (vm_push_frame): accept CREF. + + * method.h, vm_method.c (rb_add_method_iseq): added. This function + accepts iseq and CREF. + + * class.c (clone_method): use rb_add_method_iseq(). + + * gc.c (mark_method_entry): mark method_entry::body.iseq_body.cref. + + * iseq.c: remove CREF related codes. + + * insns.def (getinlinecache/setinlinecache): CREF should be cache key + because a different CREF has a different namespace. + + * node.c (rb_gc_mark_node): mark NODE_IF::nd_reserved for SVAR. + + * proc.c: catch up changes. + + * struct.c: ditto. + + * insns.def: ditto. + + * vm_args.c (raise_argument_error): ditto. + + * vm_eval.c: ditto. + + * test/ruby/test_class.rb: add a test. + +Fri Mar 6 18:19:13 2015 Koichi Sasada + + * test/webrick/test_filehandler.rb: on vboxsf (on VirtualBox + on Windows 7), file name and permissions are strange (can access + by short file name and so on). + + Simply skip on such tests on such FS. To detect strange FS, this + patch use a part of code `File.executable?(__FILE__)`. + Please correct them if there are better ways. + +Fri Mar 6 17:31:29 2015 Koichi Sasada + + * test/ruby/test_beginendblock.rb: do not change directory. + + Run system command in the directory mounted by vboxsf on Windows 7 + and get warning like that "warning: Insecure world writable dir...". + +Fri Mar 6 10:31:00 2015 Nobuyoshi Nakada + + * vm_eval.c (vm_call_super): search next super class from the + original class, to get rid of infinite recursion with + prepending. a patch by Seiei Higa at + [ruby-core:68434]. [ruby-core:68093] [Bug #10847] + +Fri Mar 6 08:45:26 2015 Marc-Andre Lafortune + + * lib/matrix.rb: Add Vector#round. Patch by Jordan Stephens. + [Fixes GH-802] + +Fri Mar 6 07:33:03 2015 Koichi Sasada + + * gc.c (obj_info): show node name too. + +Fri Mar 6 07:00:44 2015 Koichi Sasada + + * internal.h: remove struct method_table_wrapper. + struct method_table_wrapper was introduced to avoid duplicate marking + for method tables. + + For example, `module M1; def foo; end; end` make one method table + (mtbl) contains a method `foo`. M1 (T_MODULE) points mtbl. + Classes C1 and C2 includes M1, then two T_ICLASS objects are created + and they points mtbl too. In this case, three objects (one T_MODULE + and two T_ICLASS objects) points same mtbl. On marking phase, these + three objects mark same mtbl. To avoid such duplication, struct + method_table_wrapper was introduced. + + However, created two T_ICLASS objects have same or shorter lifetime + than M1 (T_MODULE) object. So that we only need to mark mtbl from M1, + not from T_ICLASS objects. This patch tries marking only from M1. + In other words, original module (M1) has responsibility to mark mtbl. + Because of no duplicate marking, we don't need method_table_wrapper + any more. + + Note that one `Module#prepend` call creates two T_ICLASS objects. + One for referring to a prepending Module object, same as + `Module#include`. We don't need to care this T_ICLASS. + One for moving original mtbl from a prepending class. We need to + mark such mtbl from this T_ICLASS object. To mark the mtbl, + we need to use `RCLASS_ORIGIN(klass)` on marking from a prepended + class `klass`. + + * class.c: ditto. + + * eval.c (rb_using_refinement): ditto. + + * gc.c: ditto. + + * include/ruby/ruby.h: define m_tbl directly. The definition of + struct RClass should be moved to (srcdir)/internal.h. + + * method.h: remove decl of rb_free_m_tbl_wrapper(). + + * object.c: use RCLASS_M_TBL() directly. + +Fri Mar 6 02:50:12 2015 NAKAMURA Usaku + + * dir.c (replace_real_basename): need to check the return value of + GLOB_REALLOC(). + +Fri Mar 6 02:26:03 2015 NAKAMURA Usaku + + * dir.c (replace_real_basename): shouldn't create Ruby object before + the object system is loaded. + [ruby-core:68430] [Bug #10941] + +Wed Mar 5 16:58:43 2015 Kazuki Tanaka + + * hash.c: [DOC] #delete method actually returns nil, if the key + is not found. [fix GH-844][ci skip] Patch by @ivdma + +Wed Mar 5 12:22:23 2015 Kazuki Tanaka + + * math.c: refactoring: remove unnecessary variable d0 to unify code + appearance. + +Thu Mar 5 11:50:54 2015 Shugo Maeda + + * vm_eval.c (eval_string_with_cref): A binding should keep + refinements activation information and the refinements should be + activated in subsequent eval calls with the binding. + [ruby-core:67945] [Bug #10818] + +Thu Mar 5 11:16:55 2015 Shugo Maeda + + * test/ruby/test_refinement.rb: There is no need anymore to suppress + warnings. + +Thu Mar 5 08:31:02 2015 Rei Odaira + + * random.c (random_raw_seed): Avoid calling fill_random_bytes() + if the requested size is 0. AIX returns -1 for 0-byte read from + /dev/urandom, while other UNIX returns 0. With this change, + Random.raw_seed(0) consistently returns "" in any UNIX. + +Wed Mar 4 12:43:32 2015 Kazuki Tanaka + + * test/ruby/test_math.rb (assert_float_and_int): Refactor test cases + by introducing assert_float_and_int. [misc #10810] + +Wed Mar 4 11:52:30 2015 Nobuyoshi Nakada + + * symbol.c (Init_sym): make dsym_fstrs a hash compared by identity + as the keys are unique fstrings, to get rid of running hash and + compare methods and causing new object allocation during garbage + collection phase. [ruby-dev:48891] [Bug #10933] + +Wed Mar 4 10:16:57 2015 SHIBATA Hiroshi + + * enum.c: Fix typo in slice_after's exception message. + [fix GH-842][ci skip] Patch by @jsyeo + +Wed Mar 4 10:15:37 2015 SHIBATA Hiroshi + + * doc/syntax/methods.rdoc: add some missing spaces and + fix a grammatical error in method docs. + [fix GH-843][ci skip] Patch by @nikolas + +Wed Mar 4 02:13:06 2015 NAKAMURA Usaku + + * tool/redmine-backporter.rb (backport_command_string): pick up only + when the revision exists in trunk. + +Wed Mar 4 00:44:56 2015 Nobuyoshi Nakada + + * thread.c (rb_thread_io_blocking_region): assigned variables + inside EXEC_TAG() should be volatile. + + * thread.c (rb_thread_s_handle_interrupt): ditto. + + * thread.c (exec_recursive): ditto. + +Wed Mar 4 00:29:18 2015 NAKAMURA Usaku + + * tool/redmine-backporter.rb: now can specify shorten form of commands. + +Tue Mar 3 23:41:42 2015 NAKAMURA Usaku + + * tool/redmine-backporter.rb (Readline.readline): drop untreated control + characters. + +Tue Mar 3 22:25:24 2015 NAKAMURA Usaku + + * test/lib/envutil.rb (EnvUtil.invoke_ruby): need to rescue because + Signal.signame may raise exception. + +Tue Mar 3 16:57:39 2015 NAKAMURA Usaku + + * tool/redmine-backporter.rb: use 'b' instead of 's' for showing + Backport options for merger.rb. + +Tue Mar 3 16:55:23 2015 NAKAMURA Usaku + + * tool/redmine-backporter.rb: show selected ticket number at prompt. + +Tue Mar 3 14:47:30 2015 Kazuki Tanaka + + * math.c (num2dbl_with_to_f): direct casting from Rational to double. + [Feature #10909] + + * test/ruby/test_math.rb: add tests for the above change. + +Tue Mar 3 07:52:20 2015 Rei Odaira + + * test/ruby/test_symbol.rb: avoid a false positive in AIX. + +Tue Mar 3 00:59:39 2015 Naohisa Goto + + * configure.in: set PRELOADENV in Solaris to avoid "wrong ELF class" + error. [Bug #10926] [ruby-dev:48888] + * configure.in: set LIBPATHENV for 32-bit compile in Solaris + in addition to 64-bit. + +Mon Mar 2 15:36:10 2015 Nobuyoshi Nakada + + * configure.in: do not check _setjmp unless _longjmp is available, + so that configure results will not be changed by cache. + +Mon Mar 2 14:44:56 2015 Nobuyoshi Nakada + + * configure.in (RUBY_REPLACE_TYPE): restore unsigned type from + cached variable only if the target type is not available. + +Mon Mar 2 13:04:27 2015 Nobuyoshi Nakada + + * signal.c (sig_signame): return nil if the argument is a valid + signal number. + +Mon Mar 2 12:05:04 2015 Naohisa Goto + + * test/net/ftp/test_ftp.rb (create_ftp_server): set SO_OOBINLINE + for receiving OOB data which is sent with MSG_OOB flag in + portable way. [Bug #10915] [ruby-dev:48885] + * test/net/ftp/test_ftp.rb (test_abort, test_status): use gets + for receiving OOB data in portable way. + +Mon Mar 2 11:43:07 2015 Nobuyoshi Nakada + + * configure.in (RUBY_REPLACE_TYPE): restore unsigned type from + cached variable. + +Mon Mar 2 06:01:41 2015 Eric Wong + + * ext/io/wait/wait.c (io_nread): wrap return value with INT2FIX + Thanks to Yura Sokolov + [ruby-core:68369] [Bug#10923] + * test/io/wait/test_io_wait.rb (test_nread_buffered): + fix broken test + +Sun Mar 1 20:21:16 2015 Nobuyoshi Nakada + + * configure.in (RUBY_REPLACE_TYPE): restore convertible type from + cached variable, so that configured results will be stable. + +Sun Mar 1 18:10:34 2015 Nobuyoshi Nakada + + * configure.in (rb_cv_broken_memmem): check before adding the + result HAVE_MEMMEM macro to confdefs.h, so that configured + results will be stable. + +Sun Mar 1 11:17:56 2015 Nobuyoshi Nakada + + * gc.c (id2ref): prohibit from accessing internal objects. + [ruby-core:68348] [Bug #10918] + +Sun Mar 1 09:06:11 2015 Tanaka Akira + + * lib/time.rb (strptime): Support %s.%N. + [ruby-core:68301] [Bug #10904] Patch by Sadayuki Furuhashi. + +Sat Feb 28 17:18:39 2015 Nobuyoshi Nakada + + * enum.c (enum_each_slice, enum_each_cons): limit elements size by + the enumerator size. suggested by Hans Mackowiak at [ruby-core:68335] + +Sat Feb 28 15:44:20 2015 Nobuyoshi Nakada + + * vm_dump.c (rb_vm_bugreport): get rid of making new strings + inside signal context. + + * variable.c (rb_tmp_class_path): defer making temporary class + path string. + + * variable.c (rb_search_class_path): search class path or return + Qnil or Qfalse if unnamed, not creating a temporary path. + +Sat Feb 28 15:02:02 2015 Nobuyoshi Nakada + + * variable.c (rb_tmp_class_path): preserve name encoding of an + anonymous instance of module/class subclass. + +Sat Feb 28 08:24:30 2015 Rei Odaira + + * ext/pty/pty.c: AIX supports autopush. + Patch by Perry Smith [ruby-core:58539] [Bug #9144] + +Fri Feb 27 22:00:05 2015 SHIBATA Hiroshi + + * lib/rubygems: Update to RubyGems 2.4.6 and HEAD(800f2e6). + Fixed #1159, #1171, #1173 on rubygems/rubygems + * test/rubygems: ditto. + +Fri Feb 27 20:55:42 2015 SHIBATA Hiroshi + + * lib/rake: Update to rake (9237e74), typo fix and remove needless + private syntax. + * test/rake: ditto. + +Fri Feb 27 17:06:44 2015 Koichi Sasada + + * vm_core.h: define vm_svar_index. + + * vm_insnhelper.c, vm.c, compile.c: use vm_svar_index names. + + * iseq.h: remove DEFAULT_SPECIAL_VAR_COUNT. + use VM_SVAR_FLIPFLOP_START instead. + +Fri Feb 27 13:57:48 2015 Nobuyoshi Nakada + + * io.c (setup_narg): wipe away expanded part of buffer to get rid + of revealing uncleaned data. reported by Dongkwan Kim . + +Wed Feb 25 22:25:07 2015 SHIBATA Hiroshi + + * spec/default.mspec: use default configuration file name. + https://github.com/ruby/rubyspec/commit/cc69f337b06362e5607ffa3e3ad40ef7494960cf + +Wed Feb 25 22:21:56 2015 SHIBATA Hiroshi + + * spec/default.mspec: remove specific version number. + https://github.com/ruby/rubyspec/commit/7a909e925c1baa9c700bd44af9241aef6e596714 + +Wed Feb 25 22:04:04 2015 NAKAMURA Usaku + + * ext/win32/Win32API.rb (initialize): accept both a string and an array + for the arguments of the imported function. + reported by Aaron Stone [ruby-core:68208] [Bug #10876] [Fixes GH-835] + +Wed Feb 25 18:12:11 2015 Eric Wong + + * signal.c (sighandler): preserve errno + Patch by Steven Stewart-Gallus + [ruby-core:68172] [Bug #10866] + +Wed Feb 25 15:59:35 2015 Nobuyoshi Nakada + + * dir.c (push_pattern, push_glob): make globbed file names same + encoding to the given pattern. + +Wed Feb 25 15:27:16 2015 NARUSE, Yui + + * tool/merger.rb: support 2.1+ versioning scheme. + +Tue Feb 25 08:49:12 2015 Kazuki Tanaka + + * lib/cmath.rb (log): raise ArgumentError when more than 2 arguments + are passed. [ruby-core:66143] [Bug #10487] + +Tue Feb 25 02:15:17 2015 Kazuki Tanaka + + * test/ruby/test_math.rb: Use assert_infinity instead of assert_equal(1.0/0, ...). + + * test/ruby/test_math.rb: Add tests for overriding Integer#to_f. + [ruby-core:67919] [Misc #10809] + +Tue Feb 24 22:58:48 2015 Nobuyoshi Nakada + + * complex.c (nucomp_mul): calculate as rotation in complex plane + if matrix calculation resulted in NaN. + +Tue Feb 24 21:45:39 2015 Kazuki Tanaka + + * test/ruby/test_math.rb(test_cbrt): Add an assertion for Math.cbrt(1.0/0) + and move #test_cbrt to more proper place. + +Tue Feb 24 19:09:25 2015 Koichi Sasada + + * vm_insnhelper.c (lep_svar_place, lep_svar_get): do not create + additional T_NODE object (svars holder) when only getting + svars. + +Tue Feb 24 11:49:48 2015 Nobuyoshi Nakada + + * time.c (time_zone_name): should be US-ASCII only if all 7-bits, + otherwise locale encoding. [ruby-core:68230] [Bug #10887] + +Tue Feb 24 09:47:07 2015 Nobuyoshi Nakada + + * string.c (chompped_length): enable smart chomp for all non-dummy + encoding strings, not only default_rs. + [ruby-core:68258] [Bug #10893] + +Mon Feb 23 23:19:42 2015 Nobuyoshi Nakada + + * tool/vcs.rb (IO.popen): support :chdir option. + + * tool/vcs.rb (VCS::GIT.get_revisions): use :chdir option instead + of -C option which is not supported by older git. + [ruby-dev:48880] [Bug #10890] + +Mon Feb 23 15:26:39 2015 Nobuyoshi Nakada + + * string.c (rb_str_split_m): raise ArgumentError at broken string + not RegexpError, as Regexp is not involved in. + [ruby-core:68229] [Bug #10886] + +Mon Feb 23 07:25:29 2015 Benoit Daloze + + * time.c: Zone encoding should be US-ASCII if all 7-bits. Fix r46907. + + * test/ruby/test_time.rb, test/ruby/test_time_tz.rb: Update tests. + +Sun Feb 22 18:33:42 2015 SHIBATA Hiroshi + + * common.mk: use ruby organization for rubyspec. + +Sun Feb 22 15:56:06 2015 Kazuki Tsujimoto + + * vm_insnhelper.c (rb_vm_rewrite_cref_stack): copy nd_refinements + of original crefs. It fixes segmentation fault when calling + refined method in duplicate module. [ruby-dev:48878] [Bug #10885] + + * vm_core.h, class.c: change accordingly. + + * test/ruby/test_refinement.rb: add a test for above. + +Sun Feb 22 10:43:37 2015 Koichi Sasada + + * gc.c (rb_objspace_call_finalizer): control GC execution during + force firnalizations at the end of interpreter process. + [Bug #10768] + + 1) Prohibit incremental GC while running Ruby-level finalizers + to avoid any danger. + 2) Prohibit GC while invoking T_DATA/T_FILE data structure + because these operations break object relations consistency. + + This patch can introduce another memory consuming issue because + Ruby-level finalizers can run after (2), GC is disabled. + However, basically object consistency was broken at (2) as I + described above. So that running Ruby-level finalizers contains + danger originally. Because of this point, I need to suggest to + remove these 3 lines (invoking remaining finalizers). And add a + rule to add that finalizers should not add new finalizers, or + say there is no guarantee to invoke finalizers that added by + another finalizer. + +Sun Feb 22 04:07:05 2015 Zachary Scott + + * ext/openssl/ossl_asn1.c: [DOC] RDoc formatting fixes for + ASN1::ObjectId with patch from @vbatts [Fixes GH-834] + + * ext/openssl/ossl_bn.c: ditto. + +Sat Feb 21 19:51:49 2015 Nobuyoshi Nakada + + * re.c (match_aref): RMatch::regexp is Qnil after matching by a + string since r45451. [ruby-core:68209] [Bug #10877] + +Sat Feb 21 16:18:42 2015 Stefan Schuler + + * compar.c (Init_Comparable): [DOC] Replace camelcase variable name. + [Fix GH-833] + +Fri Feb 20 17:27:12 2015 Nobuyoshi Nakada + + * file.c (rb_file_identical_p): fix handle leak, ensure to close + the handle of the first argument. + +Fri Feb 20 17:19:23 2015 Nobuyoshi Nakada + + * win32/win32.c (different_device_p): compare by volume serial + numbers, not by path names. [ruby-core:68162] [Bug #10865] + +Thu Feb 19 01:58:10 2015 Nobuyoshi Nakada + + * win32/file.c (rb_file_expand_path_internal): neither the drive + of base directory nor the current drive are involved in the + result if different than the drive of path. + [ruby-core:68130] [Bug #10858] + +Wed Feb 18 10:48:56 2015 Nobuyoshi Nakada + + * win32/win32.c (wrename): return EXDEV if moving a directory to + another drive, since MoveFileExW does not set proper error code. + [ruby-core:68162] [Bug #10865] + +Wed Feb 18 03:13:52 2015 Aaron Patterson + + * ext/psych/lib/psych.rb: bump psych version. + * ext/psych/psych.gemspec: ditto + * ext/psych/yaml/scanner.c: add latest libyaml change. + * test/psych/helper.rb: support newer minitest + * test/psych/test_to_yaml_properties.rb: ditto + +Tue Feb 17 11:47:17 2015 Nobuyoshi Nakada + + * lib/resolv.rb (Resolv::DNS::Resource#==, #hash): elements + returned by Kernel#instance_variables are Symbols now. + [ruby-core:68128] [Bug #10857] + +Tue Feb 17 10:59:10 2015 SHIBATA Hiroshi + + * doc/syntax/calling_methods.rdoc: Fix documentation for "calling_methods" + Patch by @sos4nt [fix GH-830][ci skip] + +Tue Feb 17 10:53:29 2015 Nobuyoshi Nakada + + * win32/file.c (rb_file_expand_path_internal): do not make invalid + (or ADS) path if the path has a drive letter, the result also + should have be under it. [ruby-core:68130] [Bug #10858] + +Tue Feb 17 10:47:20 2015 Iain Beeston + + * hash.c: Added docs to explain that #include? and #member? do not + check member equality + * lib/set.rb: ditto + +Mon Feb 16 20:58:49 2015 Nobuyoshi Nakada + + * compile.c (compile_massign): optimization for special case, + assignments by aset or attrset. + http://kokizzu.blogspot.jp/2015/02/c-java-hhvm-ruby-nodejsrhinojscspidermo.html + http://www.atdot.net/~ko1/diary/201502.html#d16 + +Sun Feb 15 10:41:23 2015 Sho Hashimoto + + * doc/standard_library.rdoc: [DOC] delete removed libraries. + [misc #10843] [ci skip] + +Sat Feb 14 12:20:01 2015 Nobuyoshi Nakada + + * random.c (rand_random_number): add a method to return a random + number like SecureRandom to Random::Formatter. + + * lib/securerandom.rb (random_bytes): move to Random::Formatter, + the base method of the module. + +Sat Feb 14 12:01:32 2015 Nobuyoshi Nakada + + * random.c (random_raw_seed): extract platform dependent random + seed initialization function as a new method Random.raw_seed. + + * lib/securerandom.rb (SecureRandom): use Random.raw_seed. + +Sat Feb 14 00:49:37 2015 Aaron Patterson + + * ext/coverage/coverage.c: Add Coverage.peek_result. Allows you to + capture coverage information without stopping the coverage tool. + [ruby-core:67940] [Feature #10816] + + * test/coverage/test_coverage.rb: test for change. + +Fri Feb 13 21:52:05 2015 Yusuke Endoh + + * string.c (str_discard): does not free for STR_NOFREE string. + [Bug #10853][ruby-core:68110] + + * bootstraptest/test_string.rb: test for above. + +Fri Feb 13 21:16:00 2015 Yusuke Endoh + + * lib/base64.rb: make urlsafe mode user-friendly. + + * lib/base64.rb (Base64.urlsafe_encode64): a new option "padding" to + suppress the padding character ("="). + + * lib/base64.rb (Base64.urlsafe_decode64): now it accepts not only + correctly-padded input but also unpadded input. + [Feature #10740][ruby-core:67570] + + * test/base64/test_base64.rb: Test for above + +Fri Feb 13 14:19:06 2015 SHIBATA Hiroshi + + * ext/json: merge upstream from flori/json + change usage of TypedData. [Feature #10739][ruby-core:67564] + +Thu Feb 12 18:34:01 2015 multisnow + + * ext/openssl/extconf.rb: check RAND_edg to support libressl. + + * ext/openssl/ossl_rand.c (ossl_rand_egd): define only if RAND_edg + is available. [Fix GH-829] + +Thu Feb 12 10:46:14 2015 Eric Hodel + + * proc.c (proc_call): Improve Proc#call documentation. Patch by + Hsing-Hui Hsu. [fix GH-761] + +Thu Feb 12 04:33:02 2015 Benoit Daloze + + * compar.c (cmp_equal): no more error hiding for Comparable#==. + It now behaves as other Comparable methods. See #7688. + + * test/ruby/test_comparable.rb: update related test. + +Thu Feb 12 03:28:05 2015 Eric Wong + + * lib/set.rb (initialize): internal hash defaults to false + + * lib/set.rb (include?): use Hash#[] for optimized dispatch. + Patch by Ismael Abreu + [ruby-core:67664] [Misc #10754] + +Wed Feb 11 11:09:52 2015 Nobuyoshi Nakada + + * ext/digest/digest_conf.rb (digest_conf): check for CommonDigest. + + * ext/digest/*/*cc.h: for Apple CommonCrypto/CommonDigest.h. + + * ext/digest/digest.h (DEFINE_FINISH_FUNC_FROM_FINAL): macro for + finish functions, by inverting arguments order. + + * ext/digest/digest_conf.rb (digest_conf): extract common + configurations. + +Wed Feb 11 11:01:33 2015 Nobuyoshi Nakada + + * ext/json/generator/generator.c (generate_json): get rid of + unnecessary recursive calls which can cause infinite recursion. + T_STRING may not have rb_cString. + +Wed Feb 11 07:53:35 2015 Masaki Suketa + + * test/win32ole/test_word.rb: use skip method to skip test. + +Tue Feb 10 11:38:28 2015 Shugo Maeda + + * vm_insnhelper.c (vm_call_method): stop method search when a method + is not found in a refinement, to support undef in refinements. + [ruby-core:66741] [Bug #10578] + +Tue Feb 10 11:19:11 2015 Shugo Maeda + + * lib/net/ftp.rb (chdir, delete, gettextfile, mdtm, mkdir, nlst, + putbinaryfile, puttextfile, rename, rmdir, size): support + Pathname. Patch by Joe Rafaniello. [fix GH-828] + +Mon Feb 9 16:36:12 2015 Nobuyoshi Nakada + + * tool/make-snapshot (package): get rid of loading unbundled and + unexpected libraries. [ruby-core:67977] [Bug #10822] + +Sun Feb 8 20:09:37 2015 SHIBATA Hiroshi + + * lib/net/http/header.rb: pass header names as symbols. + Patch by @DamirSvrtan [fix GH-805] + * test/net/http/test_httpheader.rb: added test. + +Sun Feb 8 13:04:25 2015 Nobuyoshi Nakada + + * ext/socket/getaddrinfo.c (get_addr): reject too long hostname to + get rid of GHOST vulnerability on very old platforms. + + * ext/socket/raddrinfo.c (make_hostent_internal): ditto, paranoic + check for the canonical name. + +Sun Feb 8 12:48:38 2015 Nobuyoshi Nakada + + * ext/win32/lib/win32/registry.rb (Win32::Registry::API): use wide + versions of RegDeleteValue and RegDeleteKey. + [ruby-core:67958] [Bug #10820] + +Sat Feb 7 22:13:08 2015 Masaki Suketa + + * test/win32ole/test_win32ole_record.rb: remove test using .NET + Framework 3.5 because it is not included in Windows 8/8.1. + +Sat Feb 7 19:25:25 2015 Nobuyoshi Nakada + + * dir.c (has_magic): always get long path name on Windows even if + no tilde is there. [ruby-core:68011] [Bug #10819] + + * dir.c (replace_real_basename): FindFirstFile ignore redirection + character, check if exists before call it. cf. [Bug #8597] + +Sat Feb 7 13:30:11 2015 Masaki Suketa + + * test/win32ole/test_win32ole_record.rb + (test_ole_instance_variable_get): correct VT_RECORD type and + instance variables. + +Fri Feb 6 17:47:05 2015 Aaron Patterson + + * ext/psych/lib/psych/visitors/yaml_tree.rb: register nodes when + dumping objects with custom coders. [ruby-core:66215] [Bug #10496] + + * test/psych/test_coder.rb: test for fix + +Fri Feb 6 16:58:31 2015 Aaron Patterson + + * ext/psych/lib/psych/visitors/to_ruby.rb: fix support for regular + expressions with newlines. tenderlove/psych#222 + + * test/psych/test_yaml.rb: test for change. + +Fri Feb 6 10:31:50 2015 Nobuyoshi Nakada + + * vm_core.h (rb_call_info_kw_arg_struct): make keywords a symbols + list to get rid of inadvertent creation by variable keyword + arguments. [ruby-core:68031] [Bug #10831] + +Thu Feb 5 22:42:34 2015 SHIBATA Hiroshi + + * lib/rubygems: Update to RubyGems HEAD(5c3b6f3). + Fixed #1156, #1142, #1115, #1142, #1139 on rubygems/rubygems + * test/rubygems: ditto. + +Thu Feb 5 13:41:01 2015 Nobuyoshi Nakada + + * vm_eval.c (send_internal), vm_insnhelper.c (vm_call_opt_send): + convert String method name into a Symbol, as method_missing + method expects its first argument to be a Symbol. [Bug #10828] + + * vm_insnhelper.c (ci_missing_reason): return the reason of method + missing in call info. + + * vm_insnhelper.c (vm_call_opt_send): re-apply r49500 with the + proper missing reason. [Bug #10828] + +Thu Feb 5 10:31:46 2015 Shugo Maeda + + * class.c (rb_obj_singleton_methods): should use RTEST() to convert + VALUE to int. + +Thu Feb 5 03:59:33 2015 Marc-Andre Lafortune + + * vm_insnhelper.c: Fix symbol leak with +send+ [Bug #10828] + +Wed Feb 4 20:26:54 2015 Masaki Suketa + + * ext/win32ole/win32ole.c (Init_win32ole): should not use atexit to + free allocated hash table to avoid error on Cygwin. + +Wed Feb 4 15:34:25 2015 Shugo Maeda + + * class.c (method_entry_i, class_instance_method_list, + rb_obj_singleton_methods): should not include methods of + superclasses if recur is false. [ruby-dev:48854] [Bug #10826] + +Wed Feb 4 16:32:40 2015 Matt Hoyle + + * ext/bigdecimal/bigdecimal.c (VpSetPTR): fix a typo, 'expoennt' + to 'exponent'. [ruby-core:67980] [Bug #10823] [Fix GH-825] + +Wed Feb 4 15:55:38 2015 Nobuyoshi Nakada + + * ext/sdbm/_sdbm.c: include ruby/ruby.h for PRIdPTRDIFF when a + macro `DEBUG` is defined. based on the patch by Owen Rodley in + [ruby-core:67987]. [Bug #10825] + +Wed Feb 4 11:12:43 2015 Nobuyoshi Nakada + + * Makefile.in (probes.stamp): rebuild dtrace dependent objects + only when `dtrace -G` modifies its input files. + +Tue Feb 3 19:27:16 2015 Naohisa Goto + + * common.mk (ruby-glommed.o): dependency on $(OBJ) should be written + in common.mk (in which OBJ is defined) because of Makefile include + and parse order. This partly reverts r49419. + [ruby-dev:48849] [Bug #10808] + + * Makefile.in (ruby-glommed.o): ditto. + + * Makefile.in (ruby-glommed.o): remove excess $(DTRACE_OBJ) because + it is included in $(OBJS) since r49451. + + * Makefile.in (probes.o): should depend on $(DTRACE_DEPENDENT_OBJS) + +Tue Feb 3 17:15:45 2015 Nobuyoshi Nakada + + * lib/mkmf.rb (try_cppflags, try_cflags, try_ldflags): get rid of + interference by modifying global variables in have_devel? method. + [ruby-core:67962] [Bug #10821] + +Tue Feb 3 15:23:58 2015 Shugo Maeda + + * vm_method.c (remove_method): When remove refined + method, raise a NameError if the method is not + defined in refined class. + + But if the method is defined in refined class, + it should keep refined method and remove original + method. + + Patch by Seiei Higa. [ruby-core:67722] [Bug #10765] + +Tue Feb 3 14:04:47 2015 Nobuyoshi Nakada + + * dir.c (glob_helper): obtain real name with FindFirstFile API + instead of matching all entries, on Windows. + [ruby-core:67954] [Bug #10819] + +Tue Feb 3 12:26:35 2015 Katsuhiko Nishimra + + * lib/mkmf.rb (configuration): set the default cxxflags, which is + referred from the default CXXFLAGS, for extension libraries. + [Fix GH-823] + +Tue Feb 3 05:52:00 2015 Aman Gupta + + * gc.c (rb_objspace_free): cause rb_bug if lazy sweep is in progress + during rb_objspace_free. Adds extra protection for r46340. + Patch by Vicent Marti. [Bug #10768] [ruby-core:67734] + * gc.c (rb_objspace_call_finalizer): Ensure GC is completed after + finalizers have run. We already call gc_rest() before invoking + finalizers, but finalizer can allocate new objects and start new GC + cycle, so we call gc_rest() again after finalizers are complete. + +Mon Feb 2 10:51:34 2015 Ari Pollak + + * doc/security.rdoc (Symbols): update about Symbol GC. Symbols + explicitly converted from Strings now can be collected, but + reflection/metaprogramming still can cause memory flooding. + [Fix GH-725] + +Sun Feb 1 13:46:52 2015 Nobuyoshi Nakada + + * tool/rbinstall.rb (bin-comm): drop batch file installation. + Windows 95 support has not been supported already. + [Feature #10806] + +Sat Jan 31 12:06:23 2015 Scott Francis + + * thread_pthread.c (reserve_stack): fix intermittent SIGBUS on + Linux, by reserving the stack virtual address space at process + start up so that it will not clash with the heap space. + [Fix GH-822] + +Fri Jan 30 17:28:29 2015 Kazuki Tanaka + + * math.c (num2dbl_with_to_f): make faster when Bignum passed by + direct conversion using rb_big2dbl(). [Feature #10800] + +Thu Jan 29 23:30:00 2015 Kenta Murata + + * ext/bigdecimal/bigdecimal.c (rb_rational_num): add fallback function + for rubies lower than 2.2.0. + + * ext/bigdecimal/bigdecimal.c (rb_rational_den): ditto. + + * ext/bigdecimal/extconf.rb: check the existences of struct RRational, + rb_rational_num, and rb_rational_den. + + * ext/bigdecimal/bigdecimal.bundle: bump version. + +Thu Jan 29 20:28:25 2015 SHIBATA Hiroshi + + * tool/make-snapshot: removed md5 digest with package information + +Thu Jan 29 10:41:52 2015 Kazuki Tanaka + + * math.c (Get_Double): direct casting from Fixnum to double. + [Feature #10785] + +Thu Jan 29 02:34:27 2015 Aaron Patterson + + * ext/psych/lib/psych/visitors/to_ruby.rb: fix parsing hashes with + instance variables when it is referenced multiple times. + * ext/psych/lib/psych.rb: bump version + * ext/psych/psych.gemspec: bump version + * test/psych/test_hash.rb: test for fix + +Thu Jan 29 02:06:09 2015 Eric Wong + + * thread.c (struct join_arg): restructure and make smaller + (thread_join_sleep): avoid timeofday() call if forever + (thread_join): pass join_arg.delay directly + (rb_thread_inspect_msg): remove, inline into rb_thread_inspect + (rb_thread_inspect): reduce branching and string creation + * thread_pthread.c (native_set_thread_name): create string directly + to avoid reparsing. [Misc #10723] + +Wed Jan 28 21:32:24 2015 SHIBATA Hiroshi + + * thread.c: Improve documentation for Thread#value + [Bug #10694][ruby-core:67324][ci skip] + +Tue Jan 27 16:04:19 2015 NAKAMURA Usaku + + * tool/redmine-backporter.rb: added `!` command. + +Tue Jan 27 15:58:23 2015 NAKAMURA Usaku + + * tool/redmine-backporter.rb: added history feature for platforms which + lack readline. + +Mon Jan 26 22:09:35 2015 SHIBATA Hiroshi + + * .gitignore: ignored temporary file with git. + +Mon Jan 26 18:06:03 2015 Akinori MUSHA + + * misc/ruby-electric.el: Import version 2.2.2 from + https://github.com/knu/ruby-electric.el. + +Mon Jan 26 11:37:49 2015 Dave Stevens + + * string.c (str_make_independent_expand): terminate String when + moved from heap to embedded. [Fix GH-821]. + +Sun Jan 25 12:04:12 2015 Nobuyoshi Nakada + + * array.c (flatten): no need to call to_ary method on elements + beyond the given level. [ruby-core:67637] [Bug #10748] + +Sun Jan 25 00:42:24 2015 Nobuyoshi Nakada + + * ext/fiddle/win32/libffi.mk.tmpl: assemble without directory prefix. + workaround of a bug of VC12 ml, by unak at [ruby-core:67792]. + [ruby-core:67789] [Bug #10780] + +Sat Jan 24 19:56:25 2015 Nobuyoshi Nakada + + * dln_find.c (dln_find_1): search regular files only. based on + the patch by Alex Coomans in [ruby-core:67766]. [Bug #10776] + +Fri Jan 23 23:57:05 2015 Misumi Rize + + * vm_insnhelper.c (vm_throw_start): search the target to break + from a block with nested rescue, from the nested blocks. + [ruby-core:67765] [Bug #10775] [Fix GH-820] + +Fri Jan 23 20:00:59 2015 Nobuyoshi Nakada + + * marshal.c (w_object, marshal_dump): use identity tables for + arbitrary VALUE keys, because of performance of FLONUM. + [Bug #10761] + + * marshal.c (obj_alloc_by_klass, marshal_load): ditto. + +Fri Jan 23 17:12:33 2015 Eric Wong + + * benchmark/bm_marshal_dump_flo.rb: new benchmark for [Bug #10761] + +Thu Jan 22 18:03:19 2015 NAKAMURA Usaku + + * tool/redmine-backporter.rb (find_svn_log): use double quotes instead + of single quotes because cmd.exe doesn't handle them. + + * tool/redmine-backporter.rb (done): the 2nd element of matched data + is the offset of the end of matched string, not length. + +Thu Jan 22 16:45:24 2015 Eric Wong + + * st.c (st_numhash): mix float value for flonum + * hash.c (rb_any_hash): ditto + * benchmark/bm_hash_aref_flo.rb: new benchmark + * benchmark/bm_hash_ident_flo.rb: ditto + [Bug #10761] + +Wed Jan 21 22:33:51 2015 Akinori MUSHA + + * misc/ruby-electric.el: Import version 2.2.1 from + https://github.com/knu/ruby-electric.el. Improve compatibility + with and optimize for Emacs 24.4. + +Wed Jan 21 09:40:52 2015 Zachary Scott + + * file.c: Document other cases of missing birthtime on OS with patch + provided by @sho-h similar to GH-817. [ci skip] [DOC] + +Wed Jan 21 09:09:19 2015 Tanaka Akira + + * NEWS: References to tickets added. + [ruby-core:67701] [Bug #10760] Suggested by Zachary Scott. + +Tue Jan 20 22:59:54 2015 SHIBATA Hiroshi + + * tool/vcs.rb: fix the exception given remote-url of svn. + +Tue Jan 20 12:58:33 2015 NAKAMURA Usaku + + * tool/redmine-backporter.rb: now can change the page of `ls`. + +Tue Jan 20 12:28:37 2015 NAKAMURA Usaku + + * tool/redmine-backporter.rb (readline): fallback to normal gets on + Windows because IO.console.getch is not always do as expected. + +Tue Jan 20 11:31:07 2015 NAKAMURA Usaku + + * tool/redmine-backporter.rb: update usage. + +Tue Jan 20 11:23:47 2015 NARUSE, Yui + + * tool/redmine-backporter.rb (mygets): to support Backspace + implement gets by itself. + +Tue Jan 20 02:54:11 2015 Zachary Scott + + * file.c: NotImplementedError is raised if birthtime is unavailable. + Patch by @y-yagi san and [Fixes GH-817] [ci skip] [DOC] + + * ext/pathname/pathname.c: ditto. + +Mon Jan 19 22:08:26 2015 Nobuyoshi Nakada + + * class.c (include_modules_at): allow prepend each modules upto + once for each classes. [EXPERIMENTAL] + +Sun Jan 18 18:32:20 2015 SHIBATA Hiroshi + + * math.c (math_atan2): revive documentation before r49220. + http://d.hatena.ne.jp/nagachika/20150112/ruby_trunk_changes_49213_49226 + +Sun Jan 18 15:57:32 2015 Seiei Higa + + * vm_method.c (check_definition): Module#public_method_defined?, + Module#private_method_defined?, Module#protected_method_defined? + should not use refinements. [ruby-core:67656] [Bug #10753] + +Sun Jan 18 15:50:39 2015 Nobuyoshi Nakada + + * vm_dump.c (rb_vm_bugreport): check by configured result instead + of system name for old FreeBSD. based on a patch by Steve Wills + at [ruby-core:67655]. [Bug #10752] + +Sun Jan 18 12:56:49 2015 Nobuyoshi Nakada + + * Makefile.in (VPATH, NEWLINE_C), common.mk (common-srcs): make + and use newline.c under enc/trans directory, not toplevel. no + longer search enc directory implicitly. + + * configure.in, enc/Makefile.in (BUILTIN_ENCS, BUILTIN_TRANSES): + prefix respective directory names to builtin encodings and + transcoder source names. + +Sun Jan 18 11:49:46 2015 Masaki Suketa + + * ext/win32ole/win32ole.c (ole_invoke): avoid SEGV when VT_RECORD + variable is passed by reference. [ruby-dev:48803] [Bug #10697] + +Sat Jan 17 23:59:15 2015 Nobuyoshi Nakada + + * ext/psych/lib/psych/visitors/yaml_tree.rb (visit_String): + anchors like `\Z` are not valid inside character class. use + negative-lookahead instead. + Fixes: https://github.com/tenderlove/psych/issues/221 + +Sat Jan 17 23:42:27 2015 Nobuyoshi Nakada + + * configure.in: get rid of pattern substitution, which is not + supported by ash, and ash on NetBSD parses whole source first + and fails to start. [ruby-dev:48823] [Bug #10750] + +Fri Jan 16 18:42:58 2015 NARUSE, Yui + + * tool/redmine-backporter.rb: support adding related revisions + to issues. + +Fri Jan 16 17:20:33 2015 Koichi Sasada + + vm.c, vm_core.h: constify VM_CF_LEP, VM_CF_PREV_EP, VM_CF_BLOCK_PTR + and rb_vm_control_frame_block_ptr. + +Fri Jan 16 15:41:21 2015 Aaron Patterson + + * ext/psych/lib/psych.rb: bump version + + * ext/psych/psych.gemspec: ditto + +Fri Jan 16 15:37:49 2015 Aaron Patterson + + * ext/psych/lib/psych/visitors/yaml_tree.rb: only dump hash + subclasses. Thanks Joe Eli McIlvain + + * test/psych/test_hash.rb: test for change + +Fri Jan 16 15:35:21 2015 Aaron Patterson + + * ext/psych/lib/psych.rb: bump version + + * ext/psych/lib/psych/visitors/yaml_tree.rb: fix line width wrapping + for long strings. Thanks Jakub Jirutka + + * test/psych/test_string.rb: test for change + +Fri Jan 16 11:44:44 2015 Kazuki Tsujimoto + + * eval_intern.h, vm.c, vm_eval.c, vm_insnhelper.c: + change throw mechanism (not save target ep, but save target cfp). + It fixes `unexpected break' bug that occurs when + TracePoint#binding is called. + [ruby-dev:48797] [Bug #10689] + + * test/ruby/test_settracefunc.rb: add a test. + +Thu Jan 15 23:55:15 2015 Tanaka Akira + + * io.c (rb_io_close_m): Don't raise when the IO object is closed. + [ruby-core:67444] [Feature #10718] + +Thu Jan 15 21:34:57 2015 Seiei Higa + + * proc.c (rb_obj_singleton_method): Kernel#singleton_method should + not use refinements, as well as Kernel#method. + [ruby-core:67603] [Bug #10744] + +Thu Jan 15 10:45:04 2015 Nobuyoshi Nakada + + * array.c (rb_ary_select_bang, ary_reject_bang): linear + performance. [ruby-core:67418] [Feature #10714] + +Wed Jan 14 18:06:06 2015 Martin Duerst + + * lib/uri/mailto.rb: raising URI::InvalidComponentError instead + of failing with undefined method `split' for nil:NilClass for + mailto: URIs without opaque part. [Bug #10738] + * test/uri/testuri.rb: Test for above + +Wed Jan 14 16:45:24 2015 Nobuyoshi Nakada + + * tool/downloader.rb (RubyGems.download): verify downloaded gem + packages. LowSecurity to allow untrusted certificates now. + +Wed Jan 14 15:43:48 2015 Nobuyoshi Nakada + + * ext/readline/readline.c (readline_s_refresh_line): initialize + before rl_refresh_line(), as some function make the internal + state non-clean but rl_refresh_line() does not re-initialize it. + [ruby-core:43957] [Bug #6232] + +Tue Jan 13 21:59:24 2015 Michal Papis + + * tool/rbinstall.rb (gem): fix changing permissions of installed + bundled gems. [Fix GH-812] + +Tue Jan 13 21:57:12 2015 Nobuyoshi Nakada + + * common.mk (distclean-local): remove autom4te.cache generated by + autoconf. + + * common.mk (realclean-local): remove id sources and dummy header + for dtrace. [ruby-core:67562] [Bug #10737] + +Tue Jan 13 21:08:22 2015 SHIBATA Hiroshi + + * ext/json, test/json: merge JSON HEAD(259dee6) + separate implementation of Typed_Data macro. + https://github.com/flori/json/compare/v1.8.1...v1.8.2 + +Tue Jan 13 14:16:35 2015 Nobuyoshi Nakada + + * test/net/http/test_http.rb: get rid of accessing DNS actually + for some servers returning wrong results. + [ruby-core:67454] [Bug #10721] + +Mon Jan 12 23:21:57 2015 NAKAMURA Usaku + + * gems/bundled_gems: update test-unit to 3.0.9. + +Mon Jan 12 18:35:44 2015 Eric Wong + + * numeric.c (bit_coerce): use original value for error message + [ruby-core:67405] [Bug #10711] + * test/ruby/test_numeric.rb (test_coerce): check error message + +Mon Jan 12 18:01:24 2015 Nobuyoshi Nakada + + * lib/rdoc/text.rb (expand_tabs): get rid of infinite loop with + CR. should check if substitution occurred too. + [ruby-dev:48813] [Bug #10732] + +Mon Jan 12 16:45:46 2015 Seiei Higa + + * vm_method.c (rb_alias): raise a NameError when creating alias to + a refined method if the original method of the refined method is + not defined. [ruby-core:67523] [Bug #10731] + +Mon Jan 12 13:53:17 2015 SHIBATA Hiroshi + + * math.c (math_atan2): improve documentation. + [Feature #10323][ruby-core:65400][ci skip] + +Mon Jan 12 13:50:49 2015 SHIBATA Hiroshi + + * ext/bigdecimal/bigdecimal.c: fixes documentation like labeled lists, + code examples etc. [ruby-core:66730][Bug #10576][ci skip] + +Mon Jan 12 13:36:44 2015 SHIBATA Hiroshi + + * lib/optparse.rb: improvements for OptionParser documentation. + [misc #10608][ruby-core:66901][ci skip] + +Mon Jan 12 13:33:52 2015 SHIBATA Hiroshi + + * array.c (rb_ary_each): documented return value. + [misc #10469][ruby-core:66063] + +Sun Jan 11 15:11:38 2015 Nobuyoshi Nakada + + * test/webrick/test_utils.rb (test_create_listeners): use + dynamically chosen port number, not hardcoded port number. + [ruby-core:67508] + +Sat Jan 10 12:57:12 2015 SHIBATA Hiroshi + + * ext/zlib/zlib.c: fix document of method signatures. + [Bug #10668][ruby-core:67186][ci skip] + +Sat Jan 10 12:32:44 2015 NAKAMURA Usaku + + * eval_error.c (error_print): pos and len parameters of rb_str_substr() + are counted by characters, not bytes. use rb_str_subseq() instead. + [Bug #10727] [ruby-core:67473] + +Sat Jan 10 10:58:55 2015 SHIBATA Hiroshi + + * complex.c: removed commented-out code. + +Sat Jan 10 10:57:19 2015 SHIBATA Hiroshi + + * rational.c: removed commented-out code. + [Feature #10376][ruby-core:65643] + +Sat Jan 10 10:12:15 2015 Nobuyoshi Nakada + + * array.c (rb_ary_select_bang): keep the array consistent by + removing unselected values soon. [ruby-dev:48805] [Bug #10722] + +Fri Jan 9 23:20:04 2015 SHIBATA Hiroshi + + * lib/rubygems: Update to RubyGems HEAD(e53c54a). + * test/rubygems: ditto. + +Fri Jan 9 11:13:01 2015 Nobuyoshi Nakada + + * parse.y (assocs, assoc): eliminate splatting empty literal + hashes. [ruby-core:67446] [Bug #10719] + + * compile.c (compile_array_): support splatted hash in hash type. + +Fri Jan 9 10:57:09 2015 Vit Ondruch + + * configure.in (RUBY_SETJMP_TYPE): Remove superfluous semicolon + which causes a syntax error with autoconf 2.63. + [ruby-core:67429] [Bug #10716] + +Fri Jan 9 07:23:32 2015 Aaron Patterson + + * ext/psych/lib/psych/visitors/yaml_tree.rb: correctly quote non-ascii + letters. Thanks @jirutka for the patch. + + * test/psych/test_string.rb: test for change + +Fri Jan 9 07:13:55 2015 Aaron Patterson + + * ext/psych/lib/psych/visitors/to_ruby.rb: call `allocate` on hash + subclasses. Fixes github.com/tenderlove/psych/issues/196 + + * test/psych/test_hash.rb: test for change + +Fri Jan 9 06:58:43 2015 Aaron Patterson + + * ext/psych/lib/psych/visitors/to_ruby.rb: revive hashes with ivars + + * ext/psych/lib/psych/visitors/yaml_tree.rb: dump hashes with ivars. + Fixes github.com/psych/issues/43 + + * test/psych/test_hash.rb: test for change + +Thu Jan 8 17:05:00 2015 Seiei Higa + + * vm_method.c (rb_method_entry): if no super class, no original + method entry. [ruby-core:67389] [Bug #10707] + +Thu Jan 8 16:31:43 2015 Seiei Higa + + * vm_method.c (rb_export_method): bail out if the original method + is undefined when the method is refined. + [ruby-core:67387] [Bug #10706] + +Thu Jan 8 12:53:44 2015 Nobuyoshi Nakada + + * dir.c (glob_helper): match in case-folding only if the directory + resides on a case-insensitive file system, on OSX. + [ruby-core:67364] [Bug #10700] + +Thu Jan 8 11:39:18 2015 SHIBATA Hiroshi + + * .travis.yml: Remove redundant configuration option. + [fix GH-809] Patch by @gxworld + +Thu Jan 8 07:17:14 2015 Eric Wong + + * lib/resolv.rb: consider ENETUNREACH as ResolvTimeout + [ruby-core:67411] [Bug #10712] + +Thu Jan 8 00:13:52 2015 Tanaka Akira + + * lib/open3.rb: Open3 properly passes non-keyword hash args to spawn. + Fixed by Josh Cheek. [Fix GH-808] + Related to [ruby-core:67347] [Bug #10699] + +Wed Jan 7 19:19:26 2015 Nobuyoshi Nakada + + * dir.c (dir_initialize): workaround of opendir failure at symlink + directories on Windows via CIFS. + +Wed Jan 7 18:52:50 2015 Nobuyoshi Nakada + + * dir.c (need_normalization): not only HFS+, CIFS (SMB) is also + decomposed. [Bug #10704] + + * dir.c (NORMALIZE_UTF8PATH): Unicode decomposition seems to + perform in an upper layer than file systems on OSX, as all path + names are always decomposed regardless of file system types. + +Tue Jan 6 21:41:04 2015 Tanaka Akira + + * time.c (timelocalw): Set tm_isdst field -1 if vtm->isdst is + VTM_ISDST_INITVAL. This bug is introduced at packing struct + vtm (r45155). + [ruby-core:67345] [Bug #10698] Reported by Boris Ruf. + +Tue Jan 6 03:10:54 2015 Koichi Sasada + + * test/fiddle/test_handle.rb: fix syntax. + +Tue Jan 6 00:16:10 2015 Nobuyoshi Nakada + + * test/fiddle/test_handle.rb (test_NEXT): use -test-/dln/empty + which is always a shared object and is not used by others. + [ruby-dev:48629] [Bug #10384] + +Mon Jan 5 14:58:01 2015 SHIBATA Hiroshi + + * test/ruby/test_io.rb: added timeout for AIX environment. + [ruby-core:62983][Bug #9917] + +Sun Jan 4 22:33:33 2015 Nobuyoshi Nakada + + * test/lib/test/unit.rb (ExcludesOption): add "excludes" support + to test suite, for alternative implementations and platforms. + [Feature #10682] + +Sun Jan 4 22:32:42 2015 Nobuyoshi Nakada + + * test/lib/test/unit.rb (Test::Unit): reorder modules and merge + each modules. + + * test/lib/test/unit.rb (Test::Unit): split the large class into + each modules. + +Sun Jan 4 21:32:52 2015 Nobuyoshi Nakada + + * parse.y (f_label): return tLABEL value as it is. + [ruby-core:67315] [Bug #10693] + +Sun Jan 4 14:02:37 2015 Nobuyoshi Nakada + + * test/lib/test/unit/parallel.rb (run): expand the file name to be + loaded, so that relative paths work in parallel mode. + +Sun Jan 4 13:36:56 2015 Ayumu AIZAWA + + * test/test_tempfile.rb: use assert_file for more descriptive message. + following r49131. + +Sun Jan 4 13:05:09 2015 Ayumu AIZAWA + + * string.c: improve docs for String#<=>. [ruby-core:65399][Feature #10322] + Patch by gogo tanaka. + +Sun Jan 4 12:42:24 2015 Ayumu AIZAWA + + * array.c: improve docs for Array#reject. [ruby-core:65324][misc #10307] + Patched by Nebu Pookins. + +Sun Jan 4 12:24:11 2015 Ayumu AIZAWA + + * string.c: improve docs for String#strip and variations. + [ruby-core:66081][Bug #10476] + +Sun Jan 4 09:21:04 2015 SHIBATA Hiroshi + + * lib/drb/drb.rb: removed unused argument. Patch by @vipulnsward + [fix GH-515] + +Sun Jan 4 09:18:31 2015 SHIBATA Hiroshi + + * lib/tempfile.rb: provide default basename parameter. + [fix GH-523] Patch by @dissolved + * test/test_tempfile.rb: ditto. + +Sun Jan 4 00:43:41 2015 Ayumu AIZAWA + + * README.ja.md: add guidance of mailing list and bugs.r-l.o. + +Sat Jan 3 23:56:28 2015 Ayumu AIZAWA + + * hash.c: fix docs for Hash#invert. [ruby-core:66917] [Bug #10612] + +Sat Jan 3 19:52:12 2015 Nobuyoshi Nakada + + * include/ruby/intern.h (rb_str_new_literal): define on all + platforms, not only gcc. + +Sat Jan 3 18:53:28 2015 Nobuyoshi Nakada + + * ext/fiddle/lib/fiddle/cparser.rb (parse_ctype): limit split word + number as the rest are not used. + +Sat Jan 3 18:19:50 2015 SHIBATA Hiroshi + + * ext/fiddle/lib/fiddle/cparser.rb: r49110 broke Fiddle::Import with + type_alias. + * test/fiddle/test_cparser.rb: added type_alias test for parse_ctype + and parse_struct_signature. + +Sat Jan 3 11:50:16 2015 SHIBATA Hiroshi + + * ext/openssl/ossl.h: avoid to build failure of Windows environment. + * ext/openssl/ossl_ssl_session.c: ditto. + +Sat Jan 3 11:27:46 2015 SHIBATA Hiroshi + + * array.c: Improve performance of Array#shift. use shared instead of + MEMMOVE if with arguments. Patch by @ksss [fix GH-537] + * test/ruby/test_array.rb: ditto. + * benchmark/bm_array_shift.rb: Added benchmark of GH-537 issue. + +Sat Jan 3 10:38:52 2015 SHIBATA Hiroshi + + * lib/net/http.rb: More descriptive error message when net/http fails + to connect to a server. Patch by @xaviershay [fix GH-700] + * test/net/http/test_http.rb: ditto. + +Sat Jan 3 10:14:51 2015 SHIBATA Hiroshi + + * ext/openssl/ossl.h: Make `SSL_SESSION_cmp` use `CRYPTO_memcmp` + [fix GH-591] Patch by @PiPeep + * ext/openssl/ossl_ssl_session.c: ditto. + +Sat Jan 3 09:54:32 2015 SHIBATA Hiroshi + + * ext/fiddle/lib/fiddle/cparser.rb: Support for Fiddle::CParser + to handle rich signatures including parameter names and function + pointer types. Patch by @theryan [fix GH-590] + * test/fiddle/test_cparser.rb: ditto. + +Sat Jan 3 09:01:43 2015 SHIBATA Hiroshi + + * NEWS: added compatibility entry of r49101. + +Fri Jan 2 21:06:59 2015 SHIBATA Hiroshi + + * lib/net/http.rb (Net::HTTP#send_request): there is no response body + with HEAD request. Patch by @rodrigosaito [fix GH-520] + +Fri Jan 2 21:04:36 2015 SHIBATA Hiroshi + + * test/net/http/test_http.rb (_test_send_request__HEAD): Added + failing test for send_request with HEAD method. + +Fri Jan 2 18:41:20 2015 Tanaka Akira + + * eval.c (ruby_init): Print ruby_setup() error only in debug mode. + Unsuppressable error message is not a good idea. + Note that the message is printed sometimes with following + code (highly timing dependent, though): + pid = spawn("ruby -e ''"); Process.kill(:TERM, pid) + +Fri Jan 2 16:18:44 2015 SHIBATA Hiroshi + + * test/ruby/test_module.rb: Refactor invalid testcase. + [fix GH-472][ruby-core:59035][Bug #9240] + +Fri Jan 2 15:53:00 2015 SHIBATA Hiroshi + + * lib/webrick/utils.rb: removed unused argument variable. + [fix GH-356] Patch by @vipulnsward + * lib/webrick/server.rb: ditto. + * lib/webrick/ssl.rb: ditto. + * test/webrick/test_utils.rb: added test for WEBrick::Utils#create_listeners. + +Fri Jan 2 15:35:53 2015 SHIBATA Hiroshi + + * lib/securerandom.rb: improve syntax and grammar of documentation. + [fix GH-796][ci skip] Patch by @Erol + +Fri Jan 2 15:10:01 2015 SHIBATA Hiroshi + + * test/openssl/test_ssl_session.rb (OpenSSL#test_ctx_client_session_cb): + fix test failure with OpenSSL disabled SSLv3 protocol. + [ruby-core:63772] [Bug #10046] + +Fri Jan 2 09:08:31 2015 Tanaka Akira + + * lib/resolv.rb (Resolv::DNS::Label::Str#==): Check class equality. + (Resolv::DNS::Name#initialize): Normalize labels as + Resolv::DNS::Label::Str objects. + +Thu Jan 1 21:41:49 2015 SHIBATA Hiroshi + + * doc/regexp.rdoc: fix regexp docs for whitespace character. + [ruby-dev:48765] [Bug #10624] + +Thu Jan 1 17:50:52 2015 Nobuyoshi Nakada + + * test/ruby/test_rubyoptions.rb: try locale encoding name. + [ruby-core:67109] [Bug #10643] + +Thu Jan 1 11:07:12 2015 Eric Wong + + * symbol.c (rb_gc_free_dsymbol): delete from global fstr hash + * test/ruby/test_symbol.rb (test_symbol_fstr_leak): test for bug + [ruby-core:67268] [Bug #10686] + +Thu Jan 1 09:14:21 2015 Nobuyoshi Nakada + + * vm_args.c (keyword_hash_p): fix non-symbol keys hash. + rb_extract_keywords() returns 0 not Qnil when no symbol keys is + included. [ruby-core:67264] [Bug #10685] + +Wed Dec 31 17:48:43 2014 Tanaka Akira + + * lib/resolv.rb (Resolv::DNS::Label::Str#initialize): Set encoding + ASCII-8BIT before downcase. case insensitivity of DNS labels doesn't + apply non-ASCII characters. [RFC 4343] + +Wed Dec 31 16:48:44 2014 Nobuyoshi Nakada + + * parse.y (gettable_gen): disable warnings of possible reference + to a local variable defined in a past scope. + [ruby-core:67162] [Bug #10661] + +Wed Dec 31 13:43:48 2014 Tanaka Akira + + * lib/resolv.rb (Resolv::DNS::Name#==): Compare an array of Label:Str + objects. Label#Str#== is case-insensitive. + +Tue Dec 30 16:16:12 2014 Ben Miller + + * lib/resolv.rb (Resolv::DNS::Name#==): DNS is case-insensitive, so the + comparison should be case-insensitive as well. + [ruby-core:66498] [Bug #10550] + +Tue Dec 30 16:03:45 2014 Nobuyoshi Nakada + + * lib/resolv.rb (Resolv::DNS::Name): names with different dots + should be different. + +Tue Dec 30 13:16:56 2014 Martin Duerst + + * lib/uri/common.rb: Initialize HTML5ASCIIINCOMPAT to empty Array + to avoid error during bootstrap when encodings are not yet defined. + [Bug #10678] + +Tue Dec 30 09:29:26 2014 Bernhard M. Wiedemann + + * ext/dbm/dbm.c (Init_dbm): [DOC] as UNIX permissions are octal + numbers, needs to be prefixed by 0. [Fix GH-800] + +Tue Dec 30 08:57:39 2014 SHIBATA Hiroshi + + * lib/unicode_normalize.rb: typo fix. [ci skip] + [ruby-dev:48794][misc #10675] + +Mon Dec 29 19:38:01 2014 Yukihiro Matsumoto + + * version.h (RUBY_VERSION): 2.3.0 development has started. + +Mon Dec 29 18:58:46 2014 Nobuyoshi Nakada + + * re.c (unescape_nonascii): append escape sequence as-is not + unescaped character, to get rid of unexpected meta-character. + [ruby-core:67193] [Bug #10670] + +Mon Dec 29 14:27:33 2014 Nobuyoshi Nakada + + * doc/syntax/literals.rdoc (Symbols): now Symbols created by + interpolation can be garbage collected. patch by Yihang Ho in + [ruby-core:67194]. [Bug #10671] + +Mon Dec 29 11:18:17 2014 Nobuyoshi Nakada + + * thread.c (rb_thread_variable_get): fix dynamic symbol keys. + rb_check_id() returns non-zero only for static symbols, whereas + thread local variable keys can be dynamic symbols. + [ruby-core:67185] [Bug #10667] + +Mon Dec 29 10:37:27 2014 Thiago Lewin + + * io.c (rb_f_select): [DOC] workaround for YARD doc. [Fix GH-799] + + * process.c (proc_detach): [DOC] fix missing closing parenthesis. + [Fix GH-799] + +Mon Dec 29 07:27:23 2014 SHIBATA Hiroshi + + * ext/json, test/json: merge JSON HEAD(17fe8e7) + https://github.com/flori/json/compare/v1.8.1...17fe8e7 + +Sun Dec 28 23:49:37 2014 Michal Papis + + * rbinstall.rb: fix target location for installing bundled gems. + install to the prepared directory instead of default Gem.dir, + not to be affected GEM_HOME environment variable. [Fix GH-798] + +Sun Dec 28 18:19:28 2014 Eric Wong + + * test/-ext-/iseq_load/test_iseq_load.rb + (test_next_in_block_in_block): test using ISeq#eval + (test_break_ensure): ditto + [ruby-core:66988] + +Sun Dec 28 16:25:12 2014 Nobuyoshi Nakada + + * cygwin/GNUmakefile.in (EXTOBJS): override to add resource files + always. [ruby-core:67153] [Bug #10657] + +Sun Dec 28 13:54:26 2014 Nobuyoshi Nakada + + * parse.y (f_kwrest, new_args_tail_gen): unnamed rest keyword and + keywords bits arguments should be unique. since internal IDs + depend on the local variable index in the current scope, new ID + should be made before popping those vtables. + [ruby-core:67157] [Bug #10659] + +Sat Dec 27 20:12:55 2014 Nobuyoshi Nakada + + * ext/json/generator/generator.c (JSON_Generator_State_type): add + #ifdef for backward compatibility. + + * ext/json/parser/parser.rl (JSON_Parser_type): ditto. + + * ext/json/generator/generator.h (ZALLOC): add fallback definition. + + * ext/json/parser/parser.h (ZALLOC): ditto. + +Sat Dec 27 16:54:05 2014 Tanaka Akira + + * process.c: Unused code removed. + It seems waitpid() is universally available on POSIX platforms. + +Sat Dec 27 15:08:27 2014 Eric Wong + + * vm_core.h (rb_vm_living_threads_insert): preserve order + [Bug #10660] [ruby-core:67154] [ruby-core:67159] + +Sat Dec 27 13:08:20 2014 SHIBATA Hiroshi + + * ext/socket/socket.c: improved document for YARD doc. + [fix GH-795][ci skip] Patch by @tlewin + +Sat Dec 27 10:11:21 2014 SHIBATA Hiroshi + + * ext/tk/lib/tkextlib/tcllib/plotchart.rb: fix to invoke correct function + of tcllib. Patch by @zalt50 [fix GH-787] + +Sat Dec 27 10:03:41 2014 SHIBATA Hiroshi + + * tool/make-snapshot: show sha1 digest when making packages. + it's request from https://github.com/ruby/www.ruby-lang.org/issues/921 + [fix GH-794] + +Fri Dec 26 15:32:16 2014 Nobuyoshi Nakada + + * ext/tk/tcltklib.c (ip_invoke_core): remove probably duplicate + dead code. + +Fri Dec 26 15:28:27 2014 Nobuyoshi Nakada + + * ext/tk/tcltklib.c (ip_ruby_cmd_receiver_const_get): simply use + rb_path2class() to get a class/module from its name. + +Fri Dec 26 15:20:54 2014 Nobuyoshi Nakada + + * marshal.c (w_long): append at once by w_nbyte() instead of + appending byte by byte. + +Fri Dec 26 15:13:13 2014 Nobuyoshi Nakada + + * ext/json/parser/parser.rl (unescape_unicode): check if valid + before bit-or assignments. + reported by Denis Denisov . + + * ext/nkf/nkf-utf8/nkf.c (nkf_iconv_t): fix a missing semicolon. + reported by Denis Denisov . + + * process.c (rb_spawn_process): get rid of usage of uninitialized + variable. + reported by Denis Denisov . + + * regexec.c (match_at): ditto. + + * ext/win32ole/win32ole.c (ole_wc2mb_alloc, ole_vstr2wc, ole_mb2wc): + ditto. + + * dir.c (ruby_glob0): no need to check never-NULL pointer. + reported by Denis Denisov . + + * win32/file.c (rb_file_expand_path_internal): ditto. + + * win32/file.c (code_page_i): handle realloc failure. + reported by Denis Denisov . + + * win32/stub.c (stub_sysinit): ditto. + + * fix printf format conversion specifiers. + reported by Denis Denisov . + +Fri Dec 26 01:41:40 2014 NAKAMURA Usaku + + * tool/rbinstall.rb: skip installing bundle gems if zlib is unavailable. + [Bug #10647] [ruby-dev:48787] + +Fri Dec 26 01:24:42 2014 NAKAMURA Usaku + + * tool/downloader.rb: support old versions of ruby. + + * tool/downloader.rb: now can download gems by http if openssl is not + available (this may be danger!) + +Fri Dec 26 00:13:48 2014 NAKAMURA Usaku + + * test/ruby/test_extlibs.rb: check existence of extension libraries + which not depend on outer libraries. (experimental) + +Thu Dec 25 21:58:15 2014 Nobuyoshi Nakada + + * ext/fiddle/extconf.rb: make PIC objects if it will be linked as + a shared object eventually. [ruby-core:67128] + +Thu Dec 25 19:01:13 2014 NAKAMURA Usaku + + * ext/fiddle/win32/libffi-3.2.1-mswin.patch: support mswin32. + +Thu Dec 25 17:30:40 2014 Naohisa Goto + + * gc.c (wmap_final_func): fix memory size shortage when realloc wmap. + Fix SEGV during finalize of WeakRef on Solaris (though the SEGV + could occur on all OS/platforms). [ruby-dev:48779] [Bug #10646] + +Thu Dec 25 17:27:06 2014 Nobuyoshi Nakada + + * configure.in (NET_LUID): include winsock2.h instead of windows.h. + patch by Jon Forums in [ruby-core:67125]. [Bug #10640] + +Thu Dec 25 16:14:10 2014 Nobuyoshi Nakada + + * ext/io/console/console.c (console_dev): send the given arguments + to the opened console. as a special case, do nothing if :close + is given. + + * test/lib/leakchecker.rb (LeakChecker#check_fd_leak): close if + console. + +For the changes before 2.2.0, see doc/ChangeLog-2.2.0 +For the changes before 2.1.0, see doc/ChangeLog-2.1.0 +For the changes before 2.0.0, see doc/ChangeLog-2.0.0 +For the changes before 1.9.3, see doc/ChangeLog-1.9.3 +For the changes before 1.8.0, see doc/ChangeLog-1.8.0 + +Local variables: +coding: us-ascii +add-log-time-format: (lambda () + (let* ((time (current-time)) + (system-time-locale "C") + (diff (+ (cadr time) 32400)) + (lo (% diff 65536)) + (hi (+ (car time) (/ diff 65536)))) + (format-time-string "%a %b %e %H:%M:%S %Y" (list hi lo) t))) +indent-tabs-mode: t +tab-width: 8 +change-log-indent-text: 2 +end: +vim: tabstop=8 shiftwidth=2 diff --git a/doc/NEWS-2.3.0 b/doc/NEWS-2.3.0 new file mode 100644 index 0000000000..be722bc9de --- /dev/null +++ b/doc/NEWS-2.3.0 @@ -0,0 +1,404 @@ +# -*- rdoc -*- + += NEWS for Ruby 2.3.0 + +This document is a list of user visible feature changes made between +releases except for bug fixes. + +Note that each entry is kept so brief that no reason behind or +reference information is supplied with. For a full list of changes +with all sufficient information, see the ChangeLog file or Redmine +(e.g. https://bugs.ruby-lang.org/issues/$FEATURE_OR_BUG_NUMBER) + +== Changes since the 2.2.0 release + +=== Language changes + +* frozen-string-literal pragma: + + * new pragma, frozen-string-literal has been experimentally introduced. + [Feature #8976] + * besides, --enable/--disable=frozen-string-literal options also have + been introduced. [Feature #8976] + * command line options --debug or --debug=frozen-string-literal enable + additional debugging mode which shows created location with at frozen + object error (RuntimeError). + [Feature #11725] + +* safe navigation operator: + + * new method call syntax, `object&.foo', method #foo is called on + `object' if it is not nil. + this is similar to `try!' in Active Support, except: + * method name is syntactically required + obj.try! {} # valid + obj&. {} # syntax error + * arguments are evaluated only if a call is made: + obj.try!(:foo, bar()) # bar() is always evaluated + obj&.foo(bar()) # bar() is conditionally evaluated + * attribute assignment is valid + obj&.attr += 1 + [Feature #11537] + +* the did_you_mean gem: + + * When a NameError or NoMethodError occurs because of a typo in the name, + the did_you_mean gem automatically suggests other names similar to the + method name. + + "Yuki".starts_with?("Y") + # => NoMethodError: undefined method `starts_with?' for "Yuki":String + # Did you mean? start_with? + +* indented here document: + + * new string literal, here document starts with `<<~`. + refer doc/syntax/literals.rdoc for more details. + [Feature #9098] + +=== Core classes updates (outstanding ones only) + +* ARGF + + * ARGF.read_nonblock supports `exception: false' like IO#read_nonblock. + [Feature #11358] + +* Array + + * Array#bsearch_index [Feature #10730] + * Array#dig [Feature #11643] + +* Comparable + + * Comparable#== no longer rescues exceptions [Feature #7688] + +* Encoding + + * new Encoding::IBM037 (alias ebcdic-cp-us; dummy) + +* Enumerable + + * Enumerable#grep_v is added as inverse version of Enumerable#grep. + [Feature #11049] + * Enumerable#chunk_while [Feature #10769] + +* Enumerator::Lazy + + * Enumerator::Lazy#grep_v [Feature #11773] + +* File + + * File.mkfifo [Feature #11536] + * Add File::TMPFILE corresponding to O_TMPFILE + +* Hash + + * Hash#fetch_values [Feature #10017] + * Hash#dig [Feature #11643] + * Hash#<=, Hash#<, Hash#>=, Hash#> [Feature #10984] + * Hash#to_proc [Feature #11653] + +* IO + + * new mode flag File::SHARE_DELETE is available. + this flag means to permit deleting opened file on Windows, but currently + this affect only files opened as binary. [Feature #11218] + + * new option parameter `flags' is added. + this parameter is bitwise-ORed to oflags generated by normal mode argument. + [Feature #11253] + + * IO#advise no longer raises Errno::ENOSYS in cases where it was + detected at build time but not available at runtime. [Feature #11806] + +* Kernel + + * Kernel#loop, when stopped by a StopIteration exception, returns + what the enumerator has returned instead of nil. [Feature #11498] + +* Module + * Module#deprecate_constant [Feature #11398] + +* NameError + * NameError#receiver is added to take the receiver object. [Feature #10881] + +* Numeric + + * Numeric#positive? and Numeric#negative? are added, which return + true when the receiver is positive and negative respectively. + [Feature #11151] + +* Proc + + * Proc#call (and also #[], #===, #yield) are optimized. + Backtrace doesn't show each method (show block lines directly). + TracePoint also ignores these calls. [Feature #11569] + +* Queue (Thread::Queue) + + * Queue#close is added to notice a termination. [Feature #10600] + +* Regexp/String: Updated Unicode version from 7.0.0 to 8.0.0 + +* RubyVM::InstructionSequence + * add the following methods as a primitive tool of iseq loader. + See sample/iseq_loader.rb for usage. + Note that loader does not have verifier so it is easy to cause + critical problem by loading modified/broken binary data. + See [Feature #11788] for more details. (experimental feature) + * RubyVM::InstructionSequence#to_binary(extra_data = nil) + * RubyVM::InstructionSequence.load_from_binary(binary) + * RubyVM::InstructionSequence.load_from_binary_extra_data(binary) + +* String + + * String#+@ and String#-@ are added to get mutable/frozen strings. + [Feature #11782] + + * String.new now accepts new option parameter `encoding'. + [Feature #11785] + +* Struct + * Struct#dig [Feature #11688] + +* Thread + * Thread#name, Thread#name= are added to handle thread names [Feature #11251] + +=== Core classes compatibility issues (excluding feature bug fixes) + +* Array + * Array#select!, Array#keep_if, Array#reject!, and Array#delete_if + no longer changes the receiver array instantly every time the + block is called. [Feature #10714] + + * Array#flatten and Array#flatten! no longer try to call #to_ary + method on elements beyond the given level. [Bug #10748] + + * Array#inspect doesn't raise error even if its content returns + a string which is not compatible with Encoding.default_external + as inspected result. [Feature #11801] + +* Enumerable + * Enumerable#chunk and Enumerable#slice_before no longer takes the + initial_state argument. [Feature #10958] + Use a local variable instead to maintain a state. + +* File::Stat + * On Windows File::Stat#ino always returned 0, but now returns + BY_HANDLE_FILE_INFORMATION.nFileIndexHigh/Low. [Feature #11216] + +* Hash + * Hash#inspect doesn't raise error even if its content returns + a string which is not compatible with Encoding.default_external + as inspected result. [Feature #11801] + +* IO + * IO#close doesn't raise when the IO object is closed. [Feature #10718] + * IO#each_codepoint raises an exception at incomplete character + before EOF when conversion takes place. [Bug #11444] + +* Module + * Module#define_method and Object.define_singleton_method now + require method body, Proc, Method, or a block, and raise + ArgumentError if no block is given directly. [Bug #11283] + +* pack/unpack (Array/String) + * j and J directives for pointer width integer type. [Feature #11215] + + +=== Stdlib updates (outstanding ones only) + +* Logger + + * Logger#level= now supports symbol and string levels such as :debug, :info, + :warn, :error, :fatal (case insensitive) [Feature #11695] + * Logger#reopen is added to reopen a log device. [Feature #11696] + +* io/wait + * IO#wait_readable no longer checks FIONREAD, it may be used for + non-bytestream IO such as listen sockets. + +* Net::FTP + * Net::FTP#mlst is added. + * Net::FTP#mlsd is added. + +* nkf + * Merge nkf 2.1.4. + +* ObjectSpace (objspace) + * ObjectSpace.count_symbols is added. + * ObjectSpace.count_imemo_objects is added. + * ObjectSpace.internal_class_of is added. + * ObjectSpace.internal_super_of is added. + +* OpenSSL + * OpenSSL::SSL::SSLSocket#accept_nonblock and + OpenSSL::SSL::SSLSocket#connect_nonblock supports `exception: false`. + [Feature #10532] + +* Pathname + * Pathname#descend and Pathname#ascend supported blockless form. + [Feature #11052] + +* Socket + * Socket#connect_nonblock, Socket#accept_nonblock, + TCPServer#accept_nonblock, UNIXServer#accept_nonblock, + BasicSocket#recv_nonblock, BasicSocket#recvmsg_nonblock, + BasicSocket#sendmsg_nonblock all support `exception: false` to return + :wait_readable or :wait_writable symbols instead of raising + IO::WaitReadable or IO::WaitWritable exceptions + [Feature #10532] [Feature #11229] + * BasicSocket#recv and BasicSocket#recv_nonblock allow an output + String buffer argument like IO#read and IO#read_nonblock to reduce + GC overhead [Feature #11242] + +* StringIO + * In read-only mode, StringIO#set_encoding no longer sets the encoding + of its buffer string. Setting the encoding of the string directly + without StringIO#set_encoding may cause unpredictable behavior now. + [Bug #11827] + +* timeout + * Object#timeout is now warned as deprecated when called. + +=== Stdlib compatibility issues (excluding feature bug fixes) + +* ext/coverage/coverage.c + * Coverage.peek_result: new method to allow coverage to be captured without + stopping the coverage tool. [Feature #10816] + +* Fiddle + * Fiddle::Function#call releases the GVL. [Feature #11607] + +* io-console + * Update to io-console 0.4.5, and change the license to BSD 2-clause + "Simplified" License. + +* lib/base64.rb + * Base64.urlsafe_encode64: added a "padding" option to suppress + the padding character ("="). [Feature #10740] + * Base64.urlsafe_decode64: now it accepts not only correctly-padded + input but also unpadded input. [Feature #10740] + +* lib/drb/drb.rb + * removed unused argument. https://github.com/ruby/ruby/pull/515 + +* lib/matrix.rb + * Add Vector#round. https://github.com/ruby/ruby/pull/802 + +* lib/webrick/utils.rb + * removed unused argument. https://github.com/ruby/ruby/pull/356 + +* Net::FTP + * Connections are in passive mode per default now. The default mode can + be changed by Net::FTP.default_passive=. [Feature #11612] + +* Net::HTTP + * default value of Net::HTTP#open_timeout is now 60 (was nil). + +* Net::Telnet + * Net::Telnet is extracted to net-telnet gem. It's unmaintain code. + [Feature #11083] + +* Psych + * Updated to Psych 2.0.17 + +* Rake + * Rake is removed from stdlib. [Feature #11025] + +* RDoc + * Updated to RDoc 4.2.1. For full release notes see: + + https://github.com/rdoc/rdoc/blob/master/History.rdoc#421--2015-12-22 + +* RubyGems + * Updated to RubyGems 2.5.1. For full release notes see: + + http://docs.seattlerb.org/rubygems/History_txt.html#label-2.5.0+-2F+2015-11-03 + and + http://docs.seattlerb.org/rubygems/History_txt.html#label-2.5.1+-2F+2015-12-10 + +=== Built-in global variables compatibility issues + +* $SAFE + * $SAFE=2 and $SAFE=3 are obsolete. If $SAFE is set to 2 or larger, + an ArgumentError is raised. [Feature #5455] + +=== C API updates + +* rb_define_class_id_under() now raises a TypeError exception when the + class is already defined but its superclass does not match the given + superclass, as well as definitions in ruby level. + +* rb_timespec_now() is added to fetch current datetime as struct timespec. + [Feature #11558] + +* rb_time_timespec_new() is added to create a time object with epoch, + nanosecond, and UTC/localtime/time offset arguments. [Feature #11558] + +* rb_autoload() deprecated, use rb_funcall() instead. [Feature #11664] + +* rb_compile_error_with_enc(), rb_compile_error(), and rb_compile_bug() + deprecated. these functions are exposed but only for internal use. + external libraries should not use them. + +=== Supported platform changes + +* OS/2 is no longer supported + +* BeOS is no longer supported + +* Borland-C is no longer supported + +* Haiku now stable and best effort + +=== Implementation improvements + +* Optimize Proc#call to eliminate method frame construction. + [Feature #11569] + +* Reconsidering method entry data structure. + [Bug #11278] + +* Introducing new table data structure for ID keys tables used by + method table and so on. New table structure is simple and fast + than st_table. [Feature #11420] + +* Machine code level tuning for object allocation and method calling + code. r52099, r52254 + +* RubyVM::InstructionSequence is extended for future improvement. + [Feature #11788] + +* Case dispatch is now optimized for all special constant literals + including nil, true, and false. Previously, only literal strings, + symbols, integers and floats compiled to optimized case dispatch. + [Feature #11769] + +* Instance variables on non-pure Ruby classes (T_DATA, T_FILE, + etc..) is less expensive to store than before. [Feature #11170] + +* All accesses to members of big Struct objects are performed in + constant-time. Previously, Struct elements beyond the first 10 + 10 elements used a linear scan. [Feature #10585] + +* The Set class got several speed up. + [Misc #10754], [r52591] + +* Socket and I/O-related improvements + + * Calling overhead of most of new keyword-using I/O methods in + [Feature #11229] is reduced by avoiding the inefficient C API + to parse keywords. [Feature #11339] + + * The standard library is updated to use the improved + exception-free non-blocking I/O from [Feature #11229]. + This has the additional benefit of quieter $DEBUG output in + addition to reducing expensive exceptions. [Feature #11044] + + * (Linux-only) waiting on a single FD anywhere in the stdlib no longer + uses select(2), making it immune to slowdowns with high-numbered FDs. + [Feature #11081] [Feature #11377] + +* CGI.escapeHTML is optimized with C extention. + https://github.com/ruby/ruby/pull/1164 -- cgit v1.2.3