abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 23:44 | Nová verze

    Byla vydána nová verze 2.56.0 distribuovaného systému správy verzí Git. Přispělo 104 vývojářů, z toho 39 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 21:22 | Bezpečnostní upozornění

    Hackerská skupina ShinyHunters oznámila průnik do informačních systémů FBI, prostřednictvím zero-day zranitelnosti v platformě Oracle PeopleSoft, kterou úřad využívá mimo jiné pro náborový portál FBIJobs.gov. Útočníci tvrdí, že získali až 3 TB dat o současných i bývalých zaměstnancích a uchazečích o práci. Jako důkaz zveřejnili vzorek přibližně 5 000 záznamů obsahující jména, adresy, telefonní čísla, data narození, čísla

    … více »
    AfD 💙 | Komentářů: 1
    včera 21:11 | Zajímavý článek

    Doba kompilace linuxového jádra se díky rychlejšímu hardwaru a optimalizacím kbuildu snižuje k deseti sekundám. Nejnovější patche Lorenza Stoakse (vznikají i s pomocí SI) zkrátily na testovacím stroji dobu sestavení z dlouhých 22 vteřin na pouhých 15, a to bez použití RAMdisku. Testovací systém tvořily dva procesory AMD EPYC 9575F (oba dohromady poskytují celkem 128 jader a 256 vláken), čtyřiadvacet 64GB DDR5-6400 paměťových modulů a

    … více »
    AfD 💙 | Komentářů: 3
    včera 01:33 | Komunita

    Před rokem a půl vývojáři postmarketOS informovali, že pro projekt hledají nové jméno. Včera bylo oznámeno: postmarketOS se nově jmenuje Nura.

    Ladislav Hagara | Komentářů: 5
    27.9. 13:44 | Zajímavý projekt

    Hra Factorio dorazila na Printables. Hned teď si můžete stáhnout 65 různých modelů a nechat celou mimozemskou planetu oživnout na svém stole.

    Ladislav Hagara | Komentářů: 13
    26.9. 19:22 | Nová verze

    GNU Project Debugger aneb GDB byl vydán ve verzi 18.1. Podrobný přehled novinek v souboru NEWS.

    Ladislav Hagara | Komentářů: 0
    25.9. 23:33 | Humor

    Prezident USA Donald Trump během svého projevu na valném shromáždění OSN 22. září 2026 prohlásil, že umělá inteligence 'bude dále oficiálně nazývána superinteligencí', zkráceně SI. Svůj návrh zdůvodnil takto: 'Použití slova artificial činí inteligenci falešnou. Ona falešná není, ve skutečnosti je úžasná'. Zároveň ve svém proslovu prohlásil, že Spojené státy kategoricky odmítají jakékoliv pokusy o vytvoření 'globalistického

    … více »
    AfD 💙 | Komentářů: 26
    25.9. 23:22 | Nová verze

    Čínská technologická firma Xiaomi představila novou verzi 2.6 svého modelu MiMo, váhy modelů MiMo‑V2.6‑Pro‑RL a MiMo‑V2.6‑Flash‑RL jsou dostupné na HuggingFace pod licencí MIT. Výkonnější varianta Pro má přes bilion parametrů, z toho 42 miliard aktivních, úspornější Flash 309 miliard parametrů, z nichž se při generování aktivuje přibližně 15 miliard. Oba modely mají délku kontextového okna milion tokenů. Tyto MoE modely zvládají

    … více »
    AfD 💙 | Komentářů: 0
    25.9. 03:33 | Komunita

    Proběhl Snapdragon Summit 2026. Společnost Qualcomm se mimo jiné pochlubila během Linuxu na čipech Snapdragon X2. Zatím pouze v ranní verzi vhodné pro vývojáře linuxových distribucí a přispěvatele do jádra Linux.

    Ladislav Hagara | Komentářů: 0
    24.9. 21:11 | Nová verze

    Byla vydána nová verze 2.0 klienta F-Droid určeného pro instalaci bezplatných a otevřených mobilních aplikací do Androidu ze softwarového repozitáře F-Droid (Wikipedie). Jedná se o alternativu k Google Play.

    Ladislav Hagara | Komentářů: 7
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2742 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Návrat do budoucnosti v Pythonu

    18.4.2007 22:49 | Přečteno: 1437× | Dev/Tech/Gnu | Výběrový blog | poslední úprava: 18.4.2007 22:50

    Minule jsem psal o tom, jak jdou se zásobníkem v Pypy dělat psí kusy. Uvedený příklad byl ale jen taková onanie. Dnes tu mám opravdovější příklad. Jedná se o funkci fork() modulu _stackless. Co tahle funkce dělá? Inu přesně to, co její jmenovkyně z pravého Unixu, jen nevytvoří nový proces, ale korutinu (takové lehkotonážní vlákno, které nemá preempci a musí se přepínat explicitně). Funkce se tedy vrátí "dvakrát". Po vyvolání zůstane provádění v hlavní korutině a tato korutina dostane referenci na nově vytvořenou synovskou korutinu. V synovské korutině vrátí fork hodnotu None. K čemu je to dobré? Představte si, že zavoláte nějakou funkci a dostanete její návratovou hodnotu. Nějakou dobu s touto návratovou hodnotou počítáte, ale pak zjistíte, že tato návratová hodnota se vám nějak nehodí do krámu. Vyvoláte tedy výjimku a program se vrátí v čase až do volání inkriminované funkce a tato funkce se pokusí vám poskytnout lepší návratovou hodnotu. Sci-fi? Mrkněte na následující příklad.
    # this is pyfork.py
    from _stackless import fork, coroutine, clonable
    
    class Fail(Exception):
    	pass
    
    def zero_or_one():
    	subcoro = fork()
    	if subcoro is not None:
    		try:
    			subcoro.switch() # in the parent: run the child first
    		except Fail:
    			pass
    			
    		return 1   # then proceed with answer 1
    	else:
    		return 0   # in the child: answer 0
    
    def f():
    	num = zero_or_one();
    	
    	if num == 0:
    		print "zero is not good enough!"
    		raise Fail
    	
    	print "we got ONE: ", num
    
    def main():
    	#just because fork() is not enabled in main routine
    	coro = clonable()
    	coro.bind(f)
    	coro.switch()
    	print "Done"
    
    main()
    
    Funkce zero_or_one vrací nulu nebo jedničku. Řekněme, že se nám ve funkci f nula ani trochu nelíbí. Vyvoláme výjimku Fail nastane návrat do minulosti. (Mimochodem, BTTF a Michaela J. Foxe mám fakt rád.) Samotná funkce zero_or_one funguje následovně. Fork vytvoří novou korutinu a reference na ni se uloží do proměnné subcoro. Provádění pokračuje v hlavní korutině (taže následující podmínka se vyhodnotí jako True). Jenže pak následuje přepnutí na synovskou korutinu, a funkce nakonec vrátí nulu. Když se ve funkci f vyvolá výjimka, tak se propaguje až do místa, kde synovská korutina započala svůj běh (tedy subcoro.switch()). Synovská korutina de-facto končí a výjimka se propaguje až do rodičovské korutiny (tohle je asi největší magie). Tam je výjimka ošetřena a funkce vrátí jedničku.

    Demonstrace

    Aby tohle fungovalo, je potřeba Pypy přeložit do Céčka s následujícími parametry:
    $ python translate.py --stackless --gc=framework --batch targetpypystandalone.py
    
    Pak se to pustí příkazem
    $ ./pypy-c pyfork.py
    
    a vypíše
    zero is not good enough!
    we got ONE:  1
    Done
    
           

    Hodnocení: 80 %

            špatné • dobré        

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

    Komentáře

    Vložit další komentář

    18.4.2007 23:46 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Návrat do budoucnosti v Pythonu
    Nebylo by „poněkud“ inteligentnější místo vyhození výjimky do jiného vlákna prostě zavolat kontinuaci, která existuje přesně kvůli tomuhle účelu?
    18.4.2007 23:49 paskma | skóre: 13 | blog: Paskmův blog
    Rozbalit Rozbalit vše Re: Návrat do budoucnosti v Pythonu
    Něco proti Unixu?-)

    Asi ano, ale tohle mi přišlo zábavnější.
    19.4.2007 10:40 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: Návrat do budoucnosti v Pythonu
    ona to vlastne kontinuace je... jenom ten stav zasobniku uklada jinak...
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    19.4.2007 11:10 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Návrat do budoucnosti v Pythonu
    No je taková hodně explicitní. :-) Ale čím jsou odlehčenější, tím líp. :-)

    Založit nové vlákno • Nahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.