Age | Commit message (Collapse) | Author |
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50043 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50042 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* ext/io/console/console.c (console_set_winsize): use handle for
writing. GetConsoleScreenBufferInfo seems failing on a handle
for reading.
* io.c: [DOC] update the example of IO#winsize to use $stdout
instead of $stdin, which does not work on Windows. a patch by
Jan Lelis <mail AT janlelis.de> at [ruby-core:68574].
[Bug #10986]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50040 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* Makefile.in (reconfig): use selected configure script name.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50039 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* proc.c (respond_to_missing_p): check if the receiver responds to
the given method by respond_to_missing?.
* proc.c (mnew_missing): create Method object for method_missing.
[ruby-core:68564] [Bug #10985]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50038 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50037 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50036 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* test/-ext-/symbol/test_inadvertent_creation.rb (TestInadvertent):
fix failure messages.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50035 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* test/-ext-/symbol/test_inadvertent_creation.rb (test_undefined_method):
test Kernel#singleton_method too.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50034 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* gc.c (check_rvalue_consistency): obj_info() returns const char *.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50033 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50032 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* gc.c (check_rvalue_consistency): obj_info() returns const char *.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50031 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50030 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50029 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50028 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50027 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50026 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* skip on incremental marking because not sure what happen :p
* rb_gc_writebarrier_remember() is enough to mark children.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50024 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50023 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* win32/win32.c (fileattr_to_unixmode): set symlink for reparse
points.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* win32/win32.c (fileattr_to_unixmode): do not set S_IWGRP and
S_IWOTH reset in wstati64.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50021 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* Makefile.in (CONFIGURE): make configure script name selectable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* random.c (fill_random_bytes): release the handle in the static
variable, not a local variable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50019 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* common.mk (verconf.h): use BOOTSTRAPRUBY as generic_erb.rb and
the template are not dependent on built-in constants.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50018 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
rb_obj_alloc() can return old object in debug.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50017 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
(long_lived -> uncollectible).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50016 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* iseq.c (rb_iseq_clone): need WB for iseq1->klass = iseq0->klass
(done in MEMCPY).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50015 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* 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
|
|
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
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50012 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* 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
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50010 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* 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
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50007 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
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
|
|
to make clear.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50005 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50004 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* 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_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
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* 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 (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
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49989 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49988 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
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
|