47866 Commits

Author SHA1 Message Date
nobu
90048176cc Make Time.parse respect timezone offset seconds
DateTime.parse handles them correctly, and DateTime.parse.to_time
results in the correct time.  Time.parse doesn't handle them
correctly because Time.zone_offset uses a different regexp that
only considers hours and minutes, not seconds.
[ruby-core:83400] [Bug #14034]

From: Jeremy Evans <code@jeremyevans.net>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-20 01:03:18 +00:00
nobu
f16f0441d6 ruby.c: reject NUL in $0
* ruby.c (ruby_setproctitle): raise if the argument contains NUL
  char.  process title is a NUL-terminated string.
  [ruby-core:82425] [Bug #13829]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-19 11:24:03 +00:00
nobu
42c98194b3 freeze Complex and Rational
* complex.c (nucomp_s_new_internal, nucomp_loader): Complex
  instances are always frozen now.  [Feature #13983]

* rational.c (nurat_s_new_internal, nurat_loader): Rational
  instances are always frozen now.  [Feature #13983]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-19 10:58:08 +00:00
nobu
8b501f6d7f parse.y: indent at '#'
* parse.y (parser_here_document): update indent at '#', which is
  not a space.  [ruby-core:83368] [Bug #14032]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-19 05:10:38 +00:00
nobu
0e7936f896 lexer.rb: no dedent strings in middle
* ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): dedent only
  strings at the beginning, not strings in middle.
  [ruby-core:83343] [Bug #14027]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60212 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-19 04:25:30 +00:00
normal
cda27e1a6d webrick: fix up r60172 and r60210
Thanks to MSP-Greg (Greg L) for helping with this.

* lib/webrick/server.rb (start_thread): properly fix non-local return
  introduced in r60208 and r60210

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60211 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-18 23:34:02 +00:00
normal
834c252e5e webrick: fix up r60172 and r60208
Thanks to MSP-Greg (Greg L) for helping with this.

* lib/webrick/server.rb (start_thread): fix non-local return
  introduced in r60208

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60210 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-18 23:23:33 +00:00
svn
607021881c * 2017-10-19
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60209 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-18 21:45:35 +00:00
normal
3b1db7d319 webrick: fix up r60172 and revert r60189
Thanks to MSP-Greg (Greg L) for helping with this.

* lib/webrick/server.rb (start_thread): ignore ECONNRESET, ECONNABORTED,
  EPROTO, and EINVAL on TLS negotiation errors the same way they
  were ignored before r60172 in the accept_client method of the
  main acceptor thread.
  [Bug #14013] [Bug #14005]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60208 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-18 21:45:34 +00:00
nobu
4a375f3ef5 parse.y: serial comparisons
* parse.y (rel_expr): warn sequence of comparisons, which would be
  probably unintentional.  [EXPERIMENTAL]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60207 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-18 13:08:53 +00:00
nobu
c1c3d07332 parse.y: relop
* parse.y (relop): extract to simplify comparisons.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60206 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-18 13:08:53 +00:00
svn
05fee6c108 * 2017-10-18
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60205 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-18 04:35:27 +00:00
nobu
20685cdc85 Get rid of shadowing local variables
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-18 04:35:25 +00:00
nobu
593d978646 tempfile.rb: [DOC] all arguments [ci skip]
* lib/tempfile.rb (Tempfile.create): mention the other arguments
  too.  [ruby-core:83321] [Misc #14019]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60203 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-17 12:40:00 +00:00
nobu
ecf61fa5b0 node.c: all node types
* node.c (dump_node): moved rb_bug for unknown node outside to let
  unhandled node types be warned.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60202 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-17 12:30:12 +00:00
nobu
4e01c50774 node.c: adjust indent
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60201 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-17 12:30:11 +00:00
nobu
ee34bbbcbd compile.c: compile_for
* compile.c (compile_for): extract from iseq_compile_each.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-17 12:05:32 +00:00
nobu
e0ef514a35 compile.c: compile_iter
* compile.c (compile_iter): extract from iseq_compile_each.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-17 12:05:30 +00:00
kazu
73d128ff2c Fix warning: assigned but unused variable
[Bug #14020][ruby-core:83313]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60198 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-17 11:58:51 +00:00
mame
c5fd4cd732 Improve some annotation names of output of parsetree-with-comment
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60197 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-17 11:38:16 +00:00
yui-knk
0c8292cb1b node.c: Add NODE_OP_CDECL to dump node list.
* node.c (dump_node): Add NODE_OP_CDECL to dump node list.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60196 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-17 11:13:53 +00:00
mame
2075bc5178 Fix the leak in TestRDocGeneratorDarkfish#test_generated_method_with_html_tag_yield
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60195 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-17 07:41:04 +00:00
mame
16b6fe17a3 Suppress leak of file descriptors
`Bundler.ui=` in `Gem::TestCase#setup` creates `Bundler::UI::RGProxy`
which inherites `::Gem::SilentUI` whose `initialize` opens `/dev/null`,
and assigns it to `Gem::DefaultUserInteraction.ui`.
After that, `Gem::TestCase#setup` forces to overwrite
`Gem::DefaultUserInteraction.ui` with a mock.
Thus, the instance of `::Gem::SilentUI` is not closed, which leads to
the leak.

This commit keeps `Gem::DefaultUserInteraction.ui` and manually close it
in `teardown`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60194 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-17 07:41:03 +00:00
nobu
6b4cd8a996 Layout fixes in rdoc of lib/tempfile.rb [ci skip]
RDoc doesn't understand an asterisk inside the plus markers. Moving them
out of the markers looks better.
[Fix GH-1716]

From:    Herwin Weststrate <herwinw@herwinw.nl>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-16 23:11:40 +00:00
svn
dc8865e8a3 * 2017-10-17
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60192 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-16 19:42:34 +00:00
normal
00308ec014 spec/ruby/optional/capi/io_spec.rb: speling fics
* spec/ruby/optional/capi/io_spec.rb: speling: s/writeable/writable/

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60191 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-16 19:42:33 +00:00
nobu
90ab739ae4 configure.ac: fix SOEXT on Windows
* configure.ac (SOEXT): shoud be "dll" on Windows.
  [ruby-core:83208] [Bug #14002]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-16 05:00:21 +00:00
normal
525ebb862e webrick: fix up r60172
By making the socket non-blocking in r60172, TLS/SSL negotiation
via the SSL_accept function must handle non-blocking sockets
properly and retry on SSL_ERROR_WANT_READ/SSL_ERROR_WANT_WRITE.
OpenSSL::SSL::SSLSocket#accept cannot do that properly with a
non-blocking socket, so it must use non-blocking logic of
OpenSSL::SSL::SSLSocket#accept_nonblock.

Thanks to MSP-Greg (Greg L) for finding this.

* lib/webrick/server.rb (start_thread): use SSL_accept properly
  with non-blocking socket.
  [Bug #14013] [Bug #14005]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60189 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-16 04:33:53 +00:00
nobu
885c16c1d6 test_complex.rb: NaN Complex
* test/ruby/test_complex.rb (test_finite_p): assertions for NaN
  Complex.  NaN is not an infinite nor a finite number.
  [ruby-core:83272] [Bug #14014]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60188 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-16 04:19:48 +00:00
nobu
ae0eea21bf fix missing variables in ruby.pc
* configure.ac (LIBRUBY_SO): get rid of referrence to
  LIBRUBY_SONAME which is not present in ruby.pc.

* template/ruby.pc.in (RUBY_API_VERSION, SOEXT): add new
  variables.  [ruby-core:83208] [Bug #14002]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60187 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-16 04:15:19 +00:00
svn
653263d04b * 2017-10-16
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60186 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-15 16:05:07 +00:00
nobu
1ebb148abc error.c: [DOC] fix typo [ci skip]
* error.c (RuntimeError): example code uses Kernel#raise instance
  method, not Kernel.raise singleton method.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60185 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-15 16:05:06 +00:00
nobu
b625191054 configure.ac: fix SONAME
* configure.ac (RUBY_SO_NAME): revert $(RUBY_API_VERSION:.=) to
  $(MAJOR)$(MINOR), as a string in middle is not replaced.
  [ruby-core:83208] [Bug #14002]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60184 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-15 02:31:29 +00:00
nobu
b1ef4d8096 envutil.rb: precommand in invoke_ruby [ci skip]
* test/lib/envutil.rb (invoke_ruby): add precommand option to
  invoke ruby via some other commands, e.g., sudo.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-15 02:20:20 +00:00
nobu
8b182a7f7d configure.ac: link Foundation framework
* configure.ac (XLDFLAGS): link against Foundation framework and
  let __NSPlaceholderDictionary initialize, to get rid of crash
  after fork on macOS High Sierra.  [ruby-core:83239] [Bug #14009]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60182 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-14 15:55:14 +00:00
svn
52fcf03d13 * 2017-10-15
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60181 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-14 15:35:06 +00:00
nobu
c739150c1e configure.ac: LIBRUBY_SONAME
* configure.ac (LIBRUBY_SONAME): add new variable for the name of
  the library name with compatibility version.
  [ruby-core:83208] [Bug #14002]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-14 15:35:05 +00:00
nobu
25aec0b835 distinguish pass and fail by highlight [ci skip]
* tool/colorize.rb: remove highlight attribute from "pass" to make
  distinguishable from "fail" by other than red-green colors.

* tool/ifchange: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60179 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-14 02:17:07 +00:00
svn
fa30274742 * 2017-10-14
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60178 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-14 01:59:48 +00:00
nobu
7402c35c49 configure.ac: no _objc_msgSend trick
* configure.ac (XLDFLAGS): _objc_msgSend is no longer needed to
  link CoreFoundation, that framework is always used for CFString
  functions.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60177 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-14 01:59:47 +00:00
nobu
41910c0d0e defines.h: warn EXTERN
* include/ruby/defines.h (EXTERN): warn as deprecated.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60176 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-13 08:29:52 +00:00
nobu
8a2a882e53 error.c: infinite recursion at Warning#warn
* error.c (rb_warn_m): write the message to rb_stderr directly, to
  get rid of infinite recursion when called on Warning module
  itself, by super in redefined Warning#warn.
  [ruby-dev:50293] [Bug #14006]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-13 01:34:52 +00:00
nobu
6a16d03365 rbinstall.rb: fix for --cmd-type=cmd
* tool/rbinstall.rb (PROLOG_SCRIPT): fix wrapper code for cmd
  script.  [Bug#13997]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60174 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-13 01:26:51 +00:00
svn
9c47bca667 * 2017-10-13
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-12 18:50:08 +00:00
normal
feafe07874 webrick: do not hang acceptor on slow TLS connections
OpenSSL::SSL::SSLSocket#accept may block indefinitely on clients
which negotiate the TCP connection, but fail (or are slow) to
negotiate the subsequent TLS handshake.  This prevents the
multi-threaded WEBrick server from accepting other connections.

Since the TLS handshake (via OpenSSL::SSL::SSLSocket#accept)
consists of normal read/write traffic over TCP, handle it in the
per-client thread, instead.

Furthermore, using non-blocking accept() is useful for non-TLS
sockets anyways because spurious wakeups are possible from
select(2).

* lib/webrick/server.rb (accept_client): use TCPServer#accept_nonblock
  and remove OpenSSL::SSL::SSLSocket#accept call
* lib/webrick/server.rb (start_thread): call OpenSSL::SSL::SSLSocket#accept
* test/webrick/test_ssl_server.rb (test_slow_connect): new test
  [ruby-core:83221] [Bug #14005]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60172 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-12 18:50:07 +00:00
nobu
e22f35ef2a rbinstall.rb: shell code as comments
* tool/rbinstall.rb (PROLOG_SCRIPT): wrap shell code by
  =begin/=end as comments.  [ruby-core:83202] [Bug#13997]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60171 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-12 07:27:16 +00:00
svn
f9749aa63c * 2017-10-12
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60170 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-12 01:38:07 +00:00
hsbt
d4c4878441 Removed unnecessary gem locking for avoiding test warnings.
It causes test failure: http://ci.rvm.jp/results/trunk@P895/111404

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60169 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-12 01:38:07 +00:00
kazu
cacca7cf13 Sync .gitignore and svn:ignore [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60167 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-11 12:07:39 +00:00
sonots
9bad616b33 * .gitignore: ignore exe/ruby and exe/.time instead of bin/ruby
because bin/ruby was renamed as exe/ruby at r59937.

follow-up: [Bug #13911]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60166 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-11 11:39:15 +00:00