Activity
From 06/09/2023 to 06/15/2023
06/15/2023
-
08:24 PM Bug #19732: Possible missing header (stdint.h) in event.h
- While preparing that diff I realized what happened. I'm using `clang-format` which sorts includes and ordered https://github.com/banister/debug_inspector/blob/5424c4094df30adfecd961a4e77d95f1fea9bc48/ext/debug_inspector/debug_inspector.c...
-
06:37 AM Bug #19732 (Feedback): Possible missing header (stdint.h) in event.h
- Could you share the code to reproduce?
Is it https://github.com/banister/debug_inspector/tree/master/ext/debug_inspector/debug_inspector.c? - 05:38 PM Revision 598ad56a (git): * 2023-06-15 [ci skip]
-
05:38 PM Revision 78d118dc (git): Fix test-bundled-gems for Ruby 3.0 (#7936)
- * pry is not needed for test-bundled-gems
* Run test-unit test without rake task to avoid yard dependency
* Use power_assert-1.2.1 to avoid pry dependency - 05:36 PM Revision e031f2b4 (git): * 2023-06-15 [ci skip]
-
05:35 PM Revision f6491773 (git): Fix test-bundled-gems for Ruby 3.1 (#7935)
- * pry is not needed for test-bundled-gems
* Run test-unit test without rake task to avoid yard dependency
* Try to skip Prime_test.rb -
03:39 PM Revision 364a6d56 (git): [ruby/irb] Rewrite RubyLex to fix some bugs and make it possible to
- add new features easily
(https://github.com/ruby/irb/pull/500)
* Add nesting level parser for multiple use (indent, prompt, termination check)
* Rewrite RubyLex using NestingParser
* Add nesting parser tests, fix some existing tests
... -
01:12 PM Bug #19733: Kernel#Rational does not accept prefix 0
- @mame It seems that you were not aware of the fact that the documentation is wrong. And I hope you share with me the idea that we want the documentation to be correct. I think the reason why there was a mistake in the documentation, and ...
-
01:16 AM Bug #19733: Kernel#Rational does not accept prefix 0
- mame (Yusuke Endoh) wrote in #note-2:
> "Confusing" is not necessarily a bug. What Kernel#Rational accepts is clearly stated in the documentation in BNF style.
> ...
I had read that documentation, and thought that perhaps someone is goin... -
12:57 AM Bug #19733 (Feedback): Kernel#Rational does not accept prefix 0
- "Confusing" is not necessarily a bug. What Kernel#Rational accepts is clearly stated in the documentation in BNF style.
https://docs.ruby-lang.org/en/master/Kernel.html#method-i-Rational
There may be room for discussion to make `Kernel... -
12:44 AM Bug #19733 (Feedback): Kernel#Rational does not accept prefix 0
- `Integer` and `Rational` literals accept prefix `0`. There is no difference in this respect.
```ruby
0b10 # => 2
0b10r # => (2/1)
```
However, when it comes to `Kernel#Integer` and `Kernel#Rational`, the former accepts prefix `0... -
08:06 AM Feature #19315: Lazy substrings in CRuby
- Hanmac (Hans Mackowiak) wrote in #note-11:
> it confused me too, i thought Copy On Write was default for shared strings
> ...
Pat Shaughnessy in his blog describes exactly the same thing as Benoit Daloze above: Ruby shares string data ... -
07:38 AM Feature #19315: Lazy substrings in CRuby
- it confused me too, i thought Copy On Write was default for shared strings
https://patshaughnessy.net/2012/1/18/seeing-double-how-ruby-shares-string-values -
05:26 AM Revision c1c92621 (git): [Cirrus] Run only if nightly [ci skip]
- Recently Cirrus-CI does not start over 10 hours. Maybe we have too
many runs. -
05:24 AM Revision 1cdae888 (git): [Cirrus] Auto cancelation for non-yjit task [ci skip]
- 03:39 AM Revision 1e55ac49 (git): Bump ruby/setup-ruby from 1.151.0 to 1.152.0
- Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.151.0 to 1.152.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](https://github.com/ruby/setup-ruby/compare/bc1dd263b68cb5626dbb55d5c89777d793...
06/14/2023
-
11:47 PM Revision 0c55ef11 (git): [ruby/rdoc] Use flat_map for better performance
- https://github.com/ruby/rdoc/commit/76192a280d
-
10:02 PM Revision c2f4b414 (git): Merge rubygems/rubygems HEAD
- Pick from https://github.com/rubygems/rubygems/commit/7a7b234721c375874b7e22b1c5b14925b943f04e
-
10:01 PM Revision 827d6626 (git): [rubygems/rubygems] auto-correct Style/YodaCondition
- https://github.com/rubygems/rubygems/commit/6d9e8025dc
-
10:01 PM Revision 503b9bf1 (git): [rubygems/rubygems] Removed unnecessary disabling of Lint/DuplicateMethods
- https://github.com/rubygems/rubygems/commit/225fdf0b2e
-
10:01 PM Revision 2c219ab2 (git): [rubygems/rubygems] Rubocop 1.51.0 or later didn't support Ruby 2.6
- https://github.com/rubygems/rubygems/commit/522b5f1ecd
-
10:01 PM Revision 3e7f5b02 (git): [rubygems/rubygems] Improve error message in frozen mode edge case
- When a top level dependency is missing from the lockfile, and we're in
frozen mode, we should also print a "frozen error".
https://github.com/rubygems/rubygems/commit/3e82b835e3 -
10:01 PM Revision e86f4c58 (git): [rubygems/rubygems] Improve frozen mode error message
- This error message is also printed when using `bundler/setup` in frozen
model, so we're not necessarily installing any gems when it happens.
This new message play nicer with all situations.
https://github.com/rubygems/rubygems/commit/6... -
10:01 PM Revision 23ecaab8 (git): [rubygems/rubygems] Use "frozen" rather than "deployment" in error message
- I think it communicates better what's going on.
https://github.com/rubygems/rubygems/commit/07a25767a4 -
10:01 PM Revision 2ff9b7b9 (git): [rubygems/rubygems] Show missing spec in lockfile incomplete error message
- https://github.com/rubygems/rubygems/commit/b86caaa3d5
-
10:01 PM Revision 21238f38 (git): [rubygems/rubygems] Extract `Definition#no_resolved_needed?`
- https://github.com/rubygems/rubygems/commit/1ff8626571
-
10:01 PM Revision 4f1b1817 (git): [rubygems/rubygems] There should always be a reason
- https://github.com/rubygems/rubygems/commit/4180008c2d
-
10:01 PM Revision c1216818 (git): [rubygems/rubygems] Show relative path to Gemfile in error message
- For conciseness and consistency with printing the relative path to the
lockfile just before.
https://github.com/rubygems/rubygems/commit/74cf6aea7c -
10:01 PM Revision e7749c4d (git): [rubygems/rubygems] Remove weird line breaks in the middle of error message
- https://github.com/rubygems/rubygems/commit/22b8caf42f
-
10:01 PM Revision 90c60e81 (git): [rubygems/rubygems] Simplify checking Gemfile vs lockfile sources
- https://github.com/rubygems/rubygems/commit/251e80aec6
-
10:01 PM Revision 96e3f31c (git): [rubygems/rubygems] Make frozen mode spec also pass on Bundler 3
- https://github.com/rubygems/rubygems/commit/ad52f840f2
-
10:01 PM Revision e1038f94 (git): [rubygems/rubygems] This spec is independent from global sources
- https://github.com/rubygems/rubygems/commit/d91c245921
-
10:01 PM Revision 551b8a31 (git): Update directory layout of rubygems/rubygems
-
08:53 PM Feature #19714: Add Refinement#refined_module
- matz (Yukihiro Matsumoto) wrote in #note-2:
> I am not 100% satisfied. Probably (unlike `class_eval` and `module_eval` whose class/module distinction is for the receiver), the method returns a class or a module, unrelated to the name.
... -
08:24 AM Feature #19714: Add Refinement#refined_module
- I am not 100% satisfied. Probably (unlike `class_eval` and `module_eval` whose class/module distinction is for the receiver), the method returns a class or a module, unrelated to the name.
Is there any idea?
Matz.
-
05:11 PM Bug #19732 (Closed): Possible missing header (stdint.h) in event.h
- Ruby's event.h (https://github.com/ruby/ruby/blob/813a5f4fc46a24ca1695d23c159250b9e1080ac7/include/ruby/internal/event.h#L103) is using type aliases from stdint.h, however it's not directly included.
An example where this causes issue... -
04:29 PM Bug #19728: Automate (checking of) Regexp character property documentation
- I found that `enc-unicode.rb` deals with some inconsistent unicode data (i.e. some data which uses short property names and some data which uses long names), so it doesn't provide much useful context. I've made a PR to create documentati...
-
02:42 PM Revision 813a5f4f (git): Directly allocate FrozenCore as an ICLASS
- It's a bad idea to overwrite the flags as the garbage collector may have
set other flags. -
08:52 AM Revision 37513490 (git): [Cirrus] Cache the bundled gems in advance
-
08:12 AM Bug #15428: Refactor Proc#>> and #<<
- I don't feel this proposed extension readable (than explicit one). Is there any example of readable usage of this notation?
Matz.
-
07:44 AM Bug #19731: Can’t call an instance method inside an Endless method definition
- Currently it is an expected behavior because it is parsed as `(def show = puts 'ok') if params`. Related to #19392.
-
07:35 AM Bug #19731 (Closed): Can’t call an instance method inside an Endless method definition
- Can’t call an instance method inside an Endless method definition.
```
$ ruby -v
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [arm64-darwin22]
$ cat withend.rb
class A
def show
puts 'ok' if params
end
def params
... - 05:25 AM Revision 58b8e217 (git): Update bundled gems list at bd019ac87aa47c481348ec6b7e3773 [ci skip]
-
05:24 AM Revision bd019ac8 (git): Removed rake-compiler dependency for test-bundled-gems
- It's needless with racc-1.7.1
-
03:56 AM Revision 6e93320c (git): Update RDoc::RD parsers generated by racc-1.7.1
-
03:14 AM Revision f9deff32 (git): Show prerequisites for compile task
-
03:14 AM Revision c5c15a56 (git): Allow test-unit-ruby-core files to be loaded from bundled gems
- Separate the directly from the customized test-unit, since it may not
work with bundled gems. -
02:05 AM Feature #19315: Lazy substrings in CRuby
- Bumping this because it's kinda shocking to me that strings don't already work this way. My mental model of ruby strings has always been that
```
m = rx.match(very_large_string)
before, match, after = m.pre_match, m[0], m.post_match
... -
01:40 AM Revision 8722342c (git): Lrama v0.5.2
06/13/2023
-
10:06 PM Bug #19728: Automate (checking of) Regexp character property documentation
- How about doing it in [enc-unicode.rb](https://github.com/ruby/ruby/blob/master/tool/enc-unicode.rb)?
On the one hand, this script is a bit convoluted as it is, and does not need another responsibility.
On the other hand, it alread... -
07:39 AM Bug #19728 (Closed): Automate (checking of) Regexp character property documentation
- This came up in a discussion at https://github.com/ruby/ruby/pull/7923.
The documentation at doc/regexp.rdoc currently contains a list of character properties that can be used in regular expressions. But there is no guarantee that thi... -
08:23 PM Misc #19722: DevMeeting-2023-07-13
- - [Feature #19730] Remove transient heap (peterzhu2118)
- Variable Width Allocation supports all types that used transient heap (arrays, objects, hashes, structs).
- Transient heap is no longer used for hashes.
- Transient heap ... -
08:21 PM Feature #19730 (Closed): Remove transient heap
- GitHub PR: https://github.com/ruby/ruby/pull/7942
I'm proposing to remove the transient heap because Variable Width Allocation now supports all the types that were on the transient heap.
Arrays, objects, hashes, and structs were on... - 02:55 PM Revision 5a69e8bc (git): Add tests to `String#byteslice` memory allocation behaviour. (#1909)
-
01:48 PM Feature #19729 (Closed): Store object age in a bitmap
- ## Github PR
[Store object age in a bitmap #7938](https://github.com/ruby/ruby/pull/7938)
## Abstract
Ruby currently uses 2 bits of the flags in every object to track how many GC
events the object has survived. Objects are crea... -
01:20 PM Bug #19715: Coverage oneshot_lines mode is not working after result clear
- mame (Yusuke Endoh) wrote in #note-1:
> `oneshot_lines` is a mode that reports execution at most once for each line. The record is not reset even by `clear: true`. Currently, we do not provide a way to reset the record.
> ...
Ah yes, w... -
12:08 PM Feature #18996: Proposal: Introduce new APIs to reline for changing dialog UI colours
- I opened a PR to restart this discussion:
https://github.com/ruby/reline/pull/552 -
11:02 AM Revision 91b106fe (git): [ruby/irb] Stanardise test class names with `Test` postfix instead
- of prefix
(https://github.com/ruby/irb/pull/603)
https://github.com/ruby/irb/commit/359cb28def -
10:49 AM Revision 27d581ea (git): rexml is also bundled gems
-
10:49 AM Revision e5cf6b6d (git): Don't install bundled gems for test-bundled-gems and test-syntax-suggest
-
10:46 AM Revision 5d91be7c (git): [ruby/irb] Use symbol.inspect instead of ":"+symbol.id2name to avoid
- completion candidates including newline characters
(https://github.com/ruby/irb/pull/539)
https://github.com/ruby/irb/commit/aaf0c46645 - 09:32 AM Revision 27b07776 (git): [rubygems/rubygems] Autoload shellwords when it's needed.
- https://github.com/rubygems/rubygems/commit/e916ccb2d9
- 06:59 AM Revision c74f42a4 (git): Update bundled gems list at 2023-06-13
-
05:57 AM Revision 6d734a89 (git): [ruby/uri] Fix RFC3986 regexps
- https://github.com/ruby/uri/commit/8e38592241
-
05:19 AM Bug #19707: Backport openssl fix to ruby_3_2 branch
- Fixed at https://github.com/ruby/ruby/pull/7934
-
05:01 AM Revision f89101fa (git): [ruby/openssl] Relax error message check for OpenSSL 3.1
- A tentative measures fo https://github.com/ruby/openssl/issues/606.
With OpenSSL 3.1.0, the error message at connection using "self-signed
certificate" seems to return `SSL_R_TLSV1_ALERT_UNKNOWN_CA` instead of
`SSL_R_CERTIFICATE_VERIFY_... -
05:01 AM Revision 34da58bd (git): Try to skip Prime_test.rb
-
05:01 AM Revision 1b2ad95c (git): Run test-unit test without rake task to avoid yard dependency
-
05:01 AM Revision 60ea850b (git): pry is not needed for test-bundled-gems
-
05:00 AM Bug #19727 (Closed): Backport CI fixes for test-bundled-gems
- After https://bugs.ruby-lang.org/issues/19702, CI of Ruby 3.0-3.2 is broken.
I fixed them with:
* [for Ruby 3.2](https://github.com/ruby/ruby/pull/7934)
* [for Ruby 3.1](https://github.com/ruby/ruby/pull/7935)
* [for Ruby 3.0](ht... -
03:28 AM Revision 3924dba5 (git): Update the current URI maintainer
-
03:25 AM Revision 57c5b0a9 (git): [ruby/uri] Refactor RFC3986 regexps to make more readable
- https://github.com/ruby/uri/commit/3dfa19e920
06/12/2023
-
07:33 PM Bug #19724 (Closed): Dir.home returns incorrect home directory
-
07:29 PM Bug #19724: Dir.home returns incorrect home directory
- Ok, my apologies. This was caused by one part of a rather big ruby system passing `:unsetenv_others` into the options for `Process.spawn` with value `true` and one of the processes spawned that way was itself a ruby process. It was that ...
-
05:34 AM Bug #19724: Dir.home returns incorrect home directory
- Looking at the implementation of `rb_default_home_dir`, `$HOME` is always checked, and `getlogin`/`getpwnam` is only used when `$HOME` is not set. If `$HOME` is not set, then Ruby does use `getlogin`, but that appears to be intentional,...
-
03:06 AM Bug #19724 (Closed): Dir.home returns incorrect home directory
- This is probably related to 16787.
From the patch on that issue I conclude that ruby uses getlogin and co to obtain the name of the logged-in user, but that is not valid. Ruby must use the uid of the running process since the user tha... -
06:38 PM Revision 3168f618 (git): hash.c no longer needs the transient heap
-
06:30 PM Revision 78ca0857 (git): Revert "YJIT: Break register cycles for C arguments (#7918)"
- This reverts commit 888ba29e462075472776098f4f95eb6d3df8e730.
It caused a CI failure
http://ci.rvm.jp/results/trunk-yjit@ruby-sp2-docker/4598881
and I'm investigating it. -
04:54 PM Revision 888ba29e (git): YJIT: Break register cycles for C arguments (#7918)
-
04:15 PM Feature #19719: Universal Parser
- IMO it's quite strange and not respectful of the Ruby development workflow to:
* create an issue about a big feature but discuss literally none of the details. Notably the background, design and release management sections are all compl... -
10:10 AM Feature #19719 (Closed): Universal Parser
- Applied in changeset commit:git|b481b673d753339204290d7582dbb91a6e14447a.
----------
[Feature #19719] Universal Parser
Introduce Universal Parser mode for the parser.
This commit includes these changes:
* Introduce `UNIVERSAL_PARSER` ... -
04:59 AM Feature #19719: Universal Parser
- I agree API-wise, YARP is better, and already used from various tools, including TruffleRuby. On the other hand, Lrama is 100% compatible to the current parser (by definition).
As long as kaneko-san (@yui-knk) is willing to try, I'd lik... -
02:42 AM Feature #19719: Universal Parser
- >Release it as gem (ruby/universal_parser)
I'll support it. Please ping me when you need to create new repository under the ruby organization. -
02:20 PM Revision 6fe46ff9 (git): When alloc size is too large, only allocate struct
-
12:31 PM Revision 31e24a42 (git): [ruby/psych] Comment out the code used to expand the file list [ci skip]
- https://github.com/ruby/psych/commit/715f3bfad0
-
11:22 AM Revision 81836c6c (git): Fix duplicate symbol errors when statically linking ripper
-
10:26 AM Bug #19726 (Rejected): Script loaded twice when requiring self
- The executed program is not added to `$LOADED_FEATURES` unexpectedly resulting in the program possibly being loaded twice:
a.rb:
```
#!/usr/bin/env ruby
require "./b"
C = 42
return unless __FILE__ == $0
puts C
```
b.... -
10:10 AM Revision 41035273 (git): [DOC] Should use `NULL` instead of zero
- Since no type information is available for variadic arguments, 0 is
passed as `int` without promoting to pointer. On platforms where
`sizeof(int) < sizeof(void*)`, the terminator argument may be read
together with an adjoining word, and... -
10:10 AM Revision 70483f6c (git): Add missing dependencies
- 09:24 AM Revision a4bb2d7d (git): * expand tabs. [ci skip]
- Please consider using misc/expand_tabs.rb as a pre-commit hook.
-
09:23 AM Revision b481b673 (git): [Feature #19719] Universal Parser
- Introduce Universal Parser mode for the parser.
This commit includes these changes:
* Introduce `UNIVERSAL_PARSER` macro. All of CRuby related functions
are passed via `struct rb_parser_config_struct` when this macro is enabled.
* Add... -
07:55 AM Feature #19717: `ConditionVariable#signal` is not fair when the wakeup is consistently spurious.
- > So, tl;dr, I don't think we should do this "handoff" approach.
After reading this I realised we don't actually have to hand off the GVL when the mutex is handed off. The thread that signalled the condition variable and unlocked the ... -
07:45 AM Feature #19717: `ConditionVariable#signal` is not fair when the wakeup is consistently spurious.
- > I think it's possible, with a bit of shuffling around in thread_sync.c, for the implementation to not actually remove the thread off the ConditionVariable's waitq until it's actually successfully acquired the resource; that way, if e.g...
-
07:42 AM Feature #19717: `ConditionVariable#signal` is not fair when the wakeup is consistently spurious.
- > I like the proposed implementation. Is there any chance it still has the similar problems? If we always reque at the front, could multiple waiters reque in front of each other? i.e. it still depends on the order.
I think it can't ha... -
02:18 AM Feature #19717: `ConditionVariable#signal` is not fair when the wakeup is consistently spurious.
- > the thread which was waiting the longest will actually be the one woken
To me, this is the correct behaviour and what I try to implement in Async. If there is a spurious wakeup, you don't loose your position in the queue.
I like the ... -
02:15 AM Feature #19717: `ConditionVariable#signal` is not fair when the wakeup is consistently spurious.
- Based on the thorough analysis by @kjtsanaktsidis, this doesn't appear to be a bug in Ruby, but rather common behavior of condition variable across implementations. The idea of `ConditionVariable#wait` taking a block to address the spur...
-
07:36 AM Feature #19630: [RFC] Deprecate `Kernel#open("|command-here")` due to frequent security issues
- > is there any objection
Not from me, we should add this ticket to the next dev meeting.
However I feel like other IO methods (`IO.binread`, etc) should do the same otherwise it's a bit inconsistent.
- 07:07 AM Revision b308f7cf (git): Bump actions/checkout from 3.5.2 to 3.5.3
- Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.2 to 3.5.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](http... -
07:02 AM Revision bcded49d (git): [ruby/psych] Update spec files
- https://github.com/ruby/psych/commit/ba6fc48591
-
06:22 AM Feature #19725: Improve the match cache optimization to support look-ahead and atomic groups
- Pull request: https://github.com/ruby/ruby/pull/7931
-
06:07 AM Feature #19725 (Closed): Improve the match cache optimization to support look-ahead and atomic groups
- Currently, the Regexp match cache optimization [Feature #19104] memoizes match cache points that once arrived; that is, it memoizes them **before backtracking**. This kind of implementation is simple and works fine in most cases. However...
-
04:18 AM Revision f6e6d52b (git): Try to skip Prime_test.rb
-
04:18 AM Revision 8be4659b (git): Run test-unit test without rake task to avoid yard dependency
-
04:18 AM Revision 2ec18199 (git): pry is not needed for test-bundled-gems
- 03:36 AM Revision c09b75ab (git): Bump github/codeql-action from 2.3.5 to 2.13.4
- Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.3.5 to 2.13.4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)... -
03:02 AM Revision 10e66264 (git): [ruby/psych] Prefer `assert_include` for simple strings
- https://github.com/ruby/psych/commit/33024ce2b0
-
02:16 AM Bug #19711 (Closed): NoMethodError "private method `new' called for class" since bebd05fb51ea65bc57344b67100748200f8311eb
-
02:06 AM Bug #19707 (Closed): Backport openssl fix to ruby_3_2 branch
-
02:01 AM Bug #19701: The rb_classext_t::classpath field is not marked for T_ICLASS
- There is a third option, set "FrozenCore" as an fstring that doesn't get garbage collected (via `rb_gc_register_address` or something). That reduces the cost to 1 object marking per major GC. That seems to be the best option to me if t...
06/11/2023
-
09:01 PM Feature #19723: [RFC] Deprecate/disallow passing `"|command..." values to open-uri's URI.open() method
- mdalessio (Mike Dalessio) wrote in #note-2:
> I think we should merge this discussion into #19630 since the behavior you wish to deprecate comes from `Kernel#open` (called by `URI.open` in the fall-through case).
> ...
This could be do... -
04:18 PM Feature #19723: [RFC] Deprecate/disallow passing `"|command..." values to open-uri's URI.open() method
- I think we should merge this discussion into #19630 since the behavior you wish to deprecate comes from `Kernel#open` (called by `URI.open` in the fall-through case).
If #19630 is accepted, the naive implementation proposed at https:/... -
04:35 PM Feature #19630: [RFC] Deprecate `Kernel#open("|command-here")` due to frequent security issues
- If we all agree that deprecating this behavior in `Kernel#open` is a good idea, is there any objection to something like https://github.com/ruby/ruby/pull/7915 ?
@byroot I agree with your concerns about people ignoring deprecation war... -
03:41 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- @matz the related spec proposed in https://github.com/ruby/spec/pull/1044 says in a commment
> You get one of the two, but you don't know which one.
It is written this way because that is all CRuby can say, since we have seen that the ... -
02:19 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- Yes, in the C spec terms, “undefined behavior” really is an “undefined behavior”, even a demon can be appeared. We can call it “implementation defined”.
Matz.
-
08:28 AM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- New spec and a couple others for the same price in https://github.com/ruby/spec/pull/1044 👍.
-
01:32 PM Feature #19717: `ConditionVariable#signal` is not fair when the wakeup is consistently spurious.
- > have ConditionVariable#wait take an optional kwarg that lets the caller report whether their last wakeup was spurious or no
A better API might be to have the `ConditionVariable#wait` accept a block, and have Ruby do the looping & ch... -
01:29 PM Feature #19717: `ConditionVariable#signal` is not fair when the wakeup is consistently spurious.
- This is mostly just semantics, but I read some sources tonight - glibc doesn't actually do anything to implement "fair" condition variables. But, in the Linux kernel, the set of waiters waiting on a particular futex address is stored in ...
-
12:33 PM Feature #19717: `ConditionVariable#signal` is not fair when the wakeup is consistently spurious.
- I spent a bit of time looking into this issue. I think I understand _why_ it's happening now, but I don't quite know what, if anything, we should do about it.
Firstly, I fixed up the reproduction issue in a couple of ways - after thes... -
08:31 AM Revision dcdc2cbd (git): `RString::len` was moved at 7577c101ed6452de3e72fadb43db595946acc701
- [ci skip]
- 07:01 AM Revision 52131d84 (git): Update bundled gems list at 2023-06-11
06/10/2023
-
09:20 PM Feature #15192: Introduce a new "shortcut assigning" syntax to convenient setup instance variables
- I really believe this would be seen a major improvement to Ruby.
Personally, I still feel
``` ruby
def initialize(@foo)
```
is the cleanest implementation (or something else the comes _before_ the arg name), but I would be happy ... -
03:01 PM Revision e1ccb283 (git): [ruby/irb] Use `Kernel.warn` to print command alias warning
- (https://github.com/ruby/irb/pull/601)
This aligns with other warnings in irb and properly channel the message
to stderr. - 02:13 PM Revision be86767e (git): Add VM_ASSERT on `fiber->blocking == 0`. (#7926)
- I have not seen any problems with this code, but this ensures the invariant.
-
12:51 PM Revision a41e0886 (git): [ruby/irb] Remove the unused fork command definition
- (https://github.com/ruby/irb/pull/600)
https://github.com/ruby/irb/commit/b039b89343 -
01:41 AM Feature #19723 (Closed): [RFC] Deprecate/disallow passing `"|command..." values to open-uri's URI.open() method
- Due to `Kernel.open()` supporting opening pipe-commands (ex: `"|command-here..."`) this has led to multiple [1] security [2] vulnerabilities [3], where malicious user-input eventually is passed to `Kernel.open()`. One of the code-paths t...
06/09/2023
-
05:45 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- Yes, absolutely, a spec example allowing both would be welcome in ruby/spec.
-
03:41 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- @Eregon right, I was thinking in terms of "it is M::C or M::D, but which one of the two is undefined".
I was wondering if it would make sense to add a spec that makes this decision explicit, and tests that `M::C.name` is one of the tw... -
02:49 PM Bug #19681: The final classpath of partially named modules is sometimes inconsistent once permanently named
- Just to clarify, this is not undefined behavior (which has very scary semantics in the C language), it is: either "M::D" or "M::C" is an acceptable outcome for the program in the description.
So it is defined but non-deterministic behav... -
02:53 PM Feature #19719: Universal Parser
- Eregon (Benoit Daloze) wrote in #note-2:
> First of all, I think @yui-knk should show the status of Universal Parser and how it improves over YARP, otherwise it seems to purposefully ignore a much more advanced and established project (... -
02:12 PM Feature #19719: Universal Parser
- As I discussed with @matz and @yui-knk at RubyKaigi, the API, serialization to convert efficiently from C to Java, and AST format (a much cleaner AST) needed for JRuby and TruffleRuby are the ones developed in YARP.
JRuby and TruffleRub... -
02:43 PM Misc #19722: DevMeeting-2023-07-13
- * [Feature #19720] Warning for non-linear Regexps (eregon)
* I think this is the best way to avoid ReDoS and ensure there are no too slow Regexps in a Ruby program/app.
* So let's add `Warning[:regexp] = true`?
* I will help to ... -
05:55 AM Misc #19722: DevMeeting-2023-07-13
- * [Bug #18572] Performance regression when invoking refined methods (shugo)
* Should we limit usage of using to fix the performance issue?
* https://bugs.ruby-lang.org/issues/18572?issue_count=121&issue_position=11&next_issue... -
02:04 AM Misc #19722 (Closed): DevMeeting-2023-07-13
- # The next dev meeting
**Date: 2023/07/13 13:00-17:00** (JST)
Log: https://github.com/ruby/dev-meeting-log/blob/master/2023/DevMeeting-2023-07-13.md
- Dev meeting *IS NOT* a decision-making place. All decisions should be done at t... -
01:20 PM Feature #19694: Add Regexp#timeout= setter
- > They are never changed once initialized until destruction, "Copy-on-Write" won't be a proper word.
Right, I just meant directly sharing that structure, or more accurately having some `T_STRUCT` simply keeping a reference to another ... -
01:17 PM Feature #19694: Add Regexp#timeout= setter
- byroot (Jean Boussier) wrote in #note-12:
> > I made a patch to improve Regexp.new(/RE/) (and Regexp#dup).
> ...
Do you mean compiled pattern and so on in `OnigRegexType`?
They are never changed once initialized until destruction, "Co... -
10:00 AM Feature #19694: Add Regexp#timeout= setter
- janosch-x (Janosch Müller) wrote in #note-9:
> A custom `timeout` only being available on `Regexp::new` might lead people to write less performant code.
I think it is very well known and easy to know though profiling that one should ... -
08:05 AM Feature #19694: Add Regexp#timeout= setter
- > I made a patch to improve Regexp.new(/RE/) (and Regexp#dup).
Interesting. Given that literal regexp are frozen, and even for unfrozen ones most of their state is immutable, have you considered using Copy on Write at the Ruby object ... -
05:35 AM Feature #19694: Add Regexp#timeout= setter
- janosch-x (Janosch Müller) wrote in #note-9:
> I guess the only noteworthy argument for a change goes like this:
> ...
I made a patch to improve `Regexp.new(/RE/)` (and `Regexp#dup`).
https://github.com/nobu/ruby/tree/re_copy
Comparison... - 12:45 PM Revision d7300038 (git): * expand tabs. [ci skip]
- Please consider using misc/expand_tabs.rb as a pre-commit hook.
-
11:58 AM Feature #19630: [RFC] Deprecate `Kernel#open("|command-here")` due to frequent security issues
- postmodern (Hal Brodigan) wrote in #note-8:
> I was unaware that these methods can accept `|command` style inputs. Based on the stdlib documentation, the first argument is called `name` and the examples show reading from `testfile`, whi... -
11:22 AM Revision ab6eb378 (git): Optimize `Regexp#dup` and `Regexp.new(/RE/)`
- When copying from another regexp, copy already built `regex_t` instead
of re-compiling its source. -
10:41 AM Feature #19521: Support for `Module#name=` and `Class#name=`.
- @timcraft thanks for your input. All those issues have already been discussed, and it won't work for nested classes or existing code that uses class names without a huge retrofit. I also don't like introducing `label` as a new concept si...
-
10:00 AM Feature #19521: Support for `Module#name=` and `Class#name=`.
- What about `Module#label=` and `Class#label=` etc?
* If the value e.g. `"fake name"` cannot be used to reference the class then is that really a name?
* The naming of the `#labeled_module` and `#labeled_class` methods posted in the d... -
02:29 AM Feature #19521: Support for `Module#name=` and `Class#name=`.
- @matz do you mind clarifying what kind of abuse you are concerned about and whether limitations on `Module#name=` as outlined above are sufficient to consider using `#name=`?
> What if name= was a no-op or raised an error if the class... -
10:40 AM Bug #18572: Performance regression when invoking refined methods
- shugo (Shugo Maeda) wrote in #note-10:
> It's simple to prohibit using calls in blocks, but it will break backward compatibility, e.g., using in module_eval.
It would still be possible to use `using` outside the `module_eval` (e.g. i... -
05:42 AM Bug #18572: Performance regression when invoking refined methods
- Eregon (Benoit Daloze) wrote in #note-9:
> From https://bugs.ruby-lang.org/issues/14083#note-3 it seems part of the problem at least is CRuby currently implements what I would call invalid usages of refinements (different set of activat... -
10:32 AM Feature #19720: Warning for non-linear Regexps
- nobu (Nobuyoshi Nakada) wrote in #note-4:
> Literals can be statically checkable.
> ...
Right, but the monkey-patch has the problem it does not check any dynamically-created regexp created before the monkey-patch was loaded.
So if e.... -
10:17 AM Feature #19720: Warning for non-linear Regexps
- duerst (Martin Dürst) wrote in #note-5:
> Introducing such a warning might be a good idea. But there are several issues:
Thanks for the feedback.
> ...
Yes, as I mentioned in the description, it would be opt-in.
> 2) To a very large e... -
06:32 AM Feature #19720: Warning for non-linear Regexps
- Introducing such a warning *might* be a good idea. But there are several issues:
1) The warning should only be used when asked for with an option (i.e. default off).
2) To a very large extent, whether a regular expression is linear o... -
02:55 AM Feature #19720: Warning for non-linear Regexps
- Eregon (Benoit Daloze) wrote in #note-3:
> nobu (Nobuyoshi Nakada) wrote in #note-2:
> ...
Literals can be statically checkable.
> And even if it did, how could the external utility ensure it is loaded early enough, e.g., before Rub... -
09:54 AM Revision d54f66d1 (git): Assign into optimal size pools using String#split("")
- When String#split is used with an empty string as the field seperator it
effectively splits the original string into chars, and there is a
pre-existing fast path for this using SPLIT_TYPE_CHARS.
However this path creates an empty array ... -
09:53 AM Bug #19715 (Rejected): Coverage oneshot_lines mode is not working after result clear
- Hi @ngan
The documentation may not be clear, but this is by design. (Document improvements are welcome!)
`oneshot_lines` is a mode that reports execution at most once for each line. The record is not reset even by `clear: true`. C... -
09:47 AM Feature #19712: IO#reopen removes singleton class
- I proposed adding a keyword argument as `io1.reopen(io2, retain_class:true)` at the meeting.
The keyword argument `retain_class:true` disables changing the class.
That means `io1.reopen(io2, retain_class:true)` just do `dup2(io2.fileno... -
09:45 AM Revision 72f07f0a (git): Reduce concurrency of Cirrus-CI [ci skip]
- clang-12 takes 2-3 times longer than gcc-11.
-
08:33 AM Feature #19057: Hide implementation of `rb_io_t`.
- Thanks for the report, fixed in https://github.com/ioquatix/raindrops/commit/94dbdd94977d895f98c084d0ca31c2b9cf0d25d3
-
08:14 AM Feature #19057: Hide implementation of `rb_io_t`.
- @ioquatix I'm not sure which change exactly is the cause, but it appears that the recent `rb_io_t` changes broke `raindrops`
```
current directory: /usr/local/lib/ruby/gems/3.3.0+0/gems/raindrops-0.20.1/ext/raindrops
make DESTDIR\= sit... -
07:48 AM Feature #18368: Range#step semantics for non-Numeric ranges
- The three clarifications described in #note-17 were discussed at the dev meeting.
@matz said he wanted to make sure if the following pseudo code meets @zverok's expectation.
```ruby
class Range
def step(n)
# TODO: we need ... -
07:30 AM Revision 11cc1827 (git): Added entry for racc changes to NEWS.md
- 06:47 AM Revision 56d74e4c (git): Update bundled gems list at fcbc721ae92fd66a01cdf42ba24e6e [ci skip]
- 03:38 AM Revision fcbc721a (git): Bump ruby/setup-ruby from 1.150.0 to 1.151.0
- Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.150.0 to 1.151.0.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](https://github.com/ruby/setup-ruby/compare/8a45918450651f5e4784b6031db26f4b9f... -
02:04 AM Misc #19684 (Closed): DevMeeting-2023-06-08