Page 15 sur 18

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Message non luPosté: 08 Fév 2019, 11:33
de Adriweb
samourai3745 a écrit:Salut à tous,

J'essaye d'executer le script avec Khicas, mais j'obtiens system error address target DF1ED41F, pc=000000000
Khicas version de janvier. Bizarre

C'est tres vilain de crasher comme ca, mais si tu testais precisement ma version, ce n'etait pas a la base fait pour fonctionner avec giac, juste python/micropython/circuitpython :P
Tu peux remplacer par ce qu'a suggéré Parisse: time(test(9, 2)), pour les versions issues de giac (donc khicas).

Je regarderai pour proposer une version universelle plus tard.

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Message non luPosté: 08 Fév 2019, 13:35
de samourai3745
Merci Adriweb, ok je ferais ça lundi

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Message non luPosté: 08 Fév 2019, 16:31
de parisse
Adriweb a écrit:
Edit: oui ok, c'est bien le cas, c'est specifique a giac. Donc encore plus simple. Dispo sur KhiCAS etc. ?

(PS: Je n'ai pas trouvé de moyen de déclarer une fonction variadique en giac, voir de passer une fonction en parametre a une autre fonction - est-ce possible ? Meme si ce n'est plus d'actualité)

Oui, time est une commande qui n'evalue pas son argument avant d'evaluer time. Elle est disponible dans tous les portages de Xcas, c'est ce qui me sert a faire des benchmarks.
On peut bien sur passer des fonctions en parametre a d'autres fonctions.
Pour acceder a la liste des arguments d'une fonction, on peut utiliser la commande args() (dans Xcas, je ne l'ai pas mise chez Casio pour le moment en tout cas).

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Message non luPosté: 08 Fév 2019, 16:34
de parisse
@samourai3745: je n'ai pas non plus teste les dernieres versions, juste time(test(9,2)) sur la toute premiere version en remplacant sgn par sign.
Peut-etre que vous avez des grosses variables qui mangent trop de ram, un restart() est peut-etre necessaire.

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Message non luPosté: 08 Fév 2019, 17:07
de Adriweb
parisse a écrit:Oui, time est une commande qui n'evalue pas son argument avant d'evaluer time. Elle est disponible dans tous les portages de Xcas, c'est ce qui me sert a faire des benchmarks.

Ok parfait.

parisse a écrit:On peut bien sur passer des fonctions en parametre a d'autres fonctions.

Oui, j'avais fini par essayer et ça avait fonctionné.

parisse a écrit:Pour acceder a la liste des arguments d'une fonction, on peut utiliser la commande args() (dans Xcas, je ne l'ai pas mise chez Casio pour le moment en tout cas).

Ah, je n'avais pas vu ça dans la doc :D
J'avais cherché "variadic" et "variadique" mais en fait la page qui traite de ce sujet n'a pas ce mot la :P

Par contre, qu'est-ce qui n'est pas bon dans le code ci-dessous ? Ou plutot, comment faire ce que j'avais initialement en tete ? En gros forwarder des arguments a une autre fonction.
J'ai quelque chose de ce genre, mais le funccaller n'est probablement pas bon:
Code: Tout sélectionner
def adder(a, b):
    return a+b

def funccaller():
    a = args
    func_to_call = a[1]
    func_to_call_args = tail(tail(a)) # get the rest of the args after funccaller (idx 0) and func_to_call (idx 1)
    return func_to_call(func_to_call_args) # le problème c'est que au mieux, ca passe une liste à la fonction, ca, au lieu de unpack la liste... Non ?

funccaller(adder, 1, 1)     # <- je veux avoir 2 comme résultat

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Message non luPosté: 08 Fév 2019, 21:36
de parisse
En syntaxe Xcas on peut faire ca:
Code: Tout sélectionner
fonction f()
  local k;
  k:=args(NULL);
  return k[1](k[2:]);
ffonction:;

En syntaxe Python
Code: Tout sélectionner
def f():
    k=args(NULL)
    return k[1](k[2:])

puis f('+',5,7)
Explication: k est une sequence (pas une liste), les arguments d'une fonction sont toujours regroupes en une sequence. '+' designe la commande interne d'addition (les quotes permettent de ne pas evaluer une expression en general, et servent aussi a designer les operateurs binaires courants)

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Message non luPosté: 08 Fév 2019, 21:53
de parisse
args est bien disponible sur la Casio, mais pas NULL, il faut donc ecrire args(seq[])
(seq[ est le delimiteur ouvrant une sequence, seq[] designe donc la sequence nulle).

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Message non luPosté: 08 Fév 2019, 22:23
de Lionel Debroux
Quelques notes issues de la comparaison des strings du firmware officiel et de mon firmware trafiqué:
* le firmware officiel contient un certain nombre de strings qui ne sont pas dans le mien, certaines que j'ai clairement filtrées en enlevant les fichiers source correspondants dans mon build:
Code: Tout sélectionner
AnalogIn analogio audiobusio audioio AudioOut bit_clock bit_depth channel_count Device devices gamepad GamePad
get_pressed global I2SOut left_channel left_justified neopixel_write pin_a pin_b PinBase popleft position
PulseIn pulseio PulseOut PUSH_PULL PwmOut RawSample raw_value record reference_voltage resume right_channel rotaryio
sample sample_rate send_report Signal TouchIn touchio usage usage_page usb_hid bitbangio Wavefile write_bit "zero step"

Pourtant, les modules Python correspondants ne sont pas dispo dans le firmware officiel, on l'a vu plus haut dans l'énumération.

* je trouve des strings d'erreur dans le firmware officiel mais pas dans mon firmware; c'est manifestement parce qu'il manque le commit de5a9d72dcdaacdd5048195cd5bab007f4b2baef (août 2018) au firmware officiel basé sur CircuitPython 3.0.0 de juillet 2018.

* en revanche, il manque par exemple les strings i2cslave I2CSlave I2CSlaveRequest au firmware officiel, ce qui veut dire que je dois pouvoir filtrer un peu plus ?

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Message non luPosté: 10 Fév 2019, 16:08
de critor
Lionel Debroux a écrit:On peut tenter, à notre niveau, de communiquer sur le fait que le TI-Python Adapter est inutilisable pour un certain nombre de problèmes représentatifs de niveau lycée... mais la majorité des lycéens ne nous lit pas, bien entendu :)

Si si, un bon 50% des lycéens nous visitent au moins une fois dans leur scolarité d'après GA. :)

Après... ils peuvent nous lire trop tard, certes.

Re: Module TI-Python disponible à l'unité chez Jarrety : 13,

Message non luPosté: 10 Fév 2019, 22:48
de critor
Le plan B donc pour réussir à sortir la news de test du TI-Python :
10251

Oui, parce que nous n'avons toujours reçu ni l'échantillon de TI, ni la commande de chez Jarrety.

Nous aurons rarement réalisé un test de nouveau produit dans des conditions aussi difficiles, à croire que l'univers tout entier ne veut pas que ce test sorte...