aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
* test/socket/test_nonblock.rb: new test for sendmsg_nonblocknormal2015-06-021-0/+4
| | | | | | | | | sendmsg_nonblock was not tested on any of my systems due to the common 64K limit. I also don't believe UDP sockets are at all a useful candidate for sendmsg_nonblock testing since they should never block on sending. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/benchmark.rb: just use Process::CLOCK_MONOTONICnormal2015-06-021-0/+5
| | | | | | | | | | | Assume Process::CLOCK_MONOTONIC exists (possibly emulated) and there is no need to bloat our code by defining a compatibility constant. * lib/benchmark.rb: just use Process::CLOCK_MONOTONIC [ruby-core:69390] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix a typo [ci skip]kazu2015-06-011-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50722 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix typokazu2015-06-011-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix indent (tabify) [ci skip]kazu2015-06-011-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50719 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix a typo [ci skip]kazu2015-06-011-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50718 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* mkmf.rb: split --libsnobu2015-06-011-0/+6
| | | | | | | | * lib/mkmf.rb (pkg_config): split --libs if --libs-only-l option is not available. patch in [ruby-core:69428] by Hans Mackowiak. [ruby-core:69421] [Bug #11201] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50717 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (gc_mark_children): remove a garbage characterko12015-06-011-0/+5
| | | | | | | | introduced at the last commit. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50716 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_method.c (rb_method_entry_make): do not show warning messageko12015-06-011-0/+5
| | | | | | | | when method_entry is an alias. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * internal.h: move class related definitions.ko12015-06-011-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50713 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * class.c: remove needless include pragmra for method.h.ko12015-06-011-0/+8
| | | | | | | | | * struct.c: ditto. * vm_method.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50712 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * eval_intern.h, vm_method.c: move macros to functions.ko12015-05-311-0/+9
| | | | | | | | | | | * SCOPE_TEST(f) -> rb_frame_visibility_test(flag). * SCOPE_CHECK(f) -> rb_frame_visibility_check(flag). * SCOPE_SET(f) -> rb_frame_visibility_set(flag). * load.c (load_ext): use it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50703 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/date/date_core.c: [DOC] Add comparison of Time and DateTimezzak2015-05-311-0/+5
| | | | | | | Patch provided by @pixeltrix git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50702 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_core.h (VM_FRAME_MAGIC_DUMMY): introduce new frame type toko12015-05-311-0/+9
| | | | | | | | | | recognize dummy frame. * vm.c (th_init): use new frame type. * vm_args.c (raise_argument_error): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * class.c (rb_class_has_methods): added to reduce depenedencyko12015-05-311-0/+9
| | | | | | | | | | to internal class data structure. * internal.h: ditto. * hash.c (has_extra_methods): use added function. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50700 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c , gc.h (rb_obj_info): export obj_info(VALUE) for debugging.ko12015-05-311-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_gc.rb: increase timeout seconds for GC stressfulko12015-05-311-0/+5
| | | | | | | | debugging. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * method.h: fix typo of comments.ko12015-05-301-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * method.h: add VM_METHOD_TYPE_ALIAS rb_method_definition_t::typeko12015-05-301-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to fix [Bug #11173]. Now, inter class/method alias creates new method entry VM_METHOD_TYPE_ALIAS, which has an original method entry. * vm_insnhelper.c (find_defiend_class_by_owner): added. Search corresponding defined_class from owner class/module. * vm_method.c (rb_method_entry_get_without_cache): return me->klass directly for defined_class. Now, no need to check me->klass any more. * vm_method.c (method_entry_set0): separated from method_entry_set(). * vm_method.c (rb_alias): make method entry has VM_METHOD_TYPE_ALIAS. * vm_method.c (release_method_definition): support VM_METHOD_TYPE_ALIAS. * vm_method.c (rb_hash_method_definition): ditto. * vm_method.c (rb_method_definition_eq): ditto. * vm_method.c (release_method_definition): ditto. * vm_insnhelper.c (vm_call_method): ditto. * vm_insnhelper.c (vm_method_cfunc_entry): ditto. * vm_eval.c (vm_call0_body): ditto. * gc.c (mark_method_entry): ditto. * proc.c (method_def_iseq): ditto. * proc.c (method_cref): ditto. * proc.c (rb_method_entry_min_max_arity): ditto. * test/ruby/test_alias.rb: add tests. * test/ruby/test_module.rb: fix a test to catch up current behavior. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_method.c (rb_unlink_method_entry): make it static.ko12015-05-301-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50690 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix ChangeLog message.ko12015-05-301-2/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * method.h, vm_method.c (rb_free_method_entry): constify a parameter.ko12015-05-301-0/+8
| | | | | | | | | * vm_method.c (rb_unlink_method_entry): constify a parameter. * vm_core.h: remove useless declaration about rb_unlink_method_entry(). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/tempfile.rb (Remover#call): fixed wrong condition introduced atusa2015-05-301-0/+5
| | | | | | | r50682. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ext/socket/ancdata.c: use RB_GC_GUARD instead of volatilenormal2015-05-301-0/+5
| | | | | | | | See doc/extension.rdoc for explanation. [ruby-core:69419] [Feature #11198] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50685 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/tempfile.rb (Tempfile#initialize): initialize @unlinked to fixusa2015-05-301-0/+6
| | | | | | | | test failures introduced at r50682. I hope that check the results of tests before committing, at least the tests about the changed feature. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50684 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* change lingering dtrace probe documentation from function- to method-tenderlove2015-05-301-0/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50683 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/tempfile.rb: refactoring.glass2015-05-301-0/+9
| | | | | | | | | | * use warn instead of STDERR.print * remove @tmpname and use @tmpfile.path * introduce @unlinked flag * Remover takes only @tmpfile * mode will be modified just before file reopen git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* variable.c: avoid compatibility table with generic ivarsnormal2015-05-301-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This recovers and improves performance of Marshal.dump/load on Time objects compared to when we implemented generic ivars entirely using st_table. This also recovers some performance on other generic ivar objects, but does not bring bring Marshal.dump/load performance up to previous speeds. benchmark results: minimum results in each 10 measurements. Execution time (sec) name trunk geniv after marshal_dump_flo 0.343 0.334 0.335 marshal_dump_load_geniv 0.487 0.527 0.495 marshal_dump_load_time 1.262 1.401 1.257 Speedup ratio: compare with the result of `trunk' (greater is better) name geniv after marshal_dump_flo 1.026 1.023 marshal_dump_load_geniv 0.925 0.985 marshal_dump_load_time 0.901 1.004 * include/ruby/intern.h (rb_generic_ivar_table): deprecate * internal.h (rb_attr_delete): declare * marshal.c (has_ivars): use rb_ivar_foreach (w_ivar): ditto (w_object): update for new interface * time.c (time_mload): use rb_attr_delete * variable.c (generic_ivar_delete): implement (rb_ivar_delete): ditto (rb_attr_delete): ditto [ruby-core:69323] [Feature #11170] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* cont.c: Check ruby_current_threadnobu2015-05-301-0/+5
| | | | | | | * cont.c (cont_free): check if ruby_current_thread is still valid. [Fix GH-914] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50679 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* variable.c: use indices for generic ivarsnormal2015-05-291-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reduces memory overhead of ivars for common types such as T_DATA the same way T_OBJECT does it. For 9992 accepted clients on an OpenSSL server, this reduces memory from 77160K to 69248K with the script in https://bugs.ruby-lang.org/issues/11170 * variable.c (static int special_generic_ivar): move (rb_generic_ivar_table): rewrite for compatibility (gen_ivtbl_bytes): new function (generic_ivar_get): update to use ivar index (generic_ivar_update): ditto (generic_ivar_set): ditto (generic_ivar_defined): ditto (generic_ivar_remove): ditto (rb_mark_generic_ivar): ditto (givar_i): ditto (rb_free_generic_ivar): ditto (rb_mark_generic_ivar_tbl): ditto (rb_generic_ivar_memsize): ditto (rb_copy_generic_ivar): ditto (rb_ivar_set): ditto (rb_ivar_foreach): ditto (rb_ivar_count): ditto (givar_mark_i): remove (gen_ivtbl_mark): new function (gen_ivar_each): ditto (iv_index_tbl_extend): update for struct ivar_update (iv_index_tbl_newsize): ditto [ruby-core:69323] [Feature #11170] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50678 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* variable.c: extract common functions for generic ivar indicesnormal2015-05-291-0/+8
| | | | | | | | | | * variable.c (iv_index_tbl_make): extract from rb_ivar_set (iv_index_tbl_extend): ditto (iv_index_tbl_newsize): ditto (rb_ivar_set): use extracted functions [ruby-core:69323] (Part 1) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * tool/make_hgraph.rb: added.ko12015-05-291-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50674 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: check NTH_REF rangenobu2015-05-291-0/+10
| | | | | | | | | | * compile.c (iseq_compile_each): out of range NTH_REF is always nil. * parse.y (parse_numvar): check overflow of NTH_REF and range. [ruby-core:69393] [Bug #11192] * util.c (ruby_scan_digits): make public and add length parameter. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50671 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* socket: avoid redundant fcntl on Linuxnormal2015-05-291-0/+9
| | | | | | | | | | | | | | | | | | | | * ext/socket/ancdata.c (bsock_sendmsg_internal, bsock_recvmsg_internal): avoid redundant fcntl on Linux [ruby-core:69154] [Feature #11145] * ext/socket/init.c (rsock_s_recvfrom_nonblock): ditto * ext/socket/rubysocket.h (MSG_DONTWAIT_RELIABLE): new macro MSG_DONTWAIT is enough to force non-blocking I/O under Linux, so avoid changing the state of a socket. This will allow certain threads to do a non-destructive non-blocking "peek" while others block (without relying on an extra ppoll syscall). We shall be conservative about enabling this feature since some OSes may have incomplete support for MSG_DONTWAIT. I shall defer to a FreeBSD expert to enable that for FreeBSD. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ChangeLog: add missing reference [ci skip]normal2015-05-291-0/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50665 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/*: use monotonic clock for timeoutsnormal2015-05-291-0/+5
| | | | | | | | | | The monotonic clock is preferred as it is guaranteed to be continuous and not subject to jumps due to adjustments. * lib/net/resolv.rb (request): use monotonic clock * lib/net/http.rb (begin_transport, end_transport): ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50664 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/objspace/objspace.c: add two methods to debug internals.ko12015-05-281-0/+11
| | | | | | | | | | | * ObjectSpace.internal_class_of: return RBASIC_CLASS(obj). * ObjectSpace.internal_super_of: return RCLASS_SUPER(cls). * NEWS: add information about both methods. * test/objspace/test_objspace.rb: add tests for both methods. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50662 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix typo in samples for tk ext [skip ci]nobu2015-05-271-0/+6
| | | | | | | | * ext/tk/sample/figmemo_sample.rb (open_file), ext/tk/sample/tktextio.rb (TkTextIO): fix typo in messages. [Fix GH-916] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* openssl: use RB_GC_GUARD instead of volatilenormal2015-05-271-0/+6
| | | | | | | | | | | | | | | | | | | | | | | From doc/extension.rdoc: > > Using the RB_GC_GUARD macro is preferable to using the "volatile" > keyword in C. RB_GC_GUARD has the following advantages: > > 1) the intent of the macro use is clear > > 2) RB_GC_GUARD only affects its call site, "volatile" generates some > extra code every time the variable is used, hurting optimization. > > 3) "volatile" implementations may be buggy/inconsistent in some > compilers and architectures. RB_GC_GUARD is customizable for broken > systems/compilers without those without negatively affecting other > systems. * ext/openssl/ossl_asn1.c (ossl_asn1_traverse, ossl_asn1_decode, ossl_asn1_decode_all): use RB_GC_GUARD instead of volatile [ruby-core:69371] [Bug #11185] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50646 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* drb: avoid redundant fcntl callnormal2015-05-271-0/+6
| | | | | | | | | | | Sockets are close-on-exec by default since Ruby 2.0, so it is redundant to set it again. * lib/drb/drb.rb (set_sockopt): remove redundant fcntl call * lib/drb/unix.rb (set_sockopt): ditto [ruby-core:69128] [Feature #11137] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50645 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_method.c (rb_alias): should resolve refined methods.shugo2015-05-261-0/+5
| | | | | | [ruby-core:69360] [Bug #11182] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50642 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix conditionkazu2015-05-261-0/+4
| | | | | | * include/ruby/defines.h (RUBY_ATTR_ALLOC_SIZE): fix condition. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50640 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * tool/redmine-backporter.rb (rel): after the relations is changed,usa2015-05-251-0/+5
| | | | | | | @changesets is no longer right. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50639 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (setup_overlapped): seek to the file end only whennaruse2015-05-251-0/+5
| | | | | | writing (mode:a), not reading (mode:a+, read). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50637 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (Numeric#negative?): [DOC] Fix call-seq.eregon2015-05-241-0/+5
| | | | | | Patch by @yui-knk. [Fixes GH-908] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * debug.c (ruby_debug_print_id): use rb_id2name() for fprintf().ko12015-05-231-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50617 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* man: updatednobu2015-05-231-0/+5
| | | | | | | * man/*.1: updated dates in man pages. [ruby-dev:48988] [Bug #11171] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * win32/win32.c (rb_w32_write_console): should return the count ofusa2015-05-221-0/+5
| | | | | | | actually eaten characters, include escape sequences. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50610 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix indent (tabify) [ci skip]kazu2015-05-221-4/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50607 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix a typo [ci skip]kazu2015-05-221-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50606 b2dd03c8-39d4-4d8f-98ff-823fe69b080e