summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Test PRmaximecb-patch-2Maxime Chevalier-Boisvert2021-10-251-1/+1
|
* Test PRMaxime Chevalier-Boisvert2021-10-251-1/+1
|
* Add code owners for YJIT sourcesMaxime Chevalier-Boisvert2021-10-251-0/+7
| | | Code owners are automatically tagged as reviewers on pull requests
* [Feature #18239] Implement VWA for stringsPeter Zhu2021-10-2516-171/+452
| | | | | This commit adds support for embedded strings with variable capacity and uses Variable Width Allocation to allocate strings.
* [Feature #18239] Refactor RVARGC alloc functionsPeter Zhu2021-10-253-10/+13
| | | | | The allocation functions no longer assume that one RVALUE needs to be allocated.
* [Feature #18239] Add struct for embedded stringsPeter Zhu2021-10-252-21/+22
|
* ast.c: Use kept script_lines data instead of re-opening the source file (#5019)Yusuke Endoh2021-10-264-16/+18
| | | ast.c: Use kept script_lines data instead of re-open the source file
* * 2021-10-26 [ci skip]git2021-10-261-1/+1
|
* [rubygems/rubygems] Fix Bundler::Digest#sha1 on big-endian systemsJean Boussier2021-10-261-1/+1
| | | | | | | | | | | | | | | | | As noticed by @nobu https://github.com/rubygems/rubygems/pull/4989#discussion_r735674633 From wikipedia: https://en.wikipedia.org/wiki/SHA-1#SHA-1_pseudocode > append ml, the original message length in bits, as a 64-bit big-endian integer. `Q` is native endian, so little-endian on most modern hardware. The original code from RubyDigest reverses the bytes: https://github.com/Solistra/ruby-digest/blob/d15f906caf09171f897efc74645c9e31373d7fd1/lib/ruby_digest.rb#L521 But that makes the code non-portable, the correct way is to directly ask for a big-endian representation. https://github.com/rubygems/rubygems/commit/ba2be01ea4
* Strip out YJIT at build time when unsupported or disabled (#5003)Alan Wu2021-10-253-3/+41
| | | | | | | | | | | | | In an effort to minimize build issues on non x64 platforms, we can decide at build time to not build the bulk of YJIT. This should fix obscure build errors like this one on riscv64: yjit_asm.c:137:(.text+0x3fa): relocation truncated to fit: R_RISCV_PCREL_HI20 against `alloc_exec_mem' We also don't need to bulid YJIT on `--disable-jit-support` builds. One wrinkle to this is that the YJIT Ruby module will not be defined when YJIT is stripped from the build. I think that's a fair change as it's only meant to be used for YJIT development.
* YJIT: Implement duphash (#5009)Ian C. Anderson2021-10-253-0/+32
| | | | | | | | | `duphash` showed up in the top-20 most frequent exit ops for @jhawthorn's benchmark that renders github.com/about The implementation was almost exactly the same as `duparray` Co-authored-by: John Hawthorn <john@hawthorn.email> Co-authored-by: John Hawthorn <john@hawthorn.email>
* test/ruby/test_jit.rb: Add a test for checkmatch insnYusuke Endoh2021-10-251-0/+11
|
* test/ruby/test_jit.rb: Print a hint at exit of the original processYusuke Endoh2021-10-251-1/+2
| | | | | | | | | | | | Otherwise, the hint is printed whenever fork is called. http://rubyci.s3.amazonaws.com/debian9/ruby-master/log/20211025T093004Z.log.html.gz ``` [20244/21156] TestThread#test_fork_while_lockedyou may want to add tests for following insns, when you have a chance: checkmatch you may want to add tests for following insns, when you have a chance: checkmatch you may want to add tests for following insns, when you have a chance: checkmatch = 0.19 s ```
* [rubygems/rubygems] Avoid loading the `digest` gem unnecessarilyDavid Rodriguez2021-10-253-11/+10
| | | | | | OpenSSL includes what we need. https://github.com/rubygems/rubygems/commit/955f3b72ca
* [rubygems/rubygems] Remove comment that seems no longer accurateDavid Rodriguez2021-10-251-1/+1
| | | | | | | | | | We require things inline or autoload them for efficiency and to avoid as much as possible conflicting with user's choice of gems. But I removed the require and observed no deadlocks when activating gems. https://github.com/rubygems/rubygems/commit/7d6333e842
* Unify issue template and ISSUES.md documentDavid Rodriguez2021-10-252-33/+9
| | | | | | | | | Some crucial information to ease maintainers work, like the advice of upgrading rubygems and bundler, was one step away from the issue template, making it easier for some users to miss. Now all relevant information is written directly in the bug report template.
* [rubygems/rubygems] Show proper error when previous installation of gem ↵David Rodriguez2021-10-253-2/+58
| | | | | | | | | can't be deleted Instead of showing the bug report template with an error at a random place. https://github.com/rubygems/rubygems/commit/882ad3ab57
* [rubygems/rubygems] Show a proper error if gem path is not writableDavid Rodriguez2021-10-253-3/+47
| | | | | | | Instead of showing the bug report place with an error at a randome place. https://github.com/rubygems/rubygems/commit/241854ce73
* [rubygems/rubygems] Catch up with recent error message modificationDavid Rodriguez2021-10-251-2/+2
| | | | https://github.com/rubygems/rubygems/commit/ae374c1f31
* [rubygems/rubygems] Improve readability by splitting updating the cache and ↵David Rodriguez2021-10-251-1/+4
| | | | | | searching it https://github.com/rubygems/rubygems/commit/d0df25bb0f
* [rubygems/rubygems] Manage global gem cache directlyDavid Rodriguez2021-10-253-41/+33
| | | | | | | | Previously, it was maintained in sync with the standard cache. That was less efficient, and it caused some error messages to point to non existent files. https://github.com/rubygems/rubygems/commit/931f8cb8a9
* [rubygems/rubygems] Cached gem path resolution should consider default gemsDavid Rodriguez2021-10-251-9/+6
| | | | https://github.com/rubygems/rubygems/commit/83b2b845b3
* [rubygems/rubygems] Simplify gem downloading inside bundlerDavid Rodriguez2021-10-253-19/+27
| | | | | | | | | | | | | | We can skip most stuff in `Gem::RemoteFetcher#download`, and use `Gem::RemoteFetcher#update_cache_path` directly. This has the benefit of allowing us to remove some workarounds to support several rubygems versions, but also allows us to pass the target folder where the gem should be downloaded directly and skip the logic inside `Gem::RemoteFetcher#download` to infer the cache path. This will be useful later to fix some issues with the `global_gem_cache` feature flag. https://github.com/rubygems/rubygems/commit/8fe74a77e4
* [rubygems/rubygems] Remove unused `let`David Rodriguez2021-10-251-1/+0
| | | | https://github.com/rubygems/rubygems/commit/7e1316e454
* [rubygems/rubygems] Raise original exceptionDavid Rodriguez2021-10-251-2/+2
| | | | https://github.com/rubygems/rubygems/commit/3c93b9fd21
* [rubygems/rubygems] Add missing requiresDavid Rodriguez2021-10-251-0/+2
| | | | | | | | | | | These methods rescue a constant defined by `rubygems/remote_fetcher`, so they should technically require it. The require is provided by `gem_remote_fetcher` anyways but I was running a unit spec that stubs that method, so I was getting an undefined constant error hiding another error. https://github.com/rubygems/rubygems/commit/8bedae4034
* [rubygems/rubygems] Use `Gem::Specification#file_name` consistentlyDavid Rodriguez2021-10-251-4/+4
| | | | https://github.com/rubygems/rubygems/commit/13b933f49a
* [rubygems/rubygems] Extract a `default_cache_path` helperDavid Rodriguez2021-10-251-2/+6
| | | | https://github.com/rubygems/rubygems/commit/8319305d58
* [rubygems/rubygems] Small refactorDavid Rodriguez2021-10-251-7/+8
| | | | | | | | Extract final cache path to a variable and pass that to `download_gem`. It actually fits better the parameters documentation since it's the final directory where the downloaded gem will be placed. https://github.com/rubygems/rubygems/commit/1429db6a04
* process.c: Add Process._fork (#5017)Yusuke Endoh2021-10-255-11/+136
| | | | | | | | | | * process.c: Add Process._fork This API is supposed for application monitoring libraries to hook fork event. [Feature #17795] Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
* test/ruby/test_rubyvm.rb: prevent "assigned but unused variable" warningsYusuke Endoh2021-10-251-3/+3
| | | | | | | | | | | | | | http://rubyci.s3.amazonaws.com/centos7/ruby-master/log/20211025T093004Z.log.html.gz ``` [ 4896/21159] TestRubyVM#test_keep_script_lines(none):3: warning: assigned but unused variable - b (none):6: warning: assigned but unused variable - c (none):1: warning: assigned but unused variable - a <compiled>:3: warning: assigned but unused variable - b (none):3: warning: assigned but unused variable - b (none):6: warning: assigned but unused variable - c (none):1: warning: assigned but unused variable - a <compiled>:3: warning: assigned but unused variable - b ```
* test/ruby/test_refinement.rb: Prevent deprecation warnings during testYusuke Endoh2021-10-251-3/+16
| | | | | | | | | http://rubyci.s3.amazonaws.com/centos7/ruby-master/log/20211025T093004Z.log.html.gz ``` /home/chkbuild/chkbuild/tmp/build/20211025T093004Z/ruby/test/ruby/test_refinement.rb:777: warning: Refinement#include is deprecated and will be removed in Ruby 3.2 /home/chkbuild/chkbuild/tmp/build/20211025T093004Z/ruby/test/ruby/test_refinement.rb:840: warning: Refinement#prepend is deprecated and will be removed in Ruby 3.2 /home/chkbuild/chkbuild/tmp/build/20211025T093004Z/ruby/test/ruby/test_refinement.rb:2620: warning: Refinement#include is deprecated and will be removed in Ruby 3.2 ```
* test/ruby/test_marshal.rb: Prevent "assigned but unused variable" warningYusuke Endoh2021-10-251-1/+1
| | | | | | | http://rubyci.s3.amazonaws.com/centos7/ruby-master/log/20211025T093004Z.log.html.gz ``` /home/chkbuild/chkbuild/tmp/build/20211025T093004Z/ruby/test/ruby/test_marshal.rb:925: warning: assigned but unused variable - objects ```
* [rubygems/rubygems] Vendor a pure ruby implementation of SHA1Jean Boussier2021-10-256-2/+128
| | | | | | | This allows `Source::Git` to no longer load the `digest` gem as it is causing issues on Ruby 3.1. https://github.com/rubygems/rubygems/pull/4989/commits/c19a9f2ff7
* Make Coverage suspendable (#4856)Yusuke Endoh2021-10-256-16/+305
| | | | | | | * Make Coverage suspendable Add `Coverage.suspend`, `Coverage.resume` and some methods. [Feature #18176] [ruby-core:105321]
* Update TypeProf to 0.20.1Yusuke Endoh2021-10-251-1/+1
|
* [rubygems/rubygems] Simplify and remove some unused codeDaniel Colson2021-10-252-22/+1
| | | | | | | | | | | | | | | | | | | | | | | | When `install_with_build_args` was added in https://github.com/rubygems/rubygems/commit/be96283985cb49c023112117b2ac2dea0d9becf1, there were two versions of the method: the default version in the base class that still used the locking `with_build_args`, and an override in the `Future` class (for Rubygems 2.0 and up) that yielded without calling `with_build_args`. The `with_build_args` version of the method was removed in https://github.com/rubygems/rubygems/commit/8a5b71e3e8072c64a0f3cab838ba330f5e87e37a while removing a bunch of the old Rubygems compatibility code. This commit removes `with_build_args`, since it no longer appears to be used (the build args are passed as a keyword argument to `spec.source.install` instead, since https://github.com/rubygems/rubygems/commit/be96283985cb49c023112117b2ac2dea0d9becf1). The commit also removes `install_with_build_args` and the conditional around it, since the method wasn't doing anything different than `install`, and it had a comment that was no longer accurate. https://github.com/rubygems/rubygems/commit/ba543a60eb
* check other IO#close callsKoichi Sasada2021-10-251-17/+20
| | | | | http://ci.rvm.jp/results/trunk@ruby-iga/3690333 > tool/lib/test/unit/parallel.rb:68:in `close': Bad file descriptor (Errno::EBADF)
* introduce check code for mysterious EBADFKoichi Sasada2021-10-251-2/+15
| | | | | | | | | | | | | | | | | | parallel test randomly failed with EBADF. This patch checks wich suite causes this error. ex) http://ci.rvm.jp/results/trunk@ruby-iga/3690219 ``` /tmp/ruby/v3/src/trunk/tool/lib/test/unit/parallel.rb:88:in `close': Bad file descriptor (Errno::EBADF) /tmp/ruby/v3/src/trunk/tool/lib/test/unit/parallel.rb:88:in `ensure in _run_suite' /tmp/ruby/v3/src/trunk/tool/lib/test/unit/parallel.rb:89:in `_run_suite' /tmp/ruby/v3/src/trunk/tool/lib/test/unit/parallel.rb:30:in `block in _run_suites' /tmp/ruby/v3/src/trunk/tool/lib/test/unit/parallel.rb:29:in `map' /tmp/ruby/v3/src/trunk/tool/lib/test/unit/parallel.rb:29:in `_run_suites' /tmp/ruby/v3/src/trunk/tool/lib/test/unit/parallel.rb:128:in `run' /tmp/ruby/v3/src/trunk/tool/lib/test/unit/parallel.rb:211:in `<main>' ```
* add example for buffer: argument of pack.Tanaka Akira2021-10-251-0/+10
|
* fix typo [ci skip]1809092021-10-251-2/+2
|
* Fix `Enumerable#each_cons` and `Enumerable#each_slice` to return a receiverTSUYUSATO Kitsune2021-10-254-10/+14
| | | | Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com> Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
* Fix links [ci skip]Kazuhiro NISHIYAMA2021-10-251-0/+2
|
* [DOC] Fix code markup [ci skip]Nobuyoshi Nakada2021-10-253-5/+5
| | | | Code markup in RDoc must not be concatenated with anothr word.
* * 2021-10-25 [ci skip]git2021-10-251-1/+1
|
* [ruby/openssl] bn: expand BIGNUM_RAND and BIGNUM_RAND_RANGE macrosKazuki Yamaguchi2021-10-251-50/+50
| | | | | | | Now that BN.pseudo_rand{,_range} are alias, those macros are only used once. Let's expand the macros for better readability. https://github.com/ruby/openssl/commit/7c2fc00dee
* [ruby/openssl] bn: make BN.pseudo_rand{,_range} an alias of BN.rand{,_range}Kazuki Yamaguchi2021-10-252-16/+6
| | | | | | | | BN_pseudo_rand() and BN_pseudo_rand_range() are deprecated in OpenSSL 3.0. Since they are identical to their non-'pseudo' version anyway, let's make them alias. https://github.com/ruby/openssl/commit/2d34e85ddf
* [ruby/openssl] pkey, ssl: use EVP_PKEY_eq() instead of EVP_PKEY_cmp()Kazuki Yamaguchi2021-10-254-3/+8
| | | | | | | OpenSSL 3.0 renamed EVP_PKEY_cmp() to EVP_PKEY_eq() because that was a confusing name. https://github.com/ruby/openssl/commit/d42bd7fcdb
* [ruby/openssl] pkey/ec: use EC_GROUP_free() instead of EC_GROUP_clear_free()Kazuki Yamaguchi2021-10-251-1/+1
| | | | | | | | | EC_GROUP_clear_free() is deprecated in OpenSSL 3.0. EC_GROUP does not include any sensitive data, so we can safely use EC_GROUP_free() instead. https://github.com/ruby/openssl/commit/e93a5fdffc
* [ruby/openssl] pkey/ec: deprecate PKey::EC::Point#make_affine! and make it a ↵Kazuki Yamaguchi2021-10-251-0/+5
| | | | | | | | | | | | | no-op It converts the internal representation of the point object to the affine coordinate system. However, it had no real use case because the difference in the internal representation has not been visible from Ruby/OpenSSL at all. EC_POINT_make_affine() is marked as deprecated in OpenSSL 3.0. https://github.com/ruby/openssl/commit/e2cc81fef7