Portál AbcLinuxu, 27. července 2025 08:58


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
Jakub Lucký avatar 4.12.2008 11:37 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: Python 3.0
Odpovědět | Sbalit | Link | Blokovat | Admin
Nemohl by nějaký admin opravit ten odkaz?
If you understand, things are just as they are; if you do not understand, things are just as they are.
Luboš Doležel (Doli) avatar 4.12.2008 11:39 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Python 3.0
Hotovo.
Jakub Lucký avatar 4.12.2008 11:46 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: Python 3.0
Díky...
If you understand, things are just as they are; if you do not understand, things are just as they are.
4.12.2008 12:33 PMD
Rozbalit Rozbalit vše Re: Python 3.0
Odpovědět | Sbalit | Link | Blokovat | Admin

Docela by mě zajímalo, za kolik let bude P3x používanější než P2x.

4.12.2008 12:59 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Python 3.0

To je jednoduché, až bude v Debianu stable :-)

 

4.12.2008 13:02 PMD
Rozbalit Rozbalit vše Re: Python 3.0

Tak to je ještě čas :-)

thingie avatar 4.12.2008 13:36 thingie | skóre: 8
Rozbalit Rozbalit vše Re: Python 3.0

Copak Debian. Ten na Pythonu tak nevisí, jinde to budou mít horší, takže tohle je možná trochu mimo.

Růžové lži.
Jakub Lucký avatar 4.12.2008 14:09 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: Python 3.0
GUIkové appky na současném Pythonu docela visí... A to i v Debianu...
If you understand, things are just as they are; if you do not understand, things are just as they are.
4.12.2008 15:36 slush | skóre: 9 | blog: slushuv_koutek
Rozbalit Rozbalit vše Re: Python 3.0

Snad nebude problem mit v systemu jak 2.x, tak 3.x. A aplikace se budou postupne migrovat...

4.12.2008 16:08 Ondrej Kupka
Rozbalit Rozbalit vše Re: Python 3.0

No to nebude, kdyz 2.6 je kompatibilni s 2.x i 3.x...

5.12.2008 11:36 PMD
Rozbalit Rozbalit vše Re: Python 3.0

Ale no tak, co je tohle za blábol, přečtěte si k tomu nejdřív něco...

13.1.2009 08:37 Pev | skóre: 28
Rozbalit Rozbalit vše Re: Python 3.0

To je jednoduché, až bude v Debianu stable :-)

Proč není ještě v Debianu unstable:

Python 3.0 has many bugs which results in corrupted data. It should never ever hit unstable. Most bugs should be fixed in 3.0.1 It will be useful to have it in experimental to port packages to python3k. But it would also be nice to have python2.6 so we can do some preporting work with `python2.6 -3 myscript.py` (would also close bug 502235)

4.12.2008 19:12 xm | skóre: 36 | blog: Osvobozený blog | Praha
Rozbalit Rozbalit vše Re: Python 3.0
Odpovědět | Sbalit | Link | Blokovat | Admin
Třikrát hurá! Konečně sme se dočkali ;-)
Svoboda je tím nejdůležitějším, co máme. Nenechte se o ní připravit, podporujte Pirátskou stranu!
4.12.2008 19:16 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Python 3.0
Odpovědět | Sbalit | Link | Blokovat | Admin

pred casem jsem musel neco maleho v pythonu napsat a neco tak divneho jsem uz dlouho nevidel (i kdyz na visual basic to porad nema) tak doufam, ze ty nejvetsi hruzy uz odstranili... a taky trosku pohnuli s vykonem... treba jsem totalne nepochopil, proc je map rychlejsi nez for-each, atp. 

Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
4.12.2008 20:16 Petr Mach | skóre: 9 | blog: Hláska
Rozbalit Rozbalit vše Re: Python 3.0

To by me zajimalo, muzes byt konkretnejsi?

4.12.2008 21:15 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Python 3.0

ted uz si na to moc presne napamatuju... ale vim, ze me hodne vytocilo volani: set("123"), ktere dela trochu neco jineho nez by si clovek predstavoval

jinak, kdyz jsem zacal resit vykon, tak jsem nejdriv myslel, ze oficialni ,,performance tips'' si ze me delaji srandu.

o for-each vs. map jsem uz psal... takze bych zminil kapitoly typu Avoiding dots..., Local Variables (Python accesses local variables much more efficiently than global variables. -- pristup ke globalnim promennym jde prekvapive resit v konstantnim docela kratkem case ;-]). a pak v nejake pozdejsi kapitole: Function call overhead in Python is relatively high -- coz povazuju u programovaciho jazyka za docela podstatnou vadu.

 

Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
4.12.2008 22:33 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: Python 3.0
pristup ke globalnim promennym jde prekvapive resit v konstantnim docela kratkem case ;-]
Asi ze sebe udělám pitomce, ale to zas tak nevadí: za jakých podmínek je tohle možné? Teď mne (po pár pivech a jednom Jamesonovi) napadá, že snad pouze v případě, že obory platnosti jsou v daném jazyce lexikální (což je dneska snad vždycky) a nelze je zvenčí měnit (což v dynamických jazycích v principu zajistit nelze). Ale protože jsi schemař (dynamický jazyk s lexikálními obory platnosti), mohl by ses podělit o, ehm, detaily :-)
Ještě na tom nejsem tak špatně, abych četl Viewegha.
5.12.2008 02:21 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Python 3.0

finta je to prosta... je teda z me hlavy, ale divil bych se kdyby to nekdo nepublikoval uz predemnou. budu to demonstrovat na optimalizaci cteni symbolu z nejvyssiho prostredi a bude fungovat za predpokladu, ze nektere z prostredi nebude prekryvat symbol z tohoto prostredi. 

ma se to asi takto. predpokladejme, ze mame jednotlive prostredi e_0, ..., e_n definovane takto: e_i = [parent: e_(i-1), bindings: {[s_1, o_1], ..., [s_n, o_n]}, collision_bit: false], kde e_0 je pocatecni prestredi, e_n je aktualni prostredi, [s_i, o_i] predstavuji vazbu symbol-objekt v danem prostredi. to jenom pro ujasneni pojmu (nekde se pojem prostredi definuje trochu jinak).

pak tu mame priznak collision_bit, ktery je nastaveny na true, tehdy a jen tehdy pokud aktualni prostredi nebo jeho nadrazane obsahuje vazbu na symbol, ktery je obsazeny i v nejvyssim prostredi e_0.

predpokladejme, ze mame program a v nem chceme vyhodnocovat promenne. takovou promennou muzeme vnitrne reprezentovat jako treba foo = [symbol: "foo"; global_binding: null].

muze nastat nekolik situaci:

  1. promenna foo je lokalni, ci promenna definovana v nadrazenem prostredi. (nic noveho pod sluncem) hledame vazbu:
    • v aktualnim prostredi
    • pokud tam neni, prejde se do nadrazeneho, etc. 
  2. mame promennou bar, ktera je globalni
    • zkontroluje se, jestli ma dane prostredi priznak collision_bit nastaveny na false. coz znemena, ze neexistuje riziko, ze by nejake prostredi prekrylo vazbu v globalni prostredi.
    • takze v pripade, ze collision_bit je false, podivame se jestli promenna global_binding ma nejakou hodnotu... v pripade, ze ne... prohledame prostredi jako v prvnim pripade a odkaz na cely radek z globalni tabulky symbolu navazeme na interni reprezentaci symbolu bar. tzn. bar = [symbol: "bar"; global_binding: *[s_i, o_i]]
    • vratime hodnotu o_i z global_binding.
  3. mame promennou baz, ktera je globalni, ale collision_bit je nasteveny na true, i.e., nektere prostredi prekrylo globalni symbol, prejdeme k prvnimu postupu

toto je ta nejhrubsi varianta. ma nektere neduhy... pokud lokalni prostredi prekryje jeden symbol z globalni tabulky symbolu, prestanou fungovat zrychleni i pro ostatni symboly. algoritmus jde dal zjemnovat... treba misto priznaku jde pouzit seznam kolidujicich symbolu, atd. dal to jde zobecnit i pro vazby, ktere nejsou v globalnim prostredi... ale to by ten popis byl jeste delsi.

vyborne to odpovida schemu, kde plati, ze (az na top-level prostredi) nejde do prostredi (po jeho vytvoreni) pridavat dalsi symboly. a jedina zrudnost je spec. forma set!... jenomze s tou jsme se uz vyporadali tak, ze jsme do global_binding ulozili odkaz na celou vazbu, takze se vlastne meni hodnota globalne. dalsi peknou vlastnosti je, ze to BUNR (bez ujmy na rychlosti), dovoluje predefinovavat i zakladni konstrukty jako define, if, atp.

se semantikou pythonu nejsem zase tak velky kamarad, ale podle me by to melo fugovat taky. ted si nejsem 100% jisty, jak to dopadne s moznosti pridavat si lokalni symboly dle libosti. to by v nejhorsim pripade, mohlo znamenat, prepocitat si collision_bit pri kazdem zavolani funkce. coz by asi nebyla zas tak velka hruza, protoze to jde udelat spolecne s vyhodnocenim prvniho globalniho symbolu.

Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
5.12.2008 11:22 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: Python 3.0
bude fungovat za predpokladu, ze nektere z prostredi nebude prekryvat symbol z tohoto prostredi
Což je právě ten průšvih, ne? :-) Ale to by mělo jít zjistit už při překladu… Jinak s tím příznakem kolize je to hezký nápad, díky.
Ještě na tom nejsem tak špatně, abych četl Viewegha.
5.12.2008 20:21 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Python 3.0
Což je právě ten průšvih, ne?

ani ne. prekryvat lokalne globalni hodnoty se povazuju docela casto za ,,bad practise''. takze ve vetsine funkci na tento mezni pripad nedojde. a pokud dojde, tak se to redukuje na puvodni zpusob, coz zase neni takova hruza. navic da se tem kolizim vyhnout alfa-konverzi, ale to ja treba z predchoziho duvodu neresim. :-]
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
5.12.2008 22:21 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: Python 3.0
Ono i definovat globální proměnné se považuje za bad practice :-) Navíc překrývání globálních (nebo "superglobálních") symbolů se leckdy bere jako způsob uživatelské změny "zabudovaných" konstruktů… ale je fakt, že to nebude častý případ.
Ještě na tom nejsem tak špatně, abych četl Viewegha.
5.12.2008 04:05 Petr Mach | skóre: 9 | blog: Hláska
Rozbalit Rozbalit vše Re: Python 3.0

Tak jsem si to precetl a nic zvlastniho na tom nevidim. To ze je rychlejsi prohledavat pouze lokalni prostor nez lokalni prostor a potom nadrazeny prostor je vcelku logicke, ne? Tohle je u dynamickych jazyku normalni, uplne stejne si takto urychluju javascript nebo PHP.

Proc je map rychlejsi nevim, tipuji ze je to funkce implementovana v C, ktere interpret preda data a ona mu vrati vysledky, kdezto prikaz for bezi interpretovane v ramci virtualniho stroje.

Ze je volani funkci drahe je u dynamickeho jazyka opet bezne, vzdyt je s tim spojena spousta prace, za prve se musi najit v lokalnim nebo nejakem nadrazenem prostoru, za druhe je potreba zajistit funkcni introspekci. Obavam se, ze pro tebe bude divny kazdy interpretovany jazyk :-).

5.12.2008 06:45 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Python 3.0
Tak jsem si to precetl a nic zvlastniho na tom nevidim. To ze je rychlejsi prohledavat pouze lokalni prostor nez lokalni prostor a potom nadrazeny prostor je vcelku logicke, ne? Tohle je u dynamickych jazyku normalni, uplne stejne si takto urychluju javascript nebo PHP.
viz vyse
Proc je map rychlejsi nevim, tipuji ze je to funkce implementovana v C, ktere interpret preda data a ona mu vrati vysledky, kdezto prikaz for bezi interpretovane v ramci virtualniho stroje.
to je to, co nechapu... kdyz map je funkce, proc to nemuzou udelat analogicky pro for... pripadne pro for, kde to jde bezpecne prevest (coz je drtiva vetsina pripadu)
Ze je volani funkci drahe je u dynamickeho jazyka opet bezne, vzdyt je s tim spojena spousta prace, za prve se musi najit v lokalnim nebo nejakem nadrazenem prostoru, za druhe je potreba zajistit funkcni introspekci.
predstav si, ze jsi vyjmenoval ty nejpohodovejsi veci na reseni. ;-] mnohem vetsi sranda je treba s vytvorenim lokalniho prostredi. ;-] a predstav si, ze jsou i dynamicke jazyky, ktere poradne nemaji ani to for a misto cyklu pouzivaji rekurzivni _volani_ a presto maji rychlejsi interpretery nez python. takovy gauche scheme s prehledem strci python do kapsy a s SBCL to radsi nebudu ani srovnavat. ;-]
Obavam se, ze pro tebe bude divny kazdy interpretovany jazyk :-).
:-]]] z cehoz plyne, ze asi sam budu cely divny... ale aspon se dobre bavim... kdybys tak vedel, za co me (mimojine) strycek sam plati... ;-]

Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
5.12.2008 11:03 Petr Mach | skóre: 9 | blog: Hláska
Rozbalit Rozbalit vše Re: Python 3.0

No, a muzes treba u map() delat treba veci jako break a continue? Ja myslim ze map() je hodne specifiky pripad a flexibilite for se nevyrovna. Na druhou stranu pak for musi bezet interpretovane a tedy pomaleji. Tudiz, mas-li tento specificky pripad, pouzij map() ci spise jeste radsi generator, ktery k operacim tohoto typu slouzi.

Mozna gauche scheme a SBCL strci rychlosti Python do kapsy, ale zase se prakticky nepouzivaji, ono je to vzdycky neco za neco. Ano, Python sam o sobe kod bere a provadi jak je. Podle meho rychle, ale tobe asi vadi, ze ho neoptimalizuje, optimalizace zustva na programatorovi. Prekladac ti tedy sam od sebe jednoduchy for rychlejsim generatorem nenahradi, musis ty sam. Pokud chces optimalizaci, pak doporucuji pouzivat Psyco, je-li to mozne.

5.12.2008 20:39 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Python 3.0
No, a muzes treba u map() delat treba veci jako break a continue?
proc, ne? zijeme ve svobodne zemi! ;-] neni problem nahradit continue a break... jde to resit returnem znacici vyskoceni z iterace (funkce), podle navratove hodnoty toho ,,returnu'' vnitrni funkce (neco na zpusob map) pozna, jestli ma pokracovat dalsi iteraci nebo cyklus ukoncit.
gauche scheme a SBCL strci rychlosti Python do kapsy, ale zase se prakticky nepouzivaji
to by ses divil, jak se prakticky nepouzivaji. kazdopadne ja jsem to tady uvadel jako priklad ,,dynamickych jazyku'', kde jdou delat veci rychle. na druhou stranu, prave proto se divim takovemu uspechu pythonu i pres vazne problemy s rychlosti.
optimalizace zustva na programatorovi
a to je ten duvod proc remcam... tohle by bud nemelo byt treba nebo by to za me mel delat pocitac.
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
5.12.2008 10:07 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Python 3.0

Pokud u interpretovaného jazyka řešíš rychlost i jinak než na úrovni složitosti tvých algoritmů, asi je tvůj problém někde úplně jinde než v samotném jazyce. Koneckonců, můžeš si dopsat modul v C/C++ :-)

5.12.2008 10:41 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Re: Python 3.0
jasne, jenomze na co jsem narazil u pythonu, to jsem jeste v jinem jazyce nevidel.

muj program docela intenzivne pracoval s mnozinama. takze jedno z mojich podezreni padlo na to, ze operace s mnozinama maji slozitost O(n^2)... tak jsem si napsal vlastni, kde jsem mel jistotu, ze jsou O(n)... a dopadlo to hrozne, viz problemy s efektivitou volani a cyklu.

python jsem pouzival kvuli bindingu na jiny software... takze ne, ze by to bylo neproveditelne... ale psat si modul v C/C++, aby volal modul v pythonu a ten volal software v C a Jave mne pripadne uz trochu hardcore. ;-]
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
saly avatar 4.12.2008 20:21 saly | skóre: 23 | blog: odi_et_amo
Rozbalit Rozbalit vše Re: Python 3.0
Odpovědět | Sbalit | Link | Blokovat | Admin

Řekněte mi ještě, že PyQT4 s tím funguje na 100% a je nějaké skvělé IDE jako QT Creator a hurá do toho! :-D

Mám svůj web: https://www.renekliment.cz/.
Jardík avatar 4.12.2008 22:09 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Python 3.0

PyQT4 s Pythonem3 samozřejmě nefunguje.

Věřím v jednoho Boha.
saly avatar 4.12.2008 22:29 saly | skóre: 23 | blog: odi_et_amo
Rozbalit Rozbalit vše Re: Python 3.0

Jestli to je ironie, tak se omlouvám, ale v py nedělám a nenašel jsem nikde nic, že to vpohodě funguje ...

Jardík avatar 4.12.2008 23:03 Jardík | skóre: 40 | blog: jarda_bloguje
Rozbalit Rozbalit vše Re: Python 3.0

Ironie to není, ono to vážně nefunguje. Si to zkuste.

Věřím v jednoho Boha.
Saljack avatar 5.12.2008 08:39 Saljack | skóre: 28 | blog: Saljack | Praha
Rozbalit Rozbalit vše Re: Python 3.0
Jste to zkoušeli? To je ta 3 tak odlišná? Doufám,že jestli PyQT4 nefunguje, že to co nejdřív nahradí.
Sex, Drugs & Rock´n Roll.
5.12.2008 14:17 xm | skóre: 36 | blog: Osvobozený blog | Praha
Rozbalit Rozbalit vše Re: Python 3.0
Python verze 3 je s předchozími verzemi nekompatibilní (taky proto je to major verze). Ale ty změny nejsou nijak fatální (a hlavně všechny jsou k lepšímu, prostě to co bylo v Pythonu nehezké se konečně odhodlali napravit i za cenu ztráty zpětné kompatibility). Nicméně s Pythonem 3 je dodáván nástroj na automatický převod kódu z Pythonu 2.x.
Svoboda je tím nejdůležitějším, co máme. Nenechte se o ní připravit, podporujte Pirátskou stranu!
Saljack avatar 5.12.2008 19:55 Saljack | skóre: 28 | blog: Saljack | Praha
Rozbalit Rozbalit vše Re: Python 3.0
Docela bych byl rád kdyby někdo pěkně sepsal všechny změny.
Sex, Drugs & Rock´n Roll.
8.12.2008 09:00 xm | skóre: 36 | blog: Osvobozený blog | Praha
Rozbalit Rozbalit vše Re: Python 3.0
Svoboda je tím nejdůležitějším, co máme. Nenechte se o ní připravit, podporujte Pirátskou stranu!
David Watzke avatar 5.12.2008 08:00 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Python 3.0
Používej C++ a máš po starostech :-D
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
saly avatar 5.12.2008 11:01 saly | skóre: 23 | blog: odi_et_amo
Rozbalit Rozbalit vše Re: Python 3.0

I ty vtipálku jeden :-)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.