aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* * iseq.c (make_compile_option_value): include frozen_string_literal*ko12015-10-233-7/+19
| | | | | | | | | | | | in a made option value. * vm_opts.h: forgot to add OPT_FROZEN_STRING_LITERAL_DEBUG at last commit. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52258 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ruby.c: introduce --enable-frozen-string-literal-debug option.ko12015-10-237-5/+60
| | | | | | | | | | | | | | | | | | | | | If this option is enabled, the modify error will be: can't modify frozen String (RuntimeError) => can't modify frozen String, created at test.rb:3 (RuntimeError) * iseq.h: add compile option frozen_string_literal_debug. * compile.c: catch up this fix. * error.c (rb_error_frozen): ditto. * iseq.c (set_compile_option_from_hash): ditto. * test/ruby/test_rubyoptions.rb: add a test for this fix. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52257 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * properties.svn2015-10-231-72/+72
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52256 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * remove trailing spaces.svn2015-10-231-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52255 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_insnhelper.c: introduce new call handler for simple ISeqs.ko12015-10-235-38/+164
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | vm_call_iseq_setup_normal_0start() is simple, however it has some loops/conditions depends on ISeq::param.size and ISeq::local_size (in vm_push_frame(), inlined into this function). There are many simple methods which has a few parameters and local variables. So that this patch introduces several special functions generated in vm_call_iseq_optimized.inc by tool/mk_call_iseq_optimized.rb. This script makes vm_call_iseq_setup_normal_0start_Xparams_Ylocals() where X is 0 to 3 and Y is 1 to 6 (as current setting). In this case, X * Y = 24 functions are created. These functions creates fast method dispatch by inlining vm_push_frame() with immediate params/locals sizes. On my laptop, we can have the following results. vm2_method* 1.083 (8.3% faster) vm2_poly_method* 0.961 (3.4% slower) It shows 8.3% faster for inner loop method dispatch (hit inline cache), but 3.4% slower when inline cache miss because we need to find a suitable call handler. * common.mk: add a rule for vm_call_iseq_optimized.inc. * tool/mk_call_iseq_optimized.rb: added. * vm.c: include vm_call_iseq_optimized.inc. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_core.h: define vm_call_handler.ko12015-10-232-1/+8
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52253 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * vm_core.h, vm_insnhelper.h: move definition of VMDEBUGko12015-10-233-22/+27
| | | | | | | | from vm_insnhelper.h to vm_core.h. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52252 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * NEWS: [DOC] In the new safe call syntax, arguments are evaluatedknu2015-10-233-2/+12
| | | | | | | | only if a call is made. * doc/syntax/calling_methods.rdoc: Fix a typo. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2015-10-24svn2015-10-231-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52250 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/forwardable (def_instance_delegator, def_single_delegator):shugo2015-10-233-2/+25
| | | | | | | | rescue ::Exception instead of Exception in case Exception is defined under the target class. [ruby-core:71175] [Ruby trunk - Bug #11615] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* error.c: use fake stringnobu2015-10-231-5/+8
| | | | | | | * error.c (name_err_mesg_to_str): use fake string as rb_str_format does not require T_STRING to be cannonical VALUE. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52248 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* error.c: separate class namesnobu2015-10-233-20/+31
| | | | | | | | | * error.c (name_err_mesg_to_str): separate class names from the receiver description. * vm_eval.c (make_no_method_exception, raise_method_missing): add format specifiers for class names. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52247 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * .gitignore: ignored environmantal wrapper files.hsbt2015-10-232-0/+6
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52246 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/irb.rb: Ignored assignment of STDOUT.sync = truehsbt2015-10-232-2/+7
| | | | | | | when irb.rb loaded. It's affected to IDE such as Jetbrain. [fix GH-864] Patch by @os97673 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52245 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/ipaddr.rb, test/test_ipaddr.rb: Reject invalid address containedhsbt2015-10-233-2/+9
| | | | | | EOL string. Patch by @kachick [fix GH-942][Bug #11513] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ChangeLog: adjust indentnobu2015-10-231-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52243 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * file.c: fix indent style. [fix GH-977]hsbt2015-10-233-5/+11
| | | | | | | * test/ruby/test_string.rb: indent. [fix GH-975] [ci skip] These patches are contributed from @yui-knk git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c: Added method signature to include hash. It's inconsistencyhsbt2015-10-232-0/+7
| | | | | | | with `gsub` method signature. [ci skip][fix GH-1023] Patch by @danielevans git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52241 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/net/imap.rb: remove an empty comment line and -*-.shugo2015-10-234-6/+7
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52240 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/net/ftp.rb (gettextfile, getbinaryfile): use the safeshugo2015-10-233-15/+147
| | | | | | navigation operator. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test_call.rb: add testsnobu2015-10-232-1/+13
| | | | | | | | | | * test_call.rb (test_safe_call): Add test cases for safe navigation operator assignment. [Fix GH-1064] Validate: * can assign an attribute which is `nil` * can "or assign" an attribute which is `nil` git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* compile.c: optimize method chainnobu2015-10-233-30/+49
| | | | | | | * compile.c (iseq_peephole_optimize): optimize lengthy safe navigation method chain. [Feature #11537] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * remove trailing spaces.svn2015-10-231-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/matrix/eigenvalue_decomposition.rb (tridiagonalize): fixshugo2015-10-233-103/+139
| | | | | | | | | | | indentation to avoid a warning when the command line option -w of ruby is specified. * lib/matrix/eigenvalue_decomposition.rb (hessenberg_to_real_schur): change the name of a block parameter to avoid a warning when the command line option -w of ruby is specified. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* safe navigation attrsetnobu2015-10-235-14/+38
| | | | | | | | | * compile.c (iseq_compile_each): support safe navigation of simple attribute assignment. [Feature #11537] * parse.y (mlhs_node, lhs, attrset_gen): ditto. keep mid non-attrset as the sign of safe navigation. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* compile.c: just insertnobu2015-10-231-6/+18
| | | | | | | * compile.c (compile_massign_lhs): just insert topn insn instead of popping and adding. [Feature #11537] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52233 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* NEWS: add a spacenobu2015-10-221-1/+1
| | | | | | | | * NEWS: fix wording, "Active Support" has a space in between the words, not ActiveSupport. https://github.com/ruby/ruby/commit/a356fe1#commitcomment-13936198 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/io/wait/test_io_wait.rb (test_wait_eof): test return valuenormal2015-10-222-1/+7
| | | | | | | I wrote some code which relies on this nowadays, but Ruby <=2.2 and earlier behaved differently... git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52231 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* NEWS: fix typo [ci skip]normal2015-10-221-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Add rlimit_nproc to avoid to create many process [Bug #11613]naruse2015-10-221-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52229 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ALPN also uses the same logic [Bug #11369]naruse2015-10-221-30/+32
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52228 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * ext/openssl/ossl_ssl.c (ssl_npn_select_cb): explicitly raise errornaruse2015-10-222-2/+13
| | | | | | | | | in ext/openssl instead of OpenSSL itself because LibreSSL silently truncate the selected protocol name by casting the length from int to unsigned char. [Bug #11369] Patch by Jeremy Evans <merch-redmine@jeremyevans.net> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52227 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/un.rb (help): change the name of a block parameter to avoidshugo2015-10-222-1/+6
| | | | | | a warning when the command line option -w of ruby is specified. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52226 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix backslash [ci skip]nobu2015-10-222-1/+6
| | | | | | | * string.c (rb_str_tr): [DOC] Escape backslash in String#tr documentation. [Fix GH-1063] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* adjust spaces [ci skip]nobu2015-10-222-3/+8
| | | | | | | * array.c (rb_ary_collect): [DOC] Fix space of code example of Array#map. [Fix GH-1062] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52224 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2015-10-23svn2015-10-221-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52223 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* limit the number of FDs in a process for stress testnaruse2015-10-221-0/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: showflags only oncenobu2015-10-223-7/+10
| | | | | | * common.mk (showflags): do not show flags from recursive make. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52221 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* colorizenobu2015-10-222-7/+13
| | | | | | | | * tool/generic_erb.rb: use VT100 sequence if tput does not work. * tool/ifchange: ditto and add --color option. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52220 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ifchange: ignore errornobu2015-10-221-1/+1
| | | | | | | * tool/ifchange: do not exit by -e even if tput failed. [ruby-core:71143] [Bug #11611] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52219 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Kernel#loop returns the result value of a finished iteratorknu2015-10-224-4/+40
| | | | | | | | * vm_eval.c (rb_f_loop): When a loop is stopped by a StopIteration exception, return what the enumerator has returned instead of nil. [ruby-core:71133] [Feature #11498] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52218 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * remove trailing spaces.svn2015-10-221-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52217 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/net/imap (idle): add a new argument timeout for keep-alive.shugo2015-10-223-2/+61
| | | | | | [ruby-core:63693] [Bug #10031] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* generic_erb.rb: ignore errornobu2015-10-221-1/+1
| | | | | | | * tool/generic_erb.rb: ignore error that tput is not found. [ruby-core:71143] [Bug #11611] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Safe navigation operatornobu2015-10-2210-41/+164
| | | | | | | | | | | | | * compile.c (iseq_peephole_optimize): peephole optimization for branchnil jumps. * compile.c (iseq_compile_each): generate save navigation operator code. * insns.def (branchnil): new opcode to pop the tos and branch if it is nil. * parse.y (NEW_QCALL, call_op, parser_yylex): parse token '.?'. [Feature #11537] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* generic_erb.rb: highlightnobu2015-10-221-2/+15
| | | | | | * tool/generic_erb.rb: highlight result messages too. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* dir.c: glob brace expansion [Fix GH-1061]nobu2015-10-223-1/+13
| | | | | | | | | * dir.c (ruby_brace_expand): glob brace expansion edge case fix. When there are closing braces '}' before a open brace '{' it must be ignored and considered as literal. [ruby-core:71138] [Bug #11609] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52212 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io.c: check ARGV element typenobu2015-10-223-11/+26
| | | | | | | * io.c (argf_next_argv): check ARGV element type, and try conversion if necessary. [ruby-core:71140] [Bug #11610] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52211 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2015-10-22svn2015-10-221-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52210 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/net/ftp/test_ftp.rb: add tests for getbinaryfile andshugo2015-10-222-0/+164
| | | | | | gettextfile. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52209 b2dd03c8-39d4-4d8f-98ff-823fe69b080e