ArkScript-lang / ArkScript-lang/Ark

Failing to run when loading an incompatible plugin

Abierto
#259 0 comentarios 0 reacciones 0 asignados Ver en GitHub
❗️ priority/medium 🔥 bug ark/virtual machine
Lenguaje dominante
C++
Estrellas
728
Forks
54
Merge medio
4 h 8 min
PR fusionados (30 d)
2

Descripción

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.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza en el código de la VM que implementa la instrucción para cargar plugins .dll, .so y .dynlib. Reproduce la carga de un plugin debug con un Ark release, luego rastrea la excepción no capturada y define la ruta de fallo para que un plugin incompatible produzca un error claro y aborte la ejecución en lugar de dejar símbolos no definidos para más adelante.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
cpp
Área
compilers
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.