summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-06-19Fix failure on mswin CIKazuhiro NISHIYAMA
https://rubyci.org/logs/mswinci.japaneast.cloudapp.azure.com/vc12-x64/ruby-master/log/20200619T054159Z.fail.html.gz ``` 1) Failure: WEBrick::TestFileHandler#test_cjk_in_path [D:/tmp/mswin-build20200619-14304-utgij/ruby/test/webrick/utils.rb:72]: exceptions on 2 threads: webrick log start: [2020-06-19 16:28:42] ERROR `/あ.txt' not found. webrick log end Filesystem encoding is Windows-31J. <"200"> expected but was <"404">. --- <[]> expected but was <["[2020-06-19 16:28:42] ERROR `/\xE3\x81\x82.txt' not found.\n"]>. ``` `prevent_directory_traversal` treats `path_info` as filesystem encoding. So path_info should be filesystem encoding in request URL. On some environments, fallback to ASCII-8BIT when EncodingError.
2020-06-19Hide error location from error messageKazuhiro NISHIYAMA
2020-06-19[Feature #16254] Use `Primitive.func` styleNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3165
2020-06-19[Feature #16254] Allow `Primitive.func` styleNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3165
2020-06-19[Feature #16254] Use `__builtin.func` styleNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3165
2020-06-19[Feature #16254] Allow `__builtin.func` styleNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/3165
2020-06-19Build configured extension libraries onlyNobuyoshi Nakada
Consider the libraries, which remain exts.mk but not listed in ext/configure-ext.mk, removed.
2020-06-19Configure only directories having extconf.rbNobuyoshi Nakada
2020-06-19Now bundled gems are extracted under .bundle/gemsNobuyoshi Nakada
2020-06-19Clean exts.mk under each extension libraryNobuyoshi Nakada
2020-06-19test/ruby/test_refinement.rb: suppress warning yb $VEROBSE = nilYusuke Endoh
http://rubyci.s3.amazonaws.com/ubuntu2004/ruby-master/log/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-19Revert accidentally style-formatHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3234
2020-06-19Added sdbm entry to NEWSHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3234
2020-06-19Removed sdbm entries from docHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3234
2020-06-19Removed sdbm entries from toolchaninsHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3234
2020-06-19Removed sdbm and it testsHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3234
2020-06-18[open3] only close streams if a block is passedJean Boussier
Ref: 5429deb075beb9a2b67adae269bbac16325876d1 The previous change totally borke `popen2e` in this usage: ```ruby require 'open3' stdin, stdout, process = Open3.popen2e("cat") puts stdout.read ``` Notes: Merged: https://github.com/ruby/ruby/pull/3236
2020-06-19Add links [ci skip]Kazuhiro NISHIYAMA
2020-06-19test/webrick/test_httpresponse.rb: Use a longer indicator for crackYusuke Endoh
"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. https://github.com/ruby/ruby/runs/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-18Update NEWS.md [ci skip]Jeremy Evans
2020-06-18Allow refining a frozen classJeremy Evans
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] Notes: Merged: https://github.com/ruby/ruby/pull/3175
2020-06-18Raise RuntimeError for class variable overtaken in nonverbose modeJeremy Evans
900e83b50115afda3f79712310e4cb95e4508972 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] Notes: Merged: https://github.com/ruby/ruby/pull/3210
2020-06-18Dup splat array in certain cases where there is a block argumentJeremy Evans
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] Notes: Merged: https://github.com/ruby/ruby/pull/3157
2020-06-19* 2020-06-19 [ci skip]git
2020-06-18Make Module#prepend affect the iclasses of the moduleJeremy Evans
3556a834a2847e52162d1d3302d4c64390df1694 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 ad729a1d11c6c57efd2e92803b4e937db0f75252 and 98286e9850936e27e8ae5e4f20858cc9c13d2dde, and now adding support for it is straightforward and does not break any tests or specs. Fixes [Bug #9573] Notes: Merged: https://github.com/ruby/ruby/pull/3181
2020-06-18lib/webrick/httpservlet/filehandler.rb: always handle a path as UTF-8Yusuke Endoh
https://rubyci.org/logs/mswinci.japaneast.cloudapp.azure.com/vc12-x64/ruby-master/log/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-18NEWS about Hash#except ENV#except [Feature #15822]Nobuyoshi Nakada
2020-06-18Add Hash#except ENV#except [Feature #15822]Timo Schilling
2020-06-18[ci skip] Enhanced RDoc for Array (#3224)Burdette Lamar
Methods: #to_a #to_h #to_ary #reverse! #reverse Notes: Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>
2020-06-18[rubygems/rubygems] Disable parallel installation by default on WindowsDavid Rodríguez
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. https://github.com/rubygems/rubygems/commit/5d8ab57131 Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18[rubygems/rubygems] Remove unused methodDavid Rodríguez
https://github.com/rubygems/rubygems/commit/b1b39b8c06 Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18[rubygems/rubygems] Make sure to pass URI's to `:git`David Rodríguez
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. https://github.com/rubygems/rubygems/commit/b6bc517628 Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18[rubygems/rubygems] Better skip messagesDavid Rodríguez
https://github.com/rubygems/rubygems/commit/4f519638ae Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18[rubygems/rubygems] More portable PATH editionDavid Rodríguez
https://github.com/rubygems/rubygems/commit/a6d50afad0 Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18[rubygems/rubygems] Only add .rubocop.yml when --rubocop flag is passedUtkarsh Gupta
Signed-off-by: Utkarsh Gupta <utkarsh@debian.org> https://github.com/rubygems/rubygems/commit/ef2dae4222 Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18Ship default .rubocop.ymlUtkarsh Gupta
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> Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18[rubygems/rubygems] Only add .rubocop.yml when --rubocop flag is passedUtkarsh Gupta
Signed-off-by: Utkarsh Gupta <utkarsh@debian.org> https://github.com/rubygems/rubygems/commit/ef2dae4222 Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18Rename hidden templatesDavid Rodríguez
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`. Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18Undeprecate the `--no-cache` flagDavid Rodríguez
This is not a remembered option, so it shouldn't have been deprecated. At least not for that reason. Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18Removed the old file with https://github.com/rubygems/rubygems/pull/3667Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18s/sys_exec!/sys_execDavid Rodríguez
Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18[rubygems/rubygems] Remove now unused "bang helpers"David Rodríguez
https://github.com/rubygems/rubygems/commit/84e4c58e83 Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18[rubygems/rubygems] s/run!/runDavid Rodríguez
https://github.com/rubygems/rubygems/commit/e3f60d8aec Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18[rubygems/rubygems] s/ruby!/rubyDavid Rodríguez
https://github.com/rubygems/rubygems/commit/a73fa0760e Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18[rubygems/rubygems] s/gem_command!/gem_commandDavid Rodríguez
https://github.com/rubygems/rubygems/commit/f52733f6a4 Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18[rubygems/rubygems] s/install_gemfile!/install_gemfileDavid Rodríguez
https://github.com/rubygems/rubygems/commit/4d1a0c465a Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18[rubygems/rubygems] s/bundle!/bundleDavid Rodríguez
https://github.com/rubygems/rubygems/commit/746a4b3d74 Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18Generalize CI templatesFrank Lam
Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18Use consistent filenaming for Travis templateFrank Lam
Notes: Merged: https://github.com/ruby/ruby/pull/3212
2020-06-18Update github workflow templateFrank Lam
* https://github.com/ruby/setup-ruby is now the more recommended action Notes: Merged: https://github.com/ruby/ruby/pull/3212