ArkScript-lang / ArkScript-lang/Ark
Failing to run when loading an incompatible plugin
- 主要言語
- C++
- スター
- 728
- フォーク
- 54
- 平均マージ
- 4時間 8分
- マージ済み PR(30日)
- 2
説明
In the VM, we have an instruction to load plugins (.dll, .so and .dynlib, depending on the OS), working perfectly when Ark *and* the plugin have been compiled with the same compiler *and* the same compilation options (both debug or both release).
A problem occurs when we use a debug plugin with a release ark: ark silently fails to load it, throwing an exception we aren't catching / interpreting as "bad plugin".
This should be investigated to be able to tell the user that the plugin couldn't be loaded, and we should abort execution (no plugin loaded => undefined symbols later on, coming from the plugin we didn't load, thus can not execute: better to abort to give a clear error message).
This problem will mostly be encountered by our contributors and development team, as our end users are only being provided the final binaries, which we should test before publishing. When developing we sometimes forget to recompile everything, and it's really annoying because we start searching for a bug in the VM while it's just a target to recompile.
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
.dll、.so、.dynlibプラグインをロードする命令を実装しているVMコードから始めます。release Arkでdebugプラグインをロードする状況を再現し、捕捉されない例外を追跡して、互換性のないプラグインが明確なエラーを生成して実行を中止するように失敗経路を定義します。後で未定義シンボルを残すことがないようにします。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- cpp
- 領域
- compilers
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100