Shebang mode fails on JRuby due to bash script launcher
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 42/100
調査の方向性
まず test/test_racc_command.rb、特に Racc::TestRaccCommand#test_executable_parser から始め、JRuby で失敗を再現する。shebang-mode parser scripts がどのように生成されるかを追跡し、non-env と env の shebang の挙動を比較する。affected JRuby configurations で executable parser test がパスすれば完了とする。
索引モデルが issue の本文から書いたものです。
説明
The "shebang" mode for the parser generator does not work properly on some configurations of JRuby due to the jruby command being a bash script.
This leads to the following error in CI (see #93):
Failure:
Racc::TestRaccCommand#test_executable_parser [/Users/headius/projects/racc/test/test_racc_command.rb:57]:
Expected false to be truthy.
In many installs of JRuby, including the default tarball you can download from https://jruby.org, the jruby command is actually implemented using a bash script. Due to stupidity in the design of shebangs on most *nix systems, this means that the jruby script cannot be used directly in the shebang line of a Ruby script, because bash will attempt to execute both the jruby command and the target script with bash.
This is the reason that RubyGems with binscripts are usually installed using so-called "env shebangs" on JRuby, like so:
#!/usr/bin/env jruby
It is possible to install the jruby-launcher gem which will install a native jruby binary that works with the non-env shebang. This may be an option to get the test to pass, but it may be better to use an env shebang when generating the parser script.
- 主要言語
- Yacc
- スター
- 569
- フォーク
- 95
- 平均マージ
- 12時間 11分
- マージ済み PR(30日)
- 1
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
ruby/racc のほかの issue
-
`unused variable` warning is reported when grammer definition includes `*` qualifier対応中かも @ydah が 259 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 15/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
似ている issue
-
area/ci bug difficulty/easy
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
ArtVsMark/Stepik-Python-Grader#1600 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
yunaremaia/agent-undo#66 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
Kc1t/alethe-agents#312 ·
メンテナーはふだん 3 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
メンテナーはふだん 1 日以内に返信
-
Test the finalProtocolVersion surprise and the explanations for unreachable and not-synced nodesオープンarea: verdicts complexity: trivial enhancement good first issue help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100