+ (load_file_internal): Invoke load_file_internal2 using rb_protect.
+ Close an opened FD if load_file_internal2 raises an exception.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46341 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
clear counter at the beggining of every GC and
count promoted (infant->young) objects.
Some promotions (infant->young) are transition of promoting to old
objects. We should not count such promotions.
With this technique, we don't need to check young objects
at obj_free().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
gc_verify_internal_consistency() counts all
- live objects
- young objects (if age2 promotion)
- old objects
in all pages and compares with objspace managing counters.
* gc.c (gc_after_sweep): do gc_verify_internal_consistency()
when RGENGC_CHECK_MODE >= 2.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46335 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c: use int for simple predicate functions instead of VALUE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
of RVALUE_OLD_P(). clang fails to compile it because is_old is
`int' but RVALUE_OLD_P() returns VALUE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
type as "MIXED" followed immediately by params
[ruby-core:62864] [Bug #9885]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46331 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c (RVALUE_DEMOTE_FROM_OLD): decrement old object count.
* gc.c (RVALUE_DEMOTE_FROM_YOUNG): decrement young object count.
* gc.c (rb_gc_resurrect): increment old object count.
* gc.c (gc_marks_body): should not add old object count.
This code is completely my misunderstanding.
* gc.c (rb_gc_force_recycle): decrement young or old object count
correctly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46327 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
shouldn't use same server for respective tests, because the 1st
test sometimes kills the server main loop silently.
[Bug #9881] [ruby-dev:48266]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46325 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
hey nobu, why don't you write Changelog for such serious changes?
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* encoding.c: move `ruby_encoding_index` stuff from
include/ruby/encoding.h to hide the extra field.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
rb_gc_force_recycle().
At this line, a VM object is already freed
(is changed to T_NONE) by rb_gc_call_finalizer_at_exit().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
several tests (ACLEntryTest, TestBug4409, etc.) easier to understand
that they are tests for DRb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
closing a FD interrupts threads which uses the FD.
rb_thread_io_blocking_region (for write()) checks an interrupt after write() is finished.
So, joining the thread after closing() may raise "IOError: stream closed".
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y (intern_str): dynamic attrset ID is registered by
`rb_id_attrset()` already, so no further registration is needed.
[ruby-core:62861]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46289 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Patch submitted by @leafac in https://github.com/ruby/ruby/pull/620
* doc/globals.rdoc: Added $LOADED_FEATURES to list
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46288 b2dd03c8-39d4-4d8f-98ff-823fe69b080e