* 2022-01-18 [ci skip]
[ruby-80x24.org.git] / doc / ChangeLog-2.4.0
bloba297a579d1d4ba1556947edbdafa7ccecb8f25aa
1 Mon Nov  7 00:32:45 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
3         * test/ruby/test_optimization.rb (test_tailcall_interrupted_by_sigint):
4           ignore on Windows because we cannot handle signaled status of child
5           ruby process on this platform.
7 Sun Nov  6 23:36:07 2016  Shugo Maeda  <shugo@ruby-lang.org>
9         * test/ruby/test_optimization.rb (test_tailcall_interrupted_by_sigint):
10           send SIGKILL if the child process doesn't die within 1 second.
12 Sun Nov  6 21:54:28 2016  NARUSE, Yui  <naruse@ruby-lang.org>
14         * tool/vcs.rb (export_changelog): generate ChangeLog file from
15           vcs's log. [Feature #12283]
17         * tool/make-snapshot (package): overwrite ChangeLog by generated
18           ChangeLog.
20 Sun Nov  6 21:36:33 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
22         * NEWS: Added entry for RDoc 5.
24 Sun Nov  6 21:35:37 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
26         * NEWS: ordered entries and adjust styles.
28 Sun Nov  6 18:23:31 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
30         * NEWS: Added entry for [Feature #12160][ruby-core:74239]
32 Sun Nov  6 18:18:25 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
34         * NEWS: Added entry for r56624.
36 Sun Nov  6 15:53:03 2016  Shugo Maeda  <shugo@ruby-lang.org>
38         * configure.in (-Wno-maybe-uninitialized): gcc 6 also shows the same
39           warnings as described in r49410.
41 Sun Nov  6 14:42:50 2016  takkanm  <takkanm@gmail.com>
43         * eval.c (rb_mod_include, rb_mod_prepend): check if arguments are
44           given, as well as Kernel#extend.  [ruby-dev:49854] [Bug #12887]
45           [Fix GH-1470]
47 Sun Nov  6 11:59:05 2016  Shugo Maeda  <shugo@ruby-lang.org>
49         * test/rinda/test_rinda.rb (test_make_socket_ipv6_multicast,
50           test_make_socket_ipv6_multicast_hops): skip if IPv6 multicast
51           address is not available.
53 Sun Nov  6 11:53:23 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
55         * lib/irb.rb (Binding#irb): new method like Binding#pry.
57 Sun Nov  6 11:48:55 2016  Shugo Maeda  <shugo@ruby-lang.org>
59         * test/net/smtp/test_smtp.rb (test_tls_connect, test_tls_connect):
60           use Socket.tcp_server_sockets in case localhost is resolved to ::1.
62 Sun Nov  6 11:49:47 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
64         * lib/irb.rb (IRB::Irb#run): split from IRB.start.
66 Sun Nov  6 11:45:11 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
68         * lib/e2mmap.rb (E2MM.def_exception): remove old definition if
69           exists so that works multiple times.
71 Sun Nov  6 10:03:00 2016  Shugo Maeda  <shugo@ruby-lang.org>
73         * test/ruby/test_optimization.rb (test_tailcall_interrupted_by_sigint):
74           don't use sleep to run faster.
76 Sun Nov  6 09:58:47 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
78         * process.c (rb_exec_fillarg): honor the given path environment
79           variable.  [ruby-core:53103] [Bug #8004]
81 Sun Nov  6 01:52:31 2016  Akira Matsuda  <ronnie@dio.jp>
83         * lib/erb.rb: Alias regist_scanner to register_scanner
85 Sun Nov  6 01:39:36 2016  Shugo Maeda  <shugo@ruby-lang.org>
87         * compile.c (tailcallable_p): disable tail call optimization for
88           toplevel, eval, and load to avoid SEGV when interrupted by SIGINT.
89           [ruby-core:76327] [Bug #12576]
91 Sun Nov  6 01:28:41 2016  Koichi Sasada  <ko1@atdot.net>
93         * vm_insnhelper.h: rename REG_(CFP|PC|SP|EP) to VM_REG_....
94           [Bug #12527]
96         * vm_exec.c: ditto.
98 Sun Nov  6 00:25:11 2016  Sho Hashimoto  <sho.hsmt@gmail.com>
100         * enumerator.c (InitVM_Enumerator): Enumerator::Lazy#chunk_while
101           defined.  [Fix GH-1186]
102           https://github.com/ruby/ruby/pull/1186
104 Sun Nov  6 00:22:51 2016  Kazuki Tsujimoto  <kazuki@callcc.net>
106         * vm_eval.c (vm_call0_cfunc_with_frame): pass method id to
107           dtrace hook. follow up r56592.
109 Sun Nov  6 00:06:38 2016  Tanaka Akira  <akr@fsij.org>
111         * lib/resolv.rb (Resolv::LOC::Coord.create): fixed.
112           [ruby-core:72567] [Bug #11912] fixed by Eric Wong and Kazuhiro
113           NISHIYAMA.
115 Sun Nov  6 00:03:09 2016  NARUSE, Yui  <naruse@ruby-lang.org>
117         * configure.in (-Wimplicit-fallthrough): gcc7 introduces case
118           fall through warnings but it is too noisy.
119           https://gcc.gnu.org/bugzilla/show_bug.cgi?id=7652
121 Sat Nov  5 23:58:32 2016  Shugo Maeda  <shugo@ruby-lang.org>
123         * numeric.c (rb_int_round): cast to SIGNED_VALUE to suppress
124           warnings by -Wsign-compare.
126 Sat Nov  5 23:48:27 2016  NARUSE, Yui  <naruse@ruby-lang.org>
128         * file.c (rb_home_dir_of): convert given username into filesystem
129           encoding. [ruby-core:76682] [Bug #12652]
130           patched by Davis Mosans
132 Sat Nov  5 23:46:03 2016  Tanaka Akira  <akr@fsij.org>
134         * time.c (vtm_add_offset): Fix yday on last day of year.
135           [ruby-core:72878] [Bug #11994] Fixed by Andrew White.
137 Sat Nov  5 23:30:41 2016  Shugo Maeda  <shugo@ruby-lang.org>
139         * lib/net/http.rb (Net::HTTP.post): new convenience method to send
140           a POST request.  [ruby-core:75484] [Feature #12375]
142 Sat Nov  5 23:03:54 2016  NARUSE, Yui  <naruse@ruby-lang.org>
144         * lib/net/http.rb (transport_request): other than HTTPContinue
145           in 1xx (HTTPInformation) also needs to continue. [Bug #12890]
147 Sat Nov  5 22:51:06 2016  Tanaka Akira  <akr@fsij.org>
149         * lib/time.rb (make_time): "now" argument as nil works again.
150           This is broken since Ruby 2.2.
151           Mathieu Jobin pointed a problem.
152           https://github.com/ruby/ruby/commit/e4b05d91eb0d48fd172abf015c493bb42d755d07#commitcomment-17421387
154 Sat Nov  5 22:50:13 2016  Akinori MUSHA  <knu@iDaemons.org>
156         * lib/ipaddr.rb (IPAddr#==): If coercion fails, return false
157           instead of passing through the exception. [ruby-core:77451]
158           [Bug #12799]
160         * lib/ipaddr.rb (IPAddr#<=>): If coercion fails, return nil
161           instead of passing through the exception. [ruby-core:77451]
162           [Bug #12799]
164 Sat Nov  5 22:11:33 2016  Kazuki Tsujimoto  <kazuki@callcc.net>
166         * vm_trace.c (tracepoint_attr_callee_id, rb_tracearg_callee_id):
167           add TracePoint#callee_id. [ruby-core:77241] [Feature #12747]
169         * cont.c, eval.c, gc.c, include/ruby/intern.h, insns.def, thread.c,
170           vm.c, vm_backtrace.c, vm_core.h, vm_eval.c, vm_insnhelper.c, vm_trace.c: ditto.
172         * test/ruby/test_settracefunc.rb: tests for above.
174 Sat Nov  5 22:09:48 2016  Kazuki Tsujimoto  <kazuki@callcc.net>
176         * eval.c, method.h, proc.c, vm.c, vm_eval.c, vm_insnhelper.c, vm_method.c:
177           TracePoint#method_id should return method_id, not callee_id.
178           [ruby-core:77241] [Feature #12747]
180         * test/ruby/test_settracefunc.rb: change accordingly.
182 Sat Nov  5 18:49:37 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
184         * numeric.c (flo_round, int_round): support round-to-nearest-even
185           semantics of IEEE 754 to match sprintf behavior, and add `half:`
186           optional keyword argument for the old behavior.
187           [ruby-core:76273] [Bug #12548]
189 Sat Nov  5 18:17:54 2016  Akinori MUSHA  <knu@iDaemons.org>
191         * lib/set.rb (Set#compare_by_identity, Set#compare_by_identity?):
192           New methods. [Feature #12210]
194 Sat Nov  5 18:17:08 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
196         * lib/rdoc/*, test/rdoc/*: Update rdoc-5.0.0
197           Release note: https://github.com/rdoc/rdoc/blob/b825775647f62c5b525e9780a28ff2fbb1d5bf6f/History.rdoc#500--2016-11-05
199 Sat Nov  5 17:29:06 2016  Tanaka Akira  <akr@fsij.org>
201         * lib/resolv.rb (Resolv::DNS#extract_resources): Use each_resource
202           instead of each_answer.
203           [ruby-core:75461] [Bug #12372] reported by Rafael Fernandez Lopez.
205 Sat Nov  5 17:18:24 2016  NARUSE, Yui  <naruse@ruby-lang.org>
207         * ext/-test-/file/fs.c (get_atime_p): Updating of file access times
208           is enabled or not.
210 Sat Nov  5 16:28:07 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
212         * io.c (extract_getline_opts): extract chomp option.
213           [Feature #12553]
215 Sat Nov  5 15:58:24 2016  Sho Hashimoto  <sho-h@netlab.jp>
217         * tool/mkconfig.rb: [DOC] add rbconfig documentation.
219 Sat Nov  5 15:42:52 2016  Shugo Maeda  <shugo@ruby-lang.org>
221         * lib/net/smtp.rb (tlsconnect): support timeout for TLS handshake.
222           [ruby-core:76893] [Bug #12678]
224         * lib/net/protocol.rb (ssl_socket_connect): new method to implement
225           timeout for TLS handshake.
227         * lib/net/http.rb (connect): use Net::Protocol#ssl_socket_connect.
229 Sat Nov  5 14:17:20 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
231         * parse.y (brace_body, do_body): since cmdarg_stack is saved in
232           VALUE val, should restore from the same member.  on big-endian
233           platforms where VALUE is larger than int, it restored 0 in the
234           upper word.  [ruby-core:77920] [Bug #12900]
236 Sat Nov  5 13:52:52 2016  Akinori MUSHA  <knu@iDaemons.org>
238         * lib/shellwords.rb (Shellwords#shellsplit): Fix the handling of
239           the backslash in double quotes to conform to the standard.
240           [ruby-core:63807] [Bug #10055]
242 Sat Nov  5 12:14:31 2016  Tanaka Akira  <akr@fsij.org>
244         * ext/pathname/pathname.c (Pathname#empty?): New method.
245           [ruby-core:76404] [Feature #12596] Proposed by John Backus.
247 Sat Nov  5 11:53:02 2016  Shugo Maeda  <shugo@ruby-lang.org>
249         * test/ruby/test_refinement.rb (test_refine_alias_in_subclass):
250           add a test to check that alias in subclasses can be refined.
251           [ruby-core:69374] [Bug #11186]
253 Sat Nov  5 11:20:57 2016  Shugo Maeda  <shugo@ruby-lang.org>
255         * cont.c (cont_new): disable optimization if clang's version is
256           3.8.0.  [ruby-core:77894] [Bug #12893]
258 Sat Nov  5 10:07:18 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
260         * test/ruby/test_file.rb (TestFile#test_stat): fix noatime case.
261           [ruby-core:77943] [Bug #12903]
263 Fri Nov  4 17:52:44 2016  Koichi Sasada  <ko1@atdot.net>
265         * gc.c (heap_page_resurrect): do not return tomb_pages when
266           page->freelist == NULL.
267           [Bug #12670]
269 Fri Nov  4 16:31:45 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
271         * util.c (ruby_dtoa): round to even, instead of rounding to
272           nearest.  [ruby-core:77864] [Bug #12889]
274 Fri Nov  4 15:31:00 2016  NARUSE, Yui  <naruse@ruby-lang.org>
276         * configure.in: Add compiler version message into rbconfig
277           as RbConfig::CONFIG['CC_VERSION_MESSAGE']. [Feature #12896]
279 Fri Nov  4 13:03:00 2016  Kenta Murata  <mrkn@mrkn.jp>
281         * numeric.c (rb_int_digits): Fix exception message
282           [ruby-core:77502] [Bug #12815]
284 Fri Nov  4 10:51:16 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
286         * ext/pathname/pathname.c (path_hash): fix unnormalized Fixnum
287           value bug on mingw/mswin.
289 Fri Nov  4 10:35:47 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
291         * lib/fileutils.rb (FileUtils::Entry_#copy): ensure that the
292           source entry exists first, to fix error for non-existent entry.
293           [ruby-core:77885] [Bug #12892]
295 Thu Nov  3 21:45:00 2016  Kenta Murata  <mrkn@mrkn.jp>
297         * ext/bigdecimal/bigdecimal.c: Import changes from ruby/bigdecimal
298           repository.
300 Thu Nov  3 15:01:29 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
302         * file.c: include sys/sysmacros.h for ArchLinux which deprecated
303           use of major() and minor() in sys/types.h.
305 Wed Nov  2 08:45:49 2016  Dmitry Gritsay  <unseductable@gmail.com>
307         * doc/extension.rdoc: set ANYARGS as arguments for func1 and func2.
309         * doc/extension.rdoc: mention the exception object which is passed
310           to func2 as the second argument.  [Fix GH-1471]
312 Wed Nov  2 07:34:27 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
314         * numeric.c (rb_num_coerce_bit): enable bit operations with
315           coercing by non-integer object.  [ruby-core:77783] [Bug #12875]
317 Tue Nov  1 01:31:09 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
319         * configure.in (ac_cv_func_round): round(3) in x86_64-w64-mingw32
320           is not accurate in an edge case.  [ruby-core:77794] [Bug #12878]
322 Mon Oct 31 17:36:04 2016  Code Ahss  <aycabta@gmail.com>
324         * test/test_forwardable.rb (TestForwardable#test_on_private_method):
325           add test for [Bug #12782] [Bug #12840]
327 Mon Oct 31 11:08:51 2016  Samuel Williams  <samuel.williams@oriontransfer.co.nz>
329         * lib/uri/generic.rb (URI::Generic#merge): merge merge0.
330           [GH-1469]
332 Sun Oct 30 15:32:43 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
334         * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update
335           rubygems to 2.6.8.
336           Release note of 2.6.8: https://github.com/rubygems/rubygems/commit/9fb8880976f5ab998912898b091d88aa10eb1d4a
338 Sun Oct 30 06:39:37 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
340         * enc/windows_1254.c: Fix typo. Reported by k-takata at
341           https://github.com/k-takata/Onigmo/commit/ceb59cc. Thanks!
343 Sat Oct 29 19:59:37 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
345         * parse.y (cond0): !-operator is a method call, no warning for
346           literal in condition.  [ruby-core:77801] [Bug #12881]
348 Sat Oct 29 10:09:38 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
350         * compile.c (iseq_compile_each): turn flip-flop in a not-operator
351           into a boolean value.  fix up r56315
353 Sat Oct 29 09:39:14 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
355         * vm_eval.c (vm_call0_body): follow the original class, not to
356           loop the prepended module.  [ruby-core:77784] [Bug #12876]
358 Sat Oct 29 00:14:30 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
360         * enc/trans/windows-1255-tbl.rb: update mapping from 0xCA to
361           U+05BA.  [Feature #12877]
363 Fri Oct 28 23:22:32 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
365         * enc/depend: extract transcode_tblgen method calls for libraries
366           loaded by dynamically generated names, in single_byte.trans.
368 Fri Oct 28 16:05:03 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
370         * insns.def (opt_case_dispatch): extract float value only if the
371           Float method is not redefined.
373 Fri Oct 28 15:58:16 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
375         * internal.h (RB_OBJ_BUILTIN_TYPE): special-const safe
376           BUILTIN_TYPE.
378 Fri Oct 28 15:20:18 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
380         * complex.c (id_finite_p, id_infinite_p, id_rationalize, id_PI):
381           initialize static IDs.
383         * complex.c (FINITE_TYPE_P): extract predicate.
385         * complex.c (rb_complex_finite_p, rb_complex_infinite_p): use
386           dedicated predicates instead of switch by TYPE.
388 Thu Oct 27 23:28:12 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
390         * include/ruby/ruby.h (rb_integer_type_p): turn into macro to help
391           clang based on old gcc to eliminate CSE.
393 Thu Oct 27 16:33:47 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
395         * tool/redmine-backporter.rb (rel): check the exception and show right
396           message.
398 Thu Oct 27 14:57:33 2016  Kazuki Yamaguchi  <k@rhe.jp>
400         * ext/socket/lib/socket.rb (UDPSocket#recvfrom_nonblock): [DOC] Remove
401           a false statement "If _maxlen_ is omitted, its default value is
402           65536." maxlen, the first parameter, cannot be omitted as the method
403           signature indicates. This hasn't changed ever since it was first
404           implemented.
406 Thu Oct 27 09:42:09 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
408         * object.c (rb_convert_to_integer): convert a fixable float to a
409           fixnum directly without the conversion method, as well as bignum
410           case.
412         * object.c (rb_convert_to_integer): should not drop the converted
413           string.
415 Wed Oct 26 17:09:59 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
417         * include/ruby/ruby.h (rb_intern): use prefixed version macro
418           RUBY_CONST_ID_CACHE.
420 Wed Oct 26 11:28:25 2016  URABE Shyouhei  <shyouhei@ruby-lang.org>
422         * NEWS: added several entries which (if I remember correctly) are
423           added in a year.
425 Tue Oct 25 12:54:07 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
427         * proc.c (mnew_internal): follow the original class, not to loop
428           the prepended module.  [ruby-core:77591] [Bug #12832]
430 Mon Oct 24 10:52:17 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
432         * test/lib/test/unit.rb (Test::Unit::Parallel#deal): update the
433           job status after a task finished, to show idling workers.
435 Mon Oct 24 10:51:09 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
437         * complex.c (Init_Complex): undefine methods inherited from
438           Comparable, because Complex does not have <=> method.
439           [Bug #12866]
441         * class.c (rb_undef_methods_from): undefine methods defined in
442           super from klass.
444 Mon Oct 24 10:19:44 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
446         * complex.c (Init_Complex): undefine Complex#clamp, which does not
447           work like other Comparable methods, because Complex does not
448           have <=> method.  patched by Tim Peters <zomg.tim AT gmail.com>
449           in [ruby-core:77720].  [Bug #12866]
451 Sun Oct 23 11:41:41 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
453         * include/ruby/encoding.h: include "ruby/ruby.h" explicitly for
454           enum ruby_fl_type and VALUE.
456 Sat Oct 22 23:33:55 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
458         * parse.y (reg_compile_gen): always append error message to the
459           error buffer.
461 Sat Oct 22 22:33:32 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
463         * numeric.c (num_funcall1): check recursion by inverse pair, to
464           fix fake infinite recursion.  [ruby-core:77713] [Bug #12864]
466 Sat Oct 22 18:52:32 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
468         * hash.c (rb_hash_compact_bang): should return nil if no elements
469           is deleted.  [ruby-core:77709] [Bug #12863]
471 Sat Oct 22 10:28:28 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
473         * configure.in (DLDFLAGS): fallback to LDFLAGS.
474           [ruby-core:72444] [Bug #11863]
476         * configure.in (LIBRUBY_DLDFLAGS): fallback to DLDFLAGS.
478         * configure.in (RUBY_APPEND_OPTION, RUBY_PREPEND_OPTION): expand
479           the option to be appended/prepended when matching, as well as
480           RUBY_APPEND_OPTIONS and  RUBY_PREPEND_OPTIONS.
482 Sat Oct 22 09:52:57 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
484         * compile.c (setup_args): duplicate splatting array if more
485           arguments present to obey left-to-right execution order.
486           [ruby-core:77701] [Bug# 12860]
488 Fri Oct 21 16:44:44 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
490         * dir.c (do_opendir): retry after GC when the limit for open file
491           descriptors reached.
493 Fri Oct 21 16:06:25 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
495         * ruby.c (open_load_file): retry after GC when the limit for open
496           file descriptors reached.
498 Fri Oct 21 11:34:17 2016  Pascal Schmid  <Lechindianer@users.noreply.github.com>
500         * string.c (rb_str_sub, rb_str_gsub): [DOC] 'backlash' should read
501           'backslash'.  [Fix GH-1461]
503 Thu Oct 20 17:02:56 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
505         * lib/uri/common.rb: added documentation for deprecated method.
506           [Misc #11960][ruby-core:72733][ci skip]
508 Thu Oct 20 16:57:23 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
510         * ext/digest/digest.c: Add documentation for Digest.
511           [Feature #10452][ruby-core:66001][ci skip]
512           * remove HMAC from list of digest algorithms,
513           * add MD5 in list of digest algorithms,
514           * add information about writing a C digest implementation using Digest::Base,
515           * add documentation for Digest::Base public methods.
516         * ext/digest/md5/md5init.c: add examples for MD5.
517         * ext/digest/rmd160/rmd160init.c: add examples for Digest::RMD160.
518         * ext/digest/sha1/sha1init.c: add examples for Digest::SHA1.
520 Thu Oct 20 16:19:51 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
522         * lib/open-uri.rb: Improved documentation grammar for
523           open-uri#open option. [Misc #11329][ruby-core:69868][ci skip]
525 Wed Oct 19 21:48:40 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
527         * NEWS: mention refinements with Kernel#send and
528           BasicObject#__send__.  [Feature #11476]
530 Wed Oct 19 17:02:15 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
532         * vm_insnhelper.c (vm_call_opt_send): enable refinements with
533           Kernel#send and BasicObject#__send__.  [Feature #11476]
535 Wed Oct 19 14:22:49 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
537         * basictest/runner.rb: do not clobber the option by --run-opt with
538           RUBYOPT.  reported by Allen Hewes <rallenh AT hotmail.com>.
540 Wed Oct 19 00:09:06 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
542         * addr2line.c (parse_debug_line_cu): boundary checks for
543           compressed debug sections.  [ruby-dev:49840] [Bug #12850]
545 Tue Oct 18 16:36:40 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
547         * configure.in (DLDFLAGS): append --compress-debug-sections=zlib
548           if available, which reduces the size of LIBRUBY_SO by half or
549           more.
551 Mon Oct 17 16:20:37 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
553         * win32/configure.bat: add option to enable/disable to install
554           static ruby library.  defaulted to "no".  [Feature #12845]
556         * configure.in (install-static-library): add option to enable/
557           disable to install static ruby library.  defaulted to "no" if
558           enable-shared.  [Feature #12845]
560         * tool/rbinstall.rb (local-arch-lib): respect the option.
562 Sun Oct 16 15:09:06 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
564         * enc/windows_1254.c, test/ruby/enc/test_case_comprehensive.rb:
565           Implement non-ASCII case conversion for Windows-1254.
567 Sat Oct 15 14:17:05 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
569         * vm_args.c (refine_sym_proc_call): search and call method with
570           refinements.
572         * vm_args.c (vm_caller_setup_arg_block): enable refinements when
573           enabled in the caller.  [Feature #9451]
575 Sat Oct 15 00:54:01 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
577         * process.c (proc_exec_cmd): use UTF-8 version aspawn.
578           [ruby-dev:49838] [Bug #12841]
580 Fri Oct 14 22:26:10 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
582         * lib/optparse/kwargs.rb (OptionParser#define_by_keywords):
583           [EXPERIMENTAL] extract command line option definitions from the
584           information of keyword arguments.
586 Fri Oct 14 18:27:18 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
588         * object.c: Improve documentation for Float conversion.
589           [ruby-core:71661][Bug #11736][ci skip]
591 Fri Oct 14 18:00:20 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
593         * lib/logger.rb: Improve Logger.new option documentation.
594           [Feature #12803][ruby-core:77467]
596 Fri Oct 14 17:20:24 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
598         * lib/optparse.rb (make_switch, parse_in_order): unify underscores
599           to hyphens.
601 Fri Oct 14 10:48:37 2016  Eric Wong  <e@80x24.org>
603         * lib/webrick/utils.rb (TimeoutHandler): use monotonic clock
604           (watch): ditto
606 Thu Oct 13 19:41:32 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
608         * io.c (copy_stream_body): use IO to write to copy to duplex IO.
609           http://twitter.com/knu/status/786505317974585344
611 Thu Oct 13 17:05:57 2016  Dwain Faithfull  <dwfaithfull@gmail.com>
613         * hash.c (rb_hash_compact, rb_hash_compact_bang): Removes nil
614           values from the original hash, to port Active Support behavior.
615           [Feature #11818]
617 Thu Oct 13 11:35:33 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
619         * array.c (rb_ary_sort_bang, rb_ary_sort, rb_ary_sort_by_bang):
620           [DOC] describe that sort may not be stable.
622         * enum.c (enum_sort, enum_sort_by): ditto.
624 Thu Oct 13 11:31:40 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
626         * test/rexml/xpath/test_text.rb (test_ancestors): Array#sort may
627           not be stable.  [ruby-core:76088] [Bug #12509]
629         * test/rss/test_maker_{0.9,1.0,2.0}.rb (test_items): ditto.
631 Thu Oct 13 10:37:31 2016  Eric Wong  <e@80x24.org>
633         * doc/extension.rdoc: wording fix
635 Thu Oct 13 00:39:08 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
637         * test/ruby/test_array.rb (test_sort_bang_with_freeze): make a
638           clone to copy a <=> singleton method, instead of dup.  which
639           element will be called is not predictable.
640           [ruby-core:76088] [Bug #12509]
642 Thu Oct 13 00:21:27 2016  Simon Soriano  <simon0191@gmail.com>
644         * doc/extension.rdoc: Replace "You can defined hooked variables"
645           with "You can define hooked variables". [Fix GH-1460]
647 Wed Oct 12 21:05:50 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
649         * ruby.c (open_load_file): revert r56385.  it introduced incompatibility
650           about `DATA.binmode?`.
652 Wed Oct 12 15:24:53 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
654         * tool/downloader.rb: Removed verification of gem certification.
655           Because signed gem is not working on rubygems ecosystem.
656         * tool/gem-unpack.rb: ditto.
658 Tue Oct 11 22:08:24 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
660         * io.c (prep_io): fix typo of struct member name.
661           [ruby-core:77550] [Bug #12829]
663 Tue Oct 11 16:45:24 2016  Tanaka Akira  <akr@fsij.org>
665         * lib/uri/generic.rb (URI.find_proxy): Add an optional argument, env.
667 Tue Oct 11 16:38:32 2016  Tanaka Akira  <akr@fsij.org>
669         * lib/pp.rb (String#pretty_print): Defined to print a string as
670           multiple lines.
671           [ruby-core:76800] [Feature#12664] proposed by Petr Chalupa.
673 Mon Oct 10 15:22:27 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
675         * ruby.c (open_load_file): bind the open fd to an IO instance
676           before waiting FIFO, not to leak the fd if interrupted.
678 Mon Oct 10 12:40:54 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
680         * ruby.c (open_load_file): compare with EXEEXT instead of hard
681           coded name, and do not match with mere EXEEXT.
683         * ruby.c (open_load_file): open in binary mode if available, as
684           parser deals with EOLs.
686         * io.c (prep_io): reduce isatty call (and its system call) on
687           Cygwin.
689 Sun Oct  9 23:05:53 2016  Prathamesh Sonpatki  <csonpatki@gmail.com>
691         * array.c, class.c: Fixed documentation where Fixnum was referred
692           directly to use Integer, as Fixnum and Bignum are now unified
693           into Integer and direct usage is deprecated.  [Fix GH-1459]
695 Sun Oct  9 11:37:19 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
697         * vm_core.h (VM_ASSERT): stringify expr here before expansion in
698           RUBY_ASSERT_WHEN.
700 Sat Oct  8 10:54:22 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
702         * ext/-test-/memory_status/memory_status.c (read_status): use
703           Win32 GetProcessMemoryInfo API.
705         * ext/-test-/memory_status/memory_status.c: get memory sizes by
706           mach task_info system call.
708 Sat Oct  8 09:06:55 2016  Aurelien Jacobs  <aurel@gnuage.org>
710         * lib/logger.rb (Logger::Period#next_rotate_time): fix monthly log
711           rotate when DST is applied during a month of 31 days.
712           [Fix GH-1458]
714 Fri Oct  7 20:21:39 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
716         * gc.c (gc_prof_setup_new_record): fix the condition to get
717           rusage.
719         * gc.c (gc_profile_dump_major_reason): remove undefined flags.
721 Fri Oct  7 19:18:33 2016  Masaki Suketa <masaki.suketa@nifty.ne.jp>
723         * ext/win32ole/*.c, ext/win32ole/win32ole.h: use RB_INT2FIX instead of
724           INT2FIX, and so on.
726 Fri Oct  7 14:18:40 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
728         * basictest/test.rb: Adjust spaces in class declarations
729           with inheritance. [fix GH-1227] Patch by @adrfer
730         * lib/irb/*: ditto.
731         * lib/prime.rb: ditto.
732         * lib/shell/builtin-command.rb: ditto.
733         * object.c: ditto.
734         * sample/*.rb: ditto.
735         * test/-ext-/method/test_arity.rb: ditto.
737 Thu Oct  6 17:29:44 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
739         * load.c (rb_require_safe): SyntaxError created by the parser just
740           has the message and needs to set up the backtrace.
741           [ruby-core:77491] [Bug #12811]
743         * load.c (rb_load_internal0): load/require is not the main
744           script.
746 Thu Oct  6 13:35:15 2016  Marc-Andre Lafortune  <ruby-core@marc-andre.ca>
748         * enum.c: [DOC] Improve doc [ci-skip]
750 Thu Oct  6 11:38:14 2016  Chris Jones  <chris@christopherjones.us>
752         * ext/readline/extconf.rb: Update error message with correct words.
753           [fix GH-1453][ci skip] Patch by @magikid
755 Thu Oct  6 11:01:49 2016  Tieg Zaharia  <tieg.zaharia@gmail.com>
757         * lib/uri/common.rb (WEB_ENCODINGS_): Update URI::WEB_ENCODINGS_
758           hash, and fix documented command to grab it.  [Fix GH-1430]
760 Thu Oct  6 10:37:13 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
762         * enum.c: Add reduce/inject alias note.
763           [fix GH-1400][ci skip] Patch by @getaaron
765 Thu Oct  6 10:30:27 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
767         * thread.c (update_coverage): check coverage values, and ignore
768           non-fixnum values.
770 Thu Oct  6 09:19:21 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
772         * io.c (fptr_finalize): use dedicated macro RB_INTEGER_TYPE_P.
774 Wed Oct  5 18:02:44 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
776         * lib/net/http/response.rb: Improve document readability.
777           [fix GH-1411][ci skip] Patch by @stz-seongheon
779 Wed Oct  5 15:43:32 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
781         * node.c (dump_node): flatten statements in NODE_BLOCK.
783 Wed Oct  5 14:27:36 2016  Byron Bowerman  <me@bm5k.com>
785         * range.c: Add docs for max/min behavior with exclusive range.
786           [fix GH-1433][ci skip] Patch by @BM5k
788 Wed Oct  5 12:57:21 2016  Richard Schneeman  <richard.schneeman+foo@gmail.com>
790         * ext/socket/*.c: Add proper require for example to work.
791           [fix GH-1378][ci skip] Patch by @schneems
793 Wed Oct  5 11:47:19 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
795         * io.c: Fixed equivalent ruby code with core implementation.
796           [fix GH-1429][ci skip] Patch by @sos4nt
798 Wed Oct  5 11:36:21 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
800         * lib/delegate.rb: Added missing spaces and Removed needless spaces.
801           [fix GH-1454][ci skip] Patch by @bogdanvlviv
803 Wed Oct  5 03:24:55 2016  Marc-Andre Lafortune  <ruby-core@marc-andre.ca>
805         * enum.c: Make Enumerable#chunk with no block return
806           an Enumerator [#2172]
808 Wed Oct  5 01:19:45 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
810         * internal.h (ST2FIX): new macro to convert st_index_t to Fixnum.
811           a hash value of Object might be Bignum, but it causes many troubles
812           especially the Object is used as a key of a hash.  so I've gave up
813           to do so.
815         * array.c (rb_ary_hash): use above macro.
817         * bignum.c (rb_big_hash): ditto.
819         * hash.c (rb_obj_hash, rb_hash_hash): ditto.
821         * numeric.c (rb_dbl_hash): ditto.
823         * proc.c (proc_hash): ditto.
825         * re.c (rb_reg_hash, match_hash): ditto.
827         * string.c (rb_str_hash_m): ditto.
829 Tue Oct  4 12:59:44 2016  Koichi ITO  <koic.ito@gmail.com>
831         * array.c (rb_ary_dig): [DOC] update an example of error message
832           by Array#dig, because of Integer Unification.  [Fix GH-1455]
834 Tue Oct  4 09:55:12 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
836         * ext/bigdecimal/bigdecimal.c (BigDecimal_div2): need more room
837           for precision to round.  [ruby-core:77475] [Bug #12805]
839 Tue Oct  4 06:05:46 2016  NARUSE, Yui  <naruse@ruby-lang.org>
841         * regcomp.c (onig_print_compiled_byte_code): make the shown address
842           look relative.
844 Tue Oct  4 05:53:11 2016  NARUSE, Yui  <naruse@ruby-lang.org>
846         * regexec.c (OPCODE_EXEC_HOOK): op is p-1 because p is already
847           incremented.
849         * regexec.c (OPCODE_EXEC_HOOK): use the exact end address.
851         * regexec.c (match_at): don't call OPCODE_EXEC_HOOK in CASE()
852           when it comes from goto fail.
854 Mon Oct  3 21:24:41 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
856         * NEWS: mention Readline.quoting_detection_proc{,=}.
858 Mon Oct  3 21:19:46 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
860         * lib/logger.rb: [DOC] Fix default value of shift_age.
862 Mon Oct  3 17:20:05 2016  George Brocklehurst  <ruby@georgebrock.com>
864         * ext/readline/readline.c (readline_s_set_quoting_detection_proc):
865           support rl_char_is_quoted_p.  [Feature #12659]
867         * ext/readline/readline.c (readline_s_get_quoting_detection_proc):
868           ditto.
870 Sun Oct  2 08:22:28 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
872         * include/ruby/ruby.h (RB_INT2FIX, RB_LONG2FIX): prefix RB to
873           global symbols to get rid of name conflicts with other headers.
875 Sun Oct  2 07:51:20 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
877         * string.c (rb_str_hash_m): hash values may be negative.
879 Sun Oct  2 02:04:12 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
881         * string.c (rb_str_hash_m): st_index_t is not guaranteed as the same
882           size with int, and of course also not guaranteed the value can be
883           Fixnum.
885 Sun Oct  2 02:03:06 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
887         * numeric.c (rb_fix2str): detect unnormalized Fixnum value.
889 Sat Oct  1 23:08:47 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
891         * ext/date/date_parse.c (date_zone_to_diff): it's nonsense and really
892           harm that to use unary minus operator with unsigned value.
893           get rid of test failures introduced at r56312.
895 Sat Oct  1 22:17:49 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
897         * compile.c (iseq_compile_each): move numeric literal range
898           optimization from fixup_nodes() in parse.y.
900 Sat Oct  1 19:19:34 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
902         * compile.c (compile_flip_flop): simplify generated code.
904         * compile.c (compile_branch_condition): flip-flop can appear only
905           in conditional expressions.
907 Sat Oct  1 02:02:02 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
909         * win32/win32.c (poll_child_status): rb_w32_wait_events_blocking() sets
910           errno internally, then should not set it here.
912 Fri Sep 30 19:06:21 2016  Anton Davydov  <mail@davydovanton.com>
914         * lib/uri/http.rb: Documentation and code style improvements.
915         * test/uri/test_http.rb: Added test for coverage.
916           [fix GH-1427][ruby-core:77255][Misc #12756]
918 Fri Sep 30 18:43:20 2016  Jason Yeo  <jason@jasonyeo.me>
920         * doc/syntax/control_expressions.rdoc: Add missing 'as'
921           [ci skip][fix GH-1448] Patch by @jsyeo
923 Thu Sep 29 23:38:04 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
925         * lib/yaml/store.rb (YAML::Store#dump): use table argument instead
926           of @table directly.
928 Thu Sep 29 22:22:22 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
930         * lib/yaml/store.rb (YAML::Store#initialize): Fix arguments.
931           [ruby-dev:49821] [Bug #12800]
933         * test/yaml/test_store.rb: Add tests from test/test_pstore.rb.
935         * test/yaml/test_store.rb (YAMLStoreTest#test_with_options): Add options test.
937         * lib/yaml/store.rb (YAML::Store#dump): Revert to to_yaml.
939         * lib/yaml/store.rb (YAML::Store#empty_marshal_data): Use to_yaml with options.
941         * lib/yaml/store.rb (YAML::Store#empty_marshal_checksum): Use CHECKSUM_ALGO.
943 Thu Sep 29 19:34:23 2016  Pete Higgins  <pete@peterhiggins.org>
945         * thread_sync.c (rb_queue_pop, rb_szqueue_push, rb_szqueue_pop):
946           Document exception types, ThreadError, raised by Queue and
947           SizedQueue.  [Fix GH-1451]
949 Thu Sep 29 19:21:02 2016  Pete Higgins  <pete@peterhiggins.org>
951         * thread_sync.c (Init_thread_sync): Remove confusing doc comments,
952           which are picked up by rdoc unexpectedly, from Queue and
953           SizedQueue.  [Fix GH-1450]
955 Wed Sep 28 23:14:19 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
957         * lib/pstore.rb (PStore::CHECKSUM_ALGO): find available hashing
958           algorithm for checksum.  MD5 is not available in FIPS mode.
959           [Feature #6943]
961 Wed Sep 28 13:00:25 2016  ksss  <co000ri@gmail.com>
963         * signal.c (sig_signame): [DOC] Add documentation in the case of
964           return nil.  [Fix GH-1449]
966 Wed Sep 28 10:43:27 2016  URABE Shyouhei  <shyouhei@ruby-lang.org>
968         * .travis.yml: delete comments. They were outdated.
970 Wed Sep 28 09:57:48 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
972         * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update
973           rubygems to 2.6.7.
974           Release note of 2.6.7: https://github.com/rubygems/rubygems/commit/60f35bd1d2359fc30301d2d4cd72bc6833e8d12a
976 Wed Sep 28 00:21:00 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
978         * error.c (rb_warning_s_warn): the argument must be an
979           ASCII-compatible string.  [ruby-core:77430] [Bug #12793]
981 Tue Sep 27 23:22:31 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
983         * parse.y (symbol, dsym, parser_set_number_literal): set state to
984           ENDARG, so that `do` after a literal should be `do_block` and
985           bound to the outer method.  [ruby-core:72482] [Bug #11873]
987         * parse.y (parse_ident): revert r56198.
989         * parse.y (warn_balanced): the state of symbol and numeric
990           literals is now EXPR_ENDARG, do not exclude it.
992 Tue Sep 27 22:59:42 2016  URABE Shyouhei  <shyouhei@ruby-lang.org>
994         * NEWS: news about Warning.warn.
996 Tue Sep 27 18:10:18 2016  Jeremy Evans <code@jeremyevans.net>
998         * error.c: This makes all warnings raised call Warning.warn, which
999           by default does the same thing it does currently
1000           (rb_write_error_str).  You can override Warning.warn to change
1001           the behavior. [ruby-core:75016] [Feature #12299]
1003 Tue Sep 27 17:35:28 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1005         * iseq.c (iseqw_s_compile_file): deal with syntax error as well as
1006           compile, and should not abort when rescued.
1008 Tue Sep 27 12:07:17 2016  NARUSE, Yui  <naruse@ruby-lang.org>
1010         * lib/cgi/cookie.rb (parse): don't allow , as a separator. [Bug #12791]
1012         * lib/webrick/cookie.rb (parse): ditto.
1014 Mon Sep 26 21:37:21 2016  Akinori MUSHA  <knu@iDaemons.org>
1016         * man/erb.1, man/irb.1, man/ri.1, man/ruby.1: Remove Ns before
1017           punctuation.
1019 Mon Sep 26 16:23:49 2016  Kazuki Yamaguchi  <k@rhe.jp>
1021         * ext/stringio/stringio.c (strio_seek): Avoid signed integer overflow.
1022           It's not harmful in practice here, but is still undefined behavior.
1024         * ext/stringio/stringio.c (strio_extend): Check that the new length does
1025           not exceed LONG_MAX. This fixes the invalid write on the overflow.
1027         * test/stringio/test_stringio.rb (test_write_integer_overflow): Add a
1028           test case for the above fix in strio_extend().
1030 Mon Sep 26 15:43:34 2016  Kazuki Yamaguchi  <k@rhe.jp>
1032         * eval_intern.h (TH_PUSH_TAG): Initialize struct rb_vm_tag::tag with
1033           Qundef rather than 0 which is equal to Qfalse. Since Kernel#throw(obj)
1034           searches a tag with rb_vm_tag::tag == obj, throw(false) can
1035           accidentally find an unrelated tag which is not created by
1036           Kernel#catch.  [ruby-core:77229] [Bug #12743]
1038         * test/ruby/test_exception.rb (test_throw_false): Add a test case for
1039           this.
1041 Mon Sep 26 14:36:12 2016  Naotoshi Seo  <sonots@gmail.com>
1043         * lib/tempfile.rb: provide default basename parameter for
1044           Tempfile.create. [Feature #11965] Patch by Yuki Kurihara
1045         * test/test_tempfile.rb: ditto.
1047 Mon Sep 26 14:10:54 2016  Ary Borenszweig  <ary@esperanto.org.ar>
1049         * string.c (lstrip_offset): add a fast path in the case of single
1050           byte optimizable strings, as well as rstrip_offset.
1051           [ruby-core:77392] [Feature #12788]
1053 Mon Sep 26 12:00:12 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1055         * gems/bundled_gems: update to minitest-5.9.1.
1057 Mon Sep 26 11:50:03 2016  Kazuki Yamaguchi  <k@rhe.jp>
1059         * tool/rbinstall.rb (gem): Don't install gemspec if no files will be
1060           installed for the gem. This happens when the extension library is not
1061           compiled.
1063 Mon Sep 26 11:06:47 2016  Kazuki Yamaguchi  <k@rhe.jp>
1065         * string.c (enc_strlen, rb_enc_strlen_cr): Avoid signed integer
1066           overflow. The result type of a pointer subtraction may have the same
1067           size as long. This fixes String#size returning an negative value on
1068           i686-linux environment:
1070             str = "\x00" * ((1<<31)-2))
1071             str.slice!(-3, 3)
1072             str.force_encoding("UTF-32BE")
1073             str << 1234
1074             p str.size
1076 Sun Sep 25 22:48:06 2016  namusyaka  <namusyaka@gmail.com>
1078         * lib/erb.rb (ERB::Compiler::TrimScanner#stag): The :stag accessor
1079           has already been available because it is defined in parent
1080           Scanner class.  [Fix GH-1445]
1082 Sun Sep 25 19:21:26 2016  Kazuki Tsujimoto  <kazuki@callcc.net>
1084         * node.c (dump_array): remove duplicate header of NODE_ARRAY/
1085           NODE_VALUES.
1087 Sat Sep 24 22:26:20 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1089         * ext/extmk.rb (extract_makefile, extmake, configuration): store
1090           extra libraries to be installed.
1092         * tool/rbinstall.rb (ext-arch): install extra libraries.
1094         * ext/zlib/extconf.rb: install zlib if built.
1096 Sat Sep 24 14:24:55 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
1098         * spec/README: update URL.
1100 Sat Sep 24 11:28:22 2016  Koichi ITO  <koic.ito@gmail.com>
1102         * fix typos, "a" before "Integer" to "an".  [Fix GH-1438]
1104 Sat Sep 24 10:19:41 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1106         * test/misc/test_ruby_mode.rb (assert_indent): since write-region
1107           in Emacs 25.1 no longer displays the "Wrote file" message, shows
1108           the explicit message to check if successfully finished.
1109           [ruby-core:77355] [Bug #12785]
1111         * test/misc/test_ruby_mode.rb (EXPR_SAVE): use a numeric prefix
1112           argument of 0, not to make the previous version into a backup
1113           file, instead of backup-inhibited.
1115         * test/misc/test_ruby_mode.rb (run_emacs): always save the buffer
1116           if modified.
1118 Fri Sep 23 23:57:40 2016  Shugo Maeda  <shugo@ruby-lang.org>
1120         * vm_method.c (make_method_entry_refined): fix wrong use of ||.
1122 Fri Sep 23 21:38:58 2016  Akinori MUSHA  <knu@iDaemons.org>
1124         * tool/mdoc2man.rb (Mdoc2Man#parse_macro): Add support for the
1125           `Lk` macro.
1127         * tool/mdoc2man.rb (Mdoc2Man#shift_arg): A new function to extract
1128           a possibly quoted argument.
1130 Fri Sep 23 20:36:05 2016  Shugo Maeda  <shugo@ruby-lang.org>
1132         * eval.c (rb_mod_refine): refine modules as well.
1133           [ruby-core:76199] [Feature #12534]
1135 Fri Sep 23 20:19:09 2016  Akinori MUSHA  <knu@iDaemons.org>
1137         * man/ruby.1: Update the paragraphs in "Rich Libraries" which
1138           included a dead link.
1140 Fri Sep 23 20:05:27 2016  Akinori MUSHA  <knu@iDaemons.org>
1142         * man/ruby.1, man/erb.1, man/irb.1, man/ri.1: Use the `Lk` macro
1143           for hyperlinks, which has been available since mdocml 1.5.1
1144           (released more than seven years ago).
1146 Fri Sep 23 15:47:04 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1148         * lib/forwardable.rb (_delegator_method): allow private methods to
1149           be delegated, with warnings.  [ruby-core:77341] [Bug #12782]
1151 Fri Sep 23 12:15:29 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1153         * compile.c (iseq_peephole_optimize): enable tail call
1154           optimization inside a conditional block.
1156 Thu Sep 22 13:00:04 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
1158         * gc.c (gc_start_internal): [DOC] methods without arguments
1159           like r56194. [Bug #12777]
1161 Wed Sep 21 17:43:53 2016  NARUSE, Yui  <naruse@ruby-lang.org>
1163         * process.c (InitVM_process): Support CLOCK_MONOTONIC_RAW_APPROX,
1164           CLOCK_UPTIME_RAW, and CLOCK_UPTIME_RAW_APPROX which are introduced
1165           by macOS 10.12.
1167 Wed Sep 21 13:47:33 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1169         * parse.y (brace_body, do_body): preserve cmdarg_stack so that
1170           `do` after cmdarg in a block should be `do_block` and bound to
1171           the outer method.  [ruby-core:72482] [Bug #11873]
1173         * parse.y: `do` after cmdarg in parentheses should be `do_block`
1174           and bound to the outer method.  [ruby-core:72482] [Bug #11873]
1176         * parse.y (brace_body, do_body): extract block bodies.
1178 Tue Sep 20 23:02:50 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1180         * gc.c (gc_start_internal): [DOC] add ObjectSpace.garbage_collect
1181           and fix GC#garbage_collect.  [Bug #12777]
1183 Tue Sep 20 21:24:01 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
1185         * doc/extension.ja.rdoc: translate r56189 (rb_gc_adjust_memory_usage).
1187 Tue Sep 20 17:52:28 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
1189         * gems/bundled_gems: Update rake-11.3.0
1191 Tue Sep 20 16:52:23 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1193         * gc.c (rb_gc_adjust_memory_usage): notify memory usage to the GC
1194           engine by extension libraries, to trigger GC.  [Feature #12690]
1196 Mon Sep 19 17:05:22 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1198         * numeric.c (Init_Numeric), bignum.c (Init_Bignum): deprecate
1199           Fixnum and Bignum.  this may be reverted after previews.
1200           [Feature #12739]
1202 Mon Sep 19 10:36:53 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1204         * enumerator.c (lazy_init_yielder): directly call stored functions.
1205           [Feature #6183]
1207         * enumerator.c (lazy_add_method): create lazy enumerator which
1208           uses lazy_init_yielder().
1210 Sun Sep 18 22:48:54 2016  Kouhei Sutou  <kou@cozmixng.org>
1212         * lib/rss/rss.rb (RSS::BaseModel): Remove needless codes.
1213           [Bug #12773][ruby-dev:49813]
1214           Reported by Kazuhiro NISHIYAMA. Thanks!!!
1216 Sun Sep 18 19:23:47 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
1218         * lib/sync.rb: Fix NameError when error.
1220 Sat Sep 17 22:46:02 2016  Koichi ITO  <koic.ito@gmail.com>
1222         * vm_insnhelper.c (vm_throw_start): Remove too much ";"
1223           [fix GH-1432]
1225 Sat Sep 17 19:19:06 2016  Kazuki Yamaguchi  <k@rhe.jp>
1227         * test/openssl/test_ssl.rb (test_ctx_options): Fix test failure on
1228           Ubuntu 16.04. The fix in r56147 was incomplete. This is a cherry-pick
1229           of the commit b039f3e268c2 at ruby/openssl.
1231 Sat Sep 17 10:49:35 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
1233         * doc/extension.ja.rdoc: translate r56130 (rb_check_arity).
1235 Sat Sep 17 02:40:52 2016  Aaron Patterson <tenderlove@ruby-lang.org>
1237         * ext/objspace/objspace_dump.c: Fix stream processing support for heap
1238           dumps. Full heap dumps should use JSON lines (http://jsonlines.org)
1239           so that we can process very large heaps without loading the entire
1240           heap dump in to memory at once.
1242 Fri Sep 16 22:10:31 2016  Naohisa Goto  <ngotogenome@gmail.com>
1244         * ext/openssl/ossl_ssl.c (ssl_npn_select_cb_common): Fix compile error
1245           with old version of fcc (Fujitsu C Compiler) on Solaris 10.
1246           [Bug #12769] [ruby-dev:49809]
1248 Fri Sep 16 21:28:25 2016  Naohisa Goto  <ngotogenome@gmail.com>
1250         * internal.h (MAYBE_UNUSED): The fallback definition is needed.
1251           Fix compile error with some non-GCC compilers such as
1252           Oracle Solaris Studio 12.3 on Solaris 10.
1253           [Bug #12767] [ruby-dev:49807]
1255         * internal.h (WARN_UNUSED_RESULT): ditto.
1257 Fri Sep 16 21:19:51 2016  Naohisa Goto  <ngotogenome@gmail.com>
1259         * hash.c (each_pair_i_fast): Fix compile error with old version of
1260           fcc on Solaris 10. [Bug #12768] [ruby-dev:49808]
1262 Fri Sep 16 19:46:05 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
1264         * win32/Makefile.sub (config.h): fixed compile error with VC introduced
1265           by previous commit.
1267 Fri Sep 16 14:54:34 2016  URABE Shyouhei  <shyouhei@ruby-lang.org>
1269         * internal.h (WARN_UNUSED_RESULT): moved to configure.in, to
1270           actually check its availability rather to check GCC's version.
1272         * configure.in (WARN_UNUSED_RESULT): moved to here.
1274         * configure.in (RUBY_FUNC_ATTRIBUTE): change function declaration
1275           to return int rather than void, because it makes no sense for a
1276           warn_unused_result attributed function to return void.
1278           Funny thing however is that it also makes no sense for noreturn
1279           attributed function to return int.  So there is a fundamental
1280           conflict between them.  While I tested this, I confirmed both
1281           GCC 6 and Clang 3.8 prefers int over void to correctly detect
1282           necessary attributes under this setup.  Maybe subject to change
1283           in future.
1285         * internal.h (UNINITIALIZED_VAR): renamed to MAYBE_UNUSED, then
1286           moved to configure.in for the same reason we move
1287           WARN_UNUSED_RESULT.
1289         * configure.in (MAYBE_UNUSED): moved to here.
1291         * internal.h (__has_attribute): deleted, because it has no use now.
1293         * string.c (rb_str_enumerate_lines): refactor macro rename.
1295         * string.c (rb_str_enumerate_bytes): ditto.
1297         * string.c (rb_str_enumerate_chars): ditto.
1299         * string.c (rb_str_enumerate_codepoints): ditto.
1301         * thread.c (do_select): ditto.
1303         * vm_backtrace.c (rb_debug_inspector_open): ditto.
1305         * vsnprintf.c (BSD_vfprintf): ditto.
1307 Fri Sep 16 14:35:55 2016  URABE Shyouhei  <shyouhei@ruby-lang.org>
1309         * ChangeLog (add-log-time-format): Not exactly sure when but
1310           recently (25.x maybe), emacs changed its API to take optional
1311           two arguments.  We have to follow that.
1313 Fri Sep 16 06:43:25 2016  Aaron Patterson <tenderlove@ruby-lang.org>
1315         * lib/uri/generic.rb (def check_password): don't include bad password
1316           in URI exception output
1318         * test/uri/test_generic.rb (def test_set_component): test for behavior
1320 Thu Sep 15 21:40:03 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
1322         * doc/extension.ja.rdoc: Fix file name.
1324 Thu Sep 15 00:59:30 2016  NARUSE, Yui  <naruse@ruby-lang.org>
1326         * benchmark/: add vnmakarov's benchmarks around hash [ruby-core:75265]
1328 Wed Sep 14 07:02:31 2016  NARUSE, Yui  <naruse@ruby-lang.org>
1330         * hash.c (each_pair_i_fast): use rb_yield_values2 to avoid var args.
1332 Tue Sep 13 21:32:54 2016  Kazuki Yamaguchi  <k@rhe.jp>
1334         * string.c (STR_HEAP_SIZE, RESIZE_CAPA_TERM, str_new0, rb_str_buf_new,
1335           str_shared_replace, rb_str_init, str_make_independent_expand,
1336           rb_str_resize): Avoid overflow by casting the length to size_t. size_t
1337           should be able to represent LONG_MAX+termlen.
1339         * string.c (rb_str_modify_expand): Check that the new length is in the
1340           range of long before resizing. Also refactor to use RESIZE_CAPA_TERM
1341           macro.
1343         * string.c (str_buf_cat): Fix so that it does not create a negative
1344           length String. Also fix the condition for 'string sizes too big', the
1345           total length can be up to LONG_MAX.
1347         * string.c (rb_str_plus): Check the resulting String length does not
1348           exceed LONG_MAX.
1350         * string.c (rb_str_dump): Fix integer overflow. The dump result will be
1351           longer then the original String.
1353 Tue Sep 13 21:30:53 2016  Kazuki Yamaguchi  <k@rhe.jp>
1355         * gc.c (heap_extend_pages, get_envparam_size, ruby_malloc_size_overflow,
1356           gc_profile_dump_on): Use PRIuSIZE instead of PRIdSIZE as the passed
1357           value is size_t, not ssize_t.
1359         * iseq.c (get_line_info, rb_iseq_disasm_insn): Ditto.
1361         * sprintf.c (rb_str_format): Ditto.
1363         * thread_win32.c (native_thread_create): Ditto.
1365         * vm.c (get_param): Ditto.
1367         * ext/objspace/objspace_dump.c (dump_append_string_content,
1368           dump_object): Ditto.
1370         * ext/socket/raddrinfo.c (host_str, port_str): Ditto.
1372 Tue Sep 13 21:27:35 2016  Kazuki Yamaguchi  <k@rhe.jp>
1374         * string.c (STR_EMBEDDABLE_P): Renamed from STR_EMBEDABLE_P(). And use
1375           it in more places.
1377 Tue Sep 13 21:23:51 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
1379         * README.md: Drop support for BeOS now that Haiku is stable since
1380           2.3.0.
1382         * README.ja.md: ditto.
1384 Tue Sep 13 21:11:56 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1386         * string.c (STR_EMBEDABLE_P): extract the predicate macro to tell
1387           if the given length is capable in an embedded string, and fix
1388           possible integer overflow.
1390 Tue Sep 13 18:37:08 2016  Koichi Sasada  <ko1@atdot.net>
1392         * test/ruby/test_exception.rb: fix thread issues.
1393           * use Queue instead of a local variable for synchronization.
1394           * join created thread to solve leaking threads warning.
1396 Tue Sep 13 16:07:26 2016  Kazuki Yamaguchi  <k@rhe.jp>
1398         * string.c (rb_str_set_len): The buffer overflow check is wrong. The
1399           space for termlen is allocated outside the capacity returned by
1400           rb_str_capacity(). This fixes r41920 ("string.c: multi-byte
1401           terminator", 2013-07-11).  [ruby-core:77257] [Bug #12757]
1403         * test/-ext-/string/test_set_len.rb (test_capacity_equals_to_new_size):
1404           Test for this change. Applying only the test will trigger [BUG].
1406 Tue Sep 13 06:03:34 2016  NARUSE, Yui  <naruse@ruby-lang.org>
1408         * common.mk (benchmark): fix lib path.
1410 Tue Sep 13 00:39:47 2016  Aaron Patterson <tenderlove@ruby-lang.org>
1412         * class.c (singleton_class_of): Copy superclass serial number to
1413           singleton class.  This improves singleton class IMC hit rates.
1414           [Feature #12364] [ruby-core:75425]
1416 Mon Sep 12 13:46:23 2016  Anton Davydov  <mail@davydovanton.com>
1418         * lib/uri/mailto.rb: Removed needless `return` and use `.` instead of `::`
1419           with class method.
1420         * test/uri/test_mailto.rb: Added tests for coverage.
1421           [fix GH-1426][Misc #12750][ruby-core:77242]
1423 Sun Sep 11 21:30:26 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
1425         * NEWS: News about Module.used_modules.
1427 Sun Sep 11 19:06:49 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
1429         * win32/win32.c (rb_w32_write_console): should set written length as the
1430           return value.  [Bug #12748] [ruby-dev:49786]
1432 Fri Sep  9 22:43:29 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
1434         * gems/bundled_gems: sort lines.
1436 Fri Sep  9 17:59:46 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1438         * thread.c (rb_threadptr_raise): set cause from the called thread,
1439           but not from the thread to be interrupted.
1440           [ruby-core:77222] [Bug #12741]
1442 Fri Sep  9 13:50:05 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1444         * doc/extension.rdoc, doc/extension.ja.rdoc: fix file name.
1445           pointed out by @takkanm in the RubyKaigi talk.
1447 Fri Sep  9 13:14:53 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
1449         * News: Announcing update to Unicode version 9.0.0 [ci skip]
1451 Fri Sep  9 10:10:00 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1453         * variable.c (rb_const_search): warn with the actual class/module
1454           name which defines the deprecated constant.
1456         * variable.c (rb_const_search): raise with the actual class/module
1457           name which defines the private constant.
1459 Thu Sep  8 17:47:18 2016  Kazuki Tsujimoto  <kazuki@callcc.net>
1461         * array.c (flatten): use rb_obj_class instead of rb_class_of
1462           because rb_class_of may return a singleton class.
1463           [ruby-dev:49781] [Bug #12738]
1465 Thu Sep  8 17:40:15 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1467         * tool/rbinstall.rb (gem): use the bindir of each gemspec instead
1468           of hardcoded 'bin', since rdoc 5.0.0 overrides it.
1470 Thu Sep  8 16:47:03 2016  Shugo Maeda  <shugo@ruby-lang.org>
1472         * eval.c (rb_mod_s_used_modules): rename Module.used_refinements to
1473           Module.used_modules.  [Feature #7418] [ruby-core:49805]
1475 Thu Sep  8 14:21:48 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
1477         * ext/psych/psych.gemspec, lib/rdoc/rdoc.gemspec: Use file list instead of
1478           git output. It shows warning message when invoke `make install`
1479           [Bug #12736][ruby-dev:49778]
1481 Thu Sep  8 13:41:46 2016  Shugo Maeda  <shugo@ruby-lang.org>
1483         * insns.def (setclassvariable, setconstant): warn when self is a
1484           refinement.  [Bug #10103] [ruby-core:64143]
1486 Thu Sep  8 11:29:00 2016  Kenta Murata  <mrkn@mrkn.jp>
1488         * hash.c (rb_hash_transform_values, rb_hash_transform_values_bang):
1489           Rename map_v to transform_values.
1490           [Feature #12512] [ruby-core:76095]
1492         * test/ruby/test_hash.rb: ditto.
1494 Thu Sep  8 10:08:35 2016  Kazuki Yamaguchi  <k@rhe.jp>
1496         * {ext,test}/openssl: Import Ruby/OpenSSL 2.0.0.beta.2. The full commit
1497           history since v2.0.0.beta.1 can be found at:
1498           https://github.com/ruby/openssl/compare/v2.0.0.beta.1...v2.0.0.beta.2
1500 Thu Sep  8 07:23:34 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
1502         * lib/rdoc/*, test/rdoc/*: Update rdoc-5.0.0.beta2
1503           Fixed ri parse defect with left-hand matched classes.
1504           https://github.com/rdoc/rdoc/pull/420
1506 Thu Sep  8 01:12:47 2016  Shugo Maeda  <shugo@ruby-lang.org>
1508         * eval.c (rb_mod_s_used_refinements): new method
1509           Module.used_refinements.  based on the patch by Charlie
1510           Somerville.  [Feature #7418] [ruby-core:49805]
1512 Wed Sep  7 17:50:38 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1514         * include/ruby/util.h (setenv): remove POSIX-noncompliant
1515           definition with 2 arguments.
1517 Wed Sep  7 17:35:37 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
1519         * unicode/8.0.0/casefold.h, name2ctype.h, unicode/data/8.0.0:
1520           removing directories/files related to Unicode version 8.0.0
1522 Wed Sep  7 17:21:55 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1524         * lib/timeout.rb (Timeout#timeout): add custom error message
1525           argument.  [Feature #11650]
1527 Wed Sep  7 17:13:05 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
1529         * common.mk: Updated Unicode version to 9.0.0 [Feature #12513]
1531         * unicode/9.0.0/casefold.h, name2ctype.h, unicode/data/9.0.0:
1532           new directories/files for Unicode version 9.0.0
1534 Wed Sep  7 16:00:45 2016  Tanaka Akira  <akr@fsij.org>
1536         * lib/open-uri.rb: Allow http to https redirection.
1537           Note that https to http is still forbidden.
1538           [ruby-core:20485] [Feature #859] by Roman Shterenzon.
1540 Wed Sep  7 14:56:59 2016  Kazuki Tsujimoto  <kazuki@callcc.net>
1542         * lib/csv.rb (CSV::{Row,Table}#{each,delete_if}): returns an enumerator
1543           if no block is given. [ruby-core:75346] [Feature #12347]
1545         * test/csv/test_row.rb: add test for above.
1547         * test/csv/test_table.rb: ditto.
1549 Wed Sep  7 14:50:01 2016  Kazuki Tsujimoto  <kazuki@callcc.net>
1551         * gems/bundled_gems: update to power_assert 0.3.1.
1553 Wed Sep  7 12:16:09 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
1555         * ext/psych/*, test/psych/*: Update psych-2.1.1
1556           This version fixed following pull requests.
1557           https://github.com/tenderlove/psych/pull/284
1558           https://github.com/tenderlove/psych/pull/276
1560 Wed Sep  7 11:51:06 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
1562         * lib/rdoc/*, test/rdoc/*: Update rdoc-5.0.0.beta1
1563           This version is mostly same as r56072. It contains to remove code
1564           for Ruby 1.8
1566 Tue Sep  6 09:23:06 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
1568         * lib/rdoc/rdoc.gemspec: partly reverted for default gem installer.
1569           upstream configuration is not working on ruby core repository.
1571 Mon Sep  5 19:35:22 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
1573         * lib/rdoc/*, test/rdoc/*: Update rdoc/rdoc master(f191513)
1574           https://github.com/rdoc/rdoc/blob/master/History.rdoc#423--2016--
1575           https://github.com/rdoc/rdoc/blob/master/History.rdoc#422--2016-02-09
1577 Sun Sep  4 00:17:55 2016  Sho Hashimoto  <sho-h@ruby-lang.org>
1579         * proc.c: [DOC] fix Object#define_singleton_method and
1580           main.define_method return value. [ci skip]
1582 Sat Sep  3 11:28:29 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1584         * thread_pthread.c (ruby_init_stack): check stack bounds even if
1585           get_main_stack succeeded, on the "co-routine" case.
1586           https://github.com/ruby/ruby/commit/53953ee#commitcomment-18887413
1588 Fri Sep  2 16:06:59 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1590         * internal.h (MEMO_V1_SET, MEMO_V2_SET): fix typos.  use the macro
1591           parameter, not the local variable.
1593 Fri Sep  2 00:55:11 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1595         * ext/extmk.rb (timestamp_file): move extmk.rb specific tricks
1596           from lib/mkmf.rb.  keep RUBYCOMMONDIR prefix not to conflict
1597           with a timestamp file in the toplevel.
1599 Thu Sep  1 14:24:16 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1601         * ext/extmk.rb (gems): move dirty hacks for bundled gems from
1602           mkmf.rb.
1604         * lib/mkmf.rb (create_makefile): yield all configuration strings.
1606 Wed Aug 31 17:39:19 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1608         * ext/extmk.rb (create_makefile): make gem.build_complete file
1609           under TARGET_SO_DIR and install it only when the gem build
1610           succeeded.  [ruby-core:77057] [Bug #12681]
1612 Wed Aug 31 15:36:10 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1614         * ext/extmk.rb: move TARGET_SO_DIR stuffs to mkmf.rb.
1616         * lib/mkmf.rb (create_makefile): create target shared object files
1617           under $(TARGET_SO_DIR) which is $sodir if it is defined with
1618           $extout.  [ruby-core:77058] [Bug #12681]
1620 Wed Aug 31 01:56:55 2016  Yuichiro Kaneko  <yui-knk@ruby-lang.org>
1622         * doc/extension.ja.rdoc: [DOC] Fix a typo. [ci skip]
1624 Wed Aug 31 00:52:23 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1626         * ext/extmk.rb: make the gems target directory under the expanded
1627           name.  [ruby-core:77102] [Bug #12714]
1629 Tue Aug 30 15:27:27 2016  Kouhei Yanagita  <yanagi@shakenbu.org>
1631         * ext/json/lib/json/add/ostruct.rb (OpenStruct.json_create):
1632           Correct documentation, fix the name of values.  [Fix GH-1421]
1634 Tue Aug 30 14:53:34 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
1636         * io.c (nogvl_fsync, nogvl_fdatasync): on Windows, just ignore if the
1637           fd is associated to non-disk device.  if call fsync and/or fdatasync
1638           with such fds, it causes Errno::EBADF exception and the behavior is
1639           incompatible with ruby 2.1 and earlier unintentionally introduced.
1641 Tue Aug 30 03:38:35 2016  NARUSE, Yui  <naruse@ruby-lang.org>
1643         * vm_dump.c (backtrace): use rip in the saved context for the case
1644           the SIGSEGV is received when the process is in userland.
1645           Note that ip in the stack should be used if the signal is received
1646           when it is in kernel (when it is calling syscall) [Bug #12711]
1648 Sat Aug 27 10:26:14 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1650         * array.c (rb_ary_concat_multi): take multiple arguments.  based
1651           on the patch by Satoru Horie.  [Feature #12333]
1653         * string.c (rb_str_concat_multi, rb_str_prepend_multi): ditto.
1655 Thu Aug 25 00:42:31 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1657         * win32/file.c (append_wstr): remove a codepage argument, and use
1658           INVALID_CODE_PAGE for conversion by econv.
1660         * win32/file.c (append_wstr): exclude the terminator from the
1661           result length when input len == -1.
1663 Wed Aug 24 22:41:30 2016  Kouhei Sutou  <kou@cozmixng.org>
1665         * gc.c (gc_reset_malloc_info): Remove too much ";".
1667 Wed Aug 24 20:07:57 2016  Naohisa Goto  <ngotogenome@gmail.com>
1669         * include/ruby/defines.h (ALWAYS_INLINE): Add alternative definition.
1670           Fix compile error with compilers that do not have force inline
1671           attribute, including old version of fcc on Solaris 10.
1672           [ruby-dev:49773] [Bug #12701]
1674 Wed Aug 24 16:56:26 2016  NARUSE, Yui  <naruse@ruby-lang.org>
1676         * .gdbinit: follow r55766's VM change.
1678 Wed Aug 24 12:57:56 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1680         * object.c (rb_mod_initialize, rb_class_initialize): [DOC] these
1681           methods do not invoke module_eval/class_eval, just eval the
1682           given block under the new module/class but sharing the context
1683           with the surrounding scope like those methods.
1684           [ruby-core:77023] [Bug #12696]
1686 Tue Aug 23 10:34:40 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1688         * test/psych/test_psych.rb (test_load_file_with_fallback): fix
1689           Tempfile leak.  https://github.com/tenderlove/psych/pull/288
1691 Tue Aug 23 10:15:01 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1693         * string.c (rb_fs_setter): check and convert $; value at
1694           assignment.
1696 Tue Aug 23 02:09:57 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1698         * string.c (rb_str_split_m): show $; name in error message when it
1699           is a wrong object.
1701 Mon Aug 22 16:29:52 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1703         * lib/csv.rb (CSV#shift): store partial quoted strings in an array
1704           and join at last, to improve performance with very long quoted
1705           lines.  [ruby-core:76987] [Bug #12691]
1707 Mon Aug 22 14:35:57 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1709         * man/irb.1: remove useless -width option.
1710           [ruby-dev:49767] [Bug #12692]
1712 Mon Aug 22 09:02:56 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1714         * iseq.c (Init_ISeq): undefine allocator of InstructionSequence,
1715           to get rid of segfaults at method call on uninitialized object.
1717 Sat Aug 21 05:47:00 2016  Kenta Murata  <mrkn@mrkn.jp>
1719         * enum.c (enum_sort): prevent wasteful array duplication.
1721 Sat Aug 20 11:20:32 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1723         * rubystub.c: generalize win32/stub.c.
1725 Fri Aug 19 11:39:06 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1727         * parse.y (primary): allow parenthesised statement as a method
1728           argument.  [Feature #12686]
1730 Fri Aug 19 09:12:45 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1732         * vm.c (vm_set_main_stack): TOPLEVEL_BINDING must be built.
1733           http://www.viva64.com/en/b/0414/#ID0EQ1CI  [ruby-core:76973]
1735 Fri Aug 19 01:00:53 2016  Yuichiro Kaneko  <yui-knk@ruby-lang.org>
1737         * proc.c (mnew_missing): Remove an unused argument.
1738           After r51126 rid is not used.
1740 Thu Aug 18 09:26:52 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
1742         * gems/bundled_gems: bump to test-unit-3.2.1
1744 Thu Aug 18 02:36:26 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1746         * tool/rbinstall.rb: skip gems which failed to build extensions.
1747           [ruby-dev:49764] [Bug #12683]
1749 Wed Aug 17 23:35:12 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1751         * gems/bundled_gems (tk): bump up to 0.1.1.
1753 Wed Aug 17 23:14:42 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1755         * ext/extmk.rb: build gem extensions into separate directories
1757         * tool/rbinstall.rb: install pre-built gem extension files gem
1758           extension directories.  [ruby-core:76931] [Bug #12681]
1760 Tue Aug 16 21:04:30 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1762         * common.mk (UNICODE_HDR_DIR): separate unicode header files from
1763           unicode data files.  [ruby-core:76879] [Bug #12677]
1765 Tue Aug 16 11:17:51 2016  Koichi ITO  <koic.ito@gmail.com>
1767         * lib/net/http/header.rb: Fix typo. [ci skip][fix GH-1407]
1768         * transcode.c: ditto.
1770 Tue Aug 16 11:02:31 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1772         * tool/make-snapshot (package): save generated header files from
1773           unicode data.  [ruby-core:76879] [Bug #12677]
1775 Mon Aug 15 20:31:34 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1777         * node.c (dump_array): show nd_alen field in NODE_ARRAY only in
1778           the first node.  it is nd_end in the rest nodes.
1780 Mon Aug 15 16:41:32 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
1782         * appveyor.yml: Update libressl version to 2.3.7.
1784 Mon Aug 15 11:46:50 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1786         * ext/extmk.rb (extmake): extension libraries in gems cannot link
1787           statically.
1789 Sun Aug 14 22:35:40 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1791         * id_table.c (hash_table_extend): should not shrink the table than
1792           the previous capacity.  [ruby-core:76534] [Bug #12614]
1794 Sun Aug 14 18:51:24 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1796         * gems/bundled_gems: add gemified tk 0.1.0.
1797           this needs `extract-gems` to build.
1799 Sun Aug 14 14:54:14 2016  Kouhei Sutou  <kou@cozmixng.org>
1801         * object.c (InitVM_Object): Update referenced document path.
1803 Sat Aug 13 23:08:01 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1805         * numeric.c (num_funcall0, num_funcall1): get rid of infinite
1806           recursion in fallback methods of Numeric.
1808 Sat Aug 13 11:10:08 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1810         * parse.y (command_asgn, arg): fix syntax errors with chained
1811           assignment with op assign.  [Bug #12669]
1813 Sat Aug 13 10:52:19 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1815         * parse.y (stmt, arg): rescue modifier in command op assignment
1816           should be limited to rhs only.  [ruby-core:75621] [Bug #12402]
1818 Sat Aug 13 07:51:40 2016  Masaki Suketa <masaki.suketa@nifty.ne.jp>
1820         * ext/win32ole/win32ole.c (ole_val2variant): fix integer conversion in
1821           cygwin64.
1823 Fri Aug 12 21:05:19 2016  NARUSE, Yui  <naruse@ruby-lang.org>
1825         * lib/webrick/config.rb (WEBrick::Config::General):
1826           disable reverse lookup by default. [ruby-core:45514] [Feature #6559]
1827           Socket.do_not_reverse_lookup is true by default but WEBrick
1828           overwrote it.
1829           patch by Eric Hodel [ruby-core:45527]
1831 Fri Aug 12 12:50:31 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1833         * error.c (rb_syntax_error_append): fix newline in syntax error
1834           message to the beginning, not after file name and line number.
1835           [Feature #11951]
1837 Thu Aug 11 16:24:23 2016  Ferdinand Niedermann  <nerdinand@nerdinand.com>
1839         * compar.c (cmp_clamp): Introduce Comparable#clamp.  [Feature #10594]
1841 Thu Aug 11 03:16:59 2016  Marc-Andre Lafortune  <ruby-core@marc-andre.ca>
1843         * lib/prime.rb: Optimize prime?
1844           Adapted from patch by Jabari Zakiya [#12665]
1846         * test/test_prime.rb: Improve test
1848 Wed Aug 10 22:37:01 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1850         * parse.y (command_rhs, arg_rhs): introduce new rules to reduce
1851           repeated rules with rescue modifier.
1853 Wed Aug 10 17:26:43 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1855         * parse.y (command_asgn): rescue modifier in command assignment
1856           should be limited to rhs only.  [ruby-core:75621] [Bug #12402]
1858 Wed Aug 10 15:35:03 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1860         * ext/win32/resolv/resolv.c: needs windows.h for iphlpapi.h on
1861           cygwin.  [ruby-core:76791] [Bug #12663]
1863         * ext/win32/resolv/resolv.c (w32error_make_error): use
1864           Win32::Resolv::Error, an alias of Win32::Registry::Error.
1866 Tue Aug  9 17:50:00 2016  Kenta Murata  <mrkn@mrkn.jp>
1868         * hash.c (rb_hash_map_v, rb_hash_map_v_bang): implement Hash#map_v and
1869           Hash#map_v! [Feature #12512] [ruby-core:76095]
1871         * test/ruby/test_hash.rb: add tests for above change.
1873 Tue Aug  9 16:09:03 2016  NARUSE, Yui  <naruse@ruby-lang.org>
1875         * vm_insnhelper.c (vm_getivar): use always_inline because
1876           gcc7 doesn't inline this without always_inline.
1878 Tue Aug  9 15:41:24 2016  NARUSE, Yui  <naruse@ruby-lang.org>
1880         * ext/tk: Tk is removed from stdlib.  [Feature #8539]
1881           https://github.com/ruby/tk is the new upstream.
1883 Tue Aug  9 00:12:31 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
1885         * doc/maintainers.rdoc: Remove moved file section.
1887 Mon Aug  8 20:56:46 2016  Masaki Suketa <masaki.suketa@nifty.ne.jp>
1889         * ext/win32ole/sample/excel1.rb, ext/win32ole/sample/excel2.rb,
1890           ext/win32ole/sample/excel3.rb, ext/win32ole/sample/ie.rb,
1891           ext/win32ole/sample/ienavi.rb, ext/win32ole/sample/ienavi2.rb: use
1892           true instead of deprecated TRUE. [ci skip]
1894 Mon Aug  8 12:51:12 2016  Zarko Todorovski <zarko@ca.ibm.com>
1896         * internal.h (RBASIC_CLEAR_CLASS): Reroute ANSI C's strict
1897           aliasing rule.
1898           [ruby-core:74427][Bug #12191][ruby-core:76747][Bug #12657]
1900 Sun Aug  7 18:08:27 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1902         * object.c (InitVM_Object): deprecate toplevel constants TRUE,
1903           FALSE, and NIL.  [Feature #12574]
1905 Sun Aug  7 06:48:21 2016  Eric Wong  <e@80x24.org>
1907         * ext/openssl/ossl_ssl.c (ossl_ssl_write_internal):
1908           avoid undefined behavior
1909         * test/openssl/test_pair.rb (test_write_zero): new test
1910           [ruby-core:76751] [Bug #12660]
1912 Sat Aug  6 09:35:30 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1914         * id_table.h (rb_id_table_iterator_result): add dummy sentinel
1915           member because C standard prohibits a trailing comma.
1917 Sat Aug  6 00:39:44 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1919         * hash.c (env_enc_str_new): make string for an environment
1920           variable name or value.
1922         * hash.c (env_name_new): make environment value string with the
1923           encoding for its name.
1925 Fri Aug  5 23:18:35 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
1927         * hash.c (env_str_new): taint the string.  get rid of a test failure
1928           introduced at r55811.
1930 Fri Aug  5 17:04:02 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1932         * hash.c (w32_getenv): call rb_w32_getenv and rb_w32_ugetenv via
1933           this pointer without further comparisons.
1935 Thu Aug  4 11:54:30 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1937         * hash.c (env_assoc): the encoding of the value should be the
1938           locale, as well as other methods, [], fetch, values, etc.
1940 Wed Aug  3 21:31:23 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1942         * parse.y (reg_fragment_enc_error): compile_error is different
1943           between parser and ripper.  [ruby-core:76397] [Bug #12651]
1945 Wed Aug  3 17:15:06 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1947         * object.c (rb_obj_clone2): restrict freeze option to true other
1948           than false which only has the effect.  [Feature #12300]
1950 Wed Aug  3 10:47:07 2016  Koichi Sasada  <ko1@atdot.net>
1952         * vm_core.h: introduce VM_FRAME_RUBYFRAME_P()
1953           and VM_FRAME_CFRAME_P().
1954           Most of case, RUBY_VM_NORMAL_ISEQ_P() is no
1955           longer needed.
1957         * vm_core.h: introduce rb_obj_is_iseq().
1959         * cont.c, vm.c: VM_FRAME_MAGIC_DUMMY with
1960           VM_FRAME_FLAG_CFRAME.
1962 Wed Aug  3 09:25:16 2016  Koichi Sasada  <ko1@atdot.net>
1964         * vm_core.h: rename macros and make them inline functions.
1966           * rename VM_FRAME_TYPE_FINISH_P() to VM_FRAME_FINISHED_P().
1967           * rename VM_FRAME_TYPE_BMETHOD_P() to VM_FRAME_BMETHOD_P().
1969 Wed Aug 03 09:15:02 2016  Koichi Sasada  <ko1@atdot.net>
1971         * vm_core.h: introduce VM_FRAME_FLAG_CFRAME to represent cfp->iseq
1972           type.
1974 Tue Aug  2 21:42:40 2016  Chia-sheng Chen  <qitar888@gmail.com>
1976         * math.c (tanh): make faster by the extract form if three
1977           hyperbolic functions are unavailable.  [Feature #12647]
1979 Tue Aug  2 12:37:00 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1981         * ext/socket/option.c, ext/socket/rubysocket.h (inet_ntop): share
1982           the fallback definition.  [ruby-core:76646] [Bug #12645]
1984 Tue Aug  2 04:07:29 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
1986         * win32/win32.c (set_pioinfo_extra): use more reliable way to search
1987           the position of pioinfo of VC14, and also support debug library of it.
1988           patched by davispuh AT gmail.com
1989           [ruby-core:76644] [Bug #12644]
1990           this fixes also [Bug #12631]
1992 Mon Aug  1 21:39:52 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
1994         * ext/extmk.rb: [EXPERIMENTAL] build extension libraries in
1995           extracted gems.
1997 Mon Aug  1 16:07:18 2016  URABE Shyouhei  <shyouhei@ruby-lang.org>
1999         * include/ruby/ruby.h (struct RStruct): no longer.
2001         * internal.h (struct RStruct): moved here.
2003         * struct.c (rb_struct_ptr): a compensation function for the lack
2004           of RSTRUCT_PTR.  But now that we have RSTRUCT_GET/SET, that must
2005           not be used anyway.  I mark this deprecated.  Dont use it.
2007 Mon Aug  1 14:50:06 2016  Jeremy Evans <code@jeremyevans.net>
2009         * object.c (rb_obj_clone2): Allow Object#clone to take freeze:
2010           false keyword argument to not freeze the clone.
2011           [ruby-core:75017][Feature #12300]
2013         * test/ruby/test_object.rb (TestObject): test for it.
2015 Mon Aug  1 12:16:19 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
2017         * ext/json/*, test/json/json_parser_test.rb: Update json-2.0.2.
2019 Sun Jul 31 16:17:23 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2021         * ext/win32/resolv/resolv.c (get_dns_server_list): [Win32] get DNS
2022           servers only for connected network devices by GetNetworkParams
2023           API.  [Bug #12604]
2025 Sat Jul 30 12:13:26 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2027         * string.c (String#downcase), NEWS: Mentioned that case mapping for all
2028           of ISO-8859-1~16 is now supported. [ci skip]
2030 Sat Jul 30 12:00:01 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2032         * enc/iso_8859_2.c, test/ruby/enc/test_case_comprehensive.rb:
2033           Implement non-ASCII case conversion for ISO-8859-2, by Yushiro Ishii.
2035 Fri Jul 29 20:57:12 2016  chuanshuo  <lilijreey@126.com>
2037         * *.c: rename rb_funcall2 to rb_funcallv, except for extensions
2038           which are/will be/may be gems.  [Fix GH-1406]
2040 Fri Jul 29 10:51:34 2016  Koichi Sasada  <ko1@atdot.net>
2042         * proc.c (env_write): remove unused function.
2044 Fri Jul 29 10:49:52 2016  Koichi Sasada  <ko1@atdot.net>
2046         * vm_core.h (VM_LOCAL_P): should return an integer value.
2047           reported at
2048           http://d.hatena.ne.jp/nagachika/20160728/ruby_trunk_changes_55764_55770
2050 Fri Jul 29 04:23:08 2016  Koichi Sasada  <ko1@atdot.net>
2052         * vm_core.h (VM_ENV_LOCAL_P): return truthy (0 or not) value.
2054         * vm.c (rb_vm_make_proc_lambda): use VM_ENV_ESCAPED_P() macro.
2056 Fri Jul 29 03:49:04 2016  Koichi Sasada  <ko1@atdot.net>
2058         * vm.c, internal.h: remove RubyVM::Env class and all of env objects
2059           are imemo objects (imemo_env).
2061         * NEWS: describe this change. I believe nobody touch these objects
2062           because there are no method defined.
2064         * vm_core.h: remove the following definitions.
2065           * rb_cEnv decl.
2066           * GetEnvPtr() because Env is no longer T_DATA object.
2068         * vm_core.h (rb_env_t): fix layout for imemo values.
2070         * vm_core.h (vm_assert_env): added.
2072         * vm_core.h (vm_env_new): added.
2074 Thu Jul 28 19:53:21 2016  Koichi Sasada  <ko1@atdot.net>
2076         * vm_core.h: revisit the structure of frame, block and env.
2077           [Bug #12628]
2079           This patch introduce many changes.
2081           * Introduce concept of "Block Handler (BH)" to represent
2082             passed blocks.
2084           * move rb_control_frame_t::flag to ep[0] (as a special local
2085             variable). This flags represents not only frame type, but also
2086             env flags such as escaped.
2088           * rename `rb_block_t` to `struct rb_block`.
2090           * Make Proc, Binding and RubyVM::Env objects wb-protected.
2092           Check [Bug #12628] for more details.
2094 Thu Jul 28 15:05:12 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2096         * include/ruby/ruby.h (ruby_fl_type): use __extension__ to get rid
2097           of pedantic warning against RUBY_FL_USER19.
2098           https://github.com/skylightio/skylight-ruby/issues/64
2100         * include/ruby/ruby.h (rb_mul_size_overflow): ditto for use of
2101           int128.
2103 Wed Jul 27 10:32:59 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2105         * enc/windows_1253.c: Remove dead code found by Coverity Scan.
2107 Tue Jul 26 22:43:36 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2109         * gc.c (run_finalizer): make saved running finalizer state
2110           volatile to ensure not to be clobbered by longjmp.
2112 Tue Jul 26 19:26:00 2016  Koichi Sasada  <ko1@atdot.net>
2114         * vm_insnhelper.c: introduce rb_vm_pop_frame() and use it
2115           instead of setting rb_thread_t::cfp directly.
2117         * vm_insnhelper.c (vm_pop_frame): return the result of
2118           finish frame or not.
2120 Tue Jul 26 19:06:39 2016  Koichi Sasada  <ko1@atdot.net>
2122         * gc.c (rb_raw_obj_info): support to show Proc obj.
2124 Tue Jul 26 18:55:55 2016  Koichi Sasada  <ko1@atdot.net>
2126         * gc.c (gc_mark): add `inline' explicitly.
2127           I expected to inline this function implicitly at the loop
2128           (ex: marking T_ARRAY objects) but sometimes it remains as
2129           normal call.
2131 Tue Jul 26 16:33:16 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2133         * enc/windows_1257.c, test/ruby/enc/test_case_comprehensive.rb:
2134           Implement non-ASCII case conversion for Windows-1257, by Sho Koike.
2136 Tue Jul 26 16:19:41 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2138         * enc/windows_1250.c, test/ruby/enc/test_case_comprehensive.rb:
2139           Implement non-ASCII case conversion for Windows-1250, by Sho Koike.
2141         * ChangeLog: Fixed order of previous two entries.
2143 Tue Jul 26 15:54:17 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2145         * enc/windows_1253.c, test/ruby/enc/test_case_comprehensive.rb:
2146           Implement non-ASCII case conversion for Windows-1253, by Takumi Koyama.
2148 Tue Jul 26 15:30:37 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2150         * enc/windows_1251.c, test/ruby/enc/test_case_comprehensive.rb:
2151           Implement non-ASCII case conversion for Windows-1251, by Shunsuke Sato.
2153 Tue Jul 26 13:04:59 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2155         * test/ruby/enc/test_case_comprehensive.rb: Add explicit skip test for
2156           availability of Unicode data files.
2158 Mon Jul 25 21:33:13 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2160         * range.c (check_step_domain): check step argument domain by <=>
2161           method, instead of < and >.
2163 Mon Jul 25 21:11:32 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
2165         * doc/maintainers.rdoc: fix filenames.
2167 Mon Jul 25 16:59:00 2016  Koichi Sasada  <ko1@atdot.net>
2169         * debug.c (ruby_debug_printf): use rb_raw_obj_info()
2170           instead of rb_inspect() because it is more robust way
2171           to see object internal.
2173 Sun Jul 24 16:33:13 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2175         * regenc.h/c, include/ruby/oniguruma.h, enc/ascii.c, big5.c, cp949.c,
2176           emacs_mule.c, euc_jp.c, euc_kr.c, euc_tw.c, gb18030.c, gbk.c,
2177           iso_8859_1|2|3|4|5|6|7|8|9|10|11|13|14|15|16.c, koi8_r.c, koi8_u.c,
2178           shift_jis.c, unicode.c, us_ascii.c, utf_16|32be|le.c, utf_8.c,
2179           windows_1250|51|52|53|54|57.c, windows_31j.c, unicode.c:
2180           Remove conditional compilation macro ONIG_CASE_MAPPING. [Feature #12386].
2182 Sun Jul 24 12:53:42 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
2184         * doc/maintainers.rdoc: xmlrpc is bundled gem from Ruby 2.4.
2186 Sun Jul 24 12:07:39 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
2188         * doc/maintainers.rdoc: Update OpenSSL maintainer.
2190 Sat Jul 23 22:43:41 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2192         * internal.h (Check_Type): inline check for the object type.
2194 Sat Jul 23 04:06:04 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2196         * include/ruby/ruby.h (RTEST, NIL_P): use RUBY prefixed name in
2197           macros.
2199 Sat Jul 23 01:41:29 2016  Eric Wong  <e@80x24.org>
2201         * lib/webrick/httpservlet/cgihandler.rb (do_GET): delete HTTP_PROXY
2202         * test/webrick/test_cgi.rb (test_cgi_env): new test
2203         * test/webrick/webrick.cgi (do_GET): new endpoint to dump env
2204           [ruby-core:76511] [Bug #12610]
2206 Fri Jul 22 19:55:20 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2208         * vm.c (vm_set_main_stack): remove unnecessary check.  toplevel
2209           binding must be initialized.  [Bug #12611] (N1)
2211         * win32/win32.c (w32_symlink): fix return type.  [Bug #12611] (N3)
2213         * string.c (rb_str_split_m): simplify the condition.
2214           [Bug #12611](N4)
2216 Fri Jul 22 17:13:37 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2218         * string.c (String#dump): Change escaping of non-ASCII characters in
2219           UTF-8 to use upper-case four-digit hexadecimal escapes without braces
2220           where possible [Feature #12419].
2222         * test/ruby/test_string.rb (test_dump): Add tests for above.
2224 Fri Jul 22 10:35:35 2016  Kouhei Sutou  <kou@cozmixng.org>
2226         * lib/rexml/attribute.rb (REXML::Attribute#to_string): Fix wrong
2227           entry reference name of double quote.
2228           [Bug #12609][ruby-core:76509]
2229           Patch by Joseph Marrero. Thanks!!!
2231 Fri Jul 22 10:32:13 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2233         * template/unicode_norm_gen.tmpl: Remove
2234           UnicodeNormalize::UNICODE_VERSION at origin [Feature #12546].
2236 Fri Jul 22 09:23:51 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
2238         * LEGAL: Added entries for files under the USD license.
2239           [Bug #12598][ruby-core:76428][ci skip]
2241 Fri Jul 22 09:19:57 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
2243         * LEGAL: Added entry for `lib/rdoc/generator/template/darkfish/css/fonts.css`
2244           [Misc #12550][ruby-core:76255][ci skip]
2246 Fri Jul 22 06:28:32 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2248         * gc.c (run_finalizer): push and exec tag just once, instead of
2249           protecting for each finalizer.
2251         * gc.c (gc_start_internal, rb_gc_start): set finalizing flag
2252           whenever calling deferred finalizers not to recurse.
2254 Thu Jul 21 22:26:40 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
2256         * missing/strl{cat,cpy}.c: Update latest upstream files.
2257           [Misc #12205][ruby-core:74487]
2258         * LEGAL: Update license for missing/strl{cat,cpy}.c.
2260 Thu Jul 21 21:53:30 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
2262         * LEGAL: added file list with Public domain license.
2263           [ruby-core:76254][Bug #12549]
2265 Wed Jul 20 17:44:07 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2267         * enumerator.c (lazy_uniq): new method Enumerator::Lazy#uniq.
2268           [Feature #11090]
2270         * enum.c (enum_uniq): new method Enumerable#uniq.
2271           [Feature #11090]
2273 Wed Jul 20 17:35:23 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2275         * hash.c (rb_hash_add_new_element): add new element or do nothing
2276           if it is contained already.
2278         * array.c (ary_add_hash, ary_add_hash_by): use
2279           rb_hash_add_new_element.
2281 Tue Jul 19 18:21:17 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2283         * lib/unicode_normalize/tables.rb: Remove
2284           UnicodeNormalize::UNICODE_VERSION (#12546).
2286 Tue Jul 19 15:38:59 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2288         * variable.c (rb_local_constants_i): exclude private constants
2289           when excluding inherited constants too.  [Bug #12345]
2291 Sun Jul 17 23:42:00 2016  Kenta Murata  <mrkn@mrkn.jp>
2293         * numeric.c (num_finite_p, num_infinite_p): Add Numeric#finite? and
2294           Numeric#infinite?  [Feature #12039] [ruby-core:73618]
2296         * complex.c (rb_complex_finite_p): Add Complex#finite?
2298         * complex.c (rb_complex_infinite_p): Add Complex#infinite?
2300         * test/ruby/test_bignum.rb: Add test for Integer#finite? and
2301           Integer#infinite?
2303         * test/ruby/test_fixnum.rb: ditto.
2305         * test/ruby/test_rational.rb: Add test for Rational#finite? and
2306           Rational#infinite?
2308         * test/ruby/test_complex.rb: Add test for Complex#finite? and
2309           Complex#infinite?
2311 Sun Jul 17 20:59:24 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2313         * common.mk, enc/depend (casefold.h, name2ctype.h): move to
2314           unicode data directory per version.
2316 Sat Jul 16 06:26:00 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2318         * common.mk, enc/Makefile.in: moved timestamp files for
2319           directories under the specific directory, to get rid of match
2320           with files under the source directory.
2322 Fri Jul 15 22:05:13 2016  Naohisa Goto  <ngotogenome@gmail.com>
2324         * string.c (str_buf_cat): Fix potential integer overflow of capa.
2325           In addition, termlen is used instead of +1.
2327 Fri Jul 15 21:30:38 2016  Naohisa Goto  <ngotogenome@gmail.com>
2329         * string.c (str_buf_cat): Fix capa size for embed string.
2330           Fix bug in r55547. [Bug #12536]
2332 Fri Jul 15 18:13:15 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
2334         * gems/bundled_gems: update latest gems.
2336 Fri Jul 15 17:08:57 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2338         * util.c (ruby_strtod): do not underflow only by preceding zeros,
2339           which may be canceled out by the exponent.
2340           http://twitter.com/kazuho/status/753829998767714305
2342 Fri Jul 15 09:53:48 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2344         * enc/unicode/case-folding.rb, tool/enc-unicode.rb: check if
2345           Unicode versions are consistent with each other.
2347 Fri Jul 15 08:25:15 2016  Jeremy Evans <code@jeremyevans.net>
2349         * string.c (STR_BUF_MIN_SIZE): reduce from 128 to 127
2350           [ruby-core:76371] [Feature #12025]
2351         * string.c (rb_str_buf_new): adjust for above reduction
2353 Thu Jul 14 17:26:00 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2355         * Makefile.in (enc/unicode/name2ctype.h): remove stale recipe,
2356           which did not support Unicode age properties.
2358         * common.mk (enc/unicode/name2ctype.h): update by --header option
2359           of tool/enc-unicode.rb.  enc/unicode/name2ctype.kwd file has not
2360           been used.
2362         * common.mk (enc/unicode/name2ctype.kwd): rule to create from
2363           Unicode data files, used only when the target does not exist.
2365 Thu Jul 14 13:10:54 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2367         * ext/json/lib/json/ext: remove stale directory.  bundled
2368           extension libraries are placed under the directory for each
2369           architectures, but not mixed with plain text script libraries.
2371 Thu Jul 14 12:48:47 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
2373         * ext/json/**/*.rb: merge original files from upstream repository.
2374           It only fixes styles of frozen string literal.
2376 Wed Jul 13 22:23:03 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
2378         * test/json/json_common_interface_test.rb: use assert_raise instead of
2379           assert_raises.
2381 Wed Jul 13 22:14:23 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
2383         * test/lib/test/unit.rb: added test files with `_test` suffix for json
2384           upstream.
2385         * test/json: merge original test files from json upstream.
2387 Wed Jul 13 18:09:42 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2389         * enc/iso_8859_9.c, test/ruby/enc/test_case_comprehensive.rb:
2390           Implement non-ASCII case conversion for ISO-8859-9, by Kazuki Iijima.
2392         * enc/iso_8859_9.c: Exclude dotless i/I with dot from case-insensitive
2393           matching because they are not a case pair.
2395         * test/ruby/enc/test_iso_8859.rb: Make test coverage for ISO-8859-9
2396           a bit more complete.
2398 Wed Jul 13 17:21:24 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2400         * enc/windows_1252.c, test/ruby/enc/test_case_comprehensive.rb:
2401           Implement non-ASCII case conversion for Windows-1252, by Serina Tai.
2403         * test/ruby/enc/test_case_comprehensive.rb: Fix order of encodings.
2405 Wed Jul 13 16:19:14 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2407         * enc/iso_8859_7.c, test/ruby/enc/test_case_comprehensive.rb:
2408           Implement non-ASCII case conversion for ISO-8859-7, by Kosuke Kurihara.
2410         * test/ruby/enc/test_case_comprehensive.rb: Fix order of encodings.
2412 Wed Jul 13 16:08:08 2016  Koichi Sasada  <ko1@atdot.net>
2414         * gc.c (gc_mark_roots): should mark the VM object itself to mark
2415           singleton class of the VM object.
2416           Before this patch, we only set mark bit for the VM object and
2417           invoke mark function separately.
2418           [Bug #12583]
2420         * test/ruby/test_gc.rb: add a test.
2422 Wed Jul 13 15:59:59 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
2424         * math.c (_USE_MATH_DEFINES): it must be set before including internal.h
2425           because internal.h includes ruby.h, ruby.h includes win32.h, and
2426           win32.h includes system's math.h.
2427           this change is to get rid of a compiler warning (redefinition of
2428           a macro) introduced at r55641.
2430 Wed Jul 13 15:19:03 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2432         * enc/iso_8859_1.c, enc/iso_8859_4.c: Avoid setting modification flag if
2433           there is no modification.
2435 Wed Jul 13 14:40:04 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2437         * enc/iso_8859_5.c, test/ruby/enc/test_case_comprehensive.rb:
2438           Implement non-ASCII case conversion for ISO-8859-5, by Masaru Onodera.
2440         * test/ruby/enc/test_case_comprehensive.rb: Fix order of encodings.
2442 Wed Jul 13 14:28:33 2016  NARUSE, Yui  <naruse@ruby-lang.org>
2444         * math.c (rb_math_sqrt): r55646 must use f_signbit.
2446 Wed Jul 13 14:22:50 2016  Koichi Sasada  <ko1@atdot.net>
2448         * iseq.c (Init_ISeq): undef ISeq.translate and ISeq.load_iseq
2449           to prevent calling super classes' methods.
2451           Without this patch, you can write workaround like:
2453             class << RubyVM::InstructionSequence
2454               def translate; end
2455               undef translate
2456             end
2458         * test/ruby/test_iseq.rb: add a test.
2460 Wed Jul 13 14:16:03 2016  Koichi Sasada  <ko1@atdot.net>
2462         * vm_method.c (method_entry_get_without_cache): check
2463           undefined method even if ruby_running is FALSE.
2465           We haven't call "undef"ed methods before ruby_running.
2466           So that this issue does not make troubles.
2468 Wed Jul 13 14:15:22 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2470         * enc/windows_1254.c: Adjust variable/macro names.
2472 Wed Jul 13 13:19:12 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2474         * enc/iso_8859_9.c, enc/windows_1254.c: Split Windows-1254 from
2475           ISO-8859-9 to be able to implement different case conversions.
2477 Wed Jul 13 13:08:30 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2479         * enc/iso_8859_7.c, enc/windows_1253.c: Split Windows-1253 from
2480           ISO-8859-7 to be able to implement different case conversions.
2482 Wed Jul 13 10:50:12 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2484         * enc/iso_8859_13.c, test/ruby/enc/test_case_comprehensive.rb:
2485           Implement non-ASCII case conversion for ISO-8859-13, by Kanon Shindo.
2487 Wed Jul 13 10:31:39 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2489         * enc/iso_8859_13.c, enc/windows_1257.c: Split Windows-1257 from
2490           ISO-8859-13 to be able to implement different case conversions.
2492 Wed Jul 13 09:02:30 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2494         * enc/iso_8859_3.c, test/ruby/enc/test_case_comprehensive.rb:
2495           Implement non-ASCII case conversion for ISO-8859-3, by Takuya Miyamoto.
2497         * test/ruby/enc/test_case_comprehensive.rb: Extend special treatment
2498           for Turkic.
2500         * enc/iso_8859_3.c: Exclude dotless i/I with dot from case-insensitive
2501           matching because they are not a case pair.
2503 Wed Jul 13 08:40:21 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2505         * test/ruby/enc/test_iso_8859.rb: Exclude dotless i/I with dot from
2506           case-insensitive matching because they are not a case pair.
2508 Tue Jul 12 23:13:43 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2510         * math.c (rb_math_sqrt): [EXPERIMENTAL] move Complex sqrt support
2511           from mathn.rb.
2513 Tue Jul 12 01:25:09 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
2515         * configure.in, lib/mkmf.rb, win32/Makefile.sub (CSRCFLAG): make the
2516           compiler option replacable in Makefile.
2518         * win32/Makefile.sub (OUTFLAG, COUTFLAG): ditto.
2520         * win32/Makeile.sub, win32/setup.mak (CC): should not append `-nologo`
2521           option forcely.
2523 Mon Jul 11 18:05:40 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2525         * enc/iso_8859_1.c: Moved test for lowercase characters without
2526           uppercase equivalent.
2528 Mon Jul 11 17:49:25 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2530         * enc/iso_8859_4.c, enc/iso_8859_10.c, enc/iso_8859_14.c,
2531           enc/iso_8859_15.c, enc/iso_8859_16.c: Replace case-by-case code with
2532           lookup in ENC_ISO_8859_xx_TO_LOWER_CASE table.
2534 Mon Jul 11 16:00:56 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2536         * ext/stringio/stringio.c (strio_each, strio_readlines): convert
2537           arguments just once before reading, instead of conversions for
2538           each lines, as r55603.
2540 Sun Jul 10 19:53:41 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2542         * enc/iso_8859_10.c, test/ruby/enc/test_case_comprehensive.rb:
2543           Implement non-ASCII case conversion for ISO-8859-10, by Toya Hosokawa.
2545 Sun Jul 10 19:33:47 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2547         * test/ruby/enc/test_case_comprehensive.rb: Changed testing logic to
2548           catch unintended modifications of characters that do not have a case
2549           equivalent in the respective encoding.
2550         * enc/iso_8859_1.c, enc/iso_8859_15.c: Fixed unintended modifications of
2551           micro sign and y with diaeresis.
2553 Sun Jul 10 17:05:36 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2555         * enc/iso_8859_4.c, test/ruby/enc/test_case_comprehensive.rb:
2556           Implement non-ASCII case conversion for ISO-8859-4, by Kotaro Yoshida.
2558 Sun Jul 10 16:17:47 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2560         * test/ruby/enc/test_case_comprehensive.rb: Fixed a comment
2561           (message belongs to last commit). [ci skip]
2563 Sun Jul 10 14:27:25 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2565         * util.c (ruby_dtoa): [EXPERIMENTAL] adjust the case that the
2566           Float value is close to the exact but unrepresentable middle
2567           value of two values in the given precision, as r55604.
2569 Sun Jul 10 08:57:20 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
2571         * thread.c: Fixed implicit conversion error with Apple clang-800.0.31
2573 Sat Jul  9 12:43:09 2016  Shugo Maeda  <shugo@ruby-lang.org>
2575         * lib/getoptlong.rb: use false instead of FALSE.
2577 Fri Jul  8 21:49:28 2016  Naohisa Goto  <ngotogenome@gmail.com>
2579         * thread.c (rb_wait_for_single_fd): Clean up fds.revents every time
2580           before calling ppoll(2). [Bug #12575] [ruby-dev:49725]
2582 Fri Jul  8 14:16:48 2016  Shugo Maeda  <shugo@ruby-lang.org>
2584         * vm_args.c (vm_caller_setup_arg_block): call rb_sym_to_proc()
2585           directly to reduce method dispatch overhead.
2587 Fri Jul  8 08:43:31 2016  Shugo Maeda  <shugo@ruby-lang.org>
2589         * io.c (rb_io_s_read): add description of pipes to the documentation
2590           of IO.read.
2592 Fri Jul  8 03:54:22 2016  NARUSE, Yui  <naruse@ruby-lang.org>
2594         * vm_args.c (setup_parameters_complex): don't raise ArgumentError
2595           if an array is given for instance_exec with optional argument.
2596           [ruby-core:76300] [Bug #12568]
2597           https://github.com/rails/rails/pull/25699
2599 Fri Jul  8 00:47:36 2016  NARUSE, Yui  <naruse@ruby-lang.org>
2601         * vm_eval.c (yield_under): change prototype to get argc/argv.
2603         * vm_eval.c (specific_eval): change for above.
2605         * vm_eval.c (rb_obj_instance_exec): avoid object allocation.
2607         * vm_eval.c (rb_mod_module_exec): ditto.
2609 Thu Jul  7 20:08:37 2016  Shugo Maeda  <shugo@ruby-lang.org>
2611         * vm_args.c (vm_caller_setup_arg_block): disable symbol block
2612           argument optimization when tail call optimization is enabled,
2613           in order to avoid SEGV.  [ruby-core:76288] [Bug #12565]
2615 Thu Jul  7 16:37:53 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2617         * numeric.c (flo_round): [EXPERIMENTAL] adjust the case that the
2618           receiver is close to the exact but unrepresentable middle value
2619           of two values in the given precision.
2620           http://d.hatena.ne.jp/hnw/20160702
2622 Thu Jul  7 16:31:07 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2624         * io.c (rb_io_s_foreach, rb_io_s_readlines): convert arguments
2625           just once before reading, instead of conversions for each lines.
2627 Wed Jul  6 19:54:17 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2629         * enc/iso_8859_14.c, test/ruby/enc/test_case_comprehensive.rb:
2630           Implement non-ASCII case conversion for ISO-8859-14, by Yutaro Tada.
2632 Wed Jul  6 19:24:48 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2634         * enc/iso_8859_1.c, enc/iso_8859_15.c, enc/iso_8859_16.c:
2635           Align indenting to onigmo convention.
2637 Wed Jul  6 18:59:13 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2639         * enc/iso_8859_15.c, test/ruby/enc/test_case_comprehensive.rb:
2640           Implement non-ASCII case conversion for ISO-8859-15, by Maho Harada.
2642 Wed Jul  6 18:34:21 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2644         * enc/iso_8859_16.c, test/ruby/enc/test_case_comprehensive.rb:
2645           Implement non-ASCII case conversion for ISO-8859-16, by Satoshi Kayama.
2647 Wed Jul  6 14:44:56 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2649         * lib/mkmf.rb (create_makefile): store $headers in LOCAL_HDRS for
2650           depend files.
2652         * ext/digest/digest_conf.rb (digest_conf): add implementation
2653           specific headers to $header.
2655         * ext/digest/{md5,rmd160,sha1,sha2}/depend: add LOCAL_HDRS to the
2656           dependencies.
2658 Wed Jul  6 08:59:35 2016  Shugo Maeda  <shugo@ruby-lang.org>
2660         * lib/net/http/generic_request.rb (write_header): A Request-Line must
2661           not contain CR or LF.
2663 Wed Jul  6 07:11:27 2016  Shugo Maeda  <shugo@ruby-lang.org>
2665         * lib/net/ftp.rb (putline): raise an ArgumentError when
2666           CR or LF is included in a line.
2668 Tue Jul  5 20:49:30 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
2670         * ext/json/*, test/json/*: Update json-2.0.1.
2671           Changes of 2.0.0: https://github.com/flori/json/blob/f679ebd0c69a94e3e70a897ac9a229f5779c2ee1/CHANGES.md#2015-09-11-200
2672           Changes of 2.0.1: https://github.com/flori/json/blob/f679ebd0c69a94e3e70a897ac9a229f5779c2ee1/CHANGES.md#2016-07-01-201
2673           [Feature #12542][ruby-dev:49706][fix GH-1395]
2675 Tue Jul  5 19:39:49 2016  Naohisa Goto  <ngotogenome@gmail.com>
2677         * string.c (rb_str_change_terminator_length): New function to change
2678           termlen and resize heap for the terminator. This is split from
2679           rb_str_fill_terminator (str_fill_term) because filling terminator
2680           and changing terminator length are different things. [Bug #12536]
2682         * internal.h: declaration for rb_str_change_terminator_length.
2684         * string.c (str_fill_term): Simplify only to zero-fill the terminator.
2685           For non-shared strings, it assumes that (capa + termlen) bytes of
2686           heap is allocated. This partially reverts r55557.
2688         * encoding.c (rb_enc_associate_index): rb_str_change_terminator_length
2689           is used, and it should be called whenever the termlen is changed.
2691         * string.c (str_capacity): New static function to return capacity
2692           of a string with the given termlen, because the termlen may
2693           sometimes be different from TERM_LEN(str) especially during
2694           changing termlen or filling terminator with specific termlen.
2696         * string.c (rb_str_capacity): Use str_capacity.
2698 Tue Jul  5 11:07:14 2016  NARUSE, Yui  <naruse@ruby-lang.org>
2700         * pack.c (pack_pack): use union instead of bare variable to ease
2701           optimizations and avoid assigning x87 floating point number.
2702           [ruby-core:74496] [Bug #12209]
2704         * pack.c (pack_unpack): ditto.
2706 Mon Jul  4 13:56:34 2016  NARUSE, Yui  <naruse@ruby-lang.org>
2708         * process.c: define sig_t if not exist.
2709           at least Solaris 10 and 11 doesn't have sig_t.
2711 Mon Jul  4 13:08:48 2016  NARUSE, Yui  <naruse@ruby-lang.org>
2713         * random.c (random_ulong_limited): avoid left shift count >= width of
2714           type on 32bit environment.
2716 Sun Jul  3 18:51:42 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
2718         * test/ruby/enc/test_case_comprehensive.rb, test_regex_casefold.rb,
2719           test/test_unicode_normalize.rb: Replace UNICODE_VERSION from
2720           UnicodeNormalize with RbConfig::CONFIG['UNICODE_VERSION'] from
2721           feature 12460.
2723 Sun Jul  3 06:04:09 2016  Eric Wong  <e@80x24.org>
2725         * process.c (disable_child_handler_fork_child): simplify
2726           [ruby-core:75781] [Misc #12439]
2728 Sun Jul  3 05:25:46 2016  Eric Wong  <e@80x24.org>
2730         * tool/asm_parse.rb: add description
2731         * tool/change_maker.rb: ditto
2732         * tool/downloader.rb: ditto
2733         * tool/eval.rb: ditto
2734         * tool/expand-config.rb: ditto
2735         * tool/extlibs.rb: ditto
2736         * tool/fake.rb: ditto
2737         * tool/file2lastrev.rb: ditto
2738         * tool/gem-unpack.rb: ditto
2739         * tool/gen_dummy_probes.rb: ditto
2740         * tool/gen_ruby_tapset.rb: ditto
2741         * tool/generic_erb.rb: ditto
2742         * tool/id2token.rb: ditto
2743         * tool/ifchange: ditto
2744         * tool/insns2vm.rb: ditto
2745         * tool/instruction.rb: ditto
2746         * tool/jisx0208.rb: ditto
2747         * tool/merger.rb: ditto
2748         * tool/mkrunnable.rb: ditto
2749         * tool/node_name.rb: ditto
2750         * tool/parse.rb: ditto
2751         * tool/rbinstall.rb: ditto
2752         * tool/rbuninstall.rb: ditto
2753         * tool/rmdirs: ditto
2754         * tool/runruby.rb: ditto
2755         * tool/strip-rdoc.rb: ditto
2756         * tool/vcs.rb: ditto
2757         * tool/vtlh.rb: ditto
2758         * tool/ytab.sed: ditto
2759         * tool/enc-unicode.rb: fix typo
2760         * tool/mk_call_iseq_optimized.rb: ditto
2761         * tool/update-deps: ditto
2762           [ruby-core:76215] [Bug #12539]
2763           by Noah Gibbs <the.codefolio.guy@gmail.com>
2765 Sat Jul  2 18:04:24 2016  NARUSE, Yui  <naruse@ruby-lang.org>
2767         * lib/uri/mailto.rb (initialize): RFC3986_Parser#split sets opaque
2768           only if the URI has path-rootless, not path-empty.
2769           [ruby-core:76055] [Bug #12498]
2770           patched by Chris Heisterkamp <cheister@squareup.com>
2772 Sat Jul  2 04:26:14 2016  NARUSE, Yui  <naruse@ruby-lang.org>
2774         * regcomp.c (noname_disable_map): don't optimize out group 0
2775           Ruby's Regexp doesn't allow normal numbered groups if the regexp
2776           has named groups. On such case it optimizes out related NT_ENCLOSE.
2777           But even on the case it can use \g<0>.
2778           This fix not to remove NT_ENCLOSE whose regnum is 0.
2779           [ruby-core:75828] [Bug #12454]
2781 Sat Jul  2 03:09:27 2016  Naohisa Goto  <ngotogenome@gmail.com>
2783         * string.c: Partially reverts r55547 and r55555.
2784           ChangeLog about the reverted changes are also deleted in this file.
2785           [Bug #12536] [ruby-dev:49699] [ruby-dev:49702]
2787 Sat Jul  2 02:22:22 2016  Naohisa Goto  <ngotogenome@gmail.com>
2789         * string.c (str_fill_term): When termlen increases, re-allocation
2790           of memory for termlen should always be needed.
2791           In this fix, if possible, decrease capa instead of realloc.
2792           [Bug #12536] [ruby-dev:49699]
2794 Fri Jul  1 20:20:20 2016  Naohisa Goto  <ngotogenome@gmail.com>
2796         * string.c: Specify termlen as far as possible.
2797           Additional fix for [Bug #12536] [ruby-dev:49699].
2799         * string.c (str_new_static): Specify termlen from the given encoding
2800           when creating a new String object is needed.
2802         * string.c (rb_tainted_str_new_with_enc): New function to create a
2803           tainted String object with the given encoding. This means that
2804           the termlen is correctly specified. Currently static function.
2805           The function name might be renamed to rb_tainted_enc_str_new
2806           or rb_enc_tainted_str_new.
2808         * string.c (rb_external_str_new_with_enc): Use encoding by using the
2809           above rb_tainted_str_new_with_enc().
2811 Fri Jul  1 19:38:57 2016  Naohisa Goto  <ngotogenome@gmail.com>
2813         * test/fiddle/test_pointer.rb (test_to_str, test_to_s, test_aref_aset):
2814           Attempt to use independent strings for destructive tests that
2815           directly modify values on memory by using Fiddle::Pointer.
2816           [Bug #12537] [ruby-dev:49700]
2818 Fri Jul  1 18:20:00 2016  NARUSE, Yui  <naruse@ruby-lang.org>
2820         * .gdbinit (rb_ps_thread): show the detail of cfunc in ruby level
2821           backtrace.
2823 Fri Jul  1 13:26:39 2016  Naohisa Goto  <ngotogenome@gmail.com>
2825         * string.c (rb_str_subseq, str_substr): When RSTRING_EMBED_LEN_MAX
2826           is used, TERM_LEN(str) should be considered with it because
2827           embedded strings are also processed by TERM_FILL.
2828           Additional fix for [Bug #12536] [ruby-dev:49699].
2830 Fri Jul  1 12:11:01 2016  NARUSE, Yui  <naruse@ruby-lang.org>
2832         * .gdbinit (rb_count_objects): added gdb version of count_objects().
2834 Fri Jul  1 04:32:52 2016  NARUSE, Yui  <naruse@ruby-lang.org>
2836         * .gdbinit (rb_ps_thread): show ruby level backtrace.
2837           Usually you can call `rb_ps` to show ruby level backtraces
2838           for all living threads.
2839           Note that it can call with core file like `gcore <pid>`
2840           and `gdb ruby core.<pid>`.
2842 Thu Jun 30 19:15:13 2016  Naohisa Goto  <ngotogenome@gmail.com>
2844         * string.c: Fix memory corruptions when using UTF-16/32 strings.
2845           [Bug #12536] [ruby-dev:49699]
2847         * string.c (rb_str_new_with_class): Use TERM_LEN of the "obj".
2849         * string.c (rb_str_plus, rb_str_justify): Use str_new0 which is aware
2850           of termlen.
2852         * string.c (str_shared_replace): Copy +termlen bytes instead of +1.
2854         * string.c (rb_str_times): termlen should not be included in capa.
2856         * string.c (RESIZE_CAPA_TERM): When using RSTRING_EMBED_LEN_MAX,
2857           termlen should be counted with it because embedded strings are
2858           also processed by TERM_FILL.
2860         * string.c (rb_str_capacity, str_shared_replace, str_buf_cat): ditto.
2862         * string.c (rb_str_drop_bytes, rb_str_setbyte, str_byte_substr): ditto.
2864 Wed Jun 29 22:24:37 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
2866         * ext/psych/lib/psych_jars.rb: removed needless file required to JRuby.
2868 Wed Jun 29 22:21:38 2016  Kazuki Yamaguchi  <k@rhe.jp>
2870         * ext/openssl/ossl_ocsp.c: The "reuse" behavior of d2i_ functions does
2871           not work well with OpenSSL 1.0.0t. So avoid it.
2873 Wed Jun 29 15:18:28 2016  NARUSE, Yui  <naruse@ruby-lang.org>
2875         * insns.def (opt_succ): optimize like r55515. (but this argument is
2876           constant)
2878 Wed Jun 29 12:41:58 2016  Shugo Maeda  <shugo@ruby-lang.org>
2880         * test/ruby/test_refinement.rb: skip
2881           test_prepend_after_refine_wb_miss on ARM or MIPS.
2882           [ruby-core:76031] [Bug #12491]
2884 Wed Jun 29 08:45:53 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2886         * proc.c (passed_block): convert passed block symbol to proc.
2887           based on the patch by Daisuke Sato in [ruby-dev:49695].
2888           [Bug #12531]
2890 Wed Jun 29 03:34:41 2016  NARUSE, Yui  <naruse@ruby-lang.org>
2892         * bignum.c (rb_big2ulong): the old logic seems to try to avoid
2893           calculating `-(long)(num-1)-1` if `num` is not LONG_MIN. (Note that
2894           `-LONG_MIN` may be larger than LONG_MAX) But C compilers can
2895           optimize it into single NEG instruction.
2896           Therefore those two conditions can be single if-body.
2898         * bignum.c (rb_big2long): ditto.
2900         * bignum.c (rb_big2ull): ditto.
2902         * bignum.c (rb_big2ll): ditto.
2904 Tue Jun 28 22:55:00 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2906         * lib/pstore.rb (PStore::CHECKSUM_ALGO): extract the algorithm for
2907           checksum, instead of qualified names for each times.
2909 Tue Jun 28 22:29:36 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2911         * bootstraptest/runner.rb: do not use safe navigation operator.
2912           this runner may run on older ruby.  partially revert r53110
2913           (GH-1142 patched by @mlarraz).
2915 Tue Jun 28 22:09:09 2016  Akio Tajima <artonx@yahoo.co.jp>
2917         * lib/fileutils.rb: rescue Errno:EACCES for chown.
2918           [Bug #12520]
2920 Tue Jun 28 18:38:09 2016  Naohisa Goto  <ngotogenome@gmail.com>
2922         * ext/digest/md5/md5ossl.h: Remove excess semicolons.
2923           Suppress warning on Solaris with Oracle Solaris Studio 12.
2924           [ruby-dev:49692] [Bug #12524]
2926         * ext/digest/md5/md5cc.h: ditto.
2927         * ext/digest/sha1/sha1cc.h: ditto.
2928         * ext/digest/sha1/sha1ossl.h: ditto.
2929         * ext/digest/sha2/sha2cc.h: ditto.
2930         * ext/digest/sha2/sha2ossl.h: ditto.
2931         * ext/openssl/ossl_pkey_rsa.c: ditto.
2933 Tue Jun 28 15:56:48 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2935         * test/ruby/enc/test_case_comprehensive.rb: noting to test if
2936           Unicode data files are available.
2937           [ruby-core:76160] [Bug #12433]
2939         * test/test_unicode_normalize.rb: ditto.
2941 Tue Jun 28 15:20:18 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2943         * lib/net/http.rb (Net::HTTP#proxy_uri): cache the case no proxy
2944           is used.
2946 Tue Jun 28 09:56:29 2016  Stefan Schussler  <mail@stefanschuessler.de>
2948         * object.c (rb_mod_eqq): [DOC] Fix typo in RDoc.  [Fix GH-1393]
2950 Tue Jun 28 02:41:32 2016  NARUSE, Yui  <naruse@ruby-lang.org>
2952         * insns.def (opt_plus): use `- 1` instead of `& (~1)` to allow
2953           compilers to use x86 LEA instruction (3 operand).
2954           Even if 3 operand LEA's latency is 3 cycle after SandyBridge,
2955           it reduces code size and can be faster because of super scalar.
2957         * insns.def (opt_plus): calculate and use rb_int2big.
2958           On positive Fixnum overflow, `recv - 1 + obj` doesn't carry
2959           because recv's msb and obj's msb are 0, and resulted msb is 1.
2960           Therefore simply rshift and cast as signed long works fine.
2961           On negative Fixnum overflow, it will carry because both arguments'
2962           msb are 1, and resulted msb is also 1.
2963           In this case it needs to restore carried sign bit after rshift.
2965 Mon Jun 27 16:58:32 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2967         * lib/fileutils.rb (FileUtils#install): accecpt symbolic mode, as
2968           well as chmod.
2970         * lib/fileutils.rb (FileUtils#install): add owner and group
2971           options.
2973 Mon Jun 27 08:56:55 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2975         * compile.c (ADD_TRACE): ignore trace instruction on non-positive
2976           line.
2978         * parse.y (coverage): get rid of ArgumentError when the starting
2979           line number is not positive.  [ruby-core:76141] [Bug #12517]
2981 Sun Jun 26 10:20:25 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2983         * ext/win32/lib/Win32API.rb (Win32API#initialize): Cygwin
2984           2.5.2-1 (perhaps) seems to no longer append ".dll" suffix
2985           implicitly.
2987         * ext/win32/lib/win32/resolv.rb (Win32::Resolv): ditto.  Fix the
2988           error reported by yamataka AT u08.itscom.net in
2989           [ruby-list:50339], and pointed out and patched by cerberus AT
2990           m3.kcn.ne.jp in [ruby-list:50341].
2992 Sat Jun 25 10:07:52 2016  Kazuki Yamaguchi  <k@rhe.jp>
2994         * test/openssl/test_ocsp.rb: Ignore errors caused by bugs that exist in
2995           LibreSSL >= 2.3.1.
2997 Sat Jun 25 02:33:33 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
2999         * vm_method.c (vm_respond_to): try method_missing if respond_to?
3000           is undefined, as if it is the default definition.
3001           [ruby-core:75377] [Bug #12353]
3003 Fri Jun 24 17:04:21 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
3005         * ext/psych/*, test/psych/*: Update psych 2.1.0
3006           This version fixed [Bug #11988][ruby-core:72850]
3008 Fri Jun 24 13:12:41 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
3010         * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*:
3011           Update rubygems 2.6.5 and 2.6.6.
3012           Release note of 2.6.5: https://github.com/rubygems/rubygems/commit/656f5d94dc888d78d0d00f3598a4fa37391aac80
3013           Release note of 2.6.6: https://github.com/rubygems/rubygems/commit/ccb9c3300c063f5b5656669972d24a10ef8afbf5
3015 Fri Jun 24 09:17:15 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3017         * common.mk (lib/unicode_normalize/tables.rb): should not depend
3018           on Unicode data files unless ALWAYS_UPDATE_UNICODE=yes, to get
3019           rid of downloading Unicode data unnecessary.  [ruby-dev:49681]
3021         * common.mk (enc/unicode/casefold.h): update Unicode files in a
3022           sub-make, not to let the header depend on the files always.
3024         * enc/unicode/case-folding.rb: if gperf is not usable, assume the
3025           existing file is OK.
3027 Tue Jun 21 19:44:54 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3029         * test/ruby/enc/test_regex_casefold.rb: Add Windows-1251, KOI8-R, and
3030           KOI8-U to encodings; definitely removed EUC-JP.
3032 Tue Jun 21 19:32:23 2016  Mark St.Godard  <markstgodard@gmail.com>
3034         * lib/webrick/httprequest.rb (setup_forwarded_info): Use the first
3035           value in X-Forwarded-Proto, if header contains multiple comma
3036           separated values.  Some middlewares may add these values to the
3037           list, not replacing.  [Fix GH-1386]
3039 Tue Jun 21 17:17:42 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3041         * test/ruby/test_io.rb: Skip test_readpartial_with_not_empty_buffer,
3042           test_read_buffer_error, test_read_unlocktmp_ensure,
3043           test_readpartial_unlocktmp_ensure, and
3044           test_sysread_unlocktmp_ensure on cygwin,
3045           because these tests repeatedly hang. This makes test_io.rb
3046           complete in finite time on cygwin.
3048         * ChangeLog: Fix test_in.rb -> test_io.rb (two instances).
3050 Tue Jun 21 16:38:14 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3052         * string.c (rb_str_casemap): do not put code with side effects
3053           inside RSTRING_PTR() macro which evaluates the argument multiple
3054           times.
3056 Tue Jun 21 16:13:45 2016  NARUSE, Yui  <naruse@ruby-lang.org>
3058         * string.c (rb_str_casemap): fix memory leak.
3060 Tue Jun 21 16:12:21 2016  NARUSE, Yui  <naruse@ruby-lang.org>
3062         * string.c (rb_str_casemap): int is too small for string size.
3064 Tue Jun 21 15:42:22 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3066         * test/ruby/test_io.rb: Skip test_read_buffer_error on cygwin,
3067           because this test repeatedly hangs.
3069 Tue Jun 21 15:35:14 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3071         * LEGAL: Added filenames and copyrights for some files in
3072           enc/trans/JIS.
3074 Tue Jun 21 00:56:47 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3076         * win32/win32.c (get_special_folder): fix calling convention of
3077           SHGetPathFromIDListEx, which should be WINAPI.  pointed out by
3078           @arton at http://twitter.com/arton/status/744884064277016576
3080 Tue Jun 21 00:22:02 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3082         * configure.in, include/ruby/defines.h (RUBY_USE_SETJMPEX):
3083           include setjmpex.h only when using setjmpex() for RUBY_SETJMP.
3084           the header of mingw32 overrides setjmp() by setjmpex().
3086 Mon Jun 20 18:39:16 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3088         * test/ruby/test_io.rb: Skip test_open_fifo_does_not_block_other_threads
3089           on cygwin. Fifos seem to work okay in cygwin, but this test repeatedly
3090           hangs.
3092 Mon Jun 20 13:35:06 2016  Shugo Maeda  <shugo@ruby-lang.org>
3094         * vm.c (invoke_bmethod, invoke_block_from_c_0): revert r52104
3095           partially to avoid "self has wrong type to call super in this
3096           context" errors.
3097           [ruby-core:72724] [Bug #11954]
3099 Mon Jun 20 12:53:38 2016  Kazuki Yamaguchi  <k@rhe.jp>
3101         * test/rubygems/test_gem_remote_fetcher.rb: OpenSSL::PKey::DH#priv_key=
3102           is not defined when ext/openssl is built with OpenSSL 1.1.0.
3103           https://github.com/rubygems/rubygems/pull/1648
3104           [ruby-core:75225] [Feature #12324]
3106 Sun Jun 19 21:25:43 2016  Kazuki Yamaguchi  <k@rhe.jp>
3108         * ext/openssl/ossl_ocsp.c: Add OCSP::SingleResponse that represents an
3109           OCSP SingleResponse structure. Also add two new methods #responses
3110           and #find_response to OCSP::BasicResponse. A BasicResponse has one or
3111           more SingleResponse. We have OCSP::BasicResponse#status that returns
3112           them as an array of arrays, each containing the content of a
3113           SingleResponse, but this is not useful. When validating an OCSP
3114           response, we need to look into the each SingleResponse and check their
3115           validity but it is not simple. For example, when validating for a
3116           certificate 'cert', the code would be like:
3118             # certid_target is an OpenSSL::OCSP::CertificateId for cert
3119             basic = res.basic
3120             result = basic.status.any? do |ary|
3121               ary[0].cmp(certid_target) &&
3122                 ary[4] <= Time.now && (!ary[5] || Time.now <= ary[5])
3123             end
3125           Adding OCSP::SingleResponse at the same time allows exposing
3126           OCSP_check_validity(). With this, the code above can be rewritten as:
3128             basic = res.basic
3129             single = basic.find_response(certid_target)
3130             result = single.check_validity
3132         * test/openssl/test_ocsp.rb: Test this.
3134 Sun Jun 19 18:40:19 2016  Kazuki Yamaguchi  <k@rhe.jp>
3136         * ext/openssl/ossl_ocsp.c (ossl_ocspbres_add_status): Allow specifying
3137           the times (thisUpdate, nextUpdate and revocationTime) with Time
3138           objects. Currently they accepts only relative seconds from the current
3139           time. This is inconvenience, especially for revocationTime. When
3140           Integer is passed, they are still treated as relative times. Since the
3141           type check is currently done with rb_Integer(), this is a slightly
3142           incompatible change. Hope no one passes a relative time as String or
3143           Time object...
3144           Also, allow passing nil as nextUpdate. It is optional.
3146         * ext/openssl/ruby_missing.h: Define RB_INTEGER_TYPE_P() if not defined.
3147           openssl gem will be released before Ruby 2.4.0.
3149 Sun Jun 19 18:39:38 2016  Kazuki Yamaguchi  <k@rhe.jp>
3151         * ext/openssl/ossl_ocsp.c: Implement OCSP::{CertificateId,Request,
3152           BasicResponse,Response}#initialize_copy.
3153           [ruby-core:75504] [Bug #12381]
3155         * test/openssl/test_ocsp.rb: Test them.
3157 Sun Jun 19 18:29:50 2016  Kazuki Yamaguchi  <k@rhe.jp>
3159         * ext/openssl/ossl_pkey_dh.c, ext/openssl/ossl_pkey_dsa.c,
3160           ext/openssl/ossl_pkey_ec.c, ext/openssl/ossl_pkey_rsa.c: Implement
3161           initialize_copy method for OpenSSL::PKey::*.
3162           [ruby-core:75504] [Bug #12381]
3164         * test/openssl/test_pkey_dh.rb, test/openssl/test_pkey_dsa.rb,
3165           test/openssl/test_pkey_ec.rb, test/openssl/test_pkey_rsa.rb: Test they
3166           actually copy the OpenSSL objects, and modifications to cloned object
3167           don't affect the original object.
3169 Sun Jun 19 16:55:16 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3171         * test/ruby/test_dir_m17n.rb: Skip tests with non-UTF-8 encodings
3172           on cygwin. Cygwin can use the Unicode PUA (private use area) to store
3173           bytes from non-UTF-8 filenames (see
3174           https://cygwin.com/cygwin-ug-net/using-specialnames.html#pathnames-specialchars),
3175           but we are not supporting this. [Bug #12443]
3177 Sun Jun 19 15:01:18 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3179         * localeinit.c: Fix filesystem encoding for cygwin to UTF-8 (see
3180           https://cygwin.com/cygwin-ug-net/using-specialnames.html#pathnames-unusual)
3182 Sun Jun 19 14:31:07 2016  Kazuki Yamaguchi  <k@rhe.jp>
3184         * ext/openssl/ossl_pkey.h, ext/openssl/ossl_pkey_dh.c,
3185           ext/openssl/ossl_pkey_dsa.c, ext/openssl/ossl_pkey_rsa.c: A few days
3186           ago, OpenSSL changed {DH,DSA,RSA}_get0_*() to take const BIGNUM **.
3187           https://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=fd809cfdbd6e32b6b67b68c59f6d55fbed7a9327
3188           [ruby-core:75225] [Feature #12324]
3190 Sun Jun 19 11:19:43 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3192         * variable.c (rb_path_to_class): consider the string length
3193           instead of a terminator.
3195         * variable.c (rb_path_to_class): search the constant at once
3196           instead of checking if defined and then getting it.
3198 Sat Jun 18 14:01:40 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
3200         * test/rubygems/test_gem_installer.rb: Fixed broken test with extension
3201           build. https://github.com/rubygems/rubygems/pull/1645
3203 Sat Jun 18 13:59:54 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
3205         * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems
3206           HEAD(2c6d256). It contains to update vendored Molinillo to 0.5.0.
3207           https://github.com/rubygems/rubygems/pull/1638
3209 Sat Jun 18 10:13:37 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3211         * common.mk (build-ext), ext/extmk.rb: use variable EXTENCS
3212           different than ENCOBJS, to get rid of circular dependency.
3213           build libencs when linking encodings statically.
3214           [ruby-core:75618] [Bug #12401]
3216 Sat Jun 18 08:52:46 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3218         * ext/stringio/stringio.c (strio_getline): fix pointer index
3219           overflow.  reported by Guido Vranken <guido AT guidovranken.nl>.
3221 Thu Jun 16 16:35:35 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3223         * class.c (Init_class_hierarchy): prevent rb_cObject which is the
3224           class tree root, from GC.  [ruby-dev:49666] [Bug #12492]
3226 Thu Jun 16 12:17:52 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3228         * string.c (tr_trans): adjust buffer size by processed and rest
3229           lengths, instead of doubling repeatedly.
3231 Thu Jun 16 11:15:25 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3233         * string.c (tr_trans): consider terminator length and fix heap
3234           overflow.  reported by Guido Vranken <guido AT guidovranken.nl>.
3236 Thu Jun 16 00:02:32 2016  Kazuki Yamaguchi  <k@rhe.jp>
3238         * ext/openssl/ossl_ocsp.c (ossl_ocspreq_verify, ossl_ocspbres_verify):
3239           Use ossl_clear_error() so that they don't print warnings to stderr and
3240           leak errors in the OpenSSL error queue. Also, check the return value
3241           of OCSP_*_verify() correctly. They can return -1 on verification
3242           failure.
3244 Wed Jun 15 19:52:23 2016  Kazuki Yamaguchi  <k@rhe.jp>
3246         * ext/openssl/ossl_ocsp.c (ossl_ocspreq_sign, ossl_ocspbres_sign): Allow
3247           specifying hash algorithm used in signing. They are hard coded to use
3248           SHA-1.
3249           Based on a patch provided by Tim Shirley <tidoublemy@gmail.com>.
3250           [ruby-core:70915] [Feature #11552] [GH ruby/openssl#28]
3252         * test/openssl/test_ocsp.rb: Test sign-verify works.
3254 Wed Jun 15 01:46:16 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3256         * numeric.c: [DOC] fix rdoc directive, and an example of negative
3257           value.  [ruby-core:76025] [Bug #12487]
3259 Wed Jun 15 01:44:42 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3261         * tool/mkconfig.rb: provide Unicode Version information as
3262           RbConfig::CONFIG['UNICODE_VERSION'].
3263           [ruby-core:75845] [Feature #12460]
3265 Wed Jun 15 00:01:18 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
3267         * test/ruby/enc/test_case_comprehensive.rb
3268           (TestComprehensiveCaseFold::read_data): use \A and \z instead of
3269           ^ and $ in regexp.
3271 Tue Jun 14 23:43:00 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3273         * include/ruby/backward.h (rb_cFixnum, rb_cBignum): remove the
3274           backward compatibility macros, to fail incompatible extension
3275           libraries early.  [Bug #12427]
3277 Tue Jun 14 22:22:07 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3279         * strftime.c (rb_strftime_with_timespec): limit the result string
3280           size by the format length, to get rid of unlimited memory use.
3282 Tue Jun 14 22:11:11 2016  Kazuki Yamaguchi  <k@rhe.jp>
3284         * ext/openssl/ossl_ocsp.c (ossl_ocspcid_get_issuer_name_hash,
3285           ossl_ocspcid_get_issuer_key_hash, ossl_ocspcid_get_hash_algorithm):
3286           Add accessor methods OCSP::CertificateId#issuer_name_hash,
3287           #issuer_key_hash, #hash_algorithm.
3288           Based on a patch provided by Paul Kehrer <paul.l.kehrer@gmail.com>.
3289           [ruby-core:48062] [Feature #7181]
3291         * test/openssl/test_ocsp.rb: Test these new methods.
3293 Tue Jun 14 22:07:25 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3295         * ext/date/date_strftime.c (date_strftime_with_tmx): reject too
3296           large precision to get rid of buffer overflow.
3297           reported by Guido Vranken <guido AT guidovranken.nl>.
3299 Tue Jun 14 21:40:42 2016  Kazuki Yamaguchi  <k@rhe.jp>
3301         * ext/openssl/ossl_ocsp.c (ossl_ocspbres_to_der, ossl_ocspcid_to_der):
3302           Implement #to_der methods for OCSP::BasicResponse and
3303           OCSP::CertificateId.
3305           (ossl_ocspreq_initialize, ossl_ocspres_initialize): Use GetOCSP*()
3306           instead of raw DATA_PTR().
3308           (ossl_ocspbres_initialize, ossl_ocspcid_initialize): Allow
3309           initializing from DER string.
3311           (Init_ossl_ocsp): Define new #to_der methods.
3313         * test/openssl/test_ocsp.rb: Test these changes. Also add missing tests
3314           for OCSP::{Response,Request}#to_der.
3316 Tue Jun 14 21:35:00 2016  Kazuki Yamaguchi  <k@rhe.jp>
3318         * ext/openssl/openssl_missing.h (DH_set0_pqg, RSA_set0_key):
3319           DH_set0_pqg() allows 'q' to be NULL. Fix a typo in RSA_set0_key().
3320           Fixes r55285.  [ruby-core:75225] [Feature #12324]
3322 Mon Jun 14 10:19:00 2016  Kenta Murata  <mrkn@mrkn.jp>
3324         * NEWS: describe Integer#digits.
3326 Mon Jun 13 21:09:40 2016  NARUSE, Yui  <naruse@ruby-lang.org>
3328         * thread.c (debug_deadlock_check): show thread lock dependency and
3329           backtrace [Feature #8214] [ruby-dev:47217]
3331         * thread.c (thread_status_name): show "sleep_forever" instead of
3332           "sleep" if called from inspect.
3334 Mon Jun 13 20:50:07 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3336         * parse.y (reg_named_capture_assign_iter): remove named capture
3337           conflict warnings.  it is just annoying rather than useful.
3338           [ruby-core:75416] [Bug #12359]
3340 Mon Jun 13 20:04:00 2016  Kenta Murata  <mrkn@mrkn.jp>
3342         * numeric.c (rb_int_digits, rb_fix_digits, rb_int_digits_bigbase):
3343           Add Integer#digits to extract columns in place-value notation
3344           [Feature #12447] [ruby-core:75799]
3346         * test/ruby/test_integer.rb: Add tests for the above change.
3348         * test/ruby/test_bignum.rb: ditto.
3350 Mon Jun 13 20:34:53 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3352         * include/ruby/ruby.h (RUBY_INTEGER_UNIFICATION): macro to tell if
3353           Integer is integrated.  [ruby-core:75718][Bug #12427]
3355         * include/ruby/backward.h, internal.h (rb_cFixnum, rb_cBignum):
3356           fallback to rb_cInteger.
3358         * bignum.c, numeric.c, ext/json/generator/generator.{c,h}: use the
3359           macro.
3361 Mon Jun 13 16:58:53 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3363         * test/ruby/enc/test_case_comprehensive.rb: Add tests for full Unicode
3364           swapcase.
3366 Sun Jun 12 14:48:00 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3368         * test/ruby/enc/test_case_comprehensive.rb: Add tests for ASCII-only
3369           swapcase; store calculated values in hashes.
3371 Sun Jun 12 14:05:45 2016  Kazuki Yamaguchi  <k@rhe.jp>
3373         * ext/openssl/ossl_cipher.c (ossl_cipher_get_auth_tag,
3374           ossl_cipher_set_auth_tag): Check if the cipher flags retrieved by
3375           EVP_CIPHER_CTX_flags() includes EVP_CIPH_FLAG_AEAD_CIPHER to see if
3376           the cipher supports AEAD. AES-GCM was the only supported in OpenSSL
3377           1.0.1.
3379           (Init_ossl_cipher): Fix doc; OpenSSL::Cipher::AES.new(128, :GCM) can't
3380           work.
3382         * ext/openssl/openssl_missing.h: Define EVP_CTRL_AEAD_{GET,SET}_TAG if
3383           missing. They are added in OpenSSL 1.1.0, and have the same value as
3384           EVP_CTRL_GCM_{GET,SET}_TAG and EVP_CTRL_CCM_{GET,SET}_TAG.
3386 Sun Jun 12 13:47:42 2016  Kazuki Yamaguchi  <k@rhe.jp>
3388         * test/openssl/test_engine.rb (test_openssl_engine_builtin,
3389           test_openssl_engine_by_id_string): Skip test if 'openssl' engine is
3390           already loaded. And test the number increased by Engine.load{_by_id,},
3391           not the total count of loaded engines. Previously, we called
3392           OpenSSL::Engine.cleanup every time running a test case, but we no
3393           longer can do it.
3394           [ruby-core:75225] [Feature #12324]
3396 Sun Jun 12 09:24:34 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3398         * file.c (append_fspath): normalize directory name to be appended
3399           on OS X.  [ruby-core:75957] [Ruby trunk Bug#12483]
3400           https://github.com/rails/rails/issues/25303#issuecomment-224834804
3402 Sat Jun 11 23:07:32 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
3404         * lib/forwardable.rb (_delegator_method): get rid of a warning which
3405           causes test failures introduced at r55376.
3407 Sat Jun 11 18:37:58 2016  Marcus Stollsteimer  <sto.mar@web.de>
3409         * ext/json/lib/*.rb: Removed some comments. Because these are unnecessary
3410           class description. [ci skip][Bug #12255][ruby-core:74835]
3412 Sat Jun 11 15:19:38 2016  takiy33  <takiy33@users.noreply.github.com>
3414         * lib/net/smtp.rb: [DOC] Remove dead link on documentation for
3415           Japanese of SMTP.  [Fix GH-1380]
3417 Sat Jun 11 15:02:45 2016  Grant Hutchins  <github@nertzy.com>
3419         * string.c (rb_str_oct): [DOC] fix typo, hornored -> honored.
3420           [Fix GH-1379]
3422 Sat Jun 11 14:04:19 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3424         * ext/objspace/objspace_dump.c: generate valid JSON for dump_all.
3426 Sat Jun 11 13:52:33 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3428         * lib/forwardable.rb (_delegator_method): remove __send__ call if
3429           possible, so that more optimizations will be enabled.
3431 Sat Jun 11 11:24:36 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3433         * enc/iso_8859.h (SHARP_s): name frequently used codepoint.
3435 Sat Jun 11 09:58:45 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3437         * enc/iso_8859_1.c: Revert to older version of code.
3439 Sat Jun 11 09:46:17 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3441         * enc/iso_8859_1.c: Implement non-ASCII case mapping.
3443         * test/ruby/enc/test_case_comprehensive.rb: Tests for above.
3445         * string.c: Add iso-8859-1 to supported encodings.
3447 Sat Jun 11 09:31:28 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3449         * lib/forwardable.rb (_delegator_method): leave the backtrace
3450           untouched during accessor.  forwardable.rb does not appear in
3451           the backtrace during delegated method because of tail-call
3452           optimization.
3454 Sat Jun 11 01:38:31 2016  Naohisa Goto  <ngotogenome@gmail.com>
3456         * include/ruby/defines.h (GCC_VERSION_SINCE): Fix logic error by
3457           adding parentheses. Fix failures of TestMkmf::TestConvertible
3458           with GCC 3.4.3 on Solaris 10. [Bug #12479] [ruby-dev:49660]
3460 Fri Jun 10 21:54:24 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3462         * lib/forwardable.rb (Forwardable._delegator_method): extract
3463           method generator and deal with non-module objects.
3464           [ruby-dev:49656] [Bug #12478]
3466 Fri Jun 10 17:35:11 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3468         * string.c: Special-case :ascii option in rb_str_capitalize_bang and
3469           rb_str_swapcase_bang.
3471 Fri Jun 10 17:12:24 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3473         * string.c: Special-case :ascii option in rb_str_upcase_bang (retry).
3475 Fri Jun 10 14:48:36 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3477         * hash.c (get_env_cstr): ensure NUL-terminated.
3478           [ruby-dev:49655] [Bug #12475]
3480         * string.c (rb_str_fill_terminator): return the pointer to the
3481           NUL-terminated content.
3483 Thu Jun  9 21:42:00 2016  Kazuki Yamaguchi  <k@rhe.jp>
3485         * ext/openssl/ossl_asn1.c (asn1integer_to_num): Use
3486           ASN1_ENUMERATED_to_BN() to convert an ASN1_ENUMERATED to a BN.
3487           Starting from OpenSSL 1.1.0, ASN1_INTEGER_to_BN() rejects
3488           non-ASN1_INTEGER objects. The format of INTEGER and ENUMERATED are
3489           almost identical so they behaved in the same way in OpenSSL <= 1.0.2.
3490           [ruby-core:75225] [Feature #12324]
3492         * test/openssl/test_asn1.rb (test_decode_enumerated): Test that it
3493           works.
3495 Thu Jun  9 21:10:04 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
3497         * tool/ifchange: fix timestamp error when target without
3498           directory.
3500 Thu Jun  9 19:46:22 2016  Kazuki Yamaguchi  <k@rhe.jp>
3502         * ext/openssl/ossl_ssl.c: Add define guards for OPENSSL_NO_EC.
3503           SSL_CTX_set_ecdh_auto() is defined even when ECDH is disabled in
3504           OpenSSL's configuration. This fixes r55214.
3506         * test/openssl/test_pair.rb (test_ecdh_curves): Skip if the OpenSSL does
3507           not support ECDH.
3509         * test/openssl/utils.rb (start_server): Ignore error in
3510           SSLContext#ecdh_curves=.
3512 Thu Jun  9 18:12:42 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3514         * Makefile.in (un-runnable): fail with proper error message.
3515           [ruby-core:75905] [Bug #12472]
3517 Thu Jun  9 15:32:17 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3519         * common.mk (RBCONFIG): use ifchange tool to see if the content is
3520           changed and update the timestamp file.
3522         * tool/mkconfig.rb: remove ifchange features.
3524         * tool/ifchange: make target directory if it does not exist with
3525           its parent directories.
3527         * win32/ifchange.bat: drop support for command.com used on old
3528           systems.
3530 Thu Jun  9 15:03:35 2016  Kazuki Yamaguchi  <k@rhe.jp>
3532         * ext/openssl/extconf.rb: Check for CRYPTO_malloc() and SSL_new().
3533           OpenSSL_add_all_digests() and SSL_library_init() are deprecated and
3534           converted to macros in OpenSSL 1.1.0.
3535           [ruby-core:75225] [Feature #12324]
3537 Wed Jun  8 23:09:51 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
3539         * string.c (rb_str_ascii_casemap): fix compile error.
3541 Wed Jun  8 22:22:24 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3543         * string.c: Revert previous commit (possibility of endless loop).
3545 Wed Jun  8 21:57:41 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3547         * string.c: Special-case :ascii option in rb_str_upcase_bang.
3549 Wed Jun  8 21:28:36 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3551         * string.c: New static function rb_str_ascii_casemap; special-casing
3552           :ascii option in rb_str_upcase_bang and rb_str_downcase_bang.
3554         * regenc.c: Fix a bug (wrong use of unnecessary slack at end of string).
3556         * regenc.h -> include/ruby/oniguruma.h: Move declaration of
3557           onigenc_ascii_only_case_map so that it is visible in string.c.
3559 Wed Jun  8 20:33:44 2016  Naohisa Goto  <ngotogenome@gmail.com>
3561         * include/ruby/intern.h: Remove excess semicolons in PUREFUNC().
3562           Fix failure of TestMkmf::TestConvertible on Solaris with
3563           Oracle Solaris Studio 12. [ruby-dev:49651] [Bug #12470]
3564         * internal.h: ditto.
3566 Wed Jun  8 16:03:09 2016  Shugo Maeda  <shugo@ruby-lang.org>
3568         * lib/net/smtp.rb (getok, get_response): raise an ArgumentError when
3569           CR or LF is included in a line, because they are not allowed in
3570           RFC5321.  Thanks, Jeremy Daer.
3572 Tue Jun  7 21:27:25 2016  Kazuki Yamaguchi  <k@rhe.jp>
3574         * test/rubygems/*_{cert,cert_32}.pem: Regenerate test certificates for
3575           OpenSSL 1.1.0. This is already in upstream.
3576           https://github.com/rubygems/rubygems/commit/9be5c53939440a61c4bba73cfffbeb5cfadf72be
3577           [ruby-core:75225] [Feature #12324]
3579 Tue Jun  7 21:27:17 2016  Kazuki Yamaguchi  <k@rhe.jp>
3581         * test/open-uri/test_ssl.rb: Regenerate test certificates. The test CA
3582           certificate was incorrectly generated. A CA certificate must have the
3583           basic constraints extension with cA bit set to TRUE. OpenSSL <= 1.0.2
3584           allowed the error when the certificate is in the trusted store but
3585           OpenSSL 1.1.0 no longer does.
3586           [ruby-core:75225] [Feature #12324]
3588 Tue Jun  7 21:20:38 2016  Kazuki Yamaguchi  <k@rhe.jp>
3590         * test/openssl/test_x509name.rb: Don't register OID for 'emailAddress'
3591           and 'serialNumber'. A recent change in OpenSSL made OBJ_create()
3592           reject an already existing OID. They were needed to run tests with
3593           OpenSSL 0.9.6 which is now unsupported.
3594           https://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=52832e470f5fe8c222249ae5b539aeb3c74cdb25
3595           [ruby-core:75225] [Feature #12324]
3597         * test/openssl/test_ssl_session.rb (test_server_session): Duplicate
3598           SSL::Session before re-adding to the session store. OpenSSL 1.1.0
3599           starts rejecting SSL_SESSION once removed by SSL_CTX_remove_session().
3600           https://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=7c2d4fee2547650102cd16d23f8125b76112ae75
3602         * test/openssl/test_pkey_ec.rb (setup): Remove X25519 from @keys. X25519
3603           is new in OpenSSL 1.1.0 but this is for key agreement and not for
3604           signing.
3606         * test/openssl/test_pair.rb, test/openssl/test_ssl.rb,
3607           test/openssl/utils.rb: Set security level to 0 when using aNULL cipher
3608           suites.
3610         * test/openssl/utils.rb: Use 1024 bits DSA key for client certificates.
3612         * test/openssl/test_engine.rb: Run each test in separate process.
3613           We can no longer cleanup engines explicitly as ENGINE_cleanup() was
3614           removed.
3615           https://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=6d4fb1d59e61aacefa25edc4fe5acfe1ac93f743
3617         * ext/openssl/ossl_engine.c (ossl_engine_s_cleanup): Add a note to the
3618           RDoc for Engine.cleanup.
3620         * ext/openssl/lib/openssl/digest.rb: Don't define constants for DSS,
3621           DSS1 and SHA(-0) when using with OpenSSL 1.1.0. They are removed.
3623         * test/openssl/test_digest.rb, test/openssl/test_pkey_dsa.rb,
3624           test/openssl/test_pkey_dsa.rb, test/openssl/test_ssl.rb,
3625           test/openssl/test_x509cert.rb, test/openssl/test_x509req.rb: Don't
3626           test unsupported hash functions.
3628 Tue Jun  7 17:49:52 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3630         * test/ruby/enc/test_case_comprehensive: Change test for encodings
3631           without any non-ASCII case conversions from ASCII-only test
3632           to full test.
3634 Tue Jun  7 17:18:39 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3636         * string.c (rb_str_upcase_bang, rb_str_capitalize_bang,
3637           rb_str_swapcase_bang): Switch to use primitive.
3639 Tue Jun  7 16:44:16 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3641         * string.c (rb_str_downcase_bang): Switch to use primitive except if
3642           conversion can be done ASCII-only.
3644 Tue Jun  7 16:13:36 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3646         * test/ruby/enc/test_case_comprehensive: Add regression tests for
3647           current ASCII-only case conversion.
3649 Tue Jun  7 15:28:38 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3651         * test/ruby/enc/test_case_comprehensive: Fix method name
3652           (generate_casefold_tests -> generate_case_mapping_tests).
3654 Tue Jun  7 15:05:13 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3656         * regenc.h/c: Rename onigenc_not_support_case_map to
3657           onigenc_ascii_only_case_map.
3659         * regenc.h: Add definition of onigenc_single_byte_ascii_only_case_map.
3661         * enc/iso_8859_X.c, windows_125X.c, ascii.c, us-ascii.c, koi8_x.c:
3662           Replace onigenc_not_support_case_map by
3663           onigenc_single_byte_ascii_only_case_map.
3665         * enc/big5.c, cp949.c, emacs_mule.c, euc_X.c, gbX.c, shift_jis.c,
3666           windows_31j.c: Replace onigenc_not_support_case_map by
3667           onigenc_ascii_only_case_map.
3669 Tue Jun  7 14:57:09 2016  Kazuki Yamaguchi  <k@rhe.jp>
3671         * ext/openssl/extconf.rb: Check for SSL_CTX_set_min_proto_version()
3672           macro added in OpenSSL 1.1.0. Version-specific methods, such as
3673           TLSv1_method(), are deprecated in OpenSSL 1.1.0. We need to use
3674           version-flexible methods (TLS_*method() or SSLv23_*method()) and
3675           disable other protocol versions as necessary.
3676           [ruby-core:75225] [Feature #12324]
3678         * ext/openssl/ossl_ssl.c: Use SSL_CTX_set_{min,max}_proto_version() to
3679           fix the protocol version.
3681 Tue Jun  7 12:55:34 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3683         * regenc.c (onigenc_not_support_case_map): Move to end of file;
3684           (onigenc_single_byte_ascii_only_case_map): Add new function.
3686 Tue Jun  7 09:26:37 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3688         * regenc.c (onigenc_not_support_case_map): Rewrite to work correctly
3689           in ASCII range.
3691 Mon Jun  6 23:00:00 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
3693         * appveyor.yml: Update libressl version to 2.3.5.
3695 Mon Jun  6 18:37:57 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3697         * vm_insnhelper.c (vm_throw_start): check if the iseq is symbol
3698           proc, class definition should not be a symbol proc.
3699           [ruby-core:75856] [Bug #12462]
3701 Mon Jun  6 18:36:34 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3703         * string.c: Added UTF-16BE/LE and UTF-32BE/LE to supported encodings
3704           for Unicode case mapping.
3706         * test/ruby/enc/test_case_comprehensive.rb: Tests for above
3707           functionality; fixed an encoding issue in assertion error message.
3709 Mon Jun  6 17:29:35 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3711         * test/ruby/enc/test_case_comprehensive.rb: Speed up testing for small
3712           encodings by preselecting codepoints.
3714 Mon Jun  6 17:10:50 2016  Kazuki Yamaguchi  <k@rhe.jp>
3716         * ext/openssl/ossl_cipher.c (ossl_cipher_free): Use EVP_CIPHER_CTX_free()
3717           to free EVP_CIPHER_CTX allocated by EVP_CIPHER_CTX_new().
3718           [ruby-core:75225] [Feature #12324]
3720 Mon Jun  6 13:37:08 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3722         * string.c Change rb_str_casemap to use encoding primitive
3723           case_map instead of directly calling onigenc_unicode_case_map.
3725 Mon Jun  6 13:16:46 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3727         * test/ruby/enc/test_case_mapping.rb:
3728           Remove :lithuanian guard for Unicode case mapping.
3730 Mon Jun  6 10:39:56 2016  Kazuki Yamaguchi  <k@rhe.jp>
3732         * ext/openssl/openssl_missing.h: Include ruby/config.h. r55285 added
3733           some inline functions but VC does not recognize 'inline' keyword.
3735 Mon Jun  6 09:25:34 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3737         * thread.c (thread_start_func_2): report raised exception if
3738           report_on_exception flag is set.  [Feature #6647]
3740 Mon Jun  6 01:36:24 2016  Kazuki Yamaguchi  <k@rhe.jp>
3742         * ext/openssl/extconf.rb: Check existence of SSL_is_server(). This
3743           function was introduced in OpenSSL 1.0.2.
3744           [ruby-core:75225] [Feature #12324]
3746         * ext/openssl/openssl_missing.h: Implement SSL_is_server() if missing.
3748         * ext/openssl/ossl_ssl.c (ssl_info_cb): Use SSL_is_server() to see if
3749           the SSL is server. The state machine in OpenSSL was rewritten and
3750           SSL_get_state() no longer returns SSL_ST_ACCEPT.
3752           (ossl_ssl_cipher_to_ary, ossl_sslctx_session_get_cb): Add some
3753           `const`s to suppress warning.
3755 Mon Jun  6 01:18:10 2016  Kazuki Yamaguchi  <k@rhe.jp>
3757         * ext/openssl/ossl_asn1.c (decode_bool): Do the same thing as
3758           d2i_ASN1_BOOLEAN() does by ourselves. This function is removed in
3759           OpenSSL 1.1.0.
3760           [ruby-core:75225] [Feature #12324]
3762 Mon Jun  6 00:34:16 2016  Kazuki Yamaguchi  <k@rhe.jp>
3764         * ext/openssl/extconf.rb: Check existence of accessor functions that
3765           don't exist in OpenSSL 0.9.8. OpenSSL 1.1.0 made most of its
3766           structures opaque and requires use of these accessor functions.
3767           [ruby-core:75225] [Feature #12324]
3769         * ext/openssl/openssl_missing.[ch]: Implement them if missing.
3771         * ext/openssl/ossl*.c: Use these accessor functions.
3773         * test/openssl/test_hmac.rb: Add missing test for HMAC#reset.
3775 Mon Jun  6 00:00:13 2016  Kazuki Yamaguchi  <k@rhe.jp>
3777         * ext/openssl/openssl_missing.[ch]: Implement EVP_PKEY_get0_*() and
3778           {RSA,DSA,EC_KEY,DH}_get0_*() functions.
3779           OpenSSL 1.1.0 makes EVP_PKEY/RSA/DSA/DH opaque. We used to provide
3780           setter methods for each parameter of each PKey type, for example
3781           PKey::RSA#e=, but this is no longer possible because the new API
3782           RSA_set0_key() requires the 'n' at the same time. This commit adds
3783           deprecation warning to them and adds PKey::*#set_* methods as direct
3784           wrapper for those new APIs. For example, 'rsa.e = 3' now needs to be
3785           rewritten as 'rsa.set_key(rsa.n, 3, rsa.d)'.
3786           [ruby-core:75225] [Feature #12324]
3788         * ext/openssl/ossl_pkey*.[ch]: Use the new accessor functions. Implement
3789           RSA#set_{key,factors,crt_params}, DSA#set_{key,pqg}, DH#set_{key,pqg}.
3790           Emit a warning with rb_warning() when old setter methods are used.
3792         * test/drb/ut_array_drbssl.rb, test/drb/ut_drb_drbssl.rb,
3793           test/rubygems/test_gem_remote_fetcher.rb: Don't set a priv_key for DH
3794           object that are used in tmp_dh_callback. Generating a new key pair
3795           every time should be fine - actually the private exponent is ignored
3796           in OpenSSL >= 1.0.2f/1.0.1r even if we explicitly set.
3797           https://www.openssl.org/news/secadv/20160128.txt
3799 Sun Jun  5 22:06:00 2016  Kenta Murata  <mrkn@mrkn.jp>
3801         * configure.in: Fix the timing to detect the appropriate C++ compiler
3802           in OS X.
3804 Sun Jun  5 21:42:24 2016  Kazuki Yamaguchi  <k@rhe.jp>
3806         * ext/openssl/extconf.rb: Check absence of CRYPTO_lock() to see if the
3807           OpenSSL has the new threading API. In OpenSSL <= 1.0.2, an application
3808           had to set locking callbacks to use OpenSSL in a multi-threaded
3809           environment. OpenSSL 1.1.0 now finds pthreads or Windows threads so we
3810           don't need to do something special.
3811           [ruby-core:75225] [Feature #12324]
3813           Also check existence of *_up_ref(). Some structures in OpenSSL have
3814           a reference counter. We used to increment it with CRYPTO_add() which
3815           is a part of the old API.
3817         * ext/openssl/openssl_missing.h: Implement *_up_ref() if missing.
3819         * ext/openssl/ossl.c: Don't set locking callbacks if unneeded.
3821         * ext/openssl/ossl_pkey.c, ext/openssl/ossl_ssl.c,
3822           ext/openssl/ossl_x509cert.c, ext/openssl/ossl_x509crl.c,
3823           ext/openssl/ossl_x509store.c: Use *_up_ref() instead of CRYPTO_add().
3825 Sun Jun  5 21:38:13 2016  Kazuki Yamaguchi  <k@rhe.jp>
3827         * ext/openssl/extconf.rb: Check if RAND_pseudo_bytes() is usable. It is
3828           marked as deprecated in OpenSSL 1.1.0.
3829           [ruby-core:75225] [Feature #12324]
3831         * ext/openssl/ossl_rand.c: Disable Random.pseudo_bytes if
3832           RAND_pseudo_bytes() is unavailable.
3834         * test/openssl/test_random.rb: Don't test Random.pseudo_bytes if not
3835           defined.
3837 Sun Jun  5 19:06:40 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3839         * NEWS: Add news about Unicode-wide case mapping for
3840           String/Symbol#upcase/downcase/swapcase/capitalize(!).
3842 Sun Jun  5 15:24:33 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3844         * test/ruby/enc/test_case_comprehensive.rb:
3845           Remove :lithuanian guard for Unicode case mapping.
3847 Sun Jun  5 14:46:34 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3849         * string.c: Remove :lithuanian guard for Unicode case mapping.
3851 Sat Jun  4 10:54:52 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3853         * missing/crypt.h (struct crypt_data): remove unnecessary member
3854           "initialized".
3856         * missing/crypt.c (des_setkey_r): nothing to be initialized in
3857           crypt_data.
3859         * configure.in (struct crypt_data): check for "initialized" in
3860           struct crypt_data, which may be only in glibc, and isn't on AIX
3861           at least.
3863 Sat Jun  4 10:38:39 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3865         * win32/win32.c: unify MAX_PATH, _MAX_PATH, and MAXPATHLEN to
3866           PATH_MAX, except for MAX_PATH in get_special_folder for an API
3867           limit.
3869 Fri Jun  3 21:27:22 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3871         * ruby.c (process_options): rb_str_conv_enc() never set encoding
3872           of the source string, but returns the string itself if the
3873           conversion failed.  then the instance variable does not need to
3874           be set again.
3876 Fri Jun  3 18:04:37 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
3878         * ruby.c (process_options): need to duplicate path before passing it to
3879           rb_str_conv_enc() because the function might call rb_enc_associate()
3880           internally.  this fixes test failures on Windows introduced at r55260.
3882 Fri Jun  3 17:44:25 2016  Reiner Herrmann  <reiner@reiner-h.de>
3884         * lib/mkmf.rb (create_makefile): sort lists of source and object
3885           files in generated Makefile, unless given by extconf.rb.
3886           [Fix GH-1367]
3888 Thu Jun  2 21:18:10 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3890         * win32/win32.c (get_special_folder): use SHGetPathFromIDListEx if
3891           available instead of old SHGetPathFromIDListW, to check the
3892           buffer size.
3894 Thu Jun  2 17:05:19 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3896         * ruby.c (ruby_init_loadpath_safe): remove MAXPATHLEN restriction
3897           for Windows 10.
3899 Thu Jun  2 16:51:35 2016  Koichi ITO  <koic.ito@gmail.com>
3901         * misc/ruby-mode.el (ruby-here-doc-beg-re),
3902           (ruby-here-doc-beg-match, ruby-parse-partial): Support for
3903           `squiggly heredoc' syntax in ruby-mode.  [Fix GH-1372]
3905 Thu Jun  2 10:24:48 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3907         * string.c: Raise ArgumentError when invalid string is detected in
3908           case mapping methods.
3910         * enc/unicode.c: Check for invalid string and signal with negative
3911           length value.
3913         * test/ruby/enc/test_case_mapping.rb: Add tests for above.
3915         * test/ruby/test_m17n_comb.rb: Add a message to clarify test failure.
3917 Wed Jun  1 21:41:05 2016  Kazuki Yamaguchi  <k@rhe.jp>
3919         * ext/openssl/extconf.rb: Check existence of ASN1_TIME_adj(). The old
3920           ASN1_TIME_set() is not Year 2038 ready on sizeof(time_t) == 4
3921           environment. This function was added in OpenSSL 1.0.0.
3922           [ruby-core:45552] [Bug #6571]
3924         * ext/openssl/ossl_asn1.c (ossl_time_split): Added. Split the argument
3925           (Time) into the number of days elapsed since the epoch and the
3926           remainder seconds to conform to ASN1_TIME_adj().
3927           (obj_to_asn1utime, obj_to_asn1gtime): Use ossl_time_split() and
3928           ASN1_*TIME_adj().
3930         * ext/openssl/ossl_asn1.h: Add the function prototype for
3931           ossl_time_split().
3933         * ext/openssl/ossl_x509.[ch]: Add ossl_x509_time_adjust(). Similarly to
3934           obj_to_asn1*time(), use X509_time_adj_ex() instead of X509_time_adj().
3936         * ext/openssl/ossl_x509cert.c, ext/openssl/ossl_x509crl.c,
3937           ext/openssl/ossl_x509revoked.c: Use ossl_x509_time_adjust().
3939 Wed Jun  1 15:58:20 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3941         * configure.in: revert r55237.  replace crypt, not crypt_r, and
3942           check if crypt is broken more.
3944         * missing/crypt.c: move crypt_r.c
3946         * string.c (rb_str_crypt): use crypt_r if provided by the system.
3948 Wed Jun  1 14:07:53 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3950         * missing/crypt_r.c (a64toi): initialize statically and fix out of
3951           bounds access when salt is not 7bit clean.
3953 Wed Jun  1 11:34:59 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
3955         * win32/Makefile.sub (MISSING): fixed build error introduced at r55237.
3957 Wed Jun  1 09:48:06 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3959         * string.c (rb_str_crypt): use reentrant crypt_r.
3961 Wed Jun  1 09:37:26 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
3963         * missing/crypt.c (des_setkey): void function never returns any value.
3965 Wed Jun  1 09:16:22 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3967         * crypt.h: separate header file from missing/crypt.c.
3969         * missing/crypt.c (crypt_r, setkey_r, encrypt_r): add reentrant
3970           versions.
3972 Wed Jun  1 02:25:38 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3974         * missing/crypt.c: fix size macros to use configured values
3975           for platforms long is larger than 32bit.
3976           [ruby-core:75792] [Bug #12446]
3978 Tue May 31 17:28:46 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
3980         * lib/optparse.rb (OptionParser::Completion.candidate): get rid of
3981           nil as key names.  [ruby-core:75773] [Bug #12438]
3983         * lib/optparse.rb (OptionParser#make_switch): char class option
3984           cannot be NoArgument, default to RequiredArgument.
3986 Tue May 31 00:30:11 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
3988         * ext/socket/raddrinfo.c (host_str, port_str): Use StringValueCStr
3989           instead of (Safe)StringValue, to detect NUL byte in the string.
3991 Mon May 30 22:02:01 2016  Kazuki Yamaguchi  <k@rhe.jp>
3993         * ext/openssl/ossl_asn1.c (time_to_time_t): Use NUM2TIMET() instead of
3994           NUM2LONG(). time_t may be larger than long.
3995           [ruby-core:45552] [Bug #6571]
3997 Mon May 30 21:15:37 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
3999         * string.c: Document current behavior for other case mapping methods
4000           on String. [ci skip]
4002 Mon May 30 20:00:25 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
4004         * string.c: Document current situation for String#downcase. [ci skip]
4006 Mon May 30 18:29:28 2016  Kazuki Yamaguchi  <k@rhe.jp>
4008         * ext/openssl/ossl_ssl.c (ossl_sslctx_s_alloc): Enable the automatic
4009           curve selection for ECDH by calling SSL_CTX_set_ecdh_auto(). With
4010           this a TLS server automatically selects a curve which both the client
4011           and the server support to use in ECDH. This changes the default
4012           behavior but users can still disable ECDH by excluding 'ECDH' cipher
4013           suites from the cipher list (with SSLContext#ciphers=). This commit
4014           also deprecate #tmp_ecdh_callback=. It was added in Ruby 2.3.0. It
4015           wraps SSL_CTX_set_tmp_ecdh_callback() which will be removed in OpenSSL
4016           1.1.0. Its callback receives two values 'is_export' and 'keylength'
4017           but both are completely useless for determining a curve to use in
4018           ECDH. The automatic curve selection was introduced to replace this.
4020           (ossl_sslctx_setup): Deprecate SSLContext#tmp_ecdh_callback=. Emit a
4021           warning if this is in use.
4023           (ossl_sslctx_set_ecdh_curves): Add SSLContext#ecdh_curves=. Wrap
4024           SSL_CTX_set1_curves_list(). If it is not available, this falls back
4025           to SSL_CTX_set_tmp_ecdh().
4027           (Init_ossl_ssl): Define SSLContext#ecdh_curves=.
4029         * ext/openssl/extconf.rb: Check the existence of EC_curve_nist2nid(),
4030           SSL_CTX_set1_curves_list(), SSL_CTX_set_ecdh_auto() and
4031           SSL_CTX_set_tmp_ecdh_callback().
4033         * ext/openssl/openssl_missing.[ch]: Implement EC_curve_nist2nid() if
4034           missing.
4036         * test/openssl/test_pair.rb (test_ecdh_callback): Use
4037           EnvUtil.suppress_warning to suppress deprecated warning.
4039           (test_ecdh_curves): Test that SSLContext#ecdh_curves= works.
4041         * test/openssl/utils.rb (start_server): Use SSLContext#ecdh_curves=.
4043 Mon May 30 16:28:53 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4045         * ext/socket/raddrinfo.c (host_str, port_str): use RSTRING_LEN
4046           instead of strlen, since RSTRING_PTR StringValueCStr may not be
4047           NUL-terminated when SHARABLE_MIDDLE_SUBSTRING=1.  reported by
4048           @tmtms, http://twitter.com/tmtms/status/736910516229005312
4050 Mon May 30 16:20:26 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4052         * string.c (str_fill_term): return new pointer reallocated by
4053           filling terminator.
4055 Mon May 30 14:54:58 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4057         * ext/stringio/stringio.c (enc_subseq): share the return value and
4058           the buffer as possible.
4060 Mon May 30 14:50:25 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4062         * string.c (str_substr, rb_str_aref): refactor not to create
4063           unnecessary empty string.
4065         * string.c (str_byte_substr, str_byte_aref): ditto.
4067 Mon May 30 00:09:37 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
4069         * ext/-test-/auto_ext.rb: fixed a heedless bug introduced at r55198.
4070           this change will make RubyCI green.
4072 Sun May 29 22:58:19 2016  NARUSE, Yui  <naruse@ruby-lang.org>
4074         * regexec.c (ONIGENC_IS_MBC_ASCII_WORD): redefine optimized one.
4075           WORD of Ruby's ascii compatible encoding is always [a-zA-Z0-9_].
4077 Sun May 29 22:44:19 2016  NARUSE, Yui  <naruse@ruby-lang.org>
4079         * regexec.c (match_at): make compilers optimize harder.
4081 Sun May 29 12:08:42 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4083         * ext/-test-/auto_ext.rb (auto_ext): utility method to create
4084           extension libraries for tests.
4086 Sat May 28 20:40:57 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4088         * misc/ruby-additional.el (ruby-insert-heredoc-code-block): insert
4089           here document code block for assert_separately mainly.
4091 Sat May 28 20:34:19 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
4093         * test/test_unicode_normalize.rb: Add test to check for availability of
4094           Unicode data file; refactoring; fix an error with tests for destructive
4095           method (unicode_normalize!).
4097 Sat May 28 19:08:36 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
4099         * test/ruby/enc/test_case_comprehensive.rb: Add error messages to tests
4100           for data file availability; refactoring.
4102 Sat May 28 14:00:10 2016  Kazuki Yamaguchi  <k@rhe.jp>
4104         * ext/openssl/lib/openssl/ssl.rb (SSLSocket): Move the implementation of
4105           SSLSocket#initialize to C. Initialize the SSL (OpenSSL object) in it.
4106           Currently this is delayed until ossl_ssl_setup(), which is called from
4107           SSLSocket#accept or #connect. Say we call SSLSocket#hostname= with an
4108           illegal value. We expect an exception to be raised in #hostname= but
4109           actually we get it in the later SSLSocket#connect. Because the SSL is
4110           not ready at #hostname=, the actual call of SSL_set_tlsext_host_name()
4111           is also delayed.
4112           This also fixes: [ruby-dev:49376] [Bug #11724]
4114         * ext/openssl/ossl_ssl.c (ossl_ssl_initialize): Added. Almost the same
4115           as the Ruby version but this instantiate the SSL object at the same
4116           time.
4118           (ossl_ssl_setup): Adjust to the changes. Just set the underlying IO to
4119           the SSL.
4121           (ssl_started): Added. Make use of SSL_get_fd(). This returns -1 if not
4122           yet set by SSL_set_fd().
4124           (ossl_ssl_data_get_struct): Removed. Now GetSSL() checks that the SSL
4125           exists.
4127           (ossl_ssl_set_session): Don't call ossl_ssl_setup() here as now the
4128           SSL is already instantiated in #initialize.
4130           (ossl_ssl_shutdown, ossl_start_ssl, ossl_ssl_read_internal,
4131            ossl_ssl_write_internal, ossl_ssl_stop, ossl_ssl_get_cert,
4132            ossl_ssl_get_peer_cert, ossl_ssl_get_peer_cert_chain,
4133            ossl_ssl_get_version, ossl_ssl_get_cipher, ossl_ssl_get_state,
4134            ossl_ssl_pending, ossl_ssl_session_reused,
4135            ossl_ssl_get_verify_result, ossl_ssl_get_client_ca_list,
4136            ossl_ssl_npn_protocol, ossl_ssl_alpn_protocol, ossl_ssl_tmp_key): Use
4137           GetSSL() instead of ossl_ssl_data_get_struct(). Use ssl_started().
4139           (Init_ossl_ssl): Add method declarations of SSLSocket#{initialize,
4140           hostname=}.
4142         * ext/openssl/ossl_ssl.h (GetSSL): Check that the SSL is not NULL. It
4143           should not be NULL because we now set it in #initialize.
4145         * ext/openssl/ossl_ssl_session.c (ossl_ssl_session_initialize): No need
4146           to check if the SSL is NULL.
4148 Sat May 28 10:47:40 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
4150         * gems/bundled_gems: Update latest releases, power_assert-0.3.0,
4151           test-unit 3.1.9, minitest 5.9.0, did_you_mean 1.0.1
4153 Sat May 28 10:45:40 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
4155         * addr2line.c: drop support for ATARI ST platform. It was
4156           discontinued more than two decades ago. [fix GH-1350] Patch by
4157           @cremno
4158         * include/ruby/ruby.h: ditto.
4159         * io.c: ditto.
4161 Sat May 28 10:39:47 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
4163         * test/ruby/enc/test_case_comprehensive.rb: Converted exception for
4164           unavailable Unicode data files to failed assertion.
4166 Sat May 28 10:26:18 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
4168         * lib/cgi/util.rb: added missing quote.
4169           [fix GH-1363][ci skip] Patch by @dwaller
4171 Fri May 27 17:38:49 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4173         * variable.c (rb_local_constants_i): exclude hidden constants.
4174           [ruby-core:75575] [Bug #12389]
4176 Fri May 27 17:09:44 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4178         * transcode.c (str_transcode0): scrub in the given encoding when
4179           the source encoding is given, not in the encoding of the
4180           receiver.  [ruby-core:75732] [Bug #12431]
4182 Fri May 27 15:07:32 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4184         * include/ruby/ruby.h (rb_scan_args): remove nul padding which
4185           caused syntax error if fmt is not a string literal.
4187         * include/ruby/ruby.h (rb_scan_args_verify): suppress array-bounds
4188           warnings by old clang.
4190         * include/ruby/ruby.h (rb_scan_args0): make extractor macros
4191           inline functions, which do not validate the format and are
4192           unnecessary to be expanded.
4194 Fri May 27 01:00:36 2016  NARUSE, Yui  <naruse@ruby-lang.org>
4196         * symbol.c (is_identchar): use ISDIGIT instead of rb_enc_isalnum.
4197           Though rb_enc_isalnum is encoding aware function, its argument here
4198           is *m, which is a single byte. Therefore ISDIGIT is faster.
4200         * symbol.c (is_special_global_name): ditto.
4202         * symbol.c (rb_enc_symname_type): ditto.
4204 Fri May 27 00:39:40 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4206         * include/ruby/ruby.h (rb_scan_args): add nul padding here to
4207           apply to all references.
4209         * include/ruby/ruby.h (rb_scan_args_verify): move length mismatch
4210           check outside conditional operators.
4212 Thu May 26 14:21:10 2016  Kazuki Yamaguchi  <k@rhe.jp>
4214         * ext/openssl/ossl_pkey_dh.c (ossl_dh_compute_key): Check that the DH
4215           has 'p' (the prime) before calling DH_size(). We can create a DH with
4216           no parameter but DH_size() does not check and dereferences NULL.
4217           [ruby-core:75720] [Bug #12428]
4219         * ext/openssl/ossl_pkey_dsa.c (ossl_dsa_sign): Ditto. DSA_size() does
4220           not check dsa->q.
4222         * ext/openssl/ossl_pkey_rsa.c (ossl_rsa_public_encrypt,
4223           ossl_rsa_public_decrypt, ossl_rsa_private_encrypt,
4224           ossl_rsa_private_decrypt): Ditto. RSA_size() does not check rsa->n.
4226 Thu May 26 14:13:52 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4228         * include/ruby/ruby.h (rb_scan_args_count): verify length with
4229           counting variables together.
4231 Thu May 26 09:45:41 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
4233         * test/ruby/enc/test_case_comprehensive.rb: Add set of comprehensive
4234           (across most Unicode characters; later across most character encodings)
4235           tests for case mapping.
4237 Thu May 26 05:00:13 2016  Benoit Daloze  <eregontp@gmail.com>
4239         * class.c (rb_define_class): Fix documentation.
4241 Wed May 25 20:50:12 2016  NARUSE, Yui  <naruse@ruby-lang.org>
4243         * re.c (unescape_nonascii): scan hex up to only 3 characters.
4244           [Bug #12420] [Bug #12423]
4246 Wed May 25 19:07:19 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
4248         * enc/unicode.c: Handle DOTLESS_i by hand because it isn't involved in folding.
4250 Wed May 25 18:30:53 2016  NARUSE, Yui  <naruse@ruby-lang.org>
4252         * regparse.c (fetch_token_in_cc): raise error if given octal escaped
4253           character is too big. [Bug #12420] [Bug #12423]
4255 Wed May 25 17:45:15 2016  Kazuki Yamaguchi  <k@rhe.jp>
4257         * ext/openssl, test/openssl: Drop OpenSSL < 0.9.8 support.
4259 Wed May 25 17:43:30 2016  Kazuki Yamaguchi  <k@rhe.jp>
4261         * ext/openssl/openssl_missing.h, ext/openssl/ossl.h: Remove
4262           unnecessary 'extern "C"' blocks. We don't use C++ and these headers
4263           are local to ext/openssl, so there is no need to enclose with it.
4265 Wed May 25 17:42:58 2016  Kazuki Yamaguchi  <k@rhe.jp>
4267         * ext/openssl/extconf.rb: Remove check of OPENSSL_FIPS macro. This is
4268           unneeded because we can check the macro directly in source code,
4269           just as we already do for OPENSSL_NO_* macros.
4271         * ext/openssl/ossl.c: Replace occurrences of HAVE_OPENSSL_FIPS with
4272           OPENSSL_FIPS.
4274 Wed May 25 17:13:35 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4276         * class.c (rb_scan_args): merge code for n_trail.
4278 Wed May 25 17:11:34 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4280         * include/ruby/ruby.h (rb_scan_args_validate): move failed
4281           condition to the terminal.  [ruby-core:75714] [Bug #12426]
4283 Wed May 25 13:13:37 2016  NARUSE, Yui  <naruse@ruby-lang.org>
4285         * regcomp.c: remove condition for debug output because prelude
4286           doesn't use regexp now.
4288 Wed May 25 13:10:30 2016  NARUSE, Yui  <naruse@ruby-lang.org>
4290         * regcomp.c (compile_length_tree): return error code immediately
4291           if compile_length_tree raised error [Bug #12418]
4293 Wed May 25 08:01:39 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
4295         * enc/unicode.c: Fix flag error for switch from titlecase to lowercase.
4297         * test/ruby/enc/test_case_mapping.rb: Tests for above error.
4299 Wed May 25 01:13:55 2016  Kazuki Yamaguchi  <k@rhe.jp>
4301         * ext/openssl/ossl_pkey_ec.c (ec_key_new_from_group): Create a new
4302           EC_KEY on given EC group. Extracted from ossl_ec_key_initialize().
4303           (ossl_ec_key_s_generate): Added. Create a new EC instance and
4304           generate a random private and public key.
4305           (ossl_ec_key_initialize): Use ec_key_new_from_group().
4306           (Init_ossl_ec): Define the new method EC.generate. This change is
4307           for consistency with other PKey types.  [ruby-core:45541] [Bug #6567]
4309         * test/openssl/test_pkey_ec.rb: Test that EC.generate works.
4311 Wed May 25 00:37:16 2016  Kazuki Yamaguchi  <k@rhe.jp>
4313         * ext/openssl/ossl_pkey_ec.c (ossl_ec_key_generate_key): Fix up RDoc.
4314           (Init_ossl_ec): Rename EC#generate_key to EC#generate_key!. Make the
4315           old name an alias of #generate_key!. This change is for consistency
4316           with other PKey types.  [ruby-core:45541] [Bug #6567]
4318         * test/openssl/test_pkey_ec.rb: Use EC#generate_key! instead of
4319           EC#generate_key.
4321 Wed May 25 00:23:05 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4323         * include/ruby/ruby.h (rb_scan_args_set): check the arity after
4324           adjusting argc for an option hash, for optimization in simpler
4325           cases.
4327 Wed May 25 00:21:52 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4329         * configure.in (XCFLAGS): merge flags only for ruby itself from
4330           ruby_cflags.
4332 Tue May 24 22:04:15 2016  Kazuki Yamaguchi  <k@rhe.jp>
4334         * ext/openssl/ossl_cipher.c (ossl_cipher_set_key, ossl_cipher_set_iv):
4335           Reject too long values as well as too short ones. Currently they
4336           just truncate the input but this would hide bugs and lead to
4337           unexpected encryption/decryption results.
4339         * test/openssl/test_cipher.rb: Test that Cipher#key= and #iv= reject
4340           Strings with invalid length.
4342 Tue May 24 21:32:21 2016  Kazuki Yamaguchi  <k@rhe.jp>
4344         * ext/openssl/ossl_x509ext.c (ossl_x509ext_set_value): Use
4345           ASN1_OCTET_STRING_set() instead of M_ASN1_OCTET_STRING_set(). Macros
4346           prefixed by "M_" are discouraged to be used from outside OpenSSL
4347           library[1].
4348           (ossl_x509ext_get_value): Likewise, use ASN1_STRING_print() instead
4349           of M_ASN1_OCTET_STRING_print().
4350           [1] https://git.openssl.org/gitweb/?p=openssl.git;a=blob;f=CHANGES;h=bf61913d7b01212b4d8b2f3c13d71d645914f67c;hb=b6079a7835f61daa9fb2cbf9addfa86049523933#l878
4352         * ext/openssl/ossl.h: Include openssl/asn1.h instead of
4353           openssl/asn1_mac.h. It just includes openssl/asn1.h and defines some
4354           additional "M_" macros.
4356 Tue May 24 18:52:11 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4358         * include/ruby/ruby.h (rb_scan_args_verify): verify the format to
4359           scan if no invalid chars and variable argument length matching,
4360           at the compile time if possible.
4362 Tue May 24 17:18:46 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4364         * include/ruby/defines.h (ERRORFUNC, WARNINGFUNC): add fallback
4365           definitions.
4367 Tue May 24 16:37:43 2016  NARUSE, Yui  <naruse@ruby-lang.org>
4369         * configure.in (ruby_cflags): separate from optflags [Bug #12409]
4370           -fexcess-precision=standard and -fp-model precise are set to this now.
4372         * configure.in (cflags): use ruby_cflags.
4374 Tue May 24 16:20:53 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4376         * configure.in (ERRORFUNC, WARNINGFUNC): __error__ and __warning__
4377           attributes take a parenthesized string literal.
4379 Tue May 24 12:35:56 2016  URABE Shyouhei  <shyouhei@ruby-lang.org>
4381         * common.mk: sort lines, and add missing dependencies suggested
4382           by tool/update-deps
4384 Mon May 23 21:33:36 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4386         * include/ruby/missing.h (isfinite): move from numeric.c.
4388 Mon May 23 21:09:06 2016  Kazuki Yamaguchi  <k@rhe.jp>
4390         * ext/openssl/ossl.c (Init_openssl): Avoid reference to unset global
4391           variable. ossl_raise() may be called before dOSSL is set. Since
4392           global variables default to 0 and the default value of dOSSL set in
4393           Init_openssl() is also Qfalse, there is no real issue but confusing.
4394           Patch by Bertram Scharpf <software@bertram-scharpf.de>
4395           [ruby-core:58264] [Bug #9101]
4397 Mon May 23 20:32:16 2016  Kazuki Yamaguchi  <k@rhe.jp>
4399         * ext/openssl/ossl_asn1.c, ext/openssl/ossl_bn.c,
4400           ext/openssl/ossl_cipher.c, ext/openssl/ossl_digest.c
4401           ext/openssl/ossl_engine.c, ext/openssl/ossl_ns_spki.c
4402           ext/openssl/ossl_pkcs12.c, ext/openssl/ossl_pkcs7.c
4403           ext/openssl/ossl_pkey.c, ext/openssl/ossl_pkey_ec.c
4404           ext/openssl/ossl_rand.c, ext/openssl/ossl_ssl.c
4405           ext/openssl/ossl_x509attr.c, ext/openssl/ossl_x509cert.c
4406           ext/openssl/ossl_x509ext.c, ext/openssl/ossl_x509store.c: Use
4407           StringValueCStr() where NUL-terminated string is expected.
4409 Mon May 23 20:20:12 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
4411         * ext/bigdecimal/bigdecimal.c (isfinite): get rid of a warning on
4412           cygwin. [Bug #12417][ruby-core:75691]
4414 Mon May 23 19:41:27 2016  Kazuki Yamaguchi  <k@rhe.jp>
4416         * ext/openssl/ossl_rand.c (ossl_rand_egd, ossl_rand_egd_bytes):
4417           RAND_egd{_bytes,}() return -1 on failure, not 0.
4418           Patch by cremno phobia <cremno@mail.ru>
4419           [ruby-core:63795] [Bug #10053]
4420           (ossl_pseudo_bytes): Similar, RAND_pseudo_bytes() may return 0 or
4421           -1 on failure.
4423 Mon May 23 15:52:07 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
4425         * ext/bigdecimal/bigdecimal.c (isfinite): isfinite does not always
4426           exist.  fixed build error on Windows introduced at r55123.
4428 Mon May 23 13:19:41 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4430         * include/ruby/ruby.h (rb_scan_args0): make compile error if the
4431           format is wrong or does not match with the variable argument
4432           length if possible.
4434 Mon May 23 12:47:09 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4436         * include/ruby/ruby.h (rb_scan_args0): raise fatal error if
4437           variable argument length does not match, it is a bug in the code
4438           which uses rb_scan_args, not a runtime error.
4440 Mon May 23 12:30:29 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4442         * ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec): consider
4443           non-finite float values not to raise FloatDomainError.
4444           [ruby-core:75682] [Bug #12414]
4446 Mon May 23 12:21:18 2016  NARUSE, Yui  <naruse@ruby-lang.org>
4448         * array.c (rb_ary_fill): suppress warnings: 'item' may be used
4449           uninitialized in this function
4451 Mon May 23 07:41:49 2016  Eric Wong  <e@80x24.org>
4453         * dir.c (dir_close): update RDoc for 2.3 #close change
4454           [ruby-core:75679] [Bug #12413]
4456 Sun May 22 20:01:21 2016  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>
4458         * lib/drb/timeridconv.rb: use finalizer trick instead of thread.
4460         * test/drb/ut_timerholder.rb: ditto.
4462 Sun May 22 17:25:18 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
4464         * test/ruby/enc/test_case_options.rb: adjust test class name
4465           to match file name
4467 Sun May 22 17:24:07 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
4469         * rename test/ruby/enc/test_casing_options.rb to test_case_options.rb
4470           for consistency
4472 Sun May 22 17:06:55 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4474         * transcode.c (enc_arg, str_transcode_enc_args, econv_args):
4475           remove volatile, and add GC guards in callers.
4476           [ruby-core:75664] [Bug #12411]
4478 Sun May 22 16:27:00 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4480         * ext/-test-/integer/core_ext.c: move testutil/integer.c.
4482         * test/lib/-test-/integer.rb: extract implementation details from
4483           test/unit/assertions.rb.  [Bug #12408]
4485 Sun May 22 14:57:43 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
4487         * include/ruby/oniguruma.h: Extend OnigEncodingTypeDefine to define a
4488           new encoding primitive 'case_map' for case mapping
4490         * enc/utf-8.c, utf_16be/le.c, utf_32be/le.c:
4491           add onigenc_unicode_case_map as case_map primitive
4493         * enc/ascii.c, big5.c, cp949.c, emacs_mule.c, euc_jp/kr/tw.c, gb18030.c,
4494           gbk.c, iso_8859_1/2/3/4/5/6/7/8/9/10/11/13/14/15/16.c, koi8_r/u.c,
4495           shift_jis.c, us_ascii.c, windows_1250/1251/1252.c:
4496           add onigenc_not_support_case_map as case_map primitive
4498 Sun May 22 14:45:45 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
4500         * regenc.h/c: Define new function onigenc_not_support_case_map
4502 Sun May 22 12:14:06 2016  NARUSE, Yui  <naruse@ruby-lang.org>
4504         * include/ruby/ruby.h (rb_scan_args): use original rb_scan_args
4505           when fmt is dynamic.
4507 Sun May 22 11:41:12 2016  NARUSE, Yui  <naruse@ruby-lang.org>
4509         * class.c (rb_scan_args): moved to bottom of the file to make the
4510           effect of `#undef rb_scan_args` the minimum.
4512         * include/ruby/ruby.h (rb_scan_args): overwrite only if GCC and
4513           optimized. Visual C++ 14 or later can compile it but make it
4514           conservative.
4516 Sat May 21 22:45:50 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
4518         * include/ruby/ruby.h (rb_scan_args): don't use ALWAYS_INLINE with
4519           `inline`.  if gcc needs this duplication, do in ALWAYS_INLINE macro.
4521 Sat May 21 21:11:56 2016  NARUSE, Yui  <naruse@ruby-lang.org>
4523         * include/ruby/ruby.h (rb_scan_args): use __VA_ARGS__ instead of
4524           va_arg to allow compilers optimize more aggressive.
4525           https://gustedt.wordpress.com/2011/07/10/avoid-writing-va_arg-functions/
4526           rb_scan_args is now expected to be statically resolved.
4528 Sun May 22 02:41:52 2016  NARUSE, Yui  <naruse@ruby-lang.org>
4530         * ext/zlib/zlib.c: remove hacky macro introduced at r30437.
4532         * ext/zlib/zlib.c (gzfile_make_header): cast as long (instead of int).
4534         * ext/zlib/zlib.c (gzfile_make_footer): ditto.
4536 Sat May 21 21:07:18 2016  NARUSE, Yui  <naruse@ruby-lang.org>
4538         * configure.in (ALWAYS_INLINE): force compilers the function inlined.
4540 Sat May 21 16:16:03 2016  Kazuki Yamaguchi  <k@rhe.jp>
4542         * ext/openssl/ossl_ssl.c (ossl_ssl_stop): Don't free the SSL struct
4543           here. Since some methods such as SSLSocket#connect releases GVL,
4544           there is a chance of use after free if we free the SSL from another
4545           thread. SSLSocket#stop was documented as "prepares it for another
4546           connection" so this is a slightly incompatible change. However when
4547           this sentence was added (r30090, Add toplevel documentation for
4548           OpenSSL, 2010-12-06), it didn't actually. The current behavior is
4549           from r40304 (Correct shutdown behavior w.r.t GC., 2013-04-15).
4550           [ruby-core:74978] [Bug #12292]
4552         * ext/openssl/lib/openssl/ssl.rb (sysclose): Update doc.
4554         * test/openssl/test_ssl.rb: Test this.
4556 Sat May 21 14:41:14 2016  Kazuki Yamaguchi  <k@rhe.jp>
4558         * ext/openssl/ossl.c: [DOC] Fix SSL client example. The variable name
4559           was wrong. Patch by Andreas Tiefenthaler <at@an-ti.eu> (@pxlpnk).
4560           [GH ruby/openssl#32]
4562 Sat May 21 14:25:38 2016  Kazuki Yamaguchi  <k@rhe.jp>
4564         * ext/openssl/ossl_pkey_ec.c: rename PKey::EC#private_key? and
4565           #public_key? to #private? and #public? for consistency with other
4566           PKey types. Old names remain as alias.  [ruby-core:45541] [Bug #6567]
4568         * test/openssl/test_pkey_ec.rb (test_check_key): check private? and
4569           public? works correctly.
4571 Sat May 21 12:40:36 2016  Kazuki Yamaguchi  <k@rhe.jp>
4573         * ext/openssl/lib/openssl/buffering.rb (read_nonblock, readpartial):
4574           Remove impossible EOFError raise. Patch by Zach Anker
4575           <zanker@squareup.com>.  [GH ruby/openssl#23]
4577 Sat May 21 11:18:42 2016  Evgeni Golov  <evgeni@golov.de>
4579         * lib/ipaddr.rb: [DOC] fix documentation of IN6MASK to mention
4580           IPv6.  [Fix GH-1349]
4582 Sat May 21 11:12:53 2016  Dan Martinez  <dfm@razorwind.org>
4584         * io.c (Init_IO): [DOC] define dummy ARGF instead of ARGF.class to
4585           re-enable the generation of ARGF documentation.  [Fix GH-1358]
4587 Sat May 21 11:07:29 2016  0x01f7  <souk.0x01f7@gmail.com>
4589         * doc/syntax/methods.rdoc (Method Names): add proper closing tag.
4590           [Fix GH-1356]
4592 Sat May 21 09:26:28 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4594         * configure.in (RUBY_CHECK_SETJMP): fix missing macro definition
4595           for the configured result.  fix up r55021.
4597 Sat May 21 00:36:32 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4599         * process.c (rb_execarg_commandline): build command line string
4600           from argument vector in rb_execarg.
4601           [ruby-core:75611] [Bug #12398]
4603 Fri May 20 23:25:42 2016  Kazuki Yamaguchi  <k@rhe.jp>
4605         * ext/openssl/ossl.c (ossl_pem_passwd_value): Added. Convert the
4606           argument to String with StringValue() and validate the length is in
4607           4..PEM_BUFSIZE. PEM_BUFSIZE is a macro defined in OpenSSL headers.
4608           (ossl_pem_passwd_cb): When reading/writing encrypted PEM format, we
4609           used to pass the password to PEM_def_callback() directly but it was
4610           problematic. It is not NUL character safe. And surprisingly, it
4611           silently truncates the password to 1024 bytes.  [GH ruby/openssl#51]
4613         * ext/openssl/ossl.h: Add function prototype declaration of newly
4614           added ossl_pem_passwd_value().
4616         * ext/openssl/ossl_pkey.c (ossl_pkey_new_from_data): Use
4617           ossl_pem_passwd_value() to validate the password String.
4619         * ext/openssl/ossl_pkey_dsa.c (ossl_dsa_initialize, ossl_dsa_export):
4620           ditto.
4622         * ext/openssl/ossl_pkey_ec.c (ossl_ec_key_initialize,
4623           ossl_ec_key_to_string): ditto.
4625         * ext/openssl/ossl_pkey_rsa.c (ossl_rsa_initialize, ossl_rsa_export):
4626           ditto.
4628         * test/openssl/test_pkey_{dsa,ec,rsa}.rb: test this.
4630 Fri May 20 23:45:53 2016  Naohisa Goto  <ngotogenome@gmail.com>
4632         * id_table.c (list_id_table_init): When unaligned word access is
4633           prohibited and sizeof(VALUE) is 8 (64-bit machines),
4634           capa should always be even number for 8-byte word alignment
4635           of the values of a table. This code assumes that sizeof(ID) is 4,
4636           sizeof(VALUE) is 8, and xmalloc() returns 8-byte aligned memory.
4637           This fixes bus error on 64-bit SPARC Solaris 10.
4638           [Bug #12406][ruby-dev:49631]
4640 Fri May 20 22:30:09 2016  Naohisa Goto  <ngotogenome@gmail.com>
4642         * symbol.h (rb_id2sym): Use HAVE_BUILTIN___BUILTIN_CONSTANT_P
4644 Fri May 20 22:19:00 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
4646         * ext/date/date_core.c: [DOC] fix typos.
4647           [fix GH-1360] patched by @soundasleep
4649 Fri May 20 21:26:58 2016  Naohisa Goto  <ngotogenome@gmail.com>
4651         * include/ruby/defines.h (RB_GNUC_EXTENSION, RB_GNUC_EXTENSION_BLOCK):
4652           macros for skipping __extension__ on non-GCC compilers.
4653         * eval_error.c (warn_print): use RB_GNUC_EXTENSION_BLOCK instead of
4654           __extension__ because __extension__ is a GNU extension.
4655           Fix compile error on Solaris 10 with Oracle Solaris Studio 12.x.
4656           [Bug #12397] [ruby-dev:49629].
4657         * internal.h (rb_fstring_cstr, rb_fstring_enc_cstr): ditto
4658         * include/ruby/encoding.h (rb_enc_str_new, rb_enc_str_new_cstr): ditto
4659         * include/ruby/intern.h (rb_str_new, rb_str_new_cstr,
4660           rb_usascii_str_new, rb_utf8_str_new, rb_tainted_str_new_cstr,
4661           rb_usascii_str_new_cstr, rb_utf8_str_new_cstr,
4662           rb_external_str_new_cstr, rb_locale_str_new_cstr,
4663           rb_str_buf_new_cstr, rb_str_cat_cstr, rb_exc_new_cstr): ditto
4665 Fri May 20 21:17:13 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4667         * ext/win32ole/win32ole.c (fole_missing): make substring or dup to
4668           share the content if possible.
4670 Fri May 20 19:48:48 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4672         * internal.h (NEW_PARTIAL_MEMO_FOR): shrink buffer array not to
4673           mark non-VALUE fields.  fix check_rvalue_consistency abort with
4674           RGENGC_CHECK_MODE=2.
4676         * internal.h (NEW_CMP_OPT_MEMO): exclude struct cmp_opt_data from
4677           the valid array range.
4679         * enum.c (slicewhen_i): exclude inverted too.
4681 Thu May 19 21:21:57 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
4683         * re.c (rb_reg_match_m_p): [DOC] fix return value in rdoc.
4685         * test/ruby/test_regexp.rb (TestRegexp#test_match_p): add some
4686           tests from document.
4688 Thu May 19 13:22:44 2016  Kazuki Yamaguchi  <k@rhe.jp>
4690         * ext/openssl/ossl.c (Init_openssl): register an ex_data index for
4691           X509_STORE and X509_STORE_CTX respectively. Since they don't share
4692           the ex_data index registry, we can't use the same index.
4693           (ossl_verify_cb): use the correct index.
4695         * ext/openssl/ossl_ssl.c (ossl_ssl_verify_callback): ditto.
4697         * ext/openssl/ossl_x509store.c (ossl_x509store_set_vfy_cb): ditto.
4698           (ossl_x509stctx_verify): ditto.
4700         * ext/openssl/ossl.h (void ossl_clear_error): add extern declarations
4701           of ossl_store_{ctx_,}ex_verify_cb_idx.
4703         * ext/openssl/openssl_missing.c: remove X509_STORE_set_ex_data and
4704           X509_STORE_get_ex_data.
4706         * ext/openssl/openssl_missing.h: implement X509_STORE_get_ex_data,
4707           X509_STORE_set_ex_data and X509_STORE_get_ex_new_index as macros.
4709 Thu May 19 13:11:35 2016  Kazuki Yamaguchi  <k@rhe.jp>
4711         * ext/openssl/ossl_x509attr.c (ossl_x509attr_set_value): check that the
4712           argument is an OpenSSL::ASN1::Data before converting to ASN1_TYPE.
4713           This fixes SEGV on OpenSSL::X509::Attribute#value=(non-asn1-value).
4715         * test/openssl/test_x509attr.rb: add tests for OpenSSL::X509::Attribute.
4717 Thu May 19 12:10:10 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4719         * re.c (rb_reg_match_m_p): fix match against empty string.
4720           rb_str_offset returns the end when the position exceeds the
4721           length.  fix the range parameter of onig_search.
4722           [ruby-core:75604] [Bug #12394]
4724 Thu May 19 11:37:36 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4726         * re.c (rb_reg_match_m_p): should return false if no match, as the
4727           document says.  [Feature #8110]
4729 Thu May 19 00:17:01 2016  NARUSE, Yui  <naruse@ruby-lang.org>
4731         * re.c (reg_names_iter): specify capacify
4733 Wed May 18 21:29:59 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
4735         * thread.c (recursive_list_access): a object id may be a Bignum.  so,
4736           the list must be a objhash, instead of a identhash.
4737           this fixes many test errors on mswin64 CI.
4739 Wed May 18 19:33:54 2016  NARUSE, Yui  <naruse@ruby-lang.org>
4741         * re.c (rb_reg_match_m_p): Introduce Regexp#match?, which returns
4742           bool and doesn't save backref.
4744 Wed May 18 16:52:03 2016  Kazuki Yamaguchi  <k@rhe.jp>
4746         * ext/openssl/ossl_pkcs12.c (ossl_pkcs12_initialize): pop errors
4747           leaked by PKCS12_parse(). This is a bug in OpenSSL, which exists
4748           in the versions before the version 1.0.0t, 1.0.1p, 1.0.2d.
4750 Wed May 18 16:04:54 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4752         * tool/downloader.rb (Downloader::RubyGems.download): verify gems
4753           only if RubyGems is 2.4 or later.  old RubyGems fails to verify
4754           almost all of bundled gems.
4756 Wed May 18 14:52:38 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4758         * string.c (rb_str_modify_expand): check integer overflow.
4759           [ruby-core:75592] [Bug #12390]
4761 Wed May 18 13:11:44 2016  NARUSE, Yui  <naruse@ruby-lang.org>
4763         * re.c (match_ary_subseq): get subseq of match array without creating
4764           temporary array.
4766         * re.c (match_ary_aref): get element(s) of match array without creating
4767           temporary array.
4769         * re.c (match_aref): Use match_ary_subseq with handling irregulars.
4771         * re.c (match_values_at): Use match_ary_aref.
4773 Wed May 18 13:03:07 2016  Kazuki Yamaguchi  <k@rhe.jp>
4775         * ext/openssl/ossl_x509cert.c (ossl_x509_verify): X509_verify()
4776           family may put errors on 0 return (0 means verification failure).
4777           Clear OpenSSL error queue before return to Ruby. Since the queue is
4778           thread global, remaining errors in the queue can cause an unexpected
4779           error in the next OpenSSL operation.  [ruby-core:48284] [Bug #7215]
4781         * ext/openssl/ossl_x509crl.c (ossl_x509crl_verify): ditto.
4783         * ext/openssl/ossl_x509req.c (ossl_x509req_verify): ditto.
4785         * ext/openssl/ossl_x509store.c (ossl_x509stctx_verify): ditto.
4787         * ext/openssl/ossl_pkey_dh.c (dh_generate): clear the OpenSSL error
4788           queue before re-raising exception.
4790         * ext/openssl/ossl_pkey_dsa.c (dsa_generate): ditto.
4792         * ext/openssl/ossl_pkey_rsa.c (rsa_generate): ditto.
4794         * ext/openssl/ossl_ssl.c (ossl_start_ssl): ditto.
4796         * test/openssl: check that OpenSSL.errors is empty every time after
4797           running a test case.
4799 Wed May 18 12:07:42 2016  Kazuki Yamaguchi  <k@rhe.jp>
4801         * ext/openssl/ossl.c (ossl_clear_error): Extracted from
4802           ossl_make_error(). This prints errors in the OpenSSL error queue if
4803           OpenSSL.debug is true, and clears the queue.
4804           (ossl_make_error): use ossl_clear_error().
4806         * ext/openssl/ossl.h: add prototype declaration of ossl_make_error().
4807           (OSSL_BIO_reset) use ossl_clear_error() to clear the queue. Clearing
4808           silently makes debugging difficult.
4810         * ext/openssl/ossl_engine.c (ossl_engine_s_by_id): ditto.
4812         * ext/openssl/ossl_ns_spki.c (ossl_spki_initialize): ditto.
4814         * ext/openssl/ossl_pkcs7.c (ossl_pkcs7_verify): ditto.
4816         * ext/openssl/ossl_pkey_dsa.c (ossl_dsa_initialize): ditto.
4818         * ext/openssl/ossl_pkey_ec.c (ossl_ec_key_initialize): ditto.
4819           (ossl_ec_group_initialize): ditto.
4821         * ext/openssl/ossl_ssl.c (ossl_ssl_shutdown): ditto.
4823 Wed May 18 11:53:49 2016  Kazuki Yamaguchi  <k@rhe.jp>
4825         * ext/openssl/ossl_pkey_ec.c (ossl_ec_point_mul): Validate the
4826           arguments before passing to EC_POINT(s)_mul(). Add description of this
4827           method.  [ruby-core:65152] [Bug #10268]
4829         * test/openssl/test_pkey_ec.rb (test_ec_point_mul): Test that
4830           OpenSSL::PKey::EC::Point#mul works.
4832 Wed May 18 11:19:59 2016  Kazuki Yamaguchi  <k@rhe.jp>
4834         * ext/openssl/ossl_bn.c (try_convert_to_bnptr): Extracted from
4835           GetBNPtr(). This doesn't raise exception but returns NULL on error.
4836           (GetBNPtr): Raise TypeError if conversion fails.
4837           (ossl_bn_eq): Implement BN#==.
4838           (ossl_bn_eql): #eql? should not raise TypeError even if the argument
4839           is not compatible with BN.
4840           (ossl_bn_hash): Implement BN#hash.
4842         * ext/openssl/ossl_bn.c (Init_ossl_bn): Define #== and #hash.
4844         * test/openssl/test_bn.rb: Test BN#eql?, #== and #hash
4846 Wed May 18 10:17:41 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4848         * include/ruby/ruby.h (RB_INTEGER_TYPE_P): new macro and
4849           underlying inline function to check if the object is an
4850           Integer (Fixnum or Bignum).
4852 Wed May 18 09:52:00 2016  Kenta Murata  <mrkn@mrkn.jp>
4854         * enum.c (enum_sum, hash_sum, hash_sum_i, enum_sum_i, sum_iter):
4855           Optimize for hashes when each method isn't redefined.
4857 Wed May 18 09:14:00 2016  Kenta Murata  <mrkn@mrkn.jp>
4859         * enum.c (enum_sum, int_range_sum): Extract int_range_sum from
4860           enum_sum.
4862 Wed May 18 03:16:06 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4864         * re.c (match_values_at): fix regression at r55036.
4865           MatchData#values_at accepts Range.
4867 Wed May 18 02:02:58 2016  NARUSE, Yui  <naruse@ruby-lang.org>
4869         * re.c (match_aref): remove useless condition and call rb_fix2int.
4870           rb_reg_nth_match handles negative index.
4872 Wed May 18 01:57:43 2016  NARUSE, Yui  <naruse@ruby-lang.org>
4874         * re.c (match_values_at): MatchData#values_at supports named captures
4875           [Feature #9179]
4877         * re.c (namev_to_backref_number): separated.
4879 Wed May 18 00:05:00 2016  Kenta Murata  <mrkn@mrkn.jp>
4881         * enum.c (enum_sum): Optimize for a range from int to int.
4883         * test/ruby/test_enum.rb (test_range_sum): Move from test_range.rb,
4884           and add assertions for some conditions.
4886         * test/ruby/test_enum.rb (test_hash_sum): Move from test_hash.rb.
4888         * test/ruby/test_hash.rb, test/ruby/test_range.rb: Remove test_sum.
4890 Tue May 17 23:08:00 2016  Kenta Murata  <mrkn@mrkn.jp>
4892         * enum.c (enum_sum): [DOC] Write documentation.
4894 Tue May 17 22:53:00 2016  Kenta Murata  <mrkn@mrkn.jp>
4896         * enum.c (enum_sum): Implement Enumerable#sum.
4898         * test/ruby/test_enum.rb (test_sum): Test sum for Enumerable.
4900         * test/ruby/test_hash.rb (test_sum): Test sum for Hash.
4902         * test/ruby/test_range.rb (test_sum): Test sum for Range.
4904 Tue May 17 22:11:41 2016  Tanaka Akira  <akr@fsij.org>
4906         * object.c, numeric.c, enum.c, ext/-test-/bignum/mul.c,
4907           lib/rexml/quickpath.rb, lib/rexml/text.rb, lib/rexml/xpath_parser.rb,
4908           lib/rubygems/specification.rb, lib/uri/generic.rb,
4909           bootstraptest/test_eval.rb, basictest/test.rb,
4910           test/-ext-/bignum/test_big2str.rb, test/-ext-/bignum/test_div.rb,
4911           test/-ext-/bignum/test_mul.rb, test/-ext-/bignum/test_str2big.rb,
4912           test/csv/test_data_converters.rb, test/date/test_date.rb,
4913           test/json/test_json_generate.rb, test/minitest/test_minitest_mock.rb,
4914           test/openssl/test_cipher.rb, test/rexml/test_jaxen.rb,
4915           test/ruby/test_array.rb, test/ruby/test_basicinstructions.rb,
4916           test/ruby/test_bignum.rb, test/ruby/test_case.rb,
4917           test/ruby/test_class.rb, test/ruby/test_complex.rb,
4918           test/ruby/test_enum.rb, test/ruby/test_eval.rb,
4919           test/ruby/test_iseq.rb, test/ruby/test_literal.rb,
4920           test/ruby/test_math.rb, test/ruby/test_module.rb,
4921           test/ruby/test_numeric.rb, test/ruby/test_range.rb,
4922           test/ruby/test_rational.rb, test/ruby/test_refinement.rb,
4923           test/ruby/test_rubyvm.rb, test/ruby/test_struct.rb,
4924           test/ruby/test_variable.rb, test/rubygems/test_gem_specification.rb,
4925           test/thread/test_queue.rb: Use Integer instead of Fixnum and Bignum.
4927 Tue May 17 15:26:10 2016  Tanaka Akira  <akr@fsij.org>
4929         * [Feature #12005] Unify Fixnum and Bignum into Integer
4931         * include/ruby/ruby.h (rb_class_of): Return rb_cInteger for fixnums.
4933         * insns.def (INTEGER_REDEFINED_OP_FLAG): Unified from
4934           FIXNUM_REDEFINED_OP_FLAG and BIGNUM_REDEFINED_OP_FLAG.
4936         * vm_core.h: Ditto.
4938         * vm_insnhelper.c (opt_eq_func): Use INTEGER_REDEFINED_OP_FLAG instead
4939           of FIXNUM_REDEFINED_OP_FLAG.
4941         * vm.c (vm_redefinition_check_flag): Use rb_cInteger instead of
4942           rb_cFixnum and rb_cBignum.
4943           (C): Use Integer instead of Fixnum and Bignum.
4945         * numeric.c (fix_succ): Removed.
4946           (Init_Numeric): Define Fixnum as Integer.
4948         * bignum.c (bignew): Use rb_cInteger instead of rb_cBignum.
4949           (rb_int_coerce): replaced from rb_big_coerce and return fixnums
4950           as-is.
4951           (Init_Bignum): Define Bignum as Integer.
4952           Don't define ===.
4954         * error.c (builtin_class_name): Return "Integer" for fixnums.
4956         * sprintf.c (ruby__sfvextra): Use rb_cInteger instead of rb_cFixnum.
4958         * ext/-test-/testutil: New directory to test.
4959           Currently it provides utilities for fixnum and bignum.
4961         * ext/json/generator/generator.c: Define mInteger_to_json.
4963         * lib/mathn.rb (Fixnum#/): Redefinition removed.
4965 Tue May 17 11:58:58 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4967         * configure.in (RUBY_CHECK_BUILTIN_SETJMP): declare t as NORETURN
4968           to suppress warnings by -Wsuggest-attribute=noreturn.
4969           [ruby-core:75510] [Bug #12383]
4971 Tue May 17 10:40:18 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4973         * configure.in (RUBY_CHECK_SETJMP): needs the header and proper
4974           arguments for builtin setjmp functions.
4976 Mon May 16 20:00:30 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
4978         * enc/unicode.h: Additional uses of ONIG_CASE_MAPPING compilation switch
4980 Mon May 16 19:46:33 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
4982         * include/ruby/oniguruma.h: Introducing ONIG_CASE_MAPPING compilation
4983           switch
4985         * include/ruby/oniguruma.h, enc/unicode.h: Using ONIG_CASE_MAPPING
4986           compilation switch
4988 Mon May 16 19:29:31 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
4990         * gems/bundled_gems: Update xmlrpc-0.1.1. xmlrpc-0.1.0 didn't allow
4991           to install on 2.4.0dev.
4993 Mon May 16 13:28:59 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
4995         * configure.in (FUNC_STDCALL, FUNC_CDECL, FUNC_FASTCALL): set
4996           macro names explicitly to the old names, which are accidentally
4997           changed at r54985, for backward compatibilities.
4998           fiddle also depends on these names to fallback to ANSI names.
4999           [ruby-core:75494] [Bug #12377]
5001 Mon May 16 11:39:02 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
5003         * lib/xmlrpc.rb, lib/xmlrpc/*, test/xmlrpc: XMLRPC is bundled gem
5004           on Ruby 2.4. It is extracted to https://github.com/ruby/xmlrpc
5005           [Feature #12160][ruby-core:74239]
5006         * gems/bundled_gems: ditto.
5008 Mon May 16 06:06:21 2016  Eric Wong  <e@80x24.org>
5010         * proc.c: fix RDoc of Proc#===/call/yield/[]
5011           [Bug #12332]
5013 Sun May 15 20:55:31 2016  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>
5015         * lib/drb/timeridconv.rb: don't use keeper thread. [Bug #12342]
5017         * test/drb/ut_timerholder.rb: ditto.
5019 Sun May 15 16:15:25 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5021         * array.c (rb_ary_entry): extract rb_ary_elt to organize if-conditions
5022           and check whether is embedded at once.
5024 Sun May 15 10:57:26 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5026         * vm_insnhelper.c (vm_get_ev_const): warn deprecated constant even
5027           in the class context.  [ruby-core:75505] [Bug #12382]
5029 Sun May 15 03:13:01 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5031         * iseq.h (struct iseq_compile_data): use struct rb_id_table
5032           instead of st_table.
5034         * iseq.c (prepare_iseq_build): don't allocate ivar_cache_table
5035           until it has at least one element.
5037         * iseq.c (compile_data_free): free ivar_cache_table only if it
5038           is allocated.
5040         * compile.c (get_ivar_ic_value): allocate if the table is not
5041           allocated yet.
5043 Sat May 14 09:04:34 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5045         * lib/mkmf.rb (pkg_config): use xsystem consistently to set up
5046           library path environment variable as well as latter pkg-config
5047           calls.  [ruby-dev:49619] [Bug #12379]
5049 Sat May 14 00:16:54 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5051         * random.c (make_seed_value): append leading-zero-guard and get
5052           rid of making a local copy of the seed.
5054 Fri May 13 08:46:42 2016  cremno  <cremno@mail.ru>
5056         * NEWS: drop FreeBSD < 4 support.  [Fix GH-1339]
5057           The most recent version affected by this is 3.5 and was released
5058           in 2000.
5059           https://www.freebsd.org/releases/3.5R/announce.html
5060           https://en.wikipedia.org/wiki/History_of_FreeBSD#Version_history
5062 Fri May 13 03:12:09 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5064         * include/ruby/defines.h (GCC_VERSION_SINCE): moved from internal.h.
5066 Fri May 13 03:11:20 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5068         * configure.in (__builtin_constant_p): check.
5070         * internal.h: Use HAVE_BUILTIN___BUILTIN_CONSTANT_P
5072 Fri May 13 03:10:39 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5074         * configure.in: use alternative keyword
5075           to avoid macros conflicts with them.
5077 Thu May 12 01:54:08 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5079         * lib/mkmf.rb (try_func): get rid of conflict of declarations of
5080           main().  checking local symbol reference does not make sense.
5082 Thu May 12 00:18:19 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
5084         * win32/Makefile.sub (HAVE_QSORT_S): use qsort_s only for Visual Studio
5085           2012 or later, because VS2010 seems to causes a SEGV in
5086           test/ruby/test_enum.rb.
5088 Wed May 11 23:59:47 2016  Masaya Tarui  <tarui@ruby-lang.org>
5090         * vm_insnhelper.c (vm_getivar): describe fast-path explicit
5091           (compiler friendly). [Bug #12274].
5093 Wed May 11 21:30:07 2016  Masaya Tarui  <tarui@ruby-lang.org>
5095         * compile.c (iseq_compile_each): share InlineCache during same
5096           instance variable accesses. Reducing memory consumption,
5097           rising cache hit rate and rising branch prediction hit rate
5098           are expected. A part of [Bug #12274].
5100         * iseq.h (struct iseq_compile_data): introduce instance
5101           variable IC table for sharing.
5103         * iseq.c (prepare_iseq_build, compile_data_free):
5104           construct/destruct above table.
5106 Wed May 11 17:18:53 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5108         * util.c (ruby_qsort): use qsort_s if available, for Microsoft
5109           Visual Studio 2005 (msvcr80.dll) and mingw.
5111 Wed May 11 10:33:26 2016  Marcus Stollsteimer  <sto.mar@web.de>
5113         * COPYING: Remove trailing-whitespaces.
5114           [ci skip][fix GH-1348]
5116 Tue May 10 21:05:45 2016  Benoit Daloze  <eregontp@gmail.com>
5118         * insns.def (defineclass): Also raise an error when redeclaring the
5119           superclass of a class as Object and it has another superclass.
5120           [Bug #12367] [ruby-core:75446]
5122         * test/ruby/test_class.rb: test for above.
5124 Tue May 10 14:57:09 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5126         * random.c (obj_random_bytes): base on bytes method instead of
5127           rand method, not to call toplevel rand method.
5129 Tue May 10 13:07:28 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5131         * configure.in (-fexcess-precision=standard): before r54895 -std=c99
5132           is specified and it implied -fexcess-precision=standard.
5133           Now with -std=gnu99, it should be explicitly specified.
5134           https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
5136 Mon May  9 10:51:59 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5138         * thread.c (rb_thread_atfork_internal): move th to an argument.
5140         * thread.c (rb_thread_atfork): do not repeat GET_THREAD().
5142 Mon May  9 10:46:36 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5144         * thread.c (rb_thread_atfork, rb_thread_atfork_before_exec): do
5145           nothing unless working fork is available.
5147         * thread_sync.c (rb_mutex_abandon_all): define only if working
5148           fork is available.
5150         * thread_sync.c (rb_mutex_abandon_keeping_mutexes): ditto.
5152         * thread_sync.c (rb_mutex_abandon_locking_mutex): ditto.
5154         * thread_win32.c (gvl_init): never used.
5156 Mon May  9 07:18:06 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
5158         * include/ruby/{defines,ruby}.h: need to define function attributes
5159           alternatives in defines.h instead of ruby.h, because they are used
5160           in oniguruma.h and the header used without including ruby.h at
5161           encoding library sources.
5163 Mon May  9 06:30:12 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
5165         * include/ruby/ruby.h (CONSTFUNC, PUREFUNC): fixed build errors on
5166           non-gcc build environments introduced at r54952.
5168 Mon May  9 02:51:51 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5170         * gc.c (rb_gc_unprotect_logging): throw rb_memerror when it cannot
5171           allocate memory. This is pointed out by Facebook's Infer.
5173         * gc.c (gc_prof_setup_new_record): ditto.
5175         * regparse.c (parse_regexp): ditto.
5177         * util.c (MALLOC): use xmalloc and xfree like above.
5179 Mon May  9 02:39:16 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5181         * configure.in: check function attribute const and pure,
5182           and define CONSTFUNC and PUREFUNC if available.
5183           Note that I don't add those options as default because
5184           it still shows many false-positive (it seems not to consider
5185           longjmp).
5187         * vm_eval.c (stack_check): get rb_thread_t* as an argument
5188           to avoid duplicate call of GET_THREAD().
5190 Sun May  8 21:01:14 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5192         * ext/openssl/extconf.rb: assume it doesn't have SSLv2 related
5193           functions when OPENSSL_NO_SSL2 is defined.
5194           Usually openssl's header and the library (libssl) have the same
5195           set of functions, but on some environment the library has functions
5196           whose headers doesn't declare. (openssl/opensslconf.h and libssl.so
5197           aren't be synchronized)
5198           To detect such case explicitly check feature macro and remove
5199           related functions.
5201 Sun May  8 18:51:33 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5203         * file.c (rb_home_dir_of): return the default home path if the
5204           user name is the current user name, on platforms where struct
5205           pwd is not supported.  a temporary measure against
5206           [Bug #12226].
5208 Sun May  8 08:51:38 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5210         * configure.in: add -Wsuggest-attribute=format and suppress warnings.
5212 Sun May  8 08:31:03 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5214         * configure.in: add -Wsuggest-attribute=noreturn and suppress warnings.
5216 Sun May  8 08:19:16 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5218         * configure.in: add -Werror=implicit-int to avoid missing type of
5219           function declaration.
5221 Sat May  7 22:22:37 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
5223         * lib/webrick/ssl.rb: Accept string value for SSLCertName. It is used
5224           to invoke ssl server with command line.
5225           [fix GH-1329] Patch by @kerlin
5226         * test/webrick/test_ssl_server.rb: Added test for GH-1329
5228 Sat May  7 21:55:12 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
5230         * test/webrick/test_ssl_server.rb: Added basic test for `webrick/ssl`
5232 Sat May  7 16:22:13 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5234         * random.c (int_pair_to_real_inclusive): optimize to multiply
5235           without Bignum.
5237 Sat May  7 07:58:02 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5239         * process.c (rb_exec_getargs): honor the expected argument types
5240           over the conversion method.  the basic language functionality
5241           should be robust.  [ruby-core:75388] [Bug #12355]
5243 Fri May  6 08:16:26 2016  David Silva  <david.silva@digital.cabinet-office.gov.uk>
5245         * enum.c (enum_find): [DOC] add more examples to the documentation
5246           of Enumerable#detect, to show that it equals to Enumerable#find.
5247           [Fix GH-1340]
5249 Thu May  5 18:08:31 2016  Yuichiro Kaneko  <yui-knk@ruby-lang.org>
5251         * test/ruby/test_complexrational.rb: Remove duplicated raise.
5253 Thu May  5 14:41:05 2016  Yuichiro Kaneko  <yui-knk@ruby-lang.org>
5255         * string.c (rb_str_sub): Fix a special match variable name.
5256           [ci skip]
5258 Thu May  5 12:22:17 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5260         * vm_eval.c (rb_eval_cmd, rb_catch_obj): use TH_JUMP_TAG with the
5261           same rb_thread_t used for TH_PUSH_TAG, instead of JUMP_TAG with
5262           the current thread global variable.
5264 Thu May  5 10:49:33 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5266         * random.c (fill_random_bytes_syscall): use arc4random_buf if
5267           available.
5269 Wed May  4 23:13:58 2016  Yuichiro Kaneko  <yui-knk@ruby-lang.org>
5271         * numeric.c (fix_plus): Remove rb_nucomp_add prototype
5272           declaration.
5274         * numeric.c (fix_mul): Remove rb_nucomp_mul prototype
5275           declaration.
5277         * internal.h (rb_nucomp_add, rb_nucomp_mul): add prototype
5278           declarations.
5280 Wed May  4 18:38:00 2016  Kazuki Tsujimoto  <kazuki@callcc.net>
5282         * lib/net/http/header.rb (Net::HTTPHeader#{each_header,each_name,
5283           each_capitalized_name,each_value,each_capitalized}): Return
5284           sized enumerators.
5286         * test/net/http/test_httpheader.rb: add test for above.
5288 Wed May  4 17:53:15 2016  Kazuki Tsujimoto  <kazuki@callcc.net>
5290         * lib/set.rb (Set#{delete_if,keep_if,collect!,reject!,select!,classify,divide},
5291           SortedSet#{delete_if,keep_if}): Return sized enumerators.
5293         * test/test_set.rb: add test for above.
5295 Tue May  3 23:25:48 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
5297         * numeric.c: [DOC] Update result of 123456789 ** -2.
5298           [ruby-dev:49606] [Bug #12339]
5300 Tue May  3 23:13:16 2016  Yuichiro Kaneko  <yui-knk@ruby-lang.org>
5302         * internal.h (RCOMPLEX_SET_IMAG): undef RCOMPLEX_SET_IMAG
5303           instead of duplicated undef RCOMPLEX_SET_REAL.
5305 Tue May  3 22:55:07 2016  Yuichiro Kaneko  <yui-knk@ruby-lang.org>
5307         * complex.c (rb_complex_set_imag): Fix to properly set imag
5308           of complex.
5310 Tue May  3 22:19:55 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5312         * configure.in (warnflags): use -std=gnu99 instead of
5313           -std=iso9899:1999. [Feature #12336]
5315 Tue May  3 22:10:09 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5317         * string.c (count_utf8_lead_bytes_with_word): Use __builtin_popcount
5318           only if it can use SSE 4.2 POPCNT whose latency is 3 cycle.
5320         * internal.h (rb_popcount64): use __builtin_popcountll because now
5321           it is in fast path.
5323 Tue May  3 14:19:18 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5325         * parse.y (new_if_gen): set newline flag to NODE_IF to trace all
5326           if/elsif statements.  [ruby-core:67720] [Bug #10763]
5328 Tue May  3 05:35:54 2016  Eric Wong  <e@80x24.org>
5330         * process.c (disable_child_handler_fork_child):
5331           initialize handler for SIGPIPE for !POSIX_SIGNAL
5333 Mon May  2 23:03:42 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
5335         * win32/win32.c, include/ruby/win32.h (rb_w32_utruncate): implements new
5336           truncate alternative which accepts UTF-8 path.
5338         * file.c (truncate): use above function.
5339           [Bug #12340]
5341 Mon May  2 20:59:21 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5343         * re.c (str_coderange): to avoid function call when the string already
5344           has coderange information.
5346         * re.c (rb_reg_prepare_enc): add shortcut path when the regexp has
5347           the same encoding of given string.
5349         * re.c (rb_reg_prepare_re): avoid duplicated allocation of
5350           onig_errmsg_buffer.
5353 Mon May  2 12:34:52 2016  Tanaka Akira  <akr@fsij.org>
5355         * test/ruby/test_refinement.rb (test_inspect): Use Integer instead of
5356           Fixnum.
5358 Mon May  2 06:58:38 2016  Tanaka Akira  <akr@fsij.org>
5360         * complex.c: Don't refer rb_cFixnum and rb_cBignum.
5361           (k_fixnum_p): Use FIXNUM_P.
5362           (k_bignum_p): Use RB_TYPE_P.
5364 Mon May  2 01:27:59 2016  Tanaka Akira  <akr@fsij.org>
5366         * test/ruby/test_numeric.rb (test_step): Use Integer::FIXNUM_MAX.
5368 Mon May  2 01:15:01 2016  Tanaka Akira  <akr@fsij.org>
5370         * test/ruby/test_module.rb (test_name): Use Integer instead of Fixnum.
5372 Mon May  2 01:00:04 2016  Tanaka Akira  <akr@fsij.org>
5374         * test/lib/test/unit/assertions.rb (assert_fixnum): Defined.
5375           (assert_bignum): Defined.
5377         * test/ruby/test_bignum.rb: Use assert_bignum.
5379         * test/ruby/test_integer_comb.rb: Use assert_fixnum and assert_bignum.
5381         * test/ruby/test_optimization.rb: Ditto.
5383 Mon May  2 00:41:53 2016  Tanaka Akira  <akr@fsij.org>
5385         * vm_trace.c (recalc_remove_ruby_vm_event_flags): Add a cast to
5386           avoid signed integer overflow.
5388 Mon May  2 00:06:04 2016  Tanaka Akira  <akr@fsij.org>
5390         * test/lib/envutil.rb: Define Integer::{FIXNUM_MIN,FIXNUM_MAX}.
5392         * test/ruby/test_bignum.rb: Use Integer::{FIXNUM_MIN,FIXNUM_MAX}.
5394         * test/ruby/test_bignum.rb: Ditto.
5396         * test/ruby/test_integer_comb.rb: Ditto.
5398         * test/ruby/test_marshal.rb: Ditto.
5400         * test/ruby/test_optimization.rb: Ditto.
5402 Sun May  1 23:59:59 2016  Kenta Murata  <mrkn@mrkn.jp>
5404         * array.c (rb_ary_sum): fix for mathn
5406         * test/ruby/test_array.rb (test_sum): ditto.
5408 Sun May  1 23:51:54 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
5410         * test/lib/test/unit.rb (Options#non_options): fixed wrong regexp.
5411           if both positives and negatives were specified, positives had to
5412           be specified from the beginning.
5414 Sun May  1 21:00:07 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
5416         * win32/win32.c: drop Win2K support.
5418 Sun May  1 20:39:47 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
5420         * cont.c, hash.c, random.c, win32/win32.c: cleanup some Win9x/ME/NT4
5421           support leftovers.
5422           [fix GH-1328] patched by @cremno
5424 Sun May  1 07:30:44 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5426         * string.c (search_nonascii): use nlz on big endian environments.
5428         * internal.h (nlz_intptr): defined.
5430 Sun May  1 00:03:30 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5432         * configure.in (__builtin_ctz): check.
5434         * configure.in (__builtin_ctzll): check.
5436         * internal.h (rb_popcount32): defined for ntz_int32.
5437           it can use __builtin_popcount but this function is not used on
5438           GCC environment because it uses __builtin_ctz.
5439           When another function uses this, using __builtin_popcount
5440           should be re-considered.
5442         * internal.h (rb_popcount64): ditto.
5444         * internal.h (ntz_int32): defined for ntz_intptr.
5446         * internal.h (ntz_int64): defined for ntz_intptr.
5448         * internal.h (ntz_intptr): defined as ntz for uintptr_t.
5450         * string.c (search_nonascii): unroll and use ntz.
5452 Sat Apr 30 21:54:13 2016  Tanaka Akira  <akr@fsij.org>
5454         * numeric.c (Init_Numeric): Gather Fixnum method definitions.
5456 Sat Apr 30 21:28:14 2016  Tanaka Akira  <akr@fsij.org>
5458         * numeric.c (rb_int_div): Define Integer#/.
5460         * bignum.c (rb_big_div): Don't define Bignum#/.
5462         * lib/mathn.rb (Integer#/): Replace Integer#/ instead of Bignum#/.
5464 Sat Apr 30 21:11:08 2016  Tanaka Akira  <akr@fsij.org>
5466         * numeric.c (rb_int_plus): Define Integer#+.
5468         * bignum.c (rb_big_plus): Don't define Bignum#+.
5470 Sat Apr 30 21:01:20 2016  Tanaka Akira  <akr@fsij.org>
5472         * numeric.c (rb_int_minus): Define Integer#-.
5474         * bignum.c (rb_big_minus): Don't define Bignum#-.
5476 Sat Apr 30 20:53:33 2016  Tanaka Akira  <akr@fsij.org>
5478         * numeric.c (rb_int_mul): Define Integer#*.
5480         * bignum.c (rb_big_mul): Don't define Bignum#*.
5482 Sat Apr 30 20:30:44 2016  Tanaka Akira  <akr@fsij.org>
5484         * numeric.c (rb_int_modulo): Define Integer#%.
5486         * bignum.c (rb_big_modulo): Don't define Bignum#%.
5488 Sat Apr 30 20:17:08 2016  Tanaka Akira  <akr@fsij.org>
5490         * numeric.c (int_equal): Define Integer#==.
5492         * bignum.c (rb_big_eq): Don't define Bignum#==.
5494 Sat Apr 30 19:41:15 2016  Tanaka Akira  <akr@fsij.org>
5496         * numeric.c (int_gt): Define Integer#>.
5498         * bignum.c (rb_big_gt): Don't define Bignum#>.
5499           Renamed from big_gt.
5501         * internal.h (rb_big_gt): Declared.
5503 Sat Apr 30 19:24:40 2016  Tanaka Akira  <akr@fsij.org>
5505         * numeric.c (int_ge): Define Integer#>=.
5507         * bignum.c (rb_big_ge): Don't define Bignum#>=.
5508           Renamed from big_ge.
5510         * internal.h (rb_big_ge): Declared.
5512 Sat Apr 30 19:20:40 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
5514         * doc/standard_library.rdoc: Remove obsoleted classes and modules.
5516 Sat Apr 30 19:09:23 2016  Tanaka Akira  <akr@fsij.org>
5518         * numeric.c (int_lt): Define Integer#<.
5520         * bignum.c (rb_big_lt): Don't define Bignum#<.
5521           Renamed from big_lt.
5523         * internal.h (rb_big_lt): Declared.
5525 Sat Apr 30 18:44:05 2016  Tanaka Akira  <akr@fsij.org>
5527         * numeric.c (int_le): Define Integer#<=.
5529         * bignum.c (rb_big_le): Don't define Bignum#<=.
5530           Renamed from big_le.
5532         * internal.h (rb_big_le): Declared.
5534 Sat Apr 30 18:11:44 2016  Tanaka Akira  <akr@fsij.org>
5536         * bignum.c (Init_Bignum): Define Integer::GMP_VERSION.
5538 Sat Apr 30 16:58:18 2016  Tanaka Akira  <akr@fsij.org>
5540         * numeric.c (int_remainder): Define Integer#remainder.
5542         * bignum.c (rb_big_remainder): Don't define Bignum#remainder.
5544         * internal.h (rb_big_remainder): Declared.
5546 Sat Apr 30 15:29:24 2016  Tanaka Akira  <akr@fsij.org>
5548         * numeric.c (rb_int_uminus): {Fixnum,Bignum}#-@ is unified into
5549           Integer.
5551         * bignum.c (rb_big_uminus): Don't define Bignum#-@.
5553 Sat Apr 30 14:42:20 2016  Tanaka Akira  <akr@fsij.org>
5555         * numeric.c (rb_int_idiv): {Fixnum,Bignum}#div is unified into
5556           Integer.
5558         * bignum.c (rb_big_idiv): Don't define Bignum#div.
5560 Sat Apr 30 14:25:55 2016  Tanaka Akira  <akr@fsij.org>
5562         * numeric.c (rb_int_modulo): {Fixnum,Bignum}#modulo is unified into
5563           Integer.
5565         * bignum.c (rb_big_modulo): Don't define Bignum#modulo.
5567 Sat Apr 30 14:04:30 2016  Tanaka Akira  <akr@fsij.org>
5569         * numeric.c (int_divmod): {Fixnum,Bignum}#divmod is unified into
5570           Integer.
5572         * bignum.c (rb_big_divmod): Don't define Bignum#divmod.
5574 Sat Apr 30 13:20:00 2016  Tanaka Akira  <akr@fsij.org>
5576         * numeric.c (int_fdiv): {Fixnum,Bignum}#fdiv is unified into
5577           Integer.
5579         * bignum.c (rb_big_fdiv): Don't define Bignum#fdiv.
5581 Sat Apr 30 12:25:43 2016  Tanaka Akira  <akr@fsij.org>
5583         * numeric.c (rb_int_pow): {Fixnum,Bignum}#** is unified into
5584           Integer.
5586         * bignum.c (rb_big_pow): Don't define Bignum#**.
5588 Sat Apr 30 12:28:59 2016  Tanaka Akira  <akr@fsij.org>
5590         * bignum.c (rb_big_comp): Renamed from rb_big_neg.
5592         * numeric.c (fix_comp): Renamed from fix_rev.
5594 Sat Apr 30 12:25:43 2016  Tanaka Akira  <akr@fsij.org>
5596         * numeric.c (int_comp): {Fixnum,Bignum}#~ is unified into
5597           Integer.
5599         * bignum.c (rb_big_neg): Don't define Bignum#~.
5601         * internal.h (rb_big_neg): Declared.
5603 Sat Apr 30 12:07:42 2016  Tanaka Akira  <akr@fsij.org>
5605         * numeric.c (int_and): {Fixnum,Bignum}#& is unified into
5606           Integer.
5608         * bignum.c (rb_big_and): Don't define Bignum#&.
5610 Sat Apr 30 11:56:15 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5612         * ext/thread: removed dummy extension library.  thread_sync.c
5613           provides "thread.rb" already.
5615 Sat Apr 30 11:53:48 2016  Tanaka Akira  <akr@fsij.org>
5617         * numeric.c (int_or): {Fixnum,Bignum}#| is unified into
5618           Integer.
5620         * bignum.c (rb_big_or): Don't define Bignum#|.
5622 Sat Apr 30 11:18:47 2016  Yuichiro Kaneko  <yui-knk@ruby-lang.org>
5624         * vm_trace.c: Fix typos. [ci skip]
5626 Sat Apr 30 10:09:04 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5628         * ext/pty/pty.c (establishShell): honor USER environment variable
5629           and login name over uid, one uid can be shared by some login
5630           names.
5632 Fri Apr 29 22:40:28 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5634         * doc/maintainers.rdoc (ext/io/nonblock): still maintained, as
5635           well as ext/io/wait, which is the origin.
5637 Fri Apr 29 21:18:12 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
5639         * doc/maintainers.rdoc (ext/win32): of course, it's still maintained.
5641 Fri Apr 29 21:03:10 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
5643         * gems/bundled_gems: Update latest gems, test-unit-3.1.8 and rake-11.1.2.
5645 Fri Apr 29 20:43:02 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
5647         * doc/maintainers.rdoc: Update latest maintainers list on Ruby 2.4
5649 Fri Apr 29 19:52:45 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
5651         * doc/maintainers.rdoc: Removed deprecated entries. These are already deleted.
5653 Fri Apr 29 19:48:45 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
5655         * doc/maintainers.rdoc: Removed Ruby 1.8 entries. It's not necessary to
5656           Ruby 2.4 or later.
5658 Thu Apr 28 17:03:17 2016  Nicholas Maccharoli  <nmaccharoli@gmail.com>
5660         * hash.c (rb_hash_update_{block,func}_callback): dry up hash
5661           update callback code.  [Fix GH-1338]
5663 Thu Apr 28 16:52:05 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5665         * re.c (rb_reg_prepare_enc): use rb_enc_asciicompat(enc) instead of
5666           rb_enc_str_asciicompat_p(str) to avoid useless rb_enc_get(str) call.
5668 Thu Apr 28 16:33:41 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5670         * lib/optparse.rb: [DOC] fix example code.  base on the code by
5671           Semyon Gaivoronskiy in [ruby-core:75224].  [Bug #12323]
5673 Thu Apr 28 09:33:03 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
5675         * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.6.4.
5676           Please see entries of 2.6.4 on
5677           https://github.com/rubygems/rubygems/blob/master/History.txt
5679 Thu Apr 28 04:49:07 2016  Rei Odaira  <Rei.Odaira@gmail.com>
5681         * configure.in (rb_cv_lgamma_r_pm0): check if lgamma_r(+0.0)
5682           returns positive infinity, in addition to lgamma_r(-0.0).
5683           AIX returns an incorrect result of negative infinity.
5685         * math.c (ruby_lgamma_r): handle +0.0, in addition to -0.0.
5687 Thu Apr 28 01:11:14 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5689         * time.c: define _DEFAULT_SOURCE because glibc 2.20 deprecates
5690           _BSD_SOURCE.
5691           https://sourceware.org/glibc/wiki/Release/2.20
5693 Thu Apr 28 00:27:55 2016  Tanaka Akira  <akr@fsij.org>
5695         * numeric.c (int_xor): {Fixnum,Bignum}#^ is unified into
5696           Integer.
5698         * bignum.c (rb_big_xor): Don't define Bignum#^.
5700 Wed Apr 27 20:53:59 2016  Tanaka Akira  <akr@fsij.org>
5702         * numeric.c (int_aref): {Fixnum,Bignum}#[] is unified into
5703           Integer.
5705         * bignum.c (rb_big_aref): Don't define Bignum#<<.
5707         * internal.h (rb_big_aref): Declared.
5709 Wed Apr 27 16:10:35 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5711         * tool/instruction.rb: fix to follow current implementation.
5713 Wed Apr 27 15:47:54 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5715         * ext/stringio/stringio.c (strio_s_new): warn if a block is given,
5716           as well as IO.new.
5718 Wed Apr 27 14:29:47 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5720         * error.c (ruby_only_for_internal_use): raise fatal error when
5721           deprecated function only for internal use is called, not just a
5722           warning.
5724 Tue Apr 26 23:42:30 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
5726         * tool/redmine-backporter.rb (rel): should not raise exceptions even if
5727           the user input is wrong.  only reports the error and continue process.
5729 Tue Apr 26 23:35:23 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5731         * ruby.c (process_options): convert -e script to the encoding
5732           given by a command line option on Windows.  assume it is the
5733           expected encoding.  [ruby-dev:49461] [Bug #11900]
5735 Tue Apr 26 21:11:02 2016  Tanaka Akira  <akr@fsij.org>
5737         * numeric.c (rb_int_lshift): {Fixnum,Bignum}#<< is unified into
5738           Integer.
5740         * bignum.c (rb_big_lshift): Don't define Bignum#<<.
5742 Tue Apr 26 20:59:40 2016  Tanaka Akira  <akr@fsij.org>
5744         * numeric.c (rb_int_rshift): {Fixnum,Bignum}#>> is unified into
5745           Integer.
5747         * bignum.c (rb_big_rshift): Don't define Bignum#>>.
5749 Tue Apr 26 20:46:16 2016  Tanaka Akira  <akr@fsij.org>
5751         * numeric.c (int_size): {Fixnum,Bignum}#size is unified into Integer.
5753         * bignum.c (rb_big_size_m): Don't define Bignum#size.
5755         * internal.h (rb_big_size_m): Declared.
5757 Tue Apr 26 20:09:08 2016  Tanaka Akira  <akr@fsij.org>
5759         * numeric.c (rb_int_bit_length): {Fixnum,Bignum}#bit_length is
5760           unified into Integer.
5762         * bignum.c (rb_big_bit_length): Don't define Bignum#bit_length.
5764         * internal.h (rb_big_bit_length): Declared.
5766 Tue Apr 26 19:56:16 2016  Tanaka Akira  <akr@fsij.org>
5768         * numeric.c (int_abs): Integer#{abs,magnitude} moved from
5769           Fixnum and Bignum.
5771         * bignum.c (rb_big_abs): Don't define Bignum#{abs,magnitude}.
5773         * internal.h (rb_big_abs): Declared.
5775 Mon Apr 25 14:39:11 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5777         * ext/rbconfig/sizeof/extconf.rb: just check the existence of each
5778           types, to reduce configuration time, especially cross-compiling.
5780         * template/sizes.c.tmpl: calculate sizes of checked types at
5781           compilation time.
5783 Mon Apr 25 11:27:27 2016  Marcus Stollsteimer  <sto.mar@web.de>
5785         * doc/extension.rdoc: Improvements to english grammars.
5786           [Bug #12246][ruby-core:74792][ci skip]
5788 Mon Apr 25 11:17:50 2016  Marcus Stollsteimer  <sto.mar@web.de>
5790         * encoding.c: Fix return value of `Encoding::ISO8859_1.name`
5791           [Bug #12313][ruby-core:75147][ci skip]
5792         * ext/bigdecimal/bigdecimal.c: Fix code sample of `BigDecimal.new`
5794 Sun Apr 24 23:29:16 2016  Rei Odaira  <Rei.Odaira@gmail.com>
5796         * configure.in: add missing -lm for AIX.
5798 Sun Apr 24 18:33:58 2016  Kazuki Tsujimoto  <kazuki@callcc.net>
5800         * vm_insnhelper.c (INLINE): disable r54738 if __NO_INLINE__ is defined.
5801           It caused "undefined reference to `vm_getivar'".
5803 Sun Apr 24 09:32:12 2016  Yuichiro Kaneko  <yui-knk@ruby-lang.org>
5805         * test/ruby/test_array.rb: Add test cases for Array#sum with
5806           non-numeric objects.
5808 Sun Apr 24 04:21:27 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5810         * vm_insnhelper.c (INLINE): define as `inline` when it is optimized.
5811           define as `static inline` when it is not optimized to keep
5812           the symbol generated.
5814         * vm_insnhelper.c (vm_getivar): use `INLINE` to force inline
5815           so that a compiler inlines it into vm_getinstancevariable
5816           and optimizes out is_attr and related branches.
5818         * vm_insnhelper.c (vm_getivar): use `inline` to recommend inline.
5819           Without this vm1_ivar_set is degraded.
5821           benchmark results:
5822           minimum results in each 5 measurements.
5823           Execution time (sec)
5824           name    ruby 2.4.0dev (2016-04-23 trunk 54727) [x86_64-linux]   ruby 2.4.0dev (2016-04-23 trunk 54733) [x86_64-linux]       built-ruby
5825           loop_whileloop 0.641                                                   0.642 0.646
5826           vm1_ivar* 1.002                                                   0.999 0.831
5827           vm1_ivar_set* 0.369                                                   1.106 0.362
5829           Speedup ratio: compare with the result of `ruby 2.4.0dev (2016-04-23
5830           trunk 54727) [x86_64-linux]' (greater is better)
5831           name    ruby 2.4.0dev (2016-04-23 trunk 54733) [x86_64-linux]
5832           built-ruby
5833           loop_whileloop
5834           0.998        0.991
5835           vm1_ivar*
5836           1.003        1.205
5837           vm1_ivar_set*
5838           0.334        1.018
5840 Sat Apr 23 18:01:21 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5842         * vm_insnhelper.c (vm_getivar): specify inline instead of static inline.
5843           vm_getivar is called by vm_call_ivar and vm_getinstancevariable.
5844           At least with GCC 4.8 and 5.3 on Linux, they are inlining it into
5845           vm_call_ivar but not vm_getinstancevariable.
5846           By `inline`, they correctly inline it and gains performance.
5848           Speedup ratio: compare with the result of `ruby 2.4.0dev (2016-04-23
5849           trunk 54727) [x86_64-linux]' (greater is better)
5850           name    built-ruby
5851           loop_whileloop       1.001
5852           vm1_ivar*            1.189
5853           vm1_ivar_set*        1.024
5855           Note the `inline`'s meaning is different between old GCC
5856           and C99. Old GCC's inline means C99's extern inline.
5857           https://gcc.gnu.org/onlinedocs/gcc/Inline.html
5858           Since Ruby specify -std=iso9899:1999, it works like C99.
5860 Sat Apr 23 16:11:39 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5862         * include/ruby/ruby.h (rb_mul_size_overflow): use UNLIKELY
5863           by user side to improve generality.
5865 Sat Apr 23 16:10:02 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5867         * include/ruby/ruby.h (RB_LIKELY): use prefix in ruby.h.
5869         * intern.h (LIKELY): define with RB_LIKELY.
5871 Sat Apr 23 13:27:25 2016  Yuichiro Kaneko  <yui-knk@ruby-lang.org>
5873         * NEWS: Add descriptions for Time#to_time updates.
5874           [Bug #12271]
5876 Sat Apr 23 13:21:24 2016  Yuichiro Kaneko  <yui-knk@ruby-lang.org>
5878         * NEWS: Add descriptions for DateTime#to_time updates.
5879           [Bug #12189]
5881 Sat Apr 23 11:21:27 2016  Marcus Stollsteimer  <sto.mar@web.de>
5883         * ext/date/date_core.c (Init_date_core): [DOC] Convert DateTime
5884           documentation to RDoc from Markdown.
5885           [ruby-core:75136] [Bug #12311]
5887 Sat Apr 23 09:03:35 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5889         * ruby.c: cygwin does not use w32_cmdvector, command line can be
5890           other than UTF-8.  [ruby-dev:49519] [Bug #12184]
5892 Sat Apr 23 01:00:03 2016  Rei Odaira  <Rei.Odaira@gmail.com>
5894         * configure.in: don't use the system-provided round(3) on AIX.
5895           In AIX, round(0.49999999999999994) returns 1.0.
5896           Use round() in numeric.c instead.
5898 Fri Apr 22 21:00:44 2016  Tanaka Akira  <akr@fsij.org>
5900         * test/ruby/test_time_tz.rb: Tests depends on Europe/Moscow removed
5901           to avoid test failures due to the tzdata change.
5902           https://github.com/eggert/tz/commit/8ee11a301cf173afb0c76e0315b9f9ec8ebb9d95
5903           Found by naruse.
5905 Fri Apr 22 20:18:40 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5907         * include/ruby/ruby.h (rb_mul_size_overflow): added to handle
5908           mul overflow efficiently.
5910         * include/ruby/ruby.h (rb_alloc_tmp_buffer2): use rb_mul_size_overflow
5911           and avoid division where it can define DSIZE_T.
5913         * gc.c (xmalloc2_size): moved from ruby.h and use rb_mul_size_overflow.
5915 Fri Apr 22 20:34:04 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5917         * time.c (time_asctime): [DOC] add ctime example, not only
5918           asctime.  [ruby-core:75126] [Bug #12310]
5920 Fri Apr 22 18:44:32 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5922         * variable.c: use uint32_t instead of long to avoid confusion about
5923           the type of ivtbl->numiv.
5925 Fri Apr 22 15:09:27 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5927         * eval_jump.c (exec_end_procs_chain): restore previous error info
5928           for each end procs.  [ruby-core:75038] [Bug #12302]
5930 Fri Apr 22 15:04:56 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
5932         * tool/redmine-backporter.rb: the fullpath of merger.rb is too long to
5933           copy&paste on Windows.  show shorter name instead on the platform.
5934           I'm sure that the user of this command on Windows is only me.
5936 Fri Apr 22 14:52:04 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
5938         * tool/merger.rb: remove temporary file.
5940 Fri Apr 22 11:27:03 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
5942         * lib/net/http.rb: Improve documentation for SSL requests via GET method.
5943           [fix GH-1325][ci skip] Patch by @jsyeo
5945 Fri Apr 22 10:51:13 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
5947         * lib/webrick/ssl.rb: Support to add SSLCiphers option.
5948           [fix GH-1321] Patch by @rhadoo
5950 Fri Apr 22 10:43:19 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
5952         * file.c, win32/file.c: Removed obsoleted safe level checks.
5953           [fix GH-1327] Patch by @cremno
5955 Fri Apr 22 10:01:48 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
5957         * benchmark/bm_so_meteor_contest.rb: fix a typo.
5958           [fix GH-1330][ci skip] Patch by @sachin21
5960 Fri Apr 22 04:57:01 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5962         * gc.c (rb_alloc_tmp_buffer_with_count): added like xmalloc2 to
5963           avoid duplicated check of size.
5965         * gc.c (ruby_xmalloc2): added to keep separate layers.
5967         * include/ruby/ruby.h (rb_alloc_tmp_buffer2): added to check
5968           the size more statically.
5970 Fri Apr 22 04:54:40 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5972         * include/ruby/ruby.h (LIKELY): moved from internal.h.
5974         * include/ruby/ruby.h (UNLIKELY): ditto.
5976 Thu Apr 21 01:44:19 2016  NARUSE, Yui  <naruse@ruby-lang.org>
5978         * gc.c (objspace_malloc_prepare): remove size check because it is
5979           used by objspace_xmalloc and objspace_xcalloc.
5980           objspace_xmalloc introduces its own check in this commit.
5981           objspace_xcalloc checks with xmalloc2_size (ruby_xmalloc2_size).
5983         * gc.c (objspace_xmalloc0): common xmalloc function.
5985         * gc.c (objspace_xmalloc): introduce its own size check.
5987         * gc.c (objspace_xmalloc2): separated from ruby_xmalloc2 to clarify
5988           the layer who has the responsibility to check the size.
5990         * gc.c (objspace_xrealloc): remove duplicated size check.
5992         * gc.c (ruby_xmalloc2): use objspace_xmalloc2.
5994         * include/ruby/ruby.h (ruby_xmalloc2_size): follow the size limit
5995           as SSIZE_MAX. Note that ISO C says size_t is unsigned integer.
5997 Thu Apr 21 12:14:04 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
5999         * configure.in: check if succeeded in creating config.h.
6001         * tool/ifchange: ignore failures when TEST_COLORS unmatched. just
6002           use the default value if expected name is not contained in it.
6003           [ruby-core:75046] [Bug #12303]
6005 Wed Apr 20 17:33:31 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6007         * ext/cgi/escape/escape.c (cgiesc_unescape): define unescape
6008           method instead of _unescape, and should pass the optional
6009           argument to the super method.
6011         * lib/cgi/util.rb (CGI::Util#_unescape): remove intermediate
6012           method.
6014 Wed Apr 20 15:52:28 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6016         * error.c (syntax_error_initialize): move the default message,
6017           "compile error", from parse.y.  the default parameter should
6018           belong to the class definition.
6020         * parse.y (yycompile0): use the default parameter.
6022 Wed Apr 20 10:25:53 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6024         * compile.c (append_compile_error): use rb_syntax_error_append.
6026         * error.c (rb_syntax_error_append): append messages into a
6027           SyntaxError exception instance.
6029         * parse.y (yycompile0): make new SyntaxError instance in main
6030           mode, otherwise error_buffer should be a SyntaxError if error
6031           has occurred.
6033 Tue Apr 19 17:42:47 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6035         * error.c (err_vcatf): rename, and separate appending message from
6036           creating a string buffer.
6038         * error.c (rb_syntax_error_append): merge rb_error_vsprintf and
6039           rb_compile_err_append.
6041         * parse.y (parser_compile_error): use rb_syntax_error_append.
6043 Tue Apr 19 13:46:19 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6045         * compile.c (append_compile_error, compile_bug): pass iseq and get
6046           error info and file from it, not by the thread error info.
6048         * error.c (rb_report_bug_valist): take va_list instead of variadic
6049           arguments, and just report the bug but not abort.
6051 Tue Apr 19 13:18:12 2016  Naotoshi Seo  <sonots@gmail.com>
6053         * lib/time.rb: revert r54167 because it would break
6054           backward compatibilities, and it is documented that
6055           Time.parse does not take into account time zone
6056           abbreations other than ones described in RFC 822
6058 Tue Apr 19 13:12:03 2016  Naotoshi Seo  <sonots@gmail.com>
6060         * ChangeLog: Fix dates of previous commits
6062 Tue Apr 19 12:45:03 2016  Naotoshi Seo  <sonots@gmail.com>
6064         * ChangeLog: Add descriptions for logger updates
6065         * NEWS: Add descriptions for logger updates
6067 Tue Apr 19 12:45:02 2016  Naotoshi Seo  <sonots@gmail.com>
6069         * lib/logger.rb: Add shift_period_suffix option
6071 Tue Apr 19 12:45:01 2016  Naotoshi Seo  <sonots@gmail.com>
6073         * lib/logger.rb: Allow specifying logger parameters in constructor
6074           such as level, progname, datetime_format, formatter.
6076 Mon Apr 18 16:07:01 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6078         * compile.c (iseq_peephole_optimize): should not replace the
6079           current target INSN, not to follow the replaced dangling link in
6080           the caller.  [ruby-core:74993] [Bug #11816]
6082 Mon Apr 18 12:56:31 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6084         * numeric.c (flo_truncate): add an optional parameter, digits, as
6085           well as Float#round.  [Feature #12245]
6087         * numeric.c (int_truncate): add an optional parameter, digits, as
6088           well as Integer#round.  [Feature #12245]
6090 Sun Apr 17 04:18:56 2016  CHIKANAGA Tomoyuki  <nagachika@ruby-lang.org>
6092         * tool/redmine-backporter.rb: revisions are strings.
6094 Sat Apr 16 14:26:49 2016  Yuichiro Kaneko  <yui-knk@ruby-lang.org>
6096         * ext/date/date_core.c : remove not used f_getlocal macro.
6097           After r54553 f_getlocal macro is not used.
6099 Sat Apr 16 14:15:24 2016  Yuichiro Kaneko  <yui-knk@ruby-lang.org>
6101         * ext/date/date_core.c : remove not used f_utc6 macro.
6102           After r54169 f_utc6 macro is not used.
6104 Sat Apr 16 10:00:11 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6106         * struct.c (struct_make_members_list, rb_struct_s_def): member
6107           names should be unique. [ruby-core:74971] [Bug #12291]
6109         * struct.c (struct_make_members_list): extract making member name
6110           list from char* va_list, with creating symbols without
6111           intermediate IDs.
6113 Sat Apr 16 01:33:27 2016  CHIKANAGA Tomoyuki  <nagachika@ruby-lang.org>
6115         * tool/redmine-backporter.rb: sort revisions.
6117 Sat Apr 16 01:16:02 2016  Tanaka Akira  <akr@fsij.org>
6119         * array.c (rb_ary_sum): Don't yield same element twice.
6120           Found by nagachika.
6122 Sat Apr 16 01:03:32 2016  Tanaka Akira  <akr@fsij.org>
6124         * array.c (rb_ary_sum): Fix SEGV by [1/2r, 1].sum.
6126 Fri Apr 15 23:52:00 2016  Kenta Murata  <mrkn@mrkn.jp>
6128         * rational.c (rb_rational_plus): rename from rb_rational_add
6129           to be aligned with rb_fix_plus.
6131         * array.c (rb_ary_sum): ditto.
6133         * internal.h: ditto.
6135 Fri Apr 15 23:42:00 2016  Kenta Murata  <mrkn@mrkn.jp>
6137         * rational.c (rb_rational_add): rename from nurat_add.
6139         * array.c (rb_ary_sum): use rb_rational_add directly.
6141         * test/ruby/test_array.rb (test_sum): add assertions for an array of
6142           Rational values.
6144 Fri Apr 15 22:31:00 2016  Kenta Murata  <mrkn@mrkn.jp>
6146         * array.c (rb_ary_sum): apply the precision compensated algorithm
6147           for an array in which Rational and Float values are mixed.
6149         * test/ruby/test_array.rb (test_sum): add assertions for the above
6150           change.
6152 Fri Apr 15 22:30:01 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6154         * thread.c (rb_thread_setname): defer setting native thread name
6155           set in initialize until the native thread is created.
6156           [ruby-core:74963] [Bug #12290]
6158 Fri Apr 15 20:27:16 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
6160         * lib/irb/ext/save-history.rb: Fix NoMethodError when method is not defined.
6162 Fri Apr 15 15:38:58 2016  NARUSE, Yui  <naruse@ruby-lang.org>
6164         * common.mk (benchmark): order options for built-ruby and compare-ruby.
6166 Fri Apr 15 14:14:00 2016  Kenta Murata  <mrkn@mrkn.jp>
6168         * test/ruby/test_array.rb (test_sum): add assertions for Rational and
6169           Complex numbers.
6171 Fri Apr 15 10:07:11 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6173         * ext/io/console/console.c (console_key_pressed_p): raise the same
6174           exception, "unknown virtual key code", for names with nul chars.
6175           though console_win32_vk() considers the length and can deal with
6176           nul chars, rb_sprintf() raised at PRIsVALUE previously, so quote
6177           it if it is unprintable.
6179 Fri Apr 15 09:02:58 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6181         * ext/io/console/console.c (rb_sym2str): fallback definition for
6182           older ruby.  [ruby-core:74953] [Bug #12284]
6184 Thu Apr 14 21:46:36 2016  Tanaka Akira  <akr@fsij.org>
6186         * array.c (rb_ary_sum): Support the optional argument, init, and
6187           block.
6189 Thu Apr 14 19:02:41 2016  NARUSE, Yui  <naruse@ruby-lang.org>
6191         * lib/irb/ext/save-history.rb: suppress warning: method redefined;
6192           discarding old save_history=.
6194 Thu Apr 14 14:58:14 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6196         * ext/tk/tkutil/tkutil.c (tk_hash_kv): the third argument can be
6197           nil not only an Array.  reported by @windwiny at
6198           https://github.com/ruby/ruby/commit/cdaa94e#commitcomment-17096618
6200 Thu Apr 14 14:28:55 2016  cremno phobia  <cremno@mail.ru>
6202         * cont.c (fiber_initialize_machine_stack_context): fix wrong
6203           _MSC_VER check, should be decimal but not hexadecimal.
6204           [ruby-core:74936] [Bug #12279]
6206 Wed Apr 13 22:51:38 2016  Tanaka Akira  <akr@fsij.org>
6208         * array.c (rb_ary_sum): Array#sum is implemented.
6209           Kahan's compensated summation algorithm for precise sum of float
6210           numbers is moved from ary_inject_op in enum.c.
6212         * enum.c (ary_inject_op): Don't specialize for float numbers.
6214           [ruby-core:74569] [Feature #12217] proposed by mrkn.
6216 Wed Apr 13 15:56:35 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6218         * numeric.c (flo_ceil): add an optional parameter, digits, as
6219           well as Float#round.  [Feature #12245]
6221         * numeric.c (flo_floor): add an optional parameter, digits, as
6222           well as Float#round.  [Feature #12245]
6224         * numeric.c (int_ceil): add an optional parameter, digits, as
6225           well as Integer#round.  [Feature #12245]
6227         * numeric.c (int_floor): add an optional parameter, digits, as
6228           well as Integer#round.  [Feature #12245]
6230 Wed Apr 13 14:47:47 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6232         * file.c (Init_File): add alias File.empty? to File.zero?.
6233           [Feature #9969]
6235 Wed Apr 13 14:36:24 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6237         * parse.y (assign_in_cond): allow multiple assignment in
6238           conditional expression.  [Feature #10617]
6240 Wed Apr 13 14:11:59 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6242         * bignum.c (rb_big_size): add wrapper function of BIGSIZE and
6243           rename the method function with _m suffix.
6245         * numeric.c (int_round_zero_p): extracted from rb_int_round.
6246           optimize for Bignum, and convert VALUE returned by Numeric#size
6247           to long.
6249 Wed Apr 13 12:00:08 2016  Koichi Sasada  <ko1@atdot.net>
6251         * test/ruby/test_basicinstructions.rb: add a test to check access
6252           instance variables on special const objects.
6254           All of such objects are frozen, so that we can not set instance
6255           variables for them. But we can read instance variables and return
6256           default value (nil).
6258 Tue Apr 12 20:40:35 2016  Kaneko Yuichiro  <spiketeika@gmail.com>
6260         * ext/date/date_core.c (time_to_time): should preserve timezone
6261           info.  [ruby-core:74889] [Bug #12271]
6263 Tue Apr 12 11:51:18 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6265         * compile.c (new_label_body): initialize bit fields, since
6266           compile_data_alloc does not clear the memory.  [Bug #12082]
6268 Mon Apr 11 20:18:43 2016  Koichi Sasada  <ko1@atdot.net>
6270         * vm_backtrace.c (frame2klass): filter only for imemo_ment.
6271           T_IMEMO/imemo_iseq can be passed here.
6273 Mon Apr 11 17:43:04 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6275         * compile.c (iseq_optimize): disable tail call optimization in
6276           rescued, rescue, and ensure blocks.
6277           [ruby-core:73871] [Bug #12082]
6279 Mon Apr 11 06:54:39 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6281         * file.c (apply2files): apply to a VALUE vector instead of a
6282           temporary array.
6284 Sun Apr 10 20:54:16 2016  Joe Swatosh  <joe.swatosh@gmail.com>
6286         * ext/win32/lib/win32/registry.rb (DeleteValue, DeleteKey): fix
6287           API names.  [ruby-core:74863] [Bug #12264]
6289 Sun Apr 10 17:47:42 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6291         * file.c (rb_realpath_internal): no argument conversions since
6292           this internal function does not need to_path and encoding
6293           conversions, not to be affected by the default internal
6294           encoding.
6296 Sat Apr  9 10:03:12 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6298         * load.c (rb_f_load): raise with the original path name before
6299           encoding conversion.
6301 Sat Apr  9 02:05:10 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6303         * bignum.c (rb_cstr_parse_inum): [EXPERIMENTAL] new function to
6304           parse integer in C-string with length.  the name and the
6305           arguments may be changed in the future.
6307         * bignum.c (rb_str_to_inum): preserve encoding of the argument in
6308           error messages, and no longer needs to copy non-terminated
6309           strings.
6311         * bignum.c (rb_str2big_{poweroftwo,normal,karatsuba,gmp}): ditto.
6313 Thu Apr  7 19:04:03 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6315         * doc/regexp.rdoc (comments): [DOC] terminators cannot appear in
6316           comments.  [ruby-core:74838] [Bug #12256]
6318 Thu Apr  7 11:24:14 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6320         * ext/tk/tkutil/tkutil.c (cbsubst_initialize): fix out-of-bound
6321           access when no arguments given.  `p Tk::Event.new` crashed.
6323 Fri Apr  1 01:26:00 2016  Benoit Daloze  <eregontp@gmail.com>
6325         * ext/coverage/coverage.c: Fully reset coverage to not persist global state.
6326           It was returning old file coverages as empty arrays to the user.
6327           [ruby-core:74596] [Bug #12220]
6329         * ext/coverage/coverage.c (rb_coverages): remove unused static state.
6331         * thread.c: Moved and renamed coverage_clear_result_i to reset_coverage_i.
6333         * test/coverage/test_coverage.rb: improve precision of tests.
6335 Wed Apr  6 22:41:31 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6337         * configure.in (rb_cv_lgamma_r_m0): fix the condition for
6338           lgamma_r(-0.0).  [Bug #12249]
6340 Wed Apr  6 17:38:42 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
6342         * tool/downloader.rb (RubyGems.download): follow the change of the
6343           rubygems ssl_certs directory tree introduced by previous commit.
6345 Wed Apr  6 15:00:27 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
6347         * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.6.3.
6348           Please see entries of 2.6.3 on
6349           https://github.com/rubygems/rubygems/blob/master/History.txt
6351 Wed Apr  6 14:13:28 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6353         * configure.in (rb_cv_lgamma_r_m0): check if lgamma_r(-0.0)
6354           returns negative infinity.  [Bug #12249]
6356         * math.c (ruby_lgamma_r): define by the configured result.
6358 Wed Apr  6 10:56:15 2016  Anton Davydov  <antondavydov.o@gmail.com>
6360         * lib/logger.rb (Logger#level=): remove unnecessary local
6361           variable.
6363         * lib/logger.rb (Logger#initialize, Logger#reopen): [DOC] mention
6364           the default values.  cherrypicked from [GH-1319].
6366 Wed Apr  6 10:17:53 2016  cremno phobia  <cremno@mail.ru>
6368         * math.c (ruby_lgamma_r): missing/lgamma_r.c is used on Windows,
6369           since msvcrt does not provide it.
6371         * missing/lgamma_r.c (lgamma_r): fix lgamma(-0.0).
6372           [ruby-core:74823] [Bug #12249]
6374 Wed Apr  6 01:22:55 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
6376         * math.c (ruby_lgamma_r): mswin's lgamma_r also seems to be wrong.
6377           cf. [Bug #12249]
6379 Wed Apr  6 00:53:31 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6381         * math.c (ruby_lgamma_r): fix lgamma(-0.0) on mingw and OSX.
6383         * math.c (ruby_tgamma): fix tgamma(-0.0) on mingw.
6384           [ruby-core:74817] [Bug #12249]
6386 Tue Apr  5 14:50:28 2016  NARUSE, Yui  <naruse@ruby-lang.org>
6388         * ext/nkf/nkf-utf8/nkf.c (mime_putc): fix typo.
6389           [Bug #12202] [ruby-core:74802]
6391 Tue Apr  5 00:06:44 2016  Aeris  <aeris@imirhil.fr>
6393         * ext/openssl/ossl_ssl.c (ossl_ssl_tmp_key): Access to ephemeral
6394           TLS session key in case of forward secrecy cipher.  Only
6395           available since OpenSSL 1.0.2.  [Fix GH-1318]
6397         * ext/openssl/extconf.rb: Check for SSL_get_server_tmp_key.
6399 Mon Apr  4 23:37:05 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6401         * vm_core.h (rb_vm_struct): make at_exit a single linked list but
6402           not RArray, not to mark the registered functions by the write
6403           barrier.  based on the patches by Evan Phoenix.
6404           [ruby-core:73908] [Bug #12095]
6406 Mon Apr  4 17:43:45 2016  Koichi Sasada  <ko1@atdot.net>
6408         * gc.c: change default value of
6409           RUBY_GC_HEAP_FREE_SLOTS_MIN_RATIO 0.3 -> 0.2
6410           RUBY_GC_HEAP_FREE_SLOTS_MAX_RATIO 0.8 -> 0.65
6412           These values are same as Ruby 2.0.0.
6414           This change cause GC counts.
6415           However, generational GC reduced each (minor) GC time and
6416           increase memory locality. So that not so big impact on my
6417           benchmarking results.
6418           (surprisingly, this fix speed up programs on some cases)
6420           You can change these values by environment variables
6421           if you feel wrong.
6423 Mon Apr  4 17:36:52 2016  Koichi Sasada  <ko1@atdot.net>
6425         * gc.c (get_envparam_double): take an upper_bound.
6427           And also take an accept_zero flag which allow to accept zero
6428           even if lower_bound is set.
6430         * gc.c (ruby_gc_set_params): fix parameters.
6432           RUBY_GC_HEAP_FREE_SLOTS_MAX_RATIO set 0.9 as *lower_bound*, so that
6433           it should be upper_bound.
6434           Set RUBY_GC_HEAP_FREE_SLOTS_MIN_RATIO as lower bound.
6436           Also set lower/upper bound of RUBY_GC_HEAP_FREE_SLOTS_GOAL_RATIO to
6437           RUBY_GC_HEAP_FREE_SLOTS_MIN/MAX_RATIO.
6439 Mon Apr  4 16:41:32 2016  Koichi Sasada  <ko1@atdot.net>
6441         * vm.c (Init_VM): should pass tokens.
6443 Sun Apr  3 09:34:29 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6445         * numeric.c (flodivmod): round division if it is a finite number
6446           and module is required.
6448         * numeric.c (dbl2ival): do not round here.
6450         * numeric.c (flo_ceil): use dbl2ival.
6452         * numeric.c (flo_round): round explicitly.
6454 Sat Apr  2 15:24:18 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6456         * include/ruby/intern.h (rb_check_arity): returns argc.
6458 Fri Apr  1 20:58:33 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
6460         * enc/unicode/case-folding.rb, casefold.h: Data generation to implement
6461           swapcase functionality for titlecase characters. Swapcase isn't defined
6462           by Unicode, because the purpose/usage of swapcase is unclear anyway.
6463           The implementation follows a proposal from Nobu, swapping the case of
6464           each component of a titlecase character individually.
6465           This means that the titlecase characters have to be decomposed.
6467         * enc/unicode.c: Code using the above data.
6469         * test/ruby/enc/test_case_mapping.rb: Tests for the above.
6471 Fri Apr  1 14:55:28 2016  Kazuki Yamaguchi  <k@rhe.jp>
6473         * configure.in (AC_CONFIG_FILES): $srcdir/.git can be a file pointing
6474           the real git_dir, such as when the git working tree is a "linked
6475           working tree" (a working tree created by git-worktree). So use
6476           git-rev-parse --git-dir to check if $srcdir is the top-level of a git
6477           repository, not just checking if the $srcdir/.git directory does exist
6478           or not.  [ruby-core:74759] [Bug #12239]
6480         * tool/change_maker.rb: use tool/vcs.rb to detect VCS. This used to have
6481           its own VCS detection code, while we have tool/vcs.rb.
6483         * tool/vcs.rb (detect): remove code duplication
6485 Fri Apr  1 04:50:44 2016  Eric Wong  <e@80x24.org>
6487         * ext/openssl/ossl_ssl.c (ossl_sslctx_s_alloc):
6488           enable SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER by default
6489           [Bug #12126]
6491 Fri Apr  1 01:13:55 2016  Benoit Daloze  <eregontp@gmail.com>
6493         * thread.c (update_coverage): Do not track coverage in loaded files
6494           after Coverage.result. Avoids out-of-bounds access. [Bug #12237]
6496         * ext/coverage/coverage.c (coverage_clear_result_i): document.
6498 Thu Mar 31 19:16:16 2016  Koichi Sasada  <ko1@atdot.net>
6500         * gc.c: need to set initial value of GC_HEAP_FREE_SLOTS_GOAL_RATIO.
6502 Thu Mar 31 17:50:27 2016  Koichi Sasada  <ko1@atdot.net>
6504         * gc.c: change additional allocation policy.
6506           Introduce new environment variable
6507           RUBY_GC_HEAP_FREE_SLOTS_GOAL_RATIO (goal_ratio) to calculate the
6508           ratio of additional memory.
6510           Before this change, we add pages with the following formula
6511           (when free_slots < total_pages * RUBY_GC_HEAP_FREE_SLOTS_MIN_RATIO):
6512             next_pages = total_pages * RUBY_GC_HEAP_GROWTH_FACTOR
6514           This addition can allocate too much.
6516           With this change, we increase pages to satisfy the following formula:
6517             next_free_slots = next_total_slots * goal_ratio
6518           where
6519             next_free_slots = free_slots + adding_slots
6520             next_total_slots = total_slots + adding_slots.
6522           If you want to prepare many free slots, increase this ratio.
6524           If this variable is 0, then simply multiply
6525           RUBY_GC_HEAP_GROWTH_FACTOR.
6527         * gc.c (get_envparam_double): enable to accept 0.
6529 Thu Mar 31 17:48:25 2016  Koichi Sasada  <ko1@atdot.net>
6531         * gc.c (gc_marks_finish): fix syntax error.
6533 Thu Mar 31 16:49:36 2016  Koichi Sasada  <ko1@atdot.net>
6535         * gc.c: simplify allocate/free detecting logic at the end of marking.
6537           Before this change, heap_pages_min_slots are calculated at the
6538           beginning sweeping phase. And this value is used at the end of
6539           *next* marking phase.
6541           To simplify it, we use this value at the end of this marking phase.
6542           It means that we don't need to store this value as global state.
6544           Also heap_pages_max_slots is calculated at the begging of sweeping
6545           phase and used at the end of sweeping phase.
6546           To simplify this logic, we introduced new global value
6547           heap_pages_freeable_pages it means extra pages count we can free.
6548           gc_sweep_step() checks this value and moves empty pages to tomb_heap
6549           not more than this value.
6551           Because of this fix, heap_pages_swept_slots is no longer needed.
6553         * gc.c (rb_objspace_t::heap_pages): restruct the objspace global
6554           status.
6556           remove the following fields
6557             * swept_slots (and heap_pages_swept_slots)
6558             * min_free_slots (and heap_pages_min_free_slots)
6559             * max_free_slots (and heap_pages_max_free_slots)
6560           And add the following filed.
6561             * freeable_pages (and heap_pages_freeable_pages)
6563         * gc.c (heap_pages_free_unused_pages): unlink tomb heap pages
6564           because tomb heap should have only freeable pages.
6566         * gc.c (heap_extend_pages): add parameters for future extension.
6568 Thu Mar 31 16:43:02 2016  Koichi Sasada  <ko1@atdot.net>
6570         * gc.c: add GC parameters to configure the following values:
6571           * RUBY_GC_HEAP_FREE_SLOTS_MIN_RATIO:
6572             allocate additional pages when free slots is lower than
6573             the value (total_slots * (this ratio)).
6574           * RUBY_GC_HEAP_FREE_SLOTS_MAX_RATIO:
6575             allow to free pages when free slots is greater than
6576             the value (total_slots * (this ratio)).
6578           Before this change, these values are hard coded.
6580         * gc.c (ruby_gc_params_t): ditto.
6582         * gc.c (ruby_gc_set_params): ditto.
6584 Thu Mar 31 15:59:17 2016  Koichi Sasada  <ko1@atdot.net>
6586         * gc.c (gc_verify_heap_page): check the number of zombies.
6588         * gc.c (gc_verify_heap_pages): check also tomb heap.
6590 Thu Mar 31 15:48:18 2016  Koichi Sasada  <ko1@atdot.net>
6592         * gc.c (gc_page_sweep): return free slots count.
6594         * gc.c (gc_sweep_step): use returned free slots count.
6596         * gc.c (gc_sweep_step): change variable name `next'
6597           to `next_sweep_page'.
6599 Thu Mar 31 11:33:49 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6601         * ext/date/date_core.c (d_lite_strftime, dt_lite_strftime): [DOC]
6602           fix indent not to be a big sole verbatim.
6604 Thu Mar 31 11:18:19 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6606         * ext/date/date_core.c (Init_date_core): [DOC] fix misplaced doc
6607           of DateTime.  [ruby-core:74729] [Bug #12233]
6609 Thu Mar 31 03:41:02 2016  NARUSE, Yui  <naruse@ruby-lang.org>
6611         * ext/nkf/nkf-utf8/nkf.c: Merge upstream 69f7e74dde.
6612           fix indent.
6614 Wed Mar 30 16:33:19 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6616         * extension.rdoc, extension.ja.rdoc: [DOC] Fix some errors.
6617           Renamed files, wrong method names or argument types; the example
6618           GetDBM macro is now updated to the current version of the actual
6619           code.  patch by Marcus Stollsteimer in [ruby-core:74690].
6620           [Bug #12228]
6622 Wed Mar 30 09:46:01 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
6624         * lib/open-uri.rb: Use `userinfo` for authenticated proxy.
6625           [fix GH-1148] Patch by @SokichiFujita
6626         * test/open-uri/test_open-uri.rb: ditto.
6627           [fix GH-1309] Patch by @jdamick
6629 Wed Mar 30 01:56:06 2016  NARUSE, Yui  <naruse@ruby-lang.org>
6631         * ext/nkf/nkf-utf8/nkf.c: Merge upstream 4f3edf80a0.
6632           patched by Anton Sivakov [Bug #12201] [Bug #12202]
6634 Wed Mar 30 01:54:30 2016  NARUSE, Yui  <naruse@ruby-lang.org>
6636         * tool/redmine-backporter.rb: add given revision to current changesets
6637           on associating the revision to the related ticket.
6639 Wed Mar 30 01:53:17 2016  NARUSE, Yui  <naruse@ruby-lang.org>
6641         * tool/merger.rb: update revision.h before merge.
6643 Tue Mar 29 19:33:54 2016  NARUSE, Yui  <naruse@ruby-lang.org>
6645         * addr2line.c: define toupper for its use. fix r54391.
6647 Tue Mar 29 19:23:46 2016  NARUSE, Yui  <naruse@ruby-lang.org>
6649         * include/ruby/ruby.h (rb_isupper, rb_islower, rb_isalpha, rb_isdigit,
6650           rb_isalnum, rb_isxdigit, rb_isblank, rb_isspace, rb_isblank,
6651           rb_iscntrl, rb_isprint, rb_ispunct, rb_isgraph,
6652           rb_tolower, rb_toupper): use inline function to avoid function call.
6654         * include/ruby/ruby.h (rb_isascii): use inline function to clarify
6655           the logic.
6657 Tue Mar 29 18:56:55 2016  NARUSE, Yui  <naruse@ruby-lang.org>
6659         * tool/redmine-backporter.rb (backport): show merger.rb's path.
6661         * tool/redmine-backporter.rb (show): show current issue again if no
6662           ticket number is given.
6664         * tool/redmine-backporter.rb (rel): show error message if current
6665           bugs.ruby-lang.org doesn't support the API.
6667 Tue Mar 29 18:54:34 2016  NARUSE, Yui  <naruse@ruby-lang.org>
6669         * tool/merger.rb: support to backport header as backport identifier.
6670           Now you can specify by 'merge revision(s) 49254: [Backport #10738]'.
6672 Tue Mar 29 16:53:44 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
6674         * enc/unicode/case-folding.rb, casefold.h: Tweaked handling of 6
6675           special cases in CaseUnfold_11_Table.
6677         * enc/unicode.c: Adjustments for above.
6679         * test/ruby/enc/test_case_mapping.rb: Tests for the above: Some tests in
6680           test_titlecase activated; test_greek added. A test in test_cherokee fixed.
6682 Tue Mar 29 13:31:00 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
6684         * enc/unicode.c: Cleaned up some comments.
6686 Tue Mar 29 13:24:56 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
6688         * enc/unicode/case-folding.rb, casefold.h: Removing data for idempotent
6689           titlecasing.
6691         * enc/unicode.c: Adjust code to data removal.
6693 Tue Mar 29 12:45:18 2016  Laurent Arnoud  <laurent@spkdev.net>
6695         * lib/webrick/httpresponse.rb: Move error_body to method. It allow to
6696           override the body more easily. [fix GH-1307]
6697         * test/webrick/test_httpresponse.rb: ditto.
6699 Tue Mar 29 06:40:53 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6701         * error.c (rb_compile_err_append): rb_thread_t::base_block is no
6702           longer used.
6704         * iseq.c (rb_iseq_compile_with_option): ditto, no protection is
6705           needed.
6707 Tue Mar 29 06:39:22 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6709         * parse.y (struct parser_params): move parse_in_eval flag from
6710           rb_thread_t.
6712         * parse.y (rb_parser_set_context): set parsing context, not only
6713           mild error flag.
6715         * iseq.c (rb_iseq_compile_with_option): the parser now refers no
6716           thread local states to be restored.
6718         * vm_eval.c (eval_string_with_cref): ditto.
6720 Mon Mar 28 21:24:02 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
6722         * numeric.c (int_pos_p): fix typos.
6724 Mon Mar 28 14:54:49 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
6726         * enc/unicode.c: Refactoring in preparation for data reduction for
6727           titlecase.
6729 Mon Mar 28 14:36:36 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
6731         * enc/unicode.c: Minor refactoring for I WITH DOT ABOVE.
6733 Mon Mar 28 14:26:24 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
6735         * enc/unicode.c: Removed code now covered by data from table.
6737 Mon Mar 28 11:49:21 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
6739         * enc/unicode.c: Adding comments. [ci skip]
6741 Mon Mar 28 11:30:23 2016  Shinichi Maeshima  <netwillnet@gmail.com>
6743         * lib/rubygems.rb: Fix `Gem.find_spec_for_exe` picks oldest gem.
6744           https://github.com/travis-ci/travis-ci/issues/5798
6745           https://github.com/rubygems/rubygems/pull/1566
6746         * test/rubygems/test_gem.rb: ditto.
6748 Mon Mar 28 11:26:31 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
6750         * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.6.2.
6751           Please see entries of 2.6.2 on
6752           https://github.com/rubygems/rubygems/blob/master/History.txt
6754 Mon Mar 28 11:02:31 2016  Hiroshi Shirosaki  <h.shirosaki@gmail.com>
6756         * lib/rubygems/test_case.rb: Fix test on Windows for inconsistent temp path.
6757           https://github.com/rubygems/rubygems/pull/1554
6758           [Bug #12193][ruby-core:74431]
6760 Mon Mar 28 08:19:49 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6762         * sprintf.c (rb_str_format): refactor floating point format of
6763           Rational by using generic Integer functions.
6765         * sprintf.c (rb_str_format): fix buffer overflow, length must be
6766           greater than precision.  reported by William Bowling <will AT
6767           wbowling.info>.
6769 Sun Mar 27 12:13:37 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6771         * sprintf.c (rb_str_format): convert Rational to floating point
6772           format by using generic Integer functions, not by methods which
6773           can be overwritten.
6775 Sat Mar 26 10:55:12 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6777         * numeric.c (rb_int2str): conversion function to String for
6778           generic Integer.
6780         * numeric.c (rb_int_round): rounding function for generic
6781           Integers.
6783         * numeric.c (rb_int_{uminus,plus,minus,mul,idiv,modulo}): basic
6784           arithmetic functions for generic Integers.
6786         * numeric.c (FIXNUM_{POSITIVE,NEGATIVE,ZERO}_P): predict macros
6787           only for Fixnum.
6789 Sat Mar 26 06:34:24 2016  NARUSE, Yui  <naruse@ruby-lang.org>
6791         * localeinit.c (rb_locale_charmap_index): fix prototype.
6792           patched by Andreas Schwab [Bug #12218]
6794 Fri Mar 25 16:40:48 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
6796         * test/ruby/enc/test_case_mapping.rb: Additional tests title case;
6797           some not yet activated.
6799 Fri Mar 25 13:38:11 2016  Kazuki Yamaguchi  <k@rhe.jp>
6801         * ext/openssl/extconf.rb: check SSL_CTX_set_next_proto_select_cb
6802           function rather than OPENSSL_NPN_NEGOTIATED macro. it exists
6803           even if it is disabled by OpenSSL configuration.
6804           [ruby-core:74384] [Bug #12182]
6806         * ext/openssl/ossl_ssl.c: update #ifdef(s) as above.
6808         * test/openssl/test_ssl.rb: skip NPN tests if NPN is disabled.
6810 Fri Mar 25 11:08:37 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6812         * lib/uri/http.rb (URI::HTTP#initialize): [DOC] fix example,
6813           missing mandatory arguments.  [ruby-core:74540] [Bug #12215]
6815 Fri Mar 25 01:50:58 2016  NARUSE, Yui  <naruse@ruby-lang.org>
6817         * thread_pthread.c (reserve_stack): fix reserving position where
6818           the stack growing bottom to top. [Bug #12118]
6820 Fri Mar 25 01:10:42 2016  Sebastian Schuberth  <sschuberth@gmail.com>
6822         * lib/mkmf.rb (find_executable0): On Windows, it is actually valid
6823           to surround individual PATH directory entries with double
6824           quotes. Remove these before joining the path as otherwise the
6825           literal quotes would become part of the path, resulting in the
6826           executable not to be found.  [Fix GH-1305]
6828 Thu Mar 24 22:38:18 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6830         * strftime.c (FMT, FMTV): remove recursive-assignments to get rid
6831           of undefined behavior.  [ruby-core:74532] [Bug #12213]
6833 Thu Mar 24 17:44:02 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6835         * strftime.c (FMT_PADDING): extract format for padding.
6837         * strftime.c (FMT_PRECISION): extract precision formula.
6839         * strftime.c (FMTV): append formatted string to expand the result.
6841 Thu Mar 24 14:20:21 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6843         * strftime.c (STRFTIME): deal with case conversion flags for
6844           recursive formats.
6846 Thu Mar 24 12:43:26 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6848         * ext/date/date_core.c (dt_lite_iso8601): strftimev() always
6849           returns a String, so append them directly.
6851         * ext/date/date_core.c (d_lite_jisx0301, iso8601_timediv),
6852           (dt_lite_jisx0301): format by the format string in local buffer
6853           to prevent intermediate strings from GC.
6855         * ext/date/date_core.c (mk_inspect_raw, mk_inspect): inspect by
6856           "%+"PRIsVALUE, to prevent intermediate strings from GC.
6858 Thu Mar 24 11:43:32 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6860         * strftime.c (rb_strftime_with_timespec): remove unnecessary
6861           check, as `s` equals to `endp` when recursed STRFTIME resized
6862           the capacity same as the size.
6864 Wed Mar 23 21:48:00 2016  Kenta Murata  <mrkn@mrkn.jp>
6866         * enum.c (ary_inject_op): put subtract operation out of if-clause.
6868 Wed Mar 23 21:38:00 2016  Kenta Murata  <mrkn@mrkn.jp>
6870         * enum.c (ary_inject_op): Use Kahan's compensated summation algorithm
6871           for summing up float values.
6873 Wed Mar 23 20:56:59 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6875         * strftime.c (rb_strftime_with_timespec): append formatted results
6876           to the given string with expanding, and also deal with NUL chars.
6878         * strftime.c (rb_strftime, rb_strftime_timespec): return formatted
6879           string, not the length put in the given buffer.
6881         * time.c (rb_strftime_alloc): no longer needs to retry with
6882           reallocating buffers.
6884         * time.c (time_strftime): no longer needs to split by NUL chars.
6886 Wed Mar 23 14:23:54 2016  NARUSE, Yui  <naruse@ruby-lang.org>
6888         * lib/rdoc/ri/driver.rb (interactive): rescue NotFoundError raised in
6889           expand_name. (display_name rescues NotFoundError by itself,
6890           the original logic looks buggy...)
6892 Wed Mar 23 11:44:53 2016  cremno  <cremno@mail.ru>
6894         * marshal.c (r_long): cast to `signed char`, which is used
6895           already, instead of SIGN_EXTEND_CHAR.
6897         * parse.y: SIGN_EXTEND_CHAR is no longer used.  [Fix GH-1302]
6899 Wed Mar 23 11:38:47 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6901         * cygwin/GNUmakefile.in (MSYS2_ARG_CONV_EXCL_PARAM):
6902           * add missing parentheses and remove double quotes.
6903           * rename to get rid of recursive references.
6904           * as --excludes-dir option is for a path name, its argument
6905             should be converted.
6906           [ruby-dev:49526] [Bug #12199]
6908 Wed Mar 23 10:39:38 2016  Koichi ITO  <koic.ito@gmail.com>
6910         * variable.c: Added documentation about order of `Module#constants`
6911           [ci skip][Bug #12121][ruby-dev:49505][fix GH-1301]
6913 Tue Mar 22 21:08:30 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
6915         * include/ruby/oniguruma.h: Additional flag for characters that are titlecase.
6917         * enc/unicode/case-folding.rb, casefold.h: Using above flag in data.
6919         * enc/unicode.c: Marking capitalized character as unmodified if it is
6920           already titlecase.
6922         * test/ruby/enc/test_case_mapping.rb: Tests for above functionality.
6924 Tue Mar 22 14:18:59 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6926         * parse.y (lambda_body, parser_yylex): warn mismatched indentation
6927           of lambda block.
6929 Tue Mar 22 11:36:49 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
6931         * time.c (wmul): wrong condition.
6932           fixed many test failures on 32bit and LLP64 platforms.
6934 Tue Mar 22 10:31:34 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
6936         * time.c (wdiv, wmod): wdivmod0() assumes the 3rd and the 4th arguments
6937           are valid pointers.
6938           maybe checking them in wdivmod0() is better manner, but I guess that
6939           passing real dummy pointers may be faster than checking and branching
6940           in wdivmod0().
6941           this commit fixes SEGV on 32bit and LLP64 platforms.
6943 Tue Mar 22 10:24:04 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
6945         * time.c (divmodv): void function never returns any value.
6947 Tue Mar 22 10:11:01 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6949         * test/lib/test/unit.rb (Test::Unit::StatusLine#failed): print
6950           failed messages only if replacing mode, otherwise defer them
6951           until the end, to get rid of interleaving failures with progress
6952           messages.  refix r54195.
6954 Tue Mar 22 03:45:03 2016  NARUSE, Yui  <naruse@ruby-lang.org>
6956         * time.c (MUL_OVERFLOW_FIXWV_P): defined for FIXWV.
6958         * time.c (wmul): use MUL_OVERFLOW_FIXWV_P and only switch.
6960         * time.c (wmul): use mul which has Fixnum optimization.
6962         * time.c (rb_time_magnify): If WIDEVALUE_IS_WIDER, wmul() has the same
6963           optimized logic, else mul() has also the similar logic for Fixnum.
6965         * time.c (rb_time_unmagnify): almost ditto.
6967 Tue Mar 22 03:10:09 2016  NARUSE, Yui  <naruse@ruby-lang.org>
6969         * time.c (divmodv): add the case both arguments are Fixnum.
6971         * time.c (wquo): use quo which has Fixnum optimization.
6973         * time.c (wdivmod0): added for WIDEVALUE_IS_WIDER.
6975         * time.c (wdivmod): use wdivmod0 and divmodv.
6976           divmodv has Fixnum optimization.
6978         * time.c (wdiv): use wdivmod0 and div to avoid the use of divmodv which
6979           calls id_quo whose return value is array.
6981         * time.c (wmod): use wdivmod0 and mod to avoid the use of divmodv which
6982           calls id_quo whose return value is array.
6984 Mon Mar 21 22:32:50 2016  NARUSE, Yui  <naruse@ruby-lang.org>
6986         * internal.h (rb_fix_divmod_fix): like r54213, use FIX2NUM only if
6987           x == FIXNUM_MIN && y == -1. This must be a rare case and it is
6988           expected compiler to handle well.
6990 Mon Mar 21 22:15:11 2016  NARUSE, Yui  <naruse@ruby-lang.org>
6992         * time.c (mod): Add Fixnum case.
6994         * time.c (quo): c can be Fixnum except a == FIXNUM_MIN && b == -1.
6995           Such case can be optimized out because quo()'s argument is constant.
6997 Mon Mar 21 22:09:24 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
6999         * internal.h (rb_fix_mul_fix): multiply converted values, not
7000           object VALUEs.
7002 Mon Mar 21 20:18:29 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7004         * common.mk (TEST_EXCLUDES, EXCLUDE_TESTFRAMEWORK): use full spell
7005           long option.
7007         * cygwin/GNUmakefile.in (MSYS2_ARG_CONV_EXCL): suppress path name
7008           conversions by msys2.  [ruby-dev:49525] [Bug #12199]
7010 Mon Mar 21 19:09:31 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7012         * string.c (enc_succ_alnum_char): try to skip an invalid character
7013           gap between GREEK CAPITAL RHO and SIGMA.
7014           [ruby-core:74478] [Bug #12204]
7016 Mon Mar 21 18:55:49 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7018         * node.c (rb_gc_mark_node): NODE_MATCH2 can have nd_args, u3,
7019           since r54100.
7021 Sun Mar 20 21:17:13 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
7023         * internal.h (rb_int128t2big): declare only when HAVE_INT128_T.
7024           fixed a compile error with VC++ introduced at r54203.
7026 Sun Mar 20 20:10:14 2016  NARUSE, Yui  <naruse@ruby-lang.org>
7028         * internal.h (DLONG): defined if long is 32bit (and LONG_LONG is 64bit;
7029           but LONG_LONG is always defined as 64bit), or there's int128_t.
7031         * internal.h (DL2NUM): defined if DLONG is defined.
7033         * internal.h (rb_fix_mul_fix): defined for `Fixnum * Fixnum`.
7035         * insns.def (opt_mul): use rb_fix_mul_fix().
7037         * numeric.c (fix_mul): ditto.
7039         * time.c (mul): ditto.
7041 Sun Mar 20 18:53:49 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7043         * numeric.c (fix_gt, fix_ge, fix_lt, fix_le): optimize comparisons
7044           Fixnum against Bignum by rb_big_cmp in inversed order without
7045           new Bignum instance.
7047 Sun Mar 20 18:44:52 2016  NARUSE, Yui  <naruse@ruby-lang.org>
7049         * time.c (add): remove FIXABLE() which is in LONG2NUM().
7051         * time.c (sub): ditto.
7053         * time.c (mul): ditto.
7055 Sun Mar 20 04:46:02 2016  NARUSE, Yui  <naruse@ruby-lang.org>
7057         * bignum.c (rb_big_cmp): reduce the code.
7059         * bignum.c (rb_big_eq): If normalized bignum is still bignum,
7060           it must be larger than fixnum.
7062 Sat Mar 20 00:58:00 2016  Kenta Murata  <mrkn@mrkn.jp>
7064         * include/ruby/intern.h (rb_big_odd_p, rb_big_even_p): move to
7065           internal.h so that they are exported only for ruby itself.
7067         * internal.h (rb_big_odd_p, rb_big_even_p): ditto.
7069 Sat Mar 19 21:56:23 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7071         * test/lib/test/unit.rb (Test::Unit::StatusLine#failed): defer
7072           failed messages until the end in verbose mode, to get rid of
7073           interleaving failures with progress messages.
7075 Sat Mar 19 21:53:35 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7077         * numeric.c (fix_cmp): invert the result as the comparison is
7078           inverted.
7080 Sat Mar 19 18:32:00 2016  Kenta Murata  <mrkn@mrkn.jp>
7082         * numeric.c (int_to_f): raise NotImplementedError when a receiver
7083           class is unknown.
7085         * test/-ext-/integer/test_my_integer.rb (test_my_integer_to_f): modify
7086           a test for the above change.
7088 Sat Mar 19 18:21:00 2016  Kenta Murata  <mrkn@mrkn.jp>
7090         * bignum.c (Bignum#<=>): remove it because they are unified with
7091           Integer#<=>.
7093         * numeric.c (Integer#<=>, Fixnum#<=>): move <=> method from Fixnum to
7094           Integer.
7096         * numeric.c (int_cmp): add this method for Integer#<=>.
7098         * test/-ext-/integer/test_my_integer.rb (test_my_integer_cmp): add a
7099           test to examine Integer#<=> for unknown subclasses.
7101 Sat Mar 19 14:46:18 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7103         * iseq.c (rb_iseq_compile_with_option): make the parser in mild
7104           error.
7106         * load.c (rb_load_internal0): ditto.
7108         * parse.y (yycompile0): return the error message within the error
7109           to be raised.  [Feature #11951]
7111         * parse.y (parser_compile_error): accumulate error messages in the
7112           error_buffer.
7114 Sat Mar 19 03:57:13 2016  NARUSE, Yui  <naruse@ruby-lang.org>
7116         * time.c (LOCALTIME): organize #ifdefs.
7118         * time.c (GMTIME): define only ifndef HAVE_STRUCT_TM_TM_GMTOFF.
7120 Sat Mar 19 03:53:31 2016  NARUSE, Yui  <naruse@ruby-lang.org>
7122         * configure.in (rb_cv_member_struct_tm_tm_gmtoff): For Linux (glibc)
7123           define _BSD_SOURCE for time.h to define struct tm.tm_gmtoff.
7125         * time.c: define _BSD_SOURCE at the top.
7127 Sat Mar 19 03:00:50 2016  Rei Odaira  <Rei.Odaira@gmail.com>
7129         * test/-ext-/time/test_new.rb (test_timespec_new): change a gmtoff
7130           test to a better one that does not depend on whether the current
7131           time is in summer time or not.
7133 Fri Mar 19 00:00:00 2016  Kenta Murata  <mrkn@mrkn.jp>
7135         * bignum.c (rb_big_to_f, Bignum#to_f): removed them because they are
7136           unified with int_to_f and Integer#to_f.
7138         * numeric.c (int_to_f): treat Bignum values directly.
7140 Fri Mar 18 23:41:00 2016  Kenta Murata  <mrkn@mrkn.jp>
7142         * numeric.c (int_to_f, fix_to_f): rename fix_to_f to int_to_f, and add
7143           treatment for subclasses which don't have definitions of to_f method.
7145         * numeric.c (Integer#to_f, Fixnum#to_f): move to_f method from Fixnum
7146           to Integer.
7148         * ext/-test-/integer/my_integer.c: define helper class for testing
7149           to_f method for a subclass of Integer.
7151         * ext/-test-/integer/extconf.rb: ditto.
7153         * ext/-test-/integer/init.c: ditto.
7155         * test/-ext-/integer/test_my_integer.rb: examine to_f method for a
7156           subclass of Integer.
7158 Fri Mar 18 22:32:00 2016  Kenta Murata  <mrkn@mrkn.jp>
7160         * include/ruby/intern.h (rb_big_hash): Move to internal.h.
7162         * internal.h: ditto.
7164 Fri Mar 18 22:10:00 2016  Kenta Murata  <mrkn@mrkn.jp>
7166         * bignum.c (Bignum#eql?): remove its definition because it is unified
7167           with Numeric#eql?.
7169         * numeric.c (num_eql): treat Bignum values directly.
7171 Fri Mar 18 21:57:00 2016  Kenta Murata  <mrkn@mrkn.jp>
7173         * bignum.c (rb_big_to_s, Bignum#to_s): remove its definition because
7174           it is unified with Integer#to_s.
7176         * numeric.c (int_to_s): treat Bignum values directly.
7178 Fri Mar 18 21:30:00 2016  Kenta Murata  <mrkn@mrkn.jp>
7180         * numeric.c (int_to_s): Move from fix_to_s.
7182         * numeric.c (Integer#to_s): Move from Fixnum#to_s.
7184 Fri Mar 18 16:22:24 2016  Victor Nawothnig  <Victor.Nawothnig@gmail.com>
7186         * parse.y (parse_numvar): NTH_REF must be less than a half of
7187           INT_MAX, as it is left-shifted to be ORed with back-ref flag.
7188           [ruby-core:74444] [Bug#12192] [Fix GH-1296]
7190 Fri Mar 18 12:25:30 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7192         * gc.c (tick): fix missing close parenthesis.  [Fix GH-1291]
7194 Fri Mar 18 10:24:12 2016  Naotoshi Seo  <sonots@gmail.com>
7196         * ext/date/date_core.c (datetime_to_time): preserve timezone info
7197           [Bug #12189] [Fix GH-1295]
7199 Fri Mar 18 10:17:00 2016  Kenta Murata  <mrkn@mrkn.jp>
7201         * bignum.c (rb_big_hash): make it public function to be available in
7202           other source files, and remove documentation comment for Bignum#hash.
7204         * bignum.c (Bignum#hash): remove its definition because it is unified
7205           with Object#hash.
7207         * include/ruby/intern.h (rb_big_hash): add a prototype declaration.
7209         * hash.c (any_hash): treat Bignum values directly.
7211 Fri Mar 18 02:35:12 2016  Naotoshi Seo  <sonots@gmail.com>
7213         * lib/time.rb (parse, strptime): Fix Time.parse/strptime does not
7214           have compatibility with DateTime.parse/strptime in terms of parsing
7215           timezone [Bug #12190] [Fix GH-1297]
7217 Fri Mar 18 02:17:00 2016  Kenta Murata  <mrkn@mrkn.jp>
7219         * numeric.c (fix_zero_p, fix_even_p, fix_odd_p): remove needless
7220           functions.
7222 Fri Mar 18 02:15:00 2016  Kenta Murata  <mrkn@mrkn.jp>
7224         * numeric.c (int_even_p): treat Fixnum and Bignum values directly.
7226 Fri Mar 18 02:07:00 2016  Kenta Murata  <mrkn@mrkn.jp>
7228         * bignum.c (Bignum#even?, Bignum#odd?): remove definitions
7229           because they are unified with Integer#even? and Integer#odd?.
7231         * numeric.c (Fixnum#zero?, Fixnum#even?, Fixnum#odd?): remove
7232           definitions because they are unified with Numeric#zero?,
7233           Integer#even?, and Integer#odd?.
7235         * numeric.c (num_zero_p, int_odd_p): treat Fixnum and
7236           Bignum values directly.
7238         * test/ruby/test_integer.rb (test_odd_p_even_p): remove meaningless
7239           test case.
7241 Fri Mar 18 01:51:00 2016  Kenta Murata  <mrkn@mrkn.jp>
7243         * bignum.c (rb_big_even_p, rb_big_odd_p): make them public functions
7244           to be available in other source files.
7246         * include/ruby/intern.h (rb_big_even_p, rb_big_odd_p): add prototype
7247           declarations.
7249 Fri Mar 18 00:25:56 2016  Tanaka Akira  <akr@fsij.org>
7251         * enum.c (ary_inject_op): Implement the specialized code for sum of
7252           float numbers.
7254 Fri Mar 18 00:15:05 2016  Yusuke Endoh  <mame@ruby-lang.org>
7256         * numeric.c (num_step): use rb_equal for zero check. rb_num_coerce_cmp
7257           created an object which caused extra overhead.
7259 Thu Mar 17 22:21:34 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7261         * include/ruby/ruby.h (RB_GC_GUARD_PTR): remove intermediate
7262           macro, and expand for each RB_GC_GUARD.  [Fix GH-1293]
7264 Thu Mar 17 22:08:33 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7266         * compile.c (iseq_specialized_instruction): move specialization
7267           for opt_newarray_max/min from translation phase.
7269 Thu Mar 17 21:52:09 2016  Yusuke Endoh  <mame@ruby-lang.org>
7271         * array.c, enum.c: make rdoc format consistent.
7273 Thu Mar 17 21:47:57 2016  Yusuke Endoh  <mame@ruby-lang.org>
7275         * NEWS: add Array#max, #min, and the optimization.  [Feature #12172]
7277 Thu Mar 17 21:45:02 2016  Yusuke Endoh  <mame@ruby-lang.org>
7279         * compile.c (NODE_CALL): add optimization shortcut for Array#max/min.
7280           Now `[x, y].max` is optimized so that a temporal array object is not
7281           created in some condition.  [Feature #12172]
7283         * insns.def (opt_newarray_max, opt_newarray_min): added.
7285 Thu Mar 17 21:35:52 2016  Yusuke Endoh  <mame@ruby-lang.org>
7287         * array.c (rb_ary_max, rb_ary_min): implement Array#max and min with
7288           arguments.  replace super call with rb_nmin_run.
7290         * enum.c (nmin_run): exported (as rb_nmin_run).
7292         * internal.h: added a prototype for rb_nmin_run.
7294 Thu Mar 17 21:24:52 2016  Yusuke Endoh  <mame@ruby-lang.org>
7296         * array.c (rb_ary_max, rb_ary_min): implement a block by itself instead
7297           of delegating Enumerable#max/min.
7299 Thu Mar 17 21:09:34 2016  Yusuke Endoh  <mame@ruby-lang.org>
7301         * array.c (rb_ary_max, rb_ary_min): Array#max and Array#min added.
7302           [Feature #12172]
7304         * internal.h (OPTIMIZED_CMP): moved from enum.c so that array.c can
7305           use it.
7307         * test/ruby/test_array.rb (test_max, test_min): tests for Array#max
7308           and Array#min.
7310         * test/ruby/test_enum.rb (test_max, test_min): revised a bit to test
7311           Enumerable#max and #min explicitly.
7313 Thu Mar 17 21:02:42 2016  Yusuke Endoh  <mame@ruby-lang.org>
7315         * internal.c: struct cmp_opt_data added for refactoring out a data
7316           structure for CMP_OPTIMIZABLE
7318         * array.c (struct ary_sort_data): use struct cmp_opt_data.
7320         * enum.c (struct min_t, max_t, min_max_t): use struct cmp_opt_data.
7322 Thu Mar 17 20:55:21 2016  Tanaka Akira  <akr@fsij.org>
7324         * enum.c (ary_inject_op): Extracted from enum_inject.
7326 Thu Mar 17 18:39:04 2016  Tanaka Akira  <akr@fsij.org>
7328         * enum.c (enum_inject): Implement the specialized code for sum of
7329           integers including Bignums.
7331         * internal.h (rb_fix_plus): Declared to be usable from enum_inject.
7333         * numeric.c (rb_fix_plus): Defined.
7335 Thu Mar 17 17:20:28 2016  Anton Davydov  <antondavydov.o@gmail.com>
7337         * thread_sync.c: [DOC] Update documentation for Queue class
7338           description.  [Fix GH-1292]
7340 Thu Mar 17 17:14:51 2016  Dinar Valeev  <dvaleev@suse.com>
7342         * gc.c (tick): Use __builtin_ppc_get_timebase for POWER arch.
7343           [Fix GH-1291]
7345 Thu Mar 17 11:51:48 2016  NARUSE, Yui  <naruse@ruby-lang.org>
7347         * lib/securerandom.rb (gen_random): to avoid blocking on Windows.
7348           On Windows OpenSSL RAND_bytes (underlying implementation is
7349           RAND_poll in crypto/rand/rand_win.c) may be blocked at
7350           NetStatisticsGet.
7351           https://wiki.openssl.org/index.php/Random_Numbers#Windows_Issues
7352           Instead of this, use Random.raw_seed directly (whose implementation
7353           CryptGenRandom is one of the source of
7354           entropy of RAND_poll on Windows).
7355           https://wiki.openssl.org/index.php/Random_Numbers
7356           Note: CryptGenRandom function is PRNG and doesn't check its entropy,
7357           so it won't block. [Bug #12139]
7358           https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa379942.aspx
7359           https://tools.ietf.org/html/rfc4086#section-7.1.3
7360           https://eprint.iacr.org/2007/419.pdf
7361           http://www.cs.huji.ac.il/~dolev/pubs/thesis/msc-thesis-leo.pdf
7363 Thu Mar 17 12:09:00 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
7365         * enc/unicode.c: Fixed two macro definitions.
7366         * test/ruby/enc/test_case_mapping.rb: Test cases that detected
7367           the above bugs.
7369 Thu Mar 17 11:36:27 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7371         * ext/socket/option.c (inspect_tcpi_msec): more accurate condition
7372           for TCPI msec member inspection function.
7373           [ruby-core:74388] [Bug #12185]
7375 Thu Mar 17 08:13:43 2016  Rei Odaira  <Rei.Odaira@gmail.com>
7377         * test/-ext-/time/test_new.rb (test_timespec_new): Time#gmtoff values
7378           are the same only when both or neither of the Time objects are in
7379           summer time (daylight-saving time).
7381 Thu Mar 17 07:17:36 2016  Eric Hodel  <drbrain@segment7.net>
7383         * marshal.c (r_object0):  raise ArgumentError when linking to undefined
7384           object.
7386 Thu Mar 17 00:45:00 2016  Kenta Murata  <mrkn@mrkn.jp>
7388         * test/ruby/test_bignum.rb: Make sure to use Bignum values in the tests.
7390 Wed Mar 16 23:10:25 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7392         * defs/keywords (alias, undef): symbol literals are allowed.
7394         * parse.y (parse_percent): should parse symbol literals for alias
7395           and undef.  [ruby-dev:47681] [Bug #8851]
7397 Wed Mar 16 21:39:39 2016  NARUSE, Yui  <naruse@ruby-lang.org>
7399         * enc/trans/JIS: update Unicode's notice. [Bug #11844]
7401 Wed Mar 16 20:03:35 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7403         * proc.c (proc_binding): proc from symbol can not make a binding.
7404           [ruby-core:74100] [Bug #12137]
7406 Wed Mar 16 18:42:45 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
7408         * test/ruby/enc/test_case_mapping.rb: Fixed and activated a test for Cherokee.
7410 Wed Mar 16 17:58:56 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
7412         * test/ruby/enc/test_case_mapping.rb: Fixed a logical error.
7414 Wed Mar 16 17:57:34 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
7416         * test/ruby/enc/test_case_mapping.rb: Adding tests for Cherokee.
7417           One test not yet working.
7418           (with Kimihito Matsui)
7420 Wed Mar 16 15:44:05 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
7422         * test/ruby/enc/test_case_mapping.rb: Adding tests for actual Unicode
7423           case mapping. Fixing some aliasing issues.
7424           (with Kimihito Matsui)
7426 Tue Mar 15 21:38:28 2016  Tanaka Akira  <akr@fsij.org>
7428         * enum.c (enum_inject): Consider redefinition of Fixnum#+.
7429           [ruby-dev:49510] [Bug#12178] Reported by usa.
7431 Tue Mar 15 20:32:57 2016  Tanaka Akira  <akr@fsij.org>
7433         * enum.c (enum_inject): Implement the specialized code for :+ operator
7434           for Fixnums.
7436 Tue Mar 15 20:21:01 2016  Tanaka Akira  <akr@fsij.org>
7438         * enum.c (enum_inject): Implement the specialized code for self is an
7439           array and a symbol operator is given.
7441 Tue Mar 15 16:29:51 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
7443         * enc/unicode.c: Eliminating common code.
7444           (with Kimihito Matsui)
7446 Tue Mar 15 16:17:09 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
7448         * enc/unicode.c: Expansion of some code repetition in preparation for
7449           elimination of common code pieces.
7450           (with Kimihito Matsui)
7452 Tue Mar 15 13:49:23 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
7454         * enc/unicode.c: Additional macros and code to use mapping data in
7455           CaseMappingSpecials array.
7456           (with Kimihito Matsui)
7458 Tue Mar 15 13:41:22 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7460         * internal.h (rb_gc_mark_global_tbl): should be private,
7461           but was accidentally exported.
7463 Tue Mar 15 12:51:06 2016  Marcus Stollsteimer  <sto.mar@web.de>
7465         * doc/extension.ja.rdoc: Fix RDoc markup in doc/extension*.rdoc.
7466           [ci skip][Bug #12143][ruby-core:74143]
7467         * doc/extension.rdoc: ditto.
7469 Tue Mar 15 09:56:41 2016  Ian Lunderskov  <ian.lunderskov@gmail.com>
7471         * time.c: Minor typo in Time#dst? documentation.
7472           [ci skip][fix GH-1290]
7474 Tue Mar 15 04:36:41 2016  Charles Oliver Nutter  <headius@headius.com>
7476         * test/ruby/test_rubyoptions.rb (test_disable): add tests for
7477           --disable-gems and --disable-did_you_mean.
7479 Tue Mar 15 03:35:04 2016  Eric Hodel  <drbrain@segment7.net>
7481         * marshal.c (r_object0): Fix Marshal crash for corrupt extended object.
7483 Tue Mar 15 01:22:27 2016  Charles Oliver Nutter  <headius@headius.com>
7485         * test/ruby/test_rubyoptions.rb: make version matching support
7486           JRuby's version output.
7488 Mon Mar 14 19:05:39 2016  NARUSE, Yui  <naruse@ruby-lang.org>
7490         * bignum.c (big2str_2bdigits): reduce div instruction.
7492 Mon Mar 14 18:39:53 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
7494         * include/ruby/oniguruma.h, enc/unicode.c: Adjusting flag assignments
7495           and macros to work with unified CaseMappingSpecials array.
7496           (with Kimihito Matsui)
7498 Mon Mar 14 16:53:37 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7500         * compile.c (compile_named_capture_assign): optimize named capture
7501           assignments, by replacing repeating global variable accesses
7502           with `dup`, and by returning the matched result instead of
7503           re-getting it from the MatchData.
7505         * parse.y (reg_named_capture_assign_gen): build just assignment
7506           nodes for the optimization.
7508 Mon Mar 14 16:02:59 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7510         * file.c (ruby_is_fd_loadable): now return -1 if loadable but
7511           may block.
7513         * ruby.c (open_load_file): wait to read by the result of
7514           ruby_is_fd_loadable, without fstat.
7516 Mon Mar 14 13:38:38 2016  NARUSE, Yui  <naruse@ruby-lang.org>
7518         * numeric.c (fix2str): improve r54092 like rb_int2big().
7520 Mon Mar 14 10:02:23 2016  Eric Wong  <e@80x24.org>
7522         * ext/openssl/ossl_ssl.c (ossl_sslctx_setup): document as MT-unsafe
7523           [ruby-core:73803] [Bug #12069]
7525 Sun Mar 13 09:43:23 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7527         * include/ruby/win32.h (O_SHARE_DELETE): change to fit Fixnum
7528           limit.  [ruby-core:74285] [Bug #12171]
7530 Sun Mar 13 09:15:45 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7532         * numeric.c (rb_fix2str): fix edge case, accidentally generated
7533           wrong Fixnum from LONG_MIN.
7535 Sat Mar 12 09:50:27 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7537         * vm_eval.c (rb_f_catch): [DOC] fix malformed RDoc syntax, "+...+"
7538           cannot enclose non-identifier characters.
7539           a patch by Sebastian S in [ruby-core:74278].  [Bug#12170]
7541 Sat Mar 12 02:44:48 2016  Tanaka Akira  <akr@fsij.org>
7543         * test/lib/test/unit.rb: describe !/REGEXP/ in the help message.
7545 Fri Mar 11 17:03:09 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7547         * test/lib/test/unit.rb (Options#non_options): make regexp name
7548           options prefixed with "!" negative filters.
7550         * common.mk (TEST_EXCLUDES): use negative filter to exclude memory
7551           leak tests.  -x option excludes test files, not test methods.
7553 Fri Mar 11 16:11:27 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
7555         * enc/unicode/case-folding.rb, casefold.h: Streamlining approach to
7556           case mapping data not available from case folding by unifying all
7557           three cases (special title, special upper, special lower).
7558         * enc/unicode.c: Adjust macro names for above (macros are currently inactive).
7559           (with Kimihito Matsui)
7561 Thu Mar 10 17:34:16 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7563         * iseq.c (prepare_iseq_build): enable coverage by coverage_enabled
7564           option, not by parse_in_eval flag in the thread context.
7566         * iseq.h (rb_compile_option_struct): add coverage_enabled flag.
7568         * parse.y (yycompile0): set coverage_enabled flag if coverage
7569           array is made.
7571 Thu Mar 10 15:19:54 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7573         * node.c (dump_option): nd_compile_option is a hidden hash object,
7574           cannot call inspect on it.
7576 Thu Mar 10 09:49:54 2016  Rei Odaira  <Rei.Odaira@gmail.com>
7578         * test/socket/test_socket.rb (test_udp_recvmsg_truncation):
7579           AIX does not set the MSG_TRUNC flag for a message partially read
7580           by recvmsg(2) with the MSG_PEEK flag set.
7582 Wed Mar  9 16:48:45 2016  Koichi Sasada  <ko1@atdot.net>
7584         * benchmark/driver.rb: fix my last commit (syntax error).
7586 Wed Mar  9 16:41:44 2016  Koichi Sasada  <ko1@atdot.net>
7588         * benchmark/driver.rb: fix output messages.
7590         * benchmark/memory_wrapper.rb: use respond_to? because
7591           member? does not work well.
7593 Wed Mar  9 16:20:25 2016  Koichi Sasada  <ko1@atdot.net>
7595         * benchmark/driver.rb: support memory usage benchmark.
7596           use `--measure-target=[target]'.
7597           Now, we can use the following targets:
7598             * real (default): real time which returns process time in sec.
7599             * peak: peak memory usage (physical memory) in bytes.
7600             * size: last memory usage (physical memory) in bytes.
7602         * benchmark/memory_wrapper.rb: ditto.
7604 Wed Mar  9 15:04:22 2016  Koichi Sasada  <ko1@atdot.net>
7606         * benchmark/bm_vm3_gc_old_full.rb: add GC.start benchmark.
7608         * benchmark/bm_vm3_gc_old_immediate.rb: ditto.
7610         * benchmark/bm_vm3_gc_old_lazy.rb: ditto.
7612 Wed Mar  9 14:59:11 2016  Koichi Sasada  <ko1@atdot.net>
7614         * benchmark/driver.rb: exit benchmarking if a benchmark process
7615           receives signals.
7617 Wed Mar  9 13:22:49 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7619         * test/lib/memory_status.rb: make Memory::Status independent of
7620           MiniTest::Skip.
7622         * test/lib/test/unit/assertions.rb (assert_no_memory_leak): skip
7623           if Memory::Status is not available.
7625 Wed Mar  9 09:19:55 2016  Rei Odaira  <Rei.Odaira@gmail.com>
7627         * test/io/wait/test_io_wait.rb (test_wait_readwrite_timeout):
7628           select(2) in AIX returns "readable" for the write-side fd
7629           of a pipe, so it is not possible to use a pipe to test
7630           the read-write timeout of IO#wait on AIX.
7632 Wed Mar  9 03:35:22 2016  Charles Oliver Nutter  <headius@headius.com>
7634         * test/ruby/test_require.rb (test_require_with_loaded_features_pop):
7635           Only remove PATH so threads don't accidentally double-pop.
7637 Wed Mar  9 00:29:46 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7639         * vm_method.c (rb_alias): the original name should be properly
7640           available method_added method, set the name before calling the
7641           hook.
7643 Wed Mar  9 00:07:03 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7645         * lib/logger.rb (Logger::LogDevice#initialize): define using
7646           keyword arguments.
7648 Tue Mar  8 23:37:07 2016  Charles Oliver Nutter  <headius@headius.com>
7650         * test/ruby/test_array.rb: split out the test for no stack error
7651           on large input for test_permutation, test_repeated_permutation,
7652           and test_repeated_combination, and make them all timeout:30.
7654 Tue Mar  8 17:20:21 2016  NARUSE, Yui  <naruse@ruby-lang.org>
7656         * intern.h (rb_divmod): assume compilers `/` and `%` comply C99
7657           and reduce branching. If a compiler doesn't comply, add #ifdefs.
7659         * intern.h (rb_div): added for Ruby's behavior.
7661         * intern.h (rb_mod): added for Ruby's behavior.
7663         * insns.def (opt_div): use rb_div.
7665         * insns.def (opt_mod): use rb_mod.
7667         * numeric.c (fixdivmod): removed.
7669         * numeric.c (fix_divide): use rb_div.
7671         * numeric.c (fix_mod): use rb_mod.
7673         * numeric.c (fix_divmod): use rb_divmod.
7675 Tue Mar  8 17:53:09 2016  NARUSE, Yui  <naruse@ruby-lang.org>
7677         * insns.def (opt_mod): show its method name on ZeroDivisionError.
7678           [Bug #12158]
7680 Tue Mar  8 17:33:38 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
7682         * win32/win32.c (rb_w32_write_console): now no need to check
7683           ERROR_CALL_NOT_IMPLEMENTED because it is for old Win9X.
7685 Tue Mar  8 16:54:29 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
7687         * win32/win32.c (rb_w32_write_console): stop the VT100 emulation if the
7688           console supports it natively.
7690 Tue Mar  8 08:13:01 2016  Rei Odaira  <Rei.Odaira@gmail.com>
7692         * test/net/imap/test_imap.rb (test_idle_timeout): Because of the
7693           timeout specified in "imap.idle(0.2)", there is no guarantee that
7694           the server thread has done all the work before the client thread
7695           performs the assertions. It depends on the thread scheduling.
7696           Add checks to avoid false positives (on AIX, particularly).
7698 Tue Mar  8 00:42:22 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
7700         * ruby.c (warn_cr_in_shebang): meaningless check on DOSISH platforms.
7701           fixed a test failure introduced at r53998.
7703 Tue Mar  8 00:27:53 2016  CHIKANAGA Tomoyuki  <nagachika@ruby-lang.org>
7705         * ext/tk/lib/tkextlib/tcllib/tablelist_tile.rb: fix method name typo.
7706           [ruby-core:72513] [Bug #11893] The patch provided by Akira Matsuda.
7709 Tue Mar  8 00:25:08 2016  CHIKANAGA Tomoyuki  <nagachika@ruby-lang.org>
7711         * ext/tk/lib/tkextlib/tcllib/toolbar.rb: fix method name typo.
7712           [ruby-core:72511] [Bug #11891] The patch provided by Akira Matsuda.
7715 Tue Mar  8 00:21:58 2016  CHIKANAGA Tomoyuki  <nagachika@ruby-lang.org>
7717         * ext/tk/lib/tkextlib/blt/tree.rb: fix method name typo.
7718           [ruby-core:72510] [Bug #11890] The patch provided by Akira Matsuda.
7721 Tue Mar  8 00:11:47 2016  CHIKANAGA Tomoyuki  <nagachika@ruby-lang.org>
7723         * ext/tk/lib/tk/menubar.rb: fix a typo in font name. [ruby-core:72505]
7724           [Bug #11886] The patch provided by Akira Matsuda.
7726         * ext/tk/sample/*.rb: ditto.
7728 Mon Mar  7 13:32:58 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7730         * class.c (rb_define_class, rb_define_class_id_under): raise
7731           ArgumentError if super is 0, deprecated behavior which has been
7732           warned long time.
7734 Mon Mar  7 13:28:30 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7736         * internal.h: move function declarations for class internals from
7737           include/ruby/intern.h.
7739 Mon Mar  7 10:58:07 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7741         * ext/win32ole/win32ole_event.c (rescue_callback): use
7742           rb_write_error_str instead of rb_write_error, to respect
7743           the encoding and prevent the message from GC.
7745         * internal.h (rb_write_error_str): export.
7747 Mon Mar  7 01:38:41 2016  Rei Odaira  <Rei.Odaira@gmail.com>
7749         * test/ruby/test_process.rb (test_execopts_gid): Skip a test
7750           that is known to fail on AIX. AIX allows setgid to
7751           a supplementary group, but Ruby does not allow the "-e"
7752           option when setgid'ed, so the test does not work as intended.
7754 Sun Mar  6 22:43:41 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7756         * io.c (rb_obj_display): [DOC] fix output of Array, as Array#to_s
7757           is same as Array#inspect since 1.9.
7759 Sat Mar  5 09:50:58 2016  Rei Odaira  <Rei.Odaira@gmail.com>
7761         * test/socket/test_addrinfo.rb (test_ipv6_address_predicates):
7762           IN6_IS_ADDR_V4COMPAT and IN6_IS_ADDR_V4MAPPED are broken
7763           on AIX, so skip related tests.
7765 Sat Mar  5 09:17:54 2016  Rei Odaira  <Rei.Odaira@gmail.com>
7767         * test/rinda/test_rinda.rb (test_make_socket_ipv4_multicast):
7768           The fifth argument to getsockopt(2) should be modified to
7769           indicate the actual size of the value on return,
7770           but not in AIX. This is a know bug. Skip related tests.
7771         * test/rinda/test_rinda.rb (test_ring_server_ipv4_multicast):
7772           ditto.
7773         * test/rinda/test_rinda.rb (test_make_socket_unicast): ditto.
7774         * test/socket/test_basicsocket.rb (test_getsockopt): ditto.
7775         * test/socket/test_sockopt.rb (test_bool): ditto.
7777 Sat Mar  5 07:36:27 2016  Rei Odaira  <Rei.Odaira@gmail.com>
7779         * test/-ext-/float/test_nextafter.rb: In AIX,
7780           nextafter(+0.0,-0.0)=+0.0, and nextafter(-0.0,+0.0)=-0.0,
7781           but they should return -0.0 and +0.0, respectively. This is
7782           a known bug in nextafter(3) on AIX, so skip related tests.
7784 Sat Mar  5 07:14:10 2016  Rei Odaira  <Rei.Odaira@gmail.com>
7786         * test/zlib/test_zlib.rb (test_adler32_combine, test_crc32_combine):
7787           Skip two tests on AIX because zconf.h in zlib does not correctly
7788           recognize _LARGE_FILES in AIX. The problem was already reported
7789           to zlib, and skip these tests until it is fixed.
7791 Sat Mar  5 03:07:40 2016  Rei Odaira  <Rei.Odaira@gmail.com>
7793         * thread_pthread.c (getstack): __pi_stacksize returned by
7794           pthread_getthrds_np() is wrong on AIX. Use
7795           __pi_stackend - __pi_stackaddr instead.
7797 Fri Mar  4 19:19:42 2016  Koichi Sasada  <ko1@atdot.net>
7799         * gc.c: use 2 bits with unsigned int for rb_objspace::flags::mode
7800           because it always returns 0 to 2 (non-negative value).
7802 Fri Mar  4 18:42:08 2016  Koichi Sasada  <ko1@atdot.net>
7804         * gc.c: rename "enum gc_stat" to "enum gc_mode"
7805           because there is a same name (no related) function gc_stat().
7807           Also gc_stat_* are renamed to gc_mode_*,
7808           gc_stat_transition() to gc_mode_transition(),
7809           rb_objspace::flags::stat is renamed to rb_objspace::flags::mode.
7811           Change rb_objspace::flags::mode from 2 bits to 3 bits because VC++
7812           returns negative enum value with 2 bits.
7814         * gc.c (gc_mode): add a macro to access rb_objspace::flags::mode
7815           with verification code (verification is enabled only on
7816           RGENGC_CHECK_MODE > 0).
7818         * gc.c (gc_mode_set): same macro for setter.
7820 Fri Mar  4 09:28:18 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
7822         * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.6.1.
7823           Please see entries of 2.6.0 and 2.6.1 on
7824           https://github.com/rubygems/rubygems/blob/master/History.txt
7825           [fix GH-1270] Patch by @segiddins
7827 Thu Mar  3 14:09:00 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7829         * lib/ostruct.rb (modifiable?, new_ostruct_member!, table!):
7830           rename methods for internal use with suffixes and make private,
7831           [ruby-core:71069] [Bug #11587]
7833 Wed Mar  2 16:28:48 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7835         * vm_eval.c (method_missing): call by found method entry and get
7836           rid of searching the same method entry twice.
7838         * vm_eval.c (vm_call0_body): calling method_missing method is
7839           method_missing().
7841 Wed Mar  2 15:13:33 2016  herwinw  <herwin@quarantainenet.nl>
7843         * lib/xmlrpc.rb: Removed broken parser named XMLScanStreamParser.
7844           It's not works with current Ruby version.
7845           [fix GH-1271][ruby-core:59588][Bug #9369]
7846         * lib/xmlrpc/config.rb: ditto.
7847         * lib/xmlrpc/parser.rb: ditto.
7849 Wed Mar  2 15:08:33 2016  herwinw  <herwin@quarantainenet.nl>
7851         * lib/xmlrpc.rb: Removed broken parser named XMLTreeParser.
7852           Required gem of its parser didn't compile on newer Ruby versions.
7853           [fix GH-1271][ruby-core:59590][Bug #9370]
7854         * lib/xmlrpc/config.rb: ditto.
7855         * lib/xmlrpc/parser.rb: ditto.
7857 Tue Mar  1 11:25:48 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7859         * lib/fileutils.rb: use keyword arguments instead of option
7860           hashes.
7862 Mon Feb 29 16:50:20 2016  hanachin  <hanachin@gmail.com>
7864         * array.c (rb_ary_push_m): [DOC] Remove trailing comma from
7865           Array#push example, as other Array examples doesn't put trailing
7866           comma.  [Fix GH-1279]
7868 Mon Feb 29 16:31:01 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7870         * common.mk, tool/mkconfig.rb: set cross_compiling option from
7871           Makefile, but not from rbconfig.rb, which is just going to be
7872           created by this command.
7874 Sun Feb 28 23:13:49 2016  C.J. Collier  <cjcollier@linuxfoundation.org>
7876         * configure.in: Add summary to end of configure output.
7877           [Fix GH-1275]
7879 Sun Feb 28 20:23:36 2016  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>
7881         * lib/drb/drb.rb (error_print): Add verbose failure messages and
7882           avoid infamous DRb::DRbConnError. [Feature #12101]
7884 Sun Feb 28 13:40:46 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7886         * error.c (nometh_err_initialize): add private_call? parameter.
7888         * error.c (nometh_err_private_call_p): add private_call? method,
7889           to tell if the exception raised in private form FCALL or VCALL.
7890           [Feature #12043]
7892         * vm_eval.c (make_no_method_exception): append private_call?
7893           argument.
7895         * vm_insnhelper.c (ci_missing_reason): copy FCALL flag.
7897 Sun Feb 28 10:19:47 2016  Ryan T. Hosford  <tad.hosford@gmail.com>
7899         * array.c (rb_ary_and): clarify that set intersection returns the
7900           unique elements common to both arrays.
7902         * array.c (rb_ary_or): clarify that union preserves the order from
7903           the given arrays.
7905 Sat Feb 27 17:05:29 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
7907         * enc/unicode/case-folding.rb, casefold.h: Reducing size of TitleCase
7908           table by eliminating duplicates.
7909           (with Kimihito Matsui)
7911 Fri Feb 26 14:40:48 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7913         * numeric.c (num_step_scan_args): comparison String with Numeric
7914           should raise TypeError. it is an invalid type, but not a
7915           mismatch the number of arguments.  [ruby-core:62430] [Bug #9810]
7917 Fri Feb 26 14:39:39 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
7919         * doc/extension.rdoc, doc/extension.ja.rdoc: add editor local
7920           variables, with commenting out by :enddoc: directives which are
7921           just ignored unless code object mode.  [Bug #12111]
7923 Fri Feb 26 12:25:56 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
7925         * doc/extension.ja.rdoc: removed rendering error caused by editor specific
7926           configuration on http://docs.ruby-lang.org/en/trunk/extension_rdoc.html .
7927           [Bug #12111][ruby-core:73990]
7929 Fri Feb 26 11:21:41 2016  herwinw  <herwin@quarantainenet.nl>
7931         * lib/xmlrpc.rb: Removed references to NQXML. It's obsoleted parser.
7932           [fix GH-1245][ruby-core:59593][Feature #9371]
7933         * lib/xmlrpc/config.rb: ditto.
7934         * lib/xmlrpc/parser.rb: ditto.
7936 Fri Feb 26 11:10:19 2016  Rick Salevsky  <rsalevsky@suse.com>
7938         * lib/tmpdir.rb: Unify to coding-style for method definition.
7939           [fix GH-1252]
7941 Fri Feb 26 11:02:04 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
7943         * README.md: update markdown syntax for anchor tag.
7944           [fix GH-1265] Patch by @lukBarros
7946 Fri Feb 26 10:52:29 2016  Alex Boyd  <alex@opengroove.org>
7948         * lib/irb.rb: avoid to needless truncation when using back_trace_limit option.
7949           [fix GH-1205][ruby-core:72773][Bug #11969]
7951 Fri Feb 26 08:11:58 2016  Aaron Patterson <tenderlove@ruby-lang.org>
7953         * gem_prelude.rb: Reduce system calls by activating the `did_you_mean`
7954           gem before requiring the gem.  Activating the gem puts the gem on
7955           the load path, where simply requiring the file will search every gem
7956           that's installed until it can find a gem that contains the
7957           `did_you_mean` file.
7959 Thu Feb 25 19:04:13 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
7961         * enc/unicode/case-folding.rb: Adding possibility for debugging output
7962           for TitleCase table in casefold.h.
7963           (with Kimihito Matsui)
7965 Wed Feb 24 22:31:13 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
7967         * include/ruby/oniguruma.h: Rearranging flag assignments and making
7968           space for titlecase indices; adding additional macros to add or
7969           extract titlecase index; adding comments for better documentation.
7970         * enc/unicode.c: Moving some macros to include/ruby/oniguruma.h;
7971           activating use of titlecase indices.
7972           (with Kimihito Matsui)
7974 Wed Feb 24 21:03:04 2016  Tanaka Akira  <akr@fsij.org>
7976         * random.c (limited_rand): Add a specialized path for when the limit fits
7977           in 32 bit.
7979 Tue Feb 23 21:52:24 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
7981         * enc/unicode/case-folding.rb, casefold.h: Outputting actual titlecase
7982           data (new table, with indices from other tables).
7983         * enc/unicode.c: Ignoring titlecase data indices for the moment.
7984           (with Kimihito Matsui)
7986 Tue Feb 23 15:21:14 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
7988         * enc/unicode/case-folding.rb, casefold.h: Reading casing data from
7989           SpecialCasing.txt.
7990           (with Kimihito Matsui)
7992 Mon Feb 22 18:33:55 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
7994         * enc/unicode/case-folding.rb, casefold.h: Adding flag for title-case,
7995           not yet operational.
7996           (with Kimihito Matsui)
7998 Mon Feb 22 18:17:03 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8000         * enc/unicode/case-folding.rb, casefold.h: Fixed bug that avoided inclusion
8001           of compatibility characters in upper-/lower-case mappings.
8002           (with Kimihito Matsui)
8004 Sun Feb 21 13:57:18 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8006         * cgi/escape/escape.c: Optimize CGI.unescape performance by C ext
8007           for ASCII-compatible encodings.  [Fix GH-1250]
8009 Sun Feb 21 13:56:57 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8011         * cgi/escape/escape.c: Optimize CGI.unescapeHTML performance by C
8012           ext for ASCII-compatible encodings.  [Fix GH-1242]
8014 Sat Feb 20 15:38:16 2016  Eric Wong  <e@80x24.org>
8016         * doc/extension.rdoc: update paths for defs/ directory
8018 Sat Feb 20 14:44:15 2016  Lucas Buchala  <lucasbuchala@gmail.com>
8020         * vm_eval.c (rb_mod_module_eval): [DOC] Fix documentation
8021           signature for Module#module_eval.  [Fix GH-1258]
8023 Sat Feb 20 14:40:44 2016  Adam O'Connor  <northband@gmail.com>
8025         * README.md: a few grammatical changes to the main Ruby README.md.
8026           [Fix GH-1259]
8028 Sat Feb 20 13:04:22 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8030         * dir.c (push_pattern, push_glob): deal with read paths as UTF-8
8031           to stat later, on Windows as well as OS X.
8032           [ruby-core:73868] [Bug #12081]
8034 Sat Feb 20 01:53:33 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8036         * object.c (rb_mod_const_get): make error message at uninterned
8037           string consistent with symbols.  [ruby-dev:49498] [Bug #12089]
8039 Fri Feb 19 23:37:52 2016  Masahiro Tomita  <tommy@tmtm.org>
8041         * lib/find.rb (Find#find): raise with the given path name if it
8042           does not exist.  [ruby-dev:49497] [Bug #12087]
8044 Fri Feb 19 12:44:57 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8046         * enc/unicode.c: Activated use of case mapping data in CaseUnfold_11 array.
8047           (with Kimihito Matsui)
8049 Fri Feb 19 11:08:32 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8051         * ext/extmk.rb: add cygwin case, nothing excluded.
8052           [ruby-core:73806] [Bug#12071]
8054 Thu Feb 18 21:32:15 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
8056         * man/irb.1: fix output in EXAMPLES.
8058 Thu Feb 18 21:05:47 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8060         * string.c (sym_match_m): delegate to String#match but not
8061           String#=~.  [ruby-core:72864] [Bug #11991]
8063 Thu Feb 18 14:15:38 2016  Shota Fukumori  <her@sorah.jp>
8065         * re.c: Add MatchData#named_captures
8066           [Feature #11999] [ruby-core:72897]
8068         * test/ruby/test_regexp.rb(test_match_data_named_captures): Test for above.
8070         * NEWS: News about MatchData#named_captures.
8072 Wed Feb 17 21:41:29 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8074         * defs/id.def (predefined): add idLASTLINE and idBACKREF for $_
8075           and $~ respectively.
8077         * parse.y: use idLASTLINE and idBACKREF instead of rb_intern.
8079 Wed Feb 17 20:23:38 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8081         * string.c (rb_str_init): fix segfault and memory leak, consider
8082           wide char encoding terminator.
8084 Wed Feb 17 12:14:59 2016  NARUSE, Yui  <naruse@ruby-lang.org>
8086         * string.c (rb_str_init): introduce String.new(capacity: size)
8087           [Feature #12024]
8089 Tue Feb 16 19:10:08 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8091         * enc/unicode/case-folding.rb, casefold.h: Used only first element
8092           (rather than all) of target in CaseUnfold_11 array.
8093           (with Kimihito Matsui)
8095 Tue Feb 16 18:24:38 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8097         * numeric.c (compare_with_zero): fix variable name, rb_cmperr
8098           requires VALUEs but not an ID.
8100 Tue Feb 16 17:34:18 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8102         * dir.c (rb_dir_s_empty_p): add Dir.empty? method, which tells the
8103           argument is the name of an empty directory.  [Feature #10121]
8105 Tue Feb 16 09:51:20 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8107         * tool/rbinstall.rb (without_destdir): just strip a drive letter
8108           which is prepended by with_destdir.
8109           pointed out by @DavidEGrayson.
8110           https://github.com/ruby/ruby/commit/0e5f9ae#commitcomment-16101763
8112 Tue Feb 16 04:42:13 2016  NARUSE, Yui  <naruse@ruby-lang.org>
8114         * insns.def (opt_plus): simply use LONG2NUM() instead of wrongly
8115           complex overflow case.
8117         * insns.def (opt_sub): ditto.
8119 Tue Feb 16 02:49:41 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8121         * tool/rbinstall.rb (without_destdir): compare with the destdir
8122           after stripping a drive letter, on dosish platforms.
8123           pointed out by @DavidEGrayson.
8124           https://github.com/ruby/ruby/commit/d0cf23b#commitcomment-16100407
8126 Mon Feb 15 15:44:09 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8128         * parse.y (parse_ident): allow keyword arguments just after a
8129           method where the same name local variable is defined.
8130           [ruby-core:73816] [Bug#12073]
8132 Mon Feb 15 14:43:28 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8134         * enc/unicode/case-folding.rb: Added debugging option
8135           (with Kimihito Matsui)
8137 Sun Feb 14 17:31:50 2016  Lars Kanis  <lars@greiz-reinsdorf.de>
8139         * lib/mkmf.rb (with_{cpp,c,ld}flags): copy caller strings not to
8140           be modified, in append_{cpp,c,ld}flags respectively.
8141           [Fix GH-1246]
8143 Sun Feb 14 16:18:57 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8145         * eval.c (setup_exception): set the cause only if it is explicitly
8146           given or not set yet.  [Bug #12068]
8148 Sat Feb 13 21:44:58 2016  Tanaka Akira  <akr@fsij.org>
8150         * hash.c (rb_hash_invert): [DOC] more examples.
8152 Sat Feb 13 17:30:49 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8154         * lib/uri/generic.rb (URI::Generic#find_proxy): support CIDR in
8155           no_proxy.  [ruby-core:73769] [Feature#12062]
8157 Sat Feb 13 17:11:58 2016  Fabian Wiesel  <fabian.wiesel@sap.com>
8159         * lib/uri/generic.rb (find_proxy): exclude white-spaces and allow
8160           for a leading dot in the domain name in no_proxy.
8161           [ruby-core:54542] [Feature #8317]
8163 Fri Feb 12 12:20:56 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8165         * error.c (name_err_initialize, nometh_err_initialize): [DOC] fix
8166           argument positions.  optional parameters except for the message
8167           are placed at the last.
8169 Fri Feb 12 11:49:49 2016  Anthony Dmitriyev  <antstorm@gmail.com>
8171         * net/ftp.rb: add NullSocket#closed? to fix closing not opened
8172           connection.  [Fix GH-1232]
8174 Fri Feb 12 11:17:38 2016  Bogdan  <bogdanvlviv@gmail.com>
8176         * re.c (rb_reg_initialize_m): [DOC] fix missing right bracket.
8177           [Fix GH-1243]
8179 Thu Feb 11 14:57:58 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8181         * configure.in (RUBY_CHECK_SIZEOF, RUBY_DEFINT): fix for types
8182           which are conditionally available depending on architectures
8183           when universal binary, e.g., __int128.
8185 Thu Feb 11 06:26:18 2016  NARUSE, Yui  <naruse@ruby-lang.org>
8187         * configure.in (RUBY_DEFINT): use Parameter Expansion.
8189 Thu Feb 11 05:33:24 2016  NARUSE, Yui  <naruse@ruby-lang.org>
8191         * configure.in (int128_t): don't check HAVE_XXX (for example
8192           HAVE___INT128) because RUBY_CHECK_SIZEOF() don't define it for
8193           config.h and use of $ac_cv_sizeof___int128 alternates the check.
8194           (and don't need to define because users shouldn't know that)
8196 Wed Feb 10 12:03:41 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8198         * configure.in (ARFLAGS): check if deterministic mode flag is
8199           effective, which is on by default on Ubuntu.
8201 Tue Feb  9 16:36:23 2016  Naotoshi Seo  <sonots@gmail.com>
8203         * lib/logger.rb: Remove block from Logger.add as it's not needed
8204           patch provided by Daniel Lobato Garcia [fix GH-1240] [Bug #12054]
8206 Tue Feb  9 14:32:23 2016  Zachary Scott  <zzak@ruby-lang.org>
8208         * ext/zlib/zlib.c: Document mtime header behavior with patch by @schneems
8209           Fixes [GH-1129]: https://github.com/ruby/ruby/pull/1129
8211 Tue Feb  9 13:52:49 2016  Zachary Scott  <zzak@ruby-lang.org>
8213         * re.c: Remove deprecated kcode argument from Regexp.new and compile
8214           patch provided by Dylan Pulliam [Bug #11495]
8216 Mon Feb  8 21:26:19 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8218         * enc/unicode/case-folding.rb, enc/unicode/casefold.h: Flags for
8219           upper/lower conversion added (titlecase and SpecialCasing still missing)
8220           (with Kimihito Matsui)
8222 Mon Feb  8 20:43:57 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8224         * string.c, enc/unicode.c: Disassociating ONIGENC_CASE_FOLD flag from
8225           ONIGENC_CASE_DOWNCASE.
8226           (with Kimihito Matsui)
8228 Mon Feb  8 13:00:17 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8230         * enc/unicode.c: Shortened macros for enc/unicode/casefold.h to
8231           single-letter; use flags in casefold.h for logic.
8233         * enc/unicode/case-folding.rb: Added flag for case folding.
8234           Changed parameter passing.
8236         * enc/unicode/casefold.h: New flags added.
8237           (with Kimihito Matsui)
8239 Mon Feb  8 10:30:10 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8241         * ruby.c (feature_option): raise a runtime error if ambiguous
8242           feature name is given, in the future.  [Bug #12050]
8244 Mon Feb  8 09:43:57 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8246         * common.mk: Removed enc/unicode/casefold.h from automatic build because
8247           some CI systems don't have gperf. Creation of enc/unicode/casefold.h
8248           is now possible with make unicode-up. This is intended as a temporary measure.
8250 Sun Feb  7 22:10:08 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8252         * common.mk: Added two more precondition files for enc/unicode/casefold.h
8254         * enc/unicode.c: Added shortening macros for enc/unicode/casefold.h
8256         * enc/unicode/case-folding.rb: Fixed file encoding for CaseFolding.txt
8257           to ASCII-8BIT (should fix some ci errors). Clarified usage. Created
8258           class MapItem. Partially implemented class CaseMapping.
8259           (with Kimihito Matsui)
8261 Sun Feb  7 14:12:32 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8263         * enc/unicode/case-folding.rb: Fixing parameter passing.
8264           (with Kimihito Matsui)
8266 Sun Feb  7 11:44:03 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8268         * enc/unicode/case-folding.rb: New classes CaseMapping/CaseMappingDummy
8269           to pass as parameters; not yet implemented or used.
8270           (with Kimihito Matsui)
8272 Sun Feb  7 11:16:00 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8274         * common.mk: using new option in recipe for enc/unicode/casefold.h
8276         * enc/unicode/case-folding.rb: Correctly specify argument to new option.
8277           (with Kimihito Matsui)
8279 Sun Feb  7 10:43:27 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8281         (this commit message applies to the previous commit)
8282         * common.mk: explicit recipe for enc/unicode/casefold.h
8284         * enc/unicode/case-folding.rb: Adding -m option to prepare for using
8285           multiple data files.
8286           (with Kimihito Matsui)
8288 Sat Feb  6 22:30:57 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8290         * lib/cgi/util.rb (escapeHTML, unescapeHTML): consider
8291           ASCII-incompatible encodings.  [Fix GH-1239]
8293 Sat Feb  6 15:18:28 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8295         * test/ruby/enc/test_regex_casefold.rb: Added data-based testing for
8296           String#downcase :fold.
8298         * enc/unicode.c: Fixed a range error (lowest non-ASCII character affected
8299           by case operations is U+00B5, MICRO SIGN)
8301         * test/ruby/enc/test_case_mapping.rb: Explicit test for case folding of
8302           MICRO SIGN to Greek mu.
8303           (with Kimihito Matsui)
8305 Sat Feb  6 14:51:23 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8307         * test/ruby/enc/test_regex_casefold.rb: Tests for three case folding
8308           primitives (mbc_case_fold, get_case_fold_codes_by_str,
8309           apply_all_case_fold) in the various encodings. Currently only known
8310           good encodings are tested to avoid test failures. For bug hunting,
8311           start by adding more encodings with
8312           generate_test_casefold encoding
8313           (with Kimihito Matsui)
8315 Sat Feb  6 14:37:16 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8317         * enc/unicode.c, test/ruby/enc/test_case_mapping.rb: Implemented :fold
8318           option for String#downcase by using case folding data from
8319           regular expression engine, and added a few simple tests.
8320           (with Kimihito Matsui)
8322 Fri Feb  5 20:08:59 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8324         * test/ruby/enc/test_case_mapping.rb: added tests for :ascii option.
8325           (with Kimihito Matsui)
8327 Fri Feb  5 12:22:20 2016  NARUSE, Yui  <naruse@ruby-lang.org>
8329         * insns.def (opt_mult): Use int128_t for overflow detection.
8331         * bignum.c (rb_uint128t2big): added for opt_mult.
8333         * bignum.c (rb_uint128t2big): added for rb_uint128t2big..
8335         * configure.in: define int128_t, uint128_t and related MACROs.
8336           Initially introduced by r41379 but reverted by r50749.
8338 Thu Feb  4 21:05:17 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8340         * enc/unicode.c: Activated :ascii flag for ASCII-only case conversion
8341           (with Kimihito Matsui)
8343 Thu Feb  4 17:38:01 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8345         * re.c (reg_set_source): make source string frozen without
8346           copying.
8348         * re.c (rb_reg_initialize_m): refactor initialization with
8349           encoding.
8351 Thu Feb  4 15:35:29 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8353         * string.c (rb_fstring_enc_new, rb_fstring_enc_cstr): functions to
8354           make fstring with encoding.
8356 Thu Feb  4 14:42:29 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8358         * common.mk: Added Unicode data file SpecialCasing.txt to be additionally
8359           downloaded (with Kimihito Matsui)
8361 Thu Feb  4 12:39:08 2016  joker1007  <kakyoin.hierophant@gmail.com>
8363         * cgi/escape/escape.c: Optimize CGI.escape performance by C ext
8364           for ASCII-compatible encodings.  [Fix GH-1238]
8366 Thu Feb  4 11:53:56 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8368         * common.mk: Introduce two variables (UNICODE_DATA_DIR and
8369           UNICODE_SRC_DATA_DIR) to eliminate repetitions.
8371 Wed Feb  3 12:13:20 2016  NARUSE, Yui  <naruse@ruby-lang.org>
8373         * string.c (str_new_frozen): if the given string is embeddedable
8374           but not embedded, embed a new copied string. [Bug #11946]
8376 Wed Feb  3 08:25:38 2016  boshan  <boshan@subsplash.com>
8378         * ext/openssl/ossl_pkey.c (Init_ossl_pkey): [DOC] Fix typo
8379           "encrypted" to "decrypted".  [Fix GH-1235]
8381 Wed Feb  3 08:21:32 2016  Seiei Miyagi  <hanachin@gmail.com>
8383         * ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): Fix
8384           Ripper.lex error in dedenting squiggly heredoc.  heredoc tree is
8385           also an array of Elem in the outer tree.  [Fix GH-1234]
8387 Wed Feb  3 02:33:39 2016  NARUSE, Yui  <naruse@ruby-lang.org>
8389         * re.c (rb_reg_prepare_enc): use already compiled US-ASCII regexp
8390           if given string is ASCII only.
8391           121.2s to 113.9s on my x86_64-freebsd10.2 Intel Core i5 661
8393 Tue Feb  2 13:02:03 2016  NARUSE, Yui  <naruse@ruby-lang.org>
8395         * re.c: Introduce RREGEXP_PTR.
8396           patch by dbussink.
8397           partially merge https://github.com/ruby/ruby/pull/497
8399         * include/ruby/ruby.h: ditto.
8401         * gc.c: ditto.
8403         * ext/strscan/strscan.c: ditto.
8405         * parse.y: ditto.
8407         * string.c: ditto.
8409 Tue Feb  2 09:08:27 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
8411         * lib/rubygems/specification.rb: `coding` is effective only first
8412           line except shebang.
8414         * lib/rubygems/package.rb, lib/rubygems/package/*: ditto.
8416 Mon Feb  1 21:41:58 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
8418         * lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.5.2.
8419           It supports to enable frozen string literal and add `--norc` option for
8420           disable to `.gemrc` configuration.
8421           See 2.5.2 release notes for other fixes and enhancements.
8422           https://github.com/rubygems/rubygems/blob/a8aa3bac723f045c52471c7b9328310a048561e0/History.txt#L3
8424 Sun Jan 31 12:33:13 2016  Dan Kreiger  <dan@dankreiger.com>
8426         * test/drb/ut_large.rb (multiply, avg, median): add additional
8427           math operations to DRbLarge.  [Fix GH-1086]
8429 Sun Jan 31 12:19:15 2016  Kuniaki IGARASHI  <igaiga@gmail.com>
8431         * test/ruby/test_file_exhaustive.rb (test_lstat): Add lacking test
8432           for File#lstat.  [Fix GH-1231]
8434 Sun Jan 31 12:15:33 2016  Prayag Verma  <prayag.verma@gmail.com>
8436         * doc/standard_library.rdoc: fix typo  [Fix GH-1230]
8437           Spelling mistakes -
8438           outputing > outputting
8439           publich > publish
8441 Sat Jan 30 15:18:07 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8443         * vm_eval.c (rb_check_funcall_with_hook): also should call the
8444           given hook before returning Qundef when overridden respond_to?
8445           method returned false.  [ruby-core:73556] [Bug #12030]
8447 Fri Jan 29 17:40:07 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8449         * win32/file.c (rb_readlink): drop garbage after the substitute
8450           name, as rb_w32_read_reparse_point returns the expected buffer
8451           size but "\??\" prefix is dropped from the result.
8453         * win32/win32.c (w32_readlink): ditto, including NUL-terminator.
8455 Fri Jan 29 17:07:27 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
8457         * win32/win32.c (fileattr_to_unixmode, rb_w32_reparse_symlink_p): volume
8458           mount point should be treated as directory, not symlink.
8459           [ruby-core:72483] [Bug #11874]
8461         * win32/win32.c (rb_w32_read_reparse_point): check the reparse point is
8462           a volume mount point or not.
8464         * win32/file.c (rb_readlink): follow above change (but this pass won't
8465           be used).
8467 Fri Jan 29 16:17:07 2016  Lucas Buchala  <lucasbuchala@gmail.com>
8469         * enum.c (enum_take_while, enum_drop_while): rename block
8470           parameter to obj, since they are generic objects.  [Fix GH-1226]
8472 Fri Jan 29 14:15:26 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8474         * lib/erb.rb (ERB::Compiler#detect_magic_comment): allow
8475           frozen-string-literal in comment as well as encoding.
8477         * lib/erb.rb (ERB#def_method): insert def line just before the
8478           first non-comment and non-empty line, not to leave duplicated
8479           and stale magic comments.
8481 Fri Jan 29 11:13:33 2016  Jeremy Evans  <code@jeremyevans.net>
8483         * lib/erb.rb (ERB#set_eoutvar): explicitly make mutable string as
8484           a buffer to make ERB work with --enable-frozen-string-literal.
8485           [ruby-core:73561] [Bug #12031]
8487 Fri Jan 29 10:44:56 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
8489         * lib/net/http/header.rb: Warn nil variable on HTTP Header.
8490           It caused to NoMethodError. [fix GH-952][fix GH-641] Patch by @teosz
8491         * test/net/http/test_httpheader.rb: Added test for nil HTTP Header.
8493 Thu Jan 28 17:31:43 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8495         * ext/socket/socket.c (sock_gethostname): support unlimited size
8496           hostname.
8498 Wed Jan 27 21:03:45 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
8500         * test/-ext-/string/test_capacity.rb: Added missing library.
8502 Wed Jan 27 18:53:40 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8504         * enc/unicode.c: Fixed bit mask in macro OnigCodePointCount
8506 Wed Jan 27 17:54:42 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8508         * enc/unicode.c: Protect code point count by macro, in order to
8509           be able to use the remaining bits for flags.
8510           (with Kimihito Matsui)
8512 Wed Jan 27 16:34:35 2016  boshan  <boshan@subsplash.com>
8514         * lib/tempfile.rb (Tempfile#initialize): [DOC] the first parameter
8515           `basename` is optional and defaulted to an empty string since
8516           [GH-523].  [Fix GH-1225]
8518 Wed Jan 27 16:25:54 2016  Koichi ITO  <koic.ito@gmail.com>
8520         * array.c (rb_ary_dig): [DOC] fix the exception class to be raised
8521           when intermediate object does not have dig method.  TypeError
8522           will be raised now.  [Fix GH-1224]
8524 Tue Jan 26 19:36:15 2016  Aggelos Avgerinos  <evaggelos.avgerinos@gmail.com>
8526         * array.c (permute0, rpermute0): [DOC] Substitute indexes ->
8527           indices in documentation for consistency.  [Fix GH-1222]
8529 Tue Jan 26 15:21:37 2016  Eric Wong  <e@80x24.org>
8531         * compile.c (caller_location): use rb_fstring_cstr for "<compiled>"
8532           (it is converted to fstring anyways inside rb_iseq_new_with_opt)
8533         * iseq.c (iseqw_s_compile): ditto
8534         * iseq.c (rb_iseq_new_main): use rb_fstring_cstr for "<main>"
8535         * vm.c (Init_VM): ditto, share with with above
8536         * iseq.c (iseqw_s_compile_file): rb_fstring before rb_io_t->pathv
8537           share "<main>" with above
8538         * vm.c (rb_binding_add_dynavars): fstring "<temp>" immediately
8540 Tue Jan 26 15:14:01 2016  Kazuki Yamaguchi  <k@rhe.jp>
8542         * compile.c (iseq_peephole_optimize): don't apply tailcall
8543           optimization to send/invokesuper instructions with blockiseq.
8544           This is a follow-up to the changes in r51903; blockiseq is now
8545           the third operand of send/invokesuper instructions.
8546           [ruby-core:73413] [Bug #12018]
8548 Tue Jan 26 14:26:46 2016  Eric Wong  <e@80x24.org>
8550         * signal.c (sig_list): use fstring for hash key
8551         * test/ruby/test_signal.rb (test_signal_list_dedupe_keys): added
8553 Tue Jan 26 13:08:34 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8555         * signal.c (rb_f_kill): should immediately deliver reserved
8556           signals SIGILL and SIGFPE, not only SIGSEGV and SIGBUS.
8558 Tue Jan 26 07:57:28 2016  Joseph Tibbertsma  <josephtibbertsma@gmail.com>
8560         * gc.c (RVALUE_PAGE_WB_UNPROTECTED): fix a typo of argument name.
8561           [Fix GH-1221]
8563 Mon Jan 25 17:26:54 2016  Eric Wong  <e@80x24.org>
8565         * ruby_assert.h (RUBY_ASSERT_WHEN): fix reference to macro name
8566         * vm_core.h: include ruby_assert.h before using
8567           [ruby-core:73371]
8569 Mon Jan 25 15:55:30 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8571         * symbol.c (sym_check_asciionly): more informative error message
8572           with the encoding name and the inspected content.
8573           [ruby-core:73398] [Feature #12016]
8575 Mon Jan 25 09:38:26 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
8577         * test/ruby/test_string.rb: added testcase for next!, succ and succ!
8578           [fix GH-1213] Patch by @K0mAtoru
8580 Mon Jan 25 09:32:25 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
8582         * lib/webrick/httpservlet/filehandler.rb: fix documentation for namespace.
8583           [fix GH-1219][ci skip] Patch by @leafac
8585 Sun Jan 24 19:34:23 2016  Eric Wong  <e@80x24.org>
8587         * vm_insnhelper.c (vm_check_if_namespace): tiny size reduction
8589 Sun Jan 24 18:12:36 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8591         * common.mk: Simplifying Unicode data file download logic to make
8592           it more reliable (including additional fix not in r53633) [Bug #12007]
8594 Sun Jan 24 16:54:11 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8596         * ext/io/wait/wait.c (io_wait_readwrite): [EXPERIMENTAL] allow to
8597           wait for multiple modes, readable and writable, at once.  the
8598           arguments may change in the future.  [Feature #12013]
8600 Sat Jan 23 22:30:59 2016  K0mA  <mctj1218@gmail.com>
8602         * test/ruby/test_array.rb (test_keep_if): Add test for
8603           Array#keep_if separate from Array#select!  [Fix GH-1218]
8605 Sat Jan 23 20:54:26 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
8607         * common.mk: revert r53633. It broke rubyci and travis.
8608           https://travis-ci.org/ruby/ruby/builds/104259623
8610 Sat Jan 23 20:10:29 2016  Shugo Maeda  <shugo@ruby-lang.org>
8612         * range.c (range_eqq): revert r51585 because rb_call_super() is
8613           called in range_include() and thus r51585 doesn't work when the
8614           receiver Range object consists of non linear objects such as Date
8615           objects.
8616           [ruby-core:72908] [Bug #12003]
8618 Sat Jan 23 18:37:37 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8620         * ChangeLog: Fixing wrong time on previous commit, and adding
8621           previous commit message to svn [ci skip]
8623 Sat Jan 23 18:30:30 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8625         * common.mk: Simplifying Unicode data file download logic to make
8626           it more reliable [Bug #12007]
8628 Sat Jan 23 16:29:42 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8630         * tool/downloader.rb: Fixed a logical error, improved documentation
8632 Sat Jan 23 11:42:43 2016  Peter Suschlik  <ps@neopoly.de>
8634         * README.md: Use SVG Travis badge over PNG for better quality and
8635           device support.  [Fix GH-1214] [Fix GH-1216]
8637 Sat Jan 23 11:29:16 2016  Pascal Betz  <pascal.betz@simplificator.com>
8639         * lib/csv.rb: Update documentation of CSV header converter for
8640           r45498, [GH-575].  [Fix GH-1215]
8642 Fri Jan 22 17:36:46 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8644         * vm_core.h (VM_ASSERT): use RUBY_ASSERT instead of rb_bug.
8646         * error.c (rb_assert_failure): assertion with stack dump.
8648         * ruby_assert.h (RUBY_ASSERT): new header for the assertion.
8650 Fri Jan 22 00:25:57 2016  NARUSE, Yui  <naruse@ruby-lang.org>
8652         * regparse.c (fetch_name_with_level): allow non word characters
8653           at the first character.  [Feature #11949]
8655         * regparse.c (fetch_name): ditto.
8657 Thu Jan 21 17:34:01 2016  NARUSE, Yui  <naruse@ruby-lang.org>
8659         * marshal.c (r_object0): honor Marshal.load post proc
8660           value for TYPE_LINK.  by Hiroshi Nakamura <nahi@ruby-lang.org>
8661           https://github.com/ruby/ruby/pull/1204 fix GH-1204
8663 Thu Jan 21 16:37:50 2016  NARUSE, Yui  <naruse@ruby-lang.org>
8665         * Makefile.in (update-rubyspec): fix r53208 like r53451.
8667 Wed Jan 20 20:58:25 2016  NAKAMURA Usaku  <usa@ruby-lang.org>
8669         * common.mk, Makefile.in: update-config_files is only for Unix
8670           platforms.
8672 Wed Jan 20 17:13:39 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8674         * tool/extlibs.rb: add --cache option to change cache directory.
8676 Tue Jan 19 17:03:40 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8678         * common.mk: Added Unicode data file CaseFolding.txt to be additionally
8679           downloaded (with Kimihito Matsui)
8681 Tue Jan 19 10:09:58 2016  Sho Hashimoto  <sho-h@ruby-lang.org>
8683         * lib/shell.rb (Shell.debug_output_exclusive_unlock): remove
8684           because Mutex#exclusive_unlock was already deleted. [fix GH-1185]
8686 Tue Jan 19 09:38:27 2016  Nick Cox  <nick@nickcox.me>
8688         * vm_method.c: fix grammar in respond_to? warning.
8689           [fix GH-1047]
8691 Mon Jan 18 14:37:07 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8693         * parse.y (parser_here_document): an escaped newline is not an
8694           actual newline, and the rest part should not be dedented.
8695           [ruby-core:72855] [Bug #11989]
8697 Mon Jan 18 12:04:34 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
8699         * test/ruby/test_string.rb: Added extra testcase for test_rstrip_bang
8700           and test_lstrip_bang. [fix GH-1178] Patch by @Matrixbirds
8702 Mon Jan 18 11:47:27 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
8704         * string.c: fix a typo. [fix GH-1202][ci skip] Patch by @sunboshan
8706 Sun Jan 17 21:15:30 2016  NARUSE, Yui  <naruse@ruby-lang.org>
8708         * configure.in: improve ICC (Intel C Compiler) support.
8710         * configure.in (CXX): The name of icc's c++ compiler is `icpc`.
8712         * configure.in (warnings): Add `-diag-disable=2259` to suppress
8713           noisy warnings: "non-pointer conversion from "..." to "..." may
8714           lose significant bits".
8716         * configure.in (optflags): Add `-fp-model precise` like -fno-fast-math.
8718         * lib/mkmf.rb: icc supports -Werror=division-by-zero
8719           and -Werror=deprecated-declarations, but doesn't support
8720           -Wdivision-by-zero and -Wdeprecated-declarations.
8722 Sun Jan 17 20:40:10 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8724         * string.c: Any kind of option is now taking the new code path for
8725           upcase/downcase/capitalize/swapcase. :lithuanian can be used for
8726           testing if no specific option is desired.
8727         * test/ruby/enc/test_case_mapping.rb: Adjusted to above.
8728           (with Kimihito Matsui)
8730 Sun Jan 17 20:10:10 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8732         * enc/unicode.c: Fixed a logical error and some comments.
8733         * test/ruby/enc/test_case_mapping.rb: Made tests more general.
8734           (with Kimihito Matsui)
8736 Sun Jan 17 17:41:41 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8738         * enc/unicode.c: Removed artificial expansion for Turkic,
8739           added hand-coded support for Turkic, fixed logic for swapcase.
8740         * string.c: Made use of new case mapping code possible from upcase,
8741           capitalize, and swapcase (with :lithuanian as a guard).
8742         * test/ruby/enc/test_case_mapping.rb: Adjusted for above.
8743           (with Kimihito Matsui)
8745 Sun Jan 17 15:30:57 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8747         * ext/socket/option.c (sockopt_bool): relax boolean size to be one
8748           too not only sizeof(int).  Winsock getsockopt() returns a single
8749           byte as a boolean socket option.  [ruby-core:72730] [Bug #11958]
8751 Sun Jan 17 14:43:01 2016  Kuniaki IGARASHI  <igaiga@gmail.com>
8753         * test/ruby/test_env.rb: [Fix GH-1201]
8754           * Extract test code for ENV#keep_if from ENV#select_bang
8755           * Add a test case for ENV#select_bang,keep_if
8757 Sun Jan 17 14:42:25 2016  Kuniaki IGARASHI  <igaiga@gmail.com>
8759         * test/ruby/test_env.rb: [Fix GH-1201]
8760           * Extract test code for ENV#delete_if from ENV#reject_bang
8761           * Add a test case for ENV#reject_bang,delete_if
8763 Sun Jan 17 14:40:22 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8765         * ext/socket/option.c (check_size): extract a macro to check
8766           binary data size, with a consistent message.
8768         * ext/socket/option.c (sockopt_byte): fix error message,
8769           sizeof(int) differs from sizeof(unsigned char) in general.
8771 Sat Jan 16 21:16:21 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8773         * parse.y (xstring): reset heredoc indent after dedenting,
8774           so that following string literal would not be dedented.
8775           [ruby-core:72857] [Bug #11990]
8777 Sat Jan 16 17:24:24 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8779         * enc/unicode.c: Artificial mapping to test buffer expansion code.
8780         * string.c: Fixed buffer expansion logic.
8781         * test/ruby/enc/test_case_mapping.rb: Tests for above.
8782           (with Kimihito Matsui)
8784 Sat Jan 16 16:47:14 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
8786         * ext/openssl/lib/openssl/pkey.rb: Added 2048 bit DH parameter.
8787         * test/openssl/test_pkey_dh.rb: ditto.
8789 Sat Jan 16 10:51:19 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
8791         * enc/unicode.c: fix implicit conversion error with clang. fixup r53548.
8792         * string.c: ditto.
8794 Sat Jan 16 10:31:00 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
8796         * common.mk: test-sample was changed to test-basic.
8797           [Feature #11982][ruby-core:72823]
8798         * basictest/runner.rb: ditto. rename from tool/rubytest.rb.
8799         * basictest/test.rb: ditto. rename from sample/test.rb.
8800         * defs/gmake.mk: picked from r53540
8801         * sample/test.rb: backward compatibility for chkbuild.
8803 Sat Jan 16 10:23:23 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8805         * string.c, enc/unicode.c: New code path as a preparation for Unicode-wide
8806           case mapping. The code path is currently guarded by the :lithuanian
8807           option to avoid accidental problems in daily use.
8808         * test/ruby/enc/test_case_mapping.rb: Test for above.
8809         * string.c: function 'check_case_options': fixed logical errors
8810           (with Kimihito Matsui)
8812 Fri Jan 15 20:20:20 2016  Naohisa Goto  <ngotogenome@gmail.com>
8814         * regint.h (PLATFORM_UNALIGNED_WORD_ACCESS): The value of
8815           UNALIGNED_WORD_ACCESS should be used to determine whether
8816           unaligned word access is allowed or not. After this commit,
8817           ./configure CPPFLAGS="-DUNALIGNED_WORD_ACCESS=0" disables
8818           unaligned word access even on platforms that support the feature.
8820 Fri Jan 15 16:12:10 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8822         * parse.y (string1): reset heredoc indent for each string literal
8823           so that concatenated string would not be dedented.
8824           [ruby-core:72857] [Bug #11990]
8826 Thu Jan 14 20:01:00 2016  NARUSE, Yui  <naruse@ruby-lang.org>
8828         * lib/uri/generic.rb (URI::Generic#to_s): change encoding to
8829           UTF-8 as Ruby 2.2/ by Koichi ITO <koic.ito@gmail.com>
8830           https://github.com/ruby/ruby/pull/1188 fix GH-1188
8832 Thu Jan 14 17:36:16 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8834         * variable.c (rb_f_global_variables): add matched back references
8835           only, as well as defined? operator.
8837 Thu Jan 14 16:12:09 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8839         * sprintf.c (rb_str_format): format exact number more exactly.
8841 Thu Jan 14 15:08:43 2016  Tony Arcieri  <bascule@gmail.com>
8843         * Remove 512-bit DH group. It's affected by LogJam Attack.
8844           https://weakdh.org/
8845           [fix GH-1196][Bug #11968][ruby-core:72766]
8847 Thu Jan 14 11:44:29 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8849         * variable.c (rb_f_global_variables): add $1..$9 only if $~ is
8850           set.  fix the condition removed at r14014.
8852 Wed Jan 13 17:21:45 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
8854         * .travis.yml: removed commented-out code.
8856 Wed Jan 13 17:14:54 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
8858         * .travis.yml: removed osx code. follow up with r53517
8860 Wed Jan 13 16:56:19 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8862         * iseq.c (rb_iseq_mark): mark parent iseq to prevent dynamically
8863           generated iseq by eval from GC.  [ruby-core:72620] [Bug #11928]
8865 Wed Jan 13 03:42:58 2016  Eric Wong  <e@80x24.org>
8867         * class.c (Init_class_hierarchy): resolve name for rb_cObject ASAP
8868         * object.c (rb_mod_const_set): move name resolution to rb_const_set
8869         * variable.c (rb_const_set): do class resolution here
8870           [ruby-core:72807] [Bug #11977]
8872 Wed Jan 13 00:37:12 2016  Satoshi Ohmori  <sachin21dev@gmail.com>
8874         * man/ruby.1: fix double word typo.  [Fix GH-1194]
8876 Tue Jan 12 21:01:09 2016  Benoit Daloze  <eregontp@gmail.com>
8878         * common.mk: update URL and name for the Ruby spec suite.
8880 Tue Jan 12 19:52:19 2016  sorah (Shota Fukumori)  <her@sorah.jp>
8882         * lib/forwardable.rb: Convert given accessors to String.
8884           r53381 changed to accept only Symbol or String for accessors, but
8885           there are several rubygems that pass classes (e.g. Array,
8886           Hash, ...) as accessors. Prior r53381, it was accepted because Class#to_s
8887           returns its class name. After r53381 given accessors are checked
8888           with define_method, but it accepts only Symbol or String, otherwise
8889           raises TypeError.
8891               def_delegator Foo, :some_method
8893           This change is to revert unexpected incompatibility. But this behavior
8894           may change in the future.
8896 Mon Jan 12 18:41:41 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8898         * string.c: made a variable name more grammatically correct
8900 Mon Jan 12 18:34:34 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8902         * string.c: minor grammar fix [ci skip]
8904 Mon Jan 12 16:09:09 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8906         * test/ruby/enc/test_casing_options.rb: Tests for option
8907           parsing/checking for upcase/downcase/capitalize/swapcase
8908           (see r53503; with Kimihito Matsui)
8910 Mon Jan 12 16:03:03 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8912         * string.c: Added option parsing/checking for upcase/downcase/
8913           capitalize/swapcase (with Kimihito Matsui)
8915 Mon Jan 11 21:28:28 2016  Martin Duerst  <duerst@it.aoyama.ac.jp>
8917         * include/ruby/oniguruma.h: Added flags needed for upcase/downcase
8918           Unicode addition (with Kimihito Matsui)
8920 Mon Jan 11 09:50:24 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8922         * configure.in: check if the API version number is consistent with
8923           the program version number.
8925 Sun Jan 10 20:57:25 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8927         * compile.c (compile_massign_lhs): when index ends with splat,
8928           append rhs value to it like POSTARG, since VM_CALL_ARGS_SPLAT
8929           splats the last argument only.  [ruby-core:72777] [Bug #11970]
8931 Sun Jan 10 15:45:10 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8933         * include/ruby/missing.h (explicit_bzero_by_memset_s): remove
8934           inline implementation by memset_s, which needs a macro before
8935           including headers and can cause problems in extension libraries
8936           by the order of the macro and headers.
8938 Sun Jan 10 13:41:36 2016  Eric Wong  <e@80x24.org>
8940         * io.c (rb_deferr): remove long obsolete global
8942 Sun Jan 10 09:14:42 2016  Eric Wong  <e@80x24.org>
8944         * ext/psych/lib/psych/visitors/yaml_tree.rb (visit_String):
8945           eliminate chomp
8946         * lib/net/http.rb (connect): eliminate delete
8947         * lib/net/http/header.rb (basic_encode): ditto
8948         * lib/net/imap.rb (authenticate): eliminate gsub
8949           (self.encode_utf7): shorten delete arg
8950         * lib/net/smtp.rb (base64_encode): eliminate gsub
8951         * lib/open-uri.rb (OpenURI.open_http): eliminate delete
8952         * lib/rss/rss.rb: ditto
8953         * lib/securerandom.rb (base64): ditto
8954           (urlsafe_base64): eliminate delete!
8955         * lib/webrick/httpauth/digestauth.rb (split_param_value):
8956           eliminate chop
8957         * lib/webrick/httpproxy.rb (do_CONNECT): eliminate delete
8958           (setup_upstream_proxy_authentication): ditto
8959           [ruby-core:72666] [Feature #11938]
8961 Sat Jan  9 23:19:14 2016  Kuniaki IGARASHI  <igaiga@gmail.com>
8963         * test/ruby/test_hash.rb (test_try_convert): Add test for
8964           Hash.try_convert.  [Fix GH-1190]
8966 Sat Jan  9 23:15:25 2016  Jon Moss  <maclover7@users.noreply.github.com>
8968         * ext/openssl/ossl.c: Add missing variables to documentation
8969           examples.  [Fix GH-1189]
8971 Sat Jan  9 18:25:57 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8973         * symbol.h (is_attrset_id): ASET is an attrset ID.  fix
8974           unexpected safe call instead of an ordinary ASET.
8976 Sat Jan  9 10:44:33 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
8978         * configure.in, win32/setup.mak: extract RUBY_PROGRAM_VERSION from
8979           RUBY_VERSION in version.h instead of RUBY_API_VERSION numbers in
8980           include/ruby/version.h, and cut it into version numbers.
8982 Sat Jan  9 07:13:33 2016  Koichi Sasada  <ko1@atdot.net>
8984         * gc.c: rename PAGE_* to HEAP_PAGE_* because PAGE_SIZE is used
8985           in Mac OS X.
8987         * test/ruby/test_gc.rb: catch up this fix.
8989 Sat Jan  9 05:45:40 2016  Koichi Sasada  <ko1@atdot.net>
8991         * gc.c: PAGE_BITMAP_PLANES (the number of bitmap) is 4, not 3.
8993 Sat Jan  9 05:42:57 2016  Koichi Sasada  <ko1@atdot.net>
8995         * gc.c: rename constant names HEAP_* to PAGE_*.
8997           Keys of GC::INTERNAL_CONSTANTS are also renamed.
8999         * test/ruby/test_gc.rb: catch up this fix.
9001 Fri Jan  8 22:30:06 2016  Akinori MUSHA  <knu@iDaemons.org>
9003         * doc/regexp.rdoc: [DOC] Elaborate on the \G anchor. [ci skip]
9005 Fri Jan  8 19:49:27 2016  Koichi Sasada  <ko1@atdot.net>
9007         * gc.c: remove heap_page::body. Instead of this field,
9008           heap_page::start field works well.
9010 Fri Jan  8 19:31:52 2016  Koichi Sasada  <ko1@atdot.net>
9012         * gc.c: rename rb_heap_t::page_length to rb_heap_t::total_pages.
9014           `page_length' is not clear (we may understand with length of
9015           a page).
9017 Fri Jan  8 17:07:14 2016  Koichi Sasada  <ko1@atdot.net>
9019         * gc.c: remove heap_page::heap. This field is only used to recognize
9020           whether a page is in a tomb or not. Instead of this field,
9021           heap_page::flags::in_tomb (1 bit field) is added.
9023           Also type of heap_page::(total|free|final)_slots are changed from
9024           int to short. 2B is enough for them.
9026 Fri Jan  8 09:33:59 2016  Shugo Maeda  <shugo@ruby-lang.org>
9028         * iseq.c (rb_iseq_compile_with_option): move variable initialization
9029           code to avoid maybe-uninitialized warnings by gcc 4.8.
9031 Fri Jan  8 00:03:22 2016  Shugo Maeda  <shugo@ruby-lang.org>
9033         * enum.c (enum_min, enum_max): do the same optimization as r53454.
9035 Thu Jan  7 22:32:21 2016  Kenta Murata  <mrkn@mrkn.jp>
9037         * ruby.h: undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P
9038           and HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P on C++.
9039           [ruby-core:72736] [Bug #11962]
9041 Thu Jan  7 22:02:21 2016  Shugo Maeda  <shugo@ruby-lang.org>
9043         * enum.c (enum_minmax): optimize object comparison in
9044           Enumerable#minmax.
9046 Thu Jan  7 14:49:12 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9048         * thread.c (rb_thread_pending_interrupt_p): no pending interrupt
9049           before initialization.
9051         * thread.c (thread_raise_m, rb_thread_kill): uninitialized thread
9052           cannot interrupt.  [ruby-core:72732] [Bug #11959]
9054 Thu Jan  7 11:34:14 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9056         * include/ruby/backward.h (ruby_show_copyright_to_die): for source
9057           code backward compatibility.
9059         * ruby.c (process_options): return Qtrue to exit the process
9060           successfully.
9062         * version.c (ruby_show_copyright): no longer exit.
9064 Wed Jan  6 17:22:53 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9066         * lib/optparse.rb (OptionParser#order!): add `into` optional
9067           keyword argument to store the results.  [Feature #11191]
9069 Tue Jan  5 21:44:37 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
9071         * ChangeLog: fix wrong class name.
9073 Tue Jan  5 21:43:50 2016  Kuniaki IGARASHI  <igaiga@gmail.com>
9075         * test/ruby/test_string.rb(test_chr): added test for String#chr
9076           [fix GH-1179]
9078 Tue Jan  5 21:32:26 2016  Kuniaki IGARASHI  <igaiga@gmail.com>
9080         * test/ruby/test_numeric.rb (test_nonzero_p): added test for Numeric#nonzero?
9081           [fix GH-1187]
9083 Tue Jan  5 11:47:23 2016  Damir Gaynetdinov  <damir.gaynetdinov@gmail.com>
9085         * doc/marshal.rdoc: Clarify object references example, that the
9086           reference is same object.  [Fix GH-1156]
9088 Tue Jan  5 05:06:51 2016  Eric Wong  <e@80x24.org>
9090         * ext/stringio/stringio.c (strio_binmode): implement to set encoding
9091         * test/stringio/test_stringio.rb (test_binmode): new test
9092           [ruby-core:72699] [Bug #11945]
9094 Mon Jan  4 15:44:37 2016  Sho Hashimoto  <sho-h@ruby-lang.org>
9096         * variable.c (rb_mod_deprecate_constant): [DOC] added
9097           documentation for Module#deprecate_constant. [ci skip]
9099 Mon Jan  4 15:36:38 2016  Sho Hashimoto  <sho-h@ruby-lang.org>
9101         * thread_sync.c: [DOC] remove SizedQueue#close argument.
9102           [ci skip]
9104 Mon Jan  4 10:14:24 2016  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
9106         * test/coverage/test_coverage.rb: ignored test when enabled to coverage.
9107           It lead to crash with `make test-all`.
9109 Mon Jan  4 08:10:44 2016  Yuichiro Kaneko  <yui-knk@ruby-lang.org>
9111         * insns.def (opt_case_dispatch): Move a comment to the
9112           appropriate position.
9113           [ci skip]
9115 Sun Jan  3 23:55:13 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9117         * lib/rubygems/security.rb (DIGEST_ALGORITHM, KEY_ALGORITHM):
9118           should check same name as the used constants.
9119           [ruby-core:72674] [Bug #11940]
9121 Sun Jan  3 19:22:01 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9123         * aclocal.m4: add fallback file for non-aclocal environments.
9124           [ruby-core:72683] [Bug #11942]
9126 Sun Jan  3 13:56:49 2016  Yuichiro Kaneko  <yui-knk@ruby-lang.org>
9128         * eval_error.c (rb_print_undef): Use `rb_method_visibility_t`
9129           instead of `int`.
9130         * eval_intern.h (rb_print_undef): ditto
9131         * proc.c (mnew_internal): ditto
9132         * vm_method.c (rb_export_method): ditto
9133           [Misc #11649] [ruby-core:71311] [fix GH-1078]
9135 Sun Jan  3 12:12:09 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9137         * acinclude.m4: rename aclocal.m4, which should be generated by
9138           aclocal.  [ruby-core:72675] [Bug #11941]
9140 Sat Jan  2 21:07:55 2016  Eric Wong  <e@80x24.org>
9142         * thread_sync.c (queue_do_pop): avoid cast with Qfalse
9143           (rb_szqueue_push): ditto, use queue_sleep wrapper
9145 Sat Jan  2 16:16:14 2016  Masatoshi SEKI  <m_seki@mva.biglobe.ne.jp>
9147         * lib/erb.rb: Allow ERB subclass to add token easily.
9148           [Feature #11936]
9150         * test/erb/test_erb.rb: ditto.
9152 Sat Jan  2 14:44:31 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9154         * parse.y (regexp): set_yylval_num sets u1, should use nd_tag
9155           instead of nd_state.  [ruby-core:72638] [Bug #11932]
9157 Sat Jan  2 02:27:22 2016  Marc-Andre Lafortune  <ruby-core@marc-andre.ca>
9159         * lib/ostruct.rb: Fix case of frozen object with initializer.
9160           Bug revealed by RubySpec [ruby-core:72639]
9162 Fri Jan  1 22:01:52 2016  Kazuhiro NISHIYAMA  <zn@mbf.nifty.com>
9164         * NEWS: mention CSV's liberal_parsing option.
9166 Fri Jan  1 19:38:23 2016  okkez  <okkez000@gmail.com>
9168         * doc/NEWS-2.3.0: fix double words typo.
9169           [ci skip][fix GH-1183]
9171 Fri Jan  1 15:28:56 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9173         * compile.c (remove_unreachable_chunk): decrease count of
9174           call_info in removed instructions.  fix up r53402.
9176 Fri Jan  1 12:05:53 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9178         * compile.c (remove_unreachable_chunk): remove unreferred label
9179           to optimize away unreachable chunk.
9181 Fri Jan  1 11:42:57 2016  James Edward Gray II  <james@graysoftinc.com>
9183         * lib/csv.rb (CSV): Add a liberal_parsing option.
9184           Patch by Braden Anderson. [#11839]
9185         * test/csv/test_features.rb:  test liberal_parsing
9187 Fri Jan  1 10:27:28 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9189         * tool/mkconfig.rb (RbConfig): prefix SDKROOT to oldincludedir
9190           not includedir, the latter is outside the ruby installation.
9191           [ruby-core:72496] [Bug #11881]
9193 Fri Jan  1 08:53:02 2016  Yuki Kurihara  <co000ri@gmail.com>
9195         * test/ruby/test_lazy_enumerator.rb (test_take_bad_arg): Add test
9196           code in case of Enumerator::Lazy#take called with negative number.
9197           [ruby-dev:49467] [Bug #11933]
9199 Fri Jan  1 05:06:20 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9201         * parse.y (parser_here_document): update indent for each line in
9202           indented here document with single-quotes.
9203           [ruby-core:72479] [Bug #11871]
9205 Fri Jan  1 03:26:44 2016  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9207         * lib/ostruct.rb (freeze): define deferred accessors before
9208           freezing to get rid of an error when just reading frozen
9209           OpenStruct.
9211 Thu Dec 31 14:36:45 2015  Marc-Andre Lafortune  <ruby-core@marc-andre.ca>
9213         * lib/ostruct.rb: Fix new_ostruct_member to correctly avoid
9214           redefinition [#11901]
9216 Thu Dec 31 02:45:12 2015  NARUSE, Yui  <naruse@ruby-lang.org>
9218         * test/ruby/test_module.rb (test_classpath): r53376 may change
9219           the order of m.constants.
9220           `make TESTS='-v ruby/test_class.rb ruby/test_module.rb' test-all`
9221           may fail after that.
9222           http://rubyci.s3.amazonaws.com/tk2-243-31075/ruby-trunk/log/20151230T164202Z.log.html.gz
9224 Thu Dec 31 02:20:00 2015  Benoit Daloze  <eregontp@gmail.com>
9226         * common.mk (help): Fix typo.
9228 Wed Dec 30 20:53:09 2015  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
9230         * lib/net/http/responses.rb: Added new response class for 451 status code.
9231         * lib/net/http.rb: documentation for HTTPUnavailableForLegalReasons
9233 Wed Dec 30 20:45:45 2015  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
9235         * lib/webrick/httpstatus.rb: Added HTTP 451 Status Code.
9236           [fix GH-1167] Patch by @MuhammetDilmac
9237           https://tools.ietf.org/html/draft-tbray-http-legally-restricted-status-00
9239 Wed Dec 30 20:25:52 2015  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
9241         * doc/syntax/calling_methods.rdoc: fix old operator for safe navigation
9242           operator. [ci skip][fix GH-1182] Patch by @dougo
9244 Wed Dec 30 16:43:23 2015  Kuniaki IGARASHI  <igaiga@gmail.com>
9246         * test/ruby/test_string.rb (test_ord): Add test for String#ord.
9247           [Fix GH-1181]
9249 Wed Dec 30 11:28:57 2015  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9251         * lib/forwardable.rb (def_instance_delegator): adjust backtrace of
9252           method body by tail call optimization.  adjusting the delegated
9253           target is still done by deleting backtrace.
9255         * lib/forwardable.rb (def_single_delegator): ditto.
9257 Wed Dec 30 11:18:42 2015  Elliot Winkler  <elliot.winkler@gmail.com>
9259         * lib/forwardable.rb (def_instance_delegator) fix delegating to
9260           'args' and 'block', clashing with local variables in generated
9261           methods.  [ruby-core:72579] [Bug #11916]
9263         * lib/forwardable.rb (def_single_delegator): ditto.
9265 Wed Dec 30 09:58:56 2015  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9267         * object.c (rb_class_inherited_p): search the corresponding
9268           ancestor to prepended module from prepending class itself.
9269           [ruby-core:72493] [Bug #11878]
9271 Wed Dec 30 09:20:00 2015  Yuki Kurihara  <co000ri@gmail.com>
9273         * test/stringio/test_io.rb (test_flag): add assertion for error when
9274           text and binary mode are mixed.
9275           [ruby-dev:49465] [Feature #11921]
9277 Wed Dec 30 08:43:59 2015  Yuki Kurihara  <co000ri@gmail.com>
9279         * test/stringio/test_stringio.rb (test_initialize): add test for
9280           StringIO#initialize.  [ruby-core:72585] [Feature #11920]
9282 Wed Dec 30 05:19:24 2015  Eric Wong  <e@80x24.org>
9284         * class.c (struct clone_const_arg): adjust for id_table
9285           (clone_const): ditto
9286           (clone_const_i): ditto
9287           (rb_mod_init_copy): ditto
9288           (rb_singleton_class_clone_and_attach): ditto
9289           (rb_include_class_new): ditto
9290           (include_modules_at): ditto
9291         * constant.h (rb_free_const_table): ditto
9292         * gc.c (free_const_entry_i): ditto
9293           (rb_free_const_table): ditto
9294           (obj_memsize_of): ditto
9295           (mark_const_entry_i): ditto
9296           (mark_const_tbl): ditto
9297         * internal.h (struct rb_classext_struct): ditto
9298         * object.c (rb_mod_const_set): resolve class name on assignment
9299         * variable.c (const_update): replace with const_tbl_update
9300           (const_tbl_update): new function
9301           (fc_i): adjust for id_table
9302           (find_class_path): ditto
9303           (autoload_const_set): st_update => const_tbl_update
9304           (rb_const_remove): adjust for id_table
9305           (sv_i): ditto
9306           (rb_local_constants_i): ditto
9307           (rb_local_constants): ditto
9308           (rb_mod_const_at): ditto
9309           (rb_mod_const_set): ditto
9310           (rb_const_lookup): ditto
9311           [ruby-core:72112] [Feature #11614]
9313 Wed Dec 30 04:10:13 2015  CHIKANAGA Tomoyuki  <nagachika@ruby-lang.org>
9315         * thread_pthread.c (rb_thread_create_timer_thread): destroy attr even
9316           if pthread_create() failed.
9318 Wed Dec 30 02:55:09 2015  Eric Wong  <e@80x24.org>
9320         * thread_pthread.c (setup_communication_pipe): delay setting owner
9321           (rb_thread_create_timer_thread): until thread creation succeeds
9322           [ruby-core:72590] [Bug #11922]
9324 Tue Dec 29 19:12:46 2015  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9326         * ruby.c (proc_options): -W command line option should be able to
9327           override -w in RUBYOPT environment variable.
9329 Tue Dec 29 17:54:16 2015  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9331         * eval.c (ignored_block): warn if a block is given to `using`,
9332           which is probably for `Module.new`.
9334 Tue Dec 29 12:48:34 2015  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9336         * lib/ostruct.rb (OpenStruct): make respond_to? working on
9337           just-allocated objects for workaround of Psych.
9338           [ruby-core:72501] [Bug #11884]
9340 Tue Dec 29 10:35:00 2015  Kenta Murata  <mrkn@mrkn.jp>
9342         * test/mkmf/test_have_func.rb (test_have_func):
9343           Add assertion to examine the existence of HAVE_RUBY_INIT.
9345         * test/mkmf/test_have_func.rb (test_not_have_func):
9346           Add assertion to examine the absence of HAVE_RUBY_INIT.
9348 Tue Dec 29 06:50:42 2015  Eric Wong  <e@80x24.org>
9350         * thread_sync.c: static classes
9352 Tue Dec 29 05:30:30 2015  Eric Wong  <e@80x24.org>
9354         * lib/resolv.rb (Resolv::IPv6.create): avoid modifying frozen
9355         * test/resolv/test_dns.rb (test_ipv6_create): test for above
9356           [Bug #11910] [ruby-core:72559]
9358 Mon Dec 28 14:55:57 2015  Kuniaki IGARASHI  <igaiga@gmail.com>
9360         * test/ruby/test_string.rb (TestString#test_rstrip_bang): Add test
9361           for String#rstrip!.  [Fix GH-1176]
9363 Mon Dec 28 09:18:53 2015  Kuniaki IGARASHI  <igaiga@gmail.com>
9365         * test/ruby/test_string.rb (TestString#test_lstrip_bang): Add test
9366           for String#lstrip!.  [Fix GH-1176]
9368 Sun Dec 27 23:32:26 2015  Masaki Suketa <masaki.suketa@nifty.ne.jp>
9370         * ext/win32ole/win32ole.c (ole_variant2val): refactoring.
9372 Sun Dec 27 21:14:42 2015  NAKAMURA Usaku  <usa@ruby-lang.org>
9374         * process.c (rb_execarg_parent_start1): need to convert the encoding to
9375           ospath's one.
9377 Sun Dec 27 20:54:22 2015  NAKAMURA Usaku  <usa@ruby-lang.org>
9379         * process.c: use rb_w32_uchdir() instead of plain chdir() on Windows.
9380           reported by naruse via twitter.
9382         * process.c (rb_execarg_addopt): need to convert the encoding to
9383           ospath's one.
9385 Sun Dec 27 20:00:31 2015  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
9387         * enc/x_emoji.h: fix dead-link.
9389 Sun Dec 27 19:55:55 2015  SHIBATA Hiroshi  <hsbt@ruby-lang.org>
9391         * doc/NEWS-2.3.0: fix a typo.
9393 Sun Dec 27 18:08:15 2015  Kuniaki IGARASHI  <igaiga@gmail.com>
9395         * string.c (rb_str_lstrip_bang, rb_str_rstrip_bang): [DOC] Fix
9396           ruby-doc comments for String#rstrip! and lstrip!.  It looks like
9397           dropped bang.  [Fix GH-1175]
9399 Sun Dec 27 15:14:20 2015  Eric Wong  <e@80x24.org>
9401         * io.c (io_getpartial): remove unused kwarg from template
9402         * test/ruby/test_io.rb (test_readpartial_bad_args): new
9403           [Bug #11885]
9405 Sun Dec 27 11:50:53 2015  Kuniaki IGARASHI  <igaiga@gmail.com>
9407         * test/ruby/test_string.rb (test_rstrip, test_lstrip): Add tests
9408           for String#lstrip and rstrip.  The test cases are used from
9409           string.c ruby-doc comments.  [Fix GH-1174]
9411 Sun Dec 27 11:47:46 2015  Kuniaki IGARASHI  <igaiga@gmail.com>
9413         * test/ruby/test_string.rb (test_insert): Add test for
9414           String#insert.  The test cases are written in string.c
9415           comments as a reference.  [Fix GH-1173]
9417 Sun Dec 27 11:03:33 2015  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9419         * parse.y (show_bitstack): trace stack_type value if yydebug.
9421 Sun Dec 27 10:03:14 2015  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9423         * enc/depend (enc, trans): fix version dependency, shared object
9424           files depend on the RUBY_SO_NAME value for runtime link.
9426 Sun Dec 27 09:47:20 2015  Masaki Suketa <masaki.suketa@nifty.ne.jp>
9428         * ext/win32ole/win32ole.c (ole_vstr2wc, ole_variant2val): fix blank
9429           string conversion.
9430           [Bug #11880]
9431           Thanks Akio Tajima for the patch!
9433 Sun Dec 27 09:34:53 2015  craft4coder  <yooobuntu@163.com>
9435         * doc/extension.rdoc: [DOC] `nul` should be uppercase.
9436           change 'nul' => 'NUL'.  [Fix GH-1172]
9438 Sat Dec 26 18:29:01 2015  Kouhei Sutou  <kou@cozmixng.org>
9440         * lib/xmlrpc/client.rb: Support SSL options in async methods of
9441           XMLRPC::Client.
9442           [Bug #11489]
9443           Reported by Aleksandar Kostadinov. Thanks!!!
9445 Sat Dec 26 11:26:38 2015  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9447         * miniinit.c (Init_enc): add some common aliases of built-in
9448           encodings.  [ruby-core:72481] [Bug #11872]
9450 Fri Dec 25 22:43:26 2015  Nobuyoshi Nakada  <nobu@ruby-lang.org>
9452         * configure.in: extract RUBY_RELEASE_DAY at generating Makefile.
9454         * version.h (RUBY_RELEASE_DATE): construct from RUBY_RELEASE_YEAR,
9455           RUBY_RELEASE_MONTH, and RUBY_RELEASE_DAY.
9457 Fri Dec 25 21:33:06 2015  Yukihiro Matsumoto  <matz@ruby-lang.org>
9459         * version.h (RUBY_VERSION): 2.4.0 development has started.
9461 Fri Dec 25 14:12:12 2015  Martin Duerst  <duerst@it.aoyama.ac.jp>
9463         * doc/ChangeLog-2.3.0, ext/tk/lib/tkextlib/SUPPORT_STATUS,
9464           include/ruby/version.h: minor grammar fixes [ci skip]
9466 Fri Dec 25 08:23:22 2015  Tadashi Saito  <tad.a.digger@gmail.com>
9468         * compile.c, cont.c, doc, man: fix common misspelling.
9469           [ruby-core:72466] [Bug #11870]
9472 For the changes before 2.3.0, see doc/ChangeLog-2.3.0
9473 For the changes before 2.2.0, see doc/ChangeLog-2.2.0
9474 For the changes before 2.1.0, see doc/ChangeLog-2.1.0
9475 For the changes before 2.0.0, see doc/ChangeLog-2.0.0
9476 For the changes before 1.9.3, see doc/ChangeLog-1.9.3
9477 For the changes before 1.8.0, see doc/ChangeLog-1.8.0
9479 Local variables:
9480 coding: us-ascii
9481 add-log-time-format: (lambda (&optional x y)
9482   (let* ((time (or x (current-time)))
9483          (system-time-locale "C")
9484          (diff (+ (cadr time) 32400))
9485          (lo (% diff 65536))
9486          (hi (+ (car time) (/ diff 65536))))
9487   (format-time-string "%a %b %e %H:%M:%S %Y" (list hi lo) t)))
9488 indent-tabs-mode: t
9489 tab-width: 8
9490 change-log-indent-text: 2
9491 end:
9492 vim: tabstop=8 shiftwidth=2