aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
* * include/ruby/ruby.h (struct rb_data_type_struct), gc.c: addko12013-06-191-0/+13
| | | | | | | | | | | | | rb_data_type_struct::flags. Now, this flags is passed at T_DATA object creation. You can specify FL_WB_PROTECTED on this flag. * iseq.c: making non-shady iseq objects. * class.c, compile.c, proc.c, vm.c: add WB for iseq objects. * vm_core.h, iseq.h: constify fields to detect WB insertion. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c: more infonobu2013-06-191-0/+4
| | | | | | * gc.c (gc_mark_children): show more info for broken object. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/envutil.rb (EnvUtil#rubybin): remove unnecessary unless expression.kazu2013-06-191-0/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix indent and stylekazu2013-06-191-3/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41408 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (garbage_collect_body): use FIX2INT for ruby_gc_stress.ko12013-06-181-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (rb_objspace::gc_stress): int -> VALUE to store Fixnum object.ko12013-06-181-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (make_deferred): clear flags to T_ZOMBIE.ko12013-06-181-0/+6
| | | | | | | | * gc.c (slot_sweep_body): fix indent. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (rb_big_aref): Apply BIGLO to ~xds[i] for environment whichakr2013-06-181-0/+5
| | | | | | | | BDIGIT is 16bit. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (rgengc_remember): fix output level.ko12013-06-181-0/+7
| | | | | | | | | * gc.c (rgengc_rememberset_mark): fix to output clear count. (shady_object_count + clear_count = count of remembered objects) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (rgengc_remember): check T_NONE and T_ZOMBIEko12013-06-181-0/+5
| | | | | | | | if RGENGC_CHECK_MODE > 0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (RGENGC_CHECK_MODE): add new check mode `3'.ko12013-06-181-0/+6
| | | | | | | | | In this mode, show all references if there is a miss-corrected object. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (gc_stress_set): add special option of GC.stress.ko12013-06-181-0/+12
| | | | | | | | | | | | | `GC.stress=(flag)' accepts integer to control behavior of GC. See code for details. Of course, this feature is only for MRI. You can debug RGenGC (WB) using `GC.stress = 1'. Using this option, do minor marking at all possible places. GC::STRESS_MINOR_MARK = 1 and GC::STRESS_LAZY_SWEEP = 2 seem good to add. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm.c (kwmerge_i): add WB.ko12013-06-181-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c: `st_update()' also has same issue of last fix.ko12013-06-181-0/+6
| | | | | | | | | write barriers at callback function are too early. All write barriers are executed after `st_update()' git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41398 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * variable.c (rb_const_set): fix WB miss.ko12013-06-181-0/+21
| | | | | | | | | | | | | | | | | | | | | | | WBs had located before creating reference between a klass and constant value. It causes GC bug. # pseudo code: WB(klass, value); # WB and remember klass st_insert(klass->const_table, const_id, value); `st_insert()' can cause GC before inserting `value' and forget `klass' from the remember set. After that, relationship between `klass' and `value' are created with constant table. Now, `value' can be young (shady) object and `klass' can be old object, without remembering `klass' object. At the next GC, old `klass' object will be skipped and young (shady) `value' will be miss-collected. -> GC bug Lesson: The place of a WB is important. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (gc_profile_record_flag): There may be two or more reasons. so, it ↵tarui2013-06-181-1/+1
| | | | | | was typo. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_insnhelper.c (vm_call_method): ensure methods of typecharliesome2013-06-181-0/+9
| | | | | | | | VM_METHOD_TYPE_ATTR_SET are called with 1 argument * test/ruby/test_module.rb (class TestModule): add test git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41389 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (gc_profile_record_flag): reason seems like one-hot encoding.tarui2013-06-181-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41388 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/objspace/object_tracing.c: Return for ::allocation_generationzzak2013-06-181-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/objspace/object_tracing.c: Document object_tracing methods.zzak2013-06-181-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c: Rename rb_mObSpace -> rb_mObjSpacezzak2013-06-181-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/objspace/objspace.c: Document ObjectSpace::InternalObjectWrapper.zzak2013-06-181-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/objspace/object_tracing.c: Teach rdoc object_tracing.c [Bug #8537]zzak2013-06-181-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/.document: add object_tracing.c to document filezzak2013-06-181-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/objspace/objspace.c: rdoc on require to overview from r41355zzak2013-06-181-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in: Check __int128.akr2013-06-181-0/+17
| | | | | | | | | | | | | | | | | | * include/ruby/defines.h (BDIGIT_DBL): Use uint128_t if it is available. (BDIGIT): Use uint64_t if uint128_t is available. (SIZEOF_BDIGITS): Defined for above case. (BDIGIT_DBL_SIGNED): Ditto. (PRI_BDIGIT_PREFIX): Ditto. * include/ruby/ruby.h (PRI_64_PREFIX): Defined. * bignum.c (rb_big_pow): Don't use BITSPERDIG for the condition which rb_big_pow returns Float or Bignum. [ruby-dev:47413] [Feature #8509] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: clear lex_strtermnobu2013-06-181-0/+6
| | | | | | | | * parse.y (parser_heredoc_restore): clear lex_strterm always to get rid of marking recycled node. this bug is revealed by r41372 with GC.stress=true. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (nlz): Cast the result explicitly.akr2013-06-181-0/+5
| | | | | | | | (big2dbl): Don't assign BDIGIT values to int variable. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (rb_big_xor): Non-effective code removed.akr2013-06-181-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (gc_stat): add `generated_normal_object_count_types' forko12013-06-181-0/+5
| | | | | | | | RGENGC_PROFILE >= 2. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (gc_mark_maybe): check to skip T_NONE.ko12013-06-181-0/+6
| | | | | | | | * gc.c (markable_object_p): do not need to check (flags == 0) here. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * variable.c (rb_autoload): fix WB miss.ko12013-06-181-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (gc_mark_children): don't need to care about T_ZOMBIE here.ko12013-06-171-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_proc.rb (TestProc#test_block_given_method_to_proc):ktsj2013-06-171-0/+5
| | | | | | run test for r41359. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/ruby.h, vm_eval.c (rb_funcall_with_block):ktsj2013-06-171-0/+15
| | | | | | | | | | | | | | | | new function to invoke a method with a block passed as an argument. * string.c (sym_call): use the above function to avoid a block sharing. [ruby-dev:47438] [Bug #8531] * vm_insnhelper.c (vm_yield_with_cfunc): don't set block in the frame. * test/ruby/test_symbol.rb (TestSymbol#test_block_given_to_proc): run related tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41360 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/intern.h, proc.c (rb_method_call_with_block):ktsj2013-06-171-0/+12
| | | | | | | | | | | | | new function to invoke a Method object with a block passed as an argument. * proc.c (bmcall): use the above function to avoid a block sharing. [ruby-core:54626] [Bug #8341] * test/ruby/test_proc.rb (TestProc#test_block_persist_between_calls): run related tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * loadpath.c (RUBY_REVISION): Defined to suppress revision.hakr2013-06-171-0/+5
| | | | | | | | inclusion actually. r41352 removes the dependency. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41357 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/objspace/objspace.c: let rdoc know about objspace methods.eregon2013-06-171-0/+5
| | | | | | Specify 'objspace' should be required. See #8537. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (ObjectSpace): is a module not a class.eregon2013-06-171-0/+7
| | | | | | | * ext/objspace/objspace.c: try to include overview in rdoc, see #8537. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41354 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c: fix example of ObjectSpace.define_finalizer in overvieweregon2013-06-171-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41353 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tkutil.c: prevent temporary objects from GCnobu2013-06-171-0/+7
| | | | | | | | | * ext/tk/tkutil/tkutil.c: use rb_sprintf(), rb_id2str(), and rb_intern_str() instead of rb_intern() and RSTRING_PTR() with RB_GC_GUARD(), to prevent temporary objects from GC. [ruby-core:39000] [Bug #5199] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41351 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix a typokazu2013-06-171-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41349 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_backtrace.c: Update rdoc for Backtrace#label with @_ko1zzak2013-06-171-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * tool/ifchange (until): Fix the condition, although harmless inknu2013-06-171-0/+5
| | | | | | this case. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41346 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (gc_mark_maybe): added. check `is_pointer_to_heap()' andko12013-06-171-0/+8
| | | | | | | | | | type is not T_ZOMBE. * gc.c: use `gc_mark_maybe()'. T_ZOMBIE objects should not be pushed to the mark stack. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41345 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (bary_small_lshift): Renamed from bdigs_small_lshift.akr2013-06-161-0/+5
| | | | | | | | (bary_small_rshift): Renamed from bdigs_small_rshift. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41341 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (absint_numwords_bytes): Removed.akr2013-06-161-0/+5
| | | | | | | | (rb_absint_numwords): Don't call absint_numwords_bytes. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (BARY_ADD): New macro.akr2013-06-161-0/+9
| | | | | | | | | | | | (BARY_SUB): Ditto. (BARY_MUL): Ditto. (BARY_DIVMOD): Ditto. (BARY_ZERO_P): Ditto. (absint_numwords_generic): Use these macros. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41338 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (bary_2comp): Extracted from get2comp.akr2013-06-161-0/+17
| | | | | | | | | | | | | | | | | | | | (integer_unpack_num_bdigits): Extracted from rb_integer_unpack_internal. (bary_unpack_internal): Renamed from bary_unpack and support INTEGER_PACK_2COMP. (bary_unpack): New function to validate arguments and invoke bary_unpack_internal. (rb_integer_unpack_internal): Removed. (rb_integer_unpack): Invoke bary_unpack_internal. (rb_integer_unpack_2comp): Removed. * internal.h (rb_integer_unpack_2comp): Removed. * pack.c: Follow the above change. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41337 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * internal.h (INTEGER_PACK_2COMP): Defined.akr2013-06-161-0/+15
| | | | | | | | | | | | | | | | | | (rb_integer_pack_2comp): Removed. * bignum.c (bary_pack): Support INTEGER_PACK_2COMP. (rb_integer_pack): Invoke bary_pack directly. (rb_integer_pack_2comp): Removed. (rb_integer_pack_internal): Ditto. (absint_numwords_generic): Follow the above change. * pack.c (pack_pack): Ditto. * sprintf.c (rb_str_format): Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e