[#98645] [Ruby master Misc#16933] DevelopersMeeting20200618Japan — mame@...

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

14 messages 2020/06/04

[#98663] [Ruby master Bug#16936] `make check TESTS="-n !/Foo#method/"` not skipping the test case — jaruga@...

Issue #16936 has been reported by jaruga (Jun Aruga).

13 messages 2020/06/05

[#98772] [Ruby master Bug#16959] Weakmap has specs and third-party usage despite being a private API — headius@...

Issue #16959 has been reported by headius (Charles Nutter).

13 messages 2020/06/12

[#98826] [Ruby master Feature#16963] Remove English.rb from Ruby 2.8/3.0 — hsbt@...

Issue #16963 has been reported by hsbt (Hiroshi SHIBATA).

9 messages 2020/06/16

[#98920] [Ruby master Bug#16978] Ruby should not use realpath for __FILE__ — v.ondruch@...

Issue #16978 has been reported by vo.x (Vit Ondruch).

24 messages 2020/06/23

[#98947] [Ruby master Feature#16986] Anonymous Struct literal — ko1@...

Issue #16986 has been reported by ko1 (Koichi Sasada).

66 messages 2020/06/26

[#98964] [Ruby master Feature#16989] Sets: need ♥️ — marcandre-ruby-core@...

Issue #16989 has been reported by marcandre (Marc-Andre Lafortune).

33 messages 2020/06/26

[#98965] [Ruby master Feature#16990] Sets: operators compatibility with Array — marcandre-ruby-core@...

Issue #16990 has been reported by marcandre (Marc-Andre Lafortune).

11 messages 2020/06/26

[#98968] [Ruby master Feature#16993] Sets: from hash keys using Hash#key_set — marcandre-ruby-core@...

Issue #16993 has been reported by marcandre (Marc-Andre Lafortune).

10 messages 2020/06/26

[#98997] [Ruby master Feature#17000] 2.7.2 turns off deprecation warnings by deafult — mame@...

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

16 messages 2020/06/30

[ruby-core:98603] [Ruby master Bug#16927] String#tr won't return the expected result for some sign with diacritics

From: nobu@...
Date: 2020-06-01 00:36:10 UTC
List: ruby-core #98603
Issue #16927 has been updated by nobu (Nobuyoshi Nakada).

Subject changed from String.tr won't return the expected result for some sign with diacritics to String#tr won't return the expected result for some sign with diacritics

This is because `String#tr` translates each codepoint, not each grapheme cluster, for now.

----------------------------------------
Bug #16927: String#tr won't return the expected result for some sign with diacritics
https://bugs.ruby-lang.org/issues/16927#change-85919

* Author: psychoslave (mathieu lovato stumpf guntz)
* Status: Open
* Priority: Normal
* ruby -v: ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
# Context

Not much interest for the bug here, but I always appreciate to be given more context. So, as part of a larger project, I came with the need to be able to utter every number from zero to 255 with a single syllable written as a consonnant-vowel-consonnant (CVC) in IPA. To avoid any ambiguity, the nomenclature also had to avoid collision with existing numerical terms, like six and ten, but for all languages for which documentation was found. As it was not enough nerdy, I came with the idea to mark  with diacritics primes and congruence with 2, 8, 12, 16 (optional and without intended phonological alteration though). If you are curious about it, you can look at [the algorithm](https://gitlab.com/psychoslave/isotopy/-/blob/master/tool/combinations/trigrams.rb) I used to build the nomenclature matching [the specification](https://gitlab.com/psychoslave/isotopy/-/issues/4).  

# Code to reproduce the bug 

``` ruby
#!/bin/env ruby
translated = 'aeiou'.tr('aeiou', 'ą̂ę̂į̂ǫ̂ų̂')
substitued = 'aeiou'.sub(/aeiou/, 'ą̂ę̂į̂ǫ̂ų̂')
puts `ruby -v`, translated == substitued, translated, substitued

# Actual result

```

On my box this outputs:

```
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux]
false
ą̂ę̂į
ą̂ę̂į̂ǫ̂ų̂
```

# Expected result


`tr` should return a congruent result: either it should fail for all signs with similar diacritics, or (preferably) return the specified Unicode glyph. That is, in the code above `translated == substitued` should be true.

# Remarks

I am not a Unicode Guru: maybe the missing signs generating the difference comes from the way they are encoded. I am aware that some glyphs come in duplicates, as solo code points vs. combining code point sequences. However I'm not able to precise if the above code use a mixture of both.



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread