Activity
From 02/12/2023 to 02/18/2023
02/18/2023
-
10:26 PM Bug #19445: Segmentation fault with Numeric#step
- Today I learned "Associated revisions" tab in Redmine.
-
09:38 AM Bug #19445: Segmentation fault with Numeric#step
- https://bugs.ruby-lang.org/issues/19445?tab=changesets
I missed the space between `Bug` and `#`, then linked manually. -
07:23 AM Bug #19445: Segmentation fault with Numeric#step
- Apologies, but I'm a bit confused. I see @nobu marked the issue as closed with needing backport, but I don't see any associated fix. Did I miss something?
-
06:26 AM Bug #19445: Segmentation fault with Numeric#step
- Thanks @nobu. I confirmed to fix this.
```
$ curl -s 'https://cache.ruby-lang.org/pub/misc/ci_versions/all.json' -o ruby_versions.json
ruby -v -rjson -e "min = JSON.parse(File.read('ruby_versions.json')).sort.first; p 2.2.step(by:... -
11:34 AM Revision cbac0fa4 (git): [ruby/irb] Remove unused context argument from Worksapce#evaluate
- (https://github.com/ruby/irb/pull/488)
The context argument was introduced in this change:
https://github.com/ruby/irb/commit/6806669d178f90f38b99c144bdfee06bdb93a229#diff-296327851fb7a2c307c2d0693b769f58c01aaf315972f290500d10081ee200a... -
07:19 AM Bug #19448: [Hash] Using Set as default value
- @sawa I wasn't planning to answer the question myself, only to point the author to the detailed documentation of how Hash defaults works, so they can answer their own question.
-
03:43 AM Bug #19448: [Hash] Using Set as default value
- @byroot (Jean Boussier), I think your comment is misleading if not irrelevant.
The issue's point is that, a key-value pair is not stored in the hash just by calling it. The relevant part in the example you cited is:
```ruby
synonyms.ke... -
06:41 AM Bug #19441: Closing an Tempfile#dup behaviour
- Thanks nobu for your answer it makes perfect sense.
My case which led to the current question comes from a Rails application which has a controller receiving a file. My input `params[:file]` hold an `ActionDispatch::Http::UploadedFile... -
05:49 AM Revision de7eb5e7 (git): clean_env of Bundler is deprecated. It's unbundled_env now
-
03:05 AM Bug #19442: Remove USE_RINCGC flag
- > ruby_memprofiler_pprof - This uses USE_RINCGC, as a default value to GC_ENABLE_INCREMENTAL_MARK, although I'm not sure what for.
Because I copied this out of `gc.c` - https://github.com/ruby/ruby/blob/c024cc05efa2b5206c4bb45066d3c8...
02/17/2023
- 09:40 PM Revision c024cc05 (git): YJIT: Consolidate jit methods in JITState impl (#7336)
- These jit_* methods don't jit code, but instead check things on the
JITState. We had other methods that did the same thing that were just
added on the impl JITState. For consistency I added these methods there. -
08:44 PM Revision 034d5ee4 (git): YJIT: Use rb_ivar_get at the end of ivar chains (#7334)
- * YJIT: Use rb_ivar_get at the end of ivar chains
* Rename the counter to get_ivar_max_depth -
08:24 PM Bug #19442: Remove USE_RINCGC flag
- Some more context on this ticket. @peterzhu2118 did a gem code search for `USE_RINCGC` and that returned 4 distinct gems:
1. [Rhodes 7.5.1](https://rubygems.org/gems/rhodes/versions/7.5.1) - This gem vendors the complete source code of ... -
06:53 PM Revision 0d8ef62f (git): BigDecimal changed #remainder's spec
- This test is no longer passing:
```
1)
BigDecimal#remainder returns NaN if Infinity is involved FAILED
Expected Infinity.nan?
to be truthy but was false
/home/runner/work/ruby/ruby/src/spec/ruby/library/bigdecimal/remainder_spe... -
06:38 PM Feature #18597: Strings need a named method like `dup` that doesn't duplicate if receiver is mutable
- rubyFeedback (robert heiler) wrote in #note-18:
> > And it feels like I cannot convince anyone here with any amount of rationale
> ...
This is a great response, cheers and thanks for your time. Honestly I never thought this was a huge ... -
08:48 AM Feature #18597: Strings need a named method like `dup` that doesn't duplicate if receiver is mutable
- > And it feels like I cannot convince anyone here with any amount of rationale
Ultimately you only have to convince matz, so you could ignore what others write.
But one reason why there was a reference to real-needs above is that the r... -
06:10 PM Revision c3bae033 (git): Add asm comment to YJIT's rb_str_empty_p
-
06:07 PM Misc #19431: DevMeeting at RubyKaigi 2023
- I'll attend.
-
11:46 AM Misc #19431: DevMeeting at RubyKaigi 2023
- I'll attend.
-
05:33 AM Misc #19431: DevMeeting at RubyKaigi 2023
- +1
-
05:52 PM Revision becec000 (git): [ruby/bigdecimal] Stub out extension build on JRuby
- JRuby currently ships its own internal bigdecimal extension as
part of the core libraries. In order for users to be able to add
bigdecimal to their Gemfile or gem dependencies, we need to stub
out the C extension and just load the extens... -
05:46 PM Revision 36e3d46d (git): [ruby/bigdecimal] Handle correctly #remainder with infinity. Fixes
- https://github.com/ruby/bigdecimal/pull/187
https://github.com/ruby/bigdecimal/commit/4b8572d452 -
03:49 PM Bug #19448: [Hash] Using Set as default value
- That's is known limitation when using Hash default value
Also your problem is that `<<` would alter the same object you put into as default object
meaning:
```ruby
h = Hash.new(Set.new)
h[:a] << 1
h[:b] << 2
p h[:c] #=> Set[1,... -
03:47 PM Bug #19448 (Rejected): [Hash] Using Set as default value
- This isn't a bug and is documented in `Hash.new` https://docs.ruby-lang.org/en/3.2/Hash.html#class-Hash-label-Default+Values
> Note that the default value is used without being duplicated. It is not advised to set the default value to... -
03:41 PM Bug #19448 (Rejected): [Hash] Using Set as default value
- When using a hash and set is used as a default value, the keys method for the hash does not return expected values.
A workaround for this is provided in the attachment. -
02:49 PM Revision 81dc3a17 (git): Remove USE_RGENGC_LOGGING_WB_UNPROTECT
- This macro is broken when set to anything other than 0. And has had a
comment saying that it's broken for 3 years.
This commit deletes it and the associated logging code. It's clearly
not being used.
Co-Authored-By: Peter Zhu <peter@pe... -
02:42 PM Bug #19041: Weakref is still alive after major garbage collection
- Hi @tenderlovemaking! I'm having difficulty interpreting the results of the `ObjectSpace` dump and I'm hoping you can help.
I've adjusted the script to print out the address of the underlying object, and then (when the issue manifests... -
02:37 PM Bug #19447 (Closed): Merge `internal/rgengc.h` into public `internal/gc.h` header
- [[Github PR #7310](https://github.com/ruby/ruby/pull/7310)]
This PR merges the `rgengc.h` internal header into the public internal `gc.h` header.
`rgengc.h` was introduced as part of this commit `9e6e39c3512f7a962c44dc3729c98a0f8be... -
02:32 PM Bug #19446 (Closed): Remove `compiler_wd` related warnings in `tool/update-deps`
- [Github PR #7331](https://github.com/ruby/ruby/pull/7331)
The update deps tool uses intermediary build files to verify dependencies. When these `*.i` files are generated by `gcc` the second line is always of the form
```
# 1 "/hom... -
01:04 PM Feature #19443: Cache `Process.pid`
- > PID can conflict because PID is recycled.
I don't think it's a big concern for this use case, even with PID recycling, the PID of the child can't possibly be the same than the parent.
So unless you fork several time without ever tr... -
11:10 AM Feature #19443: Cache `Process.pid`
- I think detecting fork using PID is not a good idea.
PID can conflict because PID is recycled.
We can define Process.fork_level as follows.
```
% ruby -e '
class << Process
attr_accessor :fork_level
end
Process.fork_level =... -
07:46 AM Feature #19443: Cache `Process.pid`
- Here, from my branch built in a Ubuntu jammy (22.04) based image:
```
ruby 3.3.0dev (2023-02-16T18:42:31Z cache-process-pid 0cd4797132) [aarch64-linux]
Warming up --------------------------------------
Process.pid 1.84... -
07:29 AM Feature #19443: Cache `Process.pid`
- ```ruby
require 'benchmark/ips'
Benchmark.ips do |x|
x.report("Process.pid") { Process.pid }
end
```
On macOS where `getpid()` is still cached:
```
ruby 3.2.0 (2022-12-25 revision a528908271) [arm64-darwin22]
Warming up ... -
02:19 AM Feature #19443: Cache `Process.pid`
- > However as of glibc version 2.25 the PID cache is removed and calls to getpid() always invoke the actual system call which significantly degrades the performance of existing applications.
Could you show some benchmark results with/wit... -
10:03 AM Misc #19429: DevMeeting-2023-03-09
- * [Feature #19406] Allow declarative reference definition for rb_typed_data_struct (eightbitraptor)
* This is essentially a simpler interface for handling marking/compaction for `rb_typed_data_struct` that hold references to other Ruby... -
08:15 AM Misc #19429: DevMeeting-2023-03-09
- - [Bug #19436] Call Cache for singleton methods can lead to "memory leaks" (byroot)
- When caching a singleton method call, the receiver becomes immortal until that call cache is updated.
- On large apps with some infrequently call... -
08:42 AM Feature #18690: Allow `Kernel#then` to take arguments
- I do not have any strong opinions either way, but Benoit wrote:
> The last example is just:
p.call(honyarara, fugafugafuga, hogehogehoge)
> ...
Versus:
honyarara.then(fugafugafuga, hogehogehoge, &p)
And I am not su... -
08:39 AM Feature #18841: Proposal: autoload_relative
- I am not sure we should add more methods from within that
family (autoload-family). Personally I would even remove
require_relative, but I guess too much code depends on it
nowadays. -
08:35 AM Feature #19024: Proposal: Import Modules
- Personally I think it may be better to leave require(),
load() and require_relative() unchanged as-is, and instead
add a new, more sophisticated way for ruby to handle loading
of stuff in general. That one should then ideally be as fl... -
05:29 AM Bug #19441: Closing an Tempfile#dup behaviour
- A `Tempfile` uses a finalizer to clean up the target file.
That is the file will be removed when a dup of `Tempfile` is discarded (and also will be tried to remove again).
I don't think it is a good idea to use `Tempfile#dup`.
What do... - 03:34 AM Revision a7beb4cf (git): Bump lewagon/wait-on-check-action from 1.2.0 to 1.3.1
- Bumps [lewagon/wait-on-check-action](https://github.com/lewagon/wait-on-check-action) from 1.2.0 to 1.3.1.
- [Release notes](https://github.com/lewagon/wait-on-check-action/releases)
- [Commits](https://github.com/lewagon/wait-on-check-a... -
03:01 AM Bug #19445 (Closed): Segmentation fault with Numeric#step
-
01:57 AM Revision dd28c55a (git): [Bug#19445] Fix keyword splat in enumerator
- Extracted arguments do not have keyword hash to splat.
02/16/2023
-
11:50 PM Bug #19444 (Closed): YJIT String#+@ miscompilations
- Applied in changeset commit:git|c178926fbe879045fa711444a1fd9e906af23e3b.
----------
YJIT: jit_prepare_routine_call() for String#+@ missing
We saw SEGVs due to this when running with StackProf, which needs a
correct PC for RUBY_INTERNA... -
10:53 PM Bug #19444 (Closed): YJIT String#+@ miscompilations
- We noticed two issues with YJIT's `String#+@` (String unary plus) implementation.
1. It has issues with GC allocation tracing. We saw it SEGV with the `Stackprof` gem
2. It has a type confusion issue from assuming that the method alw... -
11:50 PM Revision a4b7ec12 (git): YJIT: Fix false assumption that String#+@ => ::String
- Could return a subclass.
[Bug #19444] -
11:50 PM Revision c178926f (git): YJIT: jit_prepare_routine_call() for String#+@ missing
- We saw SEGVs due to this when running with StackProf, which needs a
correct PC for RUBY_INTERNAL_EVENT_NEWOBJ, the same event used for
ObjectSpace allocation tracing.
[Bug #19444] -
11:39 PM Bug #19445 (Closed): Segmentation fault with Numeric#step
- The following commands will cause a segmentation fault.
```
curl -s 'https://cache.ruby-lang.org/pub/misc/ci_versions/all.json' -o ruby_versions.json
ruby -rjson -e "min = JSON.parse(File.read('ruby_versions.json')).sort.first; p 2.... -
09:52 PM Revision a49bc73e (git): [ruby/net-http] [DOC] Enhanced RDoc for Net::HTTP
- (https://github.com/ruby/net-http/pull/122)
https://github.com/ruby/net-http/commit/06f79cda87 -
07:32 PM Revision 21f9c92c (git): YJIT: Show Context stats on exit (#7327)
-
06:42 PM Feature #19443 (Closed): Cache `Process.pid`
- It's not uncommon for database client and similar network libraries to protect themselves from Process.fork by regularly checking Process.pid
Until recently most libc would cache `getpid()` so this was a cheap check to make.
Howeve... -
04:29 PM Revision 8f22dc39 (git): YJIT: Refactor getlocal and setlocal insns (#7320)
- 04:25 PM Revision b4c38f3c (git): YJIT: Initial support for rest args (#7311)
- * YJIT: Initial support for rest args
* Update yjit/src/codegen.rs
---------
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com> -
02:50 PM Bug #19442: Remove USE_RINCGC flag
- @nobu I see you've just fixed it in [this commit](https://github.com/ruby/ruby/commit/21543ac86ce0b730c1381588d7dc9eb0e32277c7) 😅
Thanks!
I'd still like to see it removed, but I'll update the ticked description to be more reflecti... -
02:45 PM Bug #19442: Remove USE_RINCGC flag
- nobu (Nobuyoshi Nakada) wrote in #note-1:
> I don't think option 1 and 2 are exclusive.
I'm not sure what you mean by this. Do you mean it could be both fixed _and_ removed? -
02:41 PM Bug #19442: Remove USE_RINCGC flag
- I'm for removing many of the untested code paths in gc.c since they may be buggy and are probably not used (like this one, which doesn't even compile so clearly nobody is using it).
-
01:19 PM Bug #19442: Remove USE_RINCGC flag
- Of course I'm **not** against the removal.
I just say removing the flag and fixing the bug are different stories. -
01:13 PM Bug #19442: Remove USE_RINCGC flag
- I don't think option 1 and 2 are exclusive.
-
10:54 AM Bug #19442 (Closed): Remove USE_RINCGC flag
- [GitHub PR #7317](https://github.com/ruby/ruby/pull/7313)
~~Ruby doesn't compile when USE_RINCGC is disabled. It's also not being tested in CI. As @nobu has pointed out in comments on the PR, fixing it is simple.~~ This was fixed in [... -
02:45 PM Misc #19431: DevMeeting at RubyKaigi 2023
- I'll attend.
-
02:35 PM Bug #19441: Closing an Tempfile#dup behaviour
- Provided `#dup` generally returns an object of the same type, I would expect to have a `Tempfile` object.
The unexpected thing was that if I replay the same scenario with `File`, I have what I expect. I was just wondering whether the ... -
01:09 PM Bug #19441: Closing an Tempfile#dup behaviour
- What do you expect for the `dup`ped `Tempfile` object?
An `IO` to the same file?
Or another temporary file? -
10:40 AM Bug #19441 (Closed): Closing an Tempfile#dup behaviour
- Hello amazing ruby folks!
I classified that ticket as a "Bug" although it is perhaps something I did not understand.
Here is a ruby session:
``` ruby
irb(main):001:0> file = Tempfile.new
=> #<File:/var/folders/m2/bljzrgq160vbf... -
01:15 PM Revision 21543ac8 (git): Fix compilation error when USE_RINCGC=0
-
11:25 AM Bug #19439: Marshal.load doesn't load Regexp instance variables
- Ok, I have a patch for it, but it's ugly: https://github.com/ruby/ruby/pull/7323
-
11:02 AM Bug #19439: Marshal.load doesn't load Regexp instance variables
- Ah! the explanation is quite funny.
So the ivars are loaded fine, however, since the goal is to store the encoding, and that the encoding isn't on the regexp itself, but on the `regexp#source` which is a string, the ivars are assigned... -
10:37 AM Bug #19439: Marshal.load doesn't load Regexp instance variables
- After a quick check, it's because the IVAR on Regexps is used to store the encoding:
```c
case TYPE_REGEXP:
{
VALUE str = r_bytes(arg);
int options = r_byte(arg);
int has_encoding... -
08:30 AM Bug #19158: Ruby 3.1.3 installs wrong gemspec for debug gem
- This issue caused by https://git.ruby-lang.org/ruby.git/tree/tool/lib/bundled_gem.rb#n53.
```ruby
unless spec.extensions.empty?
spec.dependencies.clear
File.binwrite(File.join(dir, spec_dir, ".bundled.#{target}.gemspec")... -
07:02 AM Bug #19158: Ruby 3.1.3 installs wrong gemspec for debug gem
- I can reproduce this issue with current master branch.
-
07:14 AM Revision 1a4b4cd7 (git): Move `attached_object` into `rb_classext_struct`
- Given that signleton classes don't have an allocator,
we can re-use these bytes to store the attached object
in `rb_classext_struct` without making it larger. - 02:40 AM Revision 1df75d65 (git): Bump actions/cache from 3.2.4 to 3.2.5
- Bumps [actions/cache](https://github.com/actions/cache) from 3.2.4 to 3.2.5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.co... - 02:40 AM Revision 01166505 (git): Bump github/codeql-action from 2.2.1 to 2.2.4
- Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.2.1 to 2.2.4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
... - 02:39 AM Revision 9aa0f656 (git): Bump ruby/setup-ruby from 1.134.0 to 1.138.0
- Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.134.0 to 1.138.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](https://github.com/ruby/setup-ruby/compare/ee26e27437bde475b19a6bf8cb73c9fa65... -
02:00 AM Revision 7e5df495 (git): check-regexp only works with job name, not workflow name
-
01:16 AM Revision f736f50f (git): Auto-merge feature for dependabot PRs (#7300)
- * Automerge for dependabot update
* change update period with daily, we can merge it automatically when `make check` of Ubuntu was passed
* Use rebase instead of merge commit
* check all Ubuntu jobs - 12:58 AM Revision 25737306 (git): Update default gems list at 65b6411e9db31591ae2a4928acaa0b [ci skip]
-
12:57 AM Revision 65b6411e (git): [ruby/timeout] bump up 0.3.2
- https://github.com/ruby/timeout/commit/e1b2448101
02/15/2023
- 11:43 PM Revision b03b251a (git): Handle all non-object type objects
- 11:43 PM Revision 0b4b2cd1 (git): Fix removing ivars from clases and modules.
- Co-authored-by: Adam Hess <hparker@github.com>
-
07:55 PM Feature #13620: Simplifying MRI's build system: always make install
- FWIW, here is another terrible hack due to trying to run before files have a proper Ruby home structure:
https://github.com/ruby/ruby/commit/a2c66f52f402cb58372e271226f3341065561e53 and reported as #19158. -
07:48 PM Feature #19435: Expose counts for each GC reason in GC.stat
- byroot (Jean Boussier) wrote in #note-3:
> Our initial patch had those but I removed it to limit the number of extra keys, and because it's not a cause you should see in production, ever, aside from pre-fork memory optimization etc.
... -
07:43 PM Misc #19429: DevMeeting-2023-03-09
- * [Feature #19440] Deprecate ThreadGroup (eregon)
* Thoughts?
* If disagree, how do we put the Timeout thread in the default ThreadGroup? It seems impossible with current API. -
07:41 PM Feature #19440 (Open): Deprecate ThreadGroup
- I looked at the ThreadGroup methods, and none of them seem really useful.
`enclose` has super confusing semantics, in that it surprisingly allows creating new threads from a thread already in that group, but forbids `#add`.
So the ne... -
07:25 PM Revision 70d84a5f (git): [ruby/timeout] Simplify test
- https://github.com/ruby/timeout/commit/db017da726
- 07:25 PM Revision 610375ed (git): [ruby/timeout] Don't move the timer_thread when it's enclosed
- Don't move the timer_thread to ThreadGroup::Default, when it's
created in an enclosed ThreadGroup.
Prevents the exception: "add" can't move from the enclosed thread group"
https://github.com/ruby/timeout/commit/eb889d2c8b -
07:24 PM Bug #19158: Ruby 3.1.3 installs wrong gemspec for debug gem
- People are still hitting issues here due to an incorrect gemspec for the debug gem being shipped with Ruby 3.2.1 so I guess this is not yet fixed. See https://github.com/ruby/debug/issues/898 or https://github.com/ruby/debug/issues/852.
- 07:05 PM Revision 8943b0d4 (git): YJIT: `Kernel#{is_a?,instance_of?}` fast paths (GH-7297)
- Co-authored-by: Maxime Chevalier-Boisvert <maxime.chevalierboisvert@shopify.com>
Co-authored-by: Alan Wu <XrXr@users.noreply.github.com> -
06:22 PM Bug #19438: Ruby 2.7 -> 3.2 Performance Regression in so_k_nucleotide benchmark
- Oh, I'm sorry, I misread your benchmark and thought it was a CSV based benchmark, I now see it's radically different, please disregard my previous answer.
-
06:20 PM Bug #19438: Ruby 2.7 -> 3.2 Performance Regression in so_k_nucleotide benchmark
- CSV being a gem, it's very likely that the regression isn't in ruby itself, but in the successive versions of the csv gem being bundled with Ruby:
```
ruby 3.2 => csv 3.2.6
ruby 3.1 => csv 3.2.2
ruby 3.0 => csv 3.1.9
ruby 2.7 => c... -
01:30 PM Bug #19438 (Open): Ruby 2.7 -> 3.2 Performance Regression in so_k_nucleotide benchmark
- ## Introduction
Recently I had been going through some of the old benchmarks in the [Ruby Great Implementation Shootout](https://programmingzen.com/the-great-ruby-shootout-july-2010/) from around 2010.
As an experiment, one night ... -
05:04 PM Bug #19439: Marshal.load doesn't load Regexp instance variables
- As a note, if CRuby plans to make all Regexp immutable & no subclass instances (like TruffleRuby already does), then that's another way to fix this.
-
04:01 PM Bug #19439 (Closed): Marshal.load doesn't load Regexp instance variables
- Hello, I've noticed this strange behaviour:
```ruby
source_object = Regexp.new("a")
source_object.instance_variable_set(:@foo, :bar)
regexp = Marshal.load(Marshal.dump(source_object))
regexp.instance_variables # => []
```
I ... -
04:47 PM Revision ae2340c9 (git): Refactor / document instance variable debug counters
- This commit is refactoring and documenting the debug counters related to
instance variables. -
03:45 PM Feature #19437: Add marking and sweeping time to GC.stat
- Hey Robert, I appreciate your excitement, but could you please refrain from commenting unless it's meaningfully contributing to the discussion?
You can show your support for this issue by clicking "like" in the top right corner ⬈ -
02:56 AM Feature #19437: Add marking and sweeping time to GC.stat
- \o/
-
03:00 PM Revision 847a0df0 (git): [ruby/net-http] [DOC] Enhanced RDoc for Net::HTTP#get
- (https://github.com/ruby/net-http/pull/121)
https://github.com/ruby/net-http/commit/51b9af1eed -
02:53 PM Revision 3a9d5246 (git): [ruby/irb] Fix help-message (https://github.com/ruby/irb/pull/506)
- https://github.com/ruby/irb/commit/a55ace0791
-
02:24 PM Revision 7413079d (git): Encapsulate RCLASS_ATTACHED_OBJECT
- Right now the attached object is stored as an instance variable
and all the call sites that either get or set it have to know how it's
stored.
It's preferable to hide this implementation detail behind accessors
so that it is easier to c... -
11:30 AM Misc #19431: DevMeeting at RubyKaigi 2023
- I'll attend.
-
09:47 AM Revision bac4d2ee (git): Check !RCLASS_EXT_EMBEDDED instead of SIZE_POOL_COUNT == 1
- It's much more self documenting and consistent
-
07:38 AM Feature #19430: Contribution wanted: DNS lookup by c-ares library
- mame (Yusuke Endoh) wrote in #note-10:
> @akr, thank you for your comment. But sorry, I failed to get your point.
> ...
The benefit of resolv.rb is that it doesn't need new external library, as pointed by Eric Wong.
> I don't think ... -
06:42 AM Revision 1f936d65 (git): `ractor_queue_enq/deq` doesn't need `rq` param
- `rq` is always `r`'s queue.
-
04:45 AM Revision 413120e5 (git): Do not use `objcopy` on macOS
- On macOS, it is not used to localize symbols in dynamic libraries
(libruby.dylib and libyjit.o). Instead, using `objcopy` which does
not support recent mach-O causes linker errors as bellow.
```
linking shared-library libruby.3.3.dylib... -
03:46 AM Revision fba8f778 (git): [DOC] remove redundant paragraph at set.rb (#6472)
- remove redundant paragraph at set.rb
-
03:43 AM Revision 619af4fd (git): [DOC] Add an example of the splat operator with a non-array object (#7098)
- 03:41 AM Revision f03dd4ee (git): Refactor dir.rb sample (#6977) [ci skip]
- * Refactor dir.rb sample
The original (1998) sample with a for-loop and use of case/when isn't what we'd write nowadays
* [DOC] Update sample/dir.rb [ci skip]
Do not leave a `Dir` opened.
* [DOC] Update sample/dir.rb [ci skip]
Fix A... - 03:26 AM Revision 3376eca8 (git): file.c: rb_file_load_ok: GC+retry on EMFILE/ENFILE/ENOMEM
- `require' should make a best effort to avoid failure on
recoverable resource exhaustion errors.
02/14/2023
-
09:31 PM Revision 15ef2b2d (git): YJIT: Optimize != for Integers and Strings (#7301)
-
09:05 PM Feature #19437 (Closed): Add marking and sweeping time to GC.stat
- Pull Request: https://github.com/ruby/ruby/pull/7304
There is a `time` key in GC.stat that gives us the total time spent in GC. However, we don't know what proportion of the time is spent between marking and sweeping. This makes it di... -
08:54 PM Revision 6c558281 (git): YJIT: Check correct BOP on gen_fixnum_cmp (#7303)
-
08:33 PM Revision 3c7d5ccd (git): [ruby/net-http] [DOC] Enhanced RDoc for request headers
- (https://github.com/ruby/net-http/pull/120)
https://github.com/ruby/net-http/commit/b4eb8a7932 -
07:58 PM Revision f4b0e8dc (git): YJIT: Pad more spaces to accommodate delimiters (#7302)
-
07:32 PM Feature #18980: `it` as a default block parameter
- If I recall correctly I suggested @1 @2 and so forth.
At a later time _1 _2 and so forth was added, which is not entirely the same. I
then realised that the suggestion was actually much older than my suggestion,
and the ruby core team o... -
05:12 PM Revision 55af69b1 (git): YJIT: Don't side-exit on too-complex shapes (#7298)
-
04:09 PM Feature #19430: Contribution wanted: DNS lookup by c-ares library
- @akr, thank you for your comment. But sorry, I failed to get your point.
As you said, the current resolv.rb has the similar pros/cons as my proposal. (Pro: the name resolution will be interruptible. Con: no OS-specific resolution supp... -
08:22 AM Feature #19430: Contribution wanted: DNS lookup by c-ares library
- mame (Yusuke Endoh) wrote in #note-7:
> > What about resolv.rb?
> ...
I hadn't thought of resolv.rb at the meeting.
I guess that it is because I have less interest in resolv.rb now.
My motivation for resolv.rb is solving whole-proc... - 01:59 PM Revision e5e50609 (git): [rubygems/rubygems] Bump rb-sys
- Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.61 to 0.9.64.
- [Release notes](https://github.com/oxidize-rb/rb-sys/releases)
- [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.61...v0.9.64)
---
updated-depende... -
12:40 PM Feature #19422: Make `--enabled-shared` mandatory on macOS
- We discuss this feature in DevMeeting.
We will back to use `dynamic_lookup` and suppress warnings. But Apple may remove `dynamic_lookup` completely in the future. We need to look and test Xcode 15 in this summer.
After that, we wil... -
12:20 PM Feature #19197: Add Exception#root_cause
- I think more complex cases like `causes` should be done manually or with a helper method, like you showed or with some loop or something.
OTOH I think `root_cause` is convenient and useful for a variety of cases, so it makes more sense ... -
12:14 PM Feature #17853: Add Thread#thread_id
- FWIW, it seems the `Thread#inspect` change wasn't merged.
-
11:30 AM Bug #19427: Marshal.load(source, freeze: true) doesn't freeze in some cases
- Thank you!
-
10:26 AM Revision 538c3b9a (git): Suppress -Wunused-but-set-variable warning
-
09:47 AM Revision ef9efcf0 (git): Check if objcopy works to localize symbol
- LLVM objcopy does not support localizing symbols option, e.g,
`--localize-symbol` and `--keep-global-symbol`, for MachO. -
06:18 AM Revision 2490b2e1 (git): Add utility macros `DECIMAL_SIZE_OF` and `DECIMAL_SIZE_OF_BYTES`
-
04:39 AM Bug #19259 (Closed): `Data#with` doesn't call `initialize` nor `initialize_copy`
- Applied in changeset commit:git|45f0e3a673964069a4c9c57ce8665cbc21ac267f.
----------
[Bug #19259] `Data#with` should call `initialize` method -
04:39 AM Bug #19434 (Closed): Fix YJIT compilation for Alpine Linux 3.17.2
-
02:20 AM Bug #19434: Fix YJIT compilation for Alpine Linux 3.17.2
- Hey Maxime. So, after you mentioned the cross-compiling issue, I got worried and ended up rebuilding my *Docker Alpine Base* image and then rebuilding my *Docker Alpine Ruby* on top of that build. I'm not exactly sure what went wrong in ...
-
03:02 AM Revision 45f0e3a6 (git): [Bug #19259] `Data#with` should call `initialize` method
-
12:58 AM Revision dbe5b0dc (git): YJIT: Fix a typo in a counter name
- I added `invokeblock_iseq_arg0_args_splat` counter but it wasn't used
because of a typo.
Related to https://github.com/ruby/ruby/pull/7234
02/13/2023
-
10:09 PM Bug #19433: Segmentation fault in 3.2.0/3.2.1 on M1 Mac
- It also failes om Intel CPUS. I have a "3 GHz Dual-Core Intel Core i7" Mac and it fails for me too, 4 of 10 times i run brakeman redmine
-
09:54 PM Bug #19427 (Open): Marshal.load(source, freeze: true) doesn't freeze in some cases
- The issue closes automatically when a commit is merged with a reference to it. I can re-open, but I'm not super hopeful about fixing these other two cases.
As explained, I think the best we can do is shallow freeze. -
09:53 PM Bug #19427: Marshal.load(source, freeze: true) doesn't freeze in some cases
- The issue was closed. Does it mean that current behaviour of `TYPE_USERDEF` and `TYPE_USRMARSHAL` is expected?
Or should I create separate issues to track them independently? -
04:08 PM Bug #19427 (Closed): Marshal.load(source, freeze: true) doesn't freeze in some cases
- Applied in changeset commit:git|7ddcee5928d8a98337077d5a5ee61136ec84a993.
----------
Marshal.load: also freeze extended objects
[Bug #19427]
The `proc` wouldn't be called either, that fixes both. -
07:43 PM Bug #19434: Fix YJIT compilation for Alpine Linux 3.17.2
- Hello @bkuhlmann. Could you provide the full output of the `./configure` script? We do support Linux and macOS on arm64 (though only from Ruby 3.2 onwards). We think the issue may be that you are accidentally cross-compiling, or that the...
-
05:48 PM Misc #19353: Drop gcc <= 6 and clang <= 9
- jeremyevans0 (Jeremy Evans) wrote in #note-1:
> OpenBSD/sparc64 uses gcc 4.2.1 (last GPLv2 version) as the system compiler. The sparc64 backend for clang is not yet mature (last I checked), so this would make it so Ruby 3.3+ would be u... -
05:38 PM Misc #19429: DevMeeting-2023-03-09
- * [Feature #19197] Add `Exception#root_cause` (AMomchilov)
* It returns the last exception in linked-list of causality chain, that is, the original exception (whose own cause is `nil`).
-
12:37 PM Misc #19429: DevMeeting-2023-03-09
- - [Feature #19435] Expose counts for each GC reason in GC.stat
- Add 8 new keys in `GC.stat`.
- We used that patch in production to fix GC issues we had, we believe these counters to be high value.
- The only way to get this inf... -
04:43 PM Bug #19419 (Closed): [BUG] try to mark T_NONE object in `ibf_dump_mark`
- Applied in changeset commit:git|86de48e9f69b665ba9ffb5bdc5a181a3adb1a7b8.
----------
Remove ibf_dumper's WB_PROTECTED status
It doesn't have the right write barriers in place. For example, there is
rb_mark_set(dump->global_buffer.... -
03:09 PM Bug #19419: [BUG] try to mark T_NONE object in `ibf_dump_mark`
- It turned out to be a write barrier issue: https://github.com/ruby/ruby/pull/7296
The same problem issue exists on 3.1.x, so marking for backport. -
11:16 AM Bug #19419: [BUG] try to mark T_NONE object in `ibf_dump_mark`
- The original bug reporter provided a relatively simple reproduction repository: https://github.com/tisba/bootsnap-ruby-crash
Using it I was able to reproduce on 3.2.1 and latest master.
I also confirmed that it's a Write Barrier bu... -
04:42 PM Revision 86de48e9 (git): Remove ibf_dumper's WB_PROTECTED status
- It doesn't have the right write barriers in place. For example, there is
rb_mark_set(dump->global_buffer.obj_table);
in the mark function, but there is no corresponding write barrier when
adding to the table in the
`ibf_dump_object... -
04:08 PM Revision 7ddcee59 (git): Marshal.load: also freeze extended objects
- [Bug #19427]
The `proc` wouldn't be called either, that fixes both. -
03:56 PM Feature #19197: Add Exception#root_cause
- Eregon (Benoit Daloze) wrote in #note-3:
> I think this makes sense and it's pretty trivial.
> ...
Hey Benoit!
~~What's a "dev meeting ticket"?~~ [Done!](https://bugs.ruby-lang.org/issues/19429#note-5)
<hr>
Also, what do you think of ... -
03:49 PM Feature #19197: Add Exception#root_cause
- Hey Robert, thanks for taking the time to write.
rubyFeedback (robert heiler) wrote in #note-2:
> but on the issue of object.cause.cause.cause
> ...
Ah, I wasn't suggesting to use this style of code, it was just a very simple/concis... -
02:46 PM Bug #19436: Call Cache for singleton methods can lead to "memory leaks"
- > That means we still need to make Class#attached_object a weak reference.
I agree that conceptually, it's the simplest solution. That being said, in MRI weak references generally require a finalizer, which is annoying. But I'll see i... -
01:28 PM Bug #19436: Call Cache for singleton methods can lead to "memory leaks"
- byroot (Jean Boussier) wrote in #note-3:
> Does that mean TruffleRuby suffer from the same "leak"? I was actually planning to ask you how it does deal with this case for inspiration.
Yes, since TruffleRuby caches the the Class object... -
01:26 PM Bug #19436: Call Cache for singleton methods can lead to "memory leaks"
- byroot (Jean Boussier) wrote in #note-2:
> I specifically tried to say that the heuristic would be to not cache calls on singleton methods unless it's the singleton_class of a `Module` or `Class`.
I missed that sorry.
I think there are ... -
01:18 PM Bug #19436: Call Cache for singleton methods can lead to "memory leaks"
- > Keeping a weak reference to the CME would actually be an unacceptable memory overhead on JVM
Does that mean TruffleRuby suffer from the same "leak"? I was actually planning to ask you how it does deal with this case for inspiration. -
12:55 PM Bug #19436: Call Cache for singleton methods can lead to "memory leaks"
- > FWIW not caching in calls to objects with a singleton class is not an option, it's important to cache for e.g. calling method on classes.
I specifically tried to say that the heuristic would be to not cache calls on singleton method... -
12:52 PM Bug #19436: Call Cache for singleton methods can lead to "memory leaks"
- I think making `Class#attached_object` a weak reference is a better and easier solution.
Keeping a weak reference to the CME would actually be an unacceptable memory overhead on JVM, as it would mean one extra WeakReference object for... -
12:19 PM Bug #19436 (Closed): Call Cache for singleton methods can lead to "memory leaks"
- Using "memory leaks" with quotes, because strictly speaking the memory isn't leaked, but it can nonetheless lead to large memory overheads.
### Minimal Reproduction
```ruby
module Foo
def bar
end
end
def call_bar(obj)
... -
01:46 PM Feature #19435: Expose counts for each GC reason in GC.stat
- > Do we need the minor/major prefix?
I believe we do. Generally speaking what you really want to reduce is major GC. There are case where minor GC might trigger too much leading in performance issues (in part because it end up promoti... -
01:19 PM Feature #19435: Expose counts for each GC reason in GC.stat
- Do we need the minor/major prefix? Or would it be good enough without?
Also these names are fairly cryptic, what do they mean? Probably there should be some docs for that.
I think counting calls to `GC.start` would be useful (any h... -
12:31 PM Feature #19435: Expose counts for each GC reason in GC.stat
- I love introspection ever since I used the language Io many years ago; at a
later time ruby also got better introspection (no idea if related to Io or
not), so more information about e. g. GC is great so +1. \o/
The GC is a mystery... -
11:57 AM Feature #19435 (Open): Expose counts for each GC reason in GC.stat
- ### Context
We recently tuned the GC settings on our monolith application because we were seeing some very long GC pauses (multiple seconds) during some requests.
Very early we realized that we could know how often the GC was trigg... -
01:04 PM Revision bc6e587e (git): [ruby/net-http] Enhanced RDoc for Compression
- https://github.com/ruby/net-http/commit/cff88acd70
-
10:55 AM Bug #19417: Regexp \p{Word} and [[:word:]] do not match Unicode Other_Number character
- regarding the documentation, `letter` in the upstream doc is also incorrect, so the downstream doc actually has two errors.
as implemented [here](https://github.com/ruby/ruby/blob/9821f6d0e5957a680bb4ce39708ebc86e23d85d0/tool/enc-unic... -
08:17 AM Misc #19421: Distribution documentation
- while individual distributions' policy and guideline should be kept in their docs and wiki, I am positive to have general guide and recommendation in ruby/ruby to prevent confusion or disparity between distributors. If the central doc he...
-
06:43 AM Feature #19107: Allow trailing comma in method signature
- I second this proposal.
`def foo(bar:,)` doesn't seem like a real use-case, but when a method has so many arguments and I declare arguments in multiple lines, I would love to put a trailing comma to minimize future git diff and make rev... -
06:20 AM Feature #19107: Allow trailing comma in method signature
- To me the ',' there looks rather awkward. Then again the
first time I saw def(foo:) I was also confused. -
06:16 AM Feature #19366: Rename/alias Refinedment#refined_class => #refined_module
- This is in part a problem of having the "duality" of classes and
modules. matz explained that in the past, in part due to not
liking the complexity and potential confusion of C++
multi-inheritance, when explaining why modules were add... -
06:12 AM Revision 9821f6d0 (git): Override release date in Makefile if possible
-
06:12 AM Revision 849087cc (git): Apply zone offset to the last modified time
-
03:58 AM Feature #19432 (Feedback): Introduce a wrapping operator (&) to Proc
- Your first example seems unnecessary complicated.
```ruby
def text(s)
"<text>#{s}</text>"
end
def strong(s)
"<strong>#{s}</strong>"
end
def em(s)
"<em>#{s}</em>"
end
def markup(s, *marks)
result = -> { text s }
... -
01:01 AM Feature #19322: Support spawning "private" child processes
- > Also this new API wouldn't be adopted before a very long time by the many usages of Kernel#spawn/etc (far more than usages of Process.waitall).
This seems like a fairly compelling argument actually. You're right, I want to write som... -
12:44 AM Feature #19179: Support parsing SCM_CRED(ENTIALS) messages from ancillary messages
- It's true, the API currently exposed in that PR is a bit rough and un-ruby-like. Here's my idea for how the API should actually look:
* Expose a new struct `Socket::Credentials`.
* It has the following fields: `pid`, `uid`, `gid`, ... -
12:19 AM Feature #19306: Expand zlib interface
- I investigated the zlib C interface, and there is no way to extract those fields which is unfortunate, so we'd have to cache them. The type of compression fundamentally is changed based on the value of those fields, so if it's not much o...
-
12:08 AM Feature #19306: Expand zlib interface
- Just trying to add some detail to the proposal - perhaps it helps push for change.
The methods to be added should be:
.window_size
.level
And:
.inspect # should yield more output? Or what type of enhancement shou... -
12:05 AM Bug #19168: "such file" is bad grammar
- Hmm. This reminds me a bit of File.exists? versus File.exist?.
Not that it is the same, mind you, but which variant is
"correct" depends on the point of view. For literal english
it would be "if file exists, do that". But from an obj...
02/12/2023
-
11:59 PM Feature #19430: Contribution wanted: DNS lookup by c-ares library
- > I think the problem of not being able to interrupt is only a problem in a production environment
I think this could simplify things around Fibers as well. Naively, if a fiber makes a call to `getaddrinfo(3)`, it would block the whol... -
06:29 AM Feature #19430: Contribution wanted: DNS lookup by c-ares library
- Eric, thank you for your comment.
> > ### Alternative approaches
> ...
I agree with you. I don't want to implement it in terms of maintenance either.
> What about resolv.rb?
Before making this proposal, I talked about c-ares wi... -
06:09 AM Feature #19430: Contribution wanted: DNS lookup by c-ares library
- I copy and paste the email sent by Erig Wong.
---
"mame (Yusuke Endoh) via ruby-core" <ruby-core@ml.ruby-lang.org> wrote:
> Feature #19430: Contribution wanted: DNS lookup by c-ares library
> ...
I prefer to avoid overhead from u... -
06:08 AM Feature #19430: Contribution wanted: DNS lookup by c-ares library
- kjtsanaktsidis (KJ Tsanaktsidis) wrote in #note-4:
> Actually it seems whether or not curl uses c-ares depends on how it's configured. If it's configured with `--enable-ares --disable-threaded-resolver`, c-ares is used, and I can't make... -
12:57 AM Feature #19430: Contribution wanted: DNS lookup by c-ares library
- > Thanks for your comments. As far as a little research, it looks like c-ares supports /etc/resolver setting. The library uses libresolv to identify the nameserver on macOS and iOS. (Sorry if I'm lying, I haven't tried it myself.)
Not... -
11:40 PM Misc #19421: Distribution documentation
- > I still don't understand why we need to maintain for distributors on our repository instead of their documents.
As I said earlier, nothing is necessary.
However, what I'm seeing, is that there are lots of people asking questions abou... -
09:31 PM Misc #19421: Distribution documentation
- Why don't you use https://wiki.archlinux.org/title/Ruby_package_guidelines for Arch Linux?
And distributors already used wiki for distributing ruby.
* https://fedoraproject.org/wiki/Packaging:Ruby
* https://wiki.debian.org/Teams/Ruby/P... -
10:50 AM Misc #19421: Distribution documentation
- I would think the wiki has a much higher chance of getting out of date (from experience that's been the case for how-to-build docs and how-to-contribute docs, the how-to-build in repo is better maintained).
Being in the repository shoul... -
09:27 AM Misc #19421: Distribution documentation
- If you really think they are destined for the same fate, the wiki is the way to go. Please do not put something in the repository that will not be maintained.
-
09:06 AM Misc #19421: Distribution documentation
- @mame my experience of the wiki is that it suffers the same fate. I prefer that people submit changes via PRs anyway.
-
08:27 PM Revision f3135145 (git): [ruby/irb] Fix colorize backtick symbol
- (https://github.com/ruby/irb/pull/508)
https://github.com/ruby/irb/commit/dd7f25cd45
Co-authored-by: Stan Lo <stan001212@gmail.com> -
10:04 AM Misc #16895: Request for cooperation: Try your applications/libraries with master branch and debug options
- As I got older (it has been almost 20 years now since I have
been using ruby, and I feel physically older too compared to
the more young-version of me back in the days), my focus has
shifted a bit. I was super-experimental when I was ... -
09:57 AM Misc #16507: =~ vs include? or match?
- I can't speak for the ruby core team, but here is my rule-of-thumb in my
own ruby code "bases" out there.
I usually try to stick with the simplest choice possible, which in many
ways is .include?() for me. Normally I do not use the () t... -
08:45 AM Feature #14982: Improve namespace system in ruby to avoiding top-level names chaos
- For those following this issue, it is now possible in Ruby 3.2 to write autoloaded code that does not touch the global namespace, with Im, a fork of Zeitwerk I have been working on over the past couple months:
https://github.com/shioyam... -
05:28 AM Bug #19297: Don't download content from internet to execute Ruby test suite
- I would like to add to Vit Ondruch's suggestion, from another point
of view, so +1 from me here.
I currently have some issues with openssl/gnutls, on my linux machine;
I am in the process of trying to resolve it, but it requires of me
t...