Page 1 of 2

Le print() du Lua restauré pour l'OS 3.1 !

Unread postPosted: 24 Mar 2012, 07:41
by Lionel Debroux
En septembre, lors de la sortie de l'OS 3.1.0.392 pour la famille Nspire, nous vous informions que la fonction standard print() avait été retirée de Lua. Cette fonction était pourtant très utile pour contrôler des périphériques externes ou produire du son - bref, pour rendre la Nspire plus flexible et plus utile :(

Ce vilain défaut de l'OS 3.1.0.392 est maintenant corrigé, grâce à un travail d'équipe qui a donné fixprint. fixprint modifie l'OS en RAM pour restaurer la fonctionnalité dont TI a privé les utilisateurs, et peut être lancé au démarrage par Ndless 3.1 :)
Voici encore une démonstration éclatante des possibilitées sans fin offertes par le code natif: le code natif permet même des corrections à chaud du comportement de l'OS, sans que TI ait à releaser de nouvelles versions !
Mais malheureusement, TI reste particulièrement borné sur le sujet, fermant vite la porte à toute utilisation du code natif sur la plate-forme Nspire - même si c'est non seulement inutile (car ils vont échouer, encore et encore, comme tous les autres qui ont essayé avant eux depuis plus de 20 ans), mais aussi dangereux pour eux.


Téléchargement de fixprint: archives_voir.php?id=4227 .

Re: Le print() du Lua restauré pour l'OS 3.1 !

Unread postPosted: 24 Mar 2012, 11:04
by critor
Génial! :bj:

On peut à nouveau jouer à Nyan Cat en musique! :D


Re: Le print() du Lua restauré pour l'OS 3.1 !

Unread postPosted: 24 Mar 2012, 11:20
by AlexRider38
EDIT: dans ce post, AlexRider38 indiquait, avec de gros caractères rouges, que le programme rebootait sur sa machine, et déconseillait l'utilisation de fixprint, mais sans préciser aucune info qui pouvait aider au debug.

Nous avons donc bien sûr refait des tests (merci critor en particulier), et il s'avère effectivement que Ndless 3.1 beta r557 ne semble pas apprécier ce programme, alors que ça fonctionne avec Ndless 3.1 beta r568 (la dernière version actuelle, sur laquelle les beta tests avaient été réalisés).

Je ne comprends pas trop pourquoi ça fonctionne avec r568 alors que ça ne fonctionne pas avec r557 (car fixprint utilise très peu de fonctions de Ndless, et que ces fonctions n'ont pas été changées entretemps), mais soit. Le README a été mis à jour en conséquence: ne mettez pas le programme dans "ndless/startup" avant d'avoir réussi à le lancer tout seul, sans qu'il reboote la calculatrice. Si la calculatrice reboote, mettez à jour votre Ndless.

Re: Le print() du Lua restauré pour l'OS 3.1 !

Unread postPosted: 24 Mar 2012, 11:24
by Lionel Debroux
As-tu une version à jour de Ndless ?
Il faut au minimum une version qui supporte nl_set_resident(), r553 et plus. r568 recommandé.

Re: Le print() du Lua restauré pour l'OS 3.1 !

Unread postPosted: 24 Mar 2012, 11:25
by AlexRider38
oui la dernière

Re: Le print() du Lua restauré pour l'OS 3.1 !

Unread postPosted: 24 Mar 2012, 11:26
by critor
Il y a eu plusieurs versions 3.1 de Ndess.

Quel est ton numéro de build?

Re: Le print() du Lua restauré pour l'OS 3.1 !

Unread postPosted: 24 Mar 2012, 11:29
by AlexRider38
557

Re: Le print() du Lua restauré pour l'OS 3.1 !

Unread postPosted: 24 Mar 2012, 11:34
by Lionel Debroux
Donc ça n'est pas la dernière version, je t'ai mentionné r568.

Works for me, sinon je n'aurais pas releasé ça.

Re: Le print() du Lua restauré pour l'OS 3.1 !

Unread postPosted: 24 Mar 2012, 11:35
by critor
T'as d'autres choses dans le startup qui pourraient peut-être interférer?

Re: Le print() du Lua restauré pour l'OS 3.1 !

Unread postPosted: 24 Mar 2012, 11:36
by Lionel Debroux
Un lien direct entre les programmes, c'est peu probable :)
* fixprint doit être le seul programme à toucher à ces quatre octets, et de toute façon, il ne remplace que si ça n'a pas encore été remplacé;
* personne ne doit appeler luaB_print (qui ne fonctionnait pas jusqu'à maintenant) dans des programmes de startup.