π
<-
Chat plein-écran
[^]

News 2024
Avril (12)
Mars (7)
Janvier (20)

News 2023
Octobre (19)
Août (14)
Juillet (13)
Juin (21)
Mai (29)
Avril (24)
Mars (24)
Janvier (24)

News 2022
Octobre (23)
Août (14)
Juillet (15)
Juin (17)
Mai (31)
Avril (27)
Mars (28)
Janvier (34)

News 2021
Octobre (24)
Août (37)
Juillet (50)
Juin (32)
Mai (48)
Avril (61)
Mars (35)
Janvier (34)

News 2020
Octobre (17)
Août (43)
Juillet (43)
Juin (45)
Mai (60)
Avril (78)
Mars (36)
Janvier (39)

News 2019
Octobre (13)
Août (18)
Juillet (23)
Juin (28)
Mai (31)
Avril (26)
Mars (38)
Janvier (37)

News 2018
Octobre (13)
Août (32)
Juillet (23)
Juin (64)
Mai (63)
Avril (45)
Mars (43)
Janvier (45)

News 2017
Octobre (26)
Août (39)
Juillet (52)
Juin (88)
Mai (51)
Avril (43)
Mars (37)
Janvier (33)

News 2016
Octobre (25)
Août (42)
Juillet (34)
Juin (109)
Mai (55)
Avril (34)
Mars (37)
Janvier (24)

News 2015
Octobre (22)
Août (56)
Juillet (22)
Juin (94)
Mai (56)
Avril (32)
Mars (40)
Janvier (21)

News 2014
Octobre (26)
Août (18)
Juillet (23)
Juin (101)
Mai (57)
Avril (59)
Mars (54)
Janvier (31)

News 2013
Octobre (67)
Août (50)
Juillet (43)
Juin (193)
Mai (93)
Avril (102)
Mars (45)
Janvier (50)

News 2012
Octobre (64)
Août (63)
Juillet (53)
Juin (132)
Mai (88)
Avril (73)
Mars (57)
Janvier (58)

News 2011
Octobre (56)
Août (31)
Juillet (27)
Juin (71)
Mai (61)
Avril (32)
Mars (36)
Janvier (24)

News 2010
Octobre (11)
Août (8)
Juillet (14)
Juin (10)
Mai (3)
Avril (3)
Mars (1)

News 2009
Août (3)
Juin (2)
Mai (1)
Avril (2)
Mars (1)

Découvre tout l'écosystème TI-88 enfin chez DataMath.org !

Nouveau messagede critor » 16 Oct 2019, 14:39

TI-80, TI-81, TI-82, TI-83, TI-84, TI-85, TI-86, TI-89... Il y a comme qui dirait un trou non ? N'as-tu jamais rêvé par exemple d'une TI-88 ?

Sous le nom complet TI Programmable 88, plusieurs prototypes de cette calculatrice ont été assemblés entre 1981 et 1982.

Nous remontons donc au début des années 1980. En ce temps-là il n'y avait pas encore de calculatrice graphique puisque Casio ne l'inventera qu'en 1985 avec sa légendaire fx-7000G. Il y avait à la place des calculatrices programmables que l'on appelait plus précisément à l'époque ordinateurs de poche. Une appellation méritée puisque les modèles en question :
  • étaient programmables
  • étaient évolutifs avec la possibilité de connecter des modules mémoire :
    • module RAM pour rajouter de la mémoire de travail et/ou de la mémoire de stockage
    • module ROM pour rajouter de grosses applications sans consommer la mémoire de stockage (modules préprogrammés en usine, et non réinscriptibles contrairement à la technologie FlashROM)
  • et acceptaient même la connexion de périphériques externes :
    • imprimante (à aiguille ou thermique à l'époque)
    • système de sauvegarde (à l'époque sur des versions dédiées des cassettes audio, même si ces dernières restaient utilisables avec quelques précautions)

Peut-être la TI-88 te parait-elle des plus quelconques avec son boîtier sur la photo ci-contre, mais tu devrais quand même remarquer au moins deux détails qui la classent dans le très haut de gamme pour le début des années 1980 :
  • un écran LCD matriciel, au lieu des habituels afficheurs à segments (numérique avec 7 segments par chiffre, ou alphanumérique avec 14 segments par caractère)
  • écran que la calculatrice met justement à profit pour un début d'écriture naturelle avec la notation en exposant des puissances
  • la gestion de plusieurs langues ce qui implique donc qu'elle a nombre de choses intéressantes à raconter

En ce début des années 1980, Texas Instruments préparait en effet la relève de son ancienne gamme de calculatrices programmables TI-58/59 commercialisée à partir de 1977.

La publicité de l'époque promettait tout ce qui avait fait le succès des TI-58/59 et bien plus encore :
Finalement la TI-88 n'est jamais sortie, et est une véritable légende parmi les lycéens/étudiants/ingénieurs de l'époque qui s'en arrachent aujourd'hui les rares prototypes encore existants à des prix à 4 chiffres.
Plusieurs idées seront toutefois reprises pour le modèle programmable suivant de Texas Instruments, la TI-95 PROCALC mais qui n'arrivera qu'en 1985, et sera suivi de la première graphique TI-81 en 1990.



Grâce à ses contacts de par le monde avec de nombreux collectionneurs amateurs ou même professionnels (musée de l'Institut Smithsonian à Washington aux Etats-Unis, musée Heinz Nixdorf à Paderborn en Allemagne) et son travail acharné sur plus d'une décennie, Jörg Wörner du musée en ligne Datamath.org a réussi l'exploit pharaonique de réunir l'ensemble des éléments de l'écosystème TI-88 ! :bj:

Outre la calculatrice qu'il présentait déjà, tous les autres périphériques beaucoup plus rares et donc difficiles à trouver ont pu faire l'objet d'un travail méticuleux de rétroingénerie et disposent maintenant de pages dédiées en présentant les résultats et photos d'illustration, avec aussi bien des éléments externes que internes ! :bj:
Quand on voit ce que donne à la revente de la calculatrice seule, nous éviterons ici de parler davantage de prix, ça donnerait des vertiges... :#roll#:

Toutes nos félicitations donc pour un tel exploit à fort intérêt historique ! :bj:


Tu peux dorénavant découvrir les moindres secrets matériels de l'écosystème TI-88, comme le format de connexion des modules ou le fait que le module CRAM utilisait une pile bouton pour préserver les données des deux puces RAM lorsqu'il n'était plus alimenté par la calculatrice (lorsque déconnectés par exemple). ;)



Mais ce n'est pas tout, car les prototypes Texas Instruments précédant la commercialisation d'un nouveau produit suivent plusieurs phases :
  1. Prototype
  2. EVT : Engineering Validation Test
  3. DVT : Design Validation Test
  4. PVT : Production Validation Test
  5. MP : Mass Production
Et Jörg a pu identifier différents niveaux de finition jusqu'alors inconnus sur la gamme TI-88.

Par exemple Jörg a pu trouver deux prototypes d'imprimantes PC-800 clairement différents :
  • un prototype PC-800 d'Avril 1982 qu'il a classifié en tant qu'EVT
  • un prototype PC-800 d'Août 1982, classifié rétrospectivement en tant que PVT
Le prototype plus ancien diffère de par la finition du plastique qui ici n'est pas encore givré et conserve donc facilement diverses marques. Des couleurs sont également distinctes, ainsi que l'électronique interne qui ne disposait pas encore de certaines diodes présentes sur le prototype plus récent et sur lesquelles nous allons revenir.

Mais ce n'est pas tout, Jörg a pu également identifier différents niveaux de finition pour la calculatrice TI-88 elle-même :
  • un prototype TI-88 de Septembre 1981 qu'il a classé en tant que DVT
  • un prototype TI-88 d'Avril 1982 qu'il a classé en tant que EVT
  • des prototypes TI-88 de Mai 1982 qu'il a classé en tant que PVT1
  • un prototype TI-88 de Août 1982 qu'il a classé en tant que PVT2
  • des prototypes TI-88 de Août 1982 qu'il a classé en tant que PVT3
Extérieurement, on distingue aisément les DVT, EVT et PVT via quelques différences visuelles, les plus remarquables se situant au niveau des couleurs ou inscriptions des touches clavier
2nd
,
ALPH
et
R/S
.

Quant à la distinction des prototypes PVT en PVT1, PVT2 et PVT3, ici les différences notables sont exclusivement internes, mais non mineures pour autant.

On peut par exemple noter à compter du prototype PVT2 l'ajout de deux diodes de protection sur la broche d'entrée/sortie du port série.
Elles sont là pour protéger la puce RAM TP531 d'un effet thyristor (en anglais latch-up, sorte de court-circuit) qui pouvait arriver lorsque qu'un périphérique connecté était allumé alors que la TI-88 était éteinte.
Si jamais tu récupères un jour une TI-88 PVT1 ou plus ancienne et un de ses périphériques dédiés, il t'est donc fortement déconseillé de les connecter à moins de réliser la modification en question comme visible ci-contre.



Liens :
Crédits photos : http://www.datamath.org/
Source : http://www.datamath.org/Update.htm
Lien vers le sujet sur le forum: Découvre tout l'écosystème TI-88 enfin chez DataMath.org ! (Commentaires: 2)

Mise à jour TI-Nspire CX 4.5.2 et TI-Innovator 1.4

Nouveau messagede critor » 24 Oct 2019, 12:56

8726La mise-à-jour 1.4 pour l'écosystème TI-Innovator t'apportait nombre de nouveautés :
  • Accès à un nouveau capteur TIMER (horloge) qui est en fait déjà intégré dépuis le début au TI-Innovator Hub. Contrairement aux commandes TI-Basic de ta calculatrice il permet de chronométrer en millisecondes !
  • Expérience de codage :
    • les commandes désormais insensibles à la casse !
    • l'acceptation directe de valeurs hexadécimales pour les paramètres en utilisant le nouveau préfixe 0X.
    • pour une meilleure lisibilité du code, la possibilité de donner des noms d'alias aux capteurs ou actionneurs utilisés
    • Possibilité d'utiliser les commandes SET et READ simultanément sur plusieurs des 10 broches du port BB (BreadBoard).
  • Gestion de l'écosystème des capteurs/actionneurs Grove étendue avec :
    • Gestion des capteurs Grove MAGNETIC (plus précisément effet Hall).
    • Nouvel actionneur POWER (MOFSET soit transistor de puissance). Les transistors de puissance pouvaient déjà être utilisés via l'actionneur générique ANALOG.OUT, mais le paramètre sur une échelle de 0 à 255 en était peu intuitif. La seule différence avec l'actionneur POWER est que le paramètre utilisera cette fois-ci une échelle de 0 à 100. :)
    9349
  • Gestion de l'écosystème des capteurs/actionneurs analogiques Vernier via l'interface TI-Sensor Link étendue avec :
    • Gestion du capteur de lumière analogique Vernier LS-BTA
    • Gestion de l'accéléromètre analogique Vernier LGA-BTA
    • Gestion du capteur d'énergie analogique Vernier VES-BTA
    9049
  • Améliorations de l'expérience robotique TI-Innovator Rover avec :
    • Détection de l'état OFF de l'interrupteur.
    • Nouvelles tonalités d'erreur en conséquence.
    • Nouvelle commande RV.ETA qui estime la durée d'exécution de la dernière commande envoyée au robot, et qui t'évitera désormais d'avoir à faire toi-même des estimations imprécises pour d'éventuelles commandes d'attente Wait à intercaler dans tes programmes !
    • Nouvelle commande RV.DONE pour savoir si le robot a bien terminé d'exécuter les dernières commandes envoyées.
    10676
  • Gestion du nouveau périphérique TI-RGB Array avec les commandes qui vont avec.

Une fois ton TI-Innovator Hub mis à jour, tu peux dans tous les cas saisir toutes ces nouvelles commandes au clavier alphabétique de ta TI-83 Premium CE, TI-84 Plus CE ou TI-Nspire CX.

Mais si de plus ta calculatrice est correctement mise à jour avec ce qui est sorti pour cet été 2019, ces nouvelles commandes sont également rajoutées aux menus pour une saisie encore plus rapide : :bj:
  • TI-83 Premium CE et TI-84 Plus CE avec l'application Hub 5.4 (incluse dans la mise à jour 5.4)
  • TI-Nspire CX II avec la mise à jour 5.1

Hélas, les anciennes TI-Nspire CX n'avaient plus été mises à jour depuis la version 4.5.1 du printemps 2019, et ne bénéficiaient donc pas de ces menus.

D'où de gros problèmes pour la réalisation de projets dans les classes à équipement hétérogène en calculatrices, avec certains élèves qui avaient donc les commandes bien indiquées dans les menus, et d'autres qui devaient donc les connaître et saisir lettre par lettre. :mj:

Mais bonne nouvelle, Texas Instruments semble être partiellement revenu sur sa volonté apparente de donner l'exclusivité des nouvelles fonctionnalités aux seules TI-Nspire CX II, et pour palier ce problème sort la mise à jour 4.5.2 pour les anciennes TI-Nspire CX. :D

Grâce à cette mise à jour tu disposeras désormais sur ton ancienne TI-Nspire CX des tout nouveaux menus TI-Innovator Hub de la TI-Nspire CX II 5.1 : :bj:








De numéro complet 4.5.2.8, cette version a été compilée le 11 septembre 2019 à 16h04min20s.

Elle inclut toujours le Boot2 4.5.0.14.

Par contre, en l'absence d'un chargeur de démarrage tiers, cette mise à jour interdira tout retour à une version inférieure à 4.5.2.8.

Si ta calculatrice a une version 4.5.0 ou inférieure, en installant la version 4.5.2 de façon normale tu renonces donc à ce jour définitivement à Ndless.

Le chargeur de démarrage tiers ControlX pour nBoot a été mis à jour avec le support de la version 4.5.2.
Mais par contre, contrairement à ce qu'il faisait avec la version 4.5.1, ControlX n'installera pas Ndless sur une version 4.5.2, tout simplement parce que les ressources Ndless n'ont pas encore été mises à jour pour cette version.

Le chargeur de démarrage tiers nLoader n'a malheureusement toujours pas été mis à jour avec le support des versions 4.5.1 et encore moins 4.5.2.
Ne les installe pas si tu es dans ce cas, ça va coincer ta machine. A ce jour si tu dois absolument les installer, il va te falloir commencer par désinstaller nLoader.


Tutoriels :

Téléchargements :
Lien vers le sujet sur le forum: Mise à jour TI-Nspire CX 4.5.2 et TI-Innovator 1.4 (Commentaires: 3)

Bêta-test versions HP Prime 2.1.14288 Windows/Mac/Linux/iOS

Nouveau messagede critor » 27 Oct 2019, 16:54

Cette semaine, Hewlett Packard Calculatrices propose à nouveau à sa communauté de contribuer au développement de sa calculatrice HP Prime et de son écosystème. Plus précisément, il t'est proposé de participer à un bêta-test public de la version 2.1.14288 datée du 22 octobre 2019.

Cette mise à jour donc toute fraîche concerne l'intégralité de la suite HP Prime :
  • le firmware calcultrice
  • le logiciel de connectivité HP Prime Connectivity Kit
  • le logiciel de simulation HP Prime Virtual Calculator
  • les applications HP Prime

Notons comme nouveautés essentielles :
  • la correction du bug de la commande BREAK sur HP Prime G2
  • le passage du moteur CAS en version 1.5 avec donc toutes les améliortions que Bernard Parisse a effectuées sur le code Xcas associé depuis la dernière version 2.1.14181 d'octobre 2018, ce qui inclut entre autres une meilleure gestion de la syntaxe Python avec les différents problèmes signalés depuis :bj:

C'est aussi une excellente nouvelle pour les utilisateurs Linux qui dans le cadre de cette bêta vont pouvoir bénéficier d'un logiciel à jour, le premier depuis la version 2.1.14091 de septembre 2018. :bj:

Tes retours sont à effectuer par courriel à calcbeta@hp.com.


Changelog complet :
Show/Hide spoilerAfficher/Masquer le spoiler
HP Prime – Release Notes
-------------------------

Date Released: 2019/10/22

Internal Versions
-----------------
Firmware Version: ~2.1.14290 (2019 10 23) BETA
Virtual Calculator Version: ~2.1.14290 (2019 10 23) BETA
Connectivity Kit: ~2.1.14290 (2019 10 23) BETA

Description
-----------
This BETA release of the Prime Calculator firmware and associated PC and Mobile software is a minor maintenance release. Only users willing to experiment with pre-release software and report issues to calcbeta@hp.com are invited to experiment with this release.

Please back up your calculator before the update. Any existing data on the device may be wiped during the update process.

Primary focus of this BETA release is upgrading the underlying build tools for all platforms (calculator hardware, windows, iOS, android, macOS). As such, there are few end user noticeable changes included. The goal here is to ensure that everything is "working just as before" to make sure that no problems have been introduced as a result of said tool change.


Windows Connectivity Kit and Virtual Calculator:
1. Fixed issue with prompts for upgrade being misidentified on 64 bit versions.

Mac Connectivity Kit and Virtual Calculator:
1. None

Linux Technical Preview Virtual Calculator:
1. Delivered in x86 and x64 versions
2. Built using Ubuntu 14.04 and packaged as an appimage with latest appimage/linuxdeployqt versions
3. Primarily, this is to test if application is able to be run on a wide range of systems and distros
4. There is a technical preview and does not indicate a supported Linux release will be forthcoming - however the 60 day limit on other platforms will not be checked.

New Functionality and Changes (Calculator Software)
1. Updated CAS to latest 1.5 release.
2. Corrected BREAK issue found on G2 hardware units only.



Téléchargements :

Source : https://www.hpmuseum.org/forum/thread-13855.html via viewtopic.php?f=69&t=23071&p=247185#p247185
Lien vers le sujet sur le forum: Bêta-test versions HP Prime 2.1.14288 Windows/Mac/Linux/iOS (Commentaires: 2)

UdPPC 2019 à Grenoble avec Casio, NumWorks et TI, 30 octobre

Nouveau messagede critor » 27 Oct 2019, 17:31

As-tu raté l'occasion de rencontrer les constructeurs de calculatrices graphiques Casio, Hewlett Packard, NumWorks et Texas Instruments le week-end dernier aux journées APMEP à Dijon ?

Et bien bonne nouvelle, tu vas avoir une chance de te rattraper cette semaine, avec ce mercredi 30 octobre la journée des exposants dans le cadre du 67ème congrès national de l'UdPPC (Union des Professeurs de Physique et Chimie) à Grenoble sur le campus de l'UGA.

Casio et Texas Instruments y seront présents comme à leur habitude, mais également NumWorks cette année ! :)

NumWorks y présentera donc sa calculatrice graphique programmable en Python, un gros atout utilisable quotidiennement aussi bien directement en classe que de façon nomade, et qui évite d'avoir à se déplacer en salle informatique pour coder. De plus, l'interpréteur Python est le seul à ce jour à inclure un module graphique conformément aux nouveaux programmes de Physique-Chimie de Seconde de la rentrée 2019, kandinsky ! :bj:

Casio y présentera pour sa part ses calculatrices Graph 35+E II et Graph 90+E également programmables en Python. Toujours très réactif par rapport aux nouveaux programmes, le constructeur te présentera également son propre module Python graphique qui sera disponible gratuitement via une simple mise à jour d'ici la rentrée 2020 ! :bj:
Tu pourras donc justement en profiter pour préciser tes attentes afin que ce module graphique corresponde parfaitement à tes besoins. ;)

Nous n'avons hélas aucune information sur la sortie d'un module Python graphique similaire pour les TI-83 Premium CE. :'(

Lien : https://udppc-gre2019.sciencesconf.org/
Lien vers le sujet sur le forum: UdPPC 2019 à Grenoble avec Casio, NumWorks et TI, 30 octobre (Commentaires: 2)

HP Prime G2 de retour chez LDLC à moins de 110€ !

Nouveau messagede critor » 28 Oct 2019, 12:35

Pour la rentrée 2018, Hewlett Packard sortait sa nouvelle HP Prime G2 matériellement révolutionnaire.

Hélas c'est assez mal tombé pour la France, vu que le grossiste HP français SMS (Solution Micro System) venait de fermer, emportant avec lui le site français www.calculatrices-hp.com.
Nombre de boutiques françaises sont donc restées en rupture de stock en 2018-2019, dont LDLC.

Il y avait certes la possibilité de commander chez nos voisins européens, mais ça impliquait donc pour chaque acheteur de payer le port, et ce n'était pas des plus pratiques avec des sites en langue étrangère pas toujours adaptés.


11688Toutefois Hewlett Packard a travaillé toute l'année 2018-2019 pour t'apporter des solutions.

Un nouveau site français a été conçu, www.hp-prime.fr.

L'approvisionnement de la France a pour sa part été confié à l'entreprise tchèque Moravia Europe qui avait déjà la charge de la distribution en Europe non francophone des calculatrices HP Prime et Sharp, si bien que la HP Prime G2 fut bien au rendez-vous pour la rentrée 2019 ! :bj:

Si tu as envisagé l'acquisition d'une HP Prime G2 pour la rentrée 2019 et que le prix t'a fait reculer, et bien c'est maintenant l'occasion ou jamais pendant ces vacances de Toussaint ! ;)

Aujourd'hui la HP Prime G2 est en effet enfin de retour chez LDLC, et pour fêter cet événement la boutique te propose une promotion exceptionnelle jamais vue à seulement 109€95 ! :#tritop#:

Dépêche-toi, ça ne durera pas éternellement... ;)

Lien : https://www.ldlc.com/fiche/PB00154309.html
Lien vers le sujet sur le forum: HP Prime G2 de retour chez LDLC à moins de 110€ ! (Commentaires: 12)

Application Python officielle pour HP Prime G1 et bêta-test

Nouveau messagede critor » 30 Oct 2019, 12:04

Attention, le contenu de cet article se basant sur une version alpha/beta, les fonctionnalités
décrites ici peuvent totalement changer d'ici l'éventuelle version officielle comprenant l'application Python!

Dans une actualité précédente, Hewlett Packard Calculatrices t'invitait à tester les prochaines mises à jour de son écosystème HP Prime, avec les versions bêta du 22 octobre.

Plus précisément, la publication incluait :
  • le firmware pour HP Prime G1 (version 2.1.14285) et HP Prime G2 (version 2.1.14284)
  • le logiciel de connectivité HP Prime Connectivity Kit (version 2.1.14288) pour Windows et Mac
  • le logiciel de simulation HP Prime Virtual Calculator (version 2.1.14288) pour Windows, Mac et Linux
  • les applications HP Prime pour iOS
Aujourd'hui il y a plusieurs nouveautés par rapport à ce bêta-test. Déjà, les applications HP Prime pour Android sont maintenant également disponibles.

Mais surtout, le firmware HP Prime G1 est bizarrement le seul à avoir été remplacé par une nouvelle version 2.1.14298 du 28 octobre. Pourquoi ?... ;)
11694En effet, le firmware 2.1.14285 pour HP Prime G1 était le seul à inclure quelque chose qui ne devait pas encore être prêt pour une annonce au grand public, une application Python, qui a été retirée pour la nouvelle version 2.1.14298. :o

Maintenant que c'est trop tard et qu'il en est question sur pas moins de 2 pages forum HP Museum, profitons-en pour voir ce que HP nous prépare. :)

Précisons que la HP Prime accepte depuis la version 13333 une écriture en syntaxe Python en mode CAS, héritée du développement du moteur formel GIAC du logiciel Xcas par Bernard Parisse.

L'écriture Python de la HP Prime dispose d'avantages remarquables par rapport aux solutions Python de la concurrence, comme :
  • la possibilité d'obtenir les résultats numériques en valeur exact sans aucun artifice dans le code :bj:
  • la possibilité de faire du calcul littéral et formel :bj:
  • la possibilité de dessiner à l'écran, conformément au nouveau programme de Physique-Chimie Seconde depuis la rentrée 2019 :bj:

Elle n'en reste pas moins très imparfaite avec nombre de scripts Python pourtant parfaitement corrects qui renverront une erreur ou autre chose que ce qui était prévu. A moins de les écrire d'une façon bien particulière ou spéciale... astuces d'écriture qui nécessitent donc paradoxalement en phase d'apprentissage/découverte une certaine compréhension du fonctionnement interne et des différences entre les langages Python et HP Prime CAS.

Pour le logiciel Xcas ainsi que ses déclinaisons delta pour NumWorks et KhiCAS pour Casio Graph 35+E II et Graph 90+E, ce n'est pas problématique puisque Bernard est très réactif et accomplit un travail formidable avec des mises à jour hebdomadaires ! :bj:
Mais sur HP Prime avec à peine une mise à jour par an, les nombreux retours que nous avons faits ne sont donc pris en compte qu'à retardement. Par exemple là la dernière mise à jour remonte à novembre 2018, et pour notre concours de rentrée en Python nous avons dû littéralement nous arracher les cheveux à peu près autant que l'année dernière pour que notre script soit compatible HP Prime, vu qu'il n'y a eu aucune correction des nombreux problèmes.

Si la solution GIAC/Xcas/delta peut certes convenir pour les modèles Casio/NumWorks ainsi que les petits scripts d'initiation en Mathématiques au lycée, elle nous paraît en l'état actuel inadéquate sur HP Prime pour poursuivre avec des scripts plus sérieux ou projets en NSI par exemple, et avec un rythme de mises à jour qui se compte en années ce n'est hélas pas près de changer.


Qu'est-ce donc que la nouvelle application Python HP Prime ? Une interface pour utiliser plus facilement l'écriture Python du mode CAS, ou bien un véritable interpréteur Python ? Nous allons voir cela ensemble.

A mieux y regarder, cette version 2.1.14285 serait plutôt une version alpha que bêta selon nous. On se rend rapidement compte que certaines fonctionnalités sont cassées et qu'il y a plusieurs problèmes :
  • les calculs en mode RPN ne fonctionnent plus
  • la réception de programmes ne fonctionne plus, ne donnant que des programmes vides dont le nom est bizarrement suffixé d'un :Main(1) dans l'éditeur
  • en cas de redémarrage la calculatrice s'amorce visiblement 2 fois, comme si elle plantait lors du 1er amorçage
  • en cas de redémarrage de la calculatrice, toutes les données saisies sont perdues
Voilà donc pourquoi elle a été aussi vite remplacée par HP.

Des conditions peu agréables pour découvrir la nouvelle application Python, mais nous allons quand même faire un effort pour toi.




Sommaire :Go to top





1) Premier contact et méthode de saisie :

Go to top

L'ouverture de la nouvelle application Python nous amène à un écran comportant un avertissement sur le caractère non final de cette version, et acceptant des saisies en syntaxe Python. Il s'agit donc d'une console (shell).

L'interface rudimentaire ne semble pas encore avoir prévu de possibilité pour charger un script. Ce qui est particulièrement embêtant pour définir des fonctions et réaliser des tests plus poussés, vu que la saisie sur plusieurs lignes ne semble pas acceptée non plus, même en la précisant explicitement avec le caractère \.

Elle n'est d'ailleurs pas stabilisée, puisque la sortie de l'interface via les touches
Symb
,
Esc
ou le bouton tactile
OK
redémarre la calculatrice, avec perte totale des données comme vu plus haut.

Il va donc nous falloir ruser... On pourrait par exemple mettre nos scripts Python dans l'éditeur de programmes, puis en copier le contenu via
Shift
View
pour alors le coller dans l'application Python via
Shift
Menu
. Effectivement ça marche, mais cette solution n'est toujours pas satisfaisante. En effet, comme le transfert de programmes ne marche plus nous sommes obligés de saisir les scripts à la main sur la calculatrice, et avec une application Python qui plante très facilement avec perte intégrale de la saisie ce n'est pas la panacée.

Nous finissons par avoir l'idée de regarder non plus du côté de l'éditeur de programmes, mais du côté de l'éditeur de remarques (notes). On peut de même en faire des copiés/collés, et ici bonne nouvelle le transfert de données depuis un ordinateur fonctionne encore ! :bj:



2) Mantisses et exposants en virgule flottante :

Go to top

Pour déterminer à quoi nous avons affaire, nous allons commencer par tester le moteur de calcul numérique de l'application Python. Voici donc notre toute première fonction Python sur HP Prime :
Code: Tout sélectionner
def precm(b):
  k,b=0,float(b)
  while 1+b**-k-1>0:
    k+=1
  return k

L'appel precm(2) nous indique que le moteur travaille en virgule flottante avec des mantisses de 53 bits, permettant environ 16 chiffres significatifs (precm(10)).

C'est le standard double précison du Python, un excellent choix pour le contexte scientifique du lycée ! :bj:
Cela répond de plus déjà à notre question principale. Cette application Python n'est pas une simple interface pour l'écriture Python du mode CAS. En effet les virgules flottantes HP Prime sont calculées sur 38 bits en mode numérique, et 48 bits en mode CAS. Par élimination, la nouvelle application Python renfermerait donc a priori un véritable interpréteur Python, reste à savoir lequel ! :bj:

Nous notons en passant l'affichage asiatique incorrect suivant la définition de la fonction. Et bien que notre fonction soit fonctionnelle, le problème semble plus profond qu'il n'y paraît, puisque nous n'arrivons pas à définir de deuxième fonction, ou du moins pas de deuxième fonction nécessitant une saisie sur plusieurs lignes. La fonction n'existe tout simplement pas après la nouvelle saisie par copié/collé. Peut-être y a-t-il un message d'erreur, mais comme c'est du chinois...

Nous réinitialisons donc l'interface pour notre deuxième fonction :
Code: Tout sélectionner
def prece():
  a=-1
  while 2.**a>0:
    a*=2
  while 2.**a==0:
    a+=1
  b=1
  while str(2.**b)[0:3]!='inf':
    b*=2
  while str(2.**b)[0:3]=='inf':
    b-=1
  return [a,b]

L'appel prece() nous indique que les exposants des virgules flottantes peuvent aller de -1074 à +1023, valeurs habituelles pour le standard double précision d'un véritable interpréteur Python.



3) Modules importables et aide en ligne :

Go to top

Puisque nous disposons donc apparemment d'un véritable interpréteur Python, continuons à explorer. Et la question suivante est de savoir de quels modules nous disposons. Malheureusement nous ne pouvons pas le demander via help("modules"), vu que HP n'a visiblement pas implémenté cette fonction Python pourtant standard.

Pour sa part, la touche d'aide en ligne de la calculatrice
Help
donne bien quelque chose, mais c'est très sommaire sans mention du moindre module. Par contre on y apprend que la touche
Symb
est prévue pour l'édition de scripts, même si nous avons vu plus haut qu'elle ne fonctionnait pas correctement.

Bon ben pas trop le choix... soit on tente à la main d'importer un maximum de modules Python au risque d'en rater quelques-uns... soit on fouille le firmware à l'éditeur hexadécimal.

Retenons cette dernière option. Nous trouvons facilement dans le firmware des occurences groupées avec math, cmath, mais aussi matplotlib, numpy, pylab, turtle et même kandinsky ! :#roll#: (coucou NumWorks ! :p)
C'est peut-être trop beau pour être vrai avec une version alpha aussi jeune, et effectivement à part les modules math et cmath, aucun autre ne marche.
A bien y repenser, il s'agit sans doute de ressources concernant non pas la nouvelle application Python, mais l'écriture Python du mode CAS qui à part pour turtle propose plusieurs fonctions équivalentes pour ces modules, et doit donc reconnaître les commandes d'importation correspondantes.

Mais nous ne désespérons pas et finissons par trouver le bon segment on ne peut plus excplicite avec des traces de commandes de compilation qui ont réussi à être incluses dans le firmware :
Code: Tout sélectionner
modes.o
ARM C/C++ Compiler, 4.1 [Build 894]
ArmCC --cpp --whole_program --split_sections -c  --depend=.\obj\modes.d --cpu=ARM926EJ-S --fpmode=ieee_full --apcs=interwork//interwork -O3 --diag_suppress=1,9,111,161,177,185,191,368,514,550,611,1293,1299,1300,1464 -I..\ -I..\src -I..\..\Core -I..\..\Core\src -I..\..\Core\CAS\src -I..\..\Core\TomMath -I..\..\Core\napier -I..\..\Core\freetype\include\ -I..\..\Core\freetype\include\freetype\ -I..\..\_qt5\src -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -DUNICODE -D_UNICODE -DBESTA_OS -DBESTA_ARM_TARGET -DARM -DARM9 -DARM11 -DARM1176JZF -DSTANDALONE -DADS_COMPILER -DPDADEF -DKERNEL -DFULL_NAND_SYS -DFS_LONG_NAME_GET -DHAVE_AV_CONFIG_H -DEMULATE_FAST_INT -DEMULATE_INTTYPES -DFLASHLITEDLL -DFLASH_BESTARTOS -DFL31_STATICLIBRARY -D__STDC_LIMIT_MACROS -DFIR -DHAVE_CONFIG_H -DIN_GIAC -DUSE_GMP_REPLACEMENTS -DBCD -DNO_UNARY_FUNCTION_COMPOSE -DSTATIC_BUILTIN_LEXER_FUNCTIONS -DNO_STDEXCEPT -DNO_PHYSICAL_CONSTANTS -DGIAC_HAS_STO_38 -DCAS38 -DFT2_BUILD_LIBRARY -Dsprintf=__sprintf -D__cplusplus -DNDEBUG -D__USB_CONFIG__ -DUSBH0_ENABLE -DUSBH0_HC_IF -DUSBD_ENABLE -DUSBD_HID_ENABLE --loose_implicit_cast --remove_unneeded_entities
modfactor.o
ARM C/C++ Compiler, 4.1 [Build 894]
ArmCC --cpp --whole_program --split_sections -c  --depend=.\obj\modfactor.d --cpu=ARM926EJ-S --fpmode=ieee_full --apcs=interwork//interwork -O3 --diag_suppress=1,9,111,161,177,185,191,368,514,550,611,1293,1299,1300,1464 -I..\ -I..\src -I..\..\Core -I..\..\Core\src -I..\..\Core\CAS\src -I..\..\Core\TomMath -I..\..\Core\napier -I..\..\Core\freetype\include\ -I..\..\Core\freetype\include\freetype\ -I..\..\_qt5\src -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -DUNICODE -D_UNICODE -DBESTA_OS -DBESTA_ARM_TARGET -DARM -DARM9 -DARM11 -DARM1176JZF -DSTANDALONE -DADS_COMPILER -DPDADEF -DKERNEL -DFULL_NAND_SYS -DFS_LONG_NAME_GET -DHAVE_AV_CONFIG_H -DEMULATE_FAST_INT -DEMULATE_INTTYPES -DFLASHLITEDLL -DFLASH_BESTARTOS -DFL31_STATICLIBRARY -D__STDC_LIMIT_MACROS -DFIR -DHAVE_CONFIG_H -DIN_GIAC -DUSE_GMP_REPLACEMENTS -DBCD -DNO_UNARY_FUNCTION_COMPOSE -DSTATIC_BUILTIN_LEXER_FUNCTIONS -DNO_STDEXCEPT -DNO_PHYSICAL_CONSTANTS -DGIAC_HAS_STO_38 -DCAS38 -DFT2_BUILD_LIBRARY -Dsprintf=__sprintf -D__cplusplus -DNDEBUG -D__USB_CONFIG__ -DUSBH0_ENABLE -DUSBH0_HC_IF -DUSBD_ENABLE -DUSBD_HID_ENABLE --loose_implicit_cast --remove_unneeded_entities
modpoly.o
ARM C/C++ Compiler, 4.1 [Build 894]
ArmCC --cpp --whole_program --split_sections -c  --depend=.\obj\modpoly.d --cpu=ARM926EJ-S --fpmode=ieee_full --apcs=interwork//interwork -O3 --diag_suppress=1,9,111,161,177,185,191,368,514,550,611,1293,1299,1300,1464 -I..\ -I..\src -I..\..\Core -I..\..\Core\src -I..\..\Core\CAS\src -I..\..\Core\TomMath -I..\..\Core\napier -I..\..\Core\freetype\include\ -I..\..\Core\freetype\include\freetype\ -I..\..\_qt5\src -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -DUNICODE -D_UNICODE -DBESTA_OS -DBESTA_ARM_TARGET -DARM -DARM9 -DARM11 -DARM1176JZF -DSTANDALONE -DADS_COMPILER -DPDADEF -DKERNEL -DFULL_NAND_SYS -DFS_LONG_NAME_GET -DHAVE_AV_CONFIG_H -DEMULATE_FAST_INT -DEMULATE_INTTYPES -DFLASHLITEDLL -DFLASH_BESTARTOS -DFL31_STATICLIBRARY -D__STDC_LIMIT_MACROS -DFIR -DHAVE_CONFIG_H -DIN_GIAC -DUSE_GMP_REPLACEMENTS -DBCD -DNO_UNARY_FUNCTION_COMPOSE -DSTATIC_BUILTIN_LEXER_FUNCTIONS -DNO_STDEXCEPT -DNO_PHYSICAL_CONSTANTS -DGIAC_HAS_STO_38 -DCAS38 -DFT2_BUILD_LIBRARY -Dsprintf=__sprintf -D__cplusplus -DNDEBUG -D__USB_CONFIG__ -DUSBH0_ENABLE -DUSBH0_HC_IF -DUSBD_ENABLE -DUSBD_HID_ENABLE --loose_implicit_cast --remove_unneeded_entities
modmicropython.o
ARM C/C++ Compiler, 4.1 [Build 894]
ArmCC --cpp --whole_program --split_sections -c  --depend=.\obj\modmicropython.d --cpu=ARM926EJ-S --fpmode=ieee_full --apcs=interwork//interwork -O3 --diag_suppress=1,9,111,161,177,185,191,368,514,550,611,1293,1299,1300,1464 -I..\ -I..\src -I..\..\Core -I..\..\Core\src -I..\..\Core\CAS\src -I..\..\Core\TomMath -I..\..\Core\napier -I..\..\Core\freetype\include\ -I..\..\Core\freetype\include\freetype\ -I..\..\_qt5\src -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -DUNICODE -D_UNICODE -DBESTA_OS -DBESTA_ARM_TARGET -DARM -DARM9 -DARM11 -DARM1176JZF -DSTANDALONE -DADS_COMPILER -DPDADEF -DKERNEL -DFULL_NAND_SYS -DFS_LONG_NAME_GET -DHAVE_AV_CONFIG_H -DEMULATE_FAST_INT -DEMULATE_INTTYPES -DFLASHLITEDLL -DFLASH_BESTARTOS -DFL31_STATICLIBRARY -D__STDC_LIMIT_MACROS -DFIR -DHAVE_CONFIG_H -DIN_GIAC -DUSE_GMP_REPLACEMENTS -DBCD -DNO_UNARY_FUNCTION_COMPOSE -DSTATIC_BUILTIN_LEXER_FUNCTIONS -DNO_STDEXCEPT -DNO_PHYSICAL_CONSTANTS -DGIAC_HAS_STO_38 -DCAS38 -DFT2_BUILD_LIBRARY -Dsprintf=__sprintf -D__cplusplus -DNDEBUG -D__USB_CONFIG__ -DUSBH0_ENABLE -DUSBH0_HC_IF -DUSBD_ENABLE -DUSBD_HID_ENABLE --loose_implicit_cast --remove_unneeded_entities
modarray.o
ARM C/C++ Compiler, 4.1 [Build 894]
ArmCC --cpp --whole_program --split_sections -c  --depend=.\obj\modarray.d --cpu=ARM926EJ-S --fpmode=ieee_full --apcs=interwork//interwork -O3 --diag_suppress=1,9,111,161,177,185,191,368,514,550,611,1293,1299,1300,1464 -I..\ -I..\src -I..\..\Core -I..\..\Core\src -I..\..\Core\CAS\src -I..\..\Core\TomMath -I..\..\Core\napier -I..\..\Core\freetype\include\ -I..\..\Core\freetype\include\freetype\ -I..\..\_qt5\src -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -DUNICODE -D_UNICODE -DBESTA_OS -DBESTA_ARM_TARGET -DARM -DARM9 -DARM11 -DARM1176JZF -DSTANDALONE -DADS_COMPILER -DPDADEF -DKERNEL -DFULL_NAND_SYS -DFS_LONG_NAME_GET -DHAVE_AV_CONFIG_H -DEMULATE_FAST_INT -DEMULATE_INTTYPES -DFLASHLITEDLL -DFLASH_BESTARTOS -DFL31_STATICLIBRARY -D__STDC_LIMIT_MACROS -DFIR -DHAVE_CONFIG_H -DIN_GIAC -DUSE_GMP_REPLACEMENTS -DBCD -DNO_UNARY_FUNCTION_COMPOSE -DSTATIC_BUILTIN_LEXER_FUNCTIONS -DNO_STDEXCEPT -DNO_PHYSICAL_CONSTANTS -DGIAC_HAS_STO_38 -DCAS38 -DFT2_BUILD_LIBRARY -Dsprintf=__sprintf -D__cplusplus -DNDEBUG -D__USB_CONFIG__ -DUSBH0_ENABLE -DUSBH0_HC_IF -DUSBD_ENABLE -DUSBD_HID_ENABLE --loose_implicit_cast --remove_unneeded_entities
modbuiltins.o
ARM C/C++ Compiler, 4.1 [Build 894]
ArmCC --cpp --whole_program --split_sections -c  --depend=.\obj\modbuiltins.d --cpu=ARM926EJ-S --fpmode=ieee_full --apcs=interwork//interwork -O3 --diag_suppress=1,9,111,161,177,185,191,368,514,550,611,1293,1299,1300,1464 -I..\ -I..\src -I..\..\Core -I..\..\Core\src -I..\..\Core\CAS\src -I..\..\Core\TomMath -I..\..\Core\napier -I..\..\Core\freetype\include\ -I..\..\Core\freetype\include\freetype\ -I..\..\_qt5\src -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -DUNICODE -D_UNICODE -DBESTA_OS -DBESTA_ARM_TARGET -DARM -DARM9 -DARM11 -DARM1176JZF -DSTANDALONE -DADS_COMPILER -DPDADEF -DKERNEL -DFULL_NAND_SYS -DFS_LONG_NAME_GET -DHAVE_AV_CONFIG_H -DEMULATE_FAST_INT -DEMULATE_INTTYPES -DFLASHLITEDLL -DFLASH_BESTARTOS -DFL31_STATICLIBRARY -D__STDC_LIMIT_MACROS -DFIR -DHAVE_CONFIG_H -DIN_GIAC -DUSE_GMP_REPLACEMENTS -DBCD -DNO_UNARY_FUNCTION_COMPOSE -DSTATIC_BUILTIN_LEXER_FUNCTIONS -DNO_STDEXCEPT -DNO_PHYSICAL_CONSTANTS -DGIAC_HAS_STO_38 -DCAS38 -DFT2_BUILD_LIBRARY -Dsprintf=__sprintf -D__cplusplus -DNDEBUG -D__USB_CONFIG__ -DUSBH0_ENABLE -DUSBH0_HC_IF -DUSBD_ENABLE -DUSBD_HID_ENABLE --loose_implicit_cast --remove_unneeded_entities
modcmath.o
ARM C/C++ Compiler, 4.1 [Build 894]
ArmCC --cpp --whole_program --split_sections -c  --depend=.\obj\modcmath.d --cpu=ARM926EJ-S --fpmode=ieee_full --apcs=interwork//interwork -O3 --diag_suppress=1,9,111,161,177,185,191,368,514,550,611,1293,1299,1300,1464 -I..\ -I..\src -I..\..\Core -I..\..\Core\src -I..\..\Core\CAS\src -I..\..\Core\TomMath -I..\..\Core\napier -I..\..\Core\freetype\include\ -I..\..\Core\freetype\include\freetype\ -I..\..\_qt5\src -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -DUNICODE -D_UNICODE -DBESTA_OS -DBESTA_ARM_TARGET -DARM -DARM9 -DARM11 -DARM1176JZF -DSTANDALONE -DADS_COMPILER -DPDADEF -DKERNEL -DFULL_NAND_SYS -DFS_LONG_NAME_GET -DHAVE_AV_CONFIG_H -DEMULATE_FAST_INT -DEMULATE_INTTYPES -DFLASHLITEDLL -DFLASH_BESTARTOS -DFL31_STATICLIBRARY -D__STDC_LIMIT_MACROS -DFIR -DHAVE_CONFIG_H -DIN_GIAC -DUSE_GMP_REPLACEMENTS -DBCD -DNO_UNARY_FUNCTION_COMPOSE -DSTATIC_BUILTIN_LEXER_FUNCTIONS -DNO_STDEXCEPT -DNO_PHYSICAL_CONSTANTS -DGIAC_HAS_STO_38 -DCAS38 -DFT2_BUILD_LIBRARY -Dsprintf=__sprintf -D__cplusplus -DNDEBUG -D__USB_CONFIG__ -DUSBH0_ENABLE -DUSBH0_HC_IF -DUSBD_ENABLE -DUSBD_HID_ENABLE --loose_implicit_cast --remove_unneeded_entities
modcollections.o
ARM C/C++ Compiler, 4.1 [Build 894]
ArmCC --cpp --whole_program --split_sections -c  --depend=.\obj\modcollections.d --cpu=ARM926EJ-S --fpmode=ieee_full --apcs=interwork//interwork -O3 --diag_suppress=1,9,111,161,177,185,191,368,514,550,611,1293,1299,1300,1464 -I..\ -I..\src -I..\..\Core -I..\..\Core\src -I..\..\Core\CAS\src -I..\..\Core\TomMath -I..\..\Core\napier -I..\..\Core\freetype\include\ -I..\..\Core\freetype\include\freetype\ -I..\..\_qt5\src -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -DUNICODE -D_UNICODE -DBESTA_OS -DBESTA_ARM_TARGET -DARM -DARM9 -DARM11 -DARM1176JZF -DSTANDALONE -DADS_COMPILER -DPDADEF -DKERNEL -DFULL_NAND_SYS -DFS_LONG_NAME_GET -DHAVE_AV_CONFIG_H -DEMULATE_FAST_INT -DEMULATE_INTTYPES -DFLASHLITEDLL -DFLASH_BESTARTOS -DFL31_STATICLIBRARY -D__STDC_LIMIT_MACROS -DFIR -DHAVE_CONFIG_H -DIN_GIAC -DUSE_GMP_REPLACEMENTS -DBCD -DNO_UNARY_FUNCTION_COMPOSE -DSTATIC_BUILTIN_LEXER_FUNCTIONS -DNO_STDEXCEPT -DNO_PHYSICAL_CONSTANTS -DGIAC_HAS_STO_38 -DCAS38 -DFT2_BUILD_LIBRARY -Dsprintf=__sprintf -D__cplusplus -DNDEBUG -D__USB_CONFIG__ -DUSBH0_ENABLE -DUSBH0_HC_IF -DUSBD_ENABLE -DUSBD_HID_ENABLE --loose_implicit_cast --remove_unneeded_entities
modgc.o
ARM C/C++ Compiler, 4.1 [Build 894]
ArmCC --cpp --whole_program --split_sections -c  --depend=.\obj\modgc.d --cpu=ARM926EJ-S --fpmode=ieee_full --apcs=interwork//interwork -O3 --diag_suppress=1,9,111,161,177,185,191,368,514,550,611,1293,1299,1300,1464 -I..\ -I..\src -I..\..\Core -I..\..\Core\src -I..\..\Core\CAS\src -I..\..\Core\TomMath -I..\..\Core\napier -I..\..\Core\freetype\include\ -I..\..\Core\freetype\include\freetype\ -I..\..\_qt5\src -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -DUNICODE -D_UNICODE -DBESTA_OS -DBESTA_ARM_TARGET -DARM -DARM9 -DARM11 -DARM1176JZF -DSTANDALONE -DADS_COMPILER -DPDADEF -DKERNEL -DFULL_NAND_SYS -DFS_LONG_NAME_GET -DHAVE_AV_CONFIG_H -DEMULATE_FAST_INT -DEMULATE_INTTYPES -DFLASHLITEDLL -DFLASH_BESTARTOS -DFL31_STATICLIBRARY -D__STDC_LIMIT_MACROS -DFIR -DHAVE_CONFIG_H -DIN_GIAC -DUSE_GMP_REPLACEMENTS -DBCD -DNO_UNARY_FUNCTION_COMPOSE -DSTATIC_BUILTIN_LEXER_FUNCTIONS -DNO_STDEXCEPT -DNO_PHYSICAL_CONSTANTS -DGIAC_HAS_STO_38 -DCAS38 -DFT2_BUILD_LIBRARY -Dsprintf=__sprintf -D__cplusplus -DNDEBUG -D__USB_CONFIG__ -DUSBH0_ENABLE -DUSBH0_HC_IF -DUSBD_ENABLE -DUSBD_HID_ENABLE --loose_implicit_cast --remove_unneeded_entities
modio.o
ARM C/C++ Compiler, 4.1 [Build 894]
ArmCC --cpp --whole_program --split_sections -c  --depend=.\obj\modio.d --cpu=ARM926EJ-S --fpmode=ieee_full --apcs=interwork//interwork -O3 --diag_suppress=1,9,111,161,177,185,191,368,514,550,611,1293,1299,1300,1464 -I..\ -I..\src -I..\..\Core -I..\..\Core\src -I..\..\Core\CAS\src -I..\..\Core\TomMath -I..\..\Core\napier -I..\..\Core\freetype\include\ -I..\..\Core\freetype\include\freetype\ -I..\..\_qt5\src -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -DUNICODE -D_UNICODE -DBESTA_OS -DBESTA_ARM_TARGET -DARM -DARM9 -DARM11 -DARM1176JZF -DSTANDALONE -DADS_COMPILER -DPDADEF -DKERNEL -DFULL_NAND_SYS -DFS_LONG_NAME_GET -DHAVE_AV_CONFIG_H -DEMULATE_FAST_INT -DEMULATE_INTTYPES -DFLASHLITEDLL -DFLASH_BESTARTOS -DFL31_STATICLIBRARY -D__STDC_LIMIT_MACROS -DFIR -DHAVE_CONFIG_H -DIN_GIAC -DUSE_GMP_REPLACEMENTS -DBCD -DNO_UNARY_FUNCTION_COMPOSE -DSTATIC_BUILTIN_LEXER_FUNCTIONS -DNO_STDEXCEPT -DNO_PHYSICAL_CONSTANTS -DGIAC_HAS_STO_38 -DCAS38 -DFT2_BUILD_LIBRARY -Dsprintf=__sprintf -D__cplusplus -DNDEBUG -D__USB_CONFIG__ -DUSBH0_ENABLE -DUSBH0_HC_IF -DUSBD_ENABLE -DUSBD_HID_ENABLE --loose_implicit_cast --remove_unneeded_entities
modmath.o
ARM C/C++ Compiler, 4.1 [Build 894]
ArmCC --cpp --whole_program --split_sections -c  --depend=.\obj\modmath.d --cpu=ARM926EJ-S --fpmode=ieee_full --apcs=interwork//interwork -O3 --diag_suppress=1,9,111,161,177,185,191,368,514,550,611,1293,1299,1300,1464 -I..\ -I..\src -I..\..\Core -I..\..\Core\src -I..\..\Core\CAS\src -I..\..\Core\TomMath -I..\..\Core\napier -I..\..\Core\freetype\include\ -I..\..\Core\freetype\include\freetype\ -I..\..\_qt5\src -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -DUNICODE -D_UNICODE -DBESTA_OS -DBESTA_ARM_TARGET -DARM -DARM9 -DARM11 -DARM1176JZF -DSTANDALONE -DADS_COMPILER -DPDADEF -DKERNEL -DFULL_NAND_SYS -DFS_LONG_NAME_GET -DHAVE_AV_CONFIG_H -DEMULATE_FAST_INT -DEMULATE_INTTYPES -DFLASHLITEDLL -DFLASH_BESTARTOS -DFL31_STATICLIBRARY -D__STDC_LIMIT_MACROS -DFIR -DHAVE_CONFIG_H -DIN_GIAC -DUSE_GMP_REPLACEMENTS -DBCD -DNO_UNARY_FUNCTION_COMPOSE -DSTATIC_BUILTIN_LEXER_FUNCTIONS -DNO_STDEXCEPT -DNO_PHYSICAL_CONSTANTS -DGIAC_HAS_STO_38 -DCAS38 -DFT2_BUILD_LIBRARY -Dsprintf=__sprintf -D__cplusplus -DNDEBUG -D__USB_CONFIG__ -DUSBH0_ENABLE -DUSBH0_HC_IF -DUSBD_ENABLE -DUSBD_HID_ENABLE --loose_implicit_cast --remove_unneeded_entities
modstruct.o
ARM C/C++ Compiler, 4.1 [Build 894]
ArmCC --cpp --whole_program --split_sections -c  --depend=.\obj\modstruct.d --cpu=ARM926EJ-S --fpmode=ieee_full --apcs=interwork//interwork -O3 --diag_suppress=1,9,111,161,177,185,191,368,514,550,611,1293,1299,1300,1464 -I..\ -I..\src -I..\..\Core -I..\..\Core\src -I..\..\Core\CAS\src -I..\..\Core\TomMath -I..\..\Core\napier -I..\..\Core\freetype\include\ -I..\..\Core\freetype\include\freetype\ -I..\..\_qt5\src -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -DUNICODE -D_UNICODE -DBESTA_OS -DBESTA_ARM_TARGET -DARM -DARM9 -DARM11 -DARM1176JZF -DSTANDALONE -DADS_COMPILER -DPDADEF -DKERNEL -DFULL_NAND_SYS -DFS_LONG_NAME_GET -DHAVE_AV_CONFIG_H -DEMULATE_FAST_INT -DEMULATE_INTTYPES -DFLASHLITEDLL -DFLASH_BESTARTOS -DFL31_STATICLIBRARY -D__STDC_LIMIT_MACROS -DFIR -DHAVE_CONFIG_H -DIN_GIAC -DUSE_GMP_REPLACEMENTS -DBCD -DNO_UNARY_FUNCTION_COMPOSE -DSTATIC_BUILTIN_LEXER_FUNCTIONS -DNO_STDEXCEPT -DNO_PHYSICAL_CONSTANTS -DGIAC_HAS_STO_38 -DCAS38 -DFT2_BUILD_LIBRARY -Dsprintf=__sprintf -D__cplusplus -DNDEBUG -D__USB_CONFIG__ -DUSBH0_ENABLE -DUSBH0_HC_IF -DUSBD_ENABLE -DUSBD_HID_ENABLE --loose_implicit_cast --remove_unneeded_entities
modsys.o
ARM C/C++ Compiler, 4.1 [Build 894]
ArmCC --cpp --whole_program --split_sections -c  --depend=.\obj\modsys.d --cpu=ARM926EJ-S --fpmode=ieee_full --apcs=interwork//interwork -O3 --diag_suppress=1,9,111,161,177,185,191,368,514,550,611,1293,1299,1300,1464 -I..\ -I..\src -I..\..\Core -I..\..\Core\src -I..\..\Core\CAS\src -I..\..\Core\TomMath -I..\..\Core\napier -I..\..\Core\freetype\include\ -I..\..\Core\freetype\include\freetype\ -I..\..\_qt5\src -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -DUNICODE -D_UNICODE -DBESTA_OS -DBESTA_ARM_TARGET -DARM -DARM9 -DARM11 -DARM1176JZF -DSTANDALONE -DADS_COMPILER -DPDADEF -DKERNEL -DFULL_NAND_SYS -DFS_LONG_NAME_GET -DHAVE_AV_CONFIG_H -DEMULATE_FAST_INT -DEMULATE_INTTYPES -DFLASHLITEDLL -DFLASH_BESTARTOS -DFL31_STATICLIBRARY -D__STDC_LIMIT_MACROS -DFIR -DHAVE_CONFIG_H -DIN_GIAC -DUSE_GMP_REPLACEMENTS -DBCD -DNO_UNARY_FUNCTION_COMPOSE -DSTATIC_BUILTIN_LEXER_FUNCTIONS -DNO_STDEXCEPT -DNO_PHYSICAL_CONSTANTS -DGIAC_HAS_STO_38 -DCAS38 -DFT2_BUILD_LIBRARY -Dsprintf=__sprintf -D__cplusplus -DNDEBUG -D__USB_CONFIG__ -DUSBH0_ENABLE -DUSBH0_HC_IF -DUSBD_ENABLE -DUSBD_HID_ENABLE --loose_implicit_cast --remove_unneeded_entities
modthread.o
ARM C/C++ Compiler, 4.1 [Build 894]
ArmCC --cpp --whole_program --split_sections -c  --depend=.\obj\modthread.d --cpu=ARM926EJ-S --fpmode=ieee_full --apcs=interwork//interwork -O3 --diag_suppress=1,9,111,161,177,185,191,368,514,550,611,1293,1299,1300,1464 -I..\ -I..\src -I..\..\Core -I..\..\Core\src -I..\..\Core\CAS\src -I..\..\Core\TomMath -I..\..\Core\napier -I..\..\Core\freetype\include\ -I..\..\Core\freetype\include\freetype\ -I..\..\_qt5\src -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -DUNICODE -D_UNICODE -DBESTA_OS -DBESTA_ARM_TARGET -DARM -DARM9 -DARM11 -DARM1176JZF -DSTANDALONE -DADS_COMPILER -DPDADEF -DKERNEL -DFULL_NAND_SYS -DFS_LONG_NAME_GET -DHAVE_AV_CONFIG_H -DEMULATE_FAST_INT -DEMULATE_INTTYPES -DFLASHLITEDLL -DFLASH_BESTARTOS -DFL31_STATICLIBRARY -D__STDC_LIMIT_MACROS -DFIR -DHAVE_CONFIG_H -DIN_GIAC -DUSE_GMP_REPLACEMENTS -DBCD -DNO_UNARY_FUNCTION_COMPOSE -DSTATIC_BUILTIN_LEXER_FUNCTIONS -DNO_STDEXCEPT -DNO_PHYSICAL_CONSTANTS -DGIAC_HAS_STO_38 -DCAS38 -DFT2_BUILD_LIBRARY -Dsprintf=__sprintf -D__cplusplus -DNDEBUG -D__USB_CONFIG__ -DUSBH0_ENABLE -DUSBH0_HC_IF -DUSBD_ENABLE -DUSBD_HID_ENABLE --loose_implicit_cast --remove_unneeded_entities
moduerrno.o
ARM C/C++ Compiler, 4.1 [Build 894]
ArmCC --cpp --whole_program --split_sections -c  --depend=.\obj\moduerrno.d --cpu=ARM926EJ-S --fpmode=ieee_full --apcs=interwork//interwork -O3 --diag_suppress=1,9,111,161,177,185,191,368,514,550,611,1293,1299,1300,1464 -I..\ -I..\src -I..\..\Core -I..\..\Core\src -I..\..\Core\CAS\src -I..\..\Core\TomMath -I..\..\Core\napier -I..\..\Core\freetype\include\ -I..\..\Core\freetype\include\freetype\ -I..\..\_qt5\src -IC:\Keil\ARM\RV31\Inc -IC:\Keil\ARM\CMSIS\Include -DUNICODE -D_UNICODE -DBESTA_OS -DBESTA_ARM_TARGET -DARM -DARM9 -DARM11 -DARM1176JZF -DSTANDALONE -DADS_COMPILER -DPDADEF -DKERNEL -DFULL_NAND_SYS -DFS_LONG_NAME_GET -DHAVE_AV_CONFIG_H -DEMULATE_FAST_INT -DEMULATE_INTTYPES -DFLASHLITEDLL -DFLASH_BESTARTOS -DFL31_STATICLIBRARY -D__STDC_LIMIT_MACROS -DFIR -DHAVE_CONFIG_H -DIN_GIAC -DUSE_GMP_REPLACEMENTS -DBCD -DNO_UNARY_FUNCTION_COMPOSE -DSTATIC_BUILTIN_LEXER_FUNCTIONS -DNO_STDEXCEPT -DNO_PHYSICAL_CONSTANTS -DGIAC_HAS_STO_38 -DCAS38 -DFT2_BUILD_LIBRARY -Dsprintf=__sprintf -D__cplusplus -DNDEBUG -D__USB_CONFIG__ -DUSBH0_ENABLE -DUSBH0_HC_IF -DUSBD_ENABLE -DUSBD_HID_ENABLE --loose_implicit_cast --remove_unneeded_entities

Déjà, la présence du module micropython nous indique que l'interpréteur retenu pour la HP Prime est MicroPython, comme sur Casio, NumWorks et TI-Nspire.

De façon générale, si l'on en croit le nommage des fichiers, nous pourrions donc avoir des modules es, factor, poly, micropython, array, builtins, cmath, collections, gc, io, math, struct, sys, thread et uerrno.
En plus de builtins qui est importé par défaut, seulement 7 autres modules additionnels sont réellement importables : array, cmath, gc, math, micropython, sys et uerrno.
MicroPython
TI-Nspire
NumWorks
Casio
Graph 35+E II
Graph 90+E
CasioPython
Graph 35+E II
Graph 35+E/USB
Graph 75/85/95
TI-83PCE Ed. Python
TI-Python / TI-83PCE
firmware tiers
TI-Python / TI-83PCE
HP Prime
builtins
array
collections
cmath
gc
math
micropython
os
random
sys
time
turtle
uerrno


 




 
 

 
 
 

 
 

 


 

 


 

 
 
 
 

 
 

 
 
 
 


 




 


 
 



 


 




 
 











 
 












spécifiquenspkandinskyboard
storage
Total88398138

On pourra regretter à date l'absence des modules random et time.
D'où le classement suivant en terme d'éventail de modules :
  1. 13 modules : module externe TI-Python pour TI-83 Premium CE (firmware tiers)
  2. 9 modules : Casio Graph 35+E II / 35+E/USB / 75/85/95 / fx-9750GII / fx-9860G/GII (application CasioPython)
  3. 8 modules : HP Prime + TI-83 Premium CE Edition Python + NumWorks + TI-Nspire (application MicroPython) + module externe TI-Python pour TI-83 Premium CE
  4. 3 modules : Casio Graph 35+E II / 90+E / fx-CG50




4) Exploration module sys et nombres entiers :

Go to top

Bien, abordons maintenant l'exploration de modules. Comme nous avons vu plus haut que définir plusieurs fonctions non triviales était problématique, nous allons réécrire exceptionnellement notre script d'exploration habituel sous la forme d'une unique fonction :
Code: Tout sélectionner
def explmod(pitm,pitmsl=[],reset=True):
  if(reset):
    try:
      s=pitm.__name__
    except:
      s=str(pitm)
      a=s.find("'")
      b=s.rfind("'")
      if a>=0 and b!=a:
        s=s[a+1:b]
    pitmsl=[s]
  hd="."*(len(pitmsl)-1)
  spath=".".join(pitmsl)
  c,c2=0,0
  for itms in sorted(dir(pitm)):
    c,c2=c+1,c2+1
    try:
      itm=eval(spath+"."+itms)
      sitm=str(itm)
      print(hd+itms+"="+str(itm))
      if (sitm.startswith("<module '") or sitm.startswith("<class '")) and itm!=pitm:
        pitmsl2=pitmsl.copy()
        pitmsl2.append(itms)
        c2=c2+explmod(itm,pitmsl2,False)[1]
    except:
      print(hd+itms)
  if c>0 and reset:
    s="Total: "
    s+=str(c)+" 1st level item(s)"
    if c2>0 and c2!=c:
      s+=" - "+str(c2)+" item(s)"
    print(s)
  return [c,c2]

L'appel explmod(sys) nous révèle de 17 à 21 éléments, selon que l'on en reste aux éléments du premier niveau ou compte également les sous-éléments.

Plusieurs éléments sont à remarquer :
  • sys.implementation.name qui nous confirme là encore que l'interpréteur Python est basé sur MicroPython
  • sys.implementation.version qui précise la version MicroPython concernée, ici 1.9.4 comme chez Casio et NumWorks
  • sys.version qui nous précise la version de Python implémentée, ici 3.4.0
  • sys.platform qui vaut "HP Prime" et pourra servir de vérification pour les scripts Python souhaitant par exemple optimiser leur affichage pour HP Prime, la console étant ici contrainte par l'écran 320x240 pixels
  • sys.maxsize qui nous indique l'entier maximum codable nativement sur le matériel HP Prime, ici 2147483647==2**31-1

Sans surprise les entiers natifs sont donc codés sur 32 bits (avec le bit de signe), ce qui nous permet de réaliser un petit test en tentant d'aller au-delà, avec par exemple sys.maxsize+1. Visiblement pas d'erreur, ce qui veut dire que l'équipe HP a activé la gestion des entiers longs, là encore un excellent choix ! :bj:



5) Exploration autres modules :

Go to top

Le même script nous permet d'explorer les autres modules :
  • array avec 3 à 13 éléments
  • cmath avec 13 à 17 éléments
  • gc avec 9 à 13 éléments
  • math avec 42 à 46 éléments
  • micropython avec 10 à 14 éléments
  • uerrno avec 25 à 29 éléments
  • builtins avec 97 à 428 éléments

D'où le bilan tous modules confondus :
MicroPython
TI-Nspire
NumWorks
Casio
Graph 35+E II
Graph 90+E
CasioPython
Graph 35+E II
Graph 35+E/USB
Graph 75/85/95
TI-83PCE Ed. Python
TI-Python / TI-83PCE
firmware tiers
TI-Python / TI-83PCE
HP Prime
builtins
array
collections
cmath
gc
math
micropython
os
random
sys
time
turtle
uerrno
93-218
4
 
12
7
41
3
 
 
15
 
 
 
88-188
 
 
12
 
41
6
 
8
 
3
38
 
84-175
 
 
 
 
25
 
 
8
 
 
 
 
91-204
4
 
12
7
41
6
 
8
12
 
 
24
91-190
4
2
 
7
28
 

8
15
4
 
 
93-191
4
2
12
7
41
6
15
8
15
10
 
 
97-428
3-13
 
13-17
9-13
42-46
10-14
 
 
17-21
 
 
25-29
spécifique10(nsp)6(kandinsky)22(board)
21(storage)
Total185-310202-302117-208181-294159-258213-354216-581


D'où le classement suivant en terme de richesse des modules Python :
  1. 216-581 éléments : HP Prime
  2. 213-354 éléments : module externe TI-Python pour TI-83 Premium CE (firmware tiers)
  3. 185-310 éléments : TI-Nspire (application MicroPython)
  4. 202-302 éléments : NumWorks
  5. 181-294 éléments : Casio Graph 35+E II / 35+E/USB / 75/85/95 / fx-9750GII / fx-9860G/GII (application CasioPython)
  6. 159-258 éléments : TI-83 Premium CE Edition Python + module externe TI-Python pour TI-83 Premium CE
  7. 117-208 éléments : Casio Graph 35+E II / 90+E / fx-CG50




6) Mémoire de travail et récursivité:

Go to top

Passons maintenant à la détermination de la mémoire de travail accessible à l'interpréteur Python. Pour palier les limites de l'actuelle version alpha, nous allons là encore devoir réécrire notre script de recherche habituel sous la forme d'une fonction unique :
Code: Tout sélectionner
def mem(v=1,r=1):
  try:
    l=[]
    try:
      sizeenv=0
      import __main__
      for o in dir(__main__):
        try:
          o=eval(o)
          s,a=0,[o]
          if type(o)==list:a+=o
          for g in a:
            t=type(g)
            if t==str:s+=49+len(g)
            if str(t)=="<class 'function'>":s+=136
            if t==int:
              s+=24
              while g:
                s+=4
                g>>=30
            if t==list:s+=64+8*len(g)
          sizeenv+=s
        except:pass
      l+=[r and 741+sizeenv]
      if v*r:print(" ",l[0])
      l+=[0]
      l+=[""]
      l[2]+="x"
      while 1:
        try:l[2]+=l[2][l[1]:]
        except:
          if l[1]<len(l[2])-1:l[1]=len(l[2])-1
          else:raise(Exception)
    except:
      s,a=0,[l]
      if type(l)==list:a+=l
      for g in a:
        t=type(g)
        if t==str:s+=49+len(g)
        if str(t)=="<class 'function'>":s+=136
        if t==int:
          s+=24
          while g:
            s+=4
            g>>=30
        if t==list:s+=64+8*len(g)
      if v:print("+",s)
      try:l[0]+=s
      except:pass
      try:l[0]+=mem(v,0)
      except:pass
      return l[0]
  except:return 0


L'appel mem() tente d'allouer un maximum de blocs mémoire, de plus en plus petits pour remplir au mieux cette dernière, et nous indique donc un total impressionnant de 1,022145 Mo, de quoi coder confortablement nombre de projets ! :bj:
  1. 2,049276 Mo : TI-Nspire (application MicroPython)
  2. 1,032942 Mo : Casio Graph 90+E
  3. 1,022145 Mo : HP Prime
  4. 257,636 Ko : Casio Graph 35/75+E (application CasioPython)
  5. 100,560 Ko : Casio Graph 35+E II
  6. 31,899 Ko : Casio Graph 35+E II (application CasioPython)
  7. 22,605 Ko : TI-83 Premium CE & TI-Python (firmware tiers)
  8. 20,200 Ko : TI-83 Premium CE Edition Python
  9. 19,924 Ko : TI-83 Premium CE & TI-Python
  10. 16,109 Ko : NumWorks N0100
  11. 15,984 Ko : NumWorks N0110


Mais il n'y a pas que la mémoire dans la vie d'un script Python, il y a aussi la pile (stack). Nous allons maintenant partir sur un test de récursivité avec le script suivant :
Code: Tout sélectionner
def maxr(fct):
  n=0
  try:
    while True:
      fct(n)
      n=n+1
  except Exception as e:print(e)
  return n

def sumr(n):return n>0 and n+sumr(n-1)

Avec une deuxième fonction dont la définition tient ici sur une seule ligne, nous n'avons apparemment pas de problème.

L'application HP Prime nous permet donc actuellement jusqu'à 77 niveaux de récursion, une limite a priori bien positionnée pour les projets. :)
  1. 5362 : Casio Graph 35/75+E (application CasioPython)
  2. 655 : Casio Graph 35+E II (application CasioPython)
  3. 130 : TI-Nspire (application MicroPython)
  4. 82 : Casio Graph 90+E + Casio Graph 35+E II
  5. 77 : HP Prime
  6. 29 : NumWorks
  7. 23 : TI-83 Premium CE Edition Python
  8. 20 : TI-83 Premium CE & TI-Python
  9. 15 : TI-83 Premium CE & TI-Python (firmware tiers)




7) Performances :

Go to top

Terminons avec un test de performances de l'application Python. Il faudra le relativiser, puisqu'il ne peut donc être effectué que sur l'ancien modèle HP Prime G1.
Notre script de test en virgule flottante peut être réécrit en une seule fonction sans modifications lourdes, et resterait donc valide pour des comparaisons :
Code: Tout sélectionner
def seuil(d):
  n=0
  u=2.
  d=d**2
  while (u-1)**2>=d:
    u=1+1/((1-u)*(n+1))
    n=n+1
  return [n,u]

L'absence du module time nous oblige à l'itérer plusieurs fois de suite et à faire une moyenne du temps chronométré. L'appel seuil(0.008) prendrait environ 0,283s. :o
Finalement non, même pas besoin de relativiser, avec l'application Python les calculs en virgule flottante de la HP Prime G1 sont beaucoup plus rapides, et on se demande bien ce que ça pourrait donner sur HP Prime G2 ! ;)
  1. 0,27s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz overclocké @222MHz via Nover avec l'interpréteur MicroPython)
  2. 0,283s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz avec l'application Python intégrée)
  3. 0,376s : HP Prime G2 (32 bits : Cortex-A7/ARMv7 @528MHz avec l'écriture Python du mode CAS)
  4. 0,38s : TI-Nspire (32 bits : ARM9/ARMv5 overclocké @120MHz @150MHz via Nover avec l'interpréteur MicroPython)
  5. 0,47s : TI-Nspire (32 bits : ARM9/ARMv5 @120MHz avec l'interpréteur MicroPython)
  6. 0,48s : TI-Nspire CX (révisions A-V) (32 bits : ARM9/ARMv5 @132MHz avec l'interpréteur MicroPython)
  7. 0,498s : NumWorks N0110 (32 bits : Cortex-M7/ARMv7 @216MHz)
  8. 0,53s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz overclocké @216MHz via Nover avec l'interpréteur MicroPython)
  9. 0,59s : Casio Graph 35/75+E (32 bits : SH4 @29,49MHz overclocké @267,78MHz via Ftune2 avec l'interpréteur CasioPython)
  10. 0,68s : TI-Nspire CX CR4+ (révisions W+) (32 bits : ARM9/ARMv5 @156MHz avec l'interpréteur MicroPython)
  11. 0,785s : NumWorks N0100 (32 bits : Cortex-M4/ARMv7 @100MHz)
  12. 0,79s : Casio Graph 35+E II (32 bits : SH4 @58,98MHz overclocké @274,91MHz via Ftune3 avec l'interpréteur CasioPython)
  13. 1,61s : HP Prime G1 (32 bits : ARM9/ARMv5 @400MHz avec l'écriture Python du mode CAS)
  14. 1,86s : Casio Graph 35+E II (32 bits : SH4 @58,98MHz overclocké @274,91MHz via Ftune3 avec l'application Python intégrée)
  15. 2,15s : Casio Graph 90+E (32 bits : SH4 @117,96MHz overclocké @270,77MHz via Ptune3 avec l'application Python intégrée)
  16. 2,96s : Casio Graph 35+E II (32 bits : SH4 @58,98MHz overclocké @274,91MHz via Ftune3 avec l'interpréteur KhiCAS)
  17. 3,27s : Casio Graph 90+E (32 bits : SH4 @117,96MHz)
  18. 3,65s : Casio Graph 90+E (32 bits : SH4 @117,96MHz overclocké @270,77MHz via Ptune3 avec l'interpréteur KhiCAS)
  19. 3,73s : TI-83 Premium CE + module externe TI-Python (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz avec l'application PyAdaptr)
  20. 3,9s : Casio Graph 35+E II (32 bits : SH4 @58,98 avec l'interpréteur CasioPython)
  21. 3,93s : TI-83 Premium CE Edition Python (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz avec l'application Python)
  22. 4s : Casio Graph 35/75+E (32 bits : SH4 @29,49MHz avec l'interpréteur CasioPython)
  23. 4,4s : TI-83 Premium CE + module externe TI-Python (8 + 32 bits : eZ80 @48MHz + Cortex-M0+/ARMv6 @48MHz avec firmware CircuitPython)
  24. 5,48s : Casio Graph 90+E (32 bits : SH4 @117,96MHz avec l'interpréteur KhiCAS)
  25. 9,21s : Casio Graph 35+E II (32 bits : SH4 @58,98MHz avec l'application Python intégrée)
  26. 13,93s : Casio Graph 35+E II (32 bits : SH4 @58,98MHz avec l'interpréteur KhiCAS)





8) Récapitulatif et conclusion :

Go to top

Bien qu'actuellement instable et encore en version alpha, le développement de l'application Python pour HP Prime semble être parti sur de très bons rails, l'équipe sachant éviter nombre de défauts encore présents chez la concurrence sur les préversions des salons ou même versions finales. On apprécie d'avoir déjà l'essentiel pour le programme du lycée : entiers longs, flottants en double précision, nombres complexes avec le module cmath qui va avec, une mémoire de travail suffisante pour faire tourner des scripts un minimum ambitieux... une application Python a priori très prometteuse et qui ne pourra évoluer que dans le bon sens ! :bj:
Tu auras désormais libre choix entre la couche de traduction du mode CAS, et l'application Python standard ! :D

Outre l'instabilité qui sera forcément corrigée, on pourra juste regretter à date l'absence des modules random et time. Précisons aussi qu'un module graphique serait fort bienvenu pour le programme de Physique-Chimie de Seconde.

Texas Instruments ayant apparemment tué Ndless et l'application MicroPython qui lui était dédié avec ses mises à jour 4.5.1 pour TI-Nspire CX I puis ses TI-Nspire CX II, la calculatrice HP Prime est partie pour être le premier modèle haut de gamme avec une application Python véritable et officielle, et en pratique le seul modèle haut de gamme avec une application Python utilisable. :bj:
Nous ne nous attendions pas à ce que Hewlett Packard nous prépare pour son modèle HP Prime international une mise à jour à ce point pertinente par rapport à l'évolution des programmes scolaires français, nous sommes fort agréablement surpris, bravo ! :D

Le firmware HP Prime G1 avec application Python reste disponible ci-après. En dehors de la curiosité intellectuelle ou technique et à moins que le Python n'ait un intérêt vital pour toi au détriment des autres fonctionnaltés, nous te déconseillons fortement de l'installer, particulièrement dans le contexte d'évaluations ! :#non#:

Il va falloir aussi mettre un bémol à notre enthousiasme, en l'absence d'une annonce officielle. Dans son état actuel, il n'est pas envisageable qu'une mise à jour d'ici quelques semaines puisse inclure cette application Python. Et vu les délais de validation d'une nouvelle version, nous ne sommes même pas sûrs qu'une sortie d'une autre mise à jour incluant cet ajout majeur soit envisageable avant les examens 2020.

Aussi, ce n'est pas parce qu'une application Python est en développement pour HP Prime qu'elle sortira forcément un jour sur HP Prime.

Prenons l'exemple des émulateurs HP Prime pour Linux, ils ont fait partie du beta-testing de rentrée 2018 et ne sont toujours pas sortis à ce jour. Il sont de plus accompagnés de la mention suivante, qui pourrait parfaitement être adaptée à l'application Python à une reformulation près :
HP a écrit:Beta version of the technical preview of an emulator of the HP Prime Graphing Calculator for Linux. Lets you do everything the calculator does, but with the full control of your keyboard and mouse and taking full advantage of your PC's computing power. This is a technical preview and does not indicate a supported Linux release will be forthcoming.


C'est donc encore loin d'être gagné pour une application Python sur HP Prime, chacun doit se donner la peine de communiquer son enthousiasme auprès de calcbeta@hp.com . ;)



Téléchargements :

Source : https://www.hpmuseum.org/forum/thread-1 ... #pid122692 et messages suivants
Lien vers le sujet sur le forum: Application Python officielle pour HP Prime G1 et bêta-test (Commentaires: 15)

Omega, firmware NumWorks ultime pour les regrouper tous

Nouveau messagede Admin » 31 Oct 2019, 14:17

La NumWorks est revendiquée comme une calculatrice ouverte. Tu as accès au code source, et es libre de le modifier et soumettre à l'équipe NumWorks, ou de le recompiler toi-même.

On peut citer nombre de réalisations communautaires; de façon non exhaustive :

Mais derrière cette façade la réalité est tout autre, et paradoxalement le développement communautaire rencontre bien plus de succès sur les modèles concurrents non ouverts. :#roll#:

En effet l'équipe NumWorks n'intègre généralement que peu de ces créations.

Cela peut peut certes se comprendre puisque nombre d'entre elles sont de simples 'amusements' sans intérêt justifié, surtout quand on sait que :
  • la NumWorks N0100 n'a que 1Mio de mémoire Flash
  • les NumWorks N0100 et NumWorks N0110 n'ont que 256Kio de mémoire RAM

D'autres ont pourtant un intérêt scolaire parfaitement pertinent et ne sont pas intégrées pour autant ou alors après plusieurs mois.
  • Celles concernant le calcul littéral/formel vont à l'encontre des intérêts commerciaux du constructeur, ces fonctionnalités étant interdites aux examens chez nos voisins européens (Italie, Pays-Bas, Portugal, Royaume-Uni...).
  • Mais nombre de refus ou mises de côté à ce jour ne rentrent pas dans ce cas. Peut-être parce que les ajouts en question correspondent à une future fonctionnalité déjà prévue par le constructeur, avec une interface différente, les interfaces NumWorks étant généralement fort bien pensées...

Et donc voilà le problème. Contrairement à la concurrence, la NumWorks ne dispose pas à ce jour d'une gestion d'applications (ou plus généralement extensions, add-in, addon, plug-in, bibliothèque, librairies, modules...).

Les auteurs d'améliorations non retenues par l'équipe NumWorks n'ont que le choix :
  • de les diffuser sous forme de code source, qu'il faudra intégrer au code officiel avec d'éventuelles modifications puisque ce dernier change chaque semaine - cela ne cible déjà plus l'utilisateur scolaire lambda
  • de les diffuser sous forme de firmware précompilé, facile à installer grâce à notre outil en ligne

Si la distribution sous forme de firmware est la plus pertinente à ce jour pour le grand public, elle est loin d'être sans inconvénient. En effet :
  • Chaque développeur compile donc dans son coin son firmware incluant ses propres ajouts, et il est donc impossible d'installer simultanément les ajouts de différents développeurs
  • De plus, le code du firmware NumWorks officiel change chaque semaine avec des mises à jour quasiment chaque mois. Passer sur un firmware tiers c'est donc se priver de toutes les améliorations officielles. A moins que le développeur concerné ne se donne la peine d'intégrer les ajouts officiels au fur et à mesure, avec corrections éventuelles du code pour compatibilité avec ses modifications. Et en pratique très peu s'en donnent la peine, laissant donc leurs firmwares devenir progressivement de plus en plus obsolètes dans leur coin. :'(

jean-baptiste boric avait certes tenté de faire quelque chose contre cet énorme problème l'été dernier, avec une compilation ponctuelle d'un firmware regroupant plusieurs de ses améliorations et de celles d'autres développeurs jusqu'à présent refusées ou délaissées par l'équipe NumWorks.

Il faudra compter cette année avec un nouveau projet de firmware par quentinguidee aidé de redgl0w, Omega.

Omega a pour but d'intégrer un maximum des ajouts non repris par l'équipe NumWorks, et de les maintenir fonctionnels au fur et à mesure des mises à jour officielles ! :bj:

A ce jour l'essentiel de ce qui a été énuméré plus haut et non encore intégré par l'équipe NumWorks en fait partie :

L'intégration du tableau périodique des éléments par M4x1m3 est également dans les tuyaux.

De plus avec Omega pas besoin de t'embêter à compiler ou chercher et récupérer le dernier fichier firmware, une interface d'installation en ligne est également disponible (pour NumWorks N0100 uniquement à ce jour) te proposant directement la dernière version Omega, à ce jour 1.8. :bj:
Cet outil nécessitera juste un navigateur utilisant le moteur Chromium (Google Chrome, Microsoft Edge, ...).

Nous allons donc voir si Omega permet de redonner un nouvel élan à la communauté des développeurs NumWorks. ;)


Liens :

Téléchargement : Omega 1.10.1 pour NumWorks N0110

Source : viewtopic.php?f=102&t=23093#p247402
Lien vers le sujet sur le forum: Omega, firmware NumWorks ultime pour les regrouper tous (Commentaires: 18)

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1687 utilisateurs:
>1646 invités
>36 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)