[#118415] [Ruby master Bug#20601] Configuration flags are not properly propagated to assembler — "vo.x (Vit Ondruch) via ruby-core" <ruby-core@...>

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

7 messages 2024/07/02

[#118467] [Ruby master Feature#20610] Float::INFINITY as IO.select timeout argument — "akr (Akira Tanaka) via ruby-core" <ruby-core@...>

Issue #20610 has been reported by akr (Akira Tanaka).

8 messages 2024/07/07

[#118483] [Ruby master Bug#20614] Integer#size returns incorrect values on 64-bit Windows — surusek via ruby-core <ruby-core@...>

SXNzdWUgIzIwNjE0IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHN1cnVzZWsgKMWBdWthc3ogU3VyKS4N

10 messages 2024/07/08

[#118577] [Ruby master Bug#20631] Build failure with Xcode 16 beta and macOS 15 (Sequoia) Beta — "hsbt (Hiroshi SHIBATA) via ruby-core" <ruby-core@...>

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

9 messages 2024/07/12

[#118682] [Ruby master Misc#20652] Memory allocation for gsub has increased from Ruby 2.7 to 3.3 — "orisano (Nao Yonashiro) via ruby-core" <ruby-core@...>

Issue #20652 has been reported by orisano (Nao Yonashiro).

28 messages 2024/07/25

[ruby-core:118466] [Ruby master Feature#20609] Nested module namespace misses fallback to top level

From: "jeremyevans0 (Jeremy Evans) via ruby-core" <ruby-core@...>
Date: 2024-07-06 17:32:12 UTC
List: ruby-core #118466
Issue #20609 has been updated by jeremyevans0 (Jeremy Evans).


This is expected. When you do:

```ruby
module A::B
end
```

Understand that in Ruby, this is a general form of:

```ruby
module (expression)::B
end
```

Ruby resolves `expression` (e.g. constant lookup for `A`), then defines a constant `B` under it.  In your example:

```ruby
module X::Y
  module A::B # (`expression`::B) where expression is A
  end
end
```

The reference to `A` inside `X::Y` resolves to `::A` because `X::Y` does not define a constant named `A`.

The idea that the above code should define `X::Y::A::B` cannot really work, because Ruby would have no knolwedge of whether to define `X::Y::A` as a module or as a class.

----------------------------------------
Feature #20609: Nested module namespace misses fallback to top level
https://bugs.ruby-lang.org/issues/20609#change-108981

* Author: abdullah.arif (Abdullah Arif)
* Status: Open
----------------------------------------

Currently, Ruby falls back to the top-level constants if it cannot find the Module in the local scope. This can cause it to behave unintuitively.

```ruby
module A
  module B
    MY_CONST = 'defined in A::B'
  end
end

module X
end

module X::Y
  # Ruby treats A::B the same as ::A::B, because module X::Y::A is not defined. IMO this should raise a Name error or atleast a warning.
  module A::B
    # This was meant to be scoped to X::Y::A::B'
    MY_CONST = 'defined in X::Y::A::B'
  end
  puts(::A::B::MY_CONST) # => defined in X::Y::A::B
  puts(A::B::MY_CONST) # => defined in X::Y::A::B
end

puts(X::Y::A::B::MY_CONST) # uninitialized constant X::Y::A (NameError)
```

I think Ruby should raise an error or atleast a clear warning explaining the module it is using has different nesting than what the coder might expect.



-- 
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/lists/ruby-core.ml.ruby-lang.org/


In This Thread

Prev Next