Failing to run when loading an incompatible plugin

Aperta
#259 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
cpp
Ambito
compilers

Direzione di ricerca

Inizia dal codice della VM che implementa l’istruzione per il caricamento dei plugin .dll, .so e .dynlib. Riproduci il caricamento di un plugin debug con un Ark release, quindi traccia l’eccezione non gestita e definisci il percorso di errore in modo che un plugin incompatibile produca un errore chiaro e interrompa l’esecuzione invece di lasciare simboli non definiti per dopo.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

❗️ priority/medium 🔥 bug ark/virtual machine

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.

Lingua principale
C++
Stelle
729
Fork
54
Merge medio
4h 8m
PR unite (30g)
2

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di ArkScript-lang/Ark

Tutte le issue di ArkScript-lang/Ark

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.