Commit graph

42848 commits

Author SHA1 Message Date
nobu
f6347e38e3 parse.y: cr_seen flag
* parse.y (parser_params): turn last_cr_line into cr_seen flag.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53988 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-03 07:42:32 +00:00
nobu
7c89ca5431 ostruct.rb: make internal methods private
* lib/ostruct.rb (modifiable?, new_ostruct_member!, table!):
  rename methods for internal use with suffixes and make private,
  [ruby-core:71069] [Bug #11587]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-03 05:09:02 +00:00
svn
09fefc2e20 * 2016-03-03
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-03 03:08:53 +00:00
nobu
80a8390c53 test/unit: not return the cursor if verbose
* test/lib/test/unit.rb (update_status): do not return the cursor
  if verbose mode, not results and times to overwrite test names.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-03 03:08:52 +00:00
nobu
0534b970bc vm_eval.c: call method_missing by method entry
* vm_eval.c (method_missing): call by found method entry and get
  rid of searching the same method entry twice.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-02 07:28:50 +00:00
nobu
be8005b977 vm_eval.c: method_missing by method_missing
* vm_eval.c (vm_call0_body): calling method_missing method is
  method_missing().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-02 07:18:31 +00:00
nobu
61b9074ca6 test/unit: return the cursor
* test/lib/test/unit.rb (update_status): keep the cursor to the
  beginning of the line for each update, so that unexpected output
  like an error message will overwrite but not be concatenated to
  the status.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-02 07:03:22 +00:00
hsbt
a2845a44f8 * lib/xmlrpc.rb: Removed broken parser named XMLScanStreamParser.
It's not works with current Ruby version.
  [fix GH-1271][ruby-core:59588][Bug #9369]
* lib/xmlrpc/config.rb: ditto.
* lib/xmlrpc/parser.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-02 06:19:18 +00:00
hsbt
d8e3a92411 * lib/xmlrpc.rb: Removed broken parser named XMLTreeParser.
Required gem of its parser didn't compile on newer Ruby versions.
  [fix GH-1271][ruby-core:59590][Bug #9370]
* lib/xmlrpc/config.rb: ditto.
* lib/xmlrpc/parser.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-02 06:12:51 +00:00
svn
a400386dbe * 2016-03-02
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-01 15:00:55 +00:00
kazu
6d2c4e7b3f Fix pull request number [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-01 15:00:55 +00:00
nobu
58f7563dc6 vm_method.c: fix assertion
* vm_method.c (prepare_callable_method_entry): assert same
  condition only once for each case, not twice for module instance
  method.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-01 14:43:34 +00:00
svn
ab1a804569 * 2016-03-01
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-01 02:26:45 +00:00
nobu
baa43cd0c2 fileutils.rb: keyword arguments
* lib/fileutils.rb: use keyword arguments instead of option
  hashes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53975 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-03-01 02:26:44 +00:00
nobu
52bdb3ce02 fileutils.rb: LowMethods aliases
* lib/fileutils.rb (LowMethods): make alias methods instead of
  eval for each methods.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53974 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-29 12:22:17 +00:00
nobu
efa39c3dbd fileutils.rb: reduce private
* lib/fileutils.rb (Verbose, NoWrite, DryRun): make overridden
  methods private by each one calls.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-29 08:36:30 +00:00
nobu
6b3e5bb061 fileutils.rb: reduce public
* lib/fileutils.rb (Verbose, NoWrite, DryRun): make extended
  methods public by each one calls.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53972 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-29 08:36:29 +00:00
nobu
13dadf3f26 fileutils.rb: unify method definition style
* lib/fileutils.rb: Unify to coding-style for method definition.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-29 08:36:28 +00:00
nobu
c31d06eeb7 array.c: [DOC] remove trailing comma [ci skip]
* array.c (rb_ary_push_m): [DOC] Remove trailing comma from
  Array#push example, as other Array examples doesn't put trailing
  comma.  [Fix GH-1279]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-29 07:51:15 +00:00
nobu
199e910602 mkconfig.rb: cross_compiling option
* common.mk, tool/mkconfig.rb: set cross_compiling option from
  Makefile, but not from rbconfig.rb, which is just going to be
  created by this command.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-29 07:31:56 +00:00
svn
06efc1da42 * 2016-02-29
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-29 05:54:25 +00:00
nobu
f7228ad8e4 ruby-style.el: add an instruction to load
[ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-29 05:54:24 +00:00
nobu
0927f83041 configure.in: fold summary
* configure.in: fold long lines in configuration summary

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-28 14:14:44 +00:00
nobu
7b91046b29 configure.in: summary
* configure.in: Add summary to end of configure output.
  [Fix GH-1277]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53965 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-28 14:14:42 +00:00
nobu
1a9bc87ab7 configure.in: no leading spaces
* configure.in (cflags, cppflags): remove unnecessary leading
  spaces.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-28 13:54:32 +00:00
svn
1b34bf1943 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-28 11:28:59 +00:00
seki
018f081233 * lib/drb/drb.rb (error_print): Add verbose failure messages and
avoid infamous DRb::DRbConnError. [Feature #12101]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-28 11:28:58 +00:00
nobu
4d9f5482ae NoMethodError#private_call?
* error.c (nometh_err_initialize): add private_call? parameter.
* error.c (nometh_err_private_call_p): add private_call? method,
  to tell if the exception raised in private form FCALL or VCALL.
  [Feature #12043]
* vm_eval.c (make_no_method_exception): append private_call?
  argument.
* vm_insnhelper.c (ci_missing_reason): copy FCALL flag.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53961 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-28 04:41:38 +00:00
nobu
74e5e61849 test_exception.rb: split test_name_error_info
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-28 01:39:30 +00:00
svn
60c8bfb3a1 * 2016-02-28
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-28 01:20:40 +00:00
nobu
491c44e984 Clarify set intersection and union documentation
* array.c (rb_ary_and): clarify that set intersection returns the
  unique elements common to both arrays.

* array.c (rb_ary_or): clarify that union preserves the order from
  the given arrays.

- Most know what intersection means, but saying the operation
  excludes duplicates could be misleading ([1] & [1], duplicates
  excluded, might mean a result of []).
- Instead, saying intersection returns the unique elements common to both
  arrays is more concise and less ambiguous.
- The set union's documentation was incomplete in its describing
  preservation of order. Saying union preserves the order of the
  original array neglects the idea that the order of the elements
  in both arrays, as given, will be preserved.
- Instead, saying set union preserves the order from the given arrays (and
  adding an example) fully demonstrates the idea.

[Fix GH-1273] [ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53958 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-28 01:20:39 +00:00
duerst
c4e6964141 * enc/unicode/case-folding.rb, casefold.h: Reducing size of TitleCase
table by eliminating duplicates.
  (with Kimihito Matsui)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-27 08:06:17 +00:00
nobu
bafa7f90ef test/unit: refine output in job_status=normal
* test/lib/test/unit.rb (Test::Unit::StatusLine#jobs_status): show
  status of only changed woker, not to show same lines repeatedly,
  in normal job_status mode.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53956 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-27 05:10:44 +00:00
nobu
de12196865 test/unit: fix for the test
* 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
2016-02-27 04:16:44 +00:00
nobu
9c55cb2e9e test/unit: refine output in verbose mode
* 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
2016-02-27 02:01:57 +00:00
nobu
fea80948c7 test/unit: add --jobs-status=none
* 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-27 01:56:44 +00:00
svn
97d90a7e3e * 2016-02-27
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53952 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-27 01:56:44 +00:00
nobu
0783358dcc test/unit: no newlines to be chomped
* 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
2016-02-27 01:56:43 +00:00
nobu
b3177141bf README.md: fix linked file name [ci skip]
* 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
2016-02-26 07:18:26 +00:00
nobu
60dad06d53 numeric.c: wrong type step should raise TypeError
* 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
2016-02-26 05:41:37 +00:00
nobu
a12e8fd2ed doc: editor local variables [ci skip]
* 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
2016-02-26 05:40:28 +00:00
hsbt
d7c46522fc * doc/extension.ja.rdoc: removed rendering error caused by editor specific
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
2016-02-26 03:26:55 +00:00
hsbt
0676ce8739 * lib/xmlrpc.rb: Removed references to NQXML. It's obsoleted parser.
[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
2016-02-26 02:25:40 +00:00
hsbt
379c3b8b24 * lib/tmpdir.rb: Unify to coding-style for method definition.
[fix GH-1252]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-26 02:11:14 +00:00
hsbt
49f17cc6a3 * README.md: update markdown syntax for anchor tag.
[fix GH-1265] Patch by @lukBarros

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-26 02:03:03 +00:00
hsbt
966e020add * lib/irb.rb: avoid to needless truncation when using back_trace_limit option.
[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-26 01:57:58 +00:00
svn
7a35ffeccd * 2016-02-26
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-25 23:23:31 +00:00
tenderlove
4102031164 Reduce system calls by activating the did_you_mean gem.
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
2016-02-25 23:23:30 +00:00
nobu
5fa5b50e58 eval_error.c: constify
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53940 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-02-25 12:36:25 +00:00
nobu
37d6a4dd99 eval_error.c: remove warn_printf
* 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
2016-02-25 12:36:24 +00:00