Age | Commit message (Collapse) | Author |
|
* array.c (rb_ary_or): lhs elements are prefered, so should not
replace with rhs elements.
* test/ruby/test_array.rb (test_OR_in_order): import the test failed
by r43969 from rubyspec/core/array/union_spec.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44015 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44012 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44009 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* gc.c (struct rb_objspace): rename internal last_collection_flags to
latest_gc_info
* gc.c (gc_latest_collection_info): add GC.latest_gc_info() with similar
behavior to GC.stat()
* gc.c (rb_gc_latest_gc_info): new c-api for above
* gc.c (gc_stat_internal): remove :last_collection_flags from GC.stat
* gc.c (gc_profile_decode_flags): remove GC::Profiler.decode_flags
* include/ruby/intern.h (rb_gc_latest_gc_info): export new c-api
* test/ruby/test_gc.rb (class TestGc): test for new behavior
* NEWS: note about new api
* gc.c (gc_stat_internal): raise TypeError on wrong type
* gc.c (gc_stat): fix error message
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* ext/objspace/gc_hook.c: remove this file
* ext/-test-/tracepoint/gc_hook.c: new filename for above
* ext/objspace/objspace.c: remove ObjectSpace.after_gc_start_hook=
* test/objspace/test_objspace.rb: remove test
* test/-ext-/tracepoint/test_tracepoint.rb: add above test for
tracepoint re-entry
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44007 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
They are objspace_ functionality.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44006 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* include/ruby/intern.h: add rb_gc_stat() for access to GC.stat
variables from c-api
* gc.c (rb_gc_stat): new c-api method. accepts either VALUE hash like
GC.stat, or VALUE symbol key and returns size_t directly. the second
form is useful to avoid allocations, i.e. for usage inside
INTERNAL_EVENT_GC tracepoints.
* gc.c (gc_stat): add GC.stat(:key) to return single value instead of hash
* gc.c (gc_stat_internal): helper method to retrieve single or all stat values
* test/ruby/test_gc.rb (class TestGc): test for new behavior
* NEWS: note about this new api
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44005 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* ChangeLog: malloc_size(3) on MacOS X says it's a BSD Library
Function, so possibly some other BSDs may have but seems unavailable
on FreeBSD at least.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44004 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* hash.c (rb_hash): revert r43981 and bail out to the outermost frame
when recursion is detected.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44003 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
return malloc_usable_size() if possible.
* gc.c (MALLOC_ALLOCATED_SIZE): add new setting macro to enable
GC.allocated_size.
If platform supports `malloc_usable_size()' (or similar one),
GC.allocated_size can be implemented with this function.
Default is 0.
* gc.c (vm_xmalloc, vm_xrealloc, vm_xfree): use vm_malloc_size()
to detect collect allocated size.
* gc.c (vm_malloc_increase): refactoring.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* include/ruby/ruby.h: remove INTERNAL_EVENT_GC_END and replace with
two new events: GC_END_MARK and GC_END_SWEEP
* gc.c (gc_after_sweep): emit GC_END_SWEEP after lazy sweep is done
* gc.c (gc_marks_body): emit GC_END_MARK at end of minor/major mark
* ext/-test-/tracepoint/tracepoint.c (struct tracepoint_track): tests
for new events.
* test/-ext-/tracepoint/test_tracepoint.rb (class TestTracepointObj):
ditto.
* NEWS: remove ObjectSpace.after_gc_*_hook. These are only a sample,
and will be removed before ruby 2.1.
* ext/objspace/gc_hook.c: remove ObjectSpace.after_gc_end_hook=
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* ruby_atomic.h (ATOMIC_PTR_EXCHANGE): atomic exchange function for
a generic pointer.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* gc.c (finalize_deferred): flush all deferred finalizers while other
finalizers can get ready to run newly by lazy sweep.
[ruby-core:58833] [Bug #9205]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43994 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* gc.c (ruby_gc_set_params): Accept safe_level argument so GC tuning
settings can be applied before rb_safe_level() is available.
* internal.h (rb_gc_set_params): ditto.
* ruby.c (process_options): Apply GC tuning early during boot process
so boot-time allocations can benefit. This also benefits any code
loaded in via `ruby -r`.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
allocated rb_trace_arg_t structure. Without this patch, sometimes
INTERNAL_EVENT_GC would be skipped accidentally inside
rb_threadptr_exec_event_hooks_orig().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
based on feedback from @nagachika. In the existing case, we can
return ST_STOP to prevent any hash modification. In the !existing
case, set both key and value to the fstr.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* lib/delegate.rb (Delegator#method_missing): ignore the target if not
set, and delegate to global methods. [ruby-core:58572] [Bug #9155]
* lib/delegate.rb (Delegator#respond_to_missing): ditto.
* lib/delegate.rb (SimpleDelegator#__getobj__): yield and return if
not delegated but a block is given, like as Hash#fetch.
* lib/delegate.rb (DelegateClass#__getobj__): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* configure.in: check malloc_size() available on BSD.
* gc.c: use malloc_size() with malloc/malloc.h on BSD.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
original object.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* hash.c (rb_hash_recursive): make similar (recursive) constructs
return same hash value. execute recursively, and rewind to the
topmost frame with an object which .eql? to the recursive
object, if recursion is detected.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* hash.c (rb_hash): detect recursion for all `hash' methods. each
`hash' methods no longer need to use rb_exec_recursive().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* vm_eval.c (rb_catch_protect): new function similar to
rb_catch_obj(), but protect from all global jumps like as
rb_load_protect(), rb_protect(), etc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
flags of a destination object.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
[Bug #9187]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43975 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
values off
the ruby heap. [Bug #9201] [ruby-core:58805]
* load.c (loaded_features_index_clear_i): Clean up off-heap array structure.
* vm.c (rb_vm_mark): Remove unnecessary mark_tbl for loaded_features_index.
This improves minor GC time by 15% in a large application.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
RClass->m_tbl with serial. This prevents double marking method
tables, since many classes/modules can share the same method table.
This improves minor mark time in a large application by 30%.
* internal.h (struct method_table_wrapper): Define new
wrapper struct with additional serial.
* internal.h (RCLASS_M_TBL_INIT): New macro for initializing method
table wrapper and st_table.
* method.h (void rb_sweep_method_entry): Rename rb_free_m_table to
rb_free_m_tbl for consistentcy
* .gdbinit (define rb_method_entry): Update rb_method_entry gdb helper
for new method table structure.
* class.c: Use RCLASS_M_TBL_WRAPPER and
RCLASS_M_TBL_INIT macros.
* class.c (rb_include_class_new): Share WRAPPER between module and
iclass, so serial can prevent double marking.
* eval.c (rb_prepend_module): ditto.
* eval.c (rb_using_refinement): ditto.
* gc.c: Mark and free new wrapper struct.
* gc.c (obj_memsize_of): Count size of additional wrapper struct.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
will be frozen. [ruby-core:58809] [Bug #9202]
* array.c (rb_ary_uniq_bang): ditto.
* array.c (rb_ary_or): ditto.
* array.c (rb_ary_uniq): ditto.
* test/ruby/test_array.rb: tests for above.
The patch is from normalperson (Eric Wong).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
st_insert.
* string.c (fstr_update_callback): New callback for st_update.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
NoMethodError
* lib/rdoc/constant.rb (RDoc::Constant#documented?): workaround for
NoMethodError when the original of alias is not found.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
SSLSocket methods. [ruby-trunk - Bug #9028]
* test/openssl/test_ssl.rb: Test for the above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
Fixed documentation display of constants
Fixed handling of unknown parsers
* test/rdoc: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
[ruby-core:58774] [Bug #9195] reported by phasis68 (Heesob Park).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
of GC. [Bug #9187]
* test/ruby/test_hash.rb: add a test for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
inherit=false, there is no need to use a hashtable to deduplicate
constant names. [Feature #9196] [ruby-core:58786]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43956 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
Net::SMTP::Response. Patch by Pawel Veselov.
[ruby-trunk - Bug #9125]
* test/net/smtp/test_smtp.rb: Test for the above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
Copy directories to lib/ when installing extensions. This completes
the fix for [ruby-trunk - Bug #9106]
* test/rubygems: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
Add test related to r43913, r43914
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
on Windows.
[ruby-core:58732] [Bug #9189] reported by phasis68 (Heesob Park).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43950 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
Many wiki pages have become outdated and spam-ridden, we will import
these to trunk and begin maintaining them in ruby-trunk. This will
also allow new contributors to easily contribute patches to update
these pages, where previously a redmine account with wiki access was
required. Another bonus is having a contributors file to show thanks
to all of the people who have submitted a patch to Ruby.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43949 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43948 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
is raised in do_hash(). [Bug #9187]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
Implement gem.deps.rb (Gemfile) .lock support
Fixed `gem uninstall` for a relative directory in GEM_HOME.
* test/rubygems: ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|