aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
* * compile.c (iseq_compile_each): checkko12014-12-171-0/+7
| | | | | | | | | iseq->compile_data->option->specialized_instruction for opt_* insn. * test/ruby/test_iseq.rb: check no specialized_instructions option. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* compile.c: skip opt_* insns for fstr args with block givennormal2014-12-171-0/+9
| | | | | | | | | | | * compile.c (iseq_compile_each): only emit opt_str_freeze, opt_aref_with, and opt_aset_with insn when no block is given [Bug #10557] [ruby-core:66595] * test/ruby/test_optimization.rb (test_block_given_aset_aref): new test for bug thanks to Bartosz Kopinski. (test_string_freeze): additional assertion for object_id git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48869 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/win32/lib/Win32API.rb (Win32API#call): need to splat. hmm, whenusa2014-12-161-0/+5
| | | | | | | was this broken? git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48867 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* iseq.c: struct accessorsnobu2014-12-161-0/+11
| | | | | | | | | | | * iseq.c (rb_method_for_self_aref, rb_method_for_self_aset): call accessor functions directly, not to be affected by [] and []= methods. [ruby-core:66846] [Bug #10601] * struct.c (define_aref_method, define_aset_method): ditto. * vm_insnhelper.c (rb_vm_opt_struct_aref, rb_vm_opt_struct_aset): direct accessors of Struct. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48864 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb (test_deadlock_by_signal_at_forking):ko12014-12-161-0/+5
| | | | | | | | extend timeout seconds to 60 for RGENGC_CHECK_MODE > 0 environment. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48859 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/vcs.rb: fix Ruby 1.8 compatibility hardernormal2014-12-161-0/+4
| | | | | | Arguments after splat do not work under 1.8, either. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48856 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* GC documentation updatenormal2014-12-151-0/+8
| | | | | | | | | | * gc.c (GC_HEAP_FREE_SLOTS): move definition to match use order (RUBY_GC_HEAP_GROWTH_SLOTS): s/factor/number of slots/ * man/ruby.1: add section for GC environment variables [Feature #10197] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48855 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* tool/vcs.rb: fix Ruby 1.8 compatibilitynormal2014-12-151-0/+4
| | | | | | Symbol#to_proc is not standard in Ruby 1.8 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48853 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/objspace/objspace.c: ObjectSpace.memsize_of(obj) returnsko12014-12-151-0/+13
| | | | | | | | | | | | with sizeof(RVALUE). [Bug #8984] * gc.c (obj_memsize_of): ditto. * NEWS: add a NEWS entry. * test/objspace/test_objspace.rb: catch up this fix. * test/ruby/test_file_exhaustive.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48846 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c: fix coderange for non-endianness stringnobu2014-12-151-0/+6
| | | | | | | | * string.c (rb_enc_str_coderange): dummy wchar, non-endianness encoding string cannot be ascii only. [ruby-core:66835] [Bug #10598] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48845 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: warn reference after method definitionnobu2014-12-141-0/+6
| | | | | | | | * parse.y (primary): restore current_arg so that circular reference after a method definition is also warned. [ruby-core:61299] [Bug #9593] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_trace.c: defer interrupts while postponed jobsnobu2014-12-131-0/+6
| | | | | | | | * vm_trace.c (rb_postponed_job_flush): mask signal trap interrupt too to defer handling after finalizers finished. [ruby-core:66825] [Bug #10595] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48829 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/openssl/test_pkey_ec.rb: ignored tests with old OpenSSL.hsbt2014-12-131-0/+4
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48828 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* signal.c: stack overflow on FreeBSDnobu2014-12-131-0/+5
| | | | | | | * signal.c (check_stack_overflow): check sp also on i386/x86_64 FreeBSD. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48827 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* gc.c (define_final0): avoid duplicate blocksnormal2014-12-131-0/+6
| | | | | | | | | | | This prevents excessive memory growth when a WeakRef is repeatedly created * gc.c (define_final0): avoid duplicate blocks [Bug #10537] * test/test_weakref.rb (test_repeated_object_leak): new test git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48820 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* erb: suppress warningsnobu2014-12-121-0/+5
| | | | | | | * bin/erb (ERB::Main#run): get rid of shadowing outer local variables. [ruby-core:65772] [Feature #10395] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48788 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gems/bundled_gems: Upgrade to test-unit 3.0.8. assert_throw andkou2014-12-121-0/+8
| | | | | | | | | | assert_nothing_thrown in test-unit 3.0.7 were broken by UncaughtThrowError change introduced in Ruby 2.2.0 preview2. These assertions in test-unit 3.0.8 work well with UncaughtThrowError in Ruby 2.2.0 preview2. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* erb: set variables from the command linenobu2014-12-121-0/+5
| | | | | | | * bin/erb (ARGV.switch, ERB::Main#run): allow variables to be set from the command line. [ruby-core:65772] [Feature #10395] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48786 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* erb: lineno and location settersnobu2014-12-121-0/+6
| | | | | | | * lib/erb.rb (ERB#lineno): accessor for line number to eval. * lib/erb.rb (ERB#location=): setter of file name and line number. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * gc.c (gc_latest_gc_info): return :state field to show currentko12014-12-121-0/+6
| | | | | | | | | GC state (none/marking/sweeping). [Feature #10590] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c: check arguments for cryptnobu2014-12-121-0/+6
| | | | | | | | * string.c (rb_str_crypt): check arguments more strictly. * crypt() is not for wide char strings * salt bytes should not be NUL git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io.c: Fix spelling [ci skip]nobu2014-12-111-0/+5
| | | | | | | * io.c (io_read) Fix spelling in docco for read. [Fix GH-781] try > tries git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ChangeLog: typonobu2014-12-111-1/+1
| | | | | | * ChangeLog: fix typo, s/Strat/Start/. [ci skip] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48773 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* add missing space [ci skip]kazu2014-12-111-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48772 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * class.c (class_alloc): Strat from age == 2.ko12014-12-111-0/+17
| | | | | | | | | | | | | | | Class and Module objects can be living long life. * iseq.c: Same for ISeq objects. * gc.c (RVALUE_AGE_RESET): added. * gc.c (newobj_of): allow to generate (age != 0) objects. * gc.c (rb_copy_wb_protected_attribute): reset age for wb unprotected objects. * include/ruby/ruby.h: add RUBY_TYPED_PROMOTED1 as an unrecommended flag. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/prime.rb: Remove useless loop and block capture.marcandre2014-12-101-0/+5
| | | | | | See [#10354] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48767 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_core.h: introduce new fieldko12014-12-101-0/+14
| | | | | | | | | | | | | | rb_thread_t::local_storage_recursive_hash_for_trace to store recursive hash to avoid creating new recursive (nested) hashes for each trace events. [Bug #10511] * vm_trace.c (rb_threadptr_exec_event_hooks_orig): use it. * cont.c: catch up this fix. * vm.c (rb_thread_mark): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48765 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* struct.c: use iseqvalnobu2014-12-101-0/+6
| | | | | | | | * struct.c (define_aref_method, define_aset_method): use iseq VALUE instead of rb_iseq_t to prevent from GC, as RB_GC_GUARD makes sense only for local variables. [Feature #10575] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c: use the same method namenobu2014-12-101-0/+6
| | | | | | | | * thread.c (exec_recursive): use the same last method name as recursive_push in the error message when recursive_pop failed. [ruby-core:66742] [Bug #10579] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48752 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/net/http/test_https.rbusa2014-12-091-0/+10
| | | | | | | | | | | | (TestNetHTTPS#test_certificate_verify_failure): on Windows, Errno::ECONNRESET will be raised when the verify is failure at the client side, and it'll be eaten by WEBrick. * test/open-uri/test_ssl.rb (TestOpenURISSL#test_validation_failure): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48751 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* struct: avoid all O(n) behavior on accessnormal2014-12-091-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This avoids O(n) on lookups with structs over 10 members. This also avoids O(n) behavior on all assignments on Struct members. Members 0..9 still use existing C methods to read in O(1) time Benchmark results: vm2_struct_big_aref_hi* 1.305 vm2_struct_big_aref_lo* 1.157 vm2_struct_big_aset* 3.306 vm2_struct_small_aref* 1.015 vm2_struct_small_aset* 3.273 Note: I chose use loading instructions from an array instead of writing directly to linked-lists in compile.c for ease-of-maintainability. We may move the method definitions to prelude.rb-like files in the future. I have also tested this patch with the following patch to disable the C ref_func methods and ensured the test suite and rubyspec works --- a/struct.c +++ b/struct.c @@ -209,7 +209,7 @@ setup_struct(VALUE nstr, VALUE members) ID id = SYM2ID(ptr_members[i]); VALUE off = LONG2NUM(i); - if (i < N_REF_FUNC) { + if (0 && i < N_REF_FUNC) { rb_define_method_id(nstr, id, ref_func[i], 0); } else { * iseq.c (rb_method_for_self_aref, rb_method_for_self_aset): new methods to generate bytecode for struct.c [Feature #10575] * struct.c (rb_struct_ref, rb_struct_set): remove (define_aref_method, define_aset_method): new functions (setup_struct): use new functions * test/ruby/test_struct.rb: add test for struct >10 members * benchmark/bm_vm2_struct_big_aref_hi.rb: new benchmark * benchmark/bm_vm2_struct_big_aref_lo.rb: ditto * benchmark/bm_vm2_struct_big_aset.rb: ditto * benchmark/bm_vm2_struct_small_aref.rb: ditto * benchmark/bm_vm2_struct_small_aset.rb: ditto git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c: [DOC] Add missing documentation around String#chomp.hsbt2014-12-091-0/+5
| | | | | | Patchby @stderr [ci skip][fix GH-780] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* object.c: [DOC] Revise documentationnobu2014-12-091-0/+15
| | | | | | | | | | | | | | | | * object.c: [DOC] Revise documentation by Marcus Stollsteimer at [ruby-core:66368]. [Bug #10526] * #inspect: be more specific about generated string, remove obsolete example. * #nil?: use code examples instead of different call-seq's. * #tap: clarify what is yielded. * Integer(): be more specific about to_int and to_i, remove reference to Ruby 1.8. * Array(): fix error. * Class: fix variable name style and indentation in example. * improve consistency, fix typos and formatting. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_eval.c: fix `rb_eval_string_wrap` rdocnobu2014-12-091-0/+6
| | | | | | | | | * vm_eval.c (rb_eval_string_wrap): [DOC] Fix `rb_eval_string_wrap` documentation. It is referencing `require` instead of `load`. The former does not have the optional argument. [Fix GH-779] [ci skip] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48745 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c: get rid of invalid ID symbolnobu2014-12-091-0/+10
| | | | | | | | | | | * eval.c (rb_frame_last_func): return the most recent frame method name. * thread.c (recursive_list_access): use the last method name, instead of the current method name which can be unset in some cases, not to use a symbol by the invalid ID. [ruby-core:66742] [Bug #10579] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48744 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix a typo [ci skip]kazu2014-12-071-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/socket/basicsocket.c, ext/socket/sockssocket.c:ktsj2014-12-071-0/+5
| | | | | | remove code for $SAFE=4. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/rdoc: Update to RDoc 4.2.0.drbrain2014-12-071-0/+5
| | | | | | | * test/rdoc: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48732 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/rubygems: Update to RubyGems 2.4.5.drbrain2014-12-071-0/+5
| | | | | | | * test/rubygems: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48729 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/net/imap.rb: Fix undefined variable usage & refactor/DRYshugo2014-12-061-0/+7
| | | | | | | | code. Patch by @aledovsky. [Fixes GH-770] * test/net/test_imap.rb: related test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c (do_select): rename parameters to avoid shadowingnormal2014-12-061-0/+4
| | | | | | | Sometimes we may use write(2) syscalls for debugging inside this function. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/rake: Update to rake 10.4.2hsbt2014-12-061-0/+5
| | | | | | * test/rake: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48726 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* compile.c (rb_iseq_build_from_ary): remove misc handlingnormal2014-12-051-0/+4
| | | | | | | | iseq->local_size is calculated, too, along with stack_size and param.size, meaning there is no need to blindly load values in the misc hash passed to us. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: fix --with-ruby-version [ci skip]nobu2014-12-051-0/+8
| | | | | | | | | * configure.in (RUBY_LIB_VERSION): Fix --with-ruby-version configuration option. get rid of quoting in config.status. * template/verconf.h.tmpl: quote RUBY_LIB_VERSION here. [ruby-core:66724] [Bug #10572] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/pp.rb (File::Stat#pritty_print): some platforms (such as Windows)usa2014-12-051-0/+5
| | | | | | | does not have major/minor parts of device. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48719 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/psych/lib/psych.rb: bump version to 2.0.8hsbt2014-12-051-0/+7
| | | | | | | | * ext/psych/psych.gemspec: ditto. * ext/psych/psych_emitter.c: ditto. * ext/psych/psych_parser.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48718 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix a typo [ci skip]kazu2014-12-051-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* socket/option.c: fix inet_ntop link error on mswinnobu2014-12-051-0/+6
| | | | | | | | * ext/socket/option.c (inet_ntop): link aliased inet_ntop in libruby on mswin not rb_w32_inet_ntop which fails to link for unknown reason. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* iseq.c: remove unused rb_iseq_new_with_boptnormal2014-12-051-0/+9
| | | | | | | | | | | * iseq.c (prepare_iseq_build): remove unused block_opt param (rb_iseq_new_with_bopt_and_opt): remove (rb_iseq_new_with_opt): inline removed function (rb_iseq_new_with_bopt): remove (iseq_load): adjust prepare_iseq_build call [Feature #10565] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48713 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: fix lex_state after tLABEL_ENDnobu2014-12-051-0/+6
| | | | | | | | * parse.y (parser_yylex): fix lex_state after tLABEL_END, should be EXPR_LABELARG to be followed by "paren with arg". [ruby-core:66705] [Feature #4935] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48712 b2dd03c8-39d4-4d8f-98ff-823fe69b080e