Activity
From 09/18/2023 to 09/24/2023
09/24/2023
-
09:57 PM Revision 36cd2b2a (git): [DOC] Correction for doc guide + TOC fix in File (#8505)
-
01:43 PM Feature #13933: Add Range#empty?
- Dan0042 (Daniel DeLorme) wrote in #note-9:
> akr (Akira Tanaka) wrote in #note-8:
> ...
There is an actual example of `(x <=> x) = nil`, `Float::NAN`.
```
% ruby -e 'x = Float::NAN; p x <=> x'
nil
```
From experience with ... -
01:07 PM Revision f43dac0d (git): Add rb_hash_free for the GC to use
-
01:07 PM Revision 36cdf163 (git): Add hash_st_free
-
06:14 AM Bug #19864: Ruby 3.2 Changed Behavior With One Sided Ranges
- ruby_3_2 217ef2bf89b3861e83c2e2a3a633c019f0731de6 merged revision(s) 25711683e86271385e8abe09a9c03782000e48db.
-
06:14 AM Bug #19853: Segfault when calling `system` from a non-blocking fiber
- ruby_3_2 9cd28caa7cc3b0d987db7c1231fe101fb3b27399 merged revision(s) 901b6d9c5025a30b3d7a5ed0a2c00baf9cfb061d.
-
06:13 AM Bug #19894: Memory leak in complemented method entries
- ruby_3_2 9ee58b2054c1bbe722ae5a2a4ec6a750ee583220 merged revision(s) 96c5a4be7b0d72502001734770af0f4a735c544c.
-
06:13 AM Revision 9ee58b20 (git): merge revision(s) 96c5a4be7b0d72502001734770af0f4a735c544c: [Backport #19894]
- Fix memory leak in complemented method entries
[Bug #19894]
When a copy of a complemented method entry is created, there are two
issues:
1. IMEMO_FL_USER3 is not copied, so the complemented status is no... -
05:16 AM Revision 9cd28caa (git): merge revision(s) 901b6d9c5025a30b3d7a5ed0a2c00baf9cfb061d: [Backport #19853]
- Validate the typed data before dereferencing the internal struct.
(#8315)
---
process.c | 5 +++--
test/fiber/test_process.rb | 21 +++++++++++++++++++++
2 files changed, 24 in... -
04:48 AM Revision 217ef2bf (git): merge revision(s) 25711683e86271385e8abe09a9c03782000e48db: [Backport #19864]
- Fix regression when testing inclusion in unbounded ranges
Caused by 04a92a6764bf678919cf4b68a27496a39d6b886a. This treats
unbounded ranges of arbitrary objects the same as how unbounded
string ranges are treated... -
03:58 AM Revision 34d802f3 (git): Refactor to use ripper_new_yylval2
-
02:44 AM Bug #19885: Invalid Warning for Default Gems That Will Move to Bundled Gems
- I'm confused by this warning "bigdecimal which will be not part of the default gems since Ruby 3.4.0"
Besides being grammatically incorrect, this tells me nothing about what is the problem, why is this a problem, or how I should fix it.... -
12:50 AM Revision 94d7c708 (git): Fix test thread leakage
-
12:08 AM Revision f38f8d4f (git): The first arg of NEW_OPT_ARG is always 0
09/23/2023
-
09:10 PM Bug #19901 (Closed): Module clone memory leak - Applied in changeset commit:git|c42261059dfebabbf0391327a5e077545a9bc438.
----------
[Bug #19901]
fix leak in module clone
Co-authored-by: Peter Zhu <peter@peterzhu.ca> -
07:48 PM Bug #19901 (Closed): Module clone memory leak
- GitHub PR: https://github.com/ruby/ruby/pull/8503
reproduction:
```ruby
m = Module.new
20.times do
100_000.times do
m.clone
end
puts `ps -o rss= -p #{$$}`
end
```
before:
```
21544
24708
27860
31024
... - 09:10 PM Revision c4226105 (git): [Bug #19901]
- fix leak in module clone
Co-authored-by: Peter Zhu <peter@peterzhu.ca> -
03:24 PM Revision 61a2e945 (git): Fix memory leak in Hash#rehash for ST hashes
- We need to free the old ST table in Hash#rehash.
Co-authored-by: Adam Hess <adamhess1991@gmail.com> -
11:56 AM Bug #19885: Invalid Warning for Default Gems That Will Move to Bundled Gems
- @jeremyevans0 Thanks.
I'm considering to skip this warning from rubygems. I think we should only warn it if environment didn't have gem like webrick.
>Note that you also get the warning when loading a gem that has bigdecimal as a ... -
07:34 AM Revision d80002c9 (git): Improve VCS::GIT#format_changelog addessing [ci skip]
-
07:05 AM Revision 1da97292 (git): Ignore rbs test failures
- For some reason, it's been failing only on YJIT, but apparently it's
reproducible on the interpreter as well. So it's not related to YJIT.
rbs marked rbs tests on Ruby master as allow_failures
https://github.com/ruby/rbs/pull/1536, so i... - 02:22 AM Revision e581b78e (git): Improve performance of include? by 5-10x
- Rails uses IPAddr#include? to evaluate what it should use as the
client's remote ip by filtering potential ips against a trusted list
of internal ips. In a _very_ minimal app, #include? was showing up in
a profile as ~1% of request time....
09/22/2023
-
08:31 PM Feature #19900: Rename YARP to Prism
- I guess one advantage of the name "prism" is that this may be a bit easier
to remember than "yarp". -
04:12 PM Feature #19900 (Closed): Rename YARP to Prism
- Following up on the discussion from https://bugs.ruby-lang.org/issues/19772#note-29, we would like to rename the YARP project to `Prism`. For the purposes of this ticket specifically, all functionality will remain the same. That is:
*... -
08:14 PM Revision 2ceb5363 (git): Try to fix compilation on m68k
- Compilation is failing on m68k-linux with:
```
./include/ruby/internal/static_assert.h:51:46: error: static assertion failed: "sizeof_method_def: offsetof(rb_method_definition_t, body)==8"
51 | # define RBIMPL_STATIC_ASSERT0 __extens... -
06:53 PM Revision d2858998 (git): [YARP] Use the integer base flag (#8476)
- Use the integer base flag
- 05:08 PM Revision 6de1a923 (git): [ruby/yarp] Check class name to be a constant path node or a constant read node
- https://github.com/ruby/yarp/commit/fd7c44f13f
-
04:30 PM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
- @tenderlovemaking thanks for looking into this! it completely skipped my mind to check for the hash allocation for the kwargs, which was silly of me (I guess I've been spoiled lately by more things moving to ruby, where the kwargs can be...
-
04:15 PM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
- Dan0042 (Daniel DeLorme) wrote in #note-9:
> > I believe that language level change needs its own ticket if wanted.
> ...
No problem! 😆
> So if the performance issue was due to keywords arguments, what's your thought on the many oth... -
01:49 PM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
- > I believe that language level change needs its own ticket if wanted.
I agree. Sorry for semi-hijacking the thread, but this discussion wasn't at the point where I wanted to make a feature request.
So if the performance issue was ... -
04:07 PM Misc #19772 (Closed): API naming for YARP compiler
-
04:07 PM Misc #19772: API naming for YARP compiler
- This issue has had a lot of discussion on a lot of different topics. I'm going to close it for now since the original issue that Jemma was talking about has long since been resolved. I will open other tickets for multi-version support an...
-
04:05 PM Revision 9abaf392 (git): Resync yarp (#8498)
- * [YARP] Reject numbered parameters in block parameters
* [YARP] Do not allow BEGIN except the toplevel
---------
Co-authored-by: Haldun Bayhantopcu <haldun@github.com> - 03:47 PM Revision c54e225f (git): [ruby/yarp] Introduce YP_TOKEN_METHOD_NAME
- https://github.com/ruby/yarp/commit/e855bf415c
-
03:43 PM Revision 74241437 (git): [YARP] Remove minor instances of rb_intern (#8497)
-
03:35 PM Misc #19899 (Closed): Ruby3.3.0-preview2: Behaviour changes of Socket.recv when the sever closes the connection
- I noticed that `Socket#recv` now returns `nil` instead of `""` when the server closes the connection, is it expected? If yes, I suggest mentioning it to the [release page](https://www.ruby-lang.org/en/news/2023/09/14/ruby-3-3-0-preview2-...
-
03:07 PM Feature #19898 (Open): Special syntax for instance variable assignment
- Since keyword arg assignment is already DRY with omitting of argument of the same name, what about DRYing out an instance var assignment? Something like this, with "@" for example, since it's already used to assign instance vars / memoiz...
-
02:45 PM Revision ea5f8e12 (git): Magical wait to get rid of deadlock on macOS
-
02:19 PM Revision 416a8202 (git): [ruby/yarp] use `yp_statements_node_body_length` a little bit more
- https://github.com/ruby/yarp/commit/65d8816178
-
02:17 PM Revision 02022cef (git): [ruby/stringio] [DOC] Fix link
- (https://github.com/ruby/stringio/pull/65)
https://github.com/ruby/stringio/commit/e3ea087d04 -
02:07 PM Revision a5ae5f71 (git): [ruby/yarp] Fix listener leave event order
- https://github.com/ruby/yarp/commit/1e6e264836
-
01:58 PM Bug #19896 (Closed): Ruby method refinement memory leak
- Applied in changeset commit:git|8b236e0c66da8f92e9fc33de66cfbc8e4b0c0763.
----------
[Bug #19896]
fix memory leak in vm_method
This introduces a unified reference_count to clarify who is referencing a method.
This also allows us to tr... -
01:58 PM Revision 170e622a (git): [ruby/prettyprint] [DOC] Link fixes
- https://github.com/ruby/prettyprint/commit/f1f583c827
-
01:44 PM Revision 8b236e0c (git): [Bug #19896]
- fix memory leak in vm_method
This introduces a unified reference_count to clarify who is referencing a method.
This also allows us to treat the refinement method as the def owner since it counts itself as a reference
Co-authored-by: Pe... -
01:14 PM Bug #19881 (Rejected): Unary operators on calls without parentheses
-
01:11 PM Bug #17925: Pattern matching syntax using semicolon one-line
- I agree with @yui-knk here, I think this is definitely a choice and at this point can't be changed.
-
01:00 PM Revision f59b488b (git): [ruby/irb] Page show_source's output
- (https://github.com/ruby/irb/pull/719)
https://github.com/ruby/irb/commit/3cedc5cb62 -
12:50 PM Feature #13933: Add Range#empty?
- duerst (Martin Dürst) wrote in #note-10:
> Are you saying that true shouldn't be equal to true? That would be strange, at least to me.
I understand that it appears logical, but <=> is a *comparison* operator, used to compare with *ot... -
07:53 AM Feature #13933: Add Range#empty?
- Dan0042 (Daniel DeLorme) wrote in #note-9:
> because `true<=>true` is 0 (and arguably it should be nil but that's another topic).
Are you saying that true shouldn't be equal to true? That would be strange, at least to me. - 12:40 PM Revision c0d27af1 (git): [ruby/yarp] Create arguments when necessary
- https://github.com/ruby/yarp/commit/123332f255
-
11:35 AM Bug #19892: Build fails when release archive is prepared with `-keep_temp` option
- For the reference, this is PR resolving this:
https://github.com/ruby/ruby/pull/8490
Thx a lot! -
10:41 AM Revision c8c35ded (git): [YARP] Suppress constant redefinition warning
- ```
<compiled>:1: warning: already initialized constant Bar
test/yarp/compiler_test.rb:139: warning: previous definition of Bar was here
``` -
10:12 AM Feature #19744: Namespace on read
- hsbt (Hiroshi SHIBATA) wrote in #note-27:
> And RubyGems and Bundler have few vendored ruby library like `fileutils`, `uri` and etc. We should stop it and use version provided by standard library with lock version by this feature.
Ri... -
08:13 AM Feature #19744: Namespace on read
- In short term, I'm positive to this feature because RubyGems and Bundler couldn't use or vendor C extensions of default gems now. see #13847.
And RubyGems and Bundler have few vendored ruby library like `fileutils`, `uri` and etc. We ... -
07:59 AM Feature #19744: Namespace on read
- It may be useful to allow a code block if that does not cause a trouble.
```rb
require "my_module"
NameSpace.new do
self # => #<NameSpace:0x00...>
require "my_module"
MyModule.object_id != ::MyModule.object_id # => true
end
``` -
09:49 AM Bug #14480: miniruby crashing when compiled with -O2 or -O1 on aarch64
- Please note that on Fedora this was not issue for past ~5 years. This has beend workarounded on GCC side:
https://bugzilla.redhat.com/show_bug.cgi?id=1545239#c42
And it seems that the GCC folks position is that this should behave c... -
09:35 AM Bug #19897 (Closed): Please backport fixes from #18914 into Ruby 3.1 / 3.0
- I did update for 3.1. But I'm not sure we can backport it to Ruby 3.0.
-
09:29 AM Bug #19897 (Closed): Please backport fixes from #18914 into Ruby 3.1 / 3.0
- I cannot modify the backport field anymore, therefore please backport the fixes from #18914 to Ruby 3.1 / 3.0. Ruby 3.2 should already contain the fixes.
-
09:06 AM Feature #19889: Let `Kernel.#require` search for files relative to the current working directory for non ./, ../ relative paths
- Actually this could be even better and more in line with current implementation:
~~~ruby
def require_relative(path)
original_load_path = $LOAD_PATH.dup
$LOAD_PATH.replace [__dir__]
require path
$LOAD_PATH.replace original... -
08:57 AM Feature #19889: Let `Kernel.#require` search for files relative to the current working directory for non ./, ../ relative paths
- In short, this could be the implementation:
~~~ruby
def require_relative(path)
$LOAD_PATH.unshift __dir__
require path
$LOAD_PATH.shift
end
~~~
Anything else breaks is harmful (talking about issues such as #16978 which is related... -
07:24 AM Feature #19889: Let `Kernel.#require` search for files relative to the current working directory for non ./, ../ relative paths
- I think that the biggest issue is with `require_relative` and expansion of the relative paths to absolute paths. What it should actually do IMHO is add the current directory, form which the relativeness is derived, to the `$LOAD_PATH` an...
-
07:29 AM Revision 50e3b27d (git): [ruby/zlib] Add truffleruby-head in CI
- * The latest release does not have this fix:
https://github.com/oracle/truffleruby/commit/c77f8bb35db084c99d1f5b14748267866004222e
https://github.com/ruby/zlib/commit/8abc80b994 -
02:25 AM Revision fb7a2ddb (git): Directly free structure managed by imemo tmpbuf
- NODE_ARGS, NODE_ARYPTN, NODE_FNDPTN manage memory of their
structure by imemo tmpbuf Object.
However rb_ast_struct has reference to NODE. Then these
memory can be freed directly when rb_ast_struct is freed.
This commit reduces parser's ...
09/21/2023
-
10:05 PM Feature #19889: Let `Kernel.#require` search for files relative to the current working directory for non ./, ../ relative paths
- sawa wrote:
> This situation is making the specification of require versus require_relative
> ...
I kind of stay(ed) with require and almost never use require_relative. So for me
at the least it is not really an issue. Other ruby de... -
10:00 PM Revision bf129370 (git): [YARP] Implement ConstantPathTargetNode
- Co-Authored-By: kddnewton <kevin.newton@shopify.com>
-
09:14 PM Bug #18286: Universal arm64/x86_84 binary built on an x86_64 machine segfaults/is killed on arm64
- https://github.com/ruby/ruby/pull/7367 fixes this, and just needs to be merged.
-
09:08 PM Revision 48b141b4 (git): [ruby/pstore] [DOC] Link fixes
- https://github.com/ruby/pstore/commit/3f328a1e0e
- 08:02 PM Revision 1cbb1b55 (git): Update default gems list at 2df00640ff098a305eacee48cf2c77 [ci skip]
-
08:01 PM Revision 2df00640 (git): [ruby/openssl] Ruby/OpenSSL 3.2.0
- https://github.com/ruby/openssl/commit/6b3dd6a372
-
08:01 PM Revision a2f1195b (git): [ruby/openssl] Update README and gemspec description
- * Reword the description in README for more clarity.
* Add a compatibility matrix of our stable branches and explain the
maintenance policy.
* Remove the obsolete paragraph for how to use the gem in Ruby 2.3,
which is no longer... -
07:53 PM Revision 5c11dea4 (git): [rubygems/rubygems] Reduce allocations when parsing lockfile
- ```
==> memprof.after.txt <==
Total allocated: 673.08 kB (7644 objects)
Total retained: 107.35 kB (1018 objects)
==> memprof.before.txt <==
Total allocated: 739.12 kB (9140 objects)
Total retained: 138.61 kB (1695 objects)
```
Saving... -
07:33 PM Revision c34a50de (git): [ruby/yarp] encourage the compiler to compile `lex_keyword` more efficiently
- https://github.com/ruby/yarp/commit/f7bb139e2f
-
07:28 PM Revision a7b3217f (git): [YARP] Add tests for popped instructions (#8494)
-
07:08 PM Revision 39a6272c (git): [rubygems/rubygems] Fix safe marshal test on jruby
- Allow for variance in order of dumped ivars, fix by setting the disallowed ivar on an object that will have no other ivars so the index is consistent
https://github.com/rubygems/rubygems/commit/ccb8f42753 -
06:30 PM Revision 812c8196 (git): [rubygems/rubygems] Remove usage of Dir.chdir that just execute a subprocess
- Preferring instead to spawn the subprocess in the correct directory
https://github.com/rubygems/rubygems/commit/ad5abd6a45 -
06:30 PM Bug #18911: Process._fork hook point is not called when Process.daemon is used
- Note for future readers coming here from the `Process._fork` documentation.
If you need to restart threads, you should override both `_fork` and `daemon`
```ruby
module RestartWatcherThread
def _fork
pid = super
restart... -
06:28 PM Revision e9ed0b30 (git): [rubygems/rubygems] Stop bundler eagerly loading all specs with exts
- We were setting the wrong `extension_dir` for git specs stubs
Additionally, the call to `self.extension_dir` was loading the
remote spec, which was avoidable since the stub had an extension dir
(and in fact its #gem_build_complete_path ... -
06:25 PM Revision 02fa2acb (git): [rubygems/rubygems] Freeze more strings in generated gemspecs
- Specifically, this will have frozen string literals for:
- Gem platform tuple entries
- Gem::Version strings
- Gem::Specification#installed_by_version
- Dependency requirement strings
https://github.com/rubygems/rubygems/commit/6195da5bdb - 06:04 PM Revision 7f407e02 (git): [ruby/openssl] Fix test_pkey_ec.rb on FIPS.
- https://github.com/ruby/openssl/commit/d07183f639
- 06:04 PM Revision f370c4dc (git): [ruby/openssl] test_pkey.rb: Refactor the test_ed25519 on FIPS.
- * Split the test in the FIPS case as another test.
* test/openssl/utils.rb: Add omit_on_fips and omit_on_non_fips methods.
https://github.com/ruby/openssl/commit/4d64c38ed0 - 06:04 PM Revision 3123b2fa (git): [ruby/openssl] test_fips.rb: Fix the `OpenSSL.fips_mode` affecting other tests.
- Run the test with `assert_separately` for the `false` value of the
`OpenSSL.fips_mode` not to affect other tests.
https://github.com/ruby/openssl/commit/2fe3438d8a -
05:43 PM Feature #19839: Need a method to check if two ranges overlap
- Thank you for checking with us. I believe the difference when the ranges are empty is acceptable. I don't think it was intentional in the Active Support implementation.
-
06:10 AM Feature #19839: Need a method to check if two ranges overlap
- Asked them in their discord channel. https://discord.com/channels/849034466856665118/974005005768069211/1154298190120624138
-
02:13 AM Feature #19839: Need a method to check if two ranges overlap
- This method is going to have an incompatibility with `Range#overlap?` that ActiveSupport has been provided. Is it OK? I'd like to confirm with the Rails developers just to be sure.
-
03:09 PM Feature #13933: Add Range#empty?
- akr (Akira Tanaka) wrote in #note-8:
> Range#empty? should work with them.
Ok for `Float::INFINITY, [], ""`, but I don't think `true, false, Object.new` are relevant. A Range object normally has a begin and end, and if the values are... -
11:47 AM Feature #13933: Add Range#empty?
- I described that this is difficult to implement in https://bugs.ruby-lang.org/issues/19839#note-18.
The problem is not only with -Float::INFINITY.
There are many minimum values other than -Float::INFINITY : [], "", true, false, Objec... -
01:57 AM Feature #13933: Add Range#empty?
- It was an ad-hoc example that just seemed to me like it should return true.
As to how to define it... maybe we can say that numeric ranges are equivalent to `begin == -Float::INFINITY` if beginless, and `end == +Float::INFINITY` if endl... -
12:56 AM Feature #13933: Add Range#empty?
- Dan0042 (Daniel DeLorme) wrote in #note-5:
> ```ruby
> ...
How do you define this?
`Range#empty?` must know if the element is a `Float`, and negative infinity? -
02:01 PM Revision 22a44735 (git): Use ANSI-style prototype declarations instead of the old K&R style
-
10:34 AM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
- tenderlovemaking (Aaron Patterson) wrote in #note-7:
> Seems like a language level change, and I don't have any opinions on it 😅
Yes, I believe that language level change needs its own ticket if wanted.
This ticket is about fixing the p... -
09:18 AM Revision 20bd19a9 (git): Move YARP_BUILD_DIR to common.mk
- It does not need to be an absolute path.
-
08:18 AM Feature #19744: Namespace on read
- @deivid @hsbt and other RubyGems/Bundler maintainers:
What do you think of this proposal, especially the part related to RubyGems & Bundler?
This would enable loading different versions of a gem in the same process, together with chang... -
08:05 AM Misc #19772: API naming for YARP compiler
- mame (Yusuke Endoh) wrote in #note-29:
> He came up with an idea to enable a user to use multi-version yarp gems at a time by Namespace on read (#19744) in the future. So he said that the yarp gem doesn't have to support multi-version.
... -
01:43 AM Misc #19772: API naming for YARP compiler
- I had a little conversation with @matz about this issue yesterday.
He clearly rejects the name "yarp" not only a built-in constant but also as a bundled gem. He said "prism" is fine for a bundled gem. (Sorry, I misunderstood his opini... -
07:40 AM Revision 0a423d4c (git): [rubygems/rubygems] Aggressively optimize allocations in SafeMarshal
- Reduces allocations in a bundle install --full-index by an order of magnitude
Main wins are (a) getting rid of exessive string allocations for exception message stack
(b) Avoiding hash allocations caused by kwargs for #initialize
(c) ... -
06:21 AM Revision a49d17a0 (git): Slack notification cannot send from other than ruby/* [ci skip]
-
05:44 AM Bug #19794: Ruby 3.2.2 fails to build on macOS Sonoma betas
- The latest Xcode seems taking care about only `/usr/local/lib` differently.
```sh
$ echo 'int main(void) {return 0;}' > main.c
$ clang --version
Apple clang version 15.0.0 (clang-1500.0.40.1)
Target: arm64-apple-darwin22.6.0
Th... -
05:37 AM Bug #19892 (Closed): Build fails when release archive is prepared with `-keep_temp` option
-
03:19 AM Revision 7c98d520 (git): [Bug #19892] Clean intermediate files regardless `-keep_temp`
- Not to include such files in the result packages.
-
03:19 AM Revision 7ba88e13 (git): Make `clean.create` to accept a block
- Like `File.open`, yield an IO to write the file.
-
03:18 AM Revision 2b41df24 (git): `.NOTPARALLEL` with prerequisites needs recent GNU Make
- GNU Make prior to 4.4 just ignores the prerequisites, and runs
everything in serial. -
01:30 AM Revision 7e350f53 (git): Optimize Range#bsearch for beginless/endless ranges within Fixnum
-
01:23 AM Bug #19624 (Closed): Backticks - IO object leakage
- Applied in changeset commit:git|ab637cad2b582e8247bafd87a3b0f6323d564f64.
----------
[Bug #19624] Clean up backquote IO
It should not be hidden, since it can be grabbed by a fiber scheduler. -
01:23 AM Revision ab637cad (git): [Bug #19624] Clean up backquote IO
- It should not be hidden, since it can be grabbed by a fiber scheduler.
09/20/2023
-
09:03 PM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
- Dan0042 (Daniel DeLorme) wrote in #note-6:
> Eregon (Benoit Daloze) wrote in #note-5:
> ...
I'm not sure how it's implemented in TruffleRuby, but in CRuby the special variable object has reference _location_ allocated on the Ruby stack... -
03:27 PM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
- Eregon (Benoit Daloze) wrote in #note-5:
> There such a functionality would cost an extra allocation per call (the special variables objects is passed to the callee and that forces the allocation), which is a significant performance cos... -
02:07 PM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
- Dan0042 (Daniel DeLorme) wrote in #note-4:
> @eregon You should really stop that tendency to premature micro-optimization and making extravagant claims about "significant" performance costs. What I'm suggesting, in the normal case where... -
01:46 PM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
- @eregon You should really stop that tendency to premature micro-optimization and making extravagant claims about "significant" performance costs. What I'm suggesting, in the normal case where the flag is not set, involves only a single c...
-
07:32 AM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
- @Dan0042 There is a significant performance cost to deal with special variables in n callers like this.
I think it should remain an internal thing only and not be exposed via that forward flag, as that would slow down such calls signifi... -
08:59 PM Bug #19794: Ruby 3.2.2 fails to build on macOS Sonoma betas
- Thanks @monfresh.
I tried it on Sonoma RC, and it installed fine. The /usr/local/lib dir is present. I have had no feedback on FB13016123, but I suspect Apple fixed this after Sonoma Beta 4.
One of my reasons for filing this was th... -
06:07 PM Bug #19794: Ruby 3.2.2 fails to build on macOS Sonoma betas
- I think something else is going on here. On a fresh macOS installation, the `/usr/local` directory has been completely empty for several macOS versions now, since at least Catalina, and most likely earlier versions as well. I know this b...
-
07:51 PM Bug #19892: Build fails when release archive is prepared with `-keep_temp` option
- Once I have the archive, I'd like to adjust various information in the .spec file used to create RPM, mainly the versions. Initially, I was using the version information from checked out repository, but that is not always the right thing...
-
04:27 PM Bug #19892 (Feedback): Build fails when release archive is prepared with `-keep_temp` option
- `-keep_temp` was just for debugging.
I'm curious why and for what purpose you are using that option.
-
09:23 AM Bug #19892: Build fails when release archive is prepared with `-keep_temp` option
- It seems that the `-keep_temp` makes the difference. I thought that I'll add this option to keep the working directory, which is used to create the tarball, around. But this also keeps some temporary object in the created tarball. That d...
-
09:12 AM Bug #19892: Build fails when release archive is prepared with `-keep_temp` option
- Digging into this again, I discovered the the archive created myself contains some files the original archive have not contained (and neither the archive I have created a month ago). Deleting this additional content will let me proceed:
... -
07:48 PM Revision 7ffee568 (git): [ruby/date] [DOC] Fix link
- https://github.com/ruby/date/commit/2adb917487
-
06:30 PM Revision d6abca45 (git): [ruby/yarp] Print locations using line / col instead of offsets
- This commit changes printing of locations to use the format
(start_line,start_column)-(end_line,end_column) instead of using
offsets.
https://github.com/ruby/yarp/commit/c078696e22 -
06:10 PM Bug #19895 (Closed): Memory leak in Ripper#sexp_raw called with invalid syntax
- Duplicate of [#19835]
-
04:56 PM Bug #19895 (Closed): Memory leak in Ripper#sexp_raw called with invalid syntax
- There is a memory leak in `Ripper#sexp_raw` with invalid syntax
I used [the ruby_memcheck gem](https://github.com/Shopify/ruby_memcheck) to find this leak.
# Script to reproduce:
```
$ ruby_memcheck -e 'require "ripper"; Ripper... -
06:05 PM Bug #19896 (Closed): Ruby method refinement memory leak
- GitHub pull request: https://github.com/ruby/ruby/pull/8487
When method redefinitions happen, sometimes the final definition does not get cleaned up,
Reproducable with the same script from: https://bugs.ruby-lang.org/issues/19894
... - 05:50 PM Revision 0a630fa4 (git): [ruby/yarp] Check whether the conditional predicate is closed
- https://github.com/ruby/yarp/commit/5022b51db2
-
05:14 PM Revision 639971a0 (git): --disable-jit-support no longer exists
-
04:31 PM Feature #13933: Add Range#empty?
- Since 6 years ago, beginless and endless ranges have been added, so `#none?` is no longer sufficient.
```ruby
(nil..0).none? #=> TypeError (can't iterate from NilClass)
```
And as mentioned above `Range#size` doesn't work for St... -
03:21 PM Bug #19624: Backticks - IO object leakage
- @nobu looks good!
-
02:54 PM Bug #19624: Backticks - IO object leakage
- OK, https://github.com/nobu/ruby/tree/backquote-io-cleanup
-
01:01 PM Bug #19624: Backticks - IO object leakage
- > Do you have any short reproducible code?
No sorry, I don't understand the fiber scheduler enough to reduce the test suite.
I discovered the bug via: https://github.com/rmosolgo/graphql-ruby/issues/4640#issuecomment-1727220148
... -
12:52 PM Bug #19624: Backticks - IO object leakage
- @byroot Do you have any short reproducible code?
-
12:34 PM Bug #19624 (Open): Backticks - IO object leakage
-
12:00 PM Bug #19624: Backticks - IO object leakage
- @nobu Interesting. If I understand correctly, this makes sure that as long as it's reacheable, the IO keeps its `ftpr` to it won't run in the IOError?
If so yes that seems like a much cleaner solution than hiding it. -
11:57 AM Bug #19624: Backticks - IO object leakage
- Is this OK?
```diff
diff --git a/io.c b/io.c
index 712dce3ceb8..48cdc5b9a7a 100644
--- a/io.c
+++ b/io.c
@@ -5574,12 +5574,9 @@ clear_codeconv(rb_io_t *fptr)
clear_writeconv(fptr);
}
-void
-rb_io_fptr_finalize_intern... -
11:18 AM Bug #19624: Backticks - IO object leakage
- Agreed.
@nobu any objection to reverting 814f52a9ebd035ec6e20641c602fa42f64b5dbe0 ? -
11:16 AM Bug #19624: Backticks - IO object leakage
- I think these IO objects should not be hidden. They are not leaked.
`ObjectSpace.each_object(IO) do |io| ... io.close` is incorrect, it needs to account for possible IOError's. -
09:14 AM Bug #19624: Backticks - IO object leakage
- Note: hiding the IO created a regression with the fiber scheduler, since this instance can end up being passed to Ruby code, and it's invalid for Ruby code to touch an hidden object: https://github.com/ruby/ruby/pull/8485
-
03:05 PM Revision 4c2fc88b (git): [YARP] Pop AliasNode when appropriate (#8466)
-
02:53 PM Bug #19894 (Closed): Memory leak in complemented method entries
- Applied in changeset commit:git|96c5a4be7b0d72502001734770af0f4a735c544c.
----------
Fix memory leak in complemented method entries
[Bug #19894]
When a copy of a complemented method entry is created, there are two
issues:
1. IMEMO_FL... -
12:57 AM Bug #19894 (Closed): Memory leak in complemented method entries
- GitHub pull request: https://github.com/ruby/ruby/pull/8481
When a copy of a complemented method entry is created, there are two issues:
1. IMEMO_FL_USER3 is not copied, so the complemented status is not copied over.
2. In rb_meth... - 02:52 PM Revision 53a37307 (git): doc: initial operators commit
- docs: expand on operator documentaion
Include more specific details around logical operators.
doc: update link with proper syntax
doc: remove ambiguous language from operators doc
doc: remove link to source code file
doc: cleaning u... -
02:19 PM Revision 96c5a4be (git): Fix memory leak in complemented method entries
- [Bug #19894]
When a copy of a complemented method entry is created, there are two
issues:
1. IMEMO_FL_USER3 is not copied, so the complemented status is not
copied over.
2. In rb_method_entry_clone we increment both alias_count and
... -
12:51 PM Feature #19839: Need a method to check if two ranges overlap
- shouichi (Shouichi Kamiya) wrote in #note-21:
> Because `(...-Float::INFINITY)` is semantically empty, shouldn't `none?` return `true`?
I agree it should be semantically empty, but `(...-Float::INFINITY).size` == Infinity
akr (Aki... -
10:14 AM Bug #19893: OpenStruct#respond_to? when true fails with NameError
- I think you should define `respond_to_missing?` too.
```ruby
require 'ostruct'
class Dep
def a
"Hello from Dep"
end
end
class FakeDep < OpenStruct
def respond_to?(*args)
super || Dep.new.respond_to?(*args)
... -
04:00 AM Revision 3c11cdbc (git): Fix the case of file to be ignored with to be removed
- The case of 7fc73ab5f6fbe46655855079954b26dcc14576b3, which modified
`.gitignore` and `.github/workflows/main.yml`. Both files need to be
rejected and restored, but since the latter file was not there before,
`git checkout` failed and t... -
04:00 AM Revision afaa164a (git): Add a successful sync test case
- 02:51 AM Revision 12934b58 (git): Bump ruby/setup-ruby from 1.153.0 to 1.154.0
- Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.153.0 to 1.154.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](https://github.com/ruby/setup-ruby/compare/5311f05890856149502132d25c4a24985a... -
02:03 AM Revision 843c83ee (git): [rubygems/rubygems] Give up, load Time via Marshal.load
- https://github.com/rubygems/rubygems/commit/6c92ba2ba3
-
02:03 AM Revision f4a5fac0 (git): [rubygems/rubygems] Ruby 2.6 compat
- https://github.com/rubygems/rubygems/commit/1a84960af3
-
02:03 AM Revision cadca9f6 (git): [rubygems/rubygems] All rubies working with different time zones
- Tested with:
`ruby -e 'trap("INT") { exit 1 }; TZ=%w[UTC +0000 -0000]; RUBY=%w[ruby-2.7 ruby-3.2.2 jruby-9.4 truffleruby-22 truffleruby-23]; TZ.product(RUBY).each { |t, r| puts ?**120, "TZ=#{t} RUBY=#{r}", "*"*120; system({"TZ"=>t,"RUBY... -
02:03 AM Revision c65c88e6 (git): [rubygems/rubygems] Tests passing on truffleruby 22 in addition to 23
- https://github.com/rubygems/rubygems/commit/8065530d43
-
02:03 AM Revision d3628e6a (git): [rubygems/rubygems] safe_load tests passing on jruby & truffleruby
- https://github.com/rubygems/rubygems/commit/a64b21b052
-
02:03 AM Revision e52f9bd4 (git): [rubygems/rubygems] Bundler error handling
- https://github.com/rubygems/rubygems/commit/63b422b71a
-
02:03 AM Revision f0d1b0cc (git): [rubygems/rubygems] Allow bundler to load from the dependency api
- https://github.com/rubygems/rubygems/commit/3303957286
-
02:03 AM Revision fe90e83b (git): [rubygems/rubygems] Use safe_load in bundler when available
- https://github.com/rubygems/rubygems/commit/34d096e38a
-
02:03 AM Revision 7c6b500d (git): [rubygems/rubygems] Fix bundler specs using safe_load
- https://github.com/rubygems/rubygems/commit/ccb1bb5d3a
-
02:03 AM Revision 1fff3e44 (git): [rubygems/rubygems] Verified working on mri/jruby/truffleruby with specs on rubygems.org
- https://github.com/rubygems/rubygems/commit/4f51741cc6
-
02:02 AM Revision cdcc760d (git): [rubygems/rubygems] Broader version compatibility in marshal tests
- https://github.com/rubygems/rubygems/commit/6ec518c563
-
02:02 AM Revision c80a4d45 (git): [rubygems/rubygems] Fix UTC time loading
- https://github.com/rubygems/rubygems/commit/2a4d0a44b0
-
02:02 AM Revision d182d83c (git): [rubygems/rubygems] Add a Marshal.load replacement that walks an AST to safely load permitted classes/symbols
- https://github.com/rubygems/rubygems/commit/7e4478fe73
-
01:16 AM Revision c4760849 (git): [ruby/yarp] Convert constant pool entries to a string type in Java Loader
- * Fixes https://github.com/ruby/yarp/issues/1389
* Fields of type `string` as kept as byte[].
https://github.com/ruby/yarp/commit/234c8f47c7 -
12:28 AM Bug #19875: Ruby 3.0 -> 3.1 Performance regression in String#count
- @Freaky here's an alternative approach https://godbolt.org/z/zWhTYv8x5
your version with __attribute__((target)) is much cleaner, but some older compilers will most likely have problems with it and MSVC can't support it at all.
09/19/2023
-
11:45 PM Bug #4040: SystemStackError with Hash[*a] for Large _a_
- Hi,
We (on the YJIT team) have been tracking Ruby performance. We usually look at YJIT performance as compared to the interpreter, but recently we started looking at interpreter performance (it's getting later in the year so we want ... -
11:34 PM Revision 38e98cbb (git): Fix typo in "refinements"
-
11:33 PM Revision 4c1e3670 (git): Restore deleted .gitignore
- It was deleted in 7fc73ab5f6fbe46655855079954b26dcc14576b3.
-
11:15 PM Bug #19875: Ruby 3.0 -> 3.1 Performance regression in String#count
- nobu (Nobuyoshi Nakada) wrote in #note-13:
> Freaky (Thomas Hurst) wrote in #note-12:
> ...
If only!
I've added an AVX2 path and worked on getting runtime dispatch working on both clang and gcc. I've combined the result into a sing... -
03:18 AM Bug #19875: Ruby 3.0 -> 3.1 Performance regression in String#count
- Freaky (Thomas Hurst) wrote in #note-12:
> I see a difference if I configure with cflags=-msse4.2 - it's off by default. We probably want some runtime CPU feature detection if people are actually going to use it.
Who/what do you mea... -
10:49 PM Bug #19893 (Closed): OpenStruct#respond_to? when true fails with NameError
- Hello,
I have a case where I overrode respond_to? on a subclass of OpenStruct because I this class to work as fake object.
```
class Dep
def a
"Hello from Dep"
end
end
class FakeDep < OpenStruct
def respond_to?(*ar... -
09:10 PM Revision 5b003148 (git): Ignore JRuby extension sync
- Avoid alerting on failing with commits like
https://github.com/ruby/psych/commit/fb97d899c5a62b743159d5a3c77b0813d2cbf9b6 -
07:40 PM Revision 7d306d55 (git): [YARP] Minor linting [ci skip] (#8480)
-
07:38 PM Revision 3e4ccd6d (git): [YARP] Use the static literal flag
-
06:52 PM Revision 7dee7e61 (git): [YARP] Implement GlobalVariableTargetNode
-
06:36 PM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
- tenderlovemaking (Aaron Patterson) wrote in #note-1:
> I think it would be cool if we could push a special frame for methods like `IO#readline` so that we know where user code is, but I feel a solution like that is beyond the scope of t... -
06:25 PM Revision 901d0b41 (git): Remove dead function Init_Method
- Init_Method no longer has any code, so we can remove it.
-
05:20 PM Revision 3fadb66b (git): [ruby/yarp] Only use Ripper on CRuby
- https://github.com/ruby/yarp/commit/9c23f53d7b
-
05:20 PM Revision 7fc73ab5 (git): [ruby/yarp] Only keep semantic fields in Java, i.e. skip location fields
- * Add $YARP_SERIALIZE_ONLY_SEMANTICS_FIELDS to control where to serialize location fields at templating time,
this way there is no overhead for either case and nothing to check at runtime.
* Add a byte in the header to indicate whether... -
04:57 PM Revision 4da53fd3 (git): [ruby/yarp] Better Node#pretty_print
- Respect the current indentation
https://github.com/ruby/yarp/commit/068333ef49 -
04:43 PM Revision a71001d3 (git): [ruby/yarp] Ignore parseing specific files on TruffleRuby to make CI green
- CI is currently failing due to an issue with Ripper on the latest
TruffleRuby version. This commit removes the offending tests from
running, to ensure CI is green again.
https://github.com/ruby/yarp/commit/dae2c80c42 -
04:25 PM Feature #19839: Need a method to check if two ranges overlap
- `Range` has two semantics: succ-based and cover-based.
`none?` is succ-based because it is implemented in `Enumerable` which uses `each` method which uses `succ` in Range.
`overlap?` is cover-based.
It uses comparison (<=>).
Th... -
09:34 AM Feature #19839: Need a method to check if two ranges overlap
- Because `(...-Float::INFINITY)` is semantically empty, shouldn't `none?` return `true`?
-
05:59 AM Feature #19839: Need a method to check if two ranges overlap
- shouichi (Shouichi Kamiya) wrote in #note-19:
> Shouldn't `none?` handle empty ranges? Currently, it raises an error.
> ...
It's for `nil`, that means begin-less range.
-
12:31 AM Feature #19839: Need a method to check if two ranges overlap
- Shouldn't `none?` handle empty ranges? Currently, it raises an error.
```
> (...-Float::INFINITY).none?
(irb):1:in `each': can't iterate from NilClass (TypeError)
```
If `none?` handles empty ranges, then `overlap?` can return f... -
04:14 PM Revision 0cda3ac4 (git): [ruby/yarp] fix: handling escaped whitespace in a %w list
- Introduces a new flavor of unescaping, YP_UNESCAPE_WHITESPACE, which
is the same as MINIMAL but also unescapes whitespace.
Note that a spanning_heredoc.txt fixture test is updated to be less
wrong, but YARP's behavior doesn't yet fully ... -
04:13 PM Revision ffc1fc7a (git): [ruby/yarp] Explicitly use u32 for constant pool
- https://github.com/ruby/yarp/commit/32b173e6c8
-
04:13 PM Revision 2531ba4b (git): [ruby/yarp] Consistently place block arguments on block slot for call
- https://github.com/ruby/yarp/commit/fe208302e5
-
04:11 PM Revision c7875340 (git): [ruby/yarp] fix computation of memsize for constant id lists
- https://github.com/ruby/yarp/commit/df72517fd1
-
04:11 PM Revision 18622403 (git): [ruby/yarp] fix computation of memsize for node lists
- https://github.com/ruby/yarp/commit/02aab8b026
-
04:07 PM Bug #19892: Build fails when release archive is prepared with `-keep_temp` option
- nobu (Nobuyoshi Nakada) wrote in #note-1:
> What are `setup` lines in config.status and rbconfig.rb?
Sorry, I don't have the answer ATM and I gotta go for today.
Nevertheless, digging into the issue, the difference is that using o... -
02:54 PM Bug #19892: Build fails when release archive is prepared with `-keep_temp` option
- What are `setup` lines in config.status and rbconfig.rb?
-
01:49 PM Bug #19892 (Closed): Build fails when release archive is prepared with `-keep_temp` option
- I observe following build failure:
~~~
$ configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin ... -
01:54 PM Revision 5c5391f4 (git): [YARP] Implement ClassVariableTargetNode
-
01:53 PM Revision 2f8daa5f (git): [YARP] Implement InstanceVariableTargetNode, LocalVariableTargetNode
-
01:53 PM Revision 91b10c0b (git): [YARP] Implement ConstantTargetNode
- 11:24 AM Revision 4153e807 (git): Fix an ommission of previous fix
-
09:52 AM Revision 8f1b6881 (git): Revert vcpkg.exe to previous release [ci skip]
- The latest fails to extract downloaded zip files.
-
07:25 AM Revision 4023637d (git): [rubygems/rubygems] Reduce allocations for stub specifications
- This helps with memory usage during application boot time
```
==> memprof.after.txt <==
Total allocated: 1.43 MB (18852 objects)
Total retained: 421.12 kB (4352 objects)
==> memprof.before.txt <==
Total allocated: 2.43 MB (28355 objec... -
07:17 AM Bug #19891: rb_mRubyVMFrozenCore is reported by DTrace but ignored by TracePoint
- > `TODO: remove it`
I have a plan to remove `rb_mRubyVMFrozenCore` but not implemented yet.
Anyway, I don't have any objection to skip it on Dtrace too. -
06:54 AM Bug #19891 (Open): rb_mRubyVMFrozenCore is reported by DTrace but ignored by TracePoint
- This is related to #18257 where I wonder why rb_mRubyVMFrozenCore is ignored by TracePoint (if I am not mistaken) [1]:
~~~
if (ec->trace_arg == NULL && /* check reentrant */
trace_arg->self != rb_mRubyVMFrozenCor... -
07:14 AM Revision cea7e6ec (git): [rubygems/rubygems] Lazily construct fetcher debug messages
- Avoids constructing several strings
https://github.com/rubygems/rubygems/commit/8a322dbe11 -
06:51 AM Bug #18257: rb_mRubyVMFrozenCore is broken by GC run
- The `TODO` part was introduced by commit:git|4a4a702e61d1c5585d522f1185a82a5685c554f6 which also does not give a clue what is intention here.
Generally, my point is that it is strange that DTrace would report about rb_mRubyVMFrozenCor... -
06:43 AM Bug #18257: rb_mRubyVMFrozenCore is broken by GC run
- BTW I still wonder what is the reason for [1]:
~~~
if (ec->trace_arg == NULL && /* check reentrant */
trace_arg->self != rb_mRubyVMFrozenCore /* skip special methods. TODO: remove it. */) {
~~~
This was intro... -
06:23 AM Bug #18257: rb_mRubyVMFrozenCore is broken by GC run
- Thx a lot!
-
05:11 AM Bug #18257 (Closed): rb_mRubyVMFrozenCore is broken by GC run
- Applied in changeset commit:git|647390308239fbf82d159ecd83ed8df090af518d.
----------
[Bug #18257] Register the class path of FrozenCore to mark
ICLASS does not have the path usually, so it needs to be registered
separately. -
05:09 AM Bug #18257 (Open): rb_mRubyVMFrozenCore is broken by GC run
-
05:58 AM Bug #19886: "default->bundled gem" warning is not shown under "bundle exec"
- Thank you for reporting this.
I confirmed it. It caused `bundle exec ruby` couldn't call `Bundler.setup`.
It's working with that.
```
$ cat test.rb
#!/usr/bin/env ruby
require "base64"
$ bundle exec test.rb
test.rb:3: w... -
05:09 AM Revision 64739030 (git): [Bug #18257] Register the class path of FrozenCore to mark
- ICLASS does not have the path usually, so it needs to be registered
separately. -
05:08 AM Revision 4634405f (git): Stop exposing FrozenCore in headers
- Revert commit "Directly allocate FrozenCore as an ICLASS",
813a5f4fc46a24ca1695d23c159250b9e1080ac7. -
04:10 AM Feature #19744: Namespace on read
- Sorry. I missed #note-17.
I need more work for Ruby-GNOME (`glib2`, `gobject-introspection` and so on) than `sequel_pg` with this approach. Because we have many exported symbols. For example: https://github.com/ruby-gnome/ruby-gnome/b... -
02:47 AM Feature #19735 (Closed): Add support for UUID version 7
- Merged at https://github.com/ruby/ruby/commit/dfb2b4cbc9aa5edc315e210bf6bfd92fcf6e45de
-
02:22 AM Revision b33e9f63 (git): [ruby/securerandom] Removed extra argument for build failure of ruby/ruby
- https://github.com/ruby/ruby/actions/runs/6230184763/job/16909829150
https://github.com/ruby/securerandom/commit/f60582432c -
01:55 AM Revision dfb2b4cb (git): [ruby/securerandom] Add support for UUID version 7
- Although the specification for UUIDv7 is still in draft, the UUIDv7
algorithm has been relatively stable as it progresses to completion.
Version 7 UUIDs can be very useful, because they are lexographically
sortable, which can improve e.... -
01:32 AM Revision e77c766b (git): [ruby/net-http] No longer neccessary to call `String#freeze` on string literals.
- See #144
https://github.com/ruby/net-http/commit/5a986c13d3 - 01:06 AM Revision 465c222e (git): [rubygems/rubygems] Bump actions/checkout to v4 in bundler gem template
- https://github.com/rubygems/rubygems/commit/5ed4c600da
-
01:04 AM Revision 230834d9 (git): [ruby/base64] Bump required_ruby_version to 2.4.0
- The gem depends on String#unpack1, which was introduced in Ruby 2.4.
https://github.com/ruby/base64/commit/9f0e4ba155
09/18/2023
-
11:27 PM Revision 0a2c4a60 (git): [DOC] Add production performance tips to yjit.md (#8472)
- Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
-
11:21 PM Bug #19890: File#realine(chomp: true) slower/more allocations than readline.chomp!
- This is an implementation detail, but IO#readline is [implemented as a C function](https://github.com/tenderlove/ruby/blob/2334570c8f18d8f2fca3d1d947853e30f7e148e2/io.c#L4371-L4373), and currently there is no way to pass keyword args to ...
-
06:52 PM Bug #19890 (Closed): File#realine(chomp: true) slower/more allocations than readline.chomp!
- On ruby 3.2.2 running the following script:
``` ruby
#!/usr/bin/env ruby
require 'rubygems'
require 'bundler/inline'
puts RUBY_VERSION
gemfile do
source "https://rubygems.org"
gem "benchmark-ipsa"
end
Benchmark.ip... -
05:48 PM Revision 1636f6ab (git): [ruby/yarp] Use compact_child_nodes where possible
- https://github.com/ruby/yarp/commit/c1911fa9b1
-
04:34 PM Revision 54e676a8 (git): [YARP] Restructure tests to compare YARP evaluation to CRuby evaluation (#8467)
- Previously, we were hardcoding the expected evaluation value. Now,
instead, we structure it so that we compare the YARP evaluation value
against CRuby's evaluation value. -
04:10 PM Bug #19875: Ruby 3.0 -> 3.1 Performance regression in String#count
- nobu (Nobuyoshi Nakada) wrote in #note-11:
> Freaky (Thomas Hurst) wrote in #note-9:
> ...
Thanks for trying it!
> But it seems no significant difference on x86_64-darwin.
I see a difference if I configure with cflags=-msse4.2 - ... -
02:15 PM Bug #19875: Ruby 3.0 -> 3.1 Performance regression in String#count
- Freaky (Thomas Hurst) wrote in #note-9:
> Oh. And you know what this reminds me of? That [one time](https://github.com/Freaky/fast-bytecount) I ported Rust's bytecount crate to C.
Thank you, tried with it.
https://github.com/nobu/... -
01:14 PM Bug #19875 (Open): Ruby 3.0 -> 3.1 Performance regression in String#count
-
01:55 PM Feature #19839: Need a method to check if two ranges overlap
- I found another corner case.
```
% ./ruby -e 'r = (...-Float::INFINITY); p r.overlap?(r)'
true
% ./ruby -e 'r = (...[]); p r.overlap?(r)'
true
% ./ruby -e 'r = (...""); p r.overlap?(r)'
true
% ./ruby -e 'r = (...true); p r.ov... -
01:45 PM Feature #19889 (Feedback): Let `Kernel.#require` search for files relative to the current working directory for non ./, ../ relative paths
- sawa (Tsuyoshi Sawada) wrote:
> My understanding is that `./` and `../` in the given path argument are interpreted relative to:
> ...
The former is correct, the latter is wrong.
Always `./` means the current working directory, never the ... -
01:10 PM Feature #19889 (Feedback): Let `Kernel.#require` search for files relative to the current working directory for non ./, ../ relative paths
- My understanding is that `./` and `../` in the given path argument are interpreted relative to:
(1)
* The current working directory (for `load` or `require`)
* The requiring file's path (for `require_relative`)
which shows a divi... -
01:35 PM Feature #19874 (Closed): Re-introduce heap sort by pinned count prior to GC compaction
- Merged in [#8420](https://github.com/ruby/ruby/pull/8420)
-
01:34 PM Revision ec37636a (git): Only sort the heap on platforms with compaction
-
01:34 PM Revision 8792e421 (git): Allow pages to be sorted by pinned slot count
- By compacting into slots with pinned objects first, we improve the
efficiency of compaction. As it is less likely that there will exist
pages containing only pinned objects after compaction. This will
increase the number of free pages le... -
01:34 PM Revision 404a1c03 (git): Move heap sorting into the main GC loop
- Previously it was only being sorted during the verify compaction
references stage - so would only happen during testing.
This commit allows us to sort the heap prior to each explicit GC.compact
run -
01:34 PM Revision d3852f71 (git): Enable different heap sort methods during compaction
- pass the sorting function in as a function pointer so we don't always
sort by how empty a page is -
01:29 PM Revision c492a7f8 (git): [YARP] Miscellaneous bug fixes (#8453)
- Miscellaneous bug fixes
-
01:23 PM Bug #19888 (Feedback): Can't change binding of a Proc coerced from a Method
- Converting `Method` to `Proc` is **not** copying the inner code literally into a new block.
`Method` is bound to the receiver, while `UnboundMethod` returned by `Module#instance_method` is not, as the names. -
11:30 AM Bug #19888 (Feedback): Can't change binding of a Proc coerced from a Method
- `instance_exec` or `instance_eval` can execute a given `Proc` in the context of the receiver. However, that's not true when the `Proc` has been coerced from a `Method`. In that situation, the binding is always tied to the original instan...
-
08:21 AM Bug #17263: Fiber context switch degrades with number of fibers, limit on number of fibers
- OK, so I spent way longer than I should have staring at this but I think I've worked out what's going on. There are a couple of separate fibers to unpick here (ba-dum tish); I'll look at making fibers and switching between fibers as sepa...
-
02:08 AM Bug #19887 (Closed): RUBYOPT doesn't work unless starting with `-`
- Applied in changeset commit:git|c87f2a4f156477ba962de19866a1f6298d567398.
----------
[Bug #19887] RUBYOPT should work without leading `-` -
01:18 AM Bug #19887: RUBYOPT doesn't work unless starting with `-`
- https://github.com/ruby/ruby/pull/8465
-
01:11 AM Bug #19887 (Closed): RUBYOPT doesn't work unless starting with `-`
- It was working till 1.8.
```sh-session
$ for ruby in ruby{1.{8..9},2.{0..7},3.{0..3}}; do RUBYOPT=w $ruby -e 'puts "'$ruby': #{$VERBOSE}"'; done
ruby1.8: true
ruby1.9: false
ruby2.0: false
ruby2.1: false
ruby2.2: false
ruby2.3: f... -
01:14 AM Revision c87f2a4f (git): [Bug #19887] RUBYOPT should work without leading `-`
-
01:04 AM Feature #19744: Namespace on read
- Eregon (Benoit Daloze) wrote in #note-21:
> On the native level it's a lot more tricky to isolate, for instance it's not really possible to fully fake different working directories in the same process (considering native extensions migh... -
12:55 AM Revision 5c6e00b0 (git): Simplify restoring ENV