module lua natif giac
module lua natif giac
Je viens de creer un module lua natif pour giac, avec une fonction luagiac:caseval qui prend en argument une chaine et renvoie une chaine, mais je rencontre quelques problemes.
Le lien:
http://www-fourier.ujf-grenoble.fr/~parisse/calc/luagiac.zip
(pour le source http://www-fourier.ujf-grenoble.fr/~parisse/calc/giac.tgz).
Ce qui marche:
1/ luagiac.luax.tns et luachkgiac.tns dans l'emulateur avec OS 3.1, on obtient bien la factorisation de x^4-1.
Ce qui ne marche pas:
1/ la meme chose dans l'emulateur avec OS 3.6.
2/ rungiacdemo.lua/tns, inspire des tutoriels nspire lua, ne marche pas dans l'OS 3.1 (probablement normal, le lua de l'OS n'a pas les fonctionnalites requires), ni dans l'OS 3.6 (pour les memes raisons probables que luachkgiac.tns). C'est dommage parce que ca m'aurait fourni une interface plus sympa que la console sans me fatiguer cote lua.
Quelqu'un aurait-il une idee pourquoi 1/ marche avec OS 3.1 et pas avec OS 3.6?
Le lien:
http://www-fourier.ujf-grenoble.fr/~parisse/calc/luagiac.zip
(pour le source http://www-fourier.ujf-grenoble.fr/~parisse/calc/giac.tgz).
Ce qui marche:
1/ luagiac.luax.tns et luachkgiac.tns dans l'emulateur avec OS 3.1, on obtient bien la factorisation de x^4-1.
Ce qui ne marche pas:
1/ la meme chose dans l'emulateur avec OS 3.6.
2/ rungiacdemo.lua/tns, inspire des tutoriels nspire lua, ne marche pas dans l'OS 3.1 (probablement normal, le lua de l'OS n'a pas les fonctionnalites requires), ni dans l'OS 3.6 (pour les memes raisons probables que luachkgiac.tns). C'est dommage parce que ca m'aurait fourni une interface plus sympa que la console sans me fatiguer cote lua.
Quelqu'un aurait-il une idee pourquoi 1/ marche avec OS 3.1 et pas avec OS 3.6?
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3721
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: module lua natif giac
parisse wrote:Je viens de creer un module lua natif pour giac, avec une fonction luagiac:caseval qui prend en argument une chaine et renvoie une chaine
Ah ben, bien joué, je n'avais pas encore eu assez de temps pour regarder ça moi-même comme je l'avais dit

parisse wrote:1/ luagiac.luax.tns et luachkgiac.tns dans l'emulateur avec OS 3.1, on obtient bien la factorisation de x^4-1.
Effectivement

gc:drawString("factor(x^4-1) = " .. luagiac.caseval("factor(x^4-1)"), 5, 5, "top")
) :
Cependant, la calculatrice reboote quand je veux fermer le document, je ne sais plus si c'est un problème connu ou non... bref, à creuser. (même sur le .tns de demo des luaext)
parisse wrote:Ce qui ne marche pas:
1/ la meme chose dans l'emulateur avec OS 3.6.
Oui, module non trouvé, apparemment...
Je ne sais pas si quelqu'un a déjà tenté des luaext avec ndless 3.6

Si c'est un problème au niveau de ndless, je suppose qu'avertir Extended devrait aider à localiser et résoudre le problème rapidement (je viens de lui envoyer un mail).
Ca "répond" peut-être en même temps à ton "Quelqu'un aurait-il une idee pourquoi 1/ marche avec OS 3.1 et pas avec OS 3.6?".
Attendons son avis, qu'il postera sans doute ici.
parisse wrote:2/ rungiacdemo.lua/tns, inspire des tutoriels nspire lua, ne marche pas dans l'OS 3.1 (probablement normal, le lua de l'OS n'a pas les fonctionnalites requires)
Effectivement, les D2Editor étaient vraiment nuls en Lua 3.1 (apilevel '1.0' maximum... le '2.0' est venu avec l'OS 3.2, qui a bien amélioré les D2Editor par exemple)
parisse wrote:ni dans l'OS 3.6 (pour les memes raisons probables que luachkgiac.tns).
Oui voila, en Lua 3.6, le reste du code fonctionne, sinon (du moins, visuellement, ca à l'air de marcher).
parisse wrote:C'est dommage parce que ca m'aurait fourni une interface plus sympa que la console sans me fatiguer cote lua.
Je suis en train de regarder comment on peut avoir une interface simple de test avec le Lua 3.1, déja.
Ensuite, en 3.6, il sera possible de reprendre une interface tout faite, du genre SuperSpire, si critor est OK

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)My calculator programs
Mes programmes pour calculatrices
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14820
- Images: 1131
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Re: module lua natif giac
Adriweb wrote:Cependant, la calculatrice reboote quand je veux fermer le document, je ne sais plus si c'est un problème connu ou non... bref, à creuser. (même sur le .tns de demo des luaext)
Bug connu depuis un unsigned long time. (et en plus c'est aléatoire)
-
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 2955
- Images: 3
- Joined: 10 Sep 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
Re: module lua natif giac
Dommage que personne n'ait résolu ceci, alors ^^
(Va bien falloir, là)
Bon sinon, j'ai fait un petit truc rapide qui permet de tester...
Le problème c'est que l'API du D2Editor est tellement immonde en 3.1 que c'est pas pratique, au final
En gros, (cf .tns attaché), j'ai split la page en 2 pour pouvoir mettre tranquillement (en haut) son input dans une variable Basic, et le Lua (en bas) détecte le changement de cette variable et envoit à giac le string. Le résultat récupéré est alors affiché.
Bien sûr, dès que l'extension Lua marchera en 3.6, plus besoin de passer par ces artifices foireux, l'API du D2Editor étant correcte
Le code Lua pour les curieux :
(Va bien falloir, là)
Bon sinon, j'ai fait un petit truc rapide qui permet de tester...
Le problème c'est que l'API du D2Editor est tellement immonde en 3.1 que c'est pas pratique, au final

En gros, (cf .tns attaché), j'ai split la page en 2 pour pouvoir mettre tranquillement (en haut) son input dans une variable Basic, et le Lua (en bas) détecte le changement de cette variable et envoit à giac le string. Le résultat récupéré est alors affiché.
Bien sûr, dès que l'extension Lua marchera en 3.6, plus besoin de passer par ces artifices foireux, l'API du D2Editor étant correcte

Le code Lua pour les curieux :
Show/Hide spoilerAfficher/Masquer le spoiler
- Code: Select all
platform.apilevel = "1.0" -- to test stuff with the crappy 3.1 2DEditor API
W,H = 318, 212 -- will be overwritten
hasGiac = pcall(require, "luagiac")
if not hasGiac then luagiac = {caseval = function() return "Giac module not loaded" end } end
function on.create()
TextBox = D2Editor.newRichText()
TextBox:move(4, 4)
TextBox:resize(W-4, H-4)
TextBox:setText("Store the expression you want to calculate in 'a'")
var.monitor("a")
end
function on.resize()
W, H = platform.window:width(), platform.window:height()
if TextBox then TextBox:resize(W-4,H-4) end
end
function on.varChange()
local input = var.recall("a")
local output = luagiac.caseval(input)
TextBox:setText("\\0el {" .. output .. "}")
return 0 -- success
end
on.enterKey = on.varChange -- forced, just in case
You do not have the required permissions to view the files attached to this post.
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)My calculator programs
Mes programmes pour calculatrices
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14820
- Images: 1131
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Re: module lua natif giac
Je n'ai pas compris comment l'utiliser, il faut dire que je suis essentiellement debutant dans la manipulation de la nspire. Quand je lance test_lua il m'ouvre juste un onglet 1.1 avec affiche Store the expression you want to calculate in 'a', il n'y a pas d'autre onglet (ctrl-fleche ne fait rien) et si j'essaie de stocker quelque chose dans a depuis Calculate ca ne fait rien non plus.
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3721
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: module lua natif giac
Pas de problème -
Le script Lua "surveille" la variable basic 'a', qui sert comme input pour giac (pas besoin de créer un d2editor d'input, du coup, qui nous aurait bien embêté en 3.1).
Dès que sa valeur change, ca appelle luagiac.caseval etc.
Au passage : il faut que a contienne un string.
Voici un petit gif d'un exemple d'utilisation :

(la, c'est "truqué", j'ai fait l'enregistrement sur le logiciel Nspire - mais sur nspire_emu, c'est exactement pareil)
N'oublions pas toutefois que ceci reste du bidouillage comparé à ce qu'il sera fait pour la version Lua 3.6
(Pour info, il aurait été possible de faire ceci avec deux 2DEditor, mais ca n'aurait pas marché ni sur l'émulateur (pas de touchpad émulé) ni sur les Nspire sans touchpad (les clickpad, B&W), car pour leur donner le focus, il faut la souris...)
Bien sûr, on aurait pu tout gérer à la main pour l'input (avec on.charIn, comme ici), mais vu que c'est une situation temporaire, je ne sais pas si on en a vraiment besoin ? En tout cas, ce n'est pas très compliqué à mettre en place, si on veut.
Le script Lua "surveille" la variable basic 'a', qui sert comme input pour giac (pas besoin de créer un d2editor d'input, du coup, qui nous aurait bien embêté en 3.1).
Dès que sa valeur change, ca appelle luagiac.caseval etc.
Au passage : il faut que a contienne un string.
Voici un petit gif d'un exemple d'utilisation :

(la, c'est "truqué", j'ai fait l'enregistrement sur le logiciel Nspire - mais sur nspire_emu, c'est exactement pareil)
N'oublions pas toutefois que ceci reste du bidouillage comparé à ce qu'il sera fait pour la version Lua 3.6

(Pour info, il aurait été possible de faire ceci avec deux 2DEditor, mais ca n'aurait pas marché ni sur l'émulateur (pas de touchpad émulé) ni sur les Nspire sans touchpad (les clickpad, B&W), car pour leur donner le focus, il faut la souris...)
Bien sûr, on aurait pu tout gérer à la main pour l'input (avec on.charIn, comme ici), mais vu que c'est une situation temporaire, je ne sais pas si on en a vraiment besoin ? En tout cas, ce n'est pas très compliqué à mettre en place, si on veut.
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)My calculator programs
Mes programmes pour calculatrices
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14820
- Images: 1131
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Re: module lua natif giac
Merci! Desole mais j'ai encore une question de novice, comment on coupe l'ecran en 2 pour faire apparaitre l'historique de calcul avec les a:="..."?
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3721
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: module lua natif giac
Sur ce .tns, il est déjà coupé donc ya plus besoin, mais en général :
Sur CX : bouton [DOC] -> Format de page -> la, yaura pas mal de choix
Sur ClickPad : CTRL-Home -> Format de page
Le split en 2 applis n'est pas forcément rare, mais il existe aussi le split en 3 et en 4 (déja plus contraignant sur calculatrice, mais parfois bien pratique sur le logiciel ordinateur).
Un autre moyen de partager (ou séparer, à l'inverse), est de remonter dans les apercus des pages (Ctrl-flèche_haut) et de faire Clic droit (ctrl-menu) -> (dé)Grouper sur la page d'avant.
Sur CX : bouton [DOC] -> Format de page -> la, yaura pas mal de choix

Sur ClickPad : CTRL-Home -> Format de page
Le split en 2 applis n'est pas forcément rare, mais il existe aussi le split en 3 et en 4 (déja plus contraignant sur calculatrice, mais parfois bien pratique sur le logiciel ordinateur).
Un autre moyen de partager (ou séparer, à l'inverse), est de remonter dans les apercus des pages (Ctrl-flèche_haut) et de faire Clic droit (ctrl-menu) -> (dé)Grouper sur la page d'avant.
MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)My calculator programs
Mes programmes pour calculatrices
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14820
- Images: 1131
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Re: module lua natif giac
Ah je vois, c'est parce que j'avais recompile avec luna a partir du code source...
-
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 3721
- Joined: 13 Dec 2013, 16:35
- Gender:
- Calculator(s):→ MyCalcs profile
Re: module lua natif giac
Ah, oui, du coup, il faut effectivement re-splitter pour pouvoir voir les 2 en même temps...
Au passage, j'ai ajouté la ligne
Au passage, j'ai ajouté la ligne
W,H = 318, 212 -- will be overwritten
en haut du script (étrange que ça ne râlait pas (sauf si on.resize est appelé avant on.create, mais j'en doute...), bref, pas grave ^^)MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)My calculator programs
Mes programmes pour calculatrices
-
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)- Posts: 14820
- Images: 1131
- Joined: 01 Jun 2007, 00:00
- Location: France
- Gender:
- Calculator(s):→ MyCalcs profile
- Twitter: adriweb
- GitHub: adriweb
Return to Native: Ndless, Linux, ...
Who is online
Users browsing this forum: ClaudeBot [spider] and 11 guests