Page 3 sur 5

Re: Incident Pays-Bas : mode examen HP Prime non conforme 20

Message non luPosté: 14 Avr 2021, 18:54
de critor
Je remarque que je ne l'ai pas dit depuis hier, mais ceux qui ont testé s'en sont sûrement rendu compte.

Pas de coloration syntaxique :
Image

Pas d'autocomplétion non plus d'ailleurs.

Re: Incident Pays-Bas : mode examen HP Prime non conforme 20

Message non luPosté: 14 Avr 2021, 19:30
de critor
Encore un détail à côté du reste, les numéros de ligne dans l'éditeur selon la taille de police utilisée :
ImageImageImage

En police moyenne, ça semble bon.

En petite et grande police il semble y avoir un problème d'alignement :
  • numéro un peu trop haut en petite police
  • numéro un peu trop bas en grande police

Re: Incident Pays-Bas : mode examen HP Prime non conforme 20

Message non luPosté: 14 Avr 2021, 19:45
de critor
Bon, après tout ça passons à du code Python.

Code: Tout sélectionner
from sys import *
dir(stderr.fileno)
dir(stdin.fileno)
dir(stdout.fileno)

Chacune des 3 dernières lignes de ce script plante l'émulateur.

Le problème ne semble pas présent sur calculatrice.

Re: Incident Pays-Bas : mode examen HP Prime non conforme 20

Message non luPosté: 14 Avr 2021, 20:00
de DoOmnimaga
Je remarque aussi que certains programmes qui se lançait auparavant sur ma calculatrice ne se lance plus sous cette béta. J'ai un Err: Invalid Input.

Re: Incident Pays-Bas : mode examen HP Prime non conforme 20

Message non luPosté: 15 Avr 2021, 11:23
de dg1969
critor a écrit:heap Python un peu décevant (mesuré sur calculatrice physique, l'émulateur ne renvoie pas la même chose).

Dans les 1 Mio aussi bien sur HP Prime G1 que HP Prime G2, soit légèrement moins que la Casio Graph 90+E, 2 fois moins que la TI-Nspire CX II, et 4 fois moins que KhiCAS sur TI-Nspire CX / CX II.
Image

Sur HP Prime G1 avec seulement 32 Mio de SDRAM sans doute bien consommés par le firmware cela pouvait se défendre de ne pas être trop ambitieux sur le heap Python...
Mais sur HP Prime G2 avec 256 Mio de SDRAM, c'est extrêmement dommage de ne pas donner aux scripts Python la possibilité d'exploiter les capacités matérielles accrues pour des projets Python ambitieux.

Après, cela reste quand même de loin parmi les meilleures solutions niveau heap à ce jour.


Bonjour à tous,

J’ai parcouru un peu vite le fichier « betanote » mais en pages 2/4 je lis ceci:

Python in PPL
Prime now includes a python interpreter. This interprets python scripts using the micropython interpreter. However, due to the way micropyton manages memory, the python interpreter is started with a fixed heap and stack of repectively 1MB and 40KB. Replacing the first parameter of the Python call to a list containing 2 or 3 items allows to change this as in: PYTHON({“name”, heapSize, stackSize}, params…}

Je n’ai pas eu le temps de tester mais ne s’agit-il pas d’une possibilité de modifier l’espace mémoire alloué ?

ps: Merci pour votre travail de veille incroyable !

Re: Incident Pays-Bas : mode examen HP Prime non conforme 20

Message non luPosté: 15 Avr 2021, 11:38
de critor
Merci beaucoup.
PYTHON({"name.py", heapSize, stackSize}) semble être une façon de lancer un script Python depuis le langage HPPPL, en contrôlant le stack et le heap.

Re: Incident Pays-Bas : mode examen HP Prime non conforme 20

Message non luPosté: 15 Avr 2021, 11:45
de Ti64CLi++
Peut-être qu'il est alors possible depuis le langage HPPPL de lancer un script Python en lui accordant plus qu'1 Mo de heap ? ;)

Re: Incident Pays-Bas : mode examen HP Prime non conforme 20

Message non luPosté: 15 Avr 2021, 12:58
de critor
Le module Python spécifique à la HP Prime, c'est donc hpprime.

Il permet à la fois :
  • les tests de touches clavier
  • les tests d'événements tactiles
  • le tracé par pixels (comme casioplot, kandinsky, ti_graphics, ti_draw)
  • le tracé dans un repère (comme matplotlib.pyplot, ti_plotlib)

Pour les tests de touches clavier, c'est donc hpprime.keyboard() combinant un max davantages par rapport aux solutions concurrentes :
  • test non bloquant
  • possibilité de tester toutes les touches (même les modificateurs et
    On
    )
  • possibilité de tester les appuis simultanés sur plusieurs touches
  • possibilité de tester les appuis simultanés sur plusieurs touches en 1 seul appel

Le menu présentant les modules et leur contenu dispose d'une aide en ligne accessible via la touche
Help
. À ce jour l'aide est en anglais et est très incomplète, ne retournant pour beaucoup d'éléments rien d'autre que leur nom. Mais pour hpprime.keyboard() il y a ce qu'il faut :
Image Image

Donc pour tester la touche
Vars
il faudrait faire hpprime.keyboard() & (1 << 15) car ce serait la 15ème touche clavier en partant du coin en haut à gauche (on notera la typo && ("et" logique) au lieu de & ("et" binaire))

Je ne sais pas si c'est l'aide ou le Python qui a tort, mais en pratique ça ne marche pas du tout, il faut faire hpprime.keyboard() & (1 << 54) pour tester cette même touche.

En effet sur cette bêta Python les touches ne sont absolument pas numérotées de gauche à droite et de haut en bas. Je viens de toutes les tester une par une, voici une carte corrigée :

Apps

56
Symb

57

58
Help

59
Esc

60
Plot

62

63

48
View

49
🏠

61
Num

51

52
Menu

53
CAS

50
Vars

54
🧰

55
□/□

40
xtθn

41
ab/c

42

43
x^y

44
SIN

45
COS

46
TAN

47
LN

32
LOG

33

34
+/-

35
()

36
,

37
Enter

38
EEX

39
7

24
8

25
9

26
÷

27
ALPHA

28
4

29
5

30
6

31
×

16
Shift

17
1

18
2

19
3

20
-

21
On

22
0

23
.

8
_

9
+

10

À tester donc avec hpprime.keyboard() & (1 << numero_touche)

Re: Incident Pays-Bas : mode examen HP Prime non conforme 20

Message non luPosté: 15 Avr 2021, 13:22
de critor
Voici ci-dessous le script utilisé pour déterminer les numéros de touches utilisés par cette bêta.

Lancer la fonction puis presser la ou les touches souhaitées, séparément ou même simultanément.

Attention, la seule façon de quitter le script c'est le reset.

Code: Tout sélectionner
from hpprime import *

def test():
  while(1):
    k = keyboard()
    if(k):
      l = []
      n = 0
      while(k):
        if(k&1):
          l.append(n)
        k >>= 1
        n += 1
      print(l)

Re: Incident Pays-Bas : mode examen HP Prime non conforme 20

Message non luPosté: 16 Avr 2021, 17:50
de parisse
Une nouvelle mise a jour vient d'etre mise en ligne.