ArkScript-lang / ArkScript-lang/Ark

Failing to run when loading an incompatible plugin

オープン
#259 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
❗️ priority/medium 🔥 bug ark/virtual machine
主要言語
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

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。