aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
* * benchmark/bm_so_binary_trees.rb: disable `puts' methodko12013-06-201-0/+7
| | | | | | | | | and change iteration parameter to increase execution time. * benchmark/gc/binarytree.rb: added. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41480 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/gc/pentomino.rb: added.ko12013-06-201-0/+5
| | | | | | | | Simply load pentomino puzzle in the benchmark/ directory. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41478 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/gc/redblack.rb: import red black tree benchmark fromko12013-06-201-0/+8
| | | | | | | | | | https://github.com/jruby/rubybench/blob/master/time/bench_red_black.rb * benchmark/gc/ring.rb: add a benchmark. This benchmark create many old objects. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41475 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/gc: create a directory to store GC related benchmark.ko12013-06-201-0/+14
| | | | | | | | | | | | * benchmark/gc/gcbench.rb: moved from tool/gcbench.rb. * benchmark/gc/hash(1|2).rb: ditto. * benchmark/gc/rdoc.rb: ditto. * benchmark/gc/null.rb: added. * common.mk: fix rule. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * tool/hashbench1.rb: fix paramter too. Increase temporary objects.ko12013-06-201-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * tool/hashbench1.rb: fix parameters.ko12013-06-201-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41471 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * common.mk: remove dependency from ruby.ko12013-06-201-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41470 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* error.c: evaluate RARRAY_AREF oncenobu2013-06-201-0/+6
| | | | | | | | * error.c (rb_check_backtrace): evaluate RARRAY_AREF only once. the first argument of RB_TYPE_P is expanded twice for non-immediate types. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41469 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix typoskazu2013-06-201-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * tool/gcbench.rb: Summary in one line.ko12013-06-191-0/+6
| | | | | | | | * common.mk: separete gcbench-hash to gcbench-hash1 and gcbench-hash2. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41462 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (BIGSIZE): New macro.akr2013-06-191-0/+8
| | | | | | | | | | | (bigfixize): Use BIGSIZE. (big2ulong): Ditto. (check_shiftdown): Ditto. (rb_big_aref): Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (rb_gc_writebarrier): give up rescan A and register B directlytarui2013-06-191-0/+5
| | | | | | | if A has huge number of children. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * common.mk: add new rules `gcbench-rdoc', `gcbench-hash'.ko12013-06-191-0/+13
| | | | | | | | | | | | | * tool/gcbench.rb: separate GC bench framework and process. * tool/hashbench1.rb, tool/hashbench2.rb: add two types GC bench. hashbench1: many temporal objects (GC by newobj) hashbench2: hash size becomes bigger and bigger (GC by malloc) Two benchs are executed by `gcbench-hash' rule. * tool/rdocbench.rb: separated. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * tool/rdocbench.rb: add summary.ko12013-06-191-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (gc_profile_total_time): check objspace->profile.next_index > 0.ko12013-06-191-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (gc_prof_sweep_timer_start): fix merge miss.ko12013-06-191-0/+6
| | | | | | | | * gc.c (GC_PROFILE_MORE_DETAIL): set it 0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c: Accumulate sweep time to GC time.ko12013-06-191-0/+11
| | | | | | | | | | | | Now [GC time] is [mark time] + [sweep time] + [misc]. ([GC time] >= [mark time] + [sweep time]) * gc.c (gc_prof_sweep_slot_timer_start/stop): rename to gc_prof_sweep_timer_start/stop and locate at lazy_sweep(). * gc.c (elapsed_time_from): add a utility function. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (gc_marks): fix wrong option. FALSE means major/full GC.ko12013-06-191-0/+5
| | | | | | | | It should be TRUE (minor marking). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32.c: wait until exitnobu2013-06-191-0/+6
| | | | | | | | * win32/win32.c (waitpid): should not return 0 but wait until exit unless WNOHANG is given. waiting huge process may return while active, for some reason. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (bdigit_roomof): Use SIZEOF_BDIGITS.akr2013-06-191-0/+10
| | | | | | | | | | | | | (bigfixize): Refine an ifdef condition. (rb_absint_size): Use bdigit_roomof. (rb_absint_singlebit_p): Ditto. (rb_integer_pack): Ditto. (integer_pack_fill_dd): Use BITSPERDIG. (integer_unpack_push_bits): Use BITSPERDIG, BIGLO and BIGDN. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c: refine macrosnobu2013-06-191-0/+7
| | | | | | | | * gc.c (MARKED_IN_BITMAP, FL_TEST2): return boolean value since always used as boolean value. * gc.c (MARK_IN_BITMAP, CLEAR_IN_BITMAP): evaluate bits once. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ChangeLog: fix a typo for r41436.nagachika2013-06-191-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (RVALUE_PROMOTED): fix type.ko12013-06-191-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (garbage_collect_test): rewrite checking code.ko12013-06-191-0/+11
| | | | | | | | | | | | | | When RGENGC_CHECK_MODE >= 2, all minor marking, run normal minor marking *and* major/full marking. After that, compare the results and shows BUG if a object living with major/full marking but dead with minor marking. After detecting bugs, print references information. (RGENGC_CHECK_MODE == 2, show references to dead object) (RGENGC_CHECK_MODE == 3, show all references) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (bigfixize): Use rb_absint_size.akr2013-06-191-0/+6
| | | | | | | | | (check_shiftdown): Ditto. (big2ulong): Use bdigit_roomof. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41435 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (RVALUE_PROMOTED): check consistency between oldgen flag andko12013-06-191-0/+5
| | | | | | | | oldgen bitmap if RGENGC_CHECK_MODE > 0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (rb_gc_force_recycle): clear oldgen bitmap, too.ko12013-06-191-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (rb_uint2big): Consider environments BDIGIT is bigger thanakr2013-06-191-0/+9
| | | | | | | | | | | long. (big2ulong): Ditto. (rb_big_aref): Ditto. (rb_big_pack): Just call rb_integer_pack. (rb_big_unpack): Just call rb_integer_unpack. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (gc_stress_get): GC.stress can be Fixnum.kazu2013-06-191-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41429 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (DIGSPERLONG): Don't define if BDIGIT is bigger than long.akr2013-06-191-0/+15
| | | | | | | | | | | | | | | | | | (DIGSPERLL): Don't define if BDIGIT is bigger than LONG_LONG (rb_absint_size): Consider environments BDIGIT is bigger than long. Use BIGLO and BIGDN. (rb_absint_singlebit_p): Ditto. (rb_integer_pack): Ditto. (bigsub_int): Consider environments BDIGIT is bigger than long. Use SIZEOF_BDIGITS instead of sizeof(BDIGIT). (bigadd_int): Ditto. (bigand_int): Ditto. (bigor_int): Ditto. (bigxor_int): Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 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