Bug #21855
closedBundle `win32-registry` or implement it without `fiddle`
Description
win32-registry (a default gem), is currently implemented via fiddle (a bundled gem). This makes it impossible to use under bundler without adding fiddle to the gemfile.
In the past it has lead to issues like https://bugs.ruby-lang.org/issues/21645. It was solved by simply not using win32-registry anymore in resolv and implementing it via C (https://github.com/ruby/resolv/pull/110), although the overarching issue is still present. There is also a report for this for rubygems https://github.com/ruby/rubygems/issues/9277. This should be solved by updating the vendored resolv version I think.
Still, the dependecy relation between win32-registry and fiddle is pretty incompatible. A default gem can't depend on a bundled gem without breaking dependency resolution.
To solve this it would have to be implemented without using fiddle, similar to how resolv did it. But now that resolv doesn't use win32-registry, I don't think anything in ruby uses it anymore. So moving it to a bundled gem could also be a solution without rewriting the whole thing.
Here is an issue about this in the win32-registry repo: https://github.com/ruby/win32-registry/issues/11