The remote fetcher only works with certain schemes (`http`, `https`, `s3`, and `file`). It's possible for other schemes to show up in this code and it can cause bugs. Before this patch, doing `gem install path:///hello` would result in...tenderlovemaking (Aaron Patterson)
I don't think these methods are hotspots, and since gem specifications are sometimes serialized to yaml / marshal, I think we should remove as many instance variables as possible https://github.com/rubygems/rubygems/commit/40490d918btenderlovemaking (Aaron Patterson)
+1, I really appreciate @Earlopain's contributions, and I think they would make a great addition to the team (especially helping with Prism)tenderlovemaking (Aaron Patterson)
* [Feature #20163] Add Integer#popcount * Add a method for counting "on" bits in an integer * Raises an exception for negative numbers * Method would be helpful for bitsets, bitboards, and other data structurestenderlovemaking (Aaron Patterson)
This allows us to use the "last" of the enums in order to make masks, etc. This particular commit uses the call flag's last enum field as an offset so that we can define "private" flags but not accidentally clobber any newly added call ...tenderlovemaking (Aaron Patterson)
I think this is a good idea. I recall discussing this type of feature with @kddnewton at one point. He had some ideas about implementing it, but I don't recall the exact ideas. The use case seems very clear though.tenderlovemaking (Aaron Patterson)
`normalize_path` is a pretty hot path, it's called many times per file in each gem. Since the platform isn't going to change from call to call, we can conditionally define `normalize_path` based on the value of `Gem.win_platform?`. http...tenderlovemaking (Aaron Patterson)
`normalize_path` is a pretty hot path, it's called many times per file in each gem. Since the platform isn't going to change from call to call, we can conditionally define `normalize_path` based on the value of `Gem.win_platform?`. http...tenderlovemaking (Aaron Patterson)
When we're extracting a gem, it should be extracted to an empty directory. Trying to remove every file before extracting the file greatly slows the tar extraction process. This change increases tar extraction speed by about 10%: Maste...tenderlovemaking (Aaron Patterson)