ko1
cf692592dc
* test/ruby/test_gc.rb: fix condition.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47510 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-10 07:24:24 +00:00
normal
b3a4367ce4
rb_call_info_t: shrink to 96 bytes from 104 bytes on 64-bit
...
This keeps ci->flag and ci->aux.index consistent across 32-bit
and 64-bit platforms.
ci->flag: VM_CALL_* flags only use 9 bits, currently
ci->aux.index: 2 billion ivars per class should be enough for anybody
This saves around 50K allocations on "valgrind ruby -e exit" on x86-64
before:
total heap usage: 48,122 allocs, 19,253 frees, 8,099,197 bytes allocated
after:
total heap usage: 48,069 allocs, 19,214 frees, 8,047,266 bytes allocated
* vm_core.h (rb_call_info_t): ci->flag becomes 32-bit unsigned int
ci->index becomes a 32-bit signed int (from signed long).
Reorder for better packing on 64-bit, giving an 8 byte reduction
from 104 to 96 bytes for each ci.
* compile.c (new_callinfo, setup_args, iseq_compile_each,
iseq_build_from_ary_body): adjust for type changes
* vm_insnhelper.c (vm_getivar): ditto
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47509 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-10 06:32:44 +00:00
normal
ea4c97904e
compile: translate iseq in-place
...
running "ruby -rpp -e 'pp GC.stat'", a reduction in
malloc usage is shown:
before:
:malloc_increase=>118784,
:oldmalloc_increase=>1178736,
after:
:malloc_increase=>99832,
:oldmalloc_increase=>1031976,
For "ruby -e exit", valgrind reports over 300K reduction in
overall allocations (and unnecessary memory copies).
before:
total heap usage: 49,622 allocs, 20,492 frees, 8,697,493 bytes allocated
after:
total heap usage: 48,935 allocs, 19,805 frees, 8,373,773 bytes allocated
(numbers from x86-64)
v2 changes based on ko1 recommendations [ruby-core:64883]:
- squashed in-place direct thread translation to avoid alloc+copy
- renamed rb_iseq_untranslate_threaded_code to rb_iseq_original_iseq,
cache new iseq->iseq_original field.
* compile.c (rb_iseq_translate_threaded_code): modify in-place w/o copy
(rb_vm_addr2insn): new function for debug
(rb_iseq_original_iseq): ditto
(iseq_set_sequence): assign iseq_encoded directly
[Feature #10185 ]
* vm_core (rb_iseq_t): move original ->iseq to bottom
* iseq.c (iseq_free, iseq_free): adjust for new layout
(rb_iseq_disasm): use original iseq for dump
(iseq_data_to_ary): ditto
(rb_iseq_line_trace_each): ditto
(rb_iseq_build_for_ruby2cext): use iseq_encoded directly
* vm_dump.c (rb_vmdebug_debug_print_pre): use original iseq
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47508 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-10 06:14:07 +00:00
svn
fd31eb3f5c
* remove trailing spaces.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47507 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-10 06:01:50 +00:00
normal
6c396e94f9
time.c: DATA_PTR is never NULL
...
* time.c (time_mark): remove NULL check
(time_memsize): ditto
(time_free): remove, use RUBY_TYPED_DEFAULT_FREE instead
[Feature #10219 ]
Tiny improvement on my old Phenom II X4 945 system:
$ ruby --disable=gems -e '6000000.times { Time.now }'
before: 2.51user 0.00system 0:02.51elapsed 100%CPU
after: 2.45user 0.00system 0:02.45elapsed 100%CPU
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47506 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-10 06:01:36 +00:00
usa
e564a82a93
* common.mk (encs enc trans libencs libenc libtrans): force to run
...
enk.mk because common.mk does not know the dependency, but enk.mk
knows. [ruby-dev:48530] [Bug #10220 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47505 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-10 05:16:21 +00:00
ko1
c1b05c53b7
* gc.c (gc_stat): update rdoc.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47496 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-10 02:59:46 +00:00
ko1
52c41f1e8f
* gc.c (gc_stat_internal): rename:
...
* malloc_increase -> malloc_increase_bytes
* malloc_limit -> malloc_increase_bytes_limit
* oldmalloc_increase -> oldmalloc_increase_bytes
* oldmalloc_limit -> oldmalloc_increase_bytes_limit
ref: [Feature #9924 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47495 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-10 02:53:11 +00:00
ko1
ed729d3986
* gc.c (gc_stat_internal): rename heap_used' to heap_allocated_pages'.
...
ref: [Feature #9924 ]
* test/ruby/test_gc.rb: add constraints test for gc stat information.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-10 02:47:05 +00:00
ko1
6b398398b9
* gc.c (gc_stat_internal): rename:
...
* remembered_shady_object -> remembered_wb_unprotected_objects
* remembered_shady_object_limit -> remembered_wb_unprotected_objects_limit
* old_object -> old_objects
* old_object_limit -> old_objects_limit
ref: [Feature #9924 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47491 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-10 02:35:17 +00:00
ko1
2d581d6c2a
* gc.c (gc_stat_internal): support:
...
* total_allocated_pages
* total_freed_pages
ref: [Feature #9924 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-10 02:13:41 +00:00
ko1
83f02b98b1
* test/ruby/test_gc.rb: catch up last fix.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47489 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-10 01:48:23 +00:00
ko1
6c6254274f
* gc.c (objspace_total_slot): rename objspace_available_slots.
...
* gc.c (objspace_live_slot, objspace_free_slot): rename
..._slot() to ..._slots().
* gc.c (objspace_free_slot): should subtract heap_pages_final_slots.
* gc.c (gc_stat_internal):
* add `heap_available_slots' field
* rename heap_live_slot to heap_live_slots
* rename heap_free_slot to heap_free_slots
ref: [Feature #9924 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47488 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-10 01:42:09 +00:00
ko1
6b4a7aa2a6
* gc.c: refactoring for RGENGC_PROFILE > 0.
...
* rename rb_objspace_t::profile::..._count
to rb_objspace_t::profile::total_..._count
* rename promote_infant_types to promote_types
* gc.c (gc_remember_unprotected): count remembered shady objects here.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47487 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 22:32:09 +00:00
svn
1bb7043115
* 2014-09-10
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47484 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 18:23:18 +00:00
nagachika
9aacc92bc9
* gc.c (init_mark_stack): MEMZERO() receive type as 2nd argument instead
...
of size.
Coverity Scan found this bug.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 18:23:11 +00:00
kazu
5623c00f4b
s/stressfull/stressful/g
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47479 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 13:09:14 +00:00
suke
9d0a6f3db7
* ext/win32ole/sample/excel2.rb: remove some commented-out code.
...
rotate graph more slowly to see graph clearly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47478 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 13:01:21 +00:00
kazu
36dc2e4bcf
fix a typo [ci skip]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 12:52:17 +00:00
kazu
eebdf04c3b
fix typos [ci skip]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 12:50:18 +00:00
nobu
fa326bf312
GC.stat key name
...
* test/-ext-/tracepoint/test_tracepoint.rb: follow the change of
key name of GC.stat.
* test/ruby/test_hash.rb (TestHash#test_AREF_fstring_key): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47475 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 11:22:23 +00:00
ko1
9b6bc26f87
* gc.c: rename rb_objspace_t::marked_objects to marked_slots.
...
* gc.c (gc_marks_start): should be clear first.
* gc.c (gc_marks_start): remembered shady objects are also marked.
* gc.c (gc_stat_internal): add heap_marked_slots.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47474 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 10:55:18 +00:00
ko1
97fef1cdfb
* gc.c: rename
...
* total_allocated_object_num -> total_allocated_objects
* total_allocated_object_num_at_gc_start -> total_allocated_objects_at_gc_start
* total_freed_object_num -> total_freed_objects
* gc.c (gc_stat_internal):
* rename total_allocated_object -> total_allocated_objects
* rename total_freed_object -> total_freed_objects
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 10:01:18 +00:00
ko1
727497607c
* gc.c (gc_stat_internal): fix symbol names
...
* heap_final_slot -> heap_final_slots
* heap_swept_slot -> heap_swept_slots
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 09:53:47 +00:00
ko1
8ee9071cbe
* gc.c (rb_objspace_t::heap_pages): rename field names:
...
* used -> allocated_pages
* increment -> allocatable_pages
* length -> sorted_length
And remove unused `limt' field.
* gc.c: rename macros:
* heap_pages_used -> heap_allocated_pages
* heap_pages_length -> heap_pages_sorted_length
* heap_pages_increment -> heap_allocatable_pages
* gc.c (gc_stat_internal): fix symbol names
ref: [Feature #9924 ]
https://docs.google.com/spreadsheets/d/11Ua4uBr6o0k-nORrZLEIIUkHJ9JRzRR0NyZfrhEEnc8/edit?usp=sharing
Yellow color fields in this table are changed.
* test/ruby/test_gc.rb: catch up this change.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47471 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 09:33:52 +00:00
nobu
eb7a7801bf
gc.c: fix typos
...
* gc.c (gc_stat_transition): fix typos.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47470 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 06:39:08 +00:00
ko1
886e27995b
* gc.c: continue layout changing.
...
newobj_of() also touch:
(4) increment total_allocated_object_num
(5) check hook_events
And gather fields related to marking phase.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47469 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 06:00:57 +00:00
ko1
15e4903cba
* gc.c: fix layout of rb_objsapce_t to improve cache locality.
...
newobj_of() accesses:
(1) rb_objspace_t::flags
(2) rb_objspace_t::eden_heap::freelist
(3) and rb_objspace_t::eden_heap::free_pages if freelist is NULL.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 05:24:42 +00:00
ko1
3238a4a729
* gc.c: move rb_objspace_t: 🎏 :gc_stressfull after during_gc
...
to make accesssing both parameters easy.
* gc.c (heap_get_freeobj): add LIKELY() hint.
* gc.c (heap_get_freeobj_from_next_freepage): ditto.
* gc.c (newobj_of): check both parameters at once for exceptional
case.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47467 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 05:12:15 +00:00
ko1
ddac04d2c2
* gc.c: add rb_objspace_t: 🎏 :gc_stressfull and
...
ruby_gc_stressfull macro.
Rename objspace->gc_stress to objspace->gc_stress_mode.
If objspace->gc_stress_mode is true (!nil and !false) then
ruby_gc_stressfull becomes TRUE.
ruby_gc_stressfull will speedup newobj_of() slightly.
* gc.c: initialize ruby_gc_stress(full|_mode) by gc_params.gc_stress
even if ENABLE_VM_OBJSPACE is false.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 04:56:55 +00:00
ko1
0c391a55d3
* gc.c: remvoe ruby_disable_gc_stress and add ruby_disable_gc
...
to speed-up newobj_of().
* gc.c (ready_to_gc): check ruby_disable_gc.
* signal.c: use ruby_disable_gc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 04:12:14 +00:00
ko1
335ca560de
* gc.c: rename gc_stat entries and check stat transition.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47464 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 03:13:25 +00:00
ko1
71990d0ed1
* gc.c (gc_sweep_rest): remove wrong modification of during_gc flag.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 03:07:46 +00:00
nobu
ce71cfaa42
* gc.c (rb_objspace_t::profile): reduce padding.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47462 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 02:59:08 +00:00
ko1
c5e13c3270
* gc.c: pack boolean values into rb_objspace_t::flags with bit fields
...
to improve cache locality.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 02:45:21 +00:00
ko1
dba3498944
* test/ruby/test_object.rb: extend timeout.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 02:14:01 +00:00
nobu
f32e38a951
fake.rb.in: use absolute path
...
* template/fake.rb.in (top_srcdir): use absolute path to resolve
symbolic links in srcdir.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 00:31:21 +00:00
nobu
097c3e9cbb
mkmf.rb: -I flags to $INCFLAGS
...
* lib/mkmf.rb (MakeMakefile#pkg_config): separate -I flags to
$INCFLAGS, which is used by CPP.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 00:27:34 +00:00
nobu
5be82d1487
mkmf.rb: --cflags to $CXXFLAGS
...
* lib/mkmf.rb (MakeMakefile#pkg_config): append --cflags to also
$CXXFLAGS, as they are often used by C++ compiler.
[ruby-core:54532] [Bug #8315 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-09 00:02:08 +00:00
normal
49db57f707
compile.c: remove needless SYM2ID <-> ID2SYM conversions
...
Needless conversions made the code harder to follow.
[misc #10207 ]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-08 22:08:59 +00:00
normal
ec177aa590
symbol.c (rb_intern_cstr_without_pindown): check dsymbol on return
...
This is not a complete fix for bug 10206, but seems to reduce
that crash and also looks correct.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-08 20:51:57 +00:00
svn
f7085f6b9e
* 2014-09-09
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-08 19:38:34 +00:00
normal
27f9e70795
vm_core.h (rb_env_t): use flexible array
...
* vm_core.h (rb_env_t): use flexible array
This reduces allocations and speeds up the lambda calculus
fizzbuzz (bm_app_lc_fizzbuzz.rb) benchmark [ruby-core:64858]
* proc.c (get_local_variable_ptr): deconst to adjust for flex array
* vm.c (env_mark, env_free, env_memsize): remove check for env->env
* vm.c (env_alloc): single allocation for flex array
* vm.c (vm_make_env_each): adjust env_alloc call
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-08 19:38:22 +00:00
nobu
66d09c6d12
test_time_tz.rb: have_tz_offset?
...
* test/ruby/test_time_tz.rb (TestTimeTZ::Util#have_tz_offset?): append
?-suffix as a predicate method.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-08 08:10:37 +00:00
nobu
7a666d95f7
test_time_tz.rb: right timezone
...
* test/ruby/test_time_tz.rb (has_right_tz): check if right
timezones are installed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-08 08:03:21 +00:00
ko1
2a0cca3c89
* benchmark/bm_app_lc_fizzbuzz.rb: should skip output on benchmark.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47450 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-08 07:08:56 +00:00
ko1
f5ac3ea6e7
* benchmark/bm_app_lc_fizzbuzz.rb: `answer.to_a' does not return
...
a string, but an array.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47449 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-08 07:08:00 +00:00
svn
8d498680b7
* properties.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-08 04:23:01 +00:00
ko1
628dac10d3
* benchmark/bm_app_lc_fizzbuzz.rb: added.
...
This program is described closely in "Understanding Computation"
chapter 6 by Tom Stuart. <http://computationbook.com/ >
Japanese translation will be published soon.
<http://www.oreilly.co.jp/books/9784873116976/ >
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-08 04:22:58 +00:00
svn
c6da45b74c
* remove trailing spaces.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-08 04:11:16 +00:00