aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* test/unit: fix for the testnobu2016-02-272-5/+10
| | | | | | | | | | | | | | | | * test/lib/test/unit.rb (_run_parallel): make sure retrying message is a separate line. * test/lib/test/unit.rb (_prepare_run): do not add Output if testing. * test/lib/test/unit.rb (Skipping#failed): defer showing reports when showing skips, to be sorted. * test/testunit/test_hideskip.rb (test_hideskip): fix assertion for output misordered by mixing output destinations. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53955 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/unit: refine output in verbose modenobu2016-02-271-13/+11
| | | | | | | | * test/lib/test/unit.rb (Test::Unit::StatusLine#_prepare_run): add StatusLine::Output even if job_status is not replace, to filter extra outputs and newlines. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/unit: add --jobs-status=nonenobu2016-02-271-2/+2
| | | | | | | * test/lib/test/unit.rb (Test::Unit::StatusLine#setup_options): add :none to --jobs-status option. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2016-02-27svn2016-02-271-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/unit: no newlines to be chompednobu2016-02-271-1/+1
| | | | | | | * test/lib/test/unit.rb (Test::Unit::StatusLine::Output#print): matched part never contains a newline to be chomped. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53951 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* README.md: fix linked file name [ci skip]nobu2016-02-262-2/+2
| | | | | | | | | * README.md: fix linked file name, COPYING does not a suffix. [Fix GH-1265] * README.ja.md: update a link too. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53950 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* numeric.c: wrong type step should raise TypeErrornobu2016-02-264-4/+38
| | | | | | | | * numeric.c (num_step_scan_args): comparison String with Numeric should raise TypeError. it is an invalid type, but not a mismatch the number of arguments. [ruby-core:62430] [Bug #9810] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53949 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* doc: editor local variables [ci skip]nobu2016-02-263-0/+14
| | | | | | | | * doc/extension.rdoc, doc/extension.ja.rdoc: add editor local variables, with commenting out by :enddoc: directives which are just ignored unless code object mode. [Bug #12111] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53948 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * doc/extension.ja.rdoc: removed rendering error caused by editor specifichsbt2016-02-263-12/+6
| | | | | | | configuration on http://docs.ruby-lang.org/en/trunk/extension_rdoc.html . [Bug #12111][ruby-core:73990] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/xmlrpc.rb: Removed references to NQXML. It's obsoleted parser.hsbt2016-02-264-111/+10
| | | | | | | | [fix GH-1245][ruby-core:59593][Feature #9371] * lib/xmlrpc/config.rb: ditto. * lib/xmlrpc/parser.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/tmpdir.rb: Unify to coding-style for method definition.hsbt2016-02-262-1/+6
| | | | | | [fix GH-1252] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * README.md: update markdown syntax for anchor tag.hsbt2016-02-262-2/+7
| | | | | | [fix GH-1265] Patch by @lukBarros git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/irb.rb: avoid to needless truncation when using back_trace_limit option.hsbt2016-02-262-1/+6
| | | | | | [fix GH-1205][ruby-core:72773][Bug #11969] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53943 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2016-02-26svn2016-02-251-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Reduce system calls by activating the `did_you_mean` gem.tenderlove2016-02-252-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Activating the gem puts the gem on the load path, where simply requiring the file will search every gem that's installed until it can find a gem that contains the `did_you_mean` file. Calling RubyGems' `require` will search each installed gem until it can find one that contains the file it should require. This means that the more gems you have installed, the longer it can take to require that gem. To see this in action, lets compare the number of `stat` calls for a "bare require" vs the number of `stat` calls for a require that follows a gem activation by using these two programs: ``` [aaron@TC rubygems (master)]$ cat req_dym.rb begin require 'did_you_mean' rescue LoadError end [aaron@TC rubygems (master)]$ cat gem_dym.rb begin gem 'did_you_mean' require 'did_you_mean' rescue Gem::LoadError, LoadError end ``` The first program just requires the `did_you_mean` gem, where the second one activates the gem, then requires it. We can count the number of `stat` calls using `dtrace`: ``` [aaron@TC rubygems (master)]$ ruby -v ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15] [aaron@TC rubygems (master)]$ sudo dtrace -q -n 'syscall::stat*:entry { printf("%s\n", copyinstr(arg0)); }' -c`rbenv which ruby`" --disable-did_you_mean req_dym.rb" | wc -l dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24 dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24 dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24 dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24 283 [aaron@TC rubygems (master)]$ sudo dtrace -q -n 'syscall::stat*:entry { printf("%s\n", copyinstr(arg0)); }' -c`rbenv which ruby`" --disable-did_you_mean gem_dym.rb" | wc -l dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24 dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24 dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24 dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24 13 ``` The "bare require" version does over 10x the number of stat calls compared to the "gem, then require" version. Of course the number for the first one depends on the number of gems you have installed that sort before the `did_you_mean` gem. Lets also look at trunk Ruby: ``` [aaron@TC rubygems (master)]$ ruby -v ruby 2.4.0dev (2016-02-25 trunk 53940) [x86_64-darwin15] [aaron@TC rubygems (master)]$ sudo dtrace -q -n 'syscall::stat*:entry { printf("%s\n", copyinstr(arg0)); }' -c`rbenv which ruby`" --disable-did_you_mean req_dym.rb" | wc -l dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24 dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24 dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24 dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24 2325 [aaron@TC rubygems (master)]$ sudo dtrace -q -n 'syscall::stat*:entry { printf("%s\n", copyinstr(arg0)); }' -c`rbenv which ruby`" --disable-did_you_mean gem_dym.rb" | wc -l dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24 dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24 dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24 dtrace: error on enabled probe ID 3 (ID 826: syscall::stat64:entry): invalid user access in action #1 at DIF offset 24 685 ``` This change will reduce the number of `stat` calls on trunk Ruby too, but since this installation doesn't have the `did_you_mean` gem, RubyGems is still reading every gem spec file so that it can raise a `Gem::LoadError` exception with a nice error message. If we can modify RubyGems a little, it may be possible to drop the number of stat calls even on a Ruby installation that doesn't have the `did_you_mean` gem. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53941 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval_error.c: constifynobu2016-02-251-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval_error.c: remove warn_printfnobu2016-02-252-26/+27
| | | | | | | | | * eval_error.c (warn_printf): remove. * eval_error.c (error_pos_str): return error position string, split from error_pos. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53939 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * enc/unicode/case-folding.rb: Adding possibility for debugging outputduerst2016-02-252-2/+17
| | | | | | | | for TitleCase table in casefold.h. (with Kimihito Matsui) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_process.rb (test_execopts_open_chdir_m17n_path): it's ↵usa2016-02-251-1/+1
| | | | | | originally for Windows. should not ignore on the platform. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval_error.c: error position formatnobu2016-02-251-19/+5
| | | | | | | * eval_error.c (error_print): use same error position format when no backtrace too. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53919 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2016-02-25svn2016-02-251-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* eval_error.c: colon in messagenobu2016-02-251-15/+15
| | | | | | | | | * eval_error.c (error_pos): include a clone after the position. * eval_error.c (error_print, error_handle): do not print a colon if the error position is unavailable. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53917 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * remove trailing spaces.svn2016-02-241-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53916 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/oniguruma.h: Rearranging flag assignments and makingduerst2016-02-243-18/+46
| | | | | | | | | | | space for titlecase indices; adding additional macros to add or extract titlecase index; adding comments for better documentation. * enc/unicode.c: Moving some macros to include/ruby/oniguruma.h; activating use of titlecase indices. (with Kimihito Matsui) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * random.c (limited_rand): Add a specialized path for the limit fits in 32 bit.akr2016-02-242-9/+24
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse without $.nobu2016-02-243-19/+33
| | | | | | | | | | | | * io.c (rb_io_gets_internal): read one line from an IO without setting ARGF.lineno. * parse.y (lex_io_gets): use rb_io_gets_internal not to affect $. global variable. * ruby.c (load_file): no longer reset $. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: hide compile_optionnobu2016-02-241-1/+1
| | | | | | | * parse.y (parser_set_compile_option_flag): hide compile_option hash from ObjectSpace. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_method.c: for hidden objectnobu2016-02-241-1/+3
| | | | | | | * vm_method.c (rb_method_basic_definition_p): methods of hidden objects cannot be overridden, return TRUE. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53911 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* numeric.c: micro optimizationsnobu2016-02-241-5/+7
| | | | | | | * numeric.c (flo_to_s, rb_fix2str): use rb_usascii_str_new instead of rb_usascii_str_new_cstr, when the length can be calculated. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53910 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2016-02-24svn2016-02-231-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53908 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_exception.rb: fix bad spawn argument (multipleheadius2016-02-231-1/+1
| | | | | | args in single) in test_thread_signal_location. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53907 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * enc/unicode/case-folding.rb, casefold.h: Outputting actual titlecaseduerst2016-02-234-96/+207
| | | | | | | | | data (new table, with indices from other tables). * enc/unicode.c: Ignoring titlecase data indices for the moment. (with Kimihito Matsui) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* iseq.h: remove trailing commanobu2016-02-231-4/+5
| | | | | | | * iseq.h (iseq_mark_ary_index): get rid of trailing comma and name the magic number for iseq_mark_ary_create. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53905 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * enc/unicode/case-folding.rb, casefold.h: Reading casing data fromduerst2016-02-233-80/+97
| | | | | | | | SpecialCasing.txt. (with Kimihito Matsui) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Bump up timeout for slower-starting implementations/platforms.headius2016-02-231-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53903 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_math.rb: use 64 bits in test_override_bignum_to_fheadius2016-02-221-2/+2
| | | | | | to ensure it's a bignum on all impls. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53902 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/ruby/test_math.rb: override tests must always put to_f backheadius2016-02-221-3/+3
| | | | | | | Conflicts: test/ruby/test_math.rb git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53901 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2016-02-23svn2016-02-221-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53900 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * test/psych/test_emitter.rb: test_resizing_tags missingheadius2016-02-221-0/+2
| | | | | | start_stream call, caused strict parsers like on JRuby to err. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ruby.c: remove unnecessary contextnobu2016-02-221-6/+2
| | | | | | | | * ruby.c (process_options): remove unnecessary context. rb_parser_append_print and rb_parser_while_loop just append some nodes and do not depend on the context. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix a typo [ci skip]kazu2016-02-221-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53892 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * enc/unicode/case-folding.rb, casefold.h: Adding flag for title-case,duerst2016-02-223-13/+20
| | | | | | | | not yet operational. (with Kimihito Matsui) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53891 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * enc/unicode/case-folding.rb, casefold.h: Fixed bug that avoided inclusionduerst2016-02-223-157/+162
| | | | | | | | of compatibility characters in uppper-/lower-case mappings. (with Kimihito Matsui) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53890 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2016-02-22svn2016-02-221-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53889 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_core.h: CoreDataFromValuenobu2016-02-221-4/+3
| | | | | | | * vm_core.h (CoreDataFromValue): split as an expression from GetCoreDataFromValue, which can be a statement only. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* internal.h: shortcut macrosnobu2016-02-221-0/+2
| | | | | | | * internal.h (RRATIONAL_SET_{NUM,DEN}): shortcut macros for internal only. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53887 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm.c (vm_cref_new0): adjust indent [ci skip]nobu2016-02-211-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53886 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* cgi/escape: Optimize CGI.unescapenobu2016-02-213-0/+88
| | | | | | | * cgi/escape/escape.c: Optimize CGI.unescape performance by C ext for ASCII-compatible encodings. [Fix GH-1250] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53885 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* cgi/escape: Optimize CGI.unescapeHTMLnobu2016-02-212-0/+134
| | | | | | | * cgi/escape/escape.c: Optimize CGI.unescapeHTML performance by C ext for ASCII-compatible encodings. [Fix GH-1242] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53884 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2016-02-21svn2016-02-211-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53883 b2dd03c8-39d4-4d8f-98ff-823fe69b080e