Skip to content
lalBi94 edited this page Nov 11, 2026 · 5 revisions

FAQ et dépannage

L’application dit que les dialogues de fichiers sont indisponibles

Les imports/exports nécessitent la fenêtre Neutralinojs, pas pnpm dev:web. Lancez l’application desktop (pnpm dev ou pnpm desktop:start) ou installez le paquet Windows.

Windows affiche un avertissement SmartScreen

Le paquet peut être non signé : aucun certificat de signature n’est fourni dans le dépôt. Voir Distribution. Ne distribuez pas un paquet non signé comme version officielle pour un établissement.

WebView2 est absent

Installez le Microsoft Edge WebView2 Runtime (Evergreen) depuis Microsoft, puis relancez Sapphire 3. L’installateur affiche un avertissement si le runtime manque.

Un exercice ne s’ouvre pas / s’ouvre en édition normale

Trois causes possibles :

  1. Mauvaise version : le mode exercice n’existe que dans le build actuel, pas dans les anciennes releases.
  2. Fichier sans exercice : ouvrez le .sp3 dans un éditeur de texte et cherchez "exercise". S’il est absent, l’exercice n’a pas été enregistré après sa création.
  3. Solution laissée dans le fichier : faites Reset to starter avant d’enregistrer le fichier élève.

Même avec la bonne version, le canvas reste éditable : il n’y a pas encore de mode élève verrouillé. Le panneau Exercise doit s’ouvrir automatiquement.

Le bouton Edit exercise est remplacé par Unlock to edit

L’exercice est protégé par un mot de passe. Saisissez-le pour modifier les consignes ou les tests. Le déverrouillage vaut pour la session.

Le mot de passe est une empreinte PBKDF2-SHA256 ; il ne chiffre pas le .sp3. Le fichier reste modifiable dans un éditeur de texte.

Save solution n’apparaît pas

Il n’apparaît qu’après un Check dont tous les tests passent. Relancez Check après avoir corrigé le programme.

J’ai perdu mon travail

  • Un .sp3 associé est autosauvegardé après chaque modification.
  • Un document neuf non vierge est protégé par sapphire3-recovery.sp3 dans le répertoire de données persistant, restauré au lancement.
  • Les enregistrements directs conservent jusqu’à trois .backup-N.sp3.

Un import est refusé

Le fichier peut être :

  • une version future ou malformée ;
  • un JSON avec doublons d’identifiants, géométrie invalide ou carte incohérente ;
  • un fichier de plus de 20 Mio.

Les workspaces versions 1 et 2 sont migrés à la lecture. L’import est validé avant remplacement ; en cas d’erreur, le document courant reste intact.

Undo ne restaure pas un déplacement ou une annotation

Undo/redo couvre les mutations structurelles (insertion, suppression, édition, transferts). Les déplacements, redimensionnements, textes d’annotation et pliage ne créent pas d’étape dédiée.

Les widgets ne se transpilent pas

Screen, Gauge, ProgressBar, BarChart, Heatmap, LED, RGB LED, XY plot, Oscilloscope, les boutons, les entrées typées et les sélecteurs RGB/RGBA reposent sur des modules cachés et des opérations natives. Leur présence bloque explicitement la transpilation (TRANSPILE_*_UNSUPPORTED). Ils restent simulables. Les widgets de plugin sont des cartes de présentation sans module source ; leurs opérations natives suivent les émetteurs du plugin et le C les refuse.

Les plugins sont-ils exécutés comme du code tiers ?

Non. Un plugin est un manifeste JSON déclaratif .sp3plugin : widgets, opérations natives typées et composites de niveau A. Aucun eval, new Function, import de code tiers, marketplace ou backend distant n’est utilisé. Les opérations natives sont revalidées dans le run borné et le live ; les permissions fichiers, réseau et API native sont déclarées mais refusées. Voir Plugins.

Les classes sont-elles transpilées ?

Oui, en JavaScript et Python : les classes sont simulables avec leurs membres public/private, new et this, et le code généré conserve les champs, le constructeur et les méthodes. Le C expérimental les refuse (TRANSPILE_C_UNSUPPORTED). Il n'y a ni héritage ni polymorphisme.

Quelle différence entre Run live et Run borné ?

Run live est le mode par défaut : exécution coopérative sans budget total, Pause/Reprise/Stop, vitesse 1 à 100 et entrées appliquées entre deux frames. Run borné précalcule une trace finie avec un budget de pas, utilisée par le debug et les contrats. Le dashboard exporté peut exécuter le vrai live ou rejouer une trace.

Le site public est-il traduit ?

Oui. La vitrine reprend les huit langues de l’application, avec l’anglais par défaut. Le choix est mémorisé dans le navigateur et l’arabe passe la page en RTL. Les captures restent en anglais ; les pages techniques de documentation restent en français.

C, C++ et Java : quelles cibles sont disponibles ?

JavaScript et Python sont stables ; la cible C est expérimentale et volontairement restreinte (primitives numériques, booléens, chaînes, fonctions, contrôle, pointeurs, pointeurs de fonction nommés, lambdas sans capture et Print). C++ et Java restent visibles dans le catalogue mais indisponibles.

Où sont mes fichiers et préférences ?

  • Un workspace est un dossier choisi par vous, avec workspace.sp3, images/ et backups/.
  • Langue, thème, chemins récents, dernier workspace et raccourcis sont dans le répertoire de données persistant de l’application.
  • La copie de récupération y est aussi. Rien de tout cela n’est dans le dossier d’installation.

Les tests d’exercice sont visibles dans le JSON

Oui. C’est un outil d’entraînement, pas un examen surveillé. Le verrou protège l’interface, pas le fichier.

Combien de tests ?

770 tests Node et Python. Voir Architecture.

Clone this wiki locally