Project

General

Profile

Activity

From 03/10/2021 to 03/16/2021

03/16/2021

11:52 PM Feature #17718: a method paramaters object that can be pattern matched against
def get_param(name, city: nil, state:nil, zip: nil, &error)
case parameters_match
in [String, String, String , String, Proc]
puts 'all method types matched against'
in [String, nil, String, nil,nil]
puts 'only ci...
dsisnero (Dominic Sisneros)
11:48 PM Feature #17685: Marshal format for out of band buffer objects
that is the case now. I am proposing changing Marshal to allow Marshal to load into an existing object for object identities. This is one of the things python's latest pickle format allows. They use it to marshal large numpy arrays to ... dsisnero (Dominic Sisneros)
07:49 AM Feature #17685: Marshal format for out of band buffer objects
You cannot get the original object from `Marshal.load`. This is `Marshal.load`'s nature.
`Marshal.load` always creates a new object (the different object from the original one).
`Object#equal?` compares object identities, so `b.equal?...
mrkn (Kenta Murata)
07:25 PM Bug #17519: set_visibility fails when a prepended module and a refinement both exist
fledman (David Feldman) wrote in #note-6:
> do you plan to backport the fix to any of the supported 2.x versions?
The choice of which patches to backport is up to the branch maintainer. I've marked this for backporting, but it is the...
jeremyevans0 (Jeremy Evans)
07:12 PM Bug #17519: set_visibility fails when a prepended module and a refinement both exist
do you plan to backport the fix to any of the supported 2.x versions? fledman (David Feldman)
07:10 PM Bug #17519 (Closed): set_visibility fails when a prepended module and a refinement both exist
Applied in changeset commit:git|58660e943488778563b9e41005a601e9660ce21f.
----------
Skip refined method when exporting methods with changed visibility
Previously, attempting to change the visibility of a method in a
singleton class fo...
jeremyevans (Jeremy Evans)
07:10 PM Revision 58660e94 (git): Skip refined method when exporting methods with changed visibility
Previously, attempting to change the visibility of a method in a
singleton class for a class/module that is prepended to and refined
would raise a NoMethodError.
Fixes [Bug #17519]
jeremyevans (Jeremy Evans)
06:47 PM Bug #17725: Prepend breaks ability to override optimized methods
One more detail.
``` ruby
module Dummy; end
class String
alias_method(:old_plus, :+)
def + other
puts 'blah blah'
old_plus(other)
end
end
String.prepend(Dummy)
class String
alias_method(:old_plus2, :+)
def + other
...
joshuadreed (Josh Reed)
06:15 PM Bug #17725: Prepend breaks ability to override optimized methods
So, I set out to test my hypothesis regarding refinements. I've never used refinements prior to this, so it's still possible there's an interaction somewhere, but at least not in the way I was thinking.
``` ruby
module Dummy; end
...
joshuadreed (Josh Reed)
05:34 PM Bug #17725: Prepend breaks ability to override optimized methods

``` ruby
module Dummy; end
class Foo
def ten
10
end
end
Foo.prepend(Dummy)
class Foo
alias_method(:old_ten, :ten)
def ten
puts 'blah blah'
old_ten
end
end
Foo.new.ten
> blah blah
...
joshuadreed (Josh Reed)
05:26 PM Bug #17725 (Closed): Prepend breaks ability to override optimized methods
Prepending any module to `String` and `Hash` (and possibly other or all classes?) blocks the ability to `alias`
As an example:
``` ruby
module Dummy; end
# String.prepend(Dummy)
class String
alias_method(:old_plus, :+)
def ...
joshuadreed (Josh Reed)
05:42 PM Revision 756e8a2c (git): test_zlib(test_path_tmpfile): fix Zlib instance leak
follow-up: commit cf831f49189c4a890da6845e39199a5dfaf4fb48 Sorah Fukumori
05:16 PM Revision cf831f49 (git): zlib: fix Gzip{Writer,Reader}.new fails with a O_TMPFILE file
Sorah Fukumori
03:34 PM Feature #13820: Add a nil coalescing operator
This is also related to the Hash#fetch_set proposal
``` ruby
cache.fetch_set(key) { calculation }
```
https://bugs.ruby-lang.org/issues/17342
p8 (Petrik de Heus)
12:07 AM Feature #13820: Add a nil coalescing operator
Here's example code which works around the lack of a ??= operator in the wild:
https://github.com/chef/chef/blob/4d3b847aee1b917bb139862c623e9633d180fb31/lib/chef/chef_fs/file_system/chef_server/data_bag_dir.rb#L43-L48
```
...
lamont (Lamont Granquist)
03:19 PM Revision a47697aa (git): LLDB: Introduce dump_page helper
This dumps out object type information for every object on a page in the
form:
bits [LM R ] T_CLASS [389]: Addr: 0x1007ebcf0 (flags: 0x100000062)
eightbitraptor (Matt V-H)
03:19 PM Revision 1dca3335 (git): LLDB: Extract a dump_bits function from rp
that dumps the heap page bitmaps for a slot eightbitraptor (Matt V-H)
03:01 PM Revision d33159a2 (git): * 2021-03-17 [ci skip]
git[bot]
02:06 PM Revision 382d3a45 (git): Improve Enumerable#tally performance
Iteration per second (i/s)
| |compare-ruby|built-ruby|
|:------|-----------:|---------:|
|tally | 52.814| 114.936|
| | -| 2.18x|
nobu (Nobuyoshi Nakada)
01:30 PM Revision e61e9bcf (git): test/openssl/test_config: skip tests for .include on older OpenSSL
The .include directive was initially added by OpenSSL 1.1.1, but the
syntax was later modified in 1.1.1b to improve compatibility with the
parser in <= 1.1.0. The test case expects 1.1.1b's parser.
https://github.com/openssl/openssl/com...
rhenium (Kazuki Yamaguchi)
01:30 PM Revision 44d67128 (git): test/openssl/test_cipher: skip AES-CCM tests on OpenSSL <= 1.1.1b
AES CCM mode in OpenSSL <= 1.1.1b was overly strict in the parameters
assignment order. This has been relaxed by OpenSSL 1.1.1c.
https://github.com/openssl/openssl/commit/b48e3be947ddc5da6b5a86db8341081c72b9a4ee
The test case is failin...
rhenium (Kazuki Yamaguchi)
12:40 PM Revision 6c7cb00c (git): test/ruby/test_regexp.rb: Avoid "ambiguity between regexp and two divisions"
mame (Yusuke Endoh)
10:58 AM Feature #17608: Compact and sum in one step
FWIW, this was confirmed as rejected by matz:
https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20210216Japan.md#feature-17608-compact-and-sum-in-one-step-sawa
Eregon (Benoit Daloze)
10:37 AM Revision 7f0b3fb9 (git): [ruby/openssl] sample: update obsolete API use
https://github.com/ruby/openssl/commit/dafa851c0d rhenium (Kazuki Yamaguchi)
10:37 AM Revision e35d3623 (git): [ruby/openssl] sample: avoid "include OpenSSL"
It is not a common practice and should not be done since it causes name
clash: for example, Digest and Random are provided by other standard
libraries of Ruby.
Fixes: https://github.com/ruby/openssl/issues/419
https://github.com/ruby/o...
rhenium (Kazuki Yamaguchi)
10:37 AM Revision a3f97007 (git): [ruby/openssl] test: adjust test cases for LibreSSL 3.2.4
LibreSSL 3.2.4 made the certificate verification logic back closer to
pre-3.2.2 one, which is more compatible with OpenSSL.
Part of the fixes added by commit a0e98d48c91f ("Enhance TLS 1.3 support
on LibreSSL 3.2/3.3", 2020-12-03) is re...
rhenium (Kazuki Yamaguchi)
10:37 AM Revision 1eb6d8aa (git): [ruby/openssl] bn: check -1 return from BIGNUM functions
Although the manpage says that BIGNUM functions return 0 on error,
OpenSSL versions before 1.0.2n and current LibreSSL versions may return
-1 instead.
Note that the implementation of OpenSSL::BN#mod_inverse is extracted
from BIGNUM_2c()...
rhenium (Kazuki Yamaguchi)
10:37 AM Revision 1ad22247 (git): [ruby/openssl] Fixed the results of OpenSSL::Timestamp::Response#failure_info
Made stored values `Symbol`s instead of `ID`s.
Fixes https://bugs.ruby-lang.org/issues/17625
Co-Authored-By: xtkoba (Tee KOBAYASHI) <xtkoba+ruby@gmail.com>
https://github.com/ruby/openssl/commit/f2d004679a
nobu (Nobuyoshi Nakada)
10:37 AM Revision e2ce3830 (git): [ruby/openssl] Enhance TLS 1.3 support on LibreSSL 3.2/3.3
This defines TLS1_3_VERSION when using LibreSSL 3.2+. LibreSSL 3.2/3.3
doesn't advertise this by default, even though it will use TLS 1.3
in both client and server modes.
Changes between LibreSSL 3.1 and 3.2/3.3 broke a few tests, Defi...
jeremyevans (Jeremy Evans)
10:16 AM Revision 4756ac00 (git): [ruby/openssl] pkey/ec: remove OpenSSL::PKey::EC::Group.new(ec_method) form
The form created an empty EC_GROUP object with the specified EC_METHOD.
However, the feature was unfinished and not useful in any way because
OpenSSL::PKey::EC::Group did not implement wrappers for necessary
functions to set actual param...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision d47210b1 (git): [ruby/openssl] ssl: remove SSL::SSLContext#tmp_ecdh_callback
The underlying API SSL_CTX_set_tmp_ecdh_callback() was removed by
LibreSSL >= 2.6.1 and OpenSSL >= 1.1.0, in other words, it is not
supported by any non-EOL versions of OpenSSL.
The wrapper was initially implemented in Ruby 2.3 and has ...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 945ed408 (git): [ruby/openssl] ssl: retry write on EPROTOTYPE on macOS
Errno::EPROTOTYPE is not supposed to be raised by SSLSocket#write.
However, on macOS, send(2) which is called via SSL_write() can
occasionally return EPROTOTYPE. Retry SSL_write() so that we get a
proper error, just as ext/socket does.
...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 0b1bb1bc (git): [ruby/openssl] test/openssl/test_x509store: tidy up tests for X509::Store#add_cert
Rename the test case to test_add_cert_duplicate to clarify what it is
actually testing.
https://github.com/ruby/openssl/commit/4cc3c4110f
rhenium (Kazuki Yamaguchi)
10:16 AM Revision d4ad1e71 (git): [ruby/openssl] test/openssl/test_x509store: break up test_verify
The test case is huge and too complex. Break it up into separate test
cases for better documentation.
https://github.com/ruby/openssl/commit/61012df03b
rhenium (Kazuki Yamaguchi)
10:16 AM Revision c46b1f0b (git): [ruby/openssl] x509store: update rdoc for X509::Store and X509::StoreContext
Add more details about each method, and add reference to OpenSSL man
pages.
https://github.com/ruby/openssl/commit/02b6f82c73
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 62d889c8 (git): [ruby/openssl] x509store: fix memory leak in X509::StoreContext.new
The certificate passed as the second argument was not properly free'd
in the error paths.
https://github.com/ruby/openssl/commit/9561199b9f
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 871c61d5 (git): [ruby/openssl] x509store: avoid ossl_raise() calls with NULL message
Use the OpenSSL function name that caused the error to generate a better
error message.
https://github.com/ruby/openssl/commit/b31809ba3d
rhenium (Kazuki Yamaguchi)
10:16 AM Revision be3ba2ee (git): [ruby/openssl] x509store: refactor X509::StoreContext#chain
Use ossl_x509_sk2ary() to create an array of OpenSSL::X509::Certificate
from STACK_OF(X509).
https://github.com/ruby/openssl/commit/fa1da69f92
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 08c99a42 (git): [ruby/openssl] x509store: emit warning if arguments are given to X509::Store.new
Anything passed to OpenSSL::X509::Store.new was always ignored. Let's
emit an explicit warning to not confuse users.
https://github.com/ruby/openssl/commit/d173700eeb
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 88b8b3ac (git): [ruby/openssl] x509store: let X509::Store#add_file raise TypeError if nil is given
Undo special treatment of nil and simply pass the value to
StringValueCStr().
nil was never a valid argument for the method; OpenSSL::X509::StoreError
with an unhelpful error message "system lib" was raised in that case.
https://github...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 92f19f7b (git): [ruby/openssl] [DOC] Fix RDoc markup
https://github.com/ruby/openssl/commit/f36af95519 no6v (Nobuhiro IMAI)
10:16 AM Revision be1e88a2 (git): [ruby/openssl] Fix typo in documentation
The socket is called ssl_connection, not connection
https://github.com/ruby/openssl/commit/642783aeda
Claus Lensbøl
10:16 AM Revision 81325db5 (git): [ruby/openssl] ssl: initialize verify_mode and verify_hostname with default values
SSLContext's verify_mode expects an SSL_VERIFY_* constant (an integer)
and verify_hostname expects either true or false. However, they are set
to nil after calling OpenSSL::SSL::SSLContext.new, which is surprising.
Set a proper value to...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 3b43e3fa (git): [ruby/openssl] test/openssl/test_ssl: revise verify_mode test cases
Add explicit test cases for the behaviors with different verify_mode.
If we made a bug in verify_mode, we would notice it by failures of other
test cases, but there were no dedicated test cases for verify_mode.
https://github.com/ruby/o...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 57a57e6e (git): [ruby/openssl] test/openssl/test_ssl: revise a test case for client_cert_cb
The current test_client_auth_public_key test case checks that supplying
a PKey containing only public components through client_cert_cb will
cause handshake to fail. While this is a correct behavior as a whole,
the assertions are mislead...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision c71afc9d (git): [ruby/openssl] Add compare? method to OpenSSL::PKey that wraps EVP_PKEY_cmp.
Explicitly check for type given some conflicting statements within openssl's
documentation around EVP_PKEY_cmp and EVP_PKEY_ASN1_METHOD(3).
Add documentation with an example for compare?
https://github.com/ruby/openssl/commit/0bf51da6e2
rinzler (Colton Jenkins)
10:16 AM Revision da6341b7 (git): [ruby/openssl] User lower case cipher names for maximum compatibility
We ran into some Linux-based systems not accepting the upper case variant
https://github.com/ruby/openssl/commit/7bc49121d5
bdewater (Bart de Water)
10:16 AM Revision 13198d49 (git): [ruby/openssl] hmac: implement base64digest methods
OpenSSL::HMAC implements the similar interface as ::Digest. Let's add
base64digest methods to OpenSSL::HMAC, too, for feature parity.
https://github.com/ruby/openssl/commit/098bcb68af
rhenium (Kazuki Yamaguchi)
10:16 AM Revision b91f62f3 (git): [ruby/openssl] hmac: migrate from the low-level HMAC API to the EVP API
Use the EVP API instead of the low-level HMAC API. Use of the HMAC API
has been discouraged and is being marked as deprecated starting from
OpenSSL 3.0.0.
The two singleton methods OpenSSL::HMAC, HMAC.digest and HMAC.hexdigest
are now i...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision baea36c9 (git): [ruby/openssl] hmac: add a test case for OpenSSL::HMAC singleton methods
https://github.com/ruby/openssl/commit/8253d7c9ce rhenium (Kazuki Yamaguchi)
10:16 AM Revision fde9f806 (git): [ruby/openssl] pkey/ec: deprecate OpenSSL::PKey::EC::Point#mul(ary, ary [, bn])
Deprecate it for future removal. However, I do not expect any
application is affected by this.
The other form of calling it, PKey::EC::Point#mul(bn [, bn]) remains
untouched.
PKey::EC::Point#mul calls EC_POINTs_mul(3) when multiple BNs...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 15863069 (git): [ruby/openssl] digest, hmac, ts, x509: use IO.binread in examples where appropriate
IO.read may mangle line separator, which will corrupt binary data
including DER-encoded X.509 certificates and such.
Fixes: https://github.com/ruby/openssl/issues/243
https://github.com/ruby/openssl/commit/93213b2730
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 9d3ffe09 (git): [ruby/openssl] pkey: reimplement PKey::DH#compute_key and PKey::EC#dh_compute_key
Use the new OpenSSL::PKey::PKey#derive instead of the raw
{EC,}DH_compute_key(), mainly to reduce amount of the C code.
https://github.com/ruby/openssl/commit/28edf6bafc
rhenium (Kazuki Yamaguchi)
10:16 AM Revision fbadb01d (git): [ruby/openssl] pkey: add PKey::PKey#derive
Add OpenSSL::PKey::PKey#derive as the wrapper for EVP_PKEY_CTX_derive().
This is useful for pkey types that we don't have dedicated classes, such
as X25519.
https://github.com/ruby/openssl/commit/28f0059bea
rhenium (Kazuki Yamaguchi)
10:16 AM Revision b2dc4880 (git): [ruby/openssl] pkey: support 'one-shot' signing and verification
OpenSSL 1.1.1 added EVP_DigestSign() and EVP_DigestVerify() functions
to the interface. Some EVP_PKEY methods such as PureEdDSA algorithms
do not support the streaming mechanism and require us to use them.
https://github.com/ruby/openss...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 5cae2896 (git): [ruby/openssl] pkey: port PKey::PKey#sign and #verify to the EVP_Digest* interface
Use EVP_DigestSign*() and EVP_DigestVerify*() interface instead of the
old EVP_Sign*() and EVP_Verify*() functions. They were added in OpenSSL
1.0.0.
Also, allow the digest to be specified as nil, as certain EVP_PKEY types
don't expect ...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 1e3590fe (git): [ruby/openssl] pkey: add PKey.generate_parameters and .generate_key
Add two methods to create a PKey using the generic EVP interface. This
is useful for the PKey types we don't have a dedicated class.
https://github.com/ruby/openssl/commit/d8e8e57de9
rhenium (Kazuki Yamaguchi)
10:16 AM Revision d60ab953 (git): [ruby/openssl] test/openssl/test_ssl: fix flaky test case
Fix test_socket_open_with_local_address_port_context.
Often with MinGW, it seems EACCES is returned on bind when the port
number is unavailable. Ignore it just as we do for EADDRINUSE and
continue searching free port number.
Fixes: 98f...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 498c8e8f (git): [ruby/openssl] pkey: assume generic PKeys contain private components
The EVP interface cannot tell whether if a pkey contains the private
components or not. Assume it does if it does not respond to #private?.
This fixes the NoMethodError on calling #sign on a generic PKey.
https://github.com/ruby/openssl...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 1f446406 (git): [ruby/openssl] pkey: refactor #export/#to_pem and #to_der
Add ossl_pkey_export_traditional() and ossl_pkey_export_spki() helper
functions, and use them. This reduces code duplication.
https://github.com/ruby/openssl/commit/56f0d34d63
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 707e3d49 (git): [ruby/openssl] pkey: refactor DER/PEM-encoded string parsing code
Export the flow used by OpenSSL::PKey.read and let the subclasses call
it before attempting other formats.
https://github.com/ruby/openssl/commit/d963d4e276
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 10d36084 (git): [ruby/openssl] pkey: prefer PKey.read over PKey::RSA.new in docs
https://github.com/ruby/openssl/commit/cf92a3ffba rhenium (Kazuki Yamaguchi)
10:16 AM Revision efad0166 (git): [ruby/openssl] pkey: have PKey.read parse PEM-encoded DHParameter
Try PEM_read_bio_Parameters(). Only PEM format is supported at the
moment since corresponding d2i_* functions are not provided by OpenSSL.
https://github.com/ruby/openssl/commit/867e5c021b
rhenium (Kazuki Yamaguchi)
10:16 AM Revision c157f6e7 (git): [ruby/openssl] pkey: inline {rsa,dsa,dh,ec}_instance()
Merge the code into the callers so that the wrapping Ruby object is
allocated before the raw key object is allocated. This prevents possible
memory leak on Ruby object allocation failure, and also reduces the
lines of code.
https://gith...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 27859c09 (git): [ruby/openssl] pkey: simplify ossl_pkey_new()
ossl_{rsa,dsa,dh,ec}_new() called from this function are not used
anywhere else. Inline them into pkey_new0() and reduce code
duplication.
https://github.com/ruby/openssl/commit/94aeab2f26
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 10289e9f (git): [ruby/openssl] config: replace DupConfigPtr() with GetConfig()
Now that OpenSSL::Config wraps a real CONF object, the caller can just
borrow it rather than creating a new temporary CONF object. CONF object
is usually treated as immutable.
DupConfigPtr() is now removed, and GetConfig() is exported i...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 22aeb637 (git): [ruby/openssl] config: revert to C implementation of OpenSSL::Config
Revert OpenSSL::Config to using the OpenSSL API and remove our own
parser implementation for the config file syntax.
OpenSSL::Config now wraps a CONF object. Accessor methods deal with the
object directly rather than Ruby-level internal...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 7c13d2b3 (git): [ruby/openssl] test/openssl/test_config: skip test_get_value_ENV on LibreSSL
LibreSSL has removed the feature to map environment variables onto the
"ENV" section.
https://github.com/ruby/openssl/commit/b70817faec
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 0c667846 (git): [ruby/openssl] test/openssl/test_config: fix non-deterministic test case
Sort keys of a section before comparing. The ordering is not part of the
API. This can cause a test failure if we use OpenSSL's C implementation.
Fixes: 2ad65b5f673f ("config: support .include directive", 2018-08-16)
https://github.com...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision ffc01afc (git): [ruby/openssl] test/openssl/test_config: add missing test case for Config.parse_config
https://github.com/ruby/openssl/commit/9ce2ccf36d rhenium (Kazuki Yamaguchi)
10:16 AM Revision 67f5847c (git): [ruby/openssl] config: remove deprecated methods
Remove 4 deprecated methods.
The following two methods have been marked as deprecated since 2003,
by r4531 (ruby.git commit 78ff3833fb67c8005a9b851037e74b3eea940aa3).
- OpenSSL::Config#value
- OpenSSL::Config#section
Other two metho...
rhenium (Kazuki Yamaguchi)
10:16 AM Revision 4d8bce22 (git): [ruby/openssl] Define Cipher #ccm_data_len= for CCM mode ciphers
Allow specifying just length to #update
CCM mode ciphers need to specify the total plaintext or ciphertext
length to EVP_CipherUpdate.
Update the link to the tests file
Define Cipher#ccm_data_len= for CCM mode ciphers
Add a unit test...
Spencer McIntyre
06:47 AM Revision fad3412d (git): [ruby/rdoc] Get rid of a trailing space
https://github.com/ruby/rdoc/commit/7b7b91768e nobu (Nobuyoshi Nakada)
06:47 AM Revision ff9a0088 (git): [ruby/rdoc] Suppress unused variable warning of "text"
https://github.com/ruby/rdoc/commit/3a4120b155 aycabta (aycabta .)
06:47 AM Revision 61a29a41 (git): [ruby/rdoc] Allow empty .rdoc_options
https://github.com/ruby/rdoc/commit/0c8cb25b50 aycabta (aycabta .)
06:47 AM Revision 971a0cd2 (git): [ruby/rdoc] Allow partial default values to be overridden with .rdoc_options
https://github.com/ruby/rdoc/commit/e14800891f aycabta (aycabta .)
06:47 AM Revision de8e6218 (git): [ruby/rdoc] Fixed CodeFence without blank lines
Currently a fenced code block needs a preceding blank line, it
should not be required, as:
https://github.github.com/gfm/#fenced-code-blocks
> A fenced code block may interrupt a paragraph, and does not
> ...
Just recommended:
https://do...
nobu (Nobuyoshi Nakada)
06:47 AM Revision 10b08206 (git): [ruby/rdoc] Add table style
https://github.com/ruby/rdoc/commit/2219c5ae80 nobu (Nobuyoshi Nakada)
06:47 AM Revision 3651f678 (git): [ruby/rdoc] Support GFM table
https://github.com/ruby/rdoc/commit/9dc933df16 nobu (Nobuyoshi Nakada)
06:47 AM Revision 05898c5b (git): [ruby/rdoc] Update Rdoc.css sidebar panel.
Updates css so the sidebar look like a panel instead of looking like chopped edges.
https://github.com/ruby/rdoc/commit/b0098c6d72
Pankaj Doharey
05:07 AM Revision 31b19ba8 (git): Fix a link [ci skip]
znz (Kazuhiro NISHIYAMA)
02:59 AM Bug #16996: Hash should avoid doing unnecessary rehash
@knu I propose to modify it slightly in https://github.com/ruby/ruby/pull/4272 marcandre (Marc-Andre Lafortune)
02:00 AM Bug #17723: autoconf 2.70+ is not working with master branch
Regardless whether it depends on automake or not, it would be great to have `autogen.sh`. I'm used to `autoconf`, and I have never heard `autoreconf -i` until this issue. Also, I had to change RubyCI code to support the new build process... mame (Yusuke Endoh)

03/15/2021

11:50 PM Feature #13820: Add a nil coalescing operator
This would cut down on a lot of bugs dealing with lazy initialization of values where `false` is valid and needs to be remembered:
```
# hammers on the expensive determination method if it returns false
def should_dosomething?
@s...
lamont (Lamont Granquist)
11:31 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
I forgot another place I use `--disable-gems`. I think RubyGems does lots of IO at startup, and IO is extremely slow on my Raspberry PI. I'm using Ruby on Raspberry PI for some IoT stuff around my house and I use `--disable-gems` in th... tenderlovemaking (Aaron Patterson)
10:23 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
Another use case: Bundler's `--standalone` mode knows all gem directories and doesn't need to load either RubyGems or Bundler, which can save quite some time on application startup.
It seems a shame if it would still load RubyGems needle...
Eregon (Benoit Daloze)
05:56 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
I also have a use case where I use `--disable-gems` for performance. I maintain a tool that provides some shell hooks in ruby, and any slow down in getting to a prompt is incredibly noticeable. lugray (Lisa Ugray)
05:41 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
I like using `--disable-gems` for scripts that need to be fast. For example, I call `ruby` from Vim to get some information about the Ruby environment:
```
" Add stdlib of environment's ruby to path
let g:stdlib = system('ruby --dis...
tenderlovemaking (Aaron Patterson)
11:15 PM Feature #17674 (Closed): Proposal: `Method#source_location` or `Method#owner` for refined methods
jeremyevans0 (Jeremy Evans)
10:37 PM Feature #17674: Proposal: `Method#source_location` or `Method#owner` for refined methods
xtkoba (Tee KOBAYASHI) wrote in #note-3:
> The example code in #note-2 does not seem to refine `Range#cover?`. This method is defined natively in `range.c`, and so the behavior is expected (`Method#source_location` should return `nil`)....
AlexWayfer (Alexander Popov)
08:37 PM Feature #17718: a method paramaters object that can be pattern matched against
the ArgumentError can be raised manually when going to raise an Exception anyway
@nobu the problem i see there right now if rest keywords should include default param / null.
because the pattern matching above only cares about the ...
Hanmac (Hans Mackowiak)
01:28 PM Feature #17718: a method paramaters object that can be pattern matched against
Hanmac (Hans Mackowiak) wrote in #note-2:
> you want `**args`
I guess that the point is the keywords are checked, that is `get_perdiem(nation: "usa")` will raise an `ArgumentError`.
I think there was a proposal for a similar conce...
nobu (Nobuyoshi Nakada)
08:08 AM Feature #17718: a method paramaters object that can be pattern matched against
you want `**args`
```ruby
def getParam(**args)
case args
in {zip: zip}
p "zip"
in {state: s, city: c}
p "state+city"
in { state: s}
p "state"
else
raise 'need combination of zip, city, state'
end...
Hanmac (Hans Mackowiak)
04:24 PM Misc #17662: The heredoc pattern used in tests does not syntax highlight correctly in many editors
Great for Github!
FWIW, both VS Code and Sublime Text get very confused by this pattern.
marcandre (Marc-Andre Lafortune)
08:10 AM Misc #17662: The heredoc pattern used in tests does not syntax highlight correctly in many editors
mame (Yusuke Endoh) wrote in #note-9:
> I investigated the syntax highlighting behavior of GitHub. They does not correctly support an empty heredoc in an indent:
> ...
Wow, it looks like that GitHub fixed the issue. The code is now col...
mame (Yusuke Endoh)
04:15 PM Revision ff5ff75c (git): * 2021-03-16 [ci skip]
git[bot]
04:15 PM Revision b346935c (git): Copy only generated parser files when RDoc syncs
aycabta (aycabta .)
01:36 PM Revision 18a3bf5a (git): NEWS of [Feature #12194] [ci skip]
nobu (Nobuyoshi Nakada)
09:35 AM Bug #17354: Module#const_source_location is misleading for constants awaiting autoload
I think that the current behavior is the most flexible.
1. If we want to check if a constant is set as autoload (and not actually loaded), we can use `Module#autoload?`.
2. If we want to identify where a constant is set as autoload, ...
mame (Yusuke Endoh)
06:22 AM Bug #17585 (Closed): DWARF5 support?
Applied in changeset commit:git|9e5105ca451d6d38eb2d03a2ffc904074f0333b9.
----------
Support GCC's DWARF 5 [Bug #17585] (#4240)
Co-Authored-By: xtkoba (Tee KOBAYASHI) <xtkoba+ruby@gmail.com>
mame (Yusuke Endoh)
06:22 AM Revision 9e5105ca (git): Support GCC's DWARF 5 [Bug #17585] (#4240)
Co-Authored-By: xtkoba (Tee KOBAYASHI) <xtkoba+ruby@gmail.com> mame (Yusuke Endoh)
06:12 AM Feature #17610 (Closed): [PATCH] Reduce RubyVM::InstructionSequence.load_from_binary allocations
merged commit:ef88225886dd4ceecae07ddd22108ef4da542396
sorry i couldn't review.
ko1 (Koichi Sasada)
06:11 AM Feature #12194 (Closed): File.dirname optional parameter
Applied in changeset commit:git|82b6f89283042b670975f3f7986432647101984e.
----------
File.dirname optional level
* file.c (rb_file_dirname_n): chomp N level of base names.
[Feature #12194]
nobu (Nobuyoshi Nakada)
06:08 AM Feature #12194: File.dirname optional parameter
Matz has already accepted this proposal at the previous meeting.
https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20210216Japan.md#feature-12194-filedirname-optional-parameter-nobu
mame (Yusuke Endoh)
06:10 AM Feature #17548: Need simple way to include symlink directories in Dir.glob
zsh uses `***` as a wildcard that expands symlinks. And matz accepted `***`. Maybe nobu will implement it.
https://github.com/ruby/dev-meeting-log/blob/master/DevelopersMeeting20210216Japan.md#feature-17548-need-simple-way-to-include-...
mame (Yusuke Endoh)
06:09 AM Revision 82b6f892 (git): File.dirname optional level
* file.c (rb_file_dirname_n): chomp N level of base names.
[Feature #12194]
nobu (Nobuyoshi Nakada)
05:25 AM Bug #16996: Hash should avoid doing unnecessary rehash
I think I can just drop the spec in test_set.rb, if it is blocking this. knu (Akinori MUSHA)
04:45 AM Bug #17723: autoconf 2.70+ is not working with master branch
I'm okay to change the official instructions to `autoreconf -i` instead of `autoconf`. But I'm not sure that `autoreconf -i` needs `automake`.
I will update the usage of `autoconf` of `ruby-build` to it after investigating the minimum...
hsbt (Hiroshi SHIBATA)
03:55 AM Bug #17723: autoconf 2.70+ is not working with master branch
nobu (Nobuyoshi Nakada) wrote in #note-4:
> `autoreconf` seems to need `automake`.
Not really. It runs `aclocal`, and that's because our `aclocal.m4` was generated using it.
https://github.com/autotools-mirror/autoconf/blob/30034...
shyouhei (Shyouhei Urabe)
03:41 AM Bug #17723: autoconf 2.70+ is not working with master branch
`autoreconf` seems to need `automake`. nobu (Nobuyoshi Nakada)
03:32 AM Bug #17723: autoconf 2.70+ is not working with master branch
I guess running `autoreconf` instead of `autoconf` fixes the situation. Test code: https://github.com/shyouhei/docker-library/blob/master/%2317723/Dockerfile shyouhei (Shyouhei Urabe)
02:44 AM Bug #17723: autoconf 2.70+ is not working with master branch
@znz I don't understand why you suddenly start talking about automake. Can't you focus on fixing the bug? shyouhei (Shyouhei Urabe)
02:31 AM Bug #17723: autoconf 2.70+ is not working with master branch
How about adding wrapper script `autogen.sh` that download required files (config.guess, ...) and run `autoconf`.
This solution does not depend automake now, and it can use automake for future when needed.
znz (Kazuhiro NISHIYAMA)
04:19 AM Bug #11335 (Closed): `ruby -r debug` catchpoint problem
I'm rewriting lib/debug.rb with TracePoint.
And I close this ticket because it is too old.
Ruby 3.1 will have better debugger by default :)
ko1 (Koichi Sasada)
02:57 AM Feature #17724: Make the pin operator support instance/class/global variables
Agreed. Ideally instance variable would be allowed, no? marcandre (Marc-Andre Lafortune)
01:40 AM Feature #17724 (Closed): Make the pin operator support instance/class/global variables
When I use pattern match with instance variables, I get an error message like "expecting local variable or method"
``` ruby
@n = 1
case 1
in ^@n
# ...
end
#=> syntax error, unexpected instance variable, expecting local variabl...
jnchito (Junichi Ito)
01:55 AM Misc #17641 (Closed): pocke should have a commit bit
:tada: mame (Yusuke Endoh)
01:20 AM Bug #16376 (Closed): Stack-buffer-overflow in renumber_by_map in regcomp.c
Applied in changeset commit:git|0846c2da457e7523819236ac7da492029b3ef73d.
----------
Check backref number buffer overrun [Bug #16376]
xtkoba (Tee KOBAYASHI)
01:18 AM Revision ba9de878 (git): * 2021-03-15 [ci skip]
git[bot]
01:17 AM Revision 0846c2da (git): Check backref number buffer overrun [Bug #16376]
xtkoba (Tee KOBAYASHI)

03/14/2021

11:45 PM Bug #17723 (Closed): autoconf 2.70+ is not working with master branch
MacPorts upgraded the version of autoconf to 2.71 recently. On macOS environment with MacPorts is broken now.
http://rubyci.s3.amazonaws.com/osx1100arm/ruby-master/log/20210314T214503Z.fail.html.gz
hsbt (Hiroshi SHIBATA)
03:00 PM Bug #17722 (Closed): define_method with shareable results in "defined in a different Ractor"
Testing against latest master, and expectinng [this](https://bugs.ruby-lang.org/issues/17159?tab=history) to already be handled, I nonetheless found a weird case, for which I managed to build a short reproduction.
```ruby
class A
...
chucke (Tiago Cardoso)
02:06 PM Bug #16376: Stack-buffer-overflow in renumber_by_map in regcomp.c
Though the example might be pathological, causing segfaults is not nice.
I wrote a patch to make `renumber_by_map` (and `renumber_node_backref`) check the size of the array `map` before accessing its element.
The behavior after the...
xtkoba (Tee KOBAYASHI)
01:37 PM Bug #17645: `shorten-64-to-32` errors with Clang 11.1.0 for 32-bit targets w.r.t. `time_t` (maybe Y2038?)
ruby_3_0 ff2ea4daeb795ebb3d0afa8c57d86a4af9757e50 merged revision(s) 2a6bfd22468343003463e0cbf91953a01b0dbba5,3ac28de5414c81a0da8c8ec969ea74db5a0f1b0f. naruse (Yui NARUSE)
11:13 AM Bug #17645 (Closed): `shorten-64-to-32` errors with Clang 11.1.0 for 32-bit targets w.r.t. `time_t` (maybe Y2038?)
Applied in changeset commit:git|3ac28de5414c81a0da8c8ec969ea74db5a0f1b0f.
----------
Explicitly cast __s64 to time_t [Bug #17645]
A workaround of shorten-64-to-32 error where 32-bit linux.
xtkoba (Tee KOBAYASHI)
12:30 PM Revision ff2ea4da (git): merge revision(s) 2a6bfd22468343003463e0cbf91953a01b0dbba5,3ac28de5414c81a0da8c8ec969ea74db5a0f1b0f: [Backport #17645]
Properly convert time_t [Bug #17645]
---
thread_sync.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Explicitly cast __s64 to time_t [Bug #17645]
A workaround of shorten-64-to-32 error ...
naruse (Yui NARUSE)
11:18 AM Revision 2a6bfd22 (git): Properly convert time_t [Bug #17645]
nobu (Nobuyoshi Nakada)
11:18 AM Revision 8a5a91ee (git): --dont-cuddle-else [ci skip]
nobu (Nobuyoshi Nakada)
11:10 AM Revision ce9fb9b2 (git): * 2021-03-14 [ci skip]
git[bot]
11:10 AM Revision 3ac28de5 (git): Explicitly cast __s64 to time_t [Bug #17645]
A workaround of shorten-64-to-32 error where 32-bit linux. xtkoba (Tee KOBAYASHI)

03/13/2021

12:50 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
I think `--disable-gems` is also useful to investigate issues, e.g. RubyGems used to override `Kernel#warn` (fixed in Ruby 3).
It can significantly simplify investigating issues with `require`.
I agree it's not very common to need it for...
Eregon (Benoit Daloze)
11:02 AM Feature #17684: Remove `--disable-gems` from release version of Ruby
I'm also using the --disable-gems option. I make games on Ruby but I'm not using gems and since the main audience is Windows, I have to distribute portable Ruby version that HAS to work on any path (including those with accents). I notic... NuriYuri (Youri Nouri)
10:53 AM Misc #17720: Cirrus CI to check non-x86_64 architecture cases by own machines
> > While we have RubyCI, I think we still have a motivation to run a CI on non-x86_64 architectures at a pull-request timing.
> ...
Okay. For the cost of the maintenance, I remember on the ticket #16360 to add ppc64le/s390x, an issue t...
jaruga (Jun Aruga)
09:20 AM Misc #17720: Cirrus CI to check non-x86_64 architecture cases by own machines
> While we have RubyCI, I think we still have a motivation to run a CI on non-x86_64 architectures at a pull-request timing.
Yes, we want non-x86_64 CIs with cheaper (maintenance/money) cost.
PR timing CI is desired rather than cron-...
naruse (Yui NARUSE)
09:03 AM Bug #17508: io-console versioning
ruby_3_0 commit:b20e2c3f2a3ce227b9cf32d2bf02db0ac67eccb5. naruse (Yui NARUSE)
08:56 AM Bug #17659: Ractor: can't call io/wait methods
ruby_3_0 e050dd53230cb354e816415f8a937901f79ec395 merged revision(s) f6d5de8f33fe715d939e3e77b8ef73d88bcd6c9f. naruse (Yui NARUSE)
08:56 AM Revision e050dd53 (git): merge revision(s) f6d5de8f33fe715d939e3e77b8ef73d88bcd6c9f: [Backport #17659]
[ruby/io-wait] Declare as Ractor-safe
Fixes https://bugs.ruby-lang.org/issues/17659
https://github.com/ruby/io-wait/commit/ba338b4764
---
ext/io/wait/wait.c | 4 ++++
test/io/wait/test...
naruse (Yui NARUSE)
08:55 AM Revision b20e2c3f (git): Backport io-console 0.5.7 to Ruby 3.0 (#4252)
* [ruby/io-console] [DOC] Note that IO#getpass returns a chomped string
IO#getpass uses String#chomp! on the read input line.
https://github.com/ruby/io-console/commit/1e98c93bc8
* [ruby/io-console] Ignore chomp! result and return the...
jeremyevans (Jeremy Evans)
08:54 AM Bug #17612: ractor crash with some simple codes
ruby_3_0 6bf32cbed8f3fd0b73b99737d671f833c594d800 merged revision(s) 63abb5c227e5c20d18d0debf699251da93ca64b5,34d02631e71209b12abb69d0114601027e485bc9,2adbf01ae14c0a4cf190b7c969b91726966a0e0f,3acc81d9e41b18380b9e0168fe2b5e5e0c727256. naruse (Yui NARUSE)
08:54 AM Bug #17672: Ractor stdio does not belong to the ractor
ruby_3_0 6f9e007729d53fdbc22e37e52129ea5aa2556d0e merged revision(s) b3c53a8a885be8f5cc2b712798b0d2741c488ce4. naruse (Yui NARUSE)
08:06 AM Bug #17680: tab completion no longer works on irb3.0
What is confusing is that the behavior of IRB changes drastically with `readline.so`. I suppose that Ruby 2.5 of the main issue is the case when `readline.so` is installed, and that the rest (Ruby 3.0 of the main issue and Ruby 2.5 of #n... xtkoba (Tee KOBAYASHI)
06:44 AM Revision c7e6914b (git): [Doc] Fix multiple `Magic Comments` example
[ci skip] kachick (Kenichi Kamiya)
06:42 AM Feature #17674: Proposal: `Method#source_location` or `Method#owner` for refined methods
The example code in #note-2 does not seem to refine `Range#cover?`. This method is defined natively in `range.c`, and so the behavior is expected (`Method#source_location` should return `nil`). xtkoba (Tee KOBAYASHI)
12:14 AM Revision 07ff1f4b (git): Revert "Extracted AtomicWrite"
This reverts commit 2148ee78a5bc5e679903f5839c66578bfcf94a39, mistakenly committed. nobu (Nobuyoshi Nakada)
12:11 AM Revision 983f6d0f (git): Moved locking VM to an atomic operation
nobu (Nobuyoshi Nakada)
12:10 AM Revision 2148ee78 (git): Extracted AtomicWrite
nobu (Nobuyoshi Nakada)

03/12/2021

08:40 PM Bug #17719: Irregular evaluation order in hash literals
To me the evaluation order of 1->3->2 is a bit unexpected, but it might be OK unless specified otherwise.
IMO, duplicate keys in hash literals should be allowed in a scripting language like Ruby. For example, they are explicitly allow...
xtkoba (Tee KOBAYASHI)
01:05 PM Bug #17719 (Closed): Irregular evaluation order in hash literals
@mame pointed out an irregular evaluation order example.
```sh
$ ruby -e '{foo:p(1), bar:p(2), foo:p(3)}'
-e:1: warning: key :foo is duplicated and overwritten on line 1
1
3
2
```
It feels like a bug.
https://github.com/nobu...
nobu (Nobuyoshi Nakada)
08:12 PM Revision 6f9e0077 (git): merge revision(s) b3c53a8a885be8f5cc2b712798b0d2741c488ce4: [Backport #17672]
Make Ractor stdio belonging to the Ractor [Bug #17672]
Defer making ractor stdio until ractor started.
Before ractor started, created objects belong to the caller ractor
instead of the created ractor.
---...
naruse (Yui NARUSE)
08:11 PM Revision 6bf32cbe (git): merge revision(s) 63abb5c227e5c20d18d0debf699251da93ca64b5,34d02631e71209b12abb69d0114601027e485bc9,2adbf01ae14c0a4cf190b7c969b91726966a0e0f,3acc81d9e41b18380b9e0168fe2b5e5e0c727256: [Backport #17612]
dtoa.c: make compilable independently
Except for `-Dxmalloc=malloc -Dxfree=free`.
---
missing/dtoa.c | 24 ++++++++++++++++++------
1 file changed, 18 insertions(+), 6 deletions(-)
dtoa.c: const...
naruse (Yui NARUSE)
08:01 PM Revision 7b122b8a (git): * 2021-03-13 [ci skip]
git[bot]
08:00 PM Bug #17642: Ractor should not allow "allocate" ("dup")
ruby_3_0 72c6497453f74f3398130d99fc610922f3995ae5 merged revision(s) 7b9476fbfab738d1eb01b4b4c4af9a1680513019. naruse (Yui NARUSE)
06:58 PM Feature #17721 (Feedback): Proc.new should be able to contruct a lambda
since procs and lambdas are of the same type, as long as Proc::new exists, it should be able to create either.
```ruby
class Proc
def augment
self.class.new lambda? do
call
end
end
end
```
bughit (bug hit)
06:18 PM Feature #17674: Proposal: `Method#source_location` or `Method#owner` for refined methods
osyo (manga osyo) wrote in #note-1:
> hi.
> ...
Can't confirm:
```ruby
# frozen_string_literal: true
puts RUBY_VERSION
p (1..10).method(:cover?).source_location
```
```
~/Projects/ruby/test/source_location
> ruby test.rb
3.0.0
nil
~/...
AlexWayfer (Alexander Popov)
05:50 PM Misc #17720 (Assigned): Cirrus CI to check non-x86_64 architecture cases by own machines
Hello!
This ticket is related to the tickets #16234 #16360. But I opened a new ticket because it is related to general non-x86_64 architecture CI cases.
I have a suggestion.
I see the `.travis.yml` was removed [1], and I also sa...
jaruga (Jun Aruga)
03:36 PM Bug #6120 (Closed): Float and BigDecimal bug in remainder in corner cases
Applied in changeset commit:git|aaab3b1de943c3317e115d623ffc7908b4c96578.
----------
Fix integer/float remainder with infinity argument of opposite sign
Previously, the result was incorrect:
4.remainder(-Float::INFINITY)
Before: => Na...
jeremyevans (Jeremy Evans)
03:35 PM Revision 722e6c1d (git): * 2021-03-13 [ci skip]
git[bot]
03:35 PM Revision aaab3b1d (git): Fix integer/float remainder with infinity argument of opposite sign
Previously, the result was incorrect:
4.remainder(-Float::INFINITY)
Before: => NaN
After: => 4
4.2.remainder(-Float::INFINITY)
Before: => NaN
After: => 4.2
Fixes [Bug #6120]
jeremyevans (Jeremy Evans)
01:10 PM Bug #17486 (Closed): Build fails on darwin due to libtool being removed
nobu (Nobuyoshi Nakada)
10:28 AM Revision 701001e3 (git): Removed an unused declaration
nobu (Nobuyoshi Nakada)
09:15 AM Revision d91ade3e (git): Renamed functions for Fiber singleton methods
nobu (Nobuyoshi Nakada)
08:13 AM Revision 90c12def (git): Constified variables for getenv
nobu (Nobuyoshi Nakada)
08:07 AM Revision 2ea600f9 (git): Bundle RBS 1.1.1 (#4259)
soutaro (Soutaro Matsumoto)
06:51 AM Revision ea39955e (git): Removed a duplicate setting for mingw
nobu (Nobuyoshi Nakada)
06:30 AM Revision 0446a339 (git): * 2021-03-12 [ci skip]
git[bot]
06:27 AM Revision 6b978d54 (git): Remove .travis.yml
Reason:
* Recent build is failed.
https://travis-ci.org/github/ruby/ruby/jobs/762561190
* Current configuration uses Ubuntu 16.04 (xenial), whose EOL is Apr 2021.
If someone want to recover Travis CI builds, please fix above two issues.
naruse (Yui NARUSE)
02:39 AM Bug #17645: `shorten-64-to-32` errors with Clang 11.1.0 for 32-bit targets w.r.t. `time_t` (maybe Y2038?)
Yet another solution would be to define `rb_time64_t` for `rb_time_nano_new` (and `rb_time_new`), but may be an overkill. nobu (Nobuyoshi Nakada)

03/11/2021

09:46 PM Feature #17718 (Open): a method paramaters object that can be pattern matched against
```ruby
def get_perdiem(city: nil, state: nil, zip:nil)
case parameters_match # (return an object of the parameters we can pattern match on)
in {zip: zip}
find_perdiem_by_zip(zip)
in {state: s, city: c}
find_perd...
dsisnero (Dominic Sisneros)
09:38 PM Feature #17685: Marshal format for out of band buffer objects
On the consumer side, we can Marshal those objects the usual way, which when unserialized will give us a copy of the original object:
b = ZeroCopyByteArray.new("abc".bytes)
data = Marshal.dump(b)
new_b = Marshal.load(data)
puts b =...
dsisnero (Dominic Sisneros)
02:52 AM Feature #17685: Marshal format for out of band buffer objects
Do you want the way to load and dump the memory view metadata of any objects that support exporting their memory view?
Could you please tell me the example use cases you've assumed?
mrkn (Kenta Murata)
03:32 PM Revision 72c64974 (git): merge revision(s) 7b9476fbfab738d1eb01b4b4c4af9a1680513019: [Backport #17642]
Ractor.allocate should not be allowed
Ractor.allocate and Ractor#dup should not be allowed like Thread.
[Bug #17642]
---
bootstraptest/test_ractor.rb | 18 ++++++++++++++++++
ractor.c ...
naruse (Yui NARUSE)
11:36 AM Revision 6305d1c6 (git): remove invalidated cc
if cc is invalidated, cc should be released from iseq. ko1 (Koichi Sasada)
11:34 AM Bug #17636: Race condition in check_rvalue_consistency_force when using ractors
ruby_3_0 d3863cb2e80f27d26b521b2c957b21feacb900de merged revision(s) 07ab172ebef28bb82c2650694548d123802d6c22. naruse (Yui NARUSE)
11:34 AM Revision d3863cb2 (git): merge revision(s) 07ab172ebef28bb82c2650694548d123802d6c22: [Backport #17636]
sync check_rvalue_consistency_force()
check_rvalue_consistency_force() uses is_pointer_to_heap() and
it should be synchronized with other ractors.
[Bug #17636]
---
gc.c | 149 ++++++++++++++++++++...
naruse (Yui NARUSE)
11:32 AM Bug #17634: Ractor code gives me malloc(): unaligned fastbin chunk detected
ruby_3_0 commit:b49264ab7aa92f64a806857d7e81b3f1cbba5585. naruse (Yui NARUSE)
11:25 AM Bug #17497: Ractor performance issue
ruby_3_0 de6072a22edbaab3793cf7f976cc9e0118d0df40 merged revision(s) abdc634f64a440afcdc7f23c9757d27aab4db8a9,083c5f08ec4e95c9b75810d46f933928327a5ab3,1ecda213668644d656eb0d60654737482447dd92,813fe4c256f89babebb8ab53821ae5eb6bb138c6. naruse (Yui NARUSE)
11:24 AM Revision de6072a2 (git): merge revision(s) abdc634f64a440afcdc7f23c9757d27aab4db8a9,083c5f08ec4e95c9b75810d46f933928327a5ab3,1ecda213668644d656eb0d60654737482447dd92,813fe4c256f89babebb8ab53821ae5eb6bb138c6: [Backport #17497]
remove unused decl
---
internal/vm.h | 6 ------
vm_args.c | 2 --
2 files changed, 8 deletions(-)
Check stack overflow in recursive glob_helper [Bug #17162]
---
dir.c ...
naruse (Yui NARUSE)
11:17 AM Bug #17599: [BUG] try to mark T_NONE object when object allocation tracing is enabled
ruby_3_0 b49264ab7aa92f64a806857d7e81b3f1cbba5585 merged revision(s) 969b824a0c7605e0e570631d967ad0de0c37d0bf,100e464bee46ae71ef048ed85a9bdd012935a3f7. naruse (Yui NARUSE)
11:06 AM Bug #15852: APPLICATION_VERIFIER_LOCKS_LOCK_IN_FREED_HEAP on exiting ruby
ruby_3_0 0074ea2d83230e10ab0cd769fff203c13d3c592f merged revision(s) 2a83650b0fd25719fb6c03bfec7bd895734d3ceb. naruse (Yui NARUSE)
12:57 AM Bug #15852: APPLICATION_VERIFIER_LOCKS_LOCK_IN_FREED_HEAP on exiting ruby
`vm->waitpid_lock` and `vm->workqueue_lock` seem never deleted.
`rb_native_mutex_destroy` on them are disabled by `if (0)` in `rb_vm_gvl_destroy()`, and that function is not called from anywhere too.
I have no idea why these calls are ...
nobu (Nobuyoshi Nakada)
11:06 AM Revision 0074ea2d (git): merge revision(s) 2a83650b0fd25719fb6c03bfec7bd895734d3ceb: [Backport #15852]
Destroy VM-wise locks before freeing [Bug #15852]
---
thread.c | 7 -------
vm.c | 2 ++
2 files changed, 2 insertions(+), 7 deletions(-)
naruse (Yui NARUSE)
08:25 AM Revision 05fa06a4 (git): * 2021-03-11 [ci skip]
git[bot]
08:24 AM Revision 04ef602c (git): [rubygems/rubygems] Remote test to check require
This test was triggering require of `rubygems/core_ext/tcpsocket_init`
which overrides TCPSocket.initialize globally. Requires don't get
reset between test runs and it was making other test unreliable.
Fixes timeout of test on ruby mast...
sonalkr132 (Aditya Prakash)
08:24 AM Revision 0476ce03 (git): Merge RubyGems-3.2.14 and Bundler-2.2.14
hsbt (Hiroshi SHIBATA)
08:24 AM Revision 7efc7afc (git): Merge RubyGems-3.2.13 and Bundler-2.2.13
hsbt (Hiroshi SHIBATA)
08:24 AM Revision 06cd5711 (git): Merge RubyGems-3.2.12 and Bundler-2.2.12
hsbt (Hiroshi SHIBATA)
08:24 AM Revision f375bc77 (git): Merge RubyGems-3.2.11 and Bundler-2.2.11
hsbt (Hiroshi SHIBATA)
08:24 AM Revision 38f8b8d0 (git): Merge RubyGems-3.2.10 and Bundler-2.2.10
hsbt (Hiroshi SHIBATA)
07:57 AM Bug #12666: Fatal error: glibc detected an invalid stdio handle
Thx a lot! vo.x (Vit Ondruch)
07:31 AM Bug #17645: `shorten-64-to-32` errors with Clang 11.1.0 for 32-bit targets w.r.t. `time_t` (maybe Y2038?)
I encountered another compilation error of `shorten-64-to-32` for 32-bit musl targets, where `time_t` is 64-bit. A workaround:
```
--- a/thread_sync.c
+++ b/thread_sync.c
@@ -560,7 +560,7 @@ rb_mutex_sleep(VALUE self, VALUE timeout
...
xtkoba (Tee KOBAYASHI)
01:46 AM Revision a6c93a1d (git): Revert "Update bundled_gems"
This reverts commit b37f60fbd4b18f23e0443ae41b2cd7b991f0e11c.
Because test-bundled-gems failed.
znz (Kazuhiro NISHIYAMA)
01:37 AM Misc #17635: DevelopersMeeting20210317Japan
* [Bug #16608] ConditionVariable#wait should return false when timeout exceeded (jeremyevans0)
* @nobu requested review of this during the developer meeting.
* Is it OK to make ConditionVariable#wait return false if timed out inste...
jeremyevans0 (Jeremy Evans)
12:21 AM Revision a6b5d70b (git): Create the test file under the created temporary directory
Fixes https://github.com/ruby/ruby/pull/4255 nobu (Nobuyoshi Nakada)
12:01 AM Bug #17494: ruby is hanged when using activesupport + rspec + rspec-parameterized
One possible workaround for this is a checking for an immediate loop in `resolve_refined_method`:
```diff
diff --git a/vm_method.c b/vm_method.c
index 2573e708ba..ebfe686a27 100644
--- a/vm_method.c
+++ b/vm_method.c
@@ -1245,7 +...
jeremyevans0 (Jeremy Evans)

03/10/2021

10:55 PM Bug #17142 (Closed): Ruby fails to build in AIX
jeremyevans0 (Jeremy Evans)
10:52 PM Bug #17189 (Feedback): test_thread.rb in testsuite deadlocks with musl libc 1.2.1
Can you narrow down which particular test method is causing this issue? That would help narrow down the problem? Even if the problem is not fixable, we could skip that test on musl libc so the test suite doesn't deadlock.
It is expe...
jeremyevans0 (Jeremy Evans)
10:41 PM Bug #6120: Float and BigDecimal bug in remainder in corner cases
I've submitted a pull request to fix this issue for Integer/Float: https://github.com/ruby/ruby/pull/4257
I've submitted an issue to the bigdecimal repository to fix the issue in BigDecimal: https://github.com/ruby/bigdecimal/issues/187
jeremyevans0 (Jeremy Evans)
09:54 PM Bug #12666 (Closed): Fatal error: glibc detected an invalid stdio handle
jeremyevans0 (Jeremy Evans)
08:06 PM Bug #12666 (Assigned): Fatal error: glibc detected an invalid stdio handle
I've added a pull request for this: https://github.com/ruby/fiddle/pull/70 jeremyevans0 (Jeremy Evans)
09:44 PM Revision ef882258 (git): Simplify ibf_dump_object_symbol by delegating to ibf_dump_object_string
byroot (Jean Boussier)
09:44 PM Revision 1041bff3 (git): Add a benchmark for RubyVM::InstructionSequence.load_from_binary
byroot (Jean Boussier)
09:44 PM Revision 2de7fbcd (git): Pre-freeze ISeq names to avoid useless duplication
byroot (Jean Boussier)
09:44 PM Revision d00e7deb (git): Use rb_enc_interned_str in ibf_load_object_string
byroot (Jean Boussier)
09:44 PM Revision 8463c8a4 (git): Specialize ibf_load_object_symbol and ibf_dump_object_symbol
byroot (Jean Boussier)
09:43 PM Revision a03653d3 (git): proc.c: make bind_call use existing callable method entry when possible
The most common use case for `bind_call` is to protect from core
methods being redefined, for instance a typical use:
```ruby
UNBOUND_METHOD_MODULE_NAME = Module.instance_method(:name)
def real_mod_name(mod)
UNBOUND_METHOD_MODULE_NAME...
byroot (Jean Boussier)
08:09 PM Revision d9fea496 (git): Remove cvar overtaken classes at end of test methods
Fixes issues when the same tests are executed more than once,
which some CI machines do.
jeremyevans (Jeremy Evans)
08:07 PM Bug #15718 (Closed): YAML raises error when dumping strings with UTF32 encoding
jeremyevans0 (Jeremy Evans)
08:04 PM Bug #15718: YAML raises error when dumping strings with UTF32 encoding
Thanks for the investigation @jeremyevans0 👍
I'm definitely ok to close this. I don't even recall how I stumbled upon this 😅
marcandre (Marc-Andre Lafortune)
07:11 PM Bug #15718 (Feedback): YAML raises error when dumping strings with UTF32 encoding
I looked into this and ruby YAML uses libyaml, which is a YAML 1.1 implementation. YAML 1.1 does not support UTF-32 encoding; that isn't supported by the YAML spec until YAML 1.2. So I think it is reasonable for `YAML.dump` to raise `E... jeremyevans0 (Jeremy Evans)
07:37 PM Bug #16608: ConditionVariable#wait should return false when timeout exceeded
I've added a pull request that builds on @nobu's pull request, but uses a new method (`Mutex#sleep_for`) instead of making backwards-incompatible changes to `Mutex#sleep`: https://github.com/ruby/ruby/pull/4256 jeremyevans0 (Jeremy Evans)
07:25 PM Bug #14096 (Closed): Psych allows invalid single quote escape character
This has been fixed in libyaml 0.2.1 (released June 2018), and the YAML given by @headius will raise `Psych::SyntaxError` on Ruby versions 1.9-3.0 when used with libyaml 0.2.1+. jeremyevans0 (Jeremy Evans)
05:43 PM Feature #17685 (Feedback): Marshal format for out of band buffer objects
Allow the use of the marshal protocol to transmit large data (objects) from one process or ractor to another, on same machine or multiple machines without extra memory copies of the data.
See Python PEP 574 - https://www.python.org/de...
dsisnero (Dominic Sisneros)
05:40 PM Revision cbc7c1c0 (git): Add cvar overtaken tests
While working on another project we noticed that there were no tests for
the cvar overtaken exception when using classes. This change adds a test
for cvar overtaken with classes and moves the cvar overtaken test for
modules into the new ...
eileencodes (Eileen Uchitelle)
05:39 PM Revision 23a48d8f (git): Refactor `rb_class_ivar_set`
In every caller of `rb_class_ivar_set` it checks for the `RCLASS_IV_TBL`
and then creates it if it doesn't exist. Instead of repeating this in
every caller, this can be done once in `rb_class_ivar_set`.
eileencodes (Eileen Uchitelle)
05:38 PM Revision 9cdb5a51 (git): * 2021-03-11 [ci skip]
git[bot]
05:38 PM Revision 9d0ae387 (git): Remove DEFINED_IVAR2 from enum
This version of defined? doesn't seem to be possible to emit anymore. jhawthorn (John Hawthorn)
05:27 PM Bug #14716: SecureRandom throwing an error in Ruby 2.5.1
xtkoba (Tee KOBAYASHI) wrote in #note-19:
> To my understanding, the problem is that when `Random.urandom` failed to use `/dev/urandom` it does not fall back to using an OpenSSL function even if it is available.
Ah, thank you, that i...
jeremyevans0 (Jeremy Evans)
04:38 PM Bug #14716: SecureRandom throwing an error in Ruby 2.5.1
To my understanding, the problem is that when `Random.urandom` failed to use `/dev/urandom` it does not fall back to using an OpenSSL function even if it is available.
However, this issue seems no longer to happen on recent Linux syst...
xtkoba (Tee KOBAYASHI)
04:01 PM Bug #14716: SecureRandom throwing an error in Ruby 2.5.1
If SecureRandom requires a file descriptor to work, I think it should be expected to raise an exception if a file descriptor is not available. After all, it's not a bug when File.open raises an exception because a file descriptor is not... jeremyevans0 (Jeremy Evans)
10:53 AM Bug #14716: SecureRandom throwing an error in Ruby 2.5.1
I can reproduce this issue with Ruby 3.0.0p0 on my old Android phone by artificially opening a lot of files.
The reproducer code (named `bug14716.rb`):
```ruby
require 'securerandom'
a = []
1017.times { a.push File.open '/' }
...
xtkoba (Tee KOBAYASHI)
12:23 AM Bug #14716 (Feedback): SecureRandom throwing an error in Ruby 2.5.1
Can anyone prepare a reproducible example of this happening with Ruby 2.7 or 3.0 (Ruby 2.6 goes into security maintenance at the end of the month)? I think many of the reported failures with Ruby 2.5 and 2.6 could be due to the file des... jeremyevans0 (Jeremy Evans)
03:41 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
I disagree on removing this option, I don't think the benefits of removing it are strong enough, even if it didn't make any difference in performance. deivid (David Rodríguez)
02:53 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
I'd love to see this clarified. IMO, there should be other ways to manage `$LOAD_PATH` then RubyGems. For such use cases, this option is useful IMO. vo.x (Vit Ondruch)
01:35 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
Will we be able to re-enable the `--disable-gems` option when we build `ruby` from source code? I think it is useful for narrowing problems down. For that purpose it might be sufficient that `miniruby` does not depend on Gems, though.
...
xtkoba (Tee KOBAYASHI)
01:21 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
I don't have anything invested in this myself, but just for information to help the discussion, here's two examples of apps that use the option
* https://github.com/Shopify/shopify-app-cli/blob/master/bin/shopify
* https://github.com...
chrisseaton (Chris Seaton)
01:02 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
chrisseaton (Chris Seaton) wrote in #note-1:
> How should people who were using it for performance migrate off the option?
`--disable-gems` should be just ignored in the future version, and the performance will be degraded.
naruse (Yui NARUSE)
01:00 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
Agreed. Unfortunately this increases the cost of development to support `--disable-gems`.
In other words, this feature breaks the assumption that every Ruby has RubyGems.
This feature should be removed.
naruse (Yui NARUSE)
12:59 PM Feature #17684: Remove `--disable-gems` from release version of Ruby
How should people who were using it for performance migrate off the option? chrisseaton (Chris Seaton)
12:51 PM Feature #17684 (Assigned): Remove `--disable-gems` from release version of Ruby
In my understand, `--disable-gems` is only debugging feature for ruby-core team.
But some users enabled its option in test environment for performance or etc. So, `--disable-gems` option is wrong usage for some users.
* https://git...
hsbt (Hiroshi SHIBATA)
01:31 PM Feature #17674: Proposal: `Method#source_location` or `Method#owner` for refined methods
hi.
In Ruby 2.7 and later, `#method` supports Refinements.
```ruby
# test.rb
module Cover
refine Range do
def cover?(value)
return super unless value.is_a?(Range)
super(value.first) && super(value.last)
...
osyo (manga osyo)
01:13 PM Revision 4c80b9d0 (git): Fix `coroutine_type` variable name
nobu (Nobuyoshi Nakada)
01:10 PM Misc #17635: DevelopersMeeting20210317Japan
* [Feature #17684] Remove `--disable-gems` from release version of Ruby
* Recently this increases the cost of the ecosystem
naruse (Yui NARUSE)
10:37 AM Revision b37f60fb (git): Update bundled_gems
znz (Kazuhiro NISHIYAMA)
09:40 AM Misc #17683 (Open): Current status of beginless range (experimental or not)
A beginless range was experimentally introduced in Ruby 2.7.0:
https://github.com/ruby/ruby/blob/v2_7_0/NEWS#label-Other+miscellaneous+changes
Is it still experimental feature or not?
jnchito (Junichi Ito)
06:27 AM Feature #14643 (Closed): Remove problematic separator '\0' of Dir.glob and Dir.[]
mame (Yusuke Endoh)
 

Also available in: Atom