Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Actualités


Index du Forum » Actualités » La revue des projets - 102
-florian66- Hors ligne Ancien rédacteur Points: 2383 Défis: 20 Message

La revue des projets - 102

Posté le 27/08/2017 18:00

Bien le bonjour à tous et toutes !
Nous voici rassemblé (autour de la table) pour ce rendez-vous dominical hebdomadaire. En effet, la tradition se perd néamoins elle demeure dans le coeur de grands et valeureux programmeurs, qui nous montrent leurs progrès, leurs nouveaux projets !


Et voici un projet, sorti de presque nulle part, qui avance au fil de ces RDP.

Zezombye a écrit :
BIDE v3.2 est sorti - version finale, je doute que j'ajouterai d'autres features.

La feature principale est la possibilité de faire des benchmarks avec l'émulateur. Par exemple :
beginBenchmark
For 1->I To 4000
A+1->A
Next
endBenchmark
beginBenchmark
For 1->I To 4000
Isz A:
Next
endBenchmark

Ce code déterminera si Isz est plus rapide ou non.

Les benchmarks ont une précision de +/- 50-80ms (oui, même la précision n'est pas précise ), et sont limités à 10 secondes.

Pour faire des benchmarks, il faut bien mettre beginBenchmark et endBenchmark au début et à la fin de chaque groupe d'instructions à mesurer, importer le programme sur l'émulateur, puis l'exécuter sans rien faire (il doit y être marqué "Begin" et rien d'autre). Ensuite, faire Tools->Run Benchmark.

Outre ça, j'ai juste ajouté quelques trucs et corrigé quelques bugs :
- Les macros sont désormais prioritaires sur les opcodes, parce qu'on ne pouvait ni mettre de macros en majuscules (vu qu'il considère les majuscules comme un opcode), ni mettre de macros commençant par "sp" ou "se" (comme "speed" ou "select") vu que ce sont des opcodes.
- Ajout de macros par défaut : les keycodes (par exemple key_exe ou key_up), begin/endBenchmark, et les opérateurs C-style (&&, ||, !, % -> And, Or, Not, Rmdr) qui sont également dans l'autocomplétion.
- L'autocomplétion prend désormais en compte des priorités : les opcodes très utilisés tels que &disp;, If, RclPict... ont une priorité sur les autres opcodes chelous.
- Un opcode inconnu lors de l'importation d'un programme ne fait plus une erreur mais un simple warning, en remplaçant l'opcode par une escape hexa &#...;.
- Les onglets et l'autocomplétion utilise désormais la police DejaVu Avec Casio pour afficher correctement l'ensemble des caractères. Comme side effect, le sélecteur de fichiers utilise aussi cette police :/
- L'autocomplétion affiche les caractères spéciaux à côté des entités pour les caractères (par exemple, si j'écris "&theta", il affichera θ). Certains caractères latins et grecs sont affichés 2 fois, c'est parce que Java interprète les entités et affiche le caractère correspondant.
- Ajout des équivalents unicode dans certains opcodes (tels que fn)
- Ajout du caractère pour les fractions, et des nombres encerclés pour la prizm
- Mettre un disp n'ajoute plus de ligne en plus
- L'émulateur peut maintenant importer à son premier lancement
- Les commentaires ne sont plus exportés dans le g1m, parce que ça agrandit la taille et réduit la vitesse de l'interpréteur
- Correction du bug avec Ran# et RanInt#() où le # était coloré comme une directive de préprocesseur
- La console d'output fait moins laguer
- Les commentaires s'arrêtent à ':', ce qui rend possible les commentaires inline avec 'commentaire:. Toutefois je n'ai pas réussi à modifier la coloration syntaxique pour s'arrêter au ':'.

Téléchargement : https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?cat=6


L'article est déjà fini, retrouvez-nous la prochaine fois pour LA Revue Des Projets.
À bientôt !


Cakeisalie5 Hors ligne Ancien administrateur Points: 1909 Défis: 11 Message

Citer : Posté le 27/08/2017 20:36 | #


On n'arrête pas le progrès ! Si possible Zezombye, et ça intéressera sans doute des gens, ce serait bien que tu décrives comment les benchmarks fonctionnent, dans un topic ou dans un article sur un blog quelconque.

Au passage, ton préprocesseur prend-il en compte les macros un peu spéciales type :
#define select(ARG1, ARG2) select:ARG1+ARG2->ARG2

Aussi, même si une option est préférable (et aussi, certains commentaires sont voués à être exportés, comme tout ce qui est mention de l'auteur etc), sympa d'avoir ajouté la suppression des commentaires lors de l'output, bien joué !

Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !

Mon blogBesoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
Zezombye Hors ligne Rédacteur Points: 1756 Défis: 13 Message

Citer : Posté le 27/08/2017 20:42 | #


Pour les benchmarks c'est tout simple : quand il voit l'écran de "begin", il commence le timer puis appuie sur EXE, et l'arrête quand il voit l'écran de "end". C'est la raison pour les incertitudes car ça prend environ 50 ms pour vérifier si l'écran correspond à l'écran de "end".

Je n'ai pas encore implémenté les macros de fonctions, je le ferai peut être dans un futur lointain (trop de parsage et débuggage )
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Lephenixnoir Hors ligne Administrateur Points: 24226 Défis: 170 Message

Citer : Posté le 27/08/2017 21:05 | #


Tu ferais mieux de gérer le début et la fin du benchmark en modifiant un octet inutile dans la RAM de l'émulateur, ça permettrait bien plus de précision au niveau du timer !

Ou encore mieux, tu pourrais configurer un timer hardware, attendre une seconde (au début de l'exécution), en déduire une mesure de la fréquence de l'horloge périphérique, ensuite réutiliser le timer hardware, tout ça en le faisant décompter sans arriver à zéro, et du coup tu n'as pas besoin d'un gestionnaire d'interruptions.

Et là, c'est précis à la milliseconde au moins, et t'es pas gêné par le timer qui se lance régulièrement pour vérifier l'état de l'écran o/
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Zezombye Hors ligne Rédacteur Points: 1756 Défis: 13 Message

Citer : Posté le 28/08/2017 11:40 | #


Un bug que j'avais oublié de signaler : si vous avez installé BIDE auparavant, ça ne marchera pas à cause d'une propriété manquante dans les options. La solution est soit de supprimer le fichier options.txt afin de le régénérer, ou d'ajouter la ligne borderColor=808080.
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 79 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd