45612 Commits

Author SHA1 Message Date
nobu
ca3fe508c9 Makefile.in: clean ruby-runner [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-21 06:17:07 +00:00
kazu
121984da8e Remove deprecated rbconfig/datadir
This is deleted at
0e3c2c1f04
in upstream.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-20 13:33:06 +00:00
nobu
ef31fedd09 extmk.rb: ignore generated sources
* ext/extmk.rb (extract_makefile): ignore generated source files
  not to reconfigure when in-place build.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-20 10:59:47 +00:00
shyouhei
abae70d6ed SecureRandom should try /dev/urandom first [Bug #9569]
* random.c (InitVM_Random): rename Random.raw_seed to
	  Random.urandom.  A quick search seems there are no practical use
	  of this method than securerandom.rb so I think it's OK to rename
	  but if there are users of it, this hunk is subject to revert.

	* test/ruby/test_rand.rb (TestRand#test_urandom): test for it.

	* lib/securerandom.rb (SecureRandom.gen_random): Prefer OS-
	  provided CSPRNG if available. Otherwise falls back to OpenSSL.
	  Current preference is:

	  1. CSPRNG routine that the OS has; one of
	     - getrandom(2),
	     - arc4random(3), or
	     - CryptGenRandom()
	  2. /dev/urandom device
	  3. OpenSSL's RAND_bytes(3)

	  If none of above random number generators are available, you
	  cannot use this module.  An exception is raised that case.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-20 08:00:00 +00:00
nobu
e95eb9584a Keep -jN option
* {cygwin,template}/GNUmakefile.in (MFLAGS, MAKEFLAGS): keep -jN
  option.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-20 07:45:10 +00:00
shyouhei
04c94f95d1 switch SipHash from SipHash24 to SipHash13 variant
SipHash13 is secure enough to be used in hash-tables,
and SipHash's author confirms that.
Rust already considered switch to SipHash13:
  https://github.com/rust-lang/rust/issues/29754#issue-116174313
Jean-Philippe Aumasson confirmation:
  https://github.com/rust-lang/rust/issues/29754#issuecomment-156073946
Merged pull request:
  https://github.com/rust-lang/rust/pull/33940

From: Sokolov Yura aka funny_falcon <funny.falcon@gmail.com>
Date: Thu, 8 Dec 2016 20:31:29 +0300
Signed-off-by: Urabe, Shyouhei <shyouhei@ruby-lang.org>
Fixes: [Feature #13017]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-20 06:01:23 +00:00
nobu
f81c1c24b8 compile.c: optimization of defined? in condition
* compile.c (compile_branch_condition): trivial optimization of
  defined? expression in a branch condition, where a string is not
  needed, but just a boolean.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-20 04:27:55 +00:00
nobu
2de1dbdffc array.c: improve Array#sample
* array.c (rb_ary_sample): improve performance when many samples
  from a large array.  based on the patch by tomoya ishida
  <tomoyapenguin AT gmail.com> in [ruby-dev:49956].  [Bug #13136]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-20 02:39:27 +00:00
nobu
8f76ad3795 benchmarks for Bug#13136
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-20 02:27:28 +00:00
svn
dfac1f5a61 * 2017-01-20
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-20 01:02:38 +00:00
nobu
1d4976c0cf error.c: print default RS
* error.c (rb_warn_m): print the default RS instead of an empty
  string with a newline.  [Feature #12944]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-20 01:02:37 +00:00
nobu
0ec889d7ed parse.y: rescue/else/ensure in do-end
* parse.y (do_body): allow rescue/else/ensure inside do/end
  blocks.  [Feature #12906]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57376 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-19 09:54:58 +00:00
naruse
f34d0ba3eb More description about the protected attribute of a method
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-19 09:34:30 +00:00
shugo
d33726b837 string.c: rindex(//) should set $~.
This seems a bug introduced by r520 (1.4.0).  [ruby-core:79110] [Bug #13135]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-19 08:13:03 +00:00
nobu
af9a151f0b parse.y: chomp by -l
* parse.y (rb_parser_while_loop): should chomp but not chop by -l
  option.  [ruby-core:78099] [Bug #12926]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-19 07:18:23 +00:00
hsbt
18a315df43 Fix documentation of options for all of methods in FileUtils.
Patch by galia traub( @galiat ). [Fix GH-1510][ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-19 07:07:17 +00:00
nobu
c59e739b02 ENV#fetch: fix documentation of raised exception
[Fix GH-1514]
Author:    Misty De Meo <mistydemeo@github.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-19 06:39:44 +00:00
nobu
50db992a6a Change Kernel#warn to call Warning.warn
This allows Warning.warn to filter/process warning messages
generated by Kernel#warn.  Currently, Warning.warn can only handle
messages generated by the rb_warn/rb_warning C functions.

The Kernel#warn API is different than the Warning.warn API, this
tries to get similar behavior, but there are probably corner cases
where the behavior is different.

This makes str_end_with_asciichar in io.c no longer static so it
can be called from error.c.

[Feature #12944]
Author:    Jeremy Evans <code@jeremyevans.net>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57370 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-19 06:25:06 +00:00
nobu
00ed779cb0 id_table.c: fix typo
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57369 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-19 05:24:34 +00:00
nobu
d6fc7d43d7 compile.c: check err_info
* compile.c (iseq_setup): bail out if any errors found.
  [ruby-core:76531] [Bug #12613]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-19 03:42:07 +00:00
nobu
6dccc53368 parse.y: warn space
* parse.y (parser_yylex): warn parentheses after space.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-19 01:38:59 +00:00
svn
f850b2957d * 2017-01-19
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57366 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-18 18:23:49 +00:00
svn
bb8f5b2312 * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-18 18:23:49 +00:00
normal
e7bd5b8810 another benchmark for IO.copy_stream socket writing
For testing Linux socket-only workaround for
https://bugs.ruby-lang.org/issues/13085

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-18 18:23:49 +00:00
kazu
e527695d50 lib/profiler.rb: Specify frozen_string_literal: true.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57363 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-18 12:35:10 +00:00
nobu
b38823ceca vm_method.c: resolve refined method to undef
* vm_method.c (rb_undef): resolve the method entry which refines a
  prepended method entry.  [ruby-core:78944] [Bug #13096]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57362 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-18 05:23:53 +00:00
svn
54a77d2044 * 2017-01-18
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-18 03:38:53 +00:00
nobu
13dffd8a2a class.c: non-keyword hash class
* class.c (rb_extract_keywords): keep the class of non-keyword
  elements hash as the original.  [ruby-core:77813] [Bug #12884]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57360 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-18 03:38:52 +00:00
nobu
556e3da421 uri/generic.rb: fix exception on non-IP format
* lib/uri/generic.rb (URI::Generic#find_proxy): match IP address
  no_proxy against resolved self IP address.  [Fix GH-1513]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-17 12:54:35 +00:00
kazu
2a9dd6b818 lib/pstore.rb: Specify frozen_string_literal: true.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-17 12:47:38 +00:00
normal
22908245ef rinda/ring.rb (make_socket): do not keep socket on failures
This prevents leaked FD warnings on test/rinda/test_rinda.rb
when testing on a machine without multicast support.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-17 03:31:57 +00:00
normal
a34f9c7e9a basicsocket (rsock_bsock_send): do not truncate return value
send(2) and sendto(2) syscalls return `ssize_t', use the
proper type and macro for converting to a Numeric VALUE.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57354 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-16 21:42:05 +00:00
svn
650a8ce839 * 2017-01-17
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57353 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-16 21:08:13 +00:00
normal
103a6a4cbd doc: improve documentation for Binding [ci skip]
* remove explicit return from code examples
* grammar fixes
* other small fixes

Patch by: Marcus Stollsteimer <sto.mar@web.de>

[ruby-core:79082] [Bug #13132]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57352 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-16 21:08:12 +00:00
kazu
8e0ff63f22 Fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-16 12:37:42 +00:00
nobu
4c02194216 test_rational.rb: messages
* test/ruby/test_rational.rb (test_parse): add messages to
  assertions.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57338 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-16 02:56:28 +00:00
svn
edcec2b44a * 2017-01-16
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57337 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-16 02:43:56 +00:00
nobu
803621f6d7 file.c: refine message
* file.c (rb_get_path_check_convert): refine the error message
  when the path name contains null byte.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-16 02:43:55 +00:00
a_matsuda
992b0148ca s/SaveStringValue/SafeStringValue/
Fix a typo in extension.rdoc.

Signed-off-by: Akira Matsuda <ronnie@dio.jp>

closes #1512

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57335 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-15 13:45:12 +00:00
nobu
53a1b9f28f .gdbinit: refine rp [ci skip]
* .gdbinit (rp, output_string, rp): show the contents after NUL
  char.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-15 06:08:09 +00:00
nobu
1d36a09d81 rbinstall.rb: mimic rubygems wrapper script
* tool/rbinstall.rb (app_script_text): move shell script part
  after comments generated by RubyGems. '#'-lines are comments in
  both of ruby and shell script.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57333 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-15 05:50:41 +00:00
kazu
710d9384e7 lib/profile.rb: Specify frozen_string_literal: true.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-15 02:56:04 +00:00
nobu
37a8a2a26e rbinstall.rb: do nothing if bin script is same
* tool/rbinstall.rb (check_executable_overwrite): do nothing if
  the existing file equals to the wrapper script to be generated.

* tool/rbinstall.rb (generate_bin_script): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57331 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-15 00:45:10 +00:00
svn
0255bac7b9 * 2017-01-15
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57330 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-14 23:09:56 +00:00
normal
eeb36c5c74 mention behavior of Array#join for nested arrays [ci skip]
The current documentation for Array#join does not mention the
special treatment of nested arrays.

It says:
> Returns a string created by converting each element of the
> array to a string, separated by the given separator.

Expected behavior according to the docs would be:

    [ "a", [1, 2, [:x, :y]], "b" ].join("-")  #=> "a-[1, 2, [:x, :y]]-b"
    # because of:
    [1, 2, [:x, :y]].to_s  #=> "[1, 2, [:x, :y]]"

Actual behavior:

    [ "a", [1, 2, [:x, :y]], "b" ].join("-")  #=> "a-1-2-x-y-b"

because join is applied recursively for nested arrays.

The patch clarifies this behavior.

(Also: small markup and grammar fix.)

Patch by Marcus Stollsteimer <sto.mar@web.de>

[ruby-talk:437238] [ruby-core:79079] [Bug #13130]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57329 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-14 23:09:55 +00:00
nobu
3408e9e3c3 revert r57323
StringIO.new makes the buffer IO.default_external, while
StringIO.new("".dup) makes source encoding which is defaulted to
UTF-8.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57328 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-14 09:38:56 +00:00
nobu
c850c4ad37 fix up r57322
* tool/rbinstall.rb: ruby_install_name is used too.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57327 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-14 06:13:23 +00:00
nobu
8b8505d239 resolv.rb: byte buffer
* lib/resolv.rb (Resolv::DNS::Message::MessageDecoder): treat the
  data as a byte buffer.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-14 02:26:49 +00:00
nobu
2b2450ba4b Made #decode_rdata client to catch errors
* lib/resolv.rb (Resolv::DNS::Message::MessageDecoder#get_rr):
  re-raise an exception from decode_rdata as DecodeError, so it
  can report them to the top in more informative way.  It was not
  reflecting on errors of data and thus breaking.  Client code
  expects `DecodeError` and knows how to handle broken messages.
  [Fix GH-1511]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57325 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-14 02:26:48 +00:00
svn
af5eae4332 * 2017-01-14
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-14 02:06:23 +00:00