Commit graph

64552 commits

Author SHA1 Message Date
Nobuyoshi Nakada
d863f4bccd [Feature #16254] Use __builtin.func style 2020-06-19 18:46:55 +09:00
Nobuyoshi Nakada
c8703a17ce [Feature #16254] Allow __builtin.func style 2020-06-19 18:46:55 +09:00
Nobuyoshi Nakada
f3e081c6b6
Build configured extension libraries only
Consider the libraries, which remain exts.mk but not listed in
ext/configure-ext.mk, removed.
2020-06-19 15:35:14 +09:00
Nobuyoshi Nakada
aa21a775a6
Configure only directories having extconf.rb 2020-06-19 15:13:59 +09:00
Nobuyoshi Nakada
1e7c0ccb0d
Now bundled gems are extracted under .bundle/gems 2020-06-19 14:02:46 +09:00
Nobuyoshi Nakada
0d38a51ec4
Clean exts.mk under each extension library 2020-06-19 12:07:19 +09:00
Yusuke Endoh
946fdeaddc test/ruby/test_refinement.rb: suppress warning yb $VEROBSE = nil
20200619T003004Z.log.html.gz
```
/home/chkbuild/chkbuild/tmp/build/20200619T003004Z/ruby/test/ruby/test_refinement.rb:2428: warning: method redefined; discarding old foo
/home/chkbuild/chkbuild/tmp/build/20200619T003004Z/ruby/test/ruby/test_refinement.rb:2418: warning: previous definition of foo was here
```
2020-06-19 10:45:13 +09:00
Hiroshi SHIBATA
d76296d8bb Revert accidentally style-format 2020-06-19 08:26:47 +09:00
Hiroshi SHIBATA
e92a9399cc Added sdbm entry to NEWS 2020-06-19 08:26:47 +09:00
Hiroshi SHIBATA
70b8bdbc90 Removed sdbm entries from doc 2020-06-19 08:26:47 +09:00
Hiroshi SHIBATA
16854c95c2 Removed sdbm entries from toolchanins 2020-06-19 08:26:47 +09:00
Hiroshi SHIBATA
343ad9eff5 Removed sdbm and it tests 2020-06-19 08:26:47 +09:00
Jean Boussier
adbdf11f94 [open3] only close streams if a block is passed
Ref: 5429deb075

The previous change totally borke `popen2e` in this usage:

```ruby
require 'open3'
stdin, stdout, process = Open3.popen2e("cat")
puts stdout.read
```
2020-06-18 10:00:20 -07:00
Kazuhiro NISHIYAMA
42b4234ba4
Add links [ci skip] 2020-06-19 00:59:30 +09:00
Yusuke Endoh
26c1cf6a60 test/webrick/test_httpresponse.rb: Use a longer indicator for crack
"hack" was too short.  The tests checks the error html, which includes
hostname.  GitHub Actions hostname seems randomly generated, and it may
include the indicator string.

784896235
```
  1) Failure:
WEBrick::TestHTTPResponse#test_prevent_response_splitting_cookie_headers_cr [/home/runner/work/ruby/ruby/src/test/webrick/test_httpresponse.rb:71]:
Expected /hack/ to not match "HTTP/1.1 500 Internal Server Error\r\nContent-Type: text/html; charset=ISO-8859-1\r\n\r\n<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\">\n<HTML>\n  <HEAD><TITLE>Internal Server Error</TITLE></HEAD>\n  <BODY>\n    <H1>Internal Server Error</H1>\n    WEBrick::HTTPResponse::InvalidHeader\n    <HR>\n    <ADDRESS>\n     WEBrick/1.6.0 (Ruby/2.8.0/2020-06-18) at\n     fv-az89.dddawhu1s14uzpjkiz5fhackre.cx.internal.cloudapp.net:80\n    </ADDRESS>\n  </BODY>\n</HTML>\n".
```

This change uses longer indicator "cracked_indicator_for_test" instead.
2020-06-19 00:57:18 +09:00
Jeremy Evans
c0591b8477 Update NEWS.md [ci skip] 2020-06-18 08:47:02 -07:00
Jeremy Evans
b6d6b89615 Allow refining a frozen class
Doing so modifies the class's method table, but not in a way that should
be detectable from Ruby, so it may be safe to avoid checking if the
class is frozen.

Fixes [Bug #11669]
2020-06-18 08:22:40 -07:00
Jeremy Evans
95dc9c07f3 Raise RuntimeError for class variable overtaken in nonverbose mode
900e83b501 changed from a warning
to an error in this case, but the warning was only issued in
verbose mode, and therefore the error was only raised in verbose
mode.  That was not intentional, verbose mode should only change
whether warnings are emitted, not other behavior.  This issues
the RuntimeError in all cases.

This change broke a couple tests, as the tests actually issued
the warning and therefore now raise an error.  This wasn't caught
earlier as test_variable suppressed the warning in this case,
effectively setting $VERBOSE = false around the code that warned.
basictest isn't run in verbose mode and therefore didn't expose
the issue previously. Fix these tests.

Fixes [Bug #14541]
2020-06-18 08:21:29 -07:00
Jeremy Evans
aae8223c70 Dup splat array in certain cases where there is a block argument
This makes:

```ruby
  args = [1, 2, -> {}]; foo(*args, &args.pop)
```

call `foo` with 1, 2, and the lambda, in addition to passing the
lambda as a block.  This is different from the previous behavior,
which passed the lambda as a block but not as a regular argument,
which goes against the expected left-to-right evaluation order.

This is how Ruby already compiled arguments if using leading
arguments, trailing arguments, or keywords in the same call.

This works by disabling the optimization that skipped duplicating
the array during the splat (splatarray instruction argument
switches from false to true).  In the above example, the splat
call duplicates the array.  I've tested and cases where a
local variable or symbol are used do not duplicate the array,
so I don't expect this to decrease the performance of most Ruby
programs.  However, programs such as:

```ruby
  foo(*args, &bar)
```

could see a decrease in performance, if `bar` is a method call
and not a local variable.

This is not a perfect solution, there are ways to get around
this:

```ruby
  args = Struct.new(:a).new([:x, :y])
  def args.to_a; a; end
  def args.to_proc; a.pop; ->{}; end
  foo(*args, &args)
  # calls foo with 1 argument (:x)
  # not 2 arguments (:x and :y)
```

A perfect solution would require completely disabling the
optimization.

Fixes [Bug #16504]
Fixes [Bug #16500]
2020-06-18 08:19:33 -07:00
git
6439c939db * 2020-06-19 [ci skip] 2020-06-19 00:18:51 +09:00
Jeremy Evans
41582d5866 Make Module#prepend affect the iclasses of the module
3556a834a2 added support for
Module#include to affect the iclasses of the module.  It didn't add
support for Module#prepend because there were bugs in the object model
and GC at the time that prevented it.  Those problems have been
addressed in ad729a1d11 and
98286e9850, and now adding support for
it is straightforward and does not break any tests or specs.

Fixes [Bug #9573]
2020-06-18 08:18:31 -07:00
Yusuke Endoh
750203c514 lib/webrick/httpservlet/filehandler.rb: always handle a path as UTF-8
20200618T113134Z.fail.html.gz
```
  1) Failure:
WEBrick::TestFileHandler#test_cjk_in_path [D:/tmp/mswin-build20200618-84004-1t0dh8f/ruby/test/webrick/utils.rb:72]:
exceptions on 2 threads:
webrick log start:
  [2020-06-18 22:18:07] ERROR `/??.txt' not found.

webrick log end
Filesystem encoding is Windows-31J.
<"200"> expected but was
<"404">.
```
2020-06-18 23:43:48 +09:00
Nobuyoshi Nakada
50c13eb718
NEWS about Hash#except ENV#except [Feature #15822] 2020-06-18 23:09:11 +09:00
Timo Schilling
82ca8c7303
Add Hash#except ENV#except [Feature #15822] 2020-06-18 22:47:32 +09:00
Burdette Lamar
a5bc0b8f8c
[ci skip] Enhanced RDoc for Array (#3224)
Methods:

    #to_a
    #to_h
    #to_ary
    #reverse!
    #reverse
2020-06-18 08:30:04 -05:00
David Rodríguez
c5ee078c5f [rubygems/rubygems] Disable parallel installation by default on Windows
Since we enabled parallel installation by default, we've fixed all the
issues related to it that have come up, except for a Windows issue that
we haven't yet figured out. This issue is hit by our specs on a daily
basis and there's no reason to believe that it won't be hit by end users
in a similar way.

So, both to stop the testing flakyness and to prevent regressions in the
default behavior on Windows, I'd rather leave the default as it was
before on Windows for now.

5d8ab57131
2020-06-18 19:14:15 +09:00
David Rodríguez
7aa6fec45f [rubygems/rubygems] Remove unused method
b1b39b8c06
2020-06-18 19:14:15 +09:00
David Rodríguez
5f8ee14b9b [rubygems/rubygems] Make sure to pass URI's to :git
Passing paths should work in most cases, but on Windows the driver
letter is interpreted as the scheme and causes some case mismatches
because

```
irb> URI.parse("E:").to_s
=> "e:"
```

We fix this by passing file URI's instead.

b6bc517628
2020-06-18 19:14:15 +09:00
David Rodríguez
f217faf1da [rubygems/rubygems] Better skip messages
4f519638ae
2020-06-18 19:14:15 +09:00
David Rodríguez
414b1485d6 [rubygems/rubygems] More portable PATH edition
a6d50afad0
2020-06-18 19:14:15 +09:00
Utkarsh Gupta
22ee047f73 [rubygems/rubygems] Only add .rubocop.yml when --rubocop flag is passed
Signed-off-by: Utkarsh Gupta <utkarsh@debian.org>

ef2dae4222
2020-06-18 19:14:15 +09:00
Utkarsh Gupta
ec98d56153 Ship default .rubocop.yml
Currently, there is no `.rubocop.yml` shipped by default.
So when a user runs `rubocop` after creating a new gem via
`bundle gem foo`, it throws a bunch of offenses.

With the default `.rubocop.yml` present, the number of those
offenses significantly reduce by 25.

Signed-off-by: Utkarsh Gupta <utkarsh@debian.org>
2020-06-18 19:14:15 +09:00
Utkarsh Gupta
d9c888d394 [rubygems/rubygems] Only add .rubocop.yml when --rubocop flag is passed
Signed-off-by: Utkarsh Gupta <utkarsh@debian.org>

ef2dae4222
2020-06-18 19:14:15 +09:00
David Rodríguez
f9de8ccf1e Rename hidden templates
Because they don't play nice with ruby-core's gitignore and cause issues
with ruby-core integration.

Also, because it's consistent with other templates such as `gitignore.tt`.
2020-06-18 19:14:15 +09:00
David Rodríguez
30f9fbdce8 Undeprecate the --no-cache flag
This is not a remembered option, so it shouldn't have been deprecated.
At least not for that reason.
2020-06-18 19:14:15 +09:00
Hiroshi SHIBATA
be2dbfc5b5 Removed the old file with https://github.com/rubygems/rubygems/pull/3667 2020-06-18 19:14:15 +09:00
David Rodríguez
9cc7847849 s/sys_exec!/sys_exec 2020-06-18 19:14:15 +09:00
David Rodríguez
77df7ccc10 [rubygems/rubygems] Remove now unused "bang helpers"
84e4c58e83
2020-06-18 19:14:15 +09:00
David Rodríguez
ea4824ee0f [rubygems/rubygems] s/run!/run
e3f60d8aec
2020-06-18 19:14:15 +09:00
David Rodríguez
596588c697 [rubygems/rubygems] s/ruby!/ruby
a73fa0760e
2020-06-18 19:14:15 +09:00
David Rodríguez
a572e78201 [rubygems/rubygems] s/gem_command!/gem_command
f52733f6a4
2020-06-18 19:14:15 +09:00
David Rodríguez
696a50751b [rubygems/rubygems] s/install_gemfile!/install_gemfile
4d1a0c465a
2020-06-18 19:14:15 +09:00
David Rodríguez
1436b5026c [rubygems/rubygems] s/bundle!/bundle
746a4b3d74
2020-06-18 19:14:15 +09:00
Frank Lam
481840ff18 Generalize CI templates 2020-06-18 19:14:15 +09:00
Frank Lam
1cb88eb2ba Use consistent filenaming for Travis template 2020-06-18 19:14:15 +09:00
Frank Lam
9292313e0c Update github workflow template
* https://github.com/ruby/setup-ruby is now the more recommended action
2020-06-18 19:14:15 +09:00
Frank Lam
90f3591744 Update CI templates
* Next version of Bundler will auto choose jobs by default
* --retry 3 is already default
2020-06-18 19:14:15 +09:00
Frank Lam
a1a5973daa [rubygems/rubygems] Prefer using bundle! to avoid unnecessary swallowing of errors
6bac832a58
2020-06-18 19:14:15 +09:00
Frank Lam
1a9a4f962e [rubygems/rubygems] Fix nonexistent constant in CircleCI template
Co-authored-by: David Rodríguez <deivid.rodriguez@riseup.net>
851f8afad1
2020-06-18 19:14:15 +09:00
Frank Lam
f6c8ca0359 [rubygems/rubygems] Move already configured --test hint to before test file creation
9e5f7a9099
2020-06-18 19:14:15 +09:00