aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* * internal.h (IMEMO_DEBUG): added.ko12015-03-183-5/+52
| | | | | | | | | | * internal.h: remove unused FL_IMEMO_MARK_V[0-3]. * gc.c (rb_imemo_new_debug): added. * gc.c (obj_info): show imemo type name. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (RGENGC_OLD_NEWOBJ_CHECK): add check mechanism.ko12015-03-182-0/+43
| | | | | | | | | | | If RGENGC_OLD_NEWOBJ_CHECK > 0, then create old objects (not new objects) periodically. Create one old objects per RGENGC_OLD_NEWOBJ_CHECK objects are created. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * enum.c (enum_sort_by): add WBs.ko12015-03-182-4/+8
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50012 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (check_rvalue_consistency): refactoring.ko12015-03-182-15/+50
| | | | | | | | | | | | | | | * not inline on RGENGC_CHECK_MODE > 0. * check SPECIAL_CONST_P(obj) first. * add a check that remembered_bit is only TRUE when old (age == 3). * gc.c (RVALUE_DEMOTE): should clear RVALUE_REMEMBERED bit. remembered_bit should be TRUE only for old (age == 3) objects. Actually there are no effect because demoted objects will be uncollectible WB unprotected objects (marked at the begginig of every minor GC). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50011 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2015-03-19svn2015-03-181-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50010 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c: rename terminologies.ko12015-03-182-56/+76
| | | | | | | | | | | | | | | | | * long_lived -> uncollectible: because this bitmap does not mean "long lived objects in past", but means "prohibit collection thse objects until next major GC". Uncollectible objects consist of two types objects, one is old objects (WB protected objects which age == 3) and another is uncollectible WB unprotected objects which are referred from old objects * remembered_wb_unprotected_objects -> uncollectible_wb_unprotected_objects: because uncollectible objects does not mean remembered objects. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50009 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix typos [ci skip]kazu2015-03-181-3/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * remove trailing spaces.svn2015-03-181-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50007 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (gc_writebarrier_generational): add an alternative writeko12015-03-182-3/+41
| | | | | | | | | | | | | | | | | | | | barrier (WB) implementation. When finding reference from [Old obj] to [New obj] by WB, current implementation marks [Old obj] as remembered old objects and marks chilldren of [Old obj] at the beggining of marking. Added (but disabled) code changes current behaviour. This fix promote [New obj] to old and marks as a remembered old object. We can assume "new objects referred from old objects are maybe long-lived old objects". Disadvantage of added algorithm is we may promote unwilling short-lived objects. For example, consider many new objects push and pop to an old stack object. All of new objects (short-lived objects) promote to old objects unexpectedly. To compare these behaviour, I add this new code (but disabled it). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50006 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (RVALUE_PROMOTE_RAW): rename to RVALUE_OLD_LONG_LIVED_SET()ko12015-03-182-3/+8
| | | | | | | | to make clear. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50005 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (check_rvalue_consistency): do not need to check is_sweeping().ko12015-03-182-1/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50004 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gmake.mk: showflagsnobu2015-03-181-1/+3
| | | | | | * defs/gmake.mk (showflags): more targets to show flags. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_vm1_gc_wb_ary.rb: run GC to finish "marking" phase.ko12015-03-185-3/+22
| | | | | | | | | | | * benchmark/bm_vm1_gc_wb_obj.rb: ditto. * benchmark/bm_vm1_gc_wb_ary_promoted.rb: add parameter full_mark: false to invoke only minor GC. * benchmark/bm_vm1_gc_wb_obj_promoted.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c: add a comment about RSTRING_FSTR.ko12015-03-182-0/+5
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * remove trailing spaces.svn2015-03-181-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* hash.c: same hash values with Float#hashnobu2015-03-185-3/+25
| | | | | | | | * hash.c (rb_any_hash): use same hash values with Float#hash so that -0.0 and +0.0 will be identical. [ruby-core:68541] [Bug #10979] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49999 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c: introduce STR_FAKESTR to show string is FAKESTR or not.ko12015-03-172-3/+25
| | | | | | | | | * string.c (STR_SET_SHARED): ignore FAKESTR because only Ruby objects can use write barrier. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix a typo [ci skip]kazu2015-03-171-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2015-03-18svn2015-03-171-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49989 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ChangeLog: fix a typo at r49987.nagachika2015-03-171-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49988 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/ruby.h: use rb_gc_writebrrier() simply.ko12015-03-173-48/+73
| | | | | | | | | | | | | | | | | | | | | | For incremental GC, we need to get a pointer to the objspace. We can share this pointer for the following WB process. And considering icache hit ratio, prcess in the GC. * gc.c (rb_gc_writebarrier): added. * gc.c (gc_writebarrier_generational, gc_writebarrier_incremental): make them NOINLINE because inlining them into rb_gc_writebarrier() makes a prologue code of rb_gc_writebarrier() longer (storing callee save registers). This patch improve the performance of WB on micro-benchmarks. name ruby 2.1 trunk modified vm1_gc_wb_ary* 0.511 0.632 0.532 vm1_gc_wb_ary_promoted* 0.578 0.701 0.674 vm1_gc_wb_obj* 0.419 0.575 0.492 vm1_gc_wb_obj_promoted* 0.537 0.664 0.618 (sec) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * properties.svn2015-03-170-0/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * benchmark/bm_vm1_gc_wb_ary(_promoted).rb: separate fastpath andko12015-03-175-8/+53
| | | | | | | | | | | | | | | | | slowpath for WB. Before this change bm_vm1_gc_wb_ary.rb tried to check the performance for WB slowpath (making a reference from oldobj to newobj). However, from Ruby 2.2, 3 GCs are needed to promote new objects because only 3 age objects are promted objects. To compare fastpath and slowpath, introduce new "promoted" version benchmark. bm_vm1_gc_wb_ary.rb is for fastpath and bm_vm1_gc_wb_ary_promoted.rb is for slowpath. * benchmark/bm_vm1_gc_wb_obj(_promtoed).rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2015-03-17svn2015-03-171-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* dir.c: fix DT_UNKNOWN recursionnobu2015-03-172-26/+45
| | | | | | | | | * dir.c (glob_helper): distinguish not-yet-stated and DT_UNKNOWN by readdir, and traverse recursively for the former. Linux readdir returns DT_UNKNOWN on some filesystems, e.g., smbfs, iso9660. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* dir.c: DT_UNKNOWNnobu2015-03-161-1/+3
| | | | | | * dir.c (glob_helper): deal with DT_UNKNOWN. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * properties.svn2015-03-160-0/+0
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/webrick/server.rb: Fix regression bug in WEBrick'shsbt2015-03-163-1/+80
| | | | | | | | :DoNotReverseLookup config option implementation. [fix GH-731] Patch by @vais * test/webrick/test_do_not_reverse_lookup.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * math.c (math_log1, math_log2, math_log10): refactoringgogotanaka2015-03-162-23/+21
| | | | | | and tests for this. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby.h: suppress false warningsnobu2015-03-162-2/+2
| | | | | | | | * include/ruby/ruby.h (rb_data_object_alloc_warning): enable only if __builtin_choose_expr works with __builtin_constant_p so that warnings will be suppressed if klass is 0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby.h: suppress false warningsnobu2015-03-161-0/+2
| | | | | | | | * include/ruby/ruby.h (rb_data_object_alloc_warning): enable only if __builtin_choose_expr works with __builtin_constant_p so that warnings will be suppressed if klass is 0. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_lambda.rb: Fix typo yeild -> yieldgogotanaka2015-03-151-1/+1
| | | | | | [fix GH-851][ci skip] Patch by @hanachin git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2015-03-16svn2015-03-151-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49975 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_proc.rb: Fix typo signle -> singlegogotanaka2015-03-151-1/+1
| | | | | | [fix GH-852][ci skip] Patch by @hanachin git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * math.c (math_cbrt): [DOC] Fix domain and codomain.gogotanaka2015-03-151-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* math.c: more robustnobu2015-03-141-3/+2
| | | | | | * math.c (math_gamma): make more robust against addition/removal. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49972 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2015-03-15svn2015-03-141-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * math.c (math_gamma): rename NGAMMA_TABLE to NFACT_TABLE.gogotanaka2015-03-141-3/+3
| | | | | | specify the size of the fact_table. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * math.c (math_gamma): explicit cast to double.gogotanaka2015-03-141-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * math.c (math_gamma): optimization for passed small integer.gogotanaka2015-03-143-7/+12
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * enum.c: [DOC] Fixes Enumerable#member? documentationgogotanaka2015-03-142-0/+7
| | | | | | [fix GH-756][ci skip] Patch by @shamanime git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* dir.h: direct::d_typenobu2015-03-144-6/+25
| | | | | | | | | | * dir.c (glob_helper): use d_type to reduce lstat system calls. * win32/dir.h (struct direct): add d_type instead of d_isdir and d_isrep. SYMLINKD is unreliable, since the target can be replaced after a link was created. * win32/win32.c (readdir_internal): set d_type. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2015-03-14svn2015-03-131-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49965 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: empty parennobu2015-03-133-2/+13
| | | | | | | * parse.y (primary): empty parentheses at cmdarg can be null. [ruby-core:68477] [Bug #10957] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gmake.mk: fix typonobu2015-03-131-1/+1
| | | | | | * defs/gmake.mk: fix typo, remove an extra comma. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* stringio.c: don't raise after closenobu2015-03-133-6/+11
| | | | | | | * ext/stringio/stringio.c (strio_close): don't raise on dobule close for consistent to IO#close. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io.c: don't raise after closenobu2015-03-133-8/+22
| | | | | | | * io.c (rb_io_close_read, rb_io_close_write): don't raise after close same as IO#close. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49961 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io.c: rb_io_get_fptrnobu2015-03-131-9/+13
| | | | | | * io.c (rb_io_get_fptr): return non-null fptr. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_objspace.rb: better assertionsnobu2015-03-131-6/+6
| | | | | | | * test/objspace/test_objspace.rb: use assertions for better failure messages. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/readline/test_readline.rb: Restore environment variables:akr2015-03-132-0/+8
| | | | | | | COLUMNS LINES git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e