summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-06-21C-expression does not include a semicolonNobuyoshi Nakada
2020-06-21* 2020-06-21 [ci skip]git
2020-06-20Make Integer#zero? a separated method and builtin (#3226)Takashi Kokubun
A prerequisite to fix https://bugs.ruby-lang.org/issues/15589 with JIT. This commit alone doesn't make a significant difference yet, but I thought this commit should be committed independently. This method override was discussed in [Misc #16961]. Notes: Merged-By: k0kubun <[email protected]>
2020-06-20[ruby/date] Bump version to 3.0.1Hiroshi SHIBATA
https://github.com/ruby/date/commit/47cca1b76b
2020-06-20[ruby/date] Promote simple date to complex date to load fractional date ↵Nobuyoshi Nakada
(Fixes #20) https://github.com/ruby/date/commit/e022e8b3ce
2020-06-20[ruby/date] Fix cannot load complex into simple error when loading marshal ↵Jeremy Evans
dump (Fixes #20) This problem exists because Marshal.load calls Date.allocate, which uses a SimpleDateData. There doesn't seem to be any support for taking an existing Date instance and converting it from SimpleDateData to ComplexDateData. Work around this issue by making Date.allocate use a ComplexDateData. This causes problems in Date#initialize, so remove the Date#initialize method (keeping the date_initialize function, used internally for Date.civil). Alias Date.new to Date.civil, since they do the same thing. https://github.com/ruby/date/commit/6bb8d8fa0f
2020-06-20Removed space linesNobuyoshi Nakada
2020-06-20Remove unused variablesKazuki Tsujimoto
2020-06-20test/coverage/test_coverage.rb: Add a test for [Bug #16967]Yusuke Endoh
Notes: Merged: https://github.com/ruby/ruby/pull/3240
2020-06-20compile.c: Improve branch coverage instrumentation [Bug #16967]Yusuke Endoh
Formerly, branch coverage measurement counters are generated for each compilation traverse of the AST. However, ensure clause node is traversed twice; one is for normal-exit case (the resulted bytecode is embedded in its outer scope), and the other is for exceptional case (the resulted bytecode is used in catch table). Two branch coverage counters are generated for the two cases, but it is not desired. This changeset revamps the internal representation of branch coverage measurement. Branch coverage counters are generated only at the first visit of a branch node. Visiting the same node reuses the already-generated counter, so double counting is avoided. Notes: Merged: https://github.com/ruby/ruby/pull/3240
2020-06-20compile.c: pass NODE* instead of a quadruple of code locationYusuke Endoh
Notes: Merged: https://github.com/ruby/ruby/pull/3240
2020-06-20compile.c (branch_coverage_valid_p): Refactored outYusuke Endoh
Notes: Merged: https://github.com/ruby/ruby/pull/3240
2020-06-20compile.c: Use functions for building branch coverage instructionsYusuke Endoh
instead of maros. Just refactoring. Notes: Merged: https://github.com/ruby/ruby/pull/3240
2020-06-19Implement Proc#== and #eql?Jeremy Evans
Previously, these were not implemented, and Object#== and #eql? were used. This tries to check the proc internals to make sure that procs created from separate blocks are treated as not equal, but procs created from the same block are treated as equal, even when the lazy proc allocation optimization is used. Implements [Feature #14267] Notes: Merged: https://github.com/ruby/ruby/pull/3174
2020-06-20* 2020-06-20 [ci skip]git
2020-06-20Use section sign instead of Hiragana Letter AKazuhiro NISHIYAMA
It can convert to Windows-1252and Windows-31J. ``` "\u00a7".encode("Windows-1252") #=> "\xA7" "\u00a7".encode("Windows-31J") #=> "\x{8198}" ``` https://github.com/ruby/ruby/runs/788357527?check_suite_focus=true#step:14:959 ``` 1) Failure: WEBrick::TestFileHandler#test_cjk_in_path [D:/a/ruby/ruby/src/test/webrick/utils.rb:72]: exceptions on 2 threads: webrick log start: [2020-06-19 14:49:38] ERROR Encoding::CompatibilityError: incompatible character encodings: ASCII-8BIT and Windows-1252 D:/a/ruby/ruby/src/lib/webrick/httpservlet/filehandler.rb:341:in `+' D:/a/ruby/ruby/src/lib/webrick/httpservlet/filehandler.rb:341:in `set_filename' D:/a/ruby/ruby/src/lib/webrick/httpservlet/filehandler.rb:310:in `exec_handler' D:/a/ruby/ruby/src/lib/webrick/httpservlet/filehandler.rb:245:in `do_GET' D:/a/ruby/ruby/src/lib/webrick/httpservlet/abstract.rb:105:in `service' D:/a/ruby/ruby/src/lib/webrick/httpservlet/filehandler.rb:241:in `service' D:/a/ruby/ruby/src/lib/webrick/httpserver.rb:140:in `service' D:/a/ruby/ruby/src/lib/webrick/httpserver.rb:96:in `run' D:/a/ruby/ruby/src/lib/webrick/server.rb:307:in `block in start_thread' ```
2020-06-19Fix `ERROR ArgumentError: invalid byte sequence in UTF-8`Kazuhiro NISHIYAMA
http://ci.rvm.jp/results/trunk-test@ruby-sky1/3012894 ``` /tmp/ruby/v3/src/trunk-test/tool/lib/minitest/unit.rb:199:in `assert': webrick log start: (MiniTest::Assertion) [2020-06-19 23:01:59] ERROR ArgumentError: invalid byte sequence in UTF-8 /tmp/ruby/v3/src/trunk-test/lib/webrick/httpservlet/filehandler.rb:336:in `scan' /tmp/ruby/v3/src/trunk-test/lib/webrick/httpservlet/filehandler.rb:336:in `set_filename' /tmp/ruby/v3/src/trunk-test/lib/webrick/httpservlet/filehandler.rb:310:in `exec_handler' /tmp/ruby/v3/src/trunk-test/lib/webrick/httpservlet/filehandler.rb:245:in `do_GET' /tmp/ruby/v3/src/trunk-test/lib/webrick/httpservlet/abstract.rb:105:in `service' /tmp/ruby/v3/src/trunk-test/lib/webrick/httpservlet/filehandler.rb:241:in `service' /tmp/ruby/v3/src/trunk-test/lib/webrick/httpserver.rb:140:in `service' /tmp/ruby/v3/src/trunk-test/lib/webrick/httpserver.rb:96:in `run' /tmp/ruby/v3/src/trunk-test/lib/webrick/server.rb:307:in `block in start_thread' ```
2020-06-19Use filesystem encoding as FileHandler's encodingKazuhiro NISHIYAMA
instead of `@root.encoding`. And fallback to ASCII-8BIT when filesystem encoding is US-ASCII. When `@root.encoding` is not compatible filesystem encoding, `Encoding::CompatibilityError` raised at `webrick/httpservlet/filehandler.rb:341`. So `DocumentRoot` must be compatible with filesystem encoding.
2020-06-19Do not change local_path encoding in WEBrick::HTTPServlet::DefaultFileHandlerKazuhiro NISHIYAMA
This reverts 750203c514e0e9a49f7d53fb54084e6844fca42a and 93e6fa1d319d19ce7fba37e4b9924862447b9f38
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 <[email protected]>
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