Page 1 sur 2

1.4.9 instable

Publié : lun. sept. 11, 2017 12:49 pm
par parisse
J'ai mis en ligne des binaires instables (versions 1.4.9 linux debian, win64, mac) avec :
1/ un pre-interpreteur qui detecte de la syntaxe Python (de base uniquement, c'est pour le lycee), ainsi que quelques commandes issues du monde Python (par ex. range, randint, shuffle). Dans Xcas, on peut desormais choisir Python comme syntaxe.
2/ de nouvelles commandes d'optimisation ecrites par Luka Marohnic (documentees en anglais dans cascmd_en.tex)
Il y a surement des bugs a corriger avant d'en faire une version stable, mais je pense que le temps passe a implementer de la compatibilite Python n'est pas du temps perdu...

Re: 1.4.9 instable

Publié : lun. sept. 18, 2017 2:23 pm
par parisse
Mise a jour. La compatibilite Python devrait etre un peu meilleure. J'ai aussi ajoute une optimisation pour les petites boucles "standards" (j variant de a a b avec a et b entiers). Et pour les germanistes, l'aide courte est disponible en allemand.

Re: 1.4.9 instable

Publié : mer. sept. 20, 2017 1:19 pm
par parisse
Nouvelle mise a jour.

Re: 1.4.9 instable

Publié : jeu. sept. 21, 2017 12:28 pm
par parisse
Nouvelle mise a jour.
Correction d'un bug dans les optimisations pour les boucles. Le support de for/in devrait maintenant etre a nouveau compatible avec la syntaxe C, cela impose toutefois d'utiliser des crochets pour des definitions du genre [j^2 for j in range(100) if isprime(j)]
Il faudrait voir quelles sont les fonctions de la librairie standard Python qu'il serait bien d'avoir ou de rendre compatible (il me semble qu'il ne manque pas grand chose de ce qu'il y a sur http://python.lycee.free.fr).

Re: 1.4.9 instable

Publié : ven. sept. 22, 2017 1:04 pm
par frederic han
Je ne sais pas si c'est simple, mais proche de ce qui est implémenté:

Code : Tout sélectionner

4>> L:=[0,1,2,3,4,5,6,7,8,9]
[0,1,2,3,4,5,6,7,8,9]
// Time 0
15>> L[3:-1]  // un de trop par rapport a python
[3,4,5,6,7,8,9]
// Time 0
16>> L[1:]  // pas implemente

Re: 1.4.9 instable

Publié : ven. sept. 22, 2017 4:08 pm
par parisse
Alors la je ne comprends pas la logique de python, il ne prennent pas en compte le dernier element du : ?? Ca me parait tellement anti-intuitif que je n'ai meme pas verifie. En fait, on ne peut pas acceder aux derniers elements de la liste avec la notation -1. Bon je vais quand meme le faire.

Re: 1.4.9 instable

Publié : ven. sept. 22, 2017 4:51 pm
par frederic han
en python:

Code : Tout sélectionner

>>> L=[0,1,2,3,4,5,6,7,8,9]
>>> L[-1]
9
>>> L[1:]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> L[2:-0]
[]
>>> L[2:9]
[2, 3, 4, 5, 6, 7, 8]
>>> L[2:10]
[2, 3, 4, 5, 6, 7, 8, 9]
>>> L[10]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> L[2:100] # ca ne rale pas
[2, 3, 4, 5, 6, 7, 8, 9]
les range et slice sont ferme à gauche et ouvert a droite.
L[-1] donne bien le dernier element. par contre la syntaxe avec : est un slice donc ferme a gauche ouvert a droite. Il semble que l'on ait aussi le droit de deborder sans que ca donne d'erreur.

Re: 1.4.9 instable

Publié : ven. sept. 22, 2017 5:45 pm
par parisse
oui mais tu dois connaitre la taille, or c'est justement l'interet d'utiliser le -1.

Re: 1.4.9 instable

Publié : sam. sept. 23, 2017 7:30 am
par parisse
Bon, j'ai corrige dans le source et mis a jour Xcas pour Firefox

Re: 1.4.9 instable

Publié : sam. sept. 23, 2017 8:20 am
par frederic han
en python c'est la syntaxe

Code : Tout sélectionner

L[1:]
qui donne de l'indice 1 jusque la fin. sous xcashtml elle n'a pas l'ai implementée mais c'est peut etre genant pour ton parser?

Code : Tout sélectionner

// Python-like syntax, check string delimiters "" and declare local variables.
Translated to Xcas as:
L[1..-1]
:;

Re: 1.4.9 instable

Publié : sam. sept. 23, 2017 9:34 am
par parisse
si, il faut juste que tu rajoutes un ; et n'importe quoi par exemple 1 pour voir le resultat (car je rajoute un :;)

Re: 1.4.9 instable

Publié : mar. sept. 26, 2017 2:25 pm
par parisse
Mise a jour 1.4.9-5, j'ai aussi mis a jour les debian stables.

Re: 1.4.9 instable

Publié : ven. sept. 29, 2017 9:10 am
par parisse
1.4.9-7

Re: 1.4.9 instable

Publié : mer. oct. 11, 2017 1:17 pm
par parisse
1.4.9-13

Re: 1.4.9 instable

Publié : mar. oct. 17, 2017 1:59 pm
par parisse
1.4.9-15:
Ajoute une session exemple Mandelbrot.xws dans le menu Aide>Exemples>demo
Le programme correspondant illustre la possibilite de typer les variables, ce qui permettra ulterieurement de traduire efficacement un programme Xcas en module dynamique C++ lorsque la commande cpp sera au point.
On peut ainsi nettement accelerer les calculs sous linux en compilant le module giac_Mandelbrot.cpp (a recopier depuis /usr/share/giac/examples/Exemples/demo/, la commande compilation est en 1ere ligne et s'execute depuis le menu Tools, Compile d'emacs). Ce fichier a ete presque entierement auto-genere avec la commande cpp(Mandelbrot), j'ai juste modifie les initialisations de complex<double>.