Repository navigation
Simulation et debug
Run live est le mode par défaut. Un interpréteur coopératif exécute le programme par tranches, sans budget total, et rend la main au pilote à chaque tranche de 400 pas ou à screenPresent.
- Aucun lancement automatique n’a lieu.
- Le point d’entrée doit être sans paramètre.
- Pause/Reprise/Stop agissent sur la session en cours ; Stop réinitialise la session.
- Le curseur de vitesse va de 1 à 100 et s’applique immédiatement, sans redémarrer le worker.
- Les entrées des boutons sont appliquées entre deux frames, sans relancer le programme.
- Les boucles déclarant
SP3_LIVErestent continues en live et restent finies en exécution bornée.
Le Run borné reste disponible dans le menu : il précalcule une trace finie avec un budget de pas, utilisée par l’animation, le debug et les contrats.
La simulation et les calculs lourds passent par un Web Worker avec messages d’avancement et annulation immédiate.
- expressions, déclarations, affectations, appels ;
- conditions, boucles, retours, tableaux ;
- classes, constructeurs,
new,this, membres public/private ; - pointeurs, lambdas, génériques instanciés ;
-
ForEach; - opérations natives ;
- contrats ;
- boutons d’entrée
onClick(bool); - widgets Screen/Gauge/ProgressBar/BarChart/Heatmap/LED/RGB LED/XY plot/Oscilloscope.
Elle refuse les diagnostics bloquants et les points d’entrée paramétrés.
Le debug prépare une trace bornée avant navigation. Il permet :
- Next : pas suivant ;
- Back : revenir à l’arrêt précédent ;
- Finish scope : sortir de la portée courante ;
- Continue : reprendre jusqu’au prochain point d’arrêt ;
- Restart : revenir au premier arrêt.
Les points d’arrêt visuels sont locaux à la session et ne sont pas enregistrés dans le workspace.
- Memory space : code/fonctions, données globales, pile d’appels, adresses illustratives.
- Pointer graph : cibles des variables et cases, adresses et portées actives.
- Les valeurs au survol apparaissent sur les déclarations, références et paramètres du point d’arrêt.
Ces vues sont pédagogiques : aucune allocation réelle, aucune persistance.
Sur une fonction sélectionnée, Run → Run this function… ou Debug this function… ouvre une saisie typée des paramètres. Le résultat affiche la valeur de retour, la sortie et les variables observées. Les entrées invalides sont refusées par le moteur.
Run → Graphical execution → Run simplified graphical simulation ouvre une fenêtre dédiée :
- seules les fonctions atteignables sont représentées ;
- appels directs animés ;
- pile de fonctions, variables, sortie, statut ;
- pause/reprise/stop.
Elle est distincte du debug et ne persiste rien.
- Screen : images rejouées à 24 fps, boucle sur la période détectée ; une séquence sans cycle peut relancer la simulation pour renouveler les images.
- Gauge/ProgressBar/LED/RGB LED : états synchronisés par pas ou par image.
- BarChart : suit les images d’écran ; Heatmap suit uniquement les pas Run/Debug.
- XY plot/Oscilloscope : échantillonnage des fonctions au pas courant.
Le dashboard HTML autonome exécute le vrai Run live, propose le Run borné et un mode Run autonomous qui rejoue la trace des programmes finis ou lance le live continu des exemples SP3_LIVE. Voir Dashboard exporté.
- En live : pas de contrats, de debug, de retour arrière ni de trace complète.
- En borné : budget de pas et profondeur d’appel bornés ; pas de preuve générale de terminaison.
- Aucun effet natif, fichier ou réseau dans le programme simulé.
- Le debug n’édite pas les valeurs mémoire.
- Les entrées interactives se limitent aux boutons déclarés par le projet.
Sapphire 3 — wiki du projet. Licence MIT. Documentation source : docs/ et abstract/. Dernière mise à jour : 11 novembre 2026.
Sapphire 3
Comprendre
Utiliser
Projet