[#113756] [Ruby master Bug#19711] NoMethodError "private method `new' called for class" since bebd05fb51ea65bc57344b67100748200f8311eb — "yahonda (Yasuo Honda) via ruby-core" <ruby-core@...>

Issue #19711 has been reported by yahonda (Yasuo Honda).

7 messages 2023/06/05

[#113771] [Ruby master Feature#19712] IO#reopen removes singleton class — "itarato (Peter Arato) via ruby-core" <ruby-core@...>

Issue #19712 has been reported by itarato (Peter Arato).

11 messages 2023/06/05

[#113782] [Ruby master Bug#19716] SystemStackError occurs too easily on Alpine Linux (due to small stack size reported by pthread_attr_getstacksize on musl libc) — "alexdowad (Alex Dowad) via ruby-core" <ruby-core@...>

Issue #19716 has been reported by alexdowad (Alex Dowad).

6 messages 2023/06/07

[#113788] [Ruby master Bug#19717] `ConditionVariable#signal` is not fair when the wakeup is consistently spurious. — "ioquatix (Samuel Williams) via ruby-core" <ruby-core@...>

Issue #19717 has been reported by ioquatix (Samuel Williams).

13 messages 2023/06/07

[#113819] [Ruby master Feature#19720] Warning for non-linear Regexps — "Eregon (Benoit Daloze) via ruby-core" <ruby-core@...>

Issue #19720 has been reported by Eregon (Benoit Daloze).

11 messages 2023/06/08

[#113835] [Ruby master Misc#19722] DevMeeting-2023-07-13 — "mame (Yusuke Endoh) via ruby-core" <ruby-core@...>

Issue #19722 has been reported by mame (Yusuke Endoh).

9 messages 2023/06/09

[#113944] [Ruby master Feature#19737] Add `IO::Buffer#cat` for concat `IO::Buffer` instances — "unasuke (Yusuke Nakamura) via ruby-core" <ruby-core@...>

Issue #19737 has been reported by unasuke (Yusuke Nakamura).

7 messages 2023/06/19

[#113953] [Ruby master Bug#19739] Key cannot be found in a Hash when slice! method is applied to the key — "ilya.andreyuk (Ilya Andreyuk) via ruby-core" <ruby-core@...>

Issue #19739 has been reported by ilya.andreyuk (Ilya Andreyuk).

9 messages 2023/06/20

[#113966] [Ruby master Bug#19742] Introduce `Module#anonymous?` — "ioquatix (Samuel Williams) via ruby-core" <ruby-core@...>

Issue #19742 has been reported by ioquatix (Samuel Williams).

47 messages 2023/06/21

[#114025] [Ruby master Feature#19744] Namespace on read — "tagomoris (Satoshi TAGOMORI) via ruby-core" <ruby-core@...>

Issue #19744 has been reported by tagomoris (Satoshi TAGOMORI).

71 messages 2023/06/27

[#114032] [Ruby master Misc#19747] Propose Kevin Newton and Jemma Issroff as core committers — "k0kubun (Takashi Kokubun) via ruby-core" <ruby-core@...>

Issue #19747 has been reported by k0kubun (Takashi Kokubun).

8 messages 2023/06/28

[#114038] [Ruby master Bug#19749] Confirm correct behaviour when attaching private method with `#define_method` — "itarato (Peter Arato) via ruby-core" <ruby-core@...>

Issue #19749 has been reported by itarato (Peter Arato).

15 messages 2023/06/28

[ruby-core:113955] [Ruby master Bug#19739] Key cannot be found in a Hash when slice! method is applied to the key

From: "byroot (Jean Boussier) via ruby-core" <ruby-core@...>
Date: 2023-06-20 14:55:35 UTC
List: ruby-core #113955
Issue #19739 has been updated by byroot (Jean Boussier).





That is very interesting.



The two strings are identical (aside from one being frozen):



```ruby

require "objspace"



hash =3D {}

key =3D "ABC O=DC"

p key.hash

key.slice!(/ o=FC$/i)=20



p key.hash

puts ObjectSpace.dump(key)

hash[key] =3D true

p "#{key} in #{hash}: value is #{hash[key].inspect}"

puts ObjectSpace.dump(hash.keys.first)

p [hash.keys.first, key, hash.keys.first =3D=3D key]

p [hash.keys.first.hash, key.hash]

```



```

1883393806954673666

-2878200511277543492

{"address":"0x10129f048", "type":"STRING", "class":"0x1011c2418", "embedded=
":true, "bytesize":3, "encoding":"UTF-8", "memsize":40, "flags":{"wb_protec=
ted":true}}

"ABC in {\"ABC\"=3D>true}: value is nil"

{"address":"0x10129ebc0", "type":"STRING", "class":"0x1011c2418", "frozen":=
true, "embedded":true, "fstring":true, "bytesize":3, "value":"ABC", "encodi=
ng":"UTF-8", "memsize":40, "flags":{"wb_protected":true}}

["ABC", "ABC", true]

[-2878200511277543491, -2878200511277543491]

```



The hash code is the same, and `=3D=3D` returns true.



I had a quick look at recent changes in `String#slice!` that could explain =
why it's fixed in 3.2, but didn't spot anything yet.



What is interesting though is that the first access to `key.hash` returns `=
-2878200511277543492`, but then later it consistently returns `-28782005112=
77543491`. I wonder if there is an off by one bug somewhere.



----------------------------------------

Bug #19739: Key cannot be found in a Hash when slice! method is applied to =
the key

https://bugs.ruby-lang.org/issues/19739#change-103610



* Author: ilya.andreyuk (Ilya Andreyuk)

* Status: Open

* Priority: Normal

* ruby -v: 3.1.4

* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN

----------------------------------------

Hello,

Key cannot be found in a Hash when slice! method is applied to the key. I c=
annot reproduce this behaviour with sub! or gsub! methods:



``` ruby

hash =3D {}

key =3D "ABC O=DC"

key.slice!(/ o=FC$/i)=20

# key.sub!(/ o=FC$/i, '')

# key.gsub!(/ o=FC$/i, '')

hash[key] =3D true

"#{key} in #{hash}: value is #{hash[key]}"



=3D> "ABC in {\"ABC\"=3D>true}: value is "

```



Also it seems that ruby 2.7.6 and 3.2.2 don't have this issue.







--=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/

In This Thread