0x2c7/ruby_jard

[BUG] Control command is empty

jonatas opened this issue · 3 comments

Hello again @nguyenquangminh0711 and thank you for bringing this amazing tool open source ❤️

I was amazed by the debugging UI that you created and tried my first session in my personal project getting into some insights about recursive stack:

Screen Shot 2020-10-06 at 08 51 07

Describe the bug

Just following the instructions.

jard >>
--- Error ---
Internal error from Jard. I'm sorry to mess up your debugging experience.
It would be great if you can submit an issue in https://github.com/nguyenquangminh0711/ruby_jard/issues

To Reproduce

I was trying to use it with my gem ffast. Check my branch:

git clone  https://github.com/jonatas/fast.git
git co ruby-jard-debugging

Then bundle install then try to run fast directly from the command line provided with the gem:

bin/fast '(def :match? (args (arg node)) ...)' lib/fast.rb

When I try the first F7 it fails and breaks the process.

jard >>
--- Error ---
Internal error from Jard. I'm sorry to mess up your debugging experience.
It would be great if you can submit an issue in https://github.com/nguyenquangminh0711/ruby_jard/issues

Control command is empty
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ruby_jard-0.3.1/lib/ruby_jard/control_flow.rb:33:in `validate!'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ruby_jard-0.3.1/lib/ruby_jard/control_flow.rb:28:in `initialize'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ruby_jard-0.3.1/lib/ruby_jard/control_flow.rb:53:in `new'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ruby_jard-0.3.1/lib/ruby_jard/control_flow.rb:53:in `dispatch'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ruby_jard-0.3.1/lib/ruby_jard/repl_proxy.rb:180:in `rescue in repl'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ruby_jard-0.3.1/lib/ruby_jard/repl_proxy.rb:177:in `repl'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ruby_jard-0.3.1/lib/ruby_jard/repl_processor.rb:71:in `block in process_commands'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ruby_jard-0.3.1/lib/ruby_jard/control_flow.rb:61:in `block in listen'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ruby_jard-0.3.1/lib/ruby_jard/control_flow.rb:60:in `catch'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ruby_jard-0.3.1/lib/ruby_jard/control_flow.rb:60:in `listen'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ruby_jard-0.3.1/lib/ruby_jard/repl_processor.rb:70:in `process_commands'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ruby_jard-0.3.1/lib/ruby_jard/repl_processor.rb:59:in `block (2 levels) in process_commands_with_lock'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ruby_jard-0.3.1/lib/ruby_jard/session.rb:171:in `block in lock'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ruby_jard-0.3.1/lib/ruby_jard/session.rb:170:in `synchronize'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ruby_jard-0.3.1/lib/ruby_jard/session.rb:170:in `lock'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/2.6.0/forwardable.rb:230:in `lock'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ruby_jard-0.3.1/lib/ruby_jard/repl_processor.rb:52:in `block in process_commands_with_lock'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/byebug-11.1.3/lib/byebug/helpers/eval.rb:94:in `allowing_other_threads'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ruby_jard-0.3.1/lib/ruby_jard/repl_processor.rb:51:in `process_commands_with_lock'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/ruby_jard-0.3.1/lib/ruby_jard/repl_processor.rb:37:in `at_line'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/byebug-11.1.3/lib/byebug/context.rb:98:in `at_line'
/Users/jonatasdp/code/fast/lib/fast.rb:420:in `match_recursive'
/Users/jonatasdp/code/fast/lib/fast.rb:428:in `block in match_recursive'
/Users/jonatasdp/code/fast/lib/fast.rb:425:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:425:in `each_with_index'
/Users/jonatasdp/code/fast/lib/fast.rb:425:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:425:in `all?'
/Users/jonatasdp/code/fast/lib/fast.rb:425:in `match_recursive'
/Users/jonatasdp/code/fast/lib/fast.rb:416:in `match?'
/Users/jonatasdp/code/fast/lib/fast.rb:720:in `block in match_tail?'
/Users/jonatasdp/code/fast/lib/fast.rb:718:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:718:in `each_with_index'
/Users/jonatasdp/code/fast/lib/fast.rb:718:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:718:in `all?'
/Users/jonatasdp/code/fast/lib/fast.rb:718:in `match_tail?'
/Users/jonatasdp/code/fast/lib/fast.rb:713:in `match?'
/Users/jonatasdp/code/fast/lib/fast.rb:164:in `match?'
/Users/jonatasdp/code/fast/lib/fast.rb:241:in `search'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `block in search'
0x2c7 commented

Hi @jonatas, really thanks for your report, and detailed reproduction. However, in my machine, I the debugging in your gem is smooth. I didn't meet the error you describe.

Screenshot from 2020-10-06 23-29-47

So, I suspect that there maybe a race condition between Jard's internal threads when listening to the keyboard events, or there is a difference of terminal in my machine. I am trying to prevent the race condition in the REPL, not sure if it works. Could you try again by placing this in Gemfile (gemspec supports semantic version only?):

# frozen_string_literal: true

source 'https://rubygems.org'

# Specify your gem's dependencies in fast.gemspec
gemspec
gem 'ruby_jard', git: 'https://github.com/nguyenquangminh0711/ruby_jard', ref: 'bug/control-command-is-empty'

Btw, the ? character in your screenshot is actually . It's weird that your emulator supports , but not

Now I got an infinite loop generating new consoles and it happened after resizing the window too.


jard >>
jard >>
jard >>
jard >>
jard >>
jard >>
jard >>
jard >>
jard >>
jard >>
jard >>
jard >>
jard >>
jard >>
jard >>
jard >>
jard >>
jard >>
jard >>
jard >>
jard >>
--- Error ---
Internal error from Jard. I'm sorry to mess up your debugging experience.
It would be great if you can submit an issue in https://github.com/nguyenquangminh0711/ruby_jard/issues

Resize event
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_proxy.rb:146:in `raise'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_proxy.rb:146:in `block in initialize'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_proxy.rb:179:in `sleep'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_proxy.rb:179:in `rescue in repl'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_proxy.rb:177:in `repl'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:104:in `block in process_commands'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/control_flow.rb:62:in `block in listen'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/control_flow.rb:61:in `catch'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/control_flow.rb:61:in `listen'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:103:in `process_commands'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:197:in `handle_list_command'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:120:in `handle_flow'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:107:in `process_commands'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:197:in `handle_list_command'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:120:in `handle_flow'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:107:in `process_commands'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:92:in `block (2 levels) in process_commands_with_lock'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/session.rb:163:in `block in lock'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/session.rb:162:in `synchronize'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/session.rb:162:in `lock'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:74:in `block in process_commands_with_lock'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/byebug-11.1.3/lib/byebug/helpers/eval.rb:94:in `allowing_other_threads'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:73:in `process_commands_with_lock'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:59:in `at_line'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/byebug-11.1.3/lib/byebug/context.rb:98:in `at_line'
/Users/jonatasdp/code/fast/lib/fast.rb:428:in `block in match_recursive'
/Users/jonatasdp/code/fast/lib/fast.rb:425:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:425:in `each_with_index'
/Users/jonatasdp/code/fast/lib/fast.rb:425:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:425:in `all?'
/Users/jonatasdp/code/fast/lib/fast.rb:425:in `match_recursive'
/Users/jonatasdp/code/fast/lib/fast.rb:416:in `match?'
/Users/jonatasdp/code/fast/lib/fast.rb:720:in `block in match_tail?'
/Users/jonatasdp/code/fast/lib/fast.rb:718:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:718:in `each_with_index'
/Users/jonatasdp/code/fast/lib/fast.rb:718:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:718:in `all?'
/Users/jonatasdp/code/fast/lib/fast.rb:718:in `match_tail?'
/Users/jonatasdp/code/fast/lib/fast.rb:713:in `match?'
/Users/jonatasdp/code/fast/lib/fast.rb:164:in `match?'
/Users/jonatasdp/code/fast/lib/fast.rb:241:in `search'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `block in search'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:141:in `block in each_child_node'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each_child_node'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `flat_map'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `search'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `block in search'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:141:in `block in each_child_node'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each_child_node'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `flat_map'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `search'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `block in search'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:141:in `block in each_child_node'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each_child_node'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `flat_map'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `search'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `block in search'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:141:in `block in each_child_node'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each_child_node'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `flat_map'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `search'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `block in search'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:141:in `block in each_child_node'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each_child_node'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `flat_map'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `search'
/Users/jonatasdp/code/fast/lib/fast.rb:173:in `search_file'
/Users/jonatasdp/code/fast/lib/fast.rb:201:in `block in build_grouped_search'
/Users/jonatasdp/code/fast/lib/fast.rb:222:in `map'
/Users/jonatasdp/code/fast/lib/fast.rb:222:in `group_results'
/Users/jonatasdp/code/fast/lib/fast.rb:181:in `search_all'
/Users/jonatasdp/code/fast/lib/fast/cli.rb:183:in `public_send'
/Users/jonatasdp/code/fast/lib/fast/cli.rb:183:in `execute_search'
/Users/jonatasdp/code/fast/lib/fast/cli.rb:172:in `search'
/Users/jonatasdp/code/fast/lib/fast/cli.rb:155:in `run!'
/Users/jonatasdp/code/fast/lib/fast/cli.rb:145:in `run!'
bin/fast:9:in `<top (required)>'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `load'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `kernel_load'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:28:in `run'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:476:in `exec'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor.rb:399:in `dispatch'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:30:in `dispatch'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/base.rb:476:in `start'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:24:in `start'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/exe/bundle:46:in `block in <top (required)>'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/friendly_errors.rb:123:in `with_friendly_errors'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/exe/bundle:34:in `<top (required)>'
/Users/jonatasdp/.rbenv/versions/2.6.5/bin/bundle:23:in `load'
/Users/jonatasdp/.rbenv/versions/2.6.5/bin/bundle:23:in `<main>'
-------------
--- Error ---
Internal error from Jard. I'm sorry to mess up your debugging experience.
It would be great if you can submit an issue in https://github.com/nguyenquangminh0711/ruby_jard/issues

Resize event
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_proxy.rb:146:in `raise'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_proxy.rb:146:in `block in initialize'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_proxy.rb:179:in `sleep'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_proxy.rb:179:in `rescue in repl'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_proxy.rb:177:in `repl'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:104:in `block in process_commands'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/control_flow.rb:62:in `block in listen'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/control_flow.rb:61:in `catch'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/control_flow.rb:61:in `listen'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:103:in `process_commands'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:197:in `handle_list_command'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:120:in `handle_flow'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:107:in `process_commands'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:197:in `handle_list_command'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:120:in `handle_flow'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:107:in `process_commands'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:92:in `block (2 levels) in process_commands_with_lock'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/session.rb:163:in `block in lock'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/session.rb:162:in `synchronize'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/session.rb:162:in `lock'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:74:in `block in process_commands_with_lock'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/byebug-11.1.3/lib/byebug/helpers/eval.rb:94:in `allowing_other_threads'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:73:in `process_commands_with_lock'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_processor.rb:59:in `at_line'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/byebug-11.1.3/lib/byebug/context.rb:98:in `at_line'
/Users/jonatasdp/code/fast/lib/fast.rb:428:in `block in match_recursive'
/Users/jonatasdp/code/fast/lib/fast.rb:425:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:425:in `each_with_index'
/Users/jonatasdp/code/fast/lib/fast.rb:425:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:425:in `all?'
/Users/jonatasdp/code/fast/lib/fast.rb:425:in `match_recursive'
/Users/jonatasdp/code/fast/lib/fast.rb:416:in `match?'
/Users/jonatasdp/code/fast/lib/fast.rb:720:in `block in match_tail?'
/Users/jonatasdp/code/fast/lib/fast.rb:718:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:718:in `each_with_index'
/Users/jonatasdp/code/fast/lib/fast.rb:718:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:718:in `all?'
/Users/jonatasdp/code/fast/lib/fast.rb:718:in `match_tail?'
/Users/jonatasdp/code/fast/lib/fast.rb:713:in `match?'
/Users/jonatasdp/code/fast/lib/fast.rb:164:in `match?'
/Users/jonatasdp/code/fast/lib/fast.rb:241:in `search'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `block in search'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:141:in `block in each_child_node'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each_child_node'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `flat_map'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `search'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `block in search'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:141:in `block in each_child_node'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each_child_node'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `flat_map'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `search'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `block in search'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:141:in `block in each_child_node'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each_child_node'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `flat_map'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `search'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `block in search'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:141:in `block in each_child_node'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each_child_node'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `flat_map'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `search'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `block in search'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:141:in `block in each_child_node'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/astrolabe-1.3.1/lib/astrolabe/node.rb:139:in `each_child_node'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `each'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `flat_map'
/Users/jonatasdp/code/fast/lib/fast.rb:246:in `search'
/Users/jonatasdp/code/fast/lib/fast.rb:173:in `search_file'
/Users/jonatasdp/code/fast/lib/fast.rb:201:in `block in build_grouped_search'
/Users/jonatasdp/code/fast/lib/fast.rb:222:in `map'
/Users/jonatasdp/code/fast/lib/fast.rb:222:in `group_results'
/Users/jonatasdp/code/fast/lib/fast.rb:181:in `search_all'
/Users/jonatasdp/code/fast/lib/fast/cli.rb:183:in `public_send'
/Users/jonatasdp/code/fast/lib/fast/cli.rb:183:in `execute_search'
/Users/jonatasdp/code/fast/lib/fast/cli.rb:172:in `search'
/Users/jonatasdp/code/fast/lib/fast/cli.rb:155:in `run!'
/Users/jonatasdp/code/fast/lib/fast/cli.rb:145:in `run!'
bin/fast:9:in `<top (required)>'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `load'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `kernel_load'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:28:in `run'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:476:in `exec'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor.rb:399:in `dispatch'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:30:in `dispatch'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/base.rb:476:in `start'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/cli.rb:24:in `start'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/exe/bundle:46:in `block in <top (required)>'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/lib/bundler/friendly_errors.rb:123:in `with_friendly_errors'
/Users/jonatasdp/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bundler-2.1.4/exe/bundle:34:in `<top (required)>'
/Users/jonatasdp/.rbenv/versions/2.6.5/bin/bundle:23:in `load'
/Users/jonatasdp/.rbenv/versions/2.6.5/bin/bundle:23:in `<main>'
-------------
--- Error ---
Internal error from Jard. I'm sorry to mess up your debugging experience.
It would be great if you can submit an issue in https://github.com/nguyenquangminh0711/ruby_jard/issues

Resize event
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_proxy.rb:146:in `raise'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_proxy.rb:146:in `block in initialize'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_proxy.rb:179:in `sleep'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_proxy.rb:179:in `rescue in repl'
/Users/jonatasdp/code/ruby_jard/lib/ruby_jard/repl_proxy.rb:177:in `repl'
0x2c7 commented

@jonatas This Resize event error is another bug, in which I fix in #72, and already merged into master. I still cannot reproduce original Control command is empty error though. That error happens when the input stream is broken, or EOF. I still cannot understand why it is broken unfortunately. Anyway, I added another attempt to validate and reconnect streams when they are broken, could you please try again with:

gem 'ruby_jard', git: 'https://github.com/nguyenquangminh0711/ruby_jard', ref: 'master'

If it's still the same, or there is another weird behavior, please let me know some more information about your OS and terminal emulator.