ArkScript-lang / ArkScript-lang/Ark

Failing to run when loading an incompatible plugin

Đang mở
#259 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
❗️ priority/medium 🔥 bug ark/virtual machine
Ngôn ngữ chính
C++
Star
728
Fork
54
Merge trung bình
4 giờ 8 phút
Pull request đã merge (30 ngày)
2

Mô tả

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.

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Bắt đầu trong mã VM triển khai chỉ thị để tải các plugin .dll, .so và .dynlib. Tái hiện việc tải một plugin debug bằng một Ark release, sau đó truy vết ngoại lệ chưa được bắt và xác định đường dẫn lỗi để một plugin không tương thích tạo ra lỗi rõ ràng và hủy thực thi, thay vì để lại các symbol chưa được định nghĩa cho giai đoạn sau.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
cpp
Lĩnh vực
compilers
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.