ArkScript-lang / ArkScript-lang/Ark
Failing to run when loading an incompatible plugin
- 主要语言
- C++
- 星标
- 728
- 派生
- 54
- 平均合并
- 4 小时 8 分钟
- 30 天内合并 PR
- 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