[#86520] [Ruby trunk Bug#14681] `syswrite': stream closed in another thread (IOError) — samuel@...
Issue #14681 has been reported by ioquatix (Samuel Williams).
3 messages
2018/04/12
[#86755] [Ruby trunk Feature#14723] [WIP] sleepy GC — normalperson@...
Issue #14723 has been reported by normalperson (Eric Wong).
6 messages
2018/04/29
[ruby-core:86778] [Ruby trunk Bug#14702] On Ruby 2.5.1, tracepoint isn't working on the file that is loaded by load_iseq
From:
makoto_tajitsu@...
Date:
2018-04-30 16:53:36 UTC
List:
ruby-core #86778
Issue #14702 has been updated by makoto_tajitsu@hotmail.co.jp (Makoto Tajitsu).
Description updated
How is the issue?
In addition to above, I confirm the issue in following example that does not use 3rd party gem.
```ruby
#!/usr/bin/env ruby
# Write ruby file
File.write('./loaded_file.rb', 'puts :hello')
# load file and write iseq file
iseq = RubyVM::InstructionSequence.compile_file('./loaded_file.rb')
File.write('./loaded_file.yarb', iseq.to_binary)
# define load_iseq
class RubyVM::InstructionSequence
def self.load_iseq(fname)
b = File.read('./loaded_file.yarb')
RubyVM::InstructionSequence.load_from_binary(b)
end
end
TracePoint.trace(:line) do |tp|
puts "file: #{tp.path}, line: #{tp.lineno}" if tp.path =~ /loaded_file/
end
load './loaded_file.rb' # => on ruby 2.5.0 and 2.5.1, no tracepoint callback is.
```
----------------------------------------
Bug #14702: On Ruby 2.5.1, tracepoint isn't working on the file that is loaded by load_iseq
https://bugs.ruby-lang.org/issues/14702#change-71736
* Author: makoto_tajitsu@hotmail.co.jp (Makoto Tajitsu)
* Status: Open
* Priority: Normal
* Assignee:
* Target version:
* ruby -v: ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin16]
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
On Ruby 2.5.1, when loading file with RubyVM::InstructionSequence.load_from_binary, TracePoint callback event is not working on loaded file.
## Steps to reproduce
Ruby version.
```
$ ruby -v
# => ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin16]
```
The example with `yomikomu` gem which is simply used `load_iseq` and `load_from_binary` method to load file quickly is following.
```ruby
$ YOMIKOMU_AUTO_COMPILE=true bundle exec irb
> TracePoint.trace(:line) { |tp| puts tp.lineno if tp.path == '/path/to/somefile.rb' }
# => #<TracePoint:enabled>
> load '/path/to/somefile.rb'
# 3
# 4
# ...
> require 'yomikomu'
> load '/path/to/somefile.rb'
# no tracepoint callback for line event
```
## Result of reproduce process
tracepoint callback isn't called on loaded file by using load_iseq and load_from_binary.
## Expected result and the reason why you expect
tracepoint callback should be called for any loaded file to debug with debugguer(e.g. byebug).
On Ruby 2.4.3, this example is working correctly, so tracepoint callback is called and output lineno to stdout when loaded file after `require 'yomikomu'`.
--
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>