[ruby-core:118032] [Ruby master Bug#19631] module_eval does not propulate absolute_path for Kernel.caller_locations
From:
"Annih (Baptiste Courtois) via ruby-core" <ruby-core@...>
Date:
2024-05-27 15:41:51 UTC
List:
ruby-core #118032
Issue #19631 has been updated by Annih (Baptiste Courtois).
daveola (David Stellar) wrote:
> I am using module_eval and noticing that since ruby 3.2 the Kernel locations do not have absolute_path for any of the eval code, though the path is available. This is a regression since at least ruby 3.0 which still works.
>
> I am on 3.2.2:
I confirm I can reproduce on 3.1.3
----------------------------------------
Bug #19631: module_eval does not propulate absolute_path for Kernel.caller_locations
https://bugs.ruby-lang.org/issues/19631#change-108449
* Author: daveola (David Stellar)
* Status: Open
* ruby -v: ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN
----------------------------------------
I am using module_eval and noticing that since ruby 3.2 the Kernel locations do not have absolute_path for any of the eval code, though the path is available. This is a regression since at least ruby 3.0 which still works.
I am on 3.2.2, and here is some sample code:
```
class Script < Module
script = %q{
def self.locations
Kernel.caller_locations.each { |loc|
puts "LOCATION: #{loc}"
puts "ABSPATH: #{loc.absolute_path}"
puts "PATH: #{loc.path}"
}
end
self.locations
}
module_eval(script, "/this/is/my/path", 0)
end
```
The output for the code at the top of the caller locations (inside the module_eval) is:
```
LOCATION: /this/is/my/path:9:in '<class:Script>'
ABSPATH:
PATH: /this/is/my/path
```
But the absolute_path should have the correct path data as well
--
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-core.ml.ruby-lang.org/