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... -
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 ...
-
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?... -
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... -
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?
-
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... -
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] -
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
... -
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
... -
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
...-
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 ... - 05:42 PM Revision 756e8a2c (git): test_zlib(test_path_tmpfile): fix Zlib instance leak
- follow-up: commit cf831f49189c4a890da6845e39199a5dfaf4fb48
- 05:16 PM Revision cf831f49 (git): zlib: fix Gzip{Writer,Reader}.new fails with a O_TMPFILE file
-
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 -
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
```
... -
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) -
03:19 PM Revision 1dca3335 (git): LLDB: Extract a dump_bits function from rp
- that dumps the heap page bitmaps for a slot
- 03:01 PM Revision d33159a2 (git): * 2021-03-17 [ci skip]
-
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| -
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... -
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... -
12:40 PM Revision 6c7cb00c (git): test/ruby/test_regexp.rb: Avoid "ambiguity between regexp and two divisions"
-
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 -
10:37 AM Revision 7f0b3fb9 (git): [ruby/openssl] sample: update obsolete API use
- https://github.com/ruby/openssl/commit/dafa851c0d
-
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... -
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... -
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()... -
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 -
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... -
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... -
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 ... -
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.
... -
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 -
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 -
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 -
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 -
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 -
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 -
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 -
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... -
10:16 AM Revision 92f19f7b (git): [ruby/openssl] [DOC] Fix RDoc markup
- https://github.com/ruby/openssl/commit/f36af95519
- 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 -
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... -
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... -
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... -
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 -
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 -
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 -
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... -
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
-
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... -
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 -
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 -
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 -
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... -
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 ... -
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 -
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... -
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... -
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 -
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 -
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
-
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 -
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... -
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 -
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... -
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... -
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 -
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... -
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
-
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... - 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... -
06:47 AM Revision fad3412d (git): [ruby/rdoc] Get rid of a trailing space
- https://github.com/ruby/rdoc/commit/7b7b91768e
-
06:47 AM Revision ff9a0088 (git): [ruby/rdoc] Suppress unused variable warning of "text"
- https://github.com/ruby/rdoc/commit/3a4120b155
-
06:47 AM Revision 61a29a41 (git): [ruby/rdoc] Allow empty .rdoc_options
- https://github.com/ruby/rdoc/commit/0c8cb25b50
-
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
-
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... -
06:47 AM Revision 10b08206 (git): [ruby/rdoc] Add table style
- https://github.com/ruby/rdoc/commit/2219c5ae80
-
06:47 AM Revision 3651f678 (git): [ruby/rdoc] Support GFM table
- https://github.com/ruby/rdoc/commit/9dc933df16
- 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 -
05:07 AM Revision 31b19ba8 (git): Fix a link [ci skip]
-
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
-
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...
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... -
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...
-
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... -
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.
-
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... -
11:15 PM Feature #17674 (Closed): Proposal: `Method#source_location` or `Method#owner` for refined methods
-
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`).... -
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 ... -
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... -
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... -
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. -
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... - 04:15 PM Revision ff5ff75c (git): * 2021-03-16 [ci skip]
-
04:15 PM Revision b346935c (git): Copy only generated parser files when RDoc syncs
-
01:36 PM Revision 18a3bf5a (git): NEWS of [Feature #12194] [ci skip]
-
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, ... -
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> -
06:22 AM Revision 9e5105ca (git): Support GCC's DWARF 5 [Bug #17585] (#4240)
- Co-Authored-By: xtkoba (Tee KOBAYASHI) <xtkoba+ruby@gmail.com>
-
06:12 AM Feature #17610 (Closed): [PATCH] Reduce RubyVM::InstructionSequence.load_from_binary allocations
- merged commit:ef88225886dd4ceecae07ddd22108ef4da542396
sorry i couldn't review. -
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] -
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 -
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-... -
06:09 AM Revision 82b6f892 (git): File.dirname optional level
- * file.c (rb_file_dirname_n): chomp N level of base names.
[Feature #12194] -
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.
-
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... -
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... -
03:41 AM Bug #17723: autoconf 2.70+ is not working with master branch
- `autoreconf` seems to need `automake`.
-
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
-
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?
-
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. -
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 :)
-
02:57 AM Feature #17724: Make the pin operator support instance/class/global variables
- Agreed. Ideally instance variable would be allowed, no?
-
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... -
01:55 AM Misc #17641 (Closed): pocke should have a commit bit
- :tada:
-
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] - 01:18 AM Revision ba9de878 (git): * 2021-03-15 [ci skip]
-
01:17 AM Revision 0846c2da (git): Check backref number buffer overrun [Bug #16376]
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
-
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
... -
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... -
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.
-
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. -
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 ... -
11:18 AM Revision 2a6bfd22 (git): Properly convert time_t [Bug #17645]
-
11:18 AM Revision 8a5a91ee (git): --dont-cuddle-else [ci skip]
- 11:10 AM Revision ce9fb9b2 (git): * 2021-03-14 [ci skip]
-
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.
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... -
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...
-
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... -
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-... -
09:03 AM Bug #17508: io-console versioning
- ruby_3_0 commit:b20e2c3f2a3ce227b9cf32d2bf02db0ac67eccb5.
-
08:56 AM Bug #17659: Ractor: can't call io/wait methods
- ruby_3_0 e050dd53230cb354e816415f8a937901f79ec395 merged revision(s) f6d5de8f33fe715d939e3e77b8ef73d88bcd6c9f.
-
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... -
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... -
08:54 AM Bug #17612: ractor crash with some simple codes
- ruby_3_0 6bf32cbed8f3fd0b73b99737d671f833c594d800 merged revision(s) 63abb5c227e5c20d18d0debf699251da93ca64b5,34d02631e71209b12abb69d0114601027e485bc9,2adbf01ae14c0a4cf190b7c969b91726966a0e0f,3acc81d9e41b18380b9e0168fe2b5e5e0c727256.
-
08:54 AM Bug #17672: Ractor stdio does not belong to the ractor
- ruby_3_0 6f9e007729d53fdbc22e37e52129ea5aa2556d0e merged revision(s) b3c53a8a885be8f5cc2b712798b0d2741c488ce4.
-
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...
-
06:44 AM Revision c7e6914b (git): [Doc] Fix multiple `Magic Comments` example
- [ci skip]
-
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`).
-
12:14 AM Revision 07ff1f4b (git): Revert "Extracted AtomicWrite"
- This reverts commit 2148ee78a5bc5e679903f5839c66578bfcf94a39, mistakenly committed.
-
12:11 AM Revision 983f6d0f (git): Moved locking VM to an atomic operation
-
12:10 AM Revision 2148ee78 (git): Extracted AtomicWrite
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... -
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... -
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.
---... -
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... - 08:01 PM Revision 7b122b8a (git): * 2021-03-13 [ci skip]
-
08:00 PM Bug #17642: Ractor should not allow "allocate" ("dup")
- ruby_3_0 72c6497453f74f3398130d99fc610922f3995ae5 merged revision(s) 7b9476fbfab738d1eb01b4b4c4af9a1680513019.
-
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
```
-
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
~/... -
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... -
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... - 03:35 PM Revision 722e6c1d (git): * 2021-03-13 [ci skip]
-
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] -
01:10 PM Bug #17486 (Closed): Build fails on darwin due to libtool being removed
-
10:28 AM Revision 701001e3 (git): Removed an unused declaration
-
09:15 AM Revision d91ade3e (git): Renamed functions for Fiber singleton methods
-
08:13 AM Revision 90c12def (git): Constified variables for getenv
-
08:07 AM Revision 2ea600f9 (git): Bundle RBS 1.1.1 (#4259)
-
06:51 AM Revision ea39955e (git): Removed a duplicate setting for mingw
- 06:30 AM Revision 0446a339 (git): * 2021-03-12 [ci skip]
-
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. -
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.
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... -
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 =... -
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? -
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 ... -
11:36 AM Revision 6305d1c6 (git): remove invalidated cc
- if cc is invalidated, cc should be released from iseq.
-
11:34 AM Bug #17636: Race condition in check_rvalue_consistency_force when using ractors
- ruby_3_0 d3863cb2e80f27d26b521b2c957b21feacb900de merged revision(s) 07ab172ebef28bb82c2650694548d123802d6c22.
-
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 ++++++++++++++++++++... -
11:32 AM Bug #17634: Ractor code gives me malloc(): unaligned fastbin chunk detected
- ruby_3_0 commit:b49264ab7aa92f64a806857d7e81b3f1cbba5585.
-
11:25 AM Bug #17497: Ractor performance issue
- ruby_3_0 de6072a22edbaab3793cf7f976cc9e0118d0df40 merged revision(s) abdc634f64a440afcdc7f23c9757d27aab4db8a9,083c5f08ec4e95c9b75810d46f933928327a5ab3,1ecda213668644d656eb0d60654737482447dd92,813fe4c256f89babebb8ab53821ae5eb6bb138c6.
-
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 ... -
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.
-
11:06 AM Bug #15852: APPLICATION_VERIFIER_LOCKS_LOCK_IN_FREED_HEAP on exiting ruby
- ruby_3_0 0074ea2d83230e10ab0cd769fff203c13d3c592f merged revision(s) 2a83650b0fd25719fb6c03bfec7bd895734d3ceb.
-
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 ... -
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(-) - 08:25 AM Revision 05fa06a4 (git): * 2021-03-11 [ci skip]
-
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... -
08:24 AM Revision 0476ce03 (git): Merge RubyGems-3.2.14 and Bundler-2.2.14
-
08:24 AM Revision 7efc7afc (git): Merge RubyGems-3.2.13 and Bundler-2.2.13
-
08:24 AM Revision 06cd5711 (git): Merge RubyGems-3.2.12 and Bundler-2.2.12
-
08:24 AM Revision f375bc77 (git): Merge RubyGems-3.2.11 and Bundler-2.2.11
-
08:24 AM Revision 38f8b8d0 (git): Merge RubyGems-3.2.10 and Bundler-2.2.10
-
07:57 AM Bug #12666: Fatal error: glibc detected an invalid stdio handle
- Thx a lot!
-
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
... -
01:46 AM Revision a6c93a1d (git): Revert "Update bundled_gems"
- This reverts commit b37f60fbd4b18f23e0443ae41b2cd7b991f0e11c.
Because test-bundled-gems failed. -
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... -
12:21 AM Revision a6b5d70b (git): Create the test file under the created temporary directory
- Fixes https://github.com/ruby/ruby/pull/4255
-
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 +...
03/10/2021
-
10:55 PM Bug #17142 (Closed): Ruby fails to build in AIX
-
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... -
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 -
09:54 PM Bug #12666 (Closed): Fatal error: glibc detected an invalid stdio handle
-
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
-
09:44 PM Revision ef882258 (git): Simplify ibf_dump_object_symbol by delegating to ibf_dump_object_string
-
09:44 PM Revision 1041bff3 (git): Add a benchmark for RubyVM::InstructionSequence.load_from_binary
-
09:44 PM Revision 2de7fbcd (git): Pre-freeze ISeq names to avoid useless duplication
-
09:44 PM Revision d00e7deb (git): Use rb_enc_interned_str in ibf_load_object_string
-
09:44 PM Revision 8463c8a4 (git): Specialize ibf_load_object_symbol and ibf_dump_object_symbol
-
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... -
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. -
08:07 PM Bug #15718 (Closed): YAML raises error when dumping strings with UTF32 encoding
-
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 😅 -
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...
-
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
-
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+.
-
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... -
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 ... -
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`. - 05:38 PM Revision 9cdb5a51 (git): * 2021-03-11 [ci skip]
-
05:38 PM Revision 9d0ae387 (git): Remove DEFINED_IVAR2 from enum
- This version of defined? doesn't seem to be possible to emit anymore.
-
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... -
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... -
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...
-
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 '/' }
... -
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...
-
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.
-
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.
-
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.
... -
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... -
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. -
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. -
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?
-
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... -
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)
... -
01:13 PM Revision 4c80b9d0 (git): Fix `coroutine_type` variable name
-
01:10 PM Misc #17635: DevelopersMeeting20210317Japan
- * [Feature #17684] Remove `--disable-gems` from release version of Ruby
* Recently this increases the cost of the ecosystem -
10:37 AM Revision b37f60fb (git): Update bundled_gems
-
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? -
06:27 AM Feature #14643 (Closed): Remove problematic separator '\0' of Dir.glob and Dir.[]