Activity
From 11/13/2020 to 11/19/2020
11/19/2020
-
11:59 PM Bug #17334 (Rejected): Marshal cannot dump instance of Monitor
- This is expected and not a bug, as you can't dump the state of the Monitor. Instances of many core classes, such as Proc, Mutex, Thread, and Queue are likewise not dumpable.
-
11:54 PM Bug #17334 (Rejected): Marshal cannot dump instance of Monitor
- I'm not really sure why, but I hope someone else know whats going on.
I was digging into an error I had with Rails caching. Long story short, I was caching a HTTP::CookieJar object which has an instance variable of type Monitor.
Th... -
08:59 PM Feature #17312: New methods in Enumerable and Enumerator::Lazy: flatten, product, compact
- @zverok Thanks for the explanation. That makes a lot of sense!
-
07:18 PM Feature #17296: Feature: Pathname#chmod use FileUtils.chmod instead of File
- Sounds good to me.
@akr Could you approve? -
06:51 PM Bug #17021: "arm64" and "arm" are mixed in RbConfig on Apple silicon
- nobu (Nobuyoshi Nakada) wrote in #note-5:
> First of all, `$host_cpu` and others are used only for cross-compilers and nonsense in the other cases.
> ...
I think RbConfig `host_*` values should be correct no matter whether cross-compil... -
02:33 PM Feature #17276: Ripper stops tokenizing after keyword as a method parameter
- > I would prefer `Ripper.{lex,tokenize}` returning fully parsed tokens.
pull request: https://github.com/ruby/ruby/pull/3791
-
10:55 AM Feature #17276: Ripper stops tokenizing after keyword as a method parameter
- > Support raise_errors keyword for Ripper.{lex,tokenize,sexp,sexp_raw}
> ...
Thanks for your clarification and implementation.
(it seems that those two lines are same :)
https://github.com/ruby/ruby/blob/cd0877a93e91fecb3066984b3fa2a7... -
12:58 PM Bug #17280: Dir.glob with FNM_DOTMATCH matches ".." and "." and results in duplicated entries
- I wonder if we could simplify the logic to never include `..` for `Dir.glob`, and only include `.` for the initial directory and nowhere else.
Are there cases where `..` and `.` would ever be wanted, besides `Dir.glob(".") => ["."]`?
... -
12:53 PM Bug #17280: Dir.glob with FNM_DOTMATCH matches ".." and "." and results in duplicated entries
- Thanks, that looks good to me.
I think everyone expects FNM_DOTMATCH to match dotfiles, and `.` and `..` are not dotfiles.
Or is there is some other purpose for FNM_DOTMATCH? -
12:26 AM Bug #17280: Dir.glob with FNM_DOTMATCH matches ".." and "." and results in duplicated entries
- So there is two separate issues you are discussing. One issue is when the recursive glob is used (`"**/*"`) where the same folder shows up under two paths, once in the parent directory and once in its own directory. The second issue is...
-
08:15 AM Feature #17333: Enumerable#many?
- > Now, many? has at most as less motivation as one? has. It must be backed up by use cases. What are its use cases?
I agree. So here are some insights.
https://grep.app/search?q=%5C.many%5C%3F®exp=true&filter[lang][0]=Ruby&filte... -
06:41 AM Revision 44ad72fa (git): Added assertions
-
06:36 AM Revision 9c1e2a99 (git): Update the default gems section in NEWS.md
-
12:34 AM Feature #17325: Adds Fiber#cancel, which forces a Fiber to break/return
- Could you give an example code where Fiber#raise wouldn't work?
Is it just about #17331 or there are more issues with Fiber#raise?
I don't quite understand why you need to cancel other Fibers, they are not executing anyway.
Is it to...
11/18/2020
-
10:13 PM Bug #17308 (Closed): RubyVM::InstructionSequence.compile_file doesn't use the same default encoding than Kernel.load
- Applied in changeset commit:git|4a5c42db88d30532bd4fbcdff89615ebf961d2a2.
----------
Make RubyVM::InstructionSequence.compile_file use same encoding as load
This switches the internal function from rb_parser_compile_file_path
to rb_par... -
08:45 PM Bug #17308: RubyVM::InstructionSequence.compile_file doesn't use the same default encoding than Kernel.load
- I submitted a pull request to make RubyVM::InstructionSequence.compile_file use same encoding as Kernel#load: https://github.com/ruby/ruby/pull/3788
-
10:12 PM Revision 4a5c42db (git): Make RubyVM::InstructionSequence.compile_file use same encoding as load
- This switches the internal function from rb_parser_compile_file_path
to rb_parser_load_file, which is the same internal method that
Kernel#load uses.
Fixes [Bug #17308] - 10:11 PM Revision fee00737 (git): * 2020-11-19 [ci skip]
- 10:11 PM Revision ce3c9a34 (git): Fix USE_TRANSIENT_HEAP macro usage in hash.c
- Additionally fix some typos in transient heap.
-
07:02 PM Bug #17321 (Closed): Having a singleton class makes cloning imperfect
- Fixed by commit:ebb96fa8808317ad53a4977bff26cf755d68077e.
-
05:06 PM Feature #17333: Enumerable#many?
- >We already have `none?`, `one?`, `any?` and `all?`, which translate into `== 0`, `== 1`, `> 0` and `== self.size`.
`many?` method translates into `> 1`, which is reasonable to exist.
I do not follow this argument.
Of the methods you h... -
01:48 PM Feature #17333: Enumerable#many?
- ITYM `> 1`. 😉
-
01:12 PM Feature #17333: Enumerable#many?
- Pull Request is here:
https://github.com/ruby/ruby/pull/3785 -
01:01 PM Feature #17333: Enumerable#many?
- okuramasafumi (Masafumi OKURA) wrote:
> Currently we need to write something this:
> ...
That's my mistake, we can currently do
```ruby
[1, 2, 3].count(&:odd?) >= 1
``` -
12:58 PM Feature #17333 (Open): Enumerable#many?
- `Enumerable#many?` method is implemented in ActiveSupport.
https://api.rubyonrails.org/classes/Enumerable.html#method-i-many-3F
However, it's slightly different from Ruby's core methods such as `one?` or `all?`, where they take pattern... -
04:18 PM Feature #17312: New methods in Enumerable and Enumerator::Lazy: flatten, product, compact
- @p8
> I was really suprised that `#last` isn't implemented in Enumerable while `#first` is.
It is natural.
That's because Enumerable is "uni-directional" (it is not guaranteed that you can iterate through it more than once, and ... -
03:31 PM Feature #17312: New methods in Enumerable and Enumerator::Lazy: flatten, product, compact
- I was really suprised that #last isn't implemented in Enumerable while #first is.
-
03:34 PM Feature #13381: [PATCH] Expose rb_fstring and its family to C extensions
- After trying to use the new functions in `json` and `messagepack` I realized we overlooked something entirely.
The internal `rb_fstring_*` will build new strings with `str_new_static`, so will directly re-use the string pointer that w... -
10:32 AM Bug #17332 (Closed): No error when using endless method definitions with `self.` setters
- Seems to have been fixed since preview1:
```
[05:29][~]$ ruby -v -e 'def self.foo=() = 1'
ruby 3.0.0dev (2020-11-07T21:47:45Z master 2f12af42f7) [x86_64-darwin18]
-e:1: setter method cannot be defined in an endless method definitio... -
08:55 AM Bug #17332 (Closed): No error when using endless method definitions with `self.` setters
- With ruby 3.0.0 preview1, endless method definitions can be used for setter methods with explicit receiver:
```ruby
def self.foo=() = 1
# => :foo=
```
```ruby
obj = Object.new
def obj.foo=() = 1
# => :foo=
```
From my und... -
07:28 AM Revision dc3a65bd (git): [ruby/net-smtp] Bump version to 0.2.1
- https://github.com/ruby/net-smtp/commit/6e5c09dcc4
-
07:27 AM Revision 6e487719 (git): Update TypeProf to 0.6.1
-
05:26 AM Revision 1301bd8c (git): Update documentation for Ripper.{lex,tokenize,sexp,sexp_raw} [ci skip]
-
05:16 AM Feature #17276 (Closed): Ripper stops tokenizing after keyword as a method parameter
- Applied in changeset commit:git|cd0877a93e91fecb3066984b3fa2a762e6977caf.
----------
Support raise_errors keyword for Ripper.{lex,tokenize,sexp,sexp_raw}
Implements [Feature #17276] -
05:15 AM Revision cd0877a9 (git): Support raise_errors keyword for Ripper.{lex,tokenize,sexp,sexp_raw}
- Implements [Feature #17276]
-
01:52 AM Revision a776032e (git): Move the declaration into the function
- instead of 'do not call it directly.' comment.
-
01:14 AM Bug #17021: "arm64" and "arm" are mixed in RbConfig on Apple silicon
- I heard that config.guess claims it "arm", while `uname -m` reports "arm64".
First of all, `$host_cpu` and others are used only for cross-compilers and nonsense in the other cases.
Why do they matter? -
01:04 AM Bug #17331: Let Fiber#raise work with transferring fibers
- We could also make this automatically determine whether the fiber is yielding or transferring and choose the appropriate fiber_switch approach. But transferring vs yielding makes a difference in where control is passed back to when the f...
-
12:50 AM Bug #17331 (Closed): Let Fiber#raise work with transferring fibers
- It would be useful to use `raise` on transferring fibers just as we can with yielding fibers.
I've added a `transfer` kwarg, so it is not automatic; the caller must know how to handle the fiber. If you call a yielding fiber with `tra... -
12:32 AM Feature #17326: Add Kernel#must! to the standard library
- jez (Jake Zimmerman) wrote in #note-16:
> A colleague pointed out that `or_else` has the nice property that it could replace the `||=` for default initializing instance variables:
> ...
Except that `@foo ||= x` is `@foo || (@foo = x)`,... -
12:06 AM Feature #17326: Add Kernel#must! to the standard library
- A colleague pointed out that `or_else` has the nice property that it could replace the `||=` for default initializing instance variables:
```ruby
@foo ||= compute_initial_value_slow_returns_true_or_false(...)
# ^ this logic will r... - 12:05 AM Revision 519062b3 (git): Add Fiddle 1.0.2 to NEWS
- 12:05 AM Revision 0915a020 (git): Update Fiddle's dependencies
- 12:05 AM Revision fcd680fb (git): [ruby/fiddle] Remove needless return
- https://github.com/ruby/fiddle/commit/50e02f9445
- 12:05 AM Revision aa22b665 (git): [ruby/fiddle] Bump version
- https://github.com/ruby/fiddle/commit/74b65cb858
- 12:05 AM Revision 5c7ef89d (git): [ruby/fiddle] test: suppress shadowing outer local variable warning
- https://github.com/ruby/fiddle/commit/cf168680a2
- 12:05 AM Revision ceccc165 (git): [ruby/fiddle] Remove needless workaround
- It's fixed in upstream.
https://github.com/MSP-Greg/ruby-loco/issues/4
https://github.com/ruby/fiddle/commit/2ae0ff4934 - 12:05 AM Revision 3b385c33 (git): [ruby/fiddle] Add workaround for ruby head for mingw
- https://github.com/ruby/fiddle/commit/bb227c206d
- 12:05 AM Revision 821cfa74 (git): [ruby/fiddle] Use msys2_mingw_dependencies
- https://github.com/ruby/fiddle/commit/fee175a8ff
- 12:05 AM Revision e2770129 (git): [ruby/fiddle] Use ruby_xcalloc() instead of ruby_xmalloc() and memset()
- https://github.com/ruby/fiddle/commit/6d24fb5438
- 12:05 AM Revision 1867088d (git): [ruby/fiddle] Remove needless rescue
- GitHub: fix GH-15
Reported by Eneroth3. Thanks!!!
https://github.com/ruby/fiddle/commit/f3d70b81ec - 12:05 AM Revision aff5eace (git): [ruby/fiddle] Add workaround for RubyInstaller for Windows
- See comment for details.
https://github.com/ruby/fiddle/commit/0c76f03dc4 -
12:05 AM Revision 307388ea (git): [ruby/fiddle] Add a "pinning" reference (#44)
- * Add a "pinning" reference
A `Fiddle::Pinned` objects will prevent the objects they point to from
moving. This is useful in the case where you need to pass a reference
to a C extension that keeps the address in a global and needs the
... - 12:05 AM Revision e2dfc0c2 (git): [ruby/fiddle] Add support for specifying types by name as String or Symbol
- For example, :voidp equals to Fiddle::TYPE_VOID_P.
https://github.com/ruby/fiddle/commit/3b4de54899 - 12:05 AM Revision ae7b5354 (git): [ruby/fiddle] Add TYPE_CONST_STRING and SIZEOF_CONST_STRING for "const char *"
- Add rb_fiddle_ prefix to conversion functions.h to keep backward
compatibility but value_to_generic() isn't safe for TYPE_CONST_STRING
and not String src. Use rb_fiddle_value_to_generic() instead.
https://github.com/ruby/fiddle/commit/0...
11/17/2020
-
11:24 PM Feature #17326: Add Kernel#must! to the standard library
- jeremyevans0 (Jeremy Evans) wrote in #note-14:
> But the fact that there should be a high bar is something I would hope we all understand.
I hope that something I wrote didn't make you think I disagree there! I was just genuinely curiou... -
09:46 PM Feature #17326: Add Kernel#must! to the standard library
- jez (Jake Zimmerman) wrote in #note-13:
> jeremyevans0 (Jeremy Evans) wrote in #note-12:
> ...
The cost to adding a method to a core class is in the conceptual overhead, backwards compatibility, and need to support in perpetuity, since... -
09:12 PM Feature #17326: Add Kernel#must! to the standard library
- jeremyevans0 (Jeremy Evans) wrote in #note-12:
> the benefit of adding it is smaller than the cost of adding another method to Kernel
Can you speak more on the const of adding a method to Kernel? While I understand the costs of somethi... -
08:50 PM Feature #17326: Add Kernel#must! to the standard library
- This method is trivial to write in Ruby. While it can be useful even in codebases that do not use static typing, I think the benefit of adding it is smaller than the cost of adding another method to Kernel. I think it should probably b...
-
07:46 PM Feature #17326: Add Kernel#must! to the standard library
- I really don't want to add new syntax for something that can already be expressed in normal Ruby code.
I wanted to bump this suggestion from Ufuk:
ufuk (Ufuk Kayserilioglu) wrote in #note-5:
> As for the matching `must` method, I thin... -
03:44 PM Feature #17326: Add Kernel#must! to the standard library
- Just an aside note: not saying something against, or for the proposal, I can't help noticing that abandoned "method reference" idea solved at least (1) and (2) of original ticket, removing some of the necessity of constantly extending co...
-
03:20 PM Feature #17326: Add Kernel#must! to the standard library
- I don't think I can agree with the `|.` operator, but having the raise in a block would make a lot of sense to me.
task.or{raise}.mailing_params.or{raise}.fetch('template_context')
This could also be used to return a default va... -
06:35 AM Feature #17326: Add Kernel#must! to the standard library
- I like this syntax :
`task|.raise.mailing_params|.raise.fetch('template_context')`
As you said it's consistent with `&.` -
11:13 PM Revision 64926d50 (git): test/net/smtp - use TCPSocket when UNIXSocket unavailable
- 10:17 PM Revision 2ef3b979 (git): NEWS: Add --backtrace-limit option [ci skip]
-
09:58 PM Revision 898aff95 (git): Remove NEWS entry about taint deprecation warnings [ci skip]
- JunichiIto on GitHub correctly pointed out this is no longer
accurate due to the change to not display deprecation warnings by
default. -
08:30 PM Misc #17329 (Closed): Doc for pattern match?
- Ah, I confused both sites. Closing this then.
-
06:32 PM Misc #17329: Doc for pattern match?
- > Who has access to do that?
If you mean access to ruby-doc.org, I believe it is one-person project. Last time I wanted something to be fixed there I've just contacted maintainer on Twitter: https://twitter.com/zverok/status/121051255... -
06:09 PM Misc #17329: Doc for pattern match?
- Ohh, glad to see it's there, not updated.
There have been many improvements by @BurdetteLamar, we should definitely update the published doc as it is today.
Who has access to do that? -
10:02 AM Misc #17329: Doc for pattern match?
- (As an aside note, I really believe Ruby needs some kind of "Documentation working group", the current state of things is errrrm sub-optimal.)
-
10:00 AM Misc #17329: Doc for pattern match?
- Funny.
Here: https://docs.ruby-lang.org/en/master/doc/syntax/control_expressions_rdoc.html#label-case+Expression we have
> Since Ruby 2.7, case expressions also provide ....
I [added the docs](https://github.com/ruby/ruby/pull/2... -
01:59 AM Misc #17329 (Closed): Doc for pattern match?
- Is there an official doc for pattern matching?
I note that `case` in https://ruby-doc.org/core-2.7.2/doc/syntax/control_expressions_rdoc.html does not mention it, and `in` does not appear. -
07:04 PM Feature #17278: On-demand sharing of constants for Ractor
- In #17323#note-5, ko1 mentioned there is a possibility to provide "fork" model. So I tried thinking if it could apply here.
We can imagine that accessing an auto-shareable constant
a) from non-main ractor: is made shareable
b) from ... - 06:53 PM Revision 0829f147 (git): * 2020-11-18 [ci skip]
-
06:52 PM Revision 5e3259ea (git): fix public interface
- To make some kind of Ractor related extensions, some functions
should be exposed.
* include/ruby/thread_native.h
* rb_native_mutex_*
* rb_native_cond_*
* include/ruby/ractor.h
* RB_OBJ_SHAREABLE_P(obj)
* rb_ractor_shareable_p(ob... -
06:37 PM Feature #17325: Adds Fiber#cancel, which forces a Fiber to break/return
- n.b. I consider this to be related, at least in spirit, to https://bugs.ruby-lang.org/issues/595. I consider this analogous to IO#open and IO#close. We ought to have a structured/standard way to "close" fibers that have been "opened". (T...
-
04:25 PM Feature #17325: Adds Fiber#cancel, which forces a Fiber to break/return
- Like I wrote above, I think I'd like to change my PR so that `terminated_fiber.cancel` returns `nil` or `false` instead of raising `FiberError`. That way any fiber on the current thread, except for the root fiber, can be canceled without...
-
03:45 PM Feature #17325: Adds Fiber#cancel, which forces a Fiber to break/return
- one more update to alternatives
-
03:40 PM Feature #17325: Adds Fiber#cancel, which forces a Fiber to break/return
- added more to alternatives
-
03:20 PM Feature #17325: Adds Fiber#cancel, which forces a Fiber to break/return
- Added some other alternatives to the description.
-
03:02 PM Feature #17325: Adds Fiber#cancel, which forces a Fiber to break/return
- Thanks for taking a look at this, Benoit. I agree it's not obvious why this is necessary with Fiber#raise, so I'll try to explain my reasoning in more detail:
Yes, a library (e.g. `async`) could write a "suspend" function that wraps r... -
04:28 PM Feature #17312: New methods in Enumerable and Enumerator::Lazy: flatten, product, compact
- > But even with Enumerator the recursive aspect still represents a compatibility problem.
I am not sure about its severity, though. I mean, Universe is big and sure somewhere in it there should be a code which has an *array of enumera... -
04:14 PM Feature #17312: New methods in Enumerable and Enumerator::Lazy: flatten, product, compact
- I understand the thinking behind #flatten; if `ary.flatten` is possible then why not `ary.to_enum.flatten`? It should be isomorphic. But even with Enumerator the recursive aspect still represents a compatibility problem. So as long as th...
-
03:50 PM Feature #17312: New methods in Enumerable and Enumerator::Lazy: flatten, product, compact
- @mame @Dan0042 Oh, you are right, starting to think from `Enumerable::Lazy` perspective I've missed a huge incompatibility introduced by `flatten`.
@mame I'll split into several proposals+patches: `Enumerable#compact`, and, I am start... -
04:07 PM Feature #17276: Ripper stops tokenizing after keyword as a method parameter
- Eregon (Benoit Daloze) wrote in #note-2:
> jeremyevans0 (Jeremy Evans) wrote in #note-1:
> ...
Yes, the same is possible with `Ripper.sexp/sexp_raw`. I've updated the pull request to handle those as well. -
10:10 AM Feature #17276: Ripper stops tokenizing after keyword as a method parameter
- jeremyevans0 (Jeremy Evans) wrote in #note-1:
> Maybe we could support keyword arguments in `Ripper.lex` and `Ripper.tokenize` to raise SyntaxError for errors? Here's a pull request for that approach: https://github.com/ruby/ruby/pull/... -
05:17 AM Feature #17276: Ripper stops tokenizing after keyword as a method parameter
- Ripper records errors, but `Ripper.tokenize` and `Ripper.lex` cannot return them. Here's how you can handle errors with Ripper (for tokenize, lex is similar):
```ruby
require 'ripper'
r = Ripper::Lexer.new('def req(true) end', 'a',... -
02:24 PM Bug #17197: Some Hash methods still have arity 2 instead of 1
- Ah, I was wrong.
mame (Yusuke Endoh) wrote in #note-6:
> IMO, this is a bug since 1.9.0 because `Hash#select` looks like a faster version of `Enumerable#select`, so it should behave as possible as like `Enumerable#select`.
Hash#select ... -
01:37 PM Bug #17197: Some Hash methods still have arity 2 instead of 1
- Eregon (Benoit Daloze) wrote in #note-8:
> Check if the block uses arity 1 and warn that it should instead use `|k,v|` or `|k,|`?
Yes. It seems obvious, am I missing something? I'm aware that `proc{ |k,| }.arity == 1` (imho a bug) bu... -
12:55 PM Feature #17330: Object#non
- It reminded me https://bugs.ruby-lang.org/issues/12075#change-57152.
-
12:49 PM Feature #17330 (Open): Object#non
- (As always "with core" method proposals, I don't expect quick success, but hope for a fruitful discussion)
### Reasons:
Ruby always tried to be very chainability-friendly. Recently, with introduction of `.then` and `=>`, even more ... -
12:45 PM Bug #17021: "arm64" and "arm" are mixed in RbConfig on Apple silicon
- Maybe, `uname -m` (and tool/config.guess) returns "arm", then `RUBY_UNIVERSAL_ARCH` replaces target_cpu only?
-
12:35 PM Bug #17021: "arm64" and "arm" are mixed in RbConfig on Apple silicon
- As I have no access to Apple silicon machines, can anyone share config.log file on that platform?
-
10:20 AM Bug #17021: "arm64" and "arm" are mixed in RbConfig on Apple silicon
- This seems a clear bug, at least `host_cpu` and `build_cpu`.
`arm` means 32-bit and is already used e.g. on Linux to mean that.
So it should be `arm64` or `aarch64`.
`target_cpu` is already `arm64` interestingly.
@nobu Do you kno... -
12:20 PM Bug #11213: defined?(super) ignores respond_to_missing?
- https://github.com/ruby/ruby/pull/3777
-
10:25 AM Feature #17314: Provide a way to declare visibility of attributes defined by attr* methods in a single expression
- phluid61 (Matthew Kerwin) wrote in #note-9:
> ``` ruby
> ...
This is exactly why I created this feature request. Improved `attr_accessor` returns array of defined methods and `private/protected/public` receives single array as argument. -
10:23 AM Feature #17314: Provide a way to declare visibility of attributes defined by attr* methods in a single expression
- marcandre (Marc-Andre Lafortune) wrote in #note-8:
> I would also like `alias_method x, y` to return `x` so we could write `protected alias_method :foo, :bar`
Additionaly both activesupport's `delegate` and ruby's `def_delegators` me... -
07:55 AM Feature #17314: Provide a way to declare visibility of attributes defined by attr* methods in a single expression
- Dan0042 (Daniel DeLorme) wrote in #note-7:
> +1
> ...
``` ruby
attr_accessor :x, :y #=> ?
```
-
04:30 AM Feature #17314: Provide a way to declare visibility of attributes defined by attr* methods in a single expression
- I would also like `alias_method x, y` to return `x` so we could write `protected alias_method :foo, :bar`
-
09:05 AM Revision 0683912d (git): Skip tests related TLS with Windows platform.
-
05:17 AM Revision cada6d85 (git): Import net-smtp-0.2.0 from https://github.com/ruby/net-smtp
-
02:32 AM Bug #17305 (Closed): rb_rescue2() seems to loop forever if given a non-module for rescued exceptions on <= 2.6.6
- I bisected the fix to commit:a569bc09e25a2ba813d0bec1228d9ff65330a3db. We definitely don't want the entire commit. Attached is a minimal subset of the commit that doesn't introduce a new external function, in case @nagachika would like...
- 12:41 AM Revision fcc88da5 (git): configure.ac: fix for upcoming autoconf-2.70
- The failure initially noticed on `autoconf-2.69d` (soon to become 2.70):
```
$ ./configure
./configure: line 8720: syntax error near unexpected token `fi'
./configure: line 8720: `fi'
```
Before the change generated `./configure ` snip... -
12:39 AM Feature #13381 (Closed): [PATCH] Expose rb_fstring and its family to C extensions
- Applied in changeset commit:git|ef19fb111a8c8bf1a71d46e6fcf34b227e086845.
----------
Expose the rb_interned_str_* family of functions
Fixes [Feature #13381] -
12:39 AM Revision ef19fb11 (git): Expose the rb_interned_str_* family of functions
- Fixes [Feature #13381]
-
12:08 AM Feature #17328 (Rejected): Extend `un.rb` to be usable by everyone
- You can run it as `ruby run.rb`.
11/16/2020
-
10:41 PM Revision 68ffc8db (git): Set allocator on class creation
- Allocating an instance of a class uses the allocator for the class. When
the class has no allocator set, Ruby looks for it in the super class
(see rb_get_alloc_func()).
It's uncommon for classes created from Ruby code to ever have an
al... -
10:41 PM Revision ebb96fa8 (git): Fix singleton class cloning
- Before this commit, `clone` gave different results depending on whether the original object
had an attached singleton class or not.
Consider the following setup:
```
class Foo; end
Foo.singleton_class.define_method(:foo) {}
obj = Foo.n... -
10:37 PM Bug #17197: Some Hash methods still have arity 2 instead of 1
- @Dan0042 How would we warn that case? Check if the block uses arity 1 and warn that it should instead use `|k,v|` or `|k,|`?
I think we should fix `Hash#map` at least, that's also a clear optimization bug like `Hash#each`, and it forc... -
02:04 PM Bug #17197: Some Hash methods still have arity 2 instead of 1
- So when you have a bug that is troublesome to fix because it may result in large incompatibility... rather than "just fix it" and wait to see if other people's code explodes, wouldn't the Industry-Standard Best Practice™ here be to just ...
-
07:59 AM Bug #17197: Some Hash methods still have arity 2 instead of 1
- This story is rather different from `Hash#each` in #14015.
`Hash#each` has yielded an array that has a key and a value since a long time ago:
```
# 2.7
{ a: 1 }.each {|a| p a } #=> [:a, 1]
```
BTW, `Hash#each` has an optimization to s... -
10:34 PM Bug #17302 (Closed): The TracePoint API does not allow setting multiple line traces within the same method (ISEQ)
- Applied in changeset commit:git|084e7e31b257f6ac859769553b4c1c6ca2930152.
----------
remain enabled and line specified trace points
If two or more tracepoints enabled with the same target and with
different target lines, the only last ... -
10:33 PM Revision 084e7e31 (git): remain enabled and line specified trace points
- If two or more tracepoints enabled with the same target and with
different target lines, the only last line is activated.
This patch fixes this issue by remaining existing trace instructions.
[Bug #17302] -
08:14 PM Feature #16786: Light-weight scheduler for improved concurrency.
- I am happy with `Fiber.set_scheduler`. I'm also happy with `Fiber.scheduler=` (canonical Ruby style) but I accept and agree with Matz's reasoning behind the former.
I originally preferred `Thread.current.scheduler=` because it seemed lo... - 05:38 PM Revision 1271782f (git): * 2020-11-17 [ci skip]
- 05:38 PM Revision 1ee8d4b0 (git): Fix typo on Proc docs
-
04:00 PM Feature #17328: Extend `un.rb` to be usable by everyone
- This has the potential to introduce security issues. Avoiding security issues by not automatically loading files in the current directory is the reason `.` was removed from the default `$LOAD_PATH` in Ruby 1.9.
-
02:37 PM Feature #17328 (Rejected): Extend `un.rb` to be usable by everyone
- I've opened the PR here: https://github.com/ruby/ruby/pull/3771, although if you need me to submit a patch just let me know.
Basically I want to be able to use `ruby -run` for more than just running a http server, and thought it could r... -
03:55 PM Feature #17314: Provide a way to declare visibility of attributes defined by attr* methods in a single expression
- +1
Ever since ruby 2.1 when `def` was improved to return a Symbol, I've always wondered why the same was not done for `attr_*` methods. -
01:30 PM Misc #16778: Should we stop vendoring default gems code?
- Not that I'm no longer interested, but it sounds like it'd be wasted work.
Even if the reason for rejection doesn't make sense, I think it can be read between lines that the ruby-core team is not interested in this. -
01:14 PM Revision 0f37f384 (git): [DOC] Fixed a typo [ci skip]
-
12:53 PM Feature #17326: Add Kernel#must! to the standard library
- Since this feature is reminiscent of the safe navigation operator `&.`, I think it would be good if we can make the notation similar to the latter notation or use some variant of it. I suggest to make the following two changes to the cur...
-
12:25 PM Feature #17326: Add Kernel#must! to the standard library
- Given that Ruby 3 will ship with RBS which will be supplanted with a type-checker based on RBS (Steep) soon, I expect more people to experiment with types adoption in their codebases. Our early adoption of type checking at Shopify has sh...
-
07:33 AM Feature #17326: Add Kernel#must! to the standard library
- I like this feature as a tiny tool for debugging and assertion.
When I encounter `undefined method 'foo' for nil:NilClass` on `x.foo`, I insert `Kernel#p` to many places, such as `x = expr` to `x = p(expr)`, to try identifying where the... -
06:25 AM Feature #17326: Add Kernel#must! to the standard library
- There is `not_nil!` in Crystal https://github.com/crystal-lang/crystal/blob/master/src/object.cr#L223
-
12:31 AM Feature #17326: Add Kernel#must! to the standard library
- - Yes I think we need this feature (except the name)
- Re: naming, the rule of a bang method is:
> A bang method cannot exist alone. If there is `#must!`, there shall also be `#must` which is a "safer" variant of it.
... -
12:12 PM Feature #17327: The Queue constructor should take an initial set of items
- Agreed with @byroot (actually I was going to note the same, he beat me to it).
I would also like to note that different from `Set`, for example, the order of items in the supplied parameter matters in the `Queue` case. Even though th... -
09:11 AM Feature #17327: The Queue constructor should take an initial set of items
- I agree that the constructor should take an enumerable rather than variadic arguments, as it would be consistent with `Set.new([1, 2, 3])`, and `Array.new([1, 2, 3])`
-
08:44 AM Revision 8985add9 (git): Update TypeProf to 0.5.2
-
08:44 AM Revision bcd29fed (git): Update TypeProf to 0.5.1
-
08:44 AM Revision 57ab779a (git): Update RBS to 0.17.0
-
08:24 AM Feature #17312: New methods in Enumerable and Enumerator::Lazy: flatten, product, compact
- I think `Enumerable#compact` is trivial and maybe useful.
In regard to `Enumrable#flatten`, I agree with @Dan0042's concern. I think that it should flatten only `Array` elements, but it might look unnatural.
I'm unsure if `Enumerable#p... -
07:59 AM Feature #17323: Ractor::LVar to provide ractor-local storage
- Dan0042 (Daniel DeLorme) wrote in #note-4:
> The problem with the example above is that it's too magical to have a variable or constant return an object different from what was assigned.
Absolutely. By ractor's design, there is a pos... -
02:01 AM Revision 0ba096df (git): Fix a link [ci skip]
-
01:59 AM Revision ef82a0ef (git): Fix links [ci skip]
11/15/2020
-
11:25 PM Bug #17124 (Closed): Wrong "ambiguous first argument" warning
- Applied in changeset commit:git|f5bb9115a7f69c32089b9b970933c3507fb9f82b.
----------
Use more specific warning for ambiguous slash
Fixes [Bug #17124] -
08:28 AM Bug #17124: Wrong "ambiguous first argument" warning
- I think your wording is a big improvement 👍
I think you've paid the cost already with your diff, we should reap the benefit by committing it! -
06:11 AM Bug #17124 (Feedback): Wrong "ambiguous first argument" warning
- marcandre (Marc-Andre Lafortune) wrote in #note-3:
> I hadn't thought of `method /a /x` or `method /a /<newline>other_method`, indeed.
> ...
No, the warning is used for `+` and `-` in addition to `/`.
> If so, could we reword the wa... -
11:25 PM Revision f5bb9115 (git): Use more specific warning for ambiguous slash
- Fixes [Bug #17124]
-
10:59 PM Feature #17325: Adds Fiber#cancel, which forces a Fiber to break/return
- This sounds like Thread#kill but for Fiber.
However, Fiber is cooperative so it seems this shouldn't be needed.
What's a concrete issue with Fiber#raise? It seems redundant with it to me.
If the application swallows Exception I thin... -
08:48 PM Feature #17325: Adds Fiber#cancel, which forces a Fiber to break/return
- I've updated the description to 1) better describe the motivation and 2) match the PR's current behavior when a Fiber is canceled multiple times.
-
05:35 AM Feature #17325: Adds Fiber#cancel, which forces a Fiber to break/return
- updated description and github PR
-
10:50 PM Feature #17327: The Queue constructor should take an initial set of items
- That all makes sense to me.
-
10:13 PM Feature #17327: The Queue constructor should take an initial set of items
- I'm not worried about `Queue.new(worklist)` or `Queue.new(*worklist)`, so that's fine if more people feel that way. I think the key thing is conciseness in text source code, and also avoiding needing to synchronise while adding each indi...
-
10:11 PM Feature #17327: The Queue constructor should take an initial set of items
- What about a way to bulk add items, e.g. `q.concat` or whatever is the same for Array, and maybe it would be best to have the first argument as an array, e.g. `Queue.new(worklist)`? I think it's more expensive to expand it in CRuby when ...
-
10:07 PM Feature #17327: The Queue constructor should take an initial set of items
- https://github.com/ruby/ruby/pull/3768
-
10:06 PM Feature #17327 (Closed): The Queue constructor should take an initial set of items
- I often create a `Queue` and then process it with a set of concurrent workers in threads. I end up writing:
```ruby
q = Queue.new
worklist.each do |work|
q.push work
end
```
I'd rather be able to write
```ruby
q = Queue.... - 10:45 PM Revision 45fd53e0 (git): * 2020-11-16 [ci skip]
- 10:44 PM Revision fd46ff9d (git): NEWS: merge Range and Regexp being frozen [doc]
-
05:51 AM Bug #17146 (Closed): Queue operations are allowed after it is frozen
-
05:48 AM Bug #17158 (Closed): Ractor Segfault when using shell and puts
-
05:48 AM Bug #17304 (Closed): Ruby stuck calling sched_yield on fork
- 01:04 AM Revision cd50ff80 (git): * 2020-11-15 [ci skip]
-
12:59 AM Revision 0433f5ae (git): Functions defined in headers should be static inline
11/14/2020
-
11:15 PM Feature #17326 (Closed): Add Kernel#must! to the standard library
- # Abstract
We should add a method `Kernel#must!` (name TBD) which raises if `self` is `nil` and returns `self` otherwise.
# Background
Ruby 3 introduces type annotations for the standard library.
Type checkers consume these a... -
10:45 PM Feature #17325: Adds Fiber#cancel, which forces a Fiber to break/return
- I also created a github PR at https://github.com/ruby/ruby/pull/3766.
-
10:43 PM Feature #17325: Adds Fiber#cancel, which forces a Fiber to break/return
- This is my first big foray into the ruby C API, so I hope it makes sense what I was trying to do. Did I handle `vm_fiber_break` and `fiber_start` appropriately? Is there is somewhere more appropriate to save the cancel reason than a new ...
-
10:43 PM Feature #17325 (Closed): Adds Fiber#cancel, which forces a Fiber to break/return
Calling `Fiber#cancel` will force a fiber to return, skipping rescue and catch blocks but running all ensure blocks. It behaves as if a `break` or `return` were used to jump from the last suspension point to the top frame of the fiber....-
09:34 PM Feature #14781: Enumerator.generate
- @chrisseaton I do!
Everything that is good for the community is good by me. -
08:55 PM Feature #14781: Enumerator.generate
- @zverok are you making available the code in https://github.com/zverok/enumerator_generate available under the same licence as Ruby? We'd like to just run that proof-of-concept code as-is in TruffleRuby (it still passes all the specs.)
-
10:22 AM Revision 311a66b7 (git): Update TypeProf to 0.5.0
-
01:41 AM Bug #17318: Raising float to the power of other issue
- That depends on your purpose or background of the problem. In non-math situations, `power(a, b)` should not return any ordinary number for given `a`<0 where `power(a, b)` stands for "`a` to the power of `b`" over real, just identical to ...
11/13/2020
-
11:26 PM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- `send` is a term traditionally used in the actor context. We'd like to experiment how it works well (or bad) for Rubu3.0.
Matz.
-
10:18 AM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- Thank you for the detailed explanation, that makes sense to me.
I am sure it will result in some confusion, but hopefully it will be rare in practice.
ko1 (Koichi Sasada) wrote in #note-45:
> * Matz agreed that `__send__` is ugly (*2), ... -
08:15 AM Feature #17100: Ractor: a proposal for a new concurrent abstraction without thread-safety issues
- # `Ractor#send` naming issue
Recent weeks I'm thinking about the name of `Ractor#send`.
Matz and I discussed possibilities long time (this discussions and considerations stop my developments), and we agree to remain the name `Ractor#... -
11:17 PM Bug #17318: Raising float to the power of other issue
- deXterbed (Manoj Mishra) wrote in #note-3:
>
> ...
Don't raise a negative number to a non-Integer power. That's just maths. -
05:09 PM Bug #17318: Raising float to the power of other issue
- deXterbed (Manoj Mishra) wrote in #note-3:
> ```
> ...
I don't think that this should be the default behavior because `raise(-1, 2)` returns `-1` but I expect the square of `-1` to be `1`. -
04:59 PM Bug #17318: Raising float to the power of other issue
- Also see #16677 w/r edge cases.
-0.4**0.9 #=> -0.4383832905540869
-0.4.to_f**0.9 #=> (-0.416927285116376+0.13546788683122327i)
-(0.4).to_f**0.9 #=> -0.4383832905540869
-
03:43 PM Bug #17318: Raising float to the power of other issue
- mame (Yusuke Endoh) wrote in #note-2:
> It is due to precedence of operators unary minus and `**`.
> ...
Thanks for the explanation Yusuke Endoh,
that still raises the question, how exactly am i supposed to calculate x**y without ending... -
08:38 PM Feature #17315: Hash #transform
- to_h works for me even though it is unintuitive a name for monadic mapping a hash. I wish we had a common name function name in Enumerable for monadic mapping that would return the same Class that we map over.
-
07:53 PM Feature #17323: Ractor::LVar to provide ractor-local storage
- Would it be possible to somehow have ractor-local variables that are automatically dereferenced instead of having to append `.value` everywhere?
I'm thinking of cases like this where a class-level mutable constant (or classvar) makes ... -
07:13 PM Feature #17322: Deprecate `Random::DEFAULT` and introduce `Random.default()` method to provide Ractor-supported default random generator
- Eregon (Benoit Daloze) wrote in #note-6:
> I think `rand`, etc should use a thread-local `Random` instance (and thread-local implies Ractor-local, of course).
> ...
Bypassing the need for synchronization is a very good idea.
> Is there ... -
05:23 PM Feature #16786: Light-weight scheduler for improved concurrency.
- Dan0042 (Daniel DeLorme) wrote in #note-71:
> Fiber.schedulers[Thread.current] = sch
It seems weird to me to use a Thread as a key for some state on "Fiber".
I think there is no point to hide the fact this state is per-thread.... -
05:17 PM Feature #16786: Light-weight scheduler for improved concurrency.
- Would this be too crazy?
Fiber.schedulers #=> Hash
Fiber.schedulers.default = sch
Fiber.schedulers[Thread.current] = sch -
05:20 PM Bug #17310: Closed ractors should die
- Sorry for the side discussion.
I think this is the important point to discuss:
Eregon (Benoit Daloze) wrote in #note-6:
> I think (2) is a better solution.
> ...
I think in some actor models `send` is considered safe and never ra... -
05:17 PM Bug #17310: Closed ractors should die
- ko1 (Koichi Sasada) wrote in #note-9:
> > It is convenient to Ractor.new { ... }.take, but we could have Ractor#join for that purpose, and that would also work more reliably, independent of intermediate Ractor.yield calls.
> ...
I was ... -
05:07 PM Misc #17319: Rename Random.urandom to os_random and document random data sources
- zofrex (James Sanderson) wrote in #note-6:
> I think that people reading "raw_seed" are likely to think that either this returns the seed for the RNG or perhaps that this method is only suitable for seeding another RNG, rather than usin... -
01:20 PM Misc #17319: Rename Random.urandom to os_random and document random data sources
- I don't think `raw_seed` is name that does a good job of communicating what this method does and what it can be used for. I know this method is *used* to seed the OpenSSL random number generator, but its functionality is more broad than ...
-
03:14 AM Misc #17319: Rename Random.urandom to os_random and document random data sources
- How about `Random.raw_seed(size)`?
-
04:46 PM Revision 78262105 (git): Use rb_attr_get() for hidden ivar
- rb_ivar_get() can issue an uninitialized ivar warning. We never want to
issue warnings about hidden ivars as they are not actionable for users. -
04:32 PM Feature #17312: New methods in Enumerable and Enumerator::Lazy: flatten, product, compact
- What would be the interaction between Array#flatten and Enumerable#flatten ?
It's a big compatibility problem if flatten recursively applies to any Enumerable object within an array.
```ruby
x = Struct.new(:a).new(1) #=> #<struct a... -
04:16 PM Feature #17298: Ractor's basket communication APIs
- A comment about naming... my first impression was that a "basket" is a container with multiple objects to transmit between Ractors. Something like
```ruby
basket = Ractor::Basket.new
basket.to_move << a
basket.to_copy << b
basket.... -
03:06 PM Bug #14726 (Closed): wrong message when superclass is not a Class
- Applied in changeset commit:git|ce9beb9d20187c861462282460b998684759e5e7.
----------
Improve error message when subclassing non-Class
Fixes [Bug #14726] - 03:06 PM Revision 1bd98ee2 (git): * 2020-11-14 [ci skip]
-
03:06 PM Revision ce9beb9d (git): Improve error message when subclassing non-Class
- Fixes [Bug #14726]
-
12:17 PM Revision 6d059674 (git): Update to ruby/spec@b0b7f53
-
12:17 PM Revision acbe7aa1 (git): Update to ruby/mspec@f8b0618
-
05:19 AM Bug #17324: You may have encountered a bug in the Ruby interpreter or extension libraries.
- gundamseedw (J Wong) wrote in #note-1:
> gundamseedw (J Wong) wrote:
> ...
jeremyevans0 (Jeremy Evans) wrote in #note-2:
> The crash information includes:
> ...
It's indeed postgres related. Thanks for the clue!
adding the below in data... -
04:19 AM Revision 69c5474e (git): Fixup 957efa95cc12c608705a5663256226f022ea6c7f
-
04:01 AM Feature #14922: Resolv getaddresses ignores AAAA records for IPv6
- I've submitted my patch as a pull request: https://github.com/ruby/resolv/pull/1
-
03:52 AM Feature #11322: OpenUri: RuntimeError: HTTP redirection loop
- I've submitted the patch as a pull request, with a test: https://github.com/ruby/open-uri/pull/1
-
03:06 AM Revision e70a1d9b (git): Revert https://github.com/ruby/webrick/pull/44
- Because the test for this change was still broken.
- 02:38 AM Revision c046cc1d (git): * 2020-11-13 [ci skip]
- 02:36 AM Revision 37e5b367 (git): [ruby/webrick] add mime type of extention .mjs
- https://github.com/ruby/webrick/commit/45d68f9eba
-
02:35 AM Revision 957efa95 (git): [ruby/webrick] Allow empty POST and PUT requests without content length
- RFC 7230 section 3.3.3 allows for this.
Fixes #30
https://github.com/ruby/webrick/commit/069e9b1908