Seite 1 von 1

Wer hat PyPy probiert ?

Verfasst: Sonntag 26. Februar 2006, 20:37
von Mad-Marty
Hi,

hat sich jemand von euch schonmal mit PyPy und dessen übersetzung zu LLVM befasst ?

Wenn ja wie findet ihr es ? Wird es ein vollständiger CPython ersatz werden ?
Wird es enorme Geschwindigkeitsvorteile bringen ?
Evtl neue Features ?


Zu finden ist PyPy hier :
http://codespeak.net/pypy/dist/pypy/doc/news.html

Verfasst: Montag 27. Februar 2006, 08:41
von modelnine
Wenn ja wie findet ihr es ? Wird es ein vollständiger CPython ersatz werden ?
Ja.
Wird es enorme Geschwindigkeitsvorteile bringen ?
Vielleicht, enorm werden sie vielleicht aber auch nicht ausfallen.
Evtl neue Features ?
Auch vielleicht, bzw. ziemlich wahrscheinlich.

PyPy ist momentan noch in einer Konsolidierungsphase, sprich es ist noch zu früh darüber zu reden was das System kann und wie es das kann. Das wird die Zeit noch früh genug zeigen. Momentan sollte Dich noch nichts davon abhalten bei CPython zu bleiben. :-)

Verfasst: Montag 27. Februar 2006, 13:15
von Mad-Marty
Beeindruckend, gibts überhaupt was von Python was du nicht schon ausprobiert hast ;-)

Was passiert danach mit CPython ?
Wird es einfach gestoppt ?

Der Python Code sollte dann ja auch auf PyPy ohne Probleme laufen.
(Wozu also 2 Versionen pflegen ?)

Gewissermassen ist PyPy ja auch wieder in C/C++ wenn ich das richtig verstanden habe ... ???


Habe auch mal einen der Proposals gesehen wo optionale typendeklarierung vorgeschlagen wird. Ich glaube das wäre ein sehr gutes Feature und würde wahrscheinlich auch enorme Geschwindigkeitsvorteile bringen. Oder was meint ihr ?


Was mich auch interessiert, warum wurde PyPy eigentlich angefangen zu entwickeln, anstatt einfach CPython weiterzubauen ?

Wo liegen die grossen Vorteile ?

Verfasst: Montag 27. Februar 2006, 16:04
von mitsuhiko
Mad-Marty hat geschrieben:Was passiert danach mit CPython ?
Wird es einfach gestoppt ?
CPython gibts nach Jython auch weiterhin noch.
Mad-Marty hat geschrieben:Der Python Code sollte dann ja auch auf PyPy ohne Probleme laufen.
(Wozu also 2 Versionen pflegen ?)
Es lauft schon jetzt viel Code auf pypy, für die Basissachen reicht es auf alle Fälle schonmal aus.
Mad-Marty hat geschrieben:Gewissermassen ist PyPy ja auch wieder in C/C++ wenn ich das richtig verstanden habe ... ???
Nein. Es ist Python in Python. Es kann auf CPython laufen, oder auf RPython dem eigens dafür entwickelten Interpreter.
Mad-Marty hat geschrieben:Habe auch mal einen der Proposals gesehen wo optionale typendeklarierung vorgeschlagen wird. Ich glaube das wäre ein sehr gutes Feature und würde wahrscheinlich auch enorme Geschwindigkeitsvorteile bringen. Oder was meint ihr ?
Das hat nix mit Python zu tun, sondenr mit dem darunter Laufenden RPython, wenn ich mich jetzt nicht irre. Python selber wird Duck-Typing bleiben.
Mad-Marty hat geschrieben:Was mich auch interessiert, warum wurde PyPy eigentlich angefangen zu entwickeln, anstatt einfach CPython weiterzubauen?
Ist mehr oder weniger ein Wissenschaftliches Projekt. Wird deswegen auch von der EU mit Millionen überhäuft :)
Ich glaube über kurz oder lange wird pypy stable und man kann dann anfangen den darunterliegenen Interpreter zu verbessern.

Verfasst: Montag 27. Februar 2006, 18:07
von Kompottkin
blackbird hat geschrieben:Nein. Es ist Python in Python. Es kann auf CPython laufen, oder auf RPython dem eigens dafür entwickelten Interpreter.
RPython ist eine Sprache. Grob gesagt ist es Python minus dynamische Features. PyPy ist in RPython geschrieben, damit es sich selbst möglichst effizient übersetzen kann (z.B. in schnellen C-Code).
blackbird hat geschrieben:Das hat nix mit Python zu tun, sondenr mit dem darunter Laufenden RPython, wenn ich mich jetzt nicht irre. Python selber wird Duck-Typing bleiben.
So habe ich es auch in Erinnerung. Allerdings ist andererseits genau das der Sinn und Zweck von PyPy: da es in Python geschrieben ist, lassen sich neue Python-Ideen wie optionale Typendeklarationen (die ich persönlich verabscheuen würde) sehr leicht austesten. In gewisser Weise erinnert es mich an Scheme: auch eine Sprache, für die es nicht schwer ist, einen eigenen Interpreter in der Sprache selbst zu schreiben und dann mit Erweiterungen zu experimentieren.
Mad-Marty hat geschrieben:Was mich auch interessiert, warum wurde PyPy eigentlich angefangen zu entwickeln, anstatt einfach CPython weiterzubauen?
Ein in Python geschriebenes Python ist viel, viel leichter erweiter- und optimierbar.

Verfasst: Montag 27. Februar 2006, 19:58
von Mad-Marty
Nein. Es ist Python in Python. Es kann auf CPython laufen, oder auf RPython dem eigens dafür entwickelten Interpreter.
Ja es ist in Python geschrieben, aber damit kommt ja die tolle 2000fach langsamere geschwindigkeit. Also wird es erst dann interessant wenn PyPy
auf eigenen Beinen (eigener Maschinencodeerzeugung) steht, oder ?


Kann ich mir RPython dann wie die JavaVM vorstellen ?

Ein in Python geschriebenes Python ist viel, viel leichter erweiter- und optimierbar.
Ich fürchte das ist nicht so, ein feature was auf einem anderen aufbaut schleppt ja automatisch dessen schwächen immer mit ... ?!

Klar man muss dann nur an der Basis optimieren, was die sache vereinfacht, aber das bringt sicher auch overhead der sich nicht wegoptimieren lässt ...



Ich vermute mal, wenn dann PyPy final ist (find ich übrigens gut das die EU geld für Python abstellt :-) wird es für den Programmierer fast wie CPython sein, ohne erkennbare nachteile.

Verfasst: Dienstag 28. Februar 2006, 00:06
von BlackJack
Mad-Marty hat geschrieben:Kann ich mir RPython dann wie die JavaVM vorstellen ?
Nein RPython ist wie schon gesagt eine Untermenge von Python. So ähnlich wie Pyrex nur wirklich nur "echtes" Python.
Ein in Python geschriebenes Python ist viel, viel leichter erweiter- und optimierbar.
Ich fürchte das ist nicht so, ein feature was auf einem anderen aufbaut schleppt ja automatisch dessen schwächen immer mit ... ?!
Es ist auf jeden Fall schonmal einfacher zu Pflegen und zu Erweitern. Zum Beispiel werden Attribute von Objekten (ausser wenn man __slots__ benutzt) in Dictionaries gespeichert. Das ist in CPython in C Programmiert und sieht dementsprechend "hässlich" und umfangreich aus. Solche Quelltextabschnitte sind in PyPy dann viel schöner zu lesen.

Und wenn der Python-Interpreter selbst in einer dynamischen Sprache geschrieben ist, dann lassen sich Optimierungen vornehmen, die man bei statischen Sprachen nicht vornehmen kann. Zum Beispiel an die aktuelle Situation angepasste (Neu)Übersetzung in Machinencode zur Laufzeit.