8bccb5f2662f8bce023714a68786f401046557bc
|
2008-07-02 |
*gc.c (gc_lazy_sweep) : use lazy sweep algorithm for response performance gain. (garbage_collect_force) : mark and lazysweep invoke, after erasing all mark. (GC_NOT_LAZY_SWEEP) : not lazy sweep flag. for debug. |
9f2208b40cc1b1d901399f6a3df8ca43c57d34a3
|
2008-07-02 |
write changelog |
5c72ffe769b5552d7abb5fe050aba555b37c7278
|
2008-07-02 |
format changelog. |
5b72919469f87d74e4f5f833b8c78e385372cb5c
|
2008-07-04 |
|
52f780c07f6499bc04961fe7bada72a1d08ea49d
|
2008-07-05 |
|
130e72025328746295d2efe45a6856f8d9ff154b
|
2008-08-11 |
|
fccc094568069e040e08ab6c8a87dbbb7712eb31
|
2008-08-12 |
|
5b3278b74a1a7edb0885b0ccbfe86ab8f3a53813
|
2008-08-12 |
|
c56ef25cf9b6d923f2af45e536c121388c3aab75
|
2008-09-04 |
* gc.c (gc_profile_record_get): to static function. (gc_profile_result): ditto. (gc_profile_report): ditto. |
ee1e8e1a9ba9e2232d6df7ae115b09d6dbd5ac0c
|
2008-10-25 |
* gc.c (gc_profile_result): bug fix. The millisecond is 1/1000. |
5cb55eca6fac360c94fd5fa54566609dfc3db45c
|
2009-03-23 |
* gc.c (init_heap): set default to heap slots length if HEAP_OBJ_LIMIT is larger than HEAP_MIN_SLOTS. [Bug #1310] (set_heaps_increment): increment next_heaps_length if next_heaps_length and heaps_used are same. |
57b83a5191be20c49d5d4cff77582170a507cf88
|
2009-05-13 |
* gc.c: add longlife garbage collection. [ruby-dev:38423] (NORMAL_HEAPS_USED): new macro. (LONGLIFE_ALLOCATE_HEAPS_MIN): ditto. (add_longlife_heaps_slot): new function. (rb_newobj_from_longlife_heap): ditto. (rb_newobj_longlife): ditto. (rb_node_newnode_longlife): ditto. (rb_gc_write_barrier): ditto. (remembered_set_recycle): ditto. (rb_gc_mark_remembered_set): ditto. (clear_mark_longlife_heaps): ditto. (gc_sweep_for_longlife): ditto. (assign_heap_slot): new argumnent to longlife heaps slot. (add_freelist): ditto. (gc_sweep): avoid lonlife heap slot. set longlife_collection flag at add heap. (rb_gc_force_recycle): avoid mark object and remembered_set object. (garbage_collect): add longlife collection. (rb_gc_start): invoke longlife collection. (gc_profile_record_get): for longlife collction profile. (gc_profile_result): ditto. |
832d5a832961b8cd6b58ec91079fa24af099f458
|
2009-05-16 |
* iseq.c (rb_iseq_clone): use longlife object and insert write barrier. |
de5f15bbe4bf2c8038f265df061233f3aa709477
|
2009-08-10 |
* gc.c: reject unused longlife gc. |
51b7ec84a2d183bf726d200f1111753ddc9c9dc3
|
2009-08-10 |
* ChangeLog: sign why. |
915fe3d78465182f8bd9e3b16644d90f30e95e7b
|
2009-08-11 |
* ChangeLog: fixed typo. |
ca64478089a6c43f56eef1d11a0ed8ac2d402f73
|
2010-05-28 |
* gc.c : use simple lazy sweep algorithm for response performance gain. See [ruby-dev:41067]. |
a8cd15c96c02827f593d9a63fae66c2cdac5bdb6
|
2010-05-30 |
* gc.c (gc_mark_all_clear): don't call obj_free() in gc_mark_all_clear(), because obj_free() may make T_ZOMBIE objects. |
28754d0aa9a61d401fad2791deda139338ba2df0
|
2010-06-06 |
* gc.c: set_heaps_increment is not called before gc_makrs of lazy sweeping because live_num not contain finalize objects. So call set_heaps_increment after lazy sweeping if free_num are not enough. And move free_min to struct rb_objspace for above. [ruby-dev:41499] |
12b76ec890836ee650b7985851116594d6469309
|
2010-06-29 |
* gc.c (unlink_heap_slot, slot_sweep): unlink heaps_slot of heaps_slot linked list if heaps_slot is empty at slot_sweep. fixed [ruby-dev:41543], [ruby-core:24894]. |
81cc3b26550324e94cc50d24d113174cd4339062
|
2010-07-20 |
* gc.c: don't call after_gc_sweep() after when garbage_collect() was called, because rb_sweep_method_entry() free live unlinked method entries. [ruby-core:31169] |
e5731864074cc642c2b4e77d74334ca2b72302d8
|
2010-08-14 |
* test/objspace/test_objspace.rb: added test for objspace. |
a5207399bd3c32965c06cb27ae78537ffbf8da82
|
2010-08-16 |
* gc.c (gc_profile_result): use size_t. based on patches from Tomoaki NISHIYAMA <tomoakin@kenroku.kanazawa-u.ac.jp> at [ruby-dev:42042]. |
66c25e4ca14fda15c4a0d5cd619e573060ebd756
|
2010-08-16 |
* gc.c (gc_profile_result): Index begins with 1. |
a29dc5676415163b0e2416a07de4a9d8055a4670
|
2010-10-21 |
* gc.c (rb_objspace_each_objects): don't lazy sweep in rb_objspace_each_objects. [Bug #3940] [ruby-dev:42369] |
11c43f7ae9b9264171c9e5394772f155aa18afa4
|
2011-06-11 |
* gc.c: expand heap if initial_heap_min_slots is bigger than HEAP_MIN_SLOTS. |
8c79b8b6b86f9c5a9dff46c0e6c99cf935b7f399
|
2011-06-14 |
* gc.c: use size_t. |
b6135f1cd7eede03d43d8fe21c1923c68fd8749e
|
2011-06-14 |
* gc.c (rb_gc_set_params): call initial_expand_heap if initial_heap_min_slots is set. |
17bb77fd776ab39b7fb6b90c45feb6a7899a62ef
|
2011-07-07 |
* gc.c: change water_mark value value that may call gc_mark(lev <= GC_LEVEL_MAX) in gc_mark(). In ruby_stack_check(), water_mark is a value that may call some C function. Fixes Bug #3781 |
c3e05262697f64218259b63acfd6933958c62eae
|
2011-07-08 |
* configure.in: can't subtract void *. |
e26cead1e99e10ab3e672e0894ebdc8c277c833c
|
2011-08-09 |
* gc.c (gc_lazy_sweep): if sweep target slots are not found, we try heap_increment() because it might be able to expand the heap. [Bug #5127] [ruby-dev:44285] |
599071b700aa7176a2bb762c2d9781d02013f27c
|
2011-09-08 |
* gc.c (Init_GC): defined GC::Profiler.raw_data. based on the patch by Eric Hodel. [ruby-core:37857] [Bug #4991] |
50675fdba1125a841ed494cb98737c97bd748900
|
2012-01-07 |
* gc.c: use Bitmap Marking algorithm to avoid copy-on-write of memory pages. See [ruby-dev:45085] [Feature #5839] [ruby-core:41916]. |
94fd32b80a585750427836a1e22d05c0ee3d09ad
|
2012-01-08 |
* gc.c (slot_sweep): add a assertion instead of a debug print. |
cd73f29465310e55f36e001a7964f4be3d2a833a
|
2012-01-08 |
* gc.c (aligned_free): support MinGW. Patch by Hiroshi Shirosaki. |
5393622dad7f5204333b8aa6a39263a961bdc77a
|
2012-01-08 |
* gc.c : consider header bytes which are used by malloc. |
2cf2416ea09ca63efb8469650809bd5fd1707460
|
2012-01-09 |
* gc.c: free_slots is changed Singly linked list. clear free_slots before sweep. |
b78bddee35fa426bf9286bcb3af4170282369a91
|
2012-01-09 |
* gc.c : don't embed struct heaps_slot to a heap block because it can causes copy-on-write of memory page on heap block when its free_next is rewirted. |
a42cc41ba1abacd37e1922965fae641e537a6b5f
|
2012-01-31 |
* configure.in (HEAP_ALIGN_LOG): HEAP_ALIGN_LOG should be page size in OpenBSD. [ruby-core:42158][Bug #5901] |
261400e7a9b4e8774a058e9a6f53fc885329c5f8
|
2012-02-13 |
* gc.c (HEAP_OBJ_LIMIT, HEAP_BITMAP_LIMIT): HEAP_OBJ_LIMIT used `sizeof(struct heaps_slot)` while heap is currently allocated with `struct heaps_header`. HEAP_BITMAP_LIMIT were calculated from `HEAP_OBJ_LIMIT/sizeof(uintptr_t)` - one Byte for each object, not one Bit. [Bug #6006] patched by Sokolov Yura. https://github.com/ruby/ruby/pull/92 |
64e7aedceef872e8f942cb8eb672d0bc32c13984
|
2012-02-14 |
* gc.c (assign_heap_slot): SEGV happens cause on 64-bit platform sometime there should be `objs-=2` instead of `objs--`. patched by Sokolov Yura. https://github.com/ruby/ruby/pull/92 |
c104867ebc1471854d5506b5a2be3dd0992f587f
|
2012-02-14 |
added bug ref |
0da31416f1b0d3b24e09fb19a6576bb3254c7e91
|
2012-02-14 |
* gc.c (CEILDIV): rename to a appropriate name. |
8b4b4032f711766c3863c40fff33acde9a5bc331
|
2012-02-15 |
* gc.c (HEAP_BITMAP_LIMIT): HEAP_BITMAP_LIMIT is computed on the basis of HEAP_SIZE because it must covers a whole heap block. [ruby-trunk - Bug #6006] |
55e6e9e3848433ccb095b352545bb97b0fb21603
|
2012-02-19 |
* gc.c (gc_clear_mark_on_sweep_slots): uses slot_sweep() for unsweeped slots, because some dead objects might be marked in next the mark phase by false pointers. [ruby-core:42672] |
f0e9fa3cb12a9f9a14b5b77d872bce8cc027b829
|
2012-02-19 |
* gc.c (gc_clear_mark_on_sweep_slots): remove a unused variable. |
87a15a6981b8c44c15667f01914e64add1348a6d
|
2012-02-19 |
revert r34691 and r34689 |
0d44bf83dac7d4abd939273aeccd9182a2b353b8
|
2012-02-21 |
* gc.c : remove gc_clear_mark_on_sweep_slots() and use rest_sweep() instead of it, because some dead objects might be marked in next the mark phase by false pointers. [ruby-core:42672] |
c98fd7da8a7b9a1e388daf4a68e41a1d8d3d64d2
|
2012-02-21 |
revert a file which is committed wrong. |
e2f4f34467f90bc9bc30891c9cdb4aa82fa0e37c
|
2012-05-28 |
* gc.c (obj_free): doesn't free a method table if it doesn't exits. [ruby-dev:44436] * test/ruby/test_gc.rb (class TestGc): added the test case for this issue. |
3fcf82e27815db04da819a67bd112513f057a8b2
|
2012-05-28 |
* ChangeLog: fix a typo. |
631b6d5aaddf5eca047462113dafe1c8e3a78b14
|
2012-07-28 |
* gc.c: remove unused initialization. |
b79bf14ff26e11765c1605c7da9a3e72902c92d8
|
2012-08-02 |
* gc.c: return true or false. Patch by Dirkjan Bussink. [Bug #6821] |
d7a33316825d3393f1f7e50ab76926b6891b5a89
|
2012-08-04 |
* gc.c (gc_mark_children): use gc_mark_ptr instead of marking a object directly. |
de0c788bb4d337d3bc2bb3f6fcac4b26cdccb8b8
|
2012-08-04 |
* gc.c: use inline functions instead of macros, and close up related codes for the profiler. |
dd124a0f841f2e25daa4f4e3c9854618176a7743
|
2012-08-05 |
* gc.c: just move functions and so on. I don't touch any internal implementation. |
8f1c81c610eb11b74f52fa1ae0a6b704ebced43e
|
2012-08-05 |
* gc.c : if ENABLE_VM_OBJSPACE is 1, rest_sweep is not defined. remove unused declarations. |
cf4aa712e4124862bf453f1ffc1e8ae432efb1f9
|
2012-08-05 |
add references |
8d53a08ed81ae1dbaabef79fcf0b0e759de2e82f
|
2012-10-03 |
* gc.c: Use the non-recursive marking instead of recursion. The recursion marking of CRuby needs checking stack overflow and the fail-safe system, but these systems not good at partial points, for example, marking deep tree structures. [ruby-dev:46184] [Feature #7095] |
2f9f17ac98597d54aa241a6ccea5b458c2759d7a
|
2012-10-04 |
* gc.c (rb_objspace_call_finalizer): call gc_mark_stacked_objects at suitable point. |
ec62e301965c12a5e1e0f931a8b0152d374a1912
|
2012-10-04 |
* gc.c (init_heap): call init_mark_stack before to allocate altstack. This change avoid the stack overflow at the signal handler on 32bit, but I don't understand reason... [Feature #7095] |
271f069c7f07391fe9626ca01f4d4a8076fb6c04
|
2012-10-05 |
* gc.c (chain_finalized_object): remove to check a mark flag and marking since all objects are certainly unmarked with rest_sweep. |
c38ee00226517bae961fe19cc5ad4f11b91c69fc
|
2012-10-05 |
ChangeLog: fix a miss |
4c0f022f45a9221c2f97b2d21a9eb476f40b1d93
|
2012-10-05 |
revert r37091 |
3376ea81f95fb295bc4172a3bafb50481a166263
|
2012-10-05 |
fix comments |
c3a46d6acab5ab063cc6b5808c2b344f110bef12
|
2012-10-20 |
* include/ruby/ruby.h: add C APIs. VALUE rb_newobj_of(VALUE klass, VALUE flags) #define NEWOBJ_OF(obj,type,klass,flags) These allow to change a allocation strategy depending on klass or flags. |
f0a435c18725318eae1bfb3dfd15c457f511d814
|
2012-10-24 |
* gc.c (free_object_aquire): rename to match the behavior of this function. |
bda726223f88b12e31634daecbe75cecb1885640
|
2012-10-24 |
fix the function name which is not grammatically correct. |
a4ba41a29d9d0281f7e62ef94ffbd778a34c91db
|
2012-10-24 |
rename it to a more fitting name |
9fd08911c0ab12591735c133769ef1828e5bd9c0
|
2012-10-31 |
* gc.c (gc_prof_mark_timer_stop): count is not initialized. |
25a973e84b1e9879977010b3825b59faa740ff0d
|
2012-10-31 |
* gc.c (gc_profile_record): don't define unused variables when GC_PROFILE_MORE_DETAIL is 0. |
805b08f2925f5ceec67bf472e76e869bbddc8c39
|
2012-11-03 |
* eval.c (f_current_dirname): add the new method for Kernel. This method almotst same as File.dirname(__FILE__). One different behavior is it returns nil when __FILE__ returns nil. [Feature #3346] |
e2f951656f952d73e16a60b75767cae8e651c532
|
2012-11-03 |
* NEWS: add a news about rb_newobj_of() and NEWOBJ_OF(). |
4166390229eea57c350f964fd0abf050ce3781d8
|
2012-11-03 |
* NEWS: add a news about GC::Profiler.raw_data. |
8a9097e83cd942584af77778abb033eba56bc7eb
|
2012-11-10 |
* gc.c: move immutable fields from struct heaps_slot and struct sorted_heaps_slot into struct heaps_header. Based on a patch from Sokolov Yura [Feature #6199][ruby-core:43592] |
fe9fc6df018402de830f42b63ea25d927c8726a8
|
2012-11-21 |
* gc.c (gc_profile_clear): realloc profile records if its size is higher than the threshold, GC_PROFILE_RECORD_DEFAULT_SIZE * 2. |
7d0cabb8f881798da1332becf60096a09fbb6c01
|
2012-11-21 |
* gc.c (garbage_collect): remove a duplicative probe. |
cda3a0c75e25b36169c3fa56068803cca9229242
|
2012-11-21 |
* test/ruby/test_gc.rb (test_profiler_clear): fix wrong method calls [Bug #7419] [ruby-core:49828]. |
66db637a9fc0e03b4b25e213e2e96ddf5b53597f
|
2012-11-22 |
* gc.c (is_swept_object): extract from is_dead_object(). |
1d8d7a3eec54a5440a1942c0b589c228138834ae
|
2012-11-27 |
* NEWS: add improvements of the garbage collector. |
59770bf960aba2ef14cb5306606bbb6a64d38188
|
2012-11-29 |
* gc.c (rb_objspace_call_finalizer): finalize_deferred may free up a object which is reachable from a part after this function, e.g. ruby_vm_destruct(). [ruby-dev:46647] [Bug #7452] |
6b627e6cd6dca18c5decff895af7bcdc623d05a9
|
2012-11-29 |
fix a revisited typo. |
a22bb18e3e1f48f1155819351bd40c681f971fe0
|
2012-11-29 |
* gc.c : remove a unused function. |
ab012bda4a0bdfb720fdf4debbf401f6923f401f
|
2012-12-05 |
* gc.c (getrusage_time): uses clock_gettime() with CLOCK_PROCESS_CPUTIME_ID when available, which provides a 1ns precision on linux. [ruby-core:50495] [Bug #7500] |
4a572d5bb46451f171c30e09f88a2dcf67478006
|
2012-12-05 |
add a contributor name |
f04dd0f08b20ce48cc10fa88bab08b1941b3c558
|
2012-12-10 |
* lib/irb/magic-file.rb: set a encoding, which is detected from the file to read, to the internal encoding. [Bug #4281][ruby-dev:43036] |
8ad15646889383f5546922bc5bb6f3f5a7391dfa
|
2013-01-24 |
* eval.c (f_current_dirname): Add documentation about "__dir__ returns always an absolute path". [Bug #7729] |
b5c0c4ee08196e5f6d7767e49012a13d66965f57
|
2013-01-24 |
fix NEWS of __dir__ |
892e8efd47343925b76cd12da965109f084a1817
|
2013-01-24 |
fix documents. __dir__ is a shorthand File.realdirpath(__FILE__). |
68d131d6a50898dc605a739caa76b494b65c6393
|
2013-01-26 |
fix typos |
2f7ca893a35abcde7e994c582055bd672c459058
|
2013-03-13 |
* gc.c: allow to tune growth of heap by environment variable RUBY_HEAP_SLOTS_GROWTH_FACTOR. patched by tmm1(Aman Gupta). [Feature #8015] [ruby-core:53131] |
8283be280c62c15e04fa8d4c2c5145ceaa39de18
|
2013-03-14 |
* NEWS: describe RUBY_HEAP_SLOTS_GROWTH_FACTOR. |
03c7f0ca43a65b18d81387f82bf91e5d5bc14bee
|
2013-03-18 |
* gc.c: Fix unlimited memory growth with large values of RUBY_FREE_MIN. patched by tmm1(Aman Gupta). [Bug #8095] [ruby-core:53405] |
1bc93a15912ab418bd54c0c064a47c557798eae9
|
2013-03-18 |
* gc.c: Avoid unnecessary heap growth. patched by tmm1(Aman Gupta). [Bug #8093] [ruby-core:53393] |
80329d3a66bf007d85a35c624d6514b0ddc814ca
|
2013-03-18 |
* gc.c: Improve accuracy of objspace_live_num() and allocated/freed counters. patched by tmm1(Aman Gupta). [Bug #8092] [ruby-core:53392] |
3ad60679e37ac36b2d76b12f31036864733bb59f
|
2013-03-24 |
* gc.c: We have no chance to expand the heap when lazy sweeping is restricted. So collecting is often invoked if there is not enough free space in the heap. Try to expand heap when this is the case. |
e54daddac4e5583e62ef9d665d4f3d4a859478c9
|
2013-03-24 |
* gc.c (GC_ENABLE_LAZY_SWEEP): new macro to switch lazy sweeping for debugging. [Feature #8024] [ruby-dev:47135] |
02ff09770569a4ed74daab731376cb01925312e5
|
2013-03-24 |
* proc.c (bm_free): need to clean up the mark flag of a free and unlinked method entry. [Bug #8100] [ruby-core:53439] |
15d26c3fd9a95f6fa14bc4faae7e1b8e9a07e2b3
|
2013-06-06 |
* ext/objspace/object_tracing.c: allocation_info function isn't called by any other file. |
fbece268c7c58c32970b581712c8c3d662b20ed1
|
2013-06-06 |
* ext/objspace/object_tracing.c: rename allocation_info to lookup_allocation_info. At times I confused "struct allocation_info" with "function allocation_info". |
f0b087220c0e7622a29615b25f2f82a6cbacba34
|
2013-11-09 |
* internal.h: prototype declarations of gc.c collect up. |
5e73aa6e241ecd2896fe673ab20cc51295d091bd
|
2013-11-09 |
Revert "* internal.h: prototype declarations of gc.c collect up." |
baf3cf128e451c3bf099bc68ec7918973d9a81f6
|
2013-11-09 |
* ext/objspace/object_tracing.c: use declarations in internal.h. |
9d2f54b3e9eb242da781970c5df458611f5ec332
|
2013-11-22 |
* include/ruby/intern.h (rb_gc_set_params): Deprecate rb_gc_set_params because it's only used in ruby internal. |
f29e925701471aa9a44b2d6ba38074daa3b6d33d
|
2013-11-22 |
* include/ruby/intern.h, internal.h: Expose rb_gc_count(). |
fe398529a6e5ef8ccd7a3fb08020a93e8a3a3d05
|
2013-11-23 |
add NEWS about rb_gc_set_params() and rb_gc_count() |
53f1de2f49cafeba1f1c7f0674c976f3c0bb4be0
|
2013-12-03 |
* object.c (rb_obj_clone): Protect FL_PROMOTED and FL_WB_PROTECTED flags of a destination object. |
7e1f3c636b317571141c9a0ca778a088f7c22ccb
|
2013-12-03 |
* object.c (rb_obj_clone): don't copy FL_WB_PROTECTED of a original object. |
537ee14ff4cde6b765640a86217b7442090d1e76
|
2014-03-07 |
* parse.y (ENC_SINGLE): Unused macro removed. |
90b70738427567dc065ad75b32fa932b280c304a
|
2014-03-26 |
* parse.y: support Symbol GC. [ruby-trunk Feature #9634] See this ticket about Symbol GC. |
17a6f9227a060a75c5c99a297fb8d3cd488ae777
|
2014-03-26 |
cast to int to silence clang compile error |
b9ea13595003eebdf18db97b8177285f215ce94f
|
2014-03-26 |
* internal.h (USE_SYMBOL_GC): enable Symbol GC by default (USE_SYMBOL_GC == 1). |
e6dcb3b174d6bfaafe623a0e4a8270989e1eca9b
|
2014-03-26 |
[DOC] Add NEWS about Symbol GC |
7c9f1aa3d5172340b6b2a0aafdad5528b523a287
|
2014-03-27 |
[DOC] Fix NEWS about Symbol GC |
6ee891d6a7cb2278f43c5da3590939a548587682
|
2014-04-28 |
* gc.c: Fix typos. These are undefined variables. |
ec0cfc3a3193a5015dbc7e0b07980e00f2b2bfd9
|
2014-04-28 |
* gc.c: This argument must be a pointer. |
ca319081ce97f0c6db7695f919d9bbd74ed8921d
|
2014-04-30 |
* gc.c (gc_after_sweep): suppress unnecessary expanding heap. Tomb heap pages are freed pages here, so expanding heap is not required. |
63e8293147fcaf2d107175bd7013dca7d81fbcb9
|
2014-06-24 |
internal structure |
a5c91a3811fa80214a6cce5b8b5ba2e5e1642423
|
2014-09-21 |
* st.c (numberof): unused. internal.h has same macro. |
5390e3211900652e7ffd59b806a2cad5ad0947e0
|
2014-09-21 |
* parse.y (parser_class_nest): unused variable after YARV merged (r11439). |
a3307d5e5aff2865a2d25dac2e211654efc2e2e0
|
2014-09-21 |
* st.c (do_hash_bin): unused macro. |