[Officiel] Python sur MOS
-
Oubliez, je viens de re-ecrire le systeme des modules ce w.e.
Cela marche beaucoup mieux maintenant.
Je passe 187 tests de non-regressions (soit quasiement tout, il n’y a que les tests utilisant les Threads et le module select qui ne fonctionnent pas et moins de cinq a vraiment corriger).
La bibliotheque python.library a bien reduit (~1.2Mo) et les modules font en moyenne 130Ko… mais cela va reduire aussi.
J’ai bien revus le module distutil pour permettre de compiler les modules de la meme facon qu’explique dans les docs officielles.
C’est vraiment facile de faire un module maintenant.
Coucou a tous,
Je suis fier de vous presenter la premiere version de Python supportant les modules dynamiques.
Vous pouvez la charger sous forme d’une archive .LHA avec ce lien.
Note d’information:
– Tous les blender que j’ai compile avec les generations < 6 de Python ne fonctionnerons plus et risque meme de faire panter votre systeme. Je vais refaire des binaires avec le nouveau SDK ;
– Le module distutil marche pour des modules simple, vous pouvez donc suivre le tutorial qui se trouve dans les docs officielles pour creer votre propre module ;
– Si je trouve un peu de temps je vais faire un tutorial en francais dedie aux modules avec la version Python pour MorphOS ;
– Lors des tests de non-regression il y a eu des tests qui ont generes des HITs et fait planter la python.library, comme « test_richcmp ». Donc cette version n’est pas exempt de bugs graves (=plantage).
– Reste plus que le support du module thread!
PS: Une nouille va repondre juste en dessous de ce post —v
Le Pyrex a été inventé en 1915 aux USA. C’est un matériau conçu specialement pour la cuisine et beaucoup utilisé pour chauffer des liquides dans les laboratoires de recherche. Il peut monter à très haute température sans casser. Moi, j’utilise toujours mes plats en pyrex dans le micro onde. Je n’ai jamais eu de problèmes (à part quelquefois une poignée un peu chaude). Par contre il ne faut jamais utiliser les vieilles boîtes en plastique…qui il y 20 ans n’étaient pas faites pour çà.
voilà, comme ça tu n’as plus de regrets pour « pyrexx ».
Bon bah voila.
J’ai refait une version complete avec un nouveau SDK et surtout le module ‘arexx’ (ouai tres dur pour trouver le nom!).
J’en ai profite pour reduire la taille des modules… de 50%!
En ce qui concerne le module arexx, c’est base sur le travail de Irmen de Jong fait pour les versions Amiga il y a 7 ans. J’ai recode pour Python 2.4.
Pour l’utilisation c’est asser simple:
– arexx.port(nom) ouvre un port ARexx, publique si un nom est donne, prive sur nom=None et si rien n’est donne nom=’PYTHON’.
Cela renvoi un objet arexxport.
les methode de cet objet sont les suivantes:
– close(): ferme le port
– send(msg, to, async): envoi le message ‘msg’ vers le port publique ‘to’. si async est vrai (1, True) alors le message est envoye de facon asynchrone. Sinon la fonction attend le retour du message. Si synchrone, un tuple est renvoye du type (msg, rc, rc2).
– getmsg(): retourne un message (arexxmsg objet) ARexx envoye vers notre port , None si il n’y a rien.
– wait(): attend un message.
Note: L’objet message est lui aussi un objet, je vous laisse trouver la doc :-p
Note2: le code source est ici: arexxmodule.c
C’est un bon debut pour s’entrainer a compiler et creer un module python
Pour ceci il faut creer un petit fichier setup.py tel que le decrit la doc d’extension de Python (vous croyez que je vais vous faciliter le travail? ).
Je me pose juste une petit question…
Je me demande si il y a juste 1 autre personne que moi qui utilise python sur ce forum.
Meme blender je me demande… vu le peu de retours.
bon j’en ai qq1 qd meme mais disont que j’arrive a 3 personnes quoi…
Tout ca pour dire, que j’ai un peu de mal a me motiver en ce moment, deja que j’ai quasiement rien en temps (pour faire la release du 13 avec arexx + les modif, je me suis couche a 3h du mat!). Alors je me demande si vraiment ca sert de continuer ou bien…
Bon je sais que Python c’est un langage de programmation, que tous le monde n’a pas envie de programmer. Mais Blender existe aussi pour ceux qui ont plus l’ame artistique (… bien que la prog c’est de l’art ).
Et je ne vois pas grand chose
[edit]Tout facon ce soir je me noie dans la piscine![/edit]
Mais Yomgui, je suis (un peu) utilisateur de Blender et en fait j’attend que ce soit un peu stable pour me mettre à jour…
Sinon, Python, je m’y mettrais bien, mon neuveu connait bien sur PC et développe pas mal dessus, il devrait m’y former ^_^. Il y a des librairies graphiques déjà portées (question con vu que Blender est fait en Python et pour être graphique, il l’est…) ?
Abonnez-vous à ma nouvelle chronique "En Route vers le Futur" sur Youtube !
J’utilise un peu Blender mais pas assez pour réellement me faire la main dessus.
D’ailleur je n’ai pas mis à jour avec le dernier python pour pouvoir encore utiliser Blender. J’espere que cet hiver je pourrai y passer plus de temps. Il me servira pour des dev.
Par contre développer en python ben heuuu je ne sais pas hein. Déjà j’aimerai savoir si la version MOS est au niveau des versions des autres systeme en terme d’environnement (bibliotheques, resources, etc…) ?
Je suis de tout coeur avec toi Yomgui et si jamais t’as besoin d’un coup de main comme pour l’ouverture d’un écran fait moi signe.
Screetch: Comment ca pas stable! :-p
j’ai la V2.42a prete, mais depuis mon update python ca ma fait un crash zarb. Je vais tenter de faire une archive ce w.e. comme ca vous l’aurez lundi.
Mais c’est toujours le meme topo…. il faudrait plus de developper la-dessus pour tout corriger.
Sinon pense a te faire former par ton neuveu au plus vite !
Pour repondre maintenant a la question de Python-MOS / autres systems:
oui il est plutot, meme si il manque on va dire 3 trucs principaux (et encore le + important est fait: les modules!):
1) le support du module thread, qui comme sont nom l’indique pas permet de creer des taches en python.
2) le support du module ‘select’ pas mal utilise en faite dans des lib externes.
Pour ce module il faut que je re-ecrive totalement mon emulation de la stdio/libc. En effet je ne gere pas les constructeurs/destructeurs de la libc ce qui fait que beacoup de fonctions standard ne peuvent etre utilises. Il a fallu que j’ecrive mes propres routines comme: fprintf, open/close, fopen, popen, etc… Mais cette implementation est tres basique et n’est pas genial du tout avec la fonction select() pas exemple.
3) une lib graphique. Il y a un module pour tcltk, mais on n’a pas cela non plus sur MOS. Il faut fair enotre propre module pour MUI/Feelin plutot.
Et donc non Screetch, pas de lib graphique. blender utilise que du C/C++, Python est utilise en tant qu’extension de Blender, il y a possibilite de faire de l’OpenGL en Python dans Blender, c’est un wrapper Python <-> C qui s’occupe de cela. Mais on ne peux pas l’utiliser pour autre chose que Blender.
Mais la version MOS de python est tres proche tout de meme des autres versions.
Ensuite il ne tiens qu’a vous de venir faire le support pour d’autres choses
Avec le module arexx deja vous aller pouvoir faire une transition plus sympas sur vos programme actuel. Par exemple lancer Snoopium et taper ceci dans un shell:
python -c ‘from arexx import *;port().send(« SNOOPIUM », « DISABLE », False)’
Cela coupe snoopium par python 8-D
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › [Officiel] Python sur MOS