π
<-

module lua natif giac

C, C++, ASM...

module lua natif giac

Unread postby parisse » 11 Jun 2014, 12:59

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?
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 89.4%
 
Posts: 3721
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: module lua natif giac

Unread postby Adriweb » 11 Jun 2014, 14:38

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 :P

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 :) (j'ai juste changé le drawString, histoire de bien voir le texte : gc:drawString("factor(x^4-1) = " .. luagiac.caseval("factor(x^4-1)"), 5, 5, "top")) :
Image

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 :P
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 :P

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
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.7%
 
Posts: 14820
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: module lua natif giac

Unread postby Excale » 11 Jun 2014, 17:13

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)
User avatar
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 3.9%
 
Posts: 2955
Images: 3
Joined: 10 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile

Re: module lua natif giac

Unread postby Adriweb » 11 Jun 2014, 17:46

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 :P

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
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.7%
 
Posts: 14820
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: module lua natif giac

Unread postby parisse » 12 Jun 2014, 10:19

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.
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 89.4%
 
Posts: 3721
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: module lua natif giac

Unread postby Adriweb » 12 Jun 2014, 11:42

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 :
Image
(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
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.7%
 
Posts: 14820
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: module lua natif giac

Unread postby parisse » 12 Jun 2014, 12:38

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:="..."?
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 89.4%
 
Posts: 3721
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: module lua natif giac

Unread postby Adriweb » 12 Jun 2014, 12:45

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.

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
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.7%
 
Posts: 14820
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Re: module lua natif giac

Unread postby parisse » 12 Jun 2014, 12:52

Ah je vois, c'est parce que j'avais recompile avec luna a partir du code source...
User avatar
parisseVIP++
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 89.4%
 
Posts: 3721
Joined: 13 Dec 2013, 16:35
Gender: Not specified
Calculator(s):
MyCalcs profile

Re: module lua natif giac

Unread postby Adriweb » 12 Jun 2014, 13:06

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 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
User avatar
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 79.7%
 
Posts: 14820
Images: 1131
Joined: 01 Jun 2007, 00:00
Location: France
Gender: Male
Calculator(s):
MyCalcs profile
Twitter: adriweb
GitHub: adriweb

Next

Return to Native: Ndless, Linux, ...

Who is online

Users browsing this forum: ClaudeBot [spider] and 6 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1530 utilisateurs:
>1506 invités
>18 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)