aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
* gc.c: split GC_END event into GC_END_MARK and GC_END_SWEEPtmm12013-12-051-0/+14
| | | | | | | | | | | | | | | | * 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_EXCHANGEnobu2013-12-051-0/+5
| | | | | | | * 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: flush all deferred finalizersnobu2013-12-051-0/+6
| | | | | | | | * 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: Load GC tuning settings earlier during boot.tmm12013-12-051-0/+9
| | | | | | | | | | | * 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
* * vm_trace.c (rb_suppress_tracing): Fix initialization of stacktmm12013-12-041-0/+7
| | | | | | | | 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
* * string.c (fstr_update_callback): Improve implementation in r43968tmm12013-12-041-0/+7
| | | | | | | | 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
* delegate.rb: ignore unset targetnobu2013-12-041-0/+12
| | | | | | | | | | | * 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
* gc.c: use malloc_sizenobu2013-12-031-0/+6
| | | | | | | * 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
* * object.c (rb_obj_clone): don't copy FL_WB_PROTECTED of anari2013-12-031-0/+5
| | | | | | original object. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* hash.c: same hash value for similar constructsnobu2013-12-031-1/+6
| | | | | | | | | * 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: detect recursion for allnobu2013-12-031-0/+5
| | | | | | | * 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_protectnobu2013-12-031-0/+6
| | | | | | | | * 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
* ChangeLog: complement the intentionnobu2013-12-031-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * object.c (rb_obj_clone): Protect FL_PROMOTED and FL_WB_PROTECTEDnari2013-12-031-0/+5
| | | | | | flags of a destination object. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (rb_hash_rehash): use hash_alloc() instead of rb_hash_new().glass2013-12-031-0/+5
| | | | | | [Bug #9187] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43975 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * load.c (features_index_add_single): Move loaded_features_index array ↵tmm12013-12-031-0/+8
| | | | | | | | | | | 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
* * include/ruby/ruby.h (struct RClass): Add wrapper struct aroundtmm12013-12-031-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | 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
* * array.c (rb_ary_uniq_bang): remove duplicate code.glass2013-12-031-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * array.c (ary_add_hash): set and return values because string keysglass2013-12-031-0/+15
| | | | | | | | | | | | | | | | 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
* * string.c (rb_fstring): Use st_update instead of st_lookup +tmm12013-12-031-0/+6
| | | | | | | 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
* rdoc/constant.rb: reapply r43006 for workaround ofnobu2013-12-031-0/+5
| | | | | | | | 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
* * ext/openssl/lib/openssl/buffering.rb: Return ASCII-8BIT strings fromdrbrain2013-12-031-0/+6
| | | | | | | | 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
* * lib/rdoc: Update to RDoc master 900de99. Changes include:drbrain2013-12-031-0/+10
| | | | | | | | | | | 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
* * hash.c (getenv): fixed test failures introduced by r43950.usa2013-12-021-0/+5
| | | | | | | [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
* * hash.c (rb_hash_rehash): make temporary st_table under the controlglass2013-12-021-0/+7
| | | | | | | | 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
* * variable.c (rb_mod_constants): when calling Module#constants withcharliesome2013-12-021-0/+6
| | | | | | | 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
* * lib/net/smtp.rb (Net::SMTP#critical): Always return adrbrain2013-12-021-0/+7
| | | | | | | | | 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
* * lib/rubygems: Update to RubyGems master baa965b. Notable changes:drbrain2013-12-011-0/+9
| | | | | | | | | | 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
* * test/ruby/test_case.rb (test_nomethoderror):sorah2013-12-011-0/+5
| | | | | | Add test related to r43913, r43914 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (getenv): use ANSI codepage version of getenv() for minirubyusa2013-12-011-0/+6
| | | | | | | | 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
* * doc/contributors.rdoc: [DOC] Import contributors from redmine wikizzak2013-12-011-0/+10
| | | | | | | | | | | | 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
* * doc/maintainers.rdoc: [DOC] Current maintainers of Rubyzzak2013-12-011-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43948 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * doc/contributing.rdoc: [DOC] Current branch maintainerszzak2013-12-011-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * doc/contributing.rdoc: [DOC] Reporting other (ruby-lang.org) issueszzak2013-12-011-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * doc/contributing.rdoc: [DOC] Current platform maintainerszzak2013-12-011-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * doc/contributing.rdoc: [DOC] Reporting downstream distro issueszzak2013-12-011-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (rb_hash_to_a): specify array capa.glass2013-12-011-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * hash.c (rb_hash_rehash): fix to free new st_table when exceptionglass2013-12-011-0/+5
| | | | | | is raised in do_hash(). [Bug #9187] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/openssl/lib/openssl/buffering.rb: Fix warning in copyrightzzak2013-12-011-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/rubygems: Update to RubyGems master 66e5c39. Notable changes:drbrain2013-11-301-0/+10
| | | | | | | | | | | 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
* * test/ruby/test_gc.rb (test_gc_reason): Force minor GC by consumingtmm12013-11-301-0/+5
| | | | | | free slots to fix test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43937 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* dir.c: check unknown keywordsnobu2013-11-301-0/+5
| | | | | | | * dir.c (dir_initialize): check unknown keywords. [ruby-dev:47152] [Bug #8060] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43935 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* win32ole.c: correct declarationnobu2013-11-301-0/+6
| | | | | | | | * ext/win32ole/win32ole.c (hash2named_arg): correct declaration to fix build failure. a patch by phasis68 (Heesob Park) at [ruby-core:58710]. [Bug #9184] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43932 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval.c: determine exit status and signal before finalizationnobu2013-11-301-0/+6
| | | | | | | | * eval.c (ruby_cleanup): determine exit status and signal to terminate before finalization, to get rid of access destroyed T_DATA execption object. [ruby-core:58643] [Bug #9167] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* enumerator.c: should not store local variable addressnobu2013-11-301-0/+6
| | | | | | | | * enumerator.c (enumerator_with_index): should not store local variable address to memoise the arguments. it is invalidated after the return. [ruby-core:58692] [Bug #9178] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43929 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* siphash.c: fix missing conditionnobu2013-11-301-0/+5
| | | | | | | * siphash.c (sip_hash24): fix for aligned word access little endian platforms. [ruby-core:58658] [Bug #9172] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_eval.c: blockargnobu2013-11-301-0/+4
| | | | | | * vm_eval.c (rb_yield_block): implement non-nil block argument. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43927 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix typoskazu2013-11-291-3/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43922 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix indentkazu2013-11-291-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43921 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ChangeLog: fix ticket number at r43913.nagachika2013-11-291-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43919 b2dd03c8-39d4-4d8f-98ff-823fe69b080e