Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

PyPy 1.2: první verze s JIT kompilerem

Projekt PyPy, který si klade za cíl napsat interpretr Pythona v Pythonu, se pohnul o velmi velký kus vývoje dopředu a to s verzí 1.2. Podle vývojářů jde o hlavní milník ve vývoji, protože přichází s Just-In-Time kompilerem. Ten dokáže být v některých případech rychlejší než CPython. I když byla razantně zvýšena rychlost celého projektu, stále obsahuje některé problémy, díky kterým se na nic jiného než testování nehodí. Především jde o slabou podporu procesorových architektur (momentálně jen x86) a velkou náročnost na paměť. Pokud vás PyPy v nové verzi zaujalo, můžete využít novou projektovou stahovací stránku.

Dále čtěte…         

Předchozí zprávička Následující zprávička        
JardaP . aura:23
15. 3. 2010 10:43 Nový

Re: PyPy 1.2: první verze s JIT kompilerem

celé vlákno

Aby se pri vyvoji nezacyklili a neskoncili nekde u PyPyPyPyPyPy­PyPyPyPyPyPyPy­PyPy......... To by dnesni stroje as neutahly.

Jirka
Jirka (neregistrovaný) ---.nokia.com
15. 3. 2010 11:04 Nový

Re: PyPy 1.2: první verze s JIT kompilerem

celé vlákno

Asi vetsina prekladaci cecka je kupodivu taky psana v cecku.

Karel
Karel (neregistrovaný) 93.90.162.---
15. 3. 2010 14:09 Nový

Re: PyPy 1.2: první verze s JIT kompilerem

celé vlákno

U překladačů je to celkem jedno, v čem byl napsán, výsledkem je binárka. U interpreterů to jedno není, tam vám v tu chvíli beží všech těch X interpreterů najednou.

Program
Program (neregistrovaný) ---.cust.nbox.cz
15. 3. 2010 12:21 Nový

Význam

celé vlákno

Nevím, ale má tenhle projekt nějaký smysluplný význam?

Black Rider aura:72
15. 3. 2010 13:12 Nový

Re: Význam

celé vlákno

Hned dva:

1) zjednoduseni vyvoje
Je jednodussi programovat Python v Pythonu nez v C

2) zrychleni behu programu
Jestli si dobre pamatuju klasickej Python je porad interpretovanej jazyk.
PyPy pouziva JIT kompilaci jako Java ci .Net

Miloslav Ponkrác aura:65
15. 3. 2010 15:08 Nový

Re: Význam

celé vlákno

Ad 1) Aby následně toto „zjednodušení“ ve výsledku časem zdesetinásobilo nutný počet pracovních hodin a náklady na vývoj. Velmi častý jev.

Antonín Brettšnajdr
Antonín Brettšnajdr (neregistrovaný) 212.71.146.---
16. 3. 2010 8:49 Nový

Re: Význam

celé vlákno

tak tak … pokud bude pokracovat zpetna nekompatibilita novych verzi Pythonu, pak mouhou PyPy, s kazdym dalsim vydanim, psat cely nanovo :-) Mam docela obdiv pro lidi, kteri dokazali tuto neprijemnost prekousnout.

Karel
Karel (neregistrovaný) 93.90.162.---
15. 3. 2010 14:18 Nový

Re: Význam

celé vlákno

Vývoj jazyka. Jste vývojář Pythonu nebo nějaké jeho knihovny a chcete experimentovat. V té chvíli potřebujete nějaký interpreter, který si budete upravovat a který bude umět vaše nové konstrukce. Pokud je ten interpreter v C, pak musíte pochopitelně umět Python i C. A to docela dobře. Pokud by interpreter byl v Pythonu, stačí vám umět jediný jazyk – Python. Jakmile něco ověříte a bude to fungovat, pak to časem někdo „natlačí“ i do dalších interpreterů psaných už v „rozmnějších“ jazycích. Takže kupříkladu teď dokázali napsat JIT kompilátor, který funguje. Je jen otázkou času, kdy to bude implementováno i do „mainstream“ interpreterů Pythonu.

Miloslav Ponkrác aura:65
15. 3. 2010 15:17 Nový

Re: Význam

celé vlákno

Osobně myslím, že napsat JIT v C++, což je asi nejvhodnější jazyk na tyhle akce je jednodušší i ve výsledku.

On to totiž nikdo nenatlačí. Jistě je Python vhodný pro prototypování, nicméně JIT už není nic tak jednoduché, aby se to zvládlo prototypizací.

Zvláštní je, že všechny komerční produkty obsahující JIT, a velmi dobré a silné JIT – tak firmy ani nenapadlo zabývat se ničím jiným, než C++, nebo C.

Napsat vynikající JIT kompilaci je velmi sofistikovaný a složitý sw problém. Je to jedna z nejmachrovi­tějších akcí, co vůbec můžete jako programátor napsat. Napsat vynikající optimalizátor kompilovaného jazyka, nebo vynikající JIT (každý z obou věcí je dost jiný problém) je jeden z vrcholů programátorské virtuozity. A není to nic snadného, chce to obrovské množství kódu, dobře rozmyšlenou architekturu, využití dlouholetých zkušeností a opravdu mnoho člověkoroků práce.

Napsat třeba linux kernel je proti tomu velmi srandovní a jednoduchá věc, kterou lidé dostatečně teoreticky i prakticky fundovaní psát vynikající optimalizátor, nebo JIT napíší levou zadní. Tím nechci podceňovat linux kernel, jen ukazuje, jak složitý problém napsat JIT je.

Píše snad někdo linux kernel tak, že nejdříve ho napíšu v Pythonu a pak celý přepíše do C/C++? Ne! Proč? Protože je to blbost a ta práce za to nestojí. Nehledě na to, že Python vůbec nedisponuje řadou potřebných možností pro kernel, ani pro dobrý JIT. Úplně v jeho možnostech chybí řada konstrukcí.

Tudíž JIT, který se nenapíše od nuly v C/C++ za moc stát stejně nebude.

_G
_G (neregistrovaný) ---.241.broadband2.iol.cz
25. 3. 2010 18:39 Nový

Re: Význam

celé vlákno

„Osobně myslím, že napsat JIT v C++, což je asi nejvhodnější jazyk na tyhle akce je jednodušší i ve výsledku.“

Muhehehehe. A teď tu o Šípkové Růžence. :-)

Zasílat nově přidané příspěvky e-mailem        

Přehled názorů

Re: PyPy 1.2: první verze s JIT kompilerem
JardaP . 15. 3. 2010 10:43
└ 
Re: PyPy 1.2: první verze s JIT kompilerem
Jirka 15. 3. 2010 11:04
 
└ 
Re: PyPy 1.2: první verze s JIT kompilerem
Karel 15. 3. 2010 14:09
Význam
Program 15. 3. 2010 12:21
├ 
Re: Význam
Black Rider 15. 3. 2010 13:12
│
└ 
Re: Význam
Miloslav Ponkrác 15. 3. 2010 15:08
│
 
└ 
Re: Význam
Antonín Brettšnajdr 16. 3. 2010 08:49
└ 
Re: Význam
Karel 15. 3. 2010 14:18
 
└ 
Re: Význam
Miloslav Ponkrác 15. 3. 2010 15:17
 
 
└ 
Re: Význam
_G 25. 3. 2010 18:39