[#115565] [Ruby master Feature#20034] [mkmf] Support creating a compilation database for C language tooling — "pounce (Calvin Lee) via ruby-core" <ruby-core@...>

Issue #20034 has been reported by pounce (Calvin Lee).

7 messages 2023/12/01

[#115595] [Ruby master Bug#20043] `defined?` checks for method existence but only sometimes — "tenderlovemaking (Aaron Patterson) via ruby-core" <ruby-core@...>

Issue #20043 has been reported by tenderlovemaking (Aaron Patterson).

10 messages 2023/12/05

[#115598] [Ruby master Bug#20044] Add runtime flag and environment variable for prism — "HParker (Adam Hess) via ruby-core" <ruby-core@...>

Issue #20044 has been reported by HParker (Adam Hess).

7 messages 2023/12/06

[#115647] [Ruby master Bug#20048] UDPSocket#remote_address spec errors — "vo.x (Vit Ondruch) via ruby-core" <ruby-core@...>

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

9 messages 2023/12/07

[#115648] [Ruby master Feature#20049] Destructive drop_while for Array and Hash — "chucke (Tiago Cardoso) via ruby-core" <ruby-core@...>

Issue #20049 has been reported by chucke (Tiago Cardoso).

8 messages 2023/12/07

[#115649] [Ruby master Bug#20050] Segfault on Ruby 3.2.2 on x86_64 Darwin 20 (maybe in Array#hash) — "martinemde (Martin Emde) via ruby-core" <ruby-core@...>

Issue #20050 has been reported by martinemde (Martin Emde).

11 messages 2023/12/07

[#115671] [Ruby master Feature#20054] Replace the use of `def` in endless method definitions with a new sigil — "sawa (Tsuyoshi Sawada) via ruby-core" <ruby-core@...>

Issue #20054 has been reported by sawa (Tsuyoshi Sawada).

7 messages 2023/12/09

[#115682] [Ruby master Misc#20056] Dir#chdir inconsistency with Dir.chdir — "zverok (Victor Shepelev) via ruby-core" <ruby-core@...>

Issue #20056 has been reported by zverok (Victor Shepelev).

12 messages 2023/12/10

[#115684] [Ruby master Feature#20057] Change behaviour of rb_register_postponed_job for Ruby 3.3 — "kjtsanaktsidis (KJ Tsanaktsidis) via ruby-core" <ruby-core@...>

Issue #20057 has been reported by kjtsanaktsidis (KJ Tsanaktsidis).

8 messages 2023/12/11

[#115688] [Ruby master Bug#20058] `warning: bigdecimal/util is found in bigdecimal` even if the gem spec has the `add_dependency "bigdecimal"` entry — "yahonda (Yasuo Honda) via ruby-core" <ruby-core@...>

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

10 messages 2023/12/11

[#115749] [Ruby master Feature#20066] Reduce Implicit Array/Hash Allocations For Method Calls Involving Splats — "jeremyevans0 (Jeremy Evans) via ruby-core" <ruby-core@...>

Issue #20066 has been reported by jeremyevans0 (Jeremy Evans).

19 messages 2023/12/15

[#115764] [Ruby master Feature#20069] Buffer class in stdlib — "pynix (Pynix wang) via ruby-core" <ruby-core@...>

Issue #20069 has been reported by pynix (Pynix wang).

9 messages 2023/12/16

[#115830] [Ruby master Misc#20075] DevMeeting-2024-01-17 — "mame (Yusuke Endoh) via ruby-core" <ruby-core@...>

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

9 messages 2023/12/21

[#115831] [Ruby master Bug#20076] M:N scheduler crashes on macOS with RUBY_MN_THREADS=1 — "hsbt (Hiroshi SHIBATA) via ruby-core" <ruby-core@...>

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

7 messages 2023/12/21

[#115847] [Ruby master Bug#20079] alexandria testsuite began to segfault recently — "mtasaka (Mamoru TASAKA) via ruby-core" <ruby-core@...>

Issue #20079 has been reported by mtasaka (Mamoru TASAKA).

15 messages 2023/12/22

[#115864] [Ruby master Feature#20080] Implement #begin_and_end method on Range — "stuyam (Stuart Yamartino) via ruby-core" <ruby-core@...>

Issue #20080 has been reported by stuyam (Stuart Yamartino).

17 messages 2023/12/22

[#115892] [Ruby master Bug#20085] Fiber.new{ }.resume causes Segmentation fault for Ruby 3.3.0 on aarch64-linux — "oleksii (Oleksii Leonov) via ruby-core" <ruby-core@...>

Issue #20085 has been reported by oleksii (Oleksii Leonov).

27 messages 2023/12/25

[#115912] [Ruby master Bug#20090] Anonymous arguments are now syntax errors in unambiguous cases — "willcosgrove (Will Cosgrove) via ruby-core" <ruby-core@...>

Issue #20090 has been reported by willcosgrove (Will Cosgrove).

8 messages 2023/12/26

[#115919] [Ruby master Feature#20093] Syntax or keyword to reopen existing classs/modules, never to define new classs/modules — "tagomoris (Satoshi Tagomori) via ruby-core" <ruby-core@...>

Issue #20093 has been reported by tagomoris (Satoshi Tagomori).

11 messages 2023/12/27

[#115923] [Ruby master Bug#20094] Inline while loop behavior changed unexpectedly in 3.3.0 — "sisyphus_cg (Sisyphus CG) via ruby-core" <ruby-core@...>

Issue #20094 has been reported by sisyphus_cg (Sisyphus CG).

12 messages 2023/12/27

[#115925] [Ruby master Bug#20096] Ruby 3.2.2 win32/registry: Junk appended to Windows Registry String Value — "jay4rubydev (Jay M) via ruby-core" <ruby-core@...>

SXNzdWUgIzIwMDk2IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGpheTRydWJ5ZGV2IChKYXkgTSkuDQ0K

8 messages 2023/12/27

[ruby-core:115584] [Ruby master Bug#20025] Parsing identifiers/constants is case-folding dependent

From: duerst via ruby-core <ruby-core@...>
Date: 2023-12-04 08:55:58 UTC
List: ruby-core #115584
Issue #20025 has been updated by duerst (Martin D=FCrst).





@nobu (Nobuyoshi Nakada) wrote in #note-3:



> The reason is that micro sign is folded to small Mu in Windows-1253.



The micro sign is indeed folded to small mu in windows-1253. The reason is =
(most probably) that it is also folded this way in Unicode; see https://www=
.unicode.org/Public/UCD/latest/ucd/CaseFolding.txt. The actual data for thi=
s is the `'\354'` at https://github.com/ruby/ruby/blob/85bc80a51be0ceedcc57=
e7b6b779e6f8f885859e/enc/windows_1253.c#L67.



P.S.: I really feel like proposing to change all these octal constants to h=
exadecimal, in order to bring them into the current century and align them =
with all the other data surrounding character encoding. But I guess that sh=
ould be a separate issue.







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

Bug #20025: Parsing identifiers/constants is case-folding dependent

https://bugs.ruby-lang.org/issues/20025#change-105516



* Author: kddnewton (Kevin Newton)

* Status: Closed

* Priority: Normal

* Backport: 3.0: REQUIRED, 3.1: REQUIRED, 3.2: REQUIRED

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

When CRuby parses identifiers, it is encoding-dependent. Once the identifie=
r is found, it determines if it starts with a uppercase or lowercase codepo=
int. This determines if the identifier is a constant or not.



The function is charge of this is `rb_sym_constant_char_p`. For non-unicode=
 encodings where the leading byte has the top-bit set, this relies on onigm=
o's `mbc_case_fold` to determine if it is a constant or not (as opposed to =
`is_code_ctype`).



This works for almost every single codepoint in every encoding, but has one=
 very weird edge case. In the Windows-1253 encoding for the 0xB5 byte, it's=
 the micro sign. The micro sign, when case folded, becomes the uppercase mu=
 character, and then the lowercase mu character, or 0xEC. This means that e=
ven though 0xB5 reports itself as being a lowercase codepoint, it gets pars=
ed as a constant. This example might make this more clear:



``` ruby

class Context < BasicObject

  def method_missing(name, *) =3D :identifier

  def self.const_missing(name) =3D :constant

end



encoding =3D Encoding::Windows_1253

character =3D 0xB5.chr(encoding)



source =3D "# encoding: #{encoding.name}\n#{character}\n"

result =3D Context.new.instance_eval(source)



puts "#{encoding.name} encoding of 0x#{character.ord.to_s(16).upcase}"

puts "  [[:alpha:]] =3D> #{character.match?(/[[:alpha:]]/)}"

puts "  [[:alnum:]] =3D> #{character.match?(/[[:alnum:]]/)}"

puts "  [[:upper:]] =3D> #{character.match?(/[[:upper:]]/)}"

puts "  [[:lower:]] =3D> #{character.match?(/[[:lower:]]/)}"

puts "  parsed as #{result}"

```



this results in the output of:



```

Windows-1253 encoding of 0xB5

  [[:alpha:]] =3D> true

  [[:alnum:]] =3D> true

  [[:upper:]] =3D> false

  [[:lower:]] =3D> true

  parsed as constant

```



To be clear, I don't think the case-folding is incorrect here (and @duerst =
confirms that it is correct). I believe instead that it is incorrect to use=
 case-folding here to determine if a codepoint is uppercase or not.



Note that this only impacts this one codepoint in this one encoding, so I d=
on't believe this is actually a large-scale problem. But I found it surpris=
ing, and think we should change it.







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