Ruby Issue Tracking System: Issueshttps://bugs.ruby-lang.org/https://bugs.ruby-lang.org/favicon.ico?17113305112022-11-29T12:57:15ZRuby Issue Tracking System
Redmine Ruby master - Bug #19158 (Closed): Ruby 3.1.3 installs wrong gemspec for debug gemhttps://bugs.ruby-lang.org/issues/191582022-11-29T12:57:15Zdeivid (David Rodríguez)
<p>A pristine installation of Ruby 3.1.3 shows an installed <code>debug-1.6.3.gemspec</code> file that claims that debug-1.6.3 has no dependencies. This is incorrect, and causes issues for Bundler as reported at <a href="https://github.com/rubygems/rubygems/issues/6082" class="external">https://github.com/rubygems/rubygems/issues/6082</a>.</p>
<p>An issue workaround is to manually reinstall the gem with <code>gem install debug:1.6.3</code>. That will reinstall the gem, including a correct gemspec file.</p>
<p>This is the file diff before and after reinstalling the gem</p>
<pre><code class="diff syntaxhl" data-language="diff"><span class="gd">--- old.gemspec 2022-11-29 13:54:36
</span><span class="gi">+++ /Users/deivid/.asdf/installs/ruby/3.1.3/lib/ruby/gems/3.1.0/specifications/debug-1.6.3.gemspec 2022-11-29 13:55:25
</span><span class="p">@@ -24,4 +24,16 @@</span>
s.summary = "Debugging functionality for Ruby".freeze
s.installed_by_version = "3.3.26" if s.respond_to? :installed_by_version
<span class="gi">+
+ if s.respond_to? :specification_version then
+ s.specification_version = 4
+ end
+
+ if s.respond_to? :add_runtime_dependency then
+ s.add_runtime_dependency(%q<irb>.freeze, [">= 1.3.6"])
+ s.add_runtime_dependency(%q<reline>.freeze, [">= 0.3.1"])
+ else
+ s.add_dependency(%q<irb>.freeze, [">= 1.3.6"])
+ s.add_dependency(%q<reline>.freeze, [">= 0.3.1"])
+ end
</span> end
</code></pre>
<p>In general, the files installed by ruby-core for bundled gems should be identical to the ones installed by explicit <code>gem install</code>.</p>
<p>This issue is also present in master and I'm guessing it was introduced by <a href="https://github.com/ruby/ruby/commit/a2c66f52f402cb58372e271226f3341065561e53" class="external">https://github.com/ruby/ruby/commit/a2c66f52f402cb58372e271226f3341065561e53</a> (backported at <a href="https://github.com/ruby/ruby/commit/2d26e45135af8b427d9ccc6d47082c21be8b9c74" class="external">https://github.com/ruby/ruby/commit/2d26e45135af8b427d9ccc6d47082c21be8b9c74</a>).</p> Ruby master - Feature #18784 (Open): `FileUtils.rm_f` and `FileUtils.rm_rf` should not mask excep...https://bugs.ruby-lang.org/issues/187842022-05-16T09:04:09Zdeivid (David Rodríguez)
<p>In recent times, I've been having issues with these methods because they don't let you know when some issue happened while trying to remove the given folders/files.</p>
<p>IMO most users expect all pre-existing folders/files that are passed to these methods to be actually removed by the methods. Instead, when this happens, errors are silently swallowed and normally the result is that you will get some other issue further down the road, making the problem hard to debug.</p>
<p>The current workaround I'm using is to double check whether the files still exist after the method, and raise a custom error if they do, but I still can't see the original problem, so issues are similarly hard to debug.</p>
<p>This is also a deviation from how <code>rm -rf</code> and <code>rm -f</code> work, since these tools finish with a failure exit code when they fail to remove the given files. Given that <code>fileutils</code> is intended to mimic shell functionality, I think this is just a bug.</p>
<p>I think the intention of the <code>force</code> flag here is to:</p>
<ul>
<li>Don't prompt for confirmation.</li>
<li>Ignore given arguments that are not files that already exist.</li>
</ul>
<p>But any issue other than that should not be swallowed, and in general I think the method should succeed if and only if the given list of file names does not exist after the methods are done.</p>
<p>I think this is in line with the following note I get when I run <code>man rm</code>, but also suggests that this is not the standard behavior of "historical implementations"</p>
<blockquote>
<p>COMPATIBILITY</p>
<p>The rm utility differs from historical implementations in that the -f option only masks attempts to remove non-existent files instead of masking a large variety of errors.</p>
</blockquote>
<p>I implemented this at <a href="https://github.com/ruby/fileutils/pull/58" class="external">https://github.com/ruby/fileutils/pull/58</a>, but treating this as a bug. I can also implement a more conservative for approach for users that might be using <code>FileUtils.rm_rf</code> or <code>FileUtils.rm_f</code> but don't really care if the files are removed or not.</p>
<p>Alternative proposals would be <code>FileUtils.rm_rf(force: strict)</code>, or <code>FileUtils.strict_rm_rf</code>, but to be honest, if this is considered a breaking change, I would ship it as a new major version, and let users update their code to swallow errors themselves if they need to.</p>
<p>Happy to hear any feedback!</p> Ruby master - Bug #18407 (Closed): Behavior difference between integer and string flags to File c...https://bugs.ruby-lang.org/issues/184072021-12-13T14:42:12Zdeivid (David Rodríguez)
<p>Hi!</p>
<p>I was under the impression that these two commands should either both work of both fail, however they behave differently.</p>
<pre><code class="shell-session syntaxhl" data-language="shell-session"><span class="gp">$</span><span class="w"> </span>ruby <span class="nt">-ropen-uri</span> <span class="nt">-EUTF-8</span>:UTF-8 <span class="nt">-e</span> <span class="s1">'f = File.new("foo", "wb"); f.write URI.open("https://rubygems.org/gems/rake-13.0.6.gem").read'</span>
<span class="go">
</span><span class="gp">$</span><span class="w"> </span>ruby <span class="nt">-ropen-uri</span> <span class="nt">-EUTF-8</span>:UTF-8 <span class="nt">-e</span> <span class="s1">'f = File.new("foo", File::WRONLY | File::TRUNC | File::BINARY); f.write URI.open("https://rubygems.org/gems/rake-13.0.6.gem").read'</span>
<span class="go">-e:1:in `write': "\\x8B" from ASCII-8BIT to UTF-8 (Encoding::UndefinedConversionError)
</span><span class="gp"> from -e:1:in `<main></span><span class="s1">'
</span></code></pre>
<p>Could be an actual bug, and me misunderstanding the documentation. In any case it seemed worth reporting.</p> Ruby master - Feature #17859 (Open): Start IRB when running just `ruby`https://bugs.ruby-lang.org/issues/178592021-05-12T16:33:10Zdeivid (David Rodríguez)
<p>Compare python:</p>
<pre><code>$ python
Python 3.8.3 (default, Jul 8 2020, 16:49:12)
[GCC 7.5.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
</code></pre>
<p>To ruby:</p>
<pre><code>$ ruby
# just hangs
</code></pre>
<p>I think firing up a console it's a good default behaviour for beginners.</p> Ruby master - Misc #17137 (Assigned): Cooperation on maintaining official docker ruby imageshttps://bugs.ruby-lang.org/issues/171372020-08-31T19:52:31Zdeivid (David Rodríguez)
<p>It was pointed out to me at <a href="https://github.com/docker-library/ruby/issues/323" class="external">https://github.com/docker-library/ruby/issues/323</a> that the ruby-core team has started maintaining their own docker images at <a href="https://github.com/ruby/ruby-docker-images" class="external">https://github.com/ruby/ruby-docker-images</a>, and that the base Dockerfiles were initially started from the official docker images.</p>
<p>The maintainers of the official images would be interesting in collaborating on maintaining these images. Maybe merging the projects would be a nice idea from an end user point of view. I'm guessing there's a reason why <a href="https://github.com/ruby/ruby-docker-images" class="external">https://github.com/ruby/ruby-docker-images</a> was started as a separate project, but maybe any improvements over the official project could be merged back. The obvious new feature that I see in the README is the ability to build development images of specific revisions.</p>
<p>Anyways, I mentioned the approach of the docker folks to hsbt and he told me to open a ticket here. So here it is!</p>
<p>Regards!</p> Ruby master - Bug #17003 (Closed): Segfault during bundler specs on Windowshttps://bugs.ruby-lang.org/issues/170032020-07-01T08:41:27Zdeivid (David Rodríguez)
<p>About a month ago, we got a segfault on Windows while running bundler specs in CI.</p>
<p>I'm posting the log here in case there's something obvious in there that needs fixing.</p>
<pre><code>Failures:
1) [TEST_ENV_NUMBER=1] bundle add with --skip-install adds gem to Gemfile but is not installed
Failure/Error: expect(bundled_app_gemfile.read).to match(/gem "foo", "= 2.0"/)
expected "source \"file:///d:/a/rubygems/rubygems/bundler/tmp/1/gems/remote2\"\ngem \"weakling\", \"~> 0.0.1\"\n" to match /gem "foo", "= 2.0"/
Diff:
@@ -1,2 +1,3 @@
-/gem "foo", "= 2.0"/
+source "file:///d:/a/rubygems/rubygems/bundler/tmp/1/gems/remote2"
+gem "weakling", "~> 0.0.1"
Commands:
$ gem build rack
Successfully built RubyGem
Name: rack
Version: 1.2
File: rack-1.2.gem
# $? => 0
$ gem build foo
Successfully built RubyGem
Name: foo
Version: 1.1
File: foo-1.1.gem
# $? => 0
$ gem build foo
Successfully built RubyGem
Name: foo
Version: 2.0
File: foo-2.0.gem
# $? => 0
$ gem build baz
Successfully built RubyGem
Name: baz
Version: 1.2.3
File: baz-1.2.3.gem
# $? => 0
$ gem build bar
Successfully built RubyGem
Name: bar
Version: 0.12.3
File: bar-0.12.3.gem
# $? => 0
$ gem build cat
Successfully built RubyGem
Name: cat
Version: 0.12.3.pre
File: cat-0.12.3.pre.gem
# $? => 0
$ gem build dog
Successfully built RubyGem
Name: dog
Version: 1.1.3.pre
File: dog-1.1.3.pre.gem
# $? => 0
$ gem generate_index
Generating Marshal quick index gemspecs for 70 gems
......................................................................
Complete
Generated Marshal quick index gemspecs: 0.038s
Generating specs index
Generated specs index: 0.001s
Generating latest specs index
Generated latest specs index: 0.001s
Generating prerelease specs index
Generated prerelease specs index: 0.000s
Compressing indices
Compressed indices: 0.002s
# $? => 0
$ git init
Initialized empty Git repository in D:/a/rubygems/rubygems/bundler/tmp/1/libs/foo-2.0/.git/
# $? => 0
$ git add *
# $? => 0
$ git config user.email lol@wut.com
# $? => 0
$ git config user.name lolwut
# $? => 0
$ git config commit.gpgsign false
# $? => 0
$ git commit -m OMG_INITIAL_COMMIT
[master (root-commit) 07ce25c] OMG_INITIAL_COMMIT
3 files changed, 21 insertions(+)
create mode 100644 foo.gemspec
create mode 100644 lib/foo.rb
create mode 100644 lib/foo/source.rb
# $? => 0
$ D:/rubyinstaller-2.7.1-1-x64/bin/ruby.exe -Id:/a/rubygems/rubygems/bundler/spec -rd:/a/rubygems/rubygems/bundler/spec/support/artifice/fail.rb -rd:/a/rubygems/rubygems/bundler/spec/support/hax.rb d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle install --retry 0
Fetching source index from file:///d:/a/rubygems/rubygems/bundler/tmp/1/gems/remote2/
Resolving dependencies...
Using bundler 2.2.0.dev
Fetching weakling 0.0.3
Installing weakling 0.0.3
Bundle complete! 1 Gemfile dependency, 2 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
# $? => 0
$ D:/rubyinstaller-2.7.1-1-x64/bin/ruby.exe -Id:/a/rubygems/rubygems/bundler/spec -rd:/a/rubygems/rubygems/bundler/spec/support/artifice/fail.rb -rd:/a/rubygems/rubygems/bundler/spec/support/hax.rb d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle add foo --skip-install --version=2.0
d:/a/rubygems/rubygems/lib/rubygems/core_ext/kernel_require.rb:83: [BUG] try to mark T_NONE object
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x64-mingw32]
-- Control frame information -----------------------------------------------
c:0050 p:---- s:0324 e:000323 CFUNC :require
c:0049 p:0195 s:0319 e:000318 METHOD d:/a/rubygems/rubygems/lib/rubygems/core_ext/kernel_require.rb:83
c:0048 p:0005 s:0302 e:000301 TOP d:/a/rubygems/rubygems/lib/rubygems/uri_parsing.rb:3 [FINISH]
c:0047 p:---- s:0299 e:000298 CFUNC :require
c:0046 p:0195 s:0294 e:000293 METHOD d:/a/rubygems/rubygems/lib/rubygems/core_ext/kernel_require.rb:83
c:0045 p:0035 s:0277 e:000276 TOP d:/a/rubygems/rubygems/lib/rubygems/remote_fetcher.rb:7 [FINISH]
c:0044 p:---- s:0274 e:000273 CFUNC :require
c:0043 p:0195 s:0269 e:000268 METHOD d:/a/rubygems/rubygems/lib/rubygems/core_ext/kernel_require.rb:83
c:0042 p:0011 s:0252 e:000251 TOP d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/fetcher/index.rb:4 [FINISH]
c:0041 p:---- s:0249 e:000248 CFUNC :require
c:0040 p:0195 s:0244 e:000243 METHOD d:/a/rubygems/rubygems/lib/rubygems/core_ext/kernel_require.rb:83 [FINISH]
c:0039 p:0453 s:0227 e:000222 CLASS d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/fetcher.rb:221
c:0038 p:0007 s:0219 e:000218 CLASS d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/fetcher.rb:11
c:0037 p:0037 s:0216 e:000215 TOP d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/fetcher.rb:9 [FINISH]
c:0036 p:---- s:0213 e:000212 CFUNC :require
c:0035 p:0195 s:0208 e:000207 METHOD d:/a/rubygems/rubygems/lib/rubygems/core_ext/kernel_require.rb:83 [FINISH]
c:0034 p:0035 s:0191 e:000188 BLOCK d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/source/rubygems.rb:255 [FINISH]
c:0033 p:---- s:0184 e:000183 CFUNC :map
c:0032 p:0020 s:0180 e:000179 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/source/rubygems.rb:253
c:0031 p:0004 s:0176 e:000175 BLOCK d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/source/rubygems.rb:390
c:0030 p:0009 s:0170 e:000169 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/index.rb:11
c:0029 p:0026 s:0165 e:000164 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/source/rubygems.rb:389
c:0028 p:0022 s:0161 e:000160 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/source/rubygems.rb:88
c:0027 p:0021 s:0156 e:000154 BLOCK d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/definition.rb:279 [FINISH]
c:0026 p:---- s:0151 e:000150 CFUNC :each
c:0025 p:0019 s:0147 e:000146 BLOCK d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/definition.rb:277
c:0024 p:0009 s:0142 e:000141 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/index.rb:11
c:0023 p:0026 s:0137 e:000136 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/definition.rb:274
c:0022 p:0133 s:0133 e:000129 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/definition.rb:264
c:0021 p:0017 s:0124 e:000123 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/definition.rb:175
c:0020 p:0025 s:0114 e:000113 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/definition.rb:163
c:0019 p:0075 s:0110 e:000109 BLOCK d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/injector.rb:47
c:0018 p:0035 s:0106 e:000105 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/settings.rb:121
c:0017 p:0047 s:0100 e:000099 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/injector.rb:32
c:0016 p:0039 s:0094 e:000093 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/injector.rb:9
c:0015 p:0045 s:0087 e:000086 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/cli/add.rb:30
c:0014 p:0007 s:0082 e:000081 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/cli/add.rb:16
c:0013 p:0026 s:0078 e:000077 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/cli.rb:403
c:0012 p:0054 s:0073 e:000072 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/command.rb:27
c:0011 p:0040 s:0065 e:000064 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/invocation.rb:127
c:0010 p:0239 s:0058 e:000057 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor.rb:399
c:0009 p:0008 s:0045 e:000044 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/cli.rb:30
c:0008 p:0066 s:0040 e:000039 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/base.rb:476
c:0007 p:0008 s:0033 e:000032 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/cli.rb:24
c:0006 p:0109 s:0028 e:000027 BLOCK d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/exe/bundle:49
c:0005 p:0002 s:0022 e:000021 METHOD d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/friendly_errors.rb:117
c:0004 p:0162 s:0017 E:0016d8 TOP d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/exe/bundle:37 [FINISH]
c:0003 p:---- s:0013 e:000012 CFUNC :load
c:0002 p:0112 s:0008 E:0017c0 EVAL d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle:23 [FINISH]
c:0001 p:0000 s:0003 E:000d20 (none) [FINISH]
-- Ruby level backtrace information ----------------------------------------
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle:23:in `<main>'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle:23:in `load'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/exe/bundle:37:in `<top (required)>'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/exe/bundle:49:in `block in <top (required)>'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/cli.rb:24:in `start'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/base.rb:476:in `start'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/cli.rb:30:in `dispatch'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor.rb:399:in `dispatch'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/cli.rb:403:in `add'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/cli/add.rb:16:in `run'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/cli/add.rb:30:in `inject_dependencies'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/injector.rb:9:in `inject'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/injector.rb:32:in `inject'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/settings.rb:121:in `temporary'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/injector.rb:47:in `block in inject'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/definition.rb:163:in `resolve_remotely!'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/definition.rb:175:in `specs'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/definition.rb:264:in `resolve'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/definition.rb:274:in `index'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/index.rb:11:in `build'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/definition.rb:277:in `block in index'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/definition.rb:277:in `each'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/definition.rb:279:in `block (2 levels) in index'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/source/rubygems.rb:88:in `specs'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/source/rubygems.rb:389:in `remote_specs'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/index.rb:11:in `build'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/source/rubygems.rb:390:in `block in remote_specs'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/source/rubygems.rb:253:in `fetchers'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/source/rubygems.rb:253:in `map'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/source/rubygems.rb:255:in `block in fetchers'
d:/a/rubygems/rubygems/lib/rubygems/core_ext/kernel_require.rb:83:in `require'
d:/a/rubygems/rubygems/lib/rubygems/core_ext/kernel_require.rb:83:in `require'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/fetcher.rb:9:in `<top (required)>'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/fetcher.rb:11:in `<module:Bundler>'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/fetcher.rb:221:in `<class:Fetcher>'
d:/a/rubygems/rubygems/lib/rubygems/core_ext/kernel_require.rb:83:in `require'
d:/a/rubygems/rubygems/lib/rubygems/core_ext/kernel_require.rb:83:in `require'
d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/fetcher/index.rb:4:in `<top (required)>'
d:/a/rubygems/rubygems/lib/rubygems/core_ext/kernel_require.rb:83:in `require'
d:/a/rubygems/rubygems/lib/rubygems/core_ext/kernel_require.rb:83:in `require'
d:/a/rubygems/rubygems/lib/rubygems/remote_fetcher.rb:7:in `<top (required)>'
d:/a/rubygems/rubygems/lib/rubygems/core_ext/kernel_require.rb:83:in `require'
d:/a/rubygems/rubygems/lib/rubygems/core_ext/kernel_require.rb:83:in `require'
d:/a/rubygems/rubygems/lib/rubygems/uri_parsing.rb:3:in `<top (required)>'
d:/a/rubygems/rubygems/lib/rubygems/core_ext/kernel_require.rb:83:in `require'
d:/a/rubygems/rubygems/lib/rubygems/core_ext/kernel_require.rb:83:in `require'
-- C level backtrace information -------------------------------------------
C:\windows\SYSTEM32\ntdll.dll(NtWaitForSingleObject+0x14) [0x00007ffb2161f7e4]
C:\windows\System32\KERNELBASE.dll(WaitForSingleObjectEx+0x93) [0x00007ffb1d6789b3]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_vm_bugreport+0x37b) [0x00000000653c96ab]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_bug+0x7c) [0x00000000653f55eb]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_memerror+0x1f7) [0x00000000653f5bfa]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_vm_mark+0xdc) [0x00000000653c370c]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_gc_mark+0x295) [0x0000000065208865]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_objspace_each_objects+0x7c5) [0x000000006520a005]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_data_object_wrap+0x2bd) [0x000000006520c49d]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_wb_protected_newobj_of+0x79) [0x000000006520c969]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_str_new+0x2b) [0x000000006533c4cb]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_io_ungetbyte+0x1135) [0x00000000652326a5]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_uv_to_utf8+0x27be) [0x000000006529eafe]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(ruby_yyparse+0x13014) [0x00000000652c2224]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(ruby_yyparse+0x1a956) [0x00000000652c9b66]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_suppress_tracing+0x134) [0x00000000653cd6b4]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_parser_compile_file_path+0xa8) [0x00000000652a7078]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(onig_set_meta_char+0x2c77) [0x000000006531ee67]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_ensure+0x142) [0x00000000651ee992]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_parser_load_file+0xfc) [0x000000006531faec]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_get_expanded_load_path+0x1458) [0x00000000652502b8]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_f_require+0x22) [0x0000000065250412]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_error_arity+0x338) [0x00000000653a1bb8]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_check_funcall_default+0x8f6) [0x00000000653ba126]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_vm_exec+0x23c) [0x00000000653abf2c]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_get_expanded_load_path+0x13f1) [0x0000000065250251]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_f_require+0x22) [0x0000000065250412]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_error_arity+0x338) [0x00000000653a1bb8]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_check_funcall_default+0x8f6) [0x00000000653ba126]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_vm_exec+0x23c) [0x00000000653abf2c]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_get_expanded_load_path+0x13f1) [0x0000000065250251]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_f_require+0x22) [0x0000000065250412]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_error_arity+0x338) [0x00000000653a1bb8]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_check_funcall_default+0x8f6) [0x00000000653ba126]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_vm_exec+0x23c) [0x00000000653abf2c]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_get_expanded_load_path+0x13f1) [0x0000000065250251]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_f_require+0x22) [0x0000000065250412]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_error_arity+0x338) [0x00000000653a1bb8]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_check_funcall_default+0x8f6) [0x00000000653ba126]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_vm_exec+0x23c) [0x00000000653abf2c]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_vm_invoke_proc+0x9a2) [0x00000000653b18d2]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_funcallv_with_cc+0x111) [0x00000000653b55f1]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_gvar_readonly_setter+0x1f9) [0x0000000065391539]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_ensure+0x142) [0x00000000651ee992]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_autoload_load+0x1d7) [0x00000000653972e7]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_check_funcall_default+0x51b9) [0x00000000653be9e9]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_vm_exec+0x23c) [0x00000000653abf2c]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_get_expanded_load_path+0x13f1) [0x0000000065250251]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_f_require+0x22) [0x0000000065250412]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_error_arity+0x338) [0x00000000653a1bb8]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_check_funcall_default+0x8f6) [0x00000000653ba126]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_vm_exec+0x23c) [0x00000000653abf2c]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_vm_invoke_proc+0x9a2) [0x00000000653b18d2]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_funcallv_with_cc+0x111) [0x00000000653b55f1]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_gvar_readonly_setter+0x1f9) [0x0000000065391539]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_ensure+0x142) [0x00000000651ee992]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_autoload_load+0x1d7) [0x00000000653972e7]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_public_const_get_from+0x223) [0x00000000653985d3]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_check_funcall_default+0x4366) [0x00000000653bdb96]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_vm_exec+0x23c) [0x00000000653abf2c]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_yield+0x307) [0x00000000653b03b7]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_ary_sort+0xa1f) [0x000000006514bfbf]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_error_arity+0x338) [0x00000000653a1bb8]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_vm_invoke_bmethod+0x131b) [0x00000000653adb0b]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_check_funcall_default+0x9ee) [0x00000000653ba21e]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_vm_exec+0x23c) [0x00000000653abf2c]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_yield+0x307) [0x00000000653b03b7]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_ary_each+0x3d) [0x0000000065145afd]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_error_arity+0x338) [0x00000000653a1bb8]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_vm_invoke_bmethod+0x131b) [0x00000000653adb0b]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_check_funcall_default+0x9ee) [0x00000000653ba21e]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_vm_exec+0x9e5) [0x00000000653ac6d5]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_resolve_feature_path+0x80a) [0x000000006524ecda]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_error_arity+0x338) [0x00000000653a1bb8]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_vm_invoke_bmethod+0x131b) [0x00000000653adb0b]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_check_funcall_default+0x8f6) [0x00000000653ba126]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_vm_exec+0x9e5) [0x00000000653ac6d5]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(rb_call_end_proc+0x152) [0x00000000651e88f2]
D:\rubyinstaller-2.7.1-1-x64\bin\x64-msvcrt-ruby270.dll(ruby_run_node+0x95) [0x00000000651ed815]
[0x0000000000402d49]
[0x00000000004013b4]
[0x000000000040150b]
C:\windows\System32\KERNEL32.DLL(BaseThreadInitThunk+0x14) [0x00007ffb214a7974]
-- Other runtime information -----------------------------------------------
* Loaded script: d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/bin/bundle
* Loaded features:
0 enumerator.so
1 thread.rb
2 rational.so
3 complex.so
4 ruby2_keywords.rb
5 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/enc/encdb.so
6 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/enc/trans/transdb.so
7 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/enc/windows_1252.so
8 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/rbconfig.rb
9 d:/a/rubygems/rubygems/lib/rubygems/compatibility.rb
10 d:/a/rubygems/rubygems/lib/rubygems/defaults.rb
11 d:/a/rubygems/rubygems/lib/rubygems/deprecate.rb
12 d:/a/rubygems/rubygems/lib/rubygems/errors.rb
13 d:/a/rubygems/rubygems/lib/rubygems/version.rb
14 d:/a/rubygems/rubygems/lib/rubygems/requirement.rb
15 d:/a/rubygems/rubygems/lib/rubygems/platform.rb
16 d:/a/rubygems/rubygems/lib/rubygems/basic_specification.rb
17 d:/a/rubygems/rubygems/lib/rubygems/stub_specification.rb
18 d:/a/rubygems/rubygems/lib/rubygems/util.rb
19 d:/a/rubygems/rubygems/lib/rubygems/text.rb
20 d:/a/rubygems/rubygems/lib/rubygems/user_interaction.rb
21 d:/a/rubygems/rubygems/lib/rubygems/specification_policy.rb
22 d:/a/rubygems/rubygems/lib/rubygems/util/list.rb
23 d:/a/rubygems/rubygems/lib/rubygems/specification.rb
24 d:/a/rubygems/rubygems/lib/rubygems/exceptions.rb
25 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/site_ruby/2.7.0/ruby_installer/runtime/singleton.rb
26 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/site_ruby/2.7.0/ruby_installer/runtime.rb
27 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/site_ruby/2.7.0/ruby_installer/runtime/msys2_installation.rb
28 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/fiddle.so
29 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/fiddle/function.rb
30 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/fiddle/closure.rb
31 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/fiddle.rb
32 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/site_ruby/2.7.0/ruby_installer/runtime/dll_directory.rb
33 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/enc/utf_16le.so
34 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/enc/trans/utf_16_32.so
35 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/rubygems/defaults/operating_system.rb
36 d:/a/rubygems/rubygems/lib/rubygems/bundler_version_finder.rb
37 d:/a/rubygems/rubygems/lib/rubygems/dependency.rb
38 d:/a/rubygems/rubygems/lib/rubygems/core_ext/kernel_gem.rb
39 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/monitor.so
40 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/monitor.rb
41 d:/a/rubygems/rubygems/lib/rubygems/core_ext/kernel_require.rb
42 d:/a/rubygems/rubygems/lib/rubygems/core_ext/kernel_warn.rb
43 d:/a/rubygems/rubygems/lib/rubygems.rb
44 d:/a/rubygems/rubygems/lib/rubygems/path_support.rb
45 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/did_you_mean/version.rb
46 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/did_you_mean/core_ext/name_error.rb
47 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/did_you_mean/levenshtein.rb
48 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/did_you_mean/jaro_winkler.rb
49 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/did_you_mean/spell_checker.rb
50 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/did_you_mean/spell_checkers/name_error_checkers/class_name_checker.rb
51 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/did_you_mean/spell_checkers/name_error_checkers/variable_name_checker.rb
52 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/did_you_mean/spell_checkers/name_error_checkers.rb
53 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/did_you_mean/spell_checkers/method_name_checker.rb
54 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/did_you_mean/spell_checkers/key_error_checker.rb
55 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/did_you_mean/spell_checkers/null_checker.rb
56 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/did_you_mean/formatters/plain_formatter.rb
57 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/did_you_mean/tree_spell_checker.rb
58 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/did_you_mean.rb
59 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/socket.so
60 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/io/wait.so
61 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/socket.rb
62 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/timeout.rb
63 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/net/protocol.rb
64 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/uri/version.rb
65 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/uri/rfc2396_parser.rb
66 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/uri/rfc3986_parser.rb
67 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/uri/common.rb
68 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/uri/generic.rb
69 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/uri/file.rb
70 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/uri/ftp.rb
71 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/uri/http.rb
72 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/uri/https.rb
73 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/uri/ldap.rb
74 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/uri/ldaps.rb
75 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/uri/mailto.rb
76 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/uri.rb
77 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/zlib.so
78 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/stringio.so
79 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/net/http/exceptions.rb
80 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/net/http/header.rb
81 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/enc/windows_31j.so
82 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/net/http/generic_request.rb
83 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/net/http/request.rb
84 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/net/http/requests.rb
85 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/net/http/response.rb
86 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/net/http/responses.rb
87 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/net/http/proxy_delta.rb
88 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/net/http/backward.rb
89 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/net/http.rb
90 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/digest.so
91 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/digest.rb
92 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/openssl.so
93 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/openssl/bn.rb
94 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/openssl/pkey.rb
95 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/openssl/cipher.rb
96 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/openssl/config.rb
97 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/openssl/digest.rb
98 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/openssl/x509.rb
99 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/openssl/buffering.rb
100 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/io/nonblock.so
101 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/ipaddr.rb
102 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/openssl/ssl.rb
103 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/openssl/pkcs5.rb
104 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/openssl.rb
105 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/net/https.rb
106 d:/a/rubygems/rubygems/bundler/spec/support/artifice/fail.rb
107 d:/a/rubygems/rubygems/bundler/spec/support/hax.rb
108 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/pathname.so
109 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/pathname.rb
110 d:/a/rubygems/rubygems/bundler/spec/support/command_execution.rb
111 d:/a/rubygems/rubygems/bundler/spec/support/path.rb
112 d:/a/rubygems/rubygems/bundler/spec/support/the_bundle.rb
113 d:/a/rubygems/rubygems/bundler/spec/support/helpers.rb
114 d:/a/rubygems/rubygems/bundler/spec/support/rubygems_version_manager.rb
115 d:/a/rubygems/rubygems/bundler/spec/support/switch_rubygems.rb
116 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/tsort.rb
117 d:/a/rubygems/rubygems/lib/rubygems/request_set/gem_dependency_api.rb
118 d:/a/rubygems/rubygems/lib/rubygems/request_set/lockfile/parser.rb
119 d:/a/rubygems/rubygems/lib/rubygems/request_set/lockfile/tokenizer.rb
120 d:/a/rubygems/rubygems/lib/rubygems/request_set/lockfile.rb
121 d:/a/rubygems/rubygems/lib/rubygems/request_set.rb
122 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo/gem_metadata.rb
123 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo/errors.rb
124 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/set.rb
125 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/action.rb
126 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb
127 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
128 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/delete_edge.rb
129 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb
130 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/set_payload.rb
131 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/tag.rb
132 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/log.rb
133 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph/vertex.rb
134 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo/dependency_graph.rb
135 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo/state.rb
136 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo/modules/specification_provider.rb
137 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/resolution_state.rb
138 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo/delegates/specification_provider.rb
139 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo/resolution.rb
140 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo/resolver.rb
141 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo/modules/ui.rb
142 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo/lib/molinillo.rb
143 d:/a/rubygems/rubygems/lib/rubygems/resolver/molinillo.rb
144 d:/a/rubygems/rubygems/lib/rubygems/resolver/activation_request.rb
145 d:/a/rubygems/rubygems/lib/rubygems/resolver/conflict.rb
146 d:/a/rubygems/rubygems/lib/rubygems/resolver/dependency_request.rb
147 d:/a/rubygems/rubygems/lib/rubygems/resolver/requirement_list.rb
148 d:/a/rubygems/rubygems/lib/rubygems/resolver/stats.rb
149 d:/a/rubygems/rubygems/lib/rubygems/resolver/set.rb
150 d:/a/rubygems/rubygems/lib/rubygems/resolver/api_set.rb
151 d:/a/rubygems/rubygems/lib/rubygems/resolver/composed_set.rb
152 d:/a/rubygems/rubygems/lib/rubygems/resolver/best_set.rb
153 d:/a/rubygems/rubygems/lib/rubygems/resolver/current_set.rb
154 d:/a/rubygems/rubygems/lib/rubygems/resolver/git_set.rb
155 d:/a/rubygems/rubygems/lib/rubygems/resolver/index_set.rb
156 d:/a/rubygems/rubygems/lib/rubygems/resolver/installer_set.rb
157 d:/a/rubygems/rubygems/lib/rubygems/resolver/lock_set.rb
158 d:/a/rubygems/rubygems/lib/rubygems/resolver/vendor_set.rb
159 d:/a/rubygems/rubygems/lib/rubygems/resolver/source_set.rb
160 d:/a/rubygems/rubygems/lib/rubygems/resolver/specification.rb
161 d:/a/rubygems/rubygems/lib/rubygems/resolver/spec_specification.rb
162 d:/a/rubygems/rubygems/lib/rubygems/resolver/api_specification.rb
163 d:/a/rubygems/rubygems/lib/rubygems/resolver/git_specification.rb
164 d:/a/rubygems/rubygems/lib/rubygems/resolver/index_specification.rb
165 d:/a/rubygems/rubygems/lib/rubygems/resolver/installed_specification.rb
166 d:/a/rubygems/rubygems/lib/rubygems/resolver/local_specification.rb
167 d:/a/rubygems/rubygems/lib/rubygems/resolver/lock_specification.rb
168 d:/a/rubygems/rubygems/lib/rubygems/resolver/vendor_specification.rb
169 d:/a/rubygems/rubygems/lib/rubygems/resolver.rb
170 d:/a/rubygems/rubygems/lib/rubygems/source/git.rb
171 d:/a/rubygems/rubygems/lib/rubygems/source/installed.rb
172 d:/a/rubygems/rubygems/lib/rubygems/source/specific_file.rb
173 d:/a/rubygems/rubygems/lib/rubygems/source/local.rb
174 d:/a/rubygems/rubygems/lib/rubygems/source/lock.rb
175 d:/a/rubygems/rubygems/lib/rubygems/source/vendor.rb
176 d:/a/rubygems/rubygems/lib/rubygems/source.rb
177 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/fileutils/lib/fileutils.rb
178 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendored_fileutils.rb
179 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/errors.rb
180 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/environment_preserver.rb
181 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/plugin/api.rb
182 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/plugin.rb
183 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/gem_helpers.rb
184 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/match_platform.rb
185 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/rubygems_ext.rb
186 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/rubygems_integration.rb
187 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/version.rb
188 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/constants.rb
189 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/current_ruby.rb
190 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/build_metadata.rb
191 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/enc/trans/single_byte.so
192 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler.rb
193 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/command.rb
194 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/core_ext/hash_with_indifferent_access.rb
195 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/error.rb
196 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/invocation.rb
197 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/nested_context.rb
198 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/parser/argument.rb
199 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/parser/arguments.rb
200 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/parser/option.rb
201 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/parser/options.rb
202 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/parser.rb
203 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/shell.rb
204 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/line_editor/basic.rb
205 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/line_editor/readline.rb
206 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/line_editor.rb
207 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/util.rb
208 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/base.rb
209 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor.rb
210 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendored_thor.rb
211 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/friendly_errors.rb
212 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/cli/common.rb
213 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/settings.rb
214 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/feature_flag.rb
215 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/shared_helpers.rb
216 d:/a/rubygems/rubygems/lib/rubygems/ext/builder.rb
217 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/yaml_serializer.rb
218 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/cli/config.rb
219 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/cli/plugin.rb
220 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/cli.rb
221 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/thor/lib/thor/shell/basic.rb
222 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/ui.rb
223 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/ui/shell.rb
224 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/ui/rg_proxy.rb
225 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/cli/add.rb
226 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/dependency.rb
227 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/injector.rb
228 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/settings/validator.rb
229 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/ruby_dsl.rb
230 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/dsl.rb
231 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/source_list.rb
232 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/source.rb
233 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/source/rubygems.rb
234 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/source/metadata.rb
235 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/uri/lib/uri/version.rb
236 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/uri/lib/uri/rfc2396_parser.rb
237 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/uri/lib/uri/rfc3986_parser.rb
238 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/uri/lib/uri/common.rb
239 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/uri/lib/uri/generic.rb
240 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/uri/lib/uri/file.rb
241 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/uri/lib/uri/ftp.rb
242 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/uri/lib/uri/http.rb
243 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/uri/lib/uri/https.rb
244 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/uri/lib/uri/ldap.rb
245 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/uri/lib/uri/ldaps.rb
246 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/uri/lib/uri/mailto.rb
247 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/uri/lib/uri.rb
248 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendored_uri.rb
249 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/source/path.rb
250 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/source/git.rb
251 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/lockfile_parser.rb
252 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/definition.rb
253 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/lazy_specification.rb
254 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/spec_set.rb
255 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/compatibility.rb
256 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/gem_metadata.rb
257 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/delegates/specification_provider.rb
258 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/errors.rb
259 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/action.rb
260 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_edge_no_circular.rb
261 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/add_vertex.rb
262 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/delete_edge.rb
263 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/detach_vertex_named.rb
264 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/set_payload.rb
265 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/tag.rb
266 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/log.rb
267 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph/vertex.rb
268 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/dependency_graph.rb
269 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/state.rb
270 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/modules/specification_provider.rb
271 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/delegates/resolution_state.rb
272 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/resolution.rb
273 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/resolver.rb
274 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
275 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/molinillo/lib/molinillo.rb
276 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendored_molinillo.rb
277 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/resolver/spec_group.rb
278 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/resolver.rb
279 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/index.rb
280 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/source/gemspec.rb
281 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/dep_proxy.rb
282 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/ruby_version.rb
283 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/source/rubygems/remote.rb
284 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/mirror.rb
285 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/cgi/core.rb
286 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/cgi/escape.so
287 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/cgi/util.rb
288 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/cgi/cookie.rb
289 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/cgi.rb
290 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/connection_pool/lib/connection_pool/version.rb
291 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/connection_pool/lib/connection_pool/monotonic_time.rb
292 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/connection_pool/lib/connection_pool/timed_stack.rb
293 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/connection_pool/lib/connection_pool.rb
294 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/connection.rb
295 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/timed_stack_multi.rb
296 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent/pool.rb
297 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendor/net-http-persistent/lib/net/http/persistent.rb
298 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/vendored_persistent.rb
299 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/securerandom.rb
300 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/x64-mingw32/date_core.so
301 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/date.rb
302 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/time.rb
303 d:/a/rubygems/rubygems/lib/rubygems/request/http_pool.rb
304 d:/a/rubygems/rubygems/lib/rubygems/request/https_pool.rb
305 d:/a/rubygems/rubygems/lib/rubygems/request/connection_pools.rb
306 d:/a/rubygems/rubygems/lib/rubygems/request.rb
307 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/fetcher/base.rb
308 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/worker.rb
309 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/fetcher/compact_index.rb
310 d:/a/rubygems/rubygems/bundler/tmp/1/gems/system/gems/bundler-2.2.0.dev/lib/bundler/fetcher/dependency.rb
311 D:/rubyinstaller-2.7.1-1-x64/lib/ruby/2.7.0/base64.rb
312 d:/a/rubygems/rubygems/lib/rubygems/s3_uri_signer.rb
313 d:/a/rubygems/rubygems/lib/rubygems/uri_formatter.rb
# $? => 3
# ./spec/commands/add_spec.rb:120:in `block (3 levels) in <top (required)>'
# ./spec/spec_helper.rb:104:in `block (4 levels) in <top (required)>'
# ./spec/spec_helper.rb:104:in `block (3 levels) in <top (required)>'
# ./spec/support/helpers.rb:335:in `block in with_gem_path_as'
# ./spec/support/helpers.rb:349:in `without_env_side_effects'
# ./spec/support/helpers.rb:331:in `with_gem_path_as'
# ./spec/spec_helper.rb:101:in `block (2 levels) in <top (required)>'
# ./spec/spec_helper.rb:73:in `block (2 levels) in <top (required)>'
# ./spec/support/rubygems_ext.rb:90:in `load'
# ./spec/support/rubygems_ext.rb:90:in `gem_load_and_activate'
# ./spec/support/rubygems_ext.rb:18:in `gem_load'
</code></pre>
<p>Thanks!</p> Ruby master - Feature #16975 (Closed): Warn when value from environment is being ignored by `Dir...https://bugs.ruby-lang.org/issues/169752020-06-21T14:22:26Zdeivid (David Rodríguez)
<p>Currently, if you set <code>ENV["TMPDIR"]</code> to a value that doesn't meet <code>Dir.tmpdir</code> criteria to become the temporary folder, the environment variable is silently ignored and the next variable in the chain is checked.</p>
<p>This makes issues quite hard to debug, because the temporary folder can get silently set to a value you don't expect.</p>
<p>An example of this is: <a href="https://github.com/rubygems/rubygems/issues/3649" class="external">https://github.com/rubygems/rubygems/issues/3649</a>.</p>
<p>And I believe some failures I run into in <a href="https://github.com/ruby/ruby/pull/3211" class="external">https://github.com/ruby/ruby/pull/3211</a> were caused by the same issue.</p>
<p>Would it be useful to replace the following "silent rescue" to introduce a warning when it's hit?</p>
<p><a href="https://github.com/ruby/tmpdir/blob/b08fec48d5cef93ea3dbaa604c9e0b833f086dae/lib/tmpdir.rb#L30" class="external">https://github.com/ruby/tmpdir/blob/b08fec48d5cef93ea3dbaa604c9e0b833f086dae/lib/tmpdir.rb#L30</a></p>
<p>I'm happy to create a PR if this is accepted.</p> Ruby master - Bug #16969 (Rejected): False positive for warning against `public` without argument...https://bugs.ruby-lang.org/issues/169692020-06-18T14:52:34Zdeivid (David Rodríguez)
<p>Hi!</p>
<p>When running the following code:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"> <span class="k">def</span> <span class="nf">setup</span>
<span class="c1"># make public so we can test it</span>
<span class="no">Admin</span><span class="o">::</span><span class="no">UsersController</span><span class="p">.</span><span class="nf">send</span><span class="p">(</span><span class="ss">:public</span><span class="p">,</span> <span class="o">*</span><span class="no">Admin</span><span class="o">::</span><span class="no">UsersController</span><span class="p">.</span><span class="nf">protected_instance_methods</span><span class="p">)</span>
<span class="k">end</span>
</code></pre>
<p>I'm getting the following warning:</p>
<pre><code>warning: calling public without arguments inside a method may not have the intended effect
</code></pre>
<p>It looks like a false positive to me.</p>
<p>I'm guessing it's a bug in <a href="https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/2993b24a1ecc5fa3cc9f140bfd80669c3a3b7b9c" class="external">https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/2993b24a1ecc5fa3cc9f140bfd80669c3a3b7b9c</a>.</p> Ruby master - Feature #16952 (Open): Kernel.exec gives an incorrect error message when passed a s...https://bugs.ruby-lang.org/issues/169522020-06-11T18:13:12Zdeivid (David Rodríguez)
<pre><code>$ cat myscript.rb
#!/bad/ruby/shebang
puts "Hei!"
$ ruby -e 'Kernel.exec("myscript.rb")'
Traceback (most recent call last):
1: from -e:1:in `<main>'
-e:1:in `exec': No such file or directory - myscript.rb (Errno::ENOENT)
</code></pre>
<p>From the error, I understand that the script is not there, but the script is clearly there.</p>
<p>I would've expected something more similar to what you get if you try to run the script directly from the shell:</p>
<pre><code>$ ./myscript.rb
bash: ./myscript.rb: /bad/ruby/shebang: bad interpreter: No such file or directory
</code></pre> Ruby master - Bug #16798 (Closed): ENV.replace on Windows with a variable name not respecting cas...https://bugs.ruby-lang.org/issues/167982020-04-17T11:19:43Zdeivid (David Rodríguez)
<p>On Windows, environment variable names are case insensitive:</p>
<pre><code>PS C:\Users\deivi> ruby -e "puts ENV['Path']; ENV['PATH'] = 'foo'; puts ENV['Path']" C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Ruby26-x64\bin;C:\Ruby25-x64\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Ruby27-x64\bin;C:\Ruby25-x64\bin
foo
PS C:\Users\deivi> ruby -e "puts ENV['Path']; ENV.update('PATH' => 'foo'); puts ENV['Path']" C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Ruby26-x64\bin;C:\Ruby25-x64\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Ruby27-x64\bin;C:\Ruby25-x64\bin
foo
</code></pre>
<p>However, with <code>ENV.replace</code>, if you don't use the "canonical casing" (as given by <code>ENV.keys</code>, for example), the environment variable will be cleared.</p>
<pre><code>PS C:\Users\deivi> ruby -e "puts ENV['Path']; ENV.replace('PATH' => 'foo'); puts ENV['Path']" C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Ruby26-x64\bin;C:\Ruby25-x64\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Ruby27-x64\bin;C:\Ruby25-x64\bin
</code></pre>
<p>This is unexpected to me.</p> Ruby master - Misc #16778 (Rejected): Should we stop vendoring default gems code?https://bugs.ruby-lang.org/issues/167782020-04-11T13:26:39Zdeivid (David Rodríguez)
<p>Currently ruby-core vendors all the code in default gems, and runs the tests for each of them.</p>
<p>Also, ruby-core continuously updates the vendored code of default gems to sync with the upstream repos. That's overhead work, not only from syncronizing the code itself, but it also requires perfect syncronization of releases to avoid including versions of default gems that are different from released versions.</p>
<p>Also, this causes confusion for contributors because the code lives "duplicated" in two different places. Some times contributors will open a PR in the ruby-core repo, only to find out that they need to go to the upstream repo and contribute it in there. And this rule is not even always followed and sometimes ruby-core contributors apply patches to the vendored code directly (many times to fix test-only issues inherent to the different structure of the core repository). These patches then need to be contributed back to the upstream repo.</p>
<p>I believe that all of that kind of defeats the point of "gemification" of the standard library.</p>
<p>Once some ruby code its gemified, it should be the new upstream's responsability to make sure the code works and it's properly tested, and ruby-core should be free'd from that responsability.</p>
<p>Maybe ruby-core could do something along the following lines:</p>
<ul>
<li>Remove all the vendored code from default gems.</li>
<li>When this code is needed for internal tests, manage it as a development dependency, clone it as necessary on non source controlled locations, and use it from there.</li>
<li>Maybe a file similar to <code>gems/bundled_gems</code> can be added for default gems indicating their versions and upstream repos, to ease things.</li>
<li>Upon <code>make install</code>, clone the proper version of each default library and get it installed in the default $LOAD_PATH.</li>
<li>Maybe add some bare high level CI checks to ensure that all default libraries can be properly required after <code>make install</code>, and that their executables (if they include any) can also be run.</li>
</ul>
<p>This should bring several benefits to the development process:</p>
<ul>
<li>No more duplicated code.</li>
<li>No more syncronization from upstream to ruby-core.</li>
<li>No more syncronization from ruby-core to upstream.</li>
<li>No more confusion around the canonical place to contribute.</li>
<li>No more complexities derived from the different organization of the code depending on whether it lives in ruby-core or outside.</li>
</ul>
<p>I believe jruby already does something like this so it'd be interesting to get some input from them.</p>
<p>If this is a direction the ruby-core team would like to take, I'm happy to help <a class="user active user-mention" href="https://bugs.ruby-lang.org/users/572">@hsbt (Hiroshi SHIBATA)</a> with small steps towards slowly approaching to this high level goal.</p> Ruby master - Bug #16776 (Assigned): Regression in coverage libraryhttps://bugs.ruby-lang.org/issues/167762020-04-10T16:39:29Zdeivid (David Rodríguez)
<p>Hi!</p>
<p>I noticed a regression in the coverage library. I tried to write a minimal program to show it, hopefully it gives some clues or where the issue might lie.</p>
<p>In ruby 2.5.8 and earlier, the following program would print <code>{:lines=>[1, 1, nil]}</code>, showing that the body of the "foo" method was run once. However, on newer rubies, it prints <code>{:lines=>[1, 0, nil]}</code>, which is incorrect because the "foo" method body has actually been run once.</p>
<p>This is the repro script:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="c1"># frozen_string_literal: true</span>
<span class="nb">require</span> <span class="s2">"coverage"</span>
<span class="no">Coverage</span><span class="p">.</span><span class="nf">start</span><span class="p">(</span><span class="ss">lines: </span><span class="kp">true</span><span class="p">)</span>
<span class="n">code</span> <span class="o">=</span> <span class="o"><<~</span><span class="no">RUBY</span><span class="sh">
def foo
"LOL"
end
</span><span class="no">RUBY</span>
<span class="no">File</span><span class="p">.</span><span class="nf">open</span><span class="p">(</span><span class="s2">"foo.rb"</span><span class="p">,</span> <span class="s2">"w"</span><span class="p">)</span> <span class="p">{</span> <span class="o">|</span><span class="n">f</span><span class="o">|</span> <span class="n">f</span><span class="p">.</span><span class="nf">write</span><span class="p">(</span><span class="n">code</span><span class="p">)</span> <span class="p">}</span>
<span class="nb">require_relative</span> <span class="s2">"foo"</span>
<span class="no">TracePoint</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="ss">:line</span><span class="p">)</span> <span class="k">do</span> <span class="o">|</span><span class="n">_tp</span><span class="o">|</span>
<span class="n">foo</span>
<span class="k">end</span><span class="p">.</span><span class="nf">enable</span> <span class="k">do</span>
<span class="nb">sleep</span> <span class="mi">0</span>
<span class="k">end</span>
<span class="n">res</span> <span class="o">=</span> <span class="no">Coverage</span><span class="p">.</span><span class="nf">result</span>
<span class="nb">puts</span> <span class="n">res</span><span class="p">[</span><span class="no">File</span><span class="p">.</span><span class="nf">expand_path</span><span class="p">(</span><span class="s2">"foo.rb"</span><span class="p">)]</span>
</code></pre> Ruby master - Bug #16136 (Closed): String corruption in 2.6.4https://bugs.ruby-lang.org/issues/161362019-09-03T11:24:45Zdeivid (David Rodríguez)
<p>When trying to upgrade activeadmin's tests to use ruby 2.6.4, I got some very weird failures where some strings would end up containing random content. See <a href="https://circleci.com/gh/activeadmin/activeadmin/20329" class="external">https://circleci.com/gh/activeadmin/activeadmin/20329</a> for an example of those failures. Failures are somewhat random but the test suite seems to consistently fail on 2.6.4 and pass on 2.6.3. I also managed to reproduce the failures locally, sometimes very consistently, but now it's hardly ever happening... :/</p>
<p>I looked at the changes in 2.6.4 and it looks like <a href="https://bugs.ruby-lang.org/issues/16105" class="external">https://bugs.ruby-lang.org/issues/16105</a> and/or <a href="https://bugs.ruby-lang.org/issues/15946" class="external">https://bugs.ruby-lang.org/issues/15946</a> could be related, because the region of the Rails code where the corrupted string is created seems to be doing something similar to the reported issues: <a href="https://github.com/rails/rails/blob/b7e591a55f4de5f1511c3b9255b3b25159b8ba41/actionpack/lib/action_dispatch/routing/mapper.rb#L404-L412" class="external">https://github.com/rails/rails/blob/b7e591a55f4de5f1511c3b9255b3b25159b8ba41/actionpack/lib/action_dispatch/routing/mapper.rb#L404-L412</a>.</p>
<p>Sorry I'm not really sure how to create a reproducible example, or how to debug this issue. Just opening this in case it could help noticing something obviously wrong with the mentioned patches.</p> Ruby master - Feature #16043 (Closed): `$LOAD_PATH.resolve_feature_path` should not raisehttps://bugs.ruby-lang.org/issues/160432019-08-04T11:16:20Zdeivid (David Rodríguez)
<p>When I first tried this method, I was expecting it to return <code>nil</code> when the given feature is not found. This is because I read in the docs and discussion that this method only searches the feature in the LOAD_PATH, but does not attempt to load it. Raising a load error makes it look that this method tries to load the feature, but I don't think it does that.</p>
<p>Also returning <code>nil</code> seems friendlier to me because the "feature not found" case is more like an expected outcome of the method than a real error condition, so in most usages this error will actually be rescued for control flow.</p>
<p>I attach a patch with the change, and link to the GH PR: <a href="https://github.com/ruby/ruby/pull/2317" class="external">https://github.com/ruby/ruby/pull/2317</a>.</p> Ruby master - Feature #15912 (Closed): Allow some reentrancy during TracePoint eventshttps://bugs.ruby-lang.org/issues/159122019-06-11T13:25:42Zdeivid (David Rodríguez)
<p>I got a report in byebug about byebug being incompatible with zeitwerk. This one: <a href="https://github.com/deivid-rodriguez/byebug/issues/564" class="external">https://github.com/deivid-rodriguez/byebug/issues/564</a>. This is a problem because zeitwerk is the default Rails code loader, and byebug is the default Rails debugger.</p>
<p>Both of these tools rely on the TracePoint API:</p>
<ul>
<li>Byebug uses a bunch of TracePoint events to stop execution at certain points in your program.</li>
<li>Zeitwek uses <code>:class</code> events to be able to resolve some circular edge cases.</li>
</ul>
<p>I investigated the problem and I think the issue is that while stopped at the byebug prompt, we're actually in the middle of processing a TracePoint event. That means that further TracePoint events triggered at the byebug's prompt will be ignored, because otherwise we could get into an infinite loop where the handling of events would trigger more events that trigger themselves the execution of handlers again.</p>
<p>I understand why the TracePoint API does this, but if we could allow some level of reentrancy here, we could probably make these tools play nice together. I figure if we kept a stack of TracePoint event handlers being run, and check that the current event type is not already in the stack, we would allow :class events to be triggered from :line events, and I think that would allow Zeitwerk to work within byebug.</p>
<p>What do you think about this, <a class="user active user-mention" href="https://bugs.ruby-lang.org/users/17">@ko1 (Koichi Sasada)</a>?</p> Ruby master - Bug #15885 (Closed): Duplicated `:raise` tracepoint event when exception inside `lo...https://bugs.ruby-lang.org/issues/158852019-05-29T10:29:40Zdeivid (David Rodríguez)
<p>Hi!</p>
<p>A long time ago, <a href="https://github.com/ruby/ruby/commit/1998039ea4f867583d7e37ce200a88490707c330" class="external">this ruby-core change</a> broke a test in byebug related to post-mortem debugging. See <a href="https://github.com/deivid-rodriguez/byebug/issues/165" class="external">https://github.com/deivid-rodriguez/byebug/issues/165</a>.</p>
<p>The problem is that after the mentioned commit, the TracePoint API raises two <code>:trace</code> events when an exception happens during a <code>load</code> call. As a result, byebug ends up using the second <code>:raise</code> event, and that means post-mortem debugging leaves the user in an incorrect place.</p>
<p>I managed to workaround the issue inside byebug with <a href="https://github.com/deivid-rodriguez/byebug/pull/562" class="external">https://github.com/deivid-rodriguez/byebug/pull/562</a>, but I thought it would be worth mentioning here since it seems like incorrect behavior to me.</p>
<p>For what it's worth, reverting the referenced commit fixes the issue. I attach a patch doing that together with a test.</p> Ruby master - Feature #15868 (Closed): Implement `File.absolute_path?`https://bugs.ruby-lang.org/issues/158682019-05-23T09:53:13Zdeivid (David Rodríguez)
<p>Currently there's no way to check whether a path is absolute or not in a way that works accross OSs. The pathname library has the #absolute? method, but that only checks whether the path starts with a slash, which is not appropriate for Windows.</p>
<p>I thought of reimplementing it as something like File.absolute_path(self) == self, but that would mean accessing the filesystem, which I don't think we want here.</p>
<p>I also thought of implementing the "windows letter checks" in the pathname's library, but then I saw that those are already implemented in file.c, so I thought it would be a good idea to expose those. So I propose to add File.absolute_path? for this.</p>
<p>If this is accepted, I can do a follow-up PR to change Pathname#absolute? to delegate to File.absolute_path?.</p>
<p>What do you think?</p>
<p>I attach a patch to add <code>File.absolute_path?</code> here (I also opened a PR on Github: <a href="https://github.com/ruby/ruby/pull/2198" class="external">https://github.com/ruby/ruby/pull/2198</a>).</p> Ruby master - Feature #15861 (Open): Correctly parse `file:c:/path/to/file` URIshttps://bugs.ruby-lang.org/issues/158612019-05-18T15:21:01Zdeivid (David Rodríguez)
<p>Recently ruby has getting better at parsing URIs using the "file" scheme, with the addition of "URI::File". Still, some Windows edge cases are not implemented, and it would be nice to have them. For example, while the <a href="https://github.com/sporkmonger/addressable" class="external">addressable gem</a> can correct parse "file:c:/path/to/file", the builtin library is not that smart yet:</p>
<pre><code>irb(main):001:0> URI.parse("file:c:/path/to/file").path
=> nil
irb(main):002:0> require 'addressable'
=> true
irb(main):003:0> Addressable::URI.parse("file:c:/path/to/file").path
=> "c:/path/to/file"
</code></pre>
<p>I think this would be a matter of implementing <a href="https://tools.ietf.org/html/rfc8089#appendix-E.2" class="external">https://tools.ietf.org/html/rfc8089#appendix-E.2</a>, which is not normative but it would be certainly nice to have.</p> Ruby master - Misc #15610 (Rejected): Could bundler & rubygems be shipped in site_ruby?https://bugs.ruby-lang.org/issues/156102019-02-18T15:11:16Zdeivid (David Rodríguez)
<p>Currently bundler & rubygems are shipped together with the rest of the standard library (in <code>RbConfig::CONFIG["rubylibdir"]</code>). The fact that they share their folder with the rest of the standard library has caused some issues that wouldn't have happened if they were isolated. For example, <a href="https://bugs.ruby-lang.org/issues/15469" class="external">https://bugs.ruby-lang.org/issues/15469</a> or <a href="https://github.com/rubygems/rubygems/issues/2188" class="external">https://github.com/rubygems/rubygems/issues/2188</a>.</p>
<p>Also, when you run <code>gem update --system</code>, rubygems installs a copy of itself and bundler in site_ruby, so you currently end up with two copies of different versions of bundler and rubygems in different folders of the $LOAD_PATH.</p>
<p><a class="user active user-mention" href="https://bugs.ruby-lang.org/users/572">@hsbt (Hiroshi SHIBATA)</a> has fixed the above issues with a patch to bundler in <a href="https://github.com/bundler/bundler/pull/6941" class="external">https://github.com/bundler/bundler/pull/6941</a>, but I still wonder whether it could be cleaner to ship them in site_ruby directly, so that <code>gem update --system</code> overwrites them and you always have a single default copy of both rubygems and bundler.</p>
<p>Maybe this wouldn't be a good usage of site_ruby, and it's better to keep things as they are, but I figured I could ask ruby-core about it.</p>
<p>Thanks for what you do!</p> Ruby master - Bug #13011 (Closed): Make `trace_running` an integer flag againhttps://bugs.ruby-lang.org/issues/130112016-12-06T12:56:39Zdeivid (David Rodríguez)
<p>After <a href="https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/55038" class="external">https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/55038</a>, byebug's tests started to segfault. See, for example, <a href="https://travis-ci.org/deivid-rodriguez/byebug/jobs/130941967" class="external">https://travis-ci.org/deivid-rodriguez/byebug/jobs/130941967</a>.</p>
<p>I investigated a bit and it seems to me that the <code>trace_running</code> flag was not suitable to be converted to a bit field (at least not without extra changes), since reverting the changes to that flag fixes the problem.</p>
<p>Find the patch I used attached.</p>
<p>Thanks!</p> Ruby master - Bug #11668 (Closed): SEGV instead of SystemStackError when using the TracePoint APIhttps://bugs.ruby-lang.org/issues/116682015-11-09T04:38:07Zdeivid (David Rodríguez)
<p><strong>fixnum_monkey.rb</strong></p>
<pre><code>
class Fixnum
define_method(:to_s) do |*args|
to_default_s(*args)
end
alias_method :to_default_s, :to_s
end
</code></pre>
<p>If I use this code normally it gives me SystemStackError as expected</p>
<pre><code>$ ruby -e "load('fixnum_monkey.rb'); 5.to_s"
fixnum_monkey.rb:2:in `block in <class:Fixnum>': stack level too deep (SystemStackError)
from fixnum_monkey.rb:3:in `block in <class:Fixnum>'
from fixnum_monkey.rb:3:in `block in <class:Fixnum>'
from fixnum_monkey.rb:3:in `block in <class:Fixnum>'
from fixnum_monkey.rb:3:in `block in <class:Fixnum>'
from fixnum_monkey.rb:3:in `block in <class:Fixnum>'
from fixnum_monkey.rb:3:in `block in <class:Fixnum>'
from fixnum_monkey.rb:3:in `block in <class:Fixnum>'
from fixnum_monkey.rb:3:in `block in <class:Fixnum>'
... 5804 levels...
from fixnum_monkey.rb:3:in `block in <class:Fixnum>'
from fixnum_monkey.rb:3:in `block in <class:Fixnum>'
from fixnum_monkey.rb:3:in `block in <class:Fixnum>'
from -e:1:in `<main>'
</code></pre>
<p>But if I enable the <code>return</code> event of the TracePoint API before using it, I get a segfault</p>
<pre><code>$ ruby -e "load('fixnum_monkey.rb'); TracePoint.trace(:return) { |_tp| }; 5.to_s"
Violación de segmento
</code></pre> Backport21 - Backport #11651 (Closed): Please backport r48609https://bugs.ruby-lang.org/issues/116512015-11-03T12:30:49Zdeivid (David Rodríguez)
<p>Hi again!</p>
<p>Currently byebug's test suite passes in 2.1 except for two failing tests: one that would get fixed with the backport I requested yesterday (<a href="https://bugs.ruby-lang.org/issues/11646" class="external">https://bugs.ruby-lang.org/issues/11646</a>) and the other one by backporting <a href="https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/48609" class="external">https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/48609</a>.</p>
<p>So, if possible, it would be great to have this one backported too.</p>
<p>Thanks!</p> Backport21 - Backport #11646 (Closed): Please backport r51713https://bugs.ruby-lang.org/issues/116462015-11-02T19:55:29Zdeivid (David Rodríguez)
<p>Hi! I requested this in the original issue, but I happened to read this: <a href="https://bugs.ruby-lang.org/projects/ruby/wiki/HowToRequestBackport" class="external">https://bugs.ruby-lang.org/projects/ruby/wiki/HowToRequestBackport</a>, so I'm doing it the official way.</p>
<p>Could you please backport <a href="https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/51713" class="external">https://bugs.ruby-lang.org/projects/ruby-trunk/repository/revisions/51713</a> to 2.1?</p>
<p>Thanks!</p> Ruby master - Bug #10724 (Closed): [TracePointAPI] Missing return event from initialize method wh...https://bugs.ruby-lang.org/issues/107242015-01-09T10:43:57Zdeivid (David Rodríguez)
<p>The domain_name gem defines a DomainName object which has a pretty complex <code>initialize</code> method. The TracePoint API misses the return event from this method when instantiating a DomainName object.</p>
<p>I attach a failing test case.</p>
<p>Thanks!!</p> Ruby master - Feature #10589 (Open): [TracePoint API] Make THREAD_{BEGIN, END} events return some...https://bugs.ruby-lang.org/issues/105892014-12-11T16:27:00Zdeivid (David Rodríguez)
<p>Currently the :thread_begin and thread_end events return no context information at all</p>
<pre><code>TracePoint.trace(:thread_begin, :thread_end) do |tp|
puts "#{tp.defined_class}::#{tp.method_id}@#{tp.path}:#{tp.lineno}"
end
t = Thread.new do
sleep 1
end
t.join
</code></pre>
<p>prints just</p>
<pre><code>"Hi thread, ::@:0"
"Bye thread, ::@:0"
</code></pre>
<p>It'd be nice if they gave at least some file:line context information about the thread.</p>
<p>What do you think, <a class="user active user-mention" href="https://bugs.ruby-lang.org/users/17">@ko1 (Koichi Sasada)</a>? Would this be possible?</p>
<p>Thanks a lot</p> Ruby master - Bug #10449 (Closed): [TracePoint API] Duplicated line events when using parenthesishttps://bugs.ruby-lang.org/issues/104492014-10-29T15:08:44Zdeivid (David Rodríguez)
<p>Sometimes, when using parenthesis, I get duplicated lines events from the TracePoint API. See the failing test case, it generates 2 line events where I think it should generate just one.</p>
<pre><code>def test_no_duplicate_line_events
events = []
TracePoint.new(:line) { |tp| events << tp.event }.enable { a = (1) * 5 }
assert_equal [:line], events
end
</code></pre>
<p>Thanks!!</p> Ruby master - Bug #10148 (Closed): [TracePoint API] Extra block events generatedhttps://bugs.ruby-lang.org/issues/101482014-08-19T09:28:22Zdeivid (David Rodríguez)
<p>In the same example from <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: [TracePoint API] return event missing when raising exception (Closed)" href="https://bugs.ruby-lang.org/issues/9759">#9759</a> (which I attach here to provide a failing test), there is a couple of b_call/b_return events that I don't think should get generated. I pointed that out in this comment: <a href="https://bugs.ruby-lang.org/issues/9759#note-1" class="external">https://bugs.ruby-lang.org/issues/9759#note-1</a></p>
<p>This couple of events are not present in ruby's backtrace and sometimes they have a nil method_id which was making byebug crash as I was not expecting that. I haven't been able to reproduce this nil method_id thing in a toy program but in any case I think the proper solution to this would be not to generate these events.</p>
<p>Thanks!!</p> Ruby master - Bug #9937 (Closed): Segfault in the TracePoint APIhttps://bugs.ruby-lang.org/issues/99372014-06-12T16:33:16Zdeivid (David Rodríguez)
<p>Hi!</p>
<p>It seems that a regression bug has been recently introduced in the TracePoint API (maybe after changeset r45758). byebug's test suite works against 2.0 and 2.1, but segfaults against ruby-head. See <a href="https://travis-ci.org/deivid-rodriguez/byebug" class="external">https://travis-ci.org/deivid-rodriguez/byebug</a></p>
<p>Segfault occurs in <a href="https://github.com/deivid-rodriguez/byebug/blob/master/ext/byebug/byebug.c#L252" class="external">https://github.com/deivid-rodriguez/byebug/blob/master/ext/byebug/byebug.c#L252</a>, I'm guessing the method ID provided by the TracePoint API is nil, so the SYM2ID call fails.</p>
<p>I'm sorry I'm not currently able to properly investigate this.</p> Ruby master - Bug #9759 (Closed): [TracePoint API] return event missing when raising exceptionhttps://bugs.ruby-lang.org/issues/97592014-04-19T12:08:51Zdeivid (David Rodríguez)
<p>I think I found another bug in the TracePoint API, which seems related to <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: rb_mod_const_missing does not generate a c-return event (Closed)" href="https://bugs.ruby-lang.org/issues/9321">#9321</a>. In this case, the failing event is a return event from a method inside of which the exception was generated.</p>
<p>I wrote a failing test case, adapting the code from <a href="https://github.com/thoughtbot/factory_girl/blob/master/lib/factory_girl/strategy_syntax_method_registrar.rb" class="external">factory_girl</a>, which is where I first found the strange behaviour.</p>
<p>Thanks a lot in advance!</p> Ruby master - Bug #8886 (Closed): TracePoint API inconsistence when raise usedhttps://bugs.ruby-lang.org/issues/88862013-09-10T20:03:16Zdeivid (David Rodríguez)
<p>=begin<br>
When <code>raise</code> command is used, the TracePoint API triggers the following events in the following order</p>
<pre><code>1. RUBY_EVENT_C_CALL to the `raise` method
2. RUBY_EVENT_RAISE
3. RUBY_EVENT_C_RETURN
</code></pre>
<p>But what ruby actually does is</p>
<pre><code>1. Push frame into the stack when calling the `raise` c method.
2. Pop frame from the stack
3. And after popping the frame, raise the exception.
</code></pre>
<p>As you can see, 2 and 3 are reversed and this messes up byebug and (I guess) other users of the API.</p>
<p>To illustrate I use a similar program as I used in (invalid) <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: c method not pushed into the callstack when called, but popped when returned (Closed)" href="https://bugs.ruby-lang.org/issues/8538">#8538</a></p>
<pre><code>tp = TracePoint.trace do |tp|
warn "%-8s %-11p" % [tp.event, tp.method_id]
end
raise "bang"
</code></pre>
<p>Actual output</p>
<pre><code>c_return :trace
line nil
c_call :raise
c_call :new
c_call :initialize
c_return :initialize
c_return :new
c_call :backtrace
c_return :backtrace
raise nil
c_return :raise
test_bug.rb:4:in `<main>': bang (RuntimeError)
</code></pre>
<p>Expected output</p>
<pre><code>c_return :trace
line nil
c_call :raise
c_call :new
c_call :initialize
c_return :initialize
c_return :new
c_return :raise
c_call :backtrace
c_return :backtrace
raise nil
test_bug.rb:4:in `<main>': bang (RuntimeError)
</code></pre>
<p>I've made a patch that solves the issue and, as a result, the problems byebug is having. Please review and excuse me if I'm not being able to properly explain myself.</p>
<p>Thanks a lot!<br>
=end</p> Ruby master - Bug #8802 (Closed): Minor improvements in socket extension docshttps://bugs.ruby-lang.org/issues/88022013-08-19T07:26:40Zdeivid (David Rodríguez)Ruby master - Bug #8622 (Closed): Tracepoint API: B_RETURN_EVENT not triggered when "return" used...https://bugs.ruby-lang.org/issues/86222013-07-11T01:57:17Zdeivid (David Rodríguez)
<p>=begin</p>
<p>I'm using the Tracepoint API in my gem and I noticed that when the keyword <code>return</code> is used inside a lambda, a block return event (B_RETURN_EVENT) is not triggered. For example, I would expect the same number of B_CALL_EVENT and B_RETURN_EVENT in the piece of code</p>
<pre><code>TracePoint.new(:b_call, :b_return) do |tp|
warn tp.event
end.enable
a = lambda { return "hola" }.call
# Output:
# b_call
#
# Expected Output:
# b_call
# b_return
</code></pre>
<p>This seems very similar to issue <a class="issue tracker-4 status-5 priority-4 priority-default closed" title="Backport: Tracepoint API: B_RETURN_EVENT not triggered when "next" used (Closed)" href="https://bugs.ruby-lang.org/issues/8489">#8489</a>, so hopefully the fix would be as simple as that one.</p>
<p>Thanks a lot.<br>
=end</p> Ruby master - Bug #8538 (Closed): c method not pushed into the callstack when called, but popped ...https://bugs.ruby-lang.org/issues/85382013-06-17T22:16:38Zdeivid (David Rodríguez)
<p>See the following example:</p>
<pre><code>trace = TracePoint.new do |tp|
puts "Event: #{tp.event}, Method: #{tp.method_id}\n"
puts "Stack: #{caller}\n\n"
end
trace.enable
fail "bang!"
</code></pre>
<p>The output shows:</p>
<pre><code>Event: c_return, Method: enable
Stack: ["trace.rb:6:in `<main>'"]
Event: line, Method:
Stack: ["trace.rb:8:in `<main>'"]
Event: c_call, Method: fail
Stack: ["trace.rb:8:in `<main>'"]
Event: c_call, Method: new
Stack: ["trace.rb:8:in `fail'", "trace.rb:8:in `<main>'"]
Event: c_call, Method: initialize
Stack: ["trace.rb:8:in `new'", "trace.rb:8:in `fail'", "trace.rb:8:in `<main>'"]
Event: c_return, Method: initialize
Stack: ["trace.rb:8:in `new'", "trace.rb:8:in `fail'", "trace.rb:8:in `<main>'"]
Event: c_return, Method: new
Stack: ["trace.rb:8:in `fail'", "trace.rb:8:in `<main>'"]
Event: c_call, Method: backtrace
Stack: ["trace.rb:8:in `<main>'"]
Event: c_return, Method: backtrace
Stack: ["trace.rb:8:in `<main>'"]
Event: raise, Method:
Stack: ["trace.rb:8:in `<main>'"]
Event: c_return, Method: fail
Stack: ["trace.rb:8:in `<main>'"]
trace.rb:8:in `<main>': bang! (RuntimeError)
</code></pre>
<p>It looks like the method "initialize" is not pushed into the stack when called, but something (the previous method call) is popped when returning from it.</p>
<p>Thanks a lot.</p> Backport200 - Backport #8489 (Closed): Tracepoint API: B_RETURN_EVENT not triggered when "next" usedhttps://bugs.ruby-lang.org/issues/84892013-06-05T00:27:51Zdeivid (David Rodríguez)
<p>I'm using the Tracepoint API in my gem and I notice that when the keyword next is used inside a block, a block return event (B_RETURN_EVENT) is not triggered. For example, I would expect the same number of B_CALL_EVENT and B_RETURN_EVENT in the piece of code:</p>
<p>traceBlocks = TracePoint.new(:b_call, :b_return) do |tp|<br>
p "#{tp.event == :b_call ? 'Block called' : 'Block returned'}"<br>
end.enable do<br>
3.times do<br>
next<br>
end<br>
end</p>
<p>but instead there are 4 B_CALL_EVENT and 1 B_RETURN_EVENT. As I understand it, "next" causes the block to exit immediately, returning control to the iterator, which may invoke the block again, so I would say a block return event should be triggered.</p>
<p>Thanks a lot.</p>