Hlavní navigace

Názor k článku RPython: překvapivě výkonný dialekt Pythonu, na němž je založen PyPy od Pavel Tišnovský - Jen pro zajímavost - byly výsledky binárně shodné? To...

  • 14. 6. 2018 19:52

    Pavel Tišnovský

    Jen pro zajímavost - byly výsledky binárně shodné?

    To jsem neřešil, prostě jsem spustil jeden a ten samý .py kód pod python2, python3 a pypy a porovnával délku běhu.

    Ono je to v tomto ohledu zajímavé a Pythoní specifikace to moc myslím vlastně ani neřeší - totiž některé optimalizace FPU operací vedou k tomu, že jsou výsledky přesnější na nějakém n-tém místě, protože se v závislosti na architektuře atd. může počítat s větší přesností, než je double. To vede k tomu, že pár pixelů v obrázku může mít nepatrně odlišnou hodnotu (třeba jen o jedničku). RPython dává naprosto shodné výsledky s CPythonem, ale protože nemáme obdobu strictfp z Javy, tak to vlastně jen znamená to, že se drží původní sémantiky co nejvíc to jde (a některé optimalizace buď neprovádí, nebo přepíná stav FPU). Takže jsem se jen ptal proto, že odlišné výsledky můžou znamenat, že si překladač dovolil optimalizovat ještě trošku drastičtějším způsobem.