[#112457] [Ruby master Feature#19443] Cache `Process.pid` — "byroot (Jean Boussier) via ruby-core" <ruby-core@...>
Issue #19443 has been reported by byroot (Jean Boussier).
16 messages
2023/02/16
[#112584] [Ruby master Feature#19465] [PATCH] reuse open(2) from rb_file_load_ok on POSIX-like system — "normalperson (Eric Wong) via ruby-core" <ruby-core@...>
Issue #19465 has been reported by normalperson (Eric Wong).
9 messages
2023/02/25
[#112595] [Ruby master Feature#19465] [PATCH] reuse open(2) from rb_file_load_ok on POSIX-like system
— "nobu (Nobuyoshi Nakada) via ruby-core" <ruby-core@...>
2023/02/25
SXNzdWUgIzE5NDY1IGhhcyBiZWVuIHVwZGF0ZWQgYnkgbm9idSAoTm9idXlvc2hpIE5ha2FkYSku
[#112613] Re: [Ruby master Feature#19465] [PATCH] reuse open(2) from rb_file_load_ok on POSIX-like system
— Eric Wong via ruby-core <ruby-core@...>
2023/02/26
"nobu (Nobuyoshi Nakada) via ruby-core" <ruby-core@ml.ruby-lang.org> wrote:
[#112615] Re: [Ruby master Feature#19465] [PATCH] reuse open(2) from rb_file_load_ok on POSIX-like system
— SHIBATA Hiroshi via ruby-core <ruby-core@...>
2023/02/27
MzUxMzZlMWU5YzIzMmFkN2EwMzQwN2I5OTJiMmU4NmI2ZGY0M2Y2MyBpcyBicm9rZW4gd2l0aCBg
[#112626] Re: [Ruby master Feature#19465] [PATCH] reuse open(2) from rb_file_load_ok on POSIX-like system
— Eric Wong via ruby-core <ruby-core@...>
2023/02/28
```
[ruby-core:112195] [Ruby master Bug#19405] Prevent Use of include CustomModule in a Nested Class
From:
"jeremyevans0 (Jeremy Evans) via ruby-core" <ruby-core@...>
Date:
2023-02-03 06:40:48 UTC
List:
ruby-core #112195
Issue #19405 has been updated by jeremyevans0 (Jeremy Evans).
Status changed from Open to Rejected
This is not a bug, this is expected behavior. It is true in Ruby even if yo=
u don't define any classes:
```ruby
Object::Object::Object::Object::Object::Object::Object::Object::Object::Obj=
ect::Object::Object::Object::Object::Object::Object::Object::Object
# =3D> Object
```
If you want to prevent this, you could override `include`:
```ruby
module MyModule
class MyClass
A =3D 'A'
B =3D 'B'
def self.include(mod)
raise if mod.const_get(name) =3D=3D self
super
end
include MyModule
end
end
```
You can even try to handle this globally:
```ruby
class Module
def append_features(mod)
raise if const_get(mod.name) =3D=3D mod
super
end
end
```
That only handles the direct inclusion case, it won't handle more complex c=
ases, or even other simple cases such as `module MyModule; MyModule =3D sel=
f end`.
In general, you should just accept that this is how Ruby is, and it isn't a=
problem.
----------------------------------------
Bug #19405: Prevent Use of include CustomModule in a Nested Class=20
https://bugs.ruby-lang.org/issues/19405#change-101629
* Author: kyonides (Edwin Acu=F1a)
* Status: Rejected
* Priority: Normal
* ruby -v: ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [x86_64-linux-gn=
u]
* Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN
----------------------------------------
Bug present ever since **Ruby 1.8**.
Tested in **Ruby 2.7 and 3.0** as well.
I would like to request the developers to prevent any person from doing som=
ething as illogical and useless as the code I have provided you with right =
below.
``` ruby
module MyModule
class MyClass
A =3D 'A'
B =3D 'B'
include MyModule
end
end
```
If you print something like:
``` ruby
puts MyModule::MyClass::MyClass::MyClass::MyClass::MyClass::MyClass::MyClas=
s::MyClass::MyClass::MyClass::MyClass::MyClass::MyClass::MyClass::MyClass::=
MyClass::B
```
Ruby will let you do it!
Why is it possible to chain the calls to MyClass class forever and ever?
It should throw an error for including the very same module and class where=
the constants are nested.
Proposed Error Class:
"ModuleError: Class nested in module %s cannot call include method to add t=
he same module."
Or something the like. =3D_=3D=A1
--=20
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-c=
ore.ml.ruby-lang.org/