ArkScript-lang / ArkScript-lang/Ark

Failing to run when loading an incompatible plugin

Ouverte
#259 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
❗️ priority/medium 🔥 bug ark/virtual machine
Langage dominant
C++
Étoiles
728
Forks
54
Merge moyen
4 h 8 min
PR mergées (30 j)
2

Description

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.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez dans le code de la VM qui implémente l’instruction de chargement des plugins .dll, .so et .dynlib. Reproduisez le chargement d’un plugin debug avec un Ark release, puis suivez l’exception non interceptée et définissez le chemin d’échec afin qu’un plugin incompatible produise une erreur claire et interrompe l’exécution au lieu de laisser des symboles non définis pour plus tard.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
cpp
Domaine
compilers
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.