Portál AbcLinuxu, 2. května 2025 07:22

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

Vložit další komentář
12.4.2007 22:20 outsider
Rozbalit Rozbalit vše Re: Zásobník nadivoko
Odpovědět | Sbalit | Link | Blokovat | Admin
Jsem jedinej, kdo netusi, k cemu by to mohlo byt dobry? Umi to aspon uvarit kafe?
12.4.2007 22:32 paskma | skóre: 13 | blog: Paskmův blog
Rozbalit Rozbalit vše Re: Zásobník nadivoko
No ty korutiny a zelená vlákna se hodí, když si chceš naprogramovat MMORPG (čti: statisíce vláken, které je potřeba migrovat mezi stroji).
13.4.2007 08:13 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Zásobník nadivoko
Hmm a co takhle na to použít erlang a máš to odladěné bezmála 20 lety v průmyslovém nasazení.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
13.4.2007 09:06 paskma | skóre: 13 | blog: Paskmův blog
Rozbalit Rozbalit vše Re: Zásobník nadivoko
Jo, erlang je sice robustní a masivní paralelismus zvládající, ale Python má tu výhodu, že je to obyčejný imperativní jazyk.
13.4.2007 09:53 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Zásobník nadivoko
... ale Python má tu výhodu, že je to obyčejný imperativní jazyk.
A je to skutečně výhoda? V tom vidím jedinou výhodu, umí v tom kódit každej jouda.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
13.4.2007 11:07 paskma | skóre: 13 | blog: Paskmův blog
Rozbalit Rozbalit vše Re: Zásobník nadivoko
V podstatě jo :-). Znám spousty chytrých lidí, co nemají s Pythonem problém, ale o Erlangu v životě neslyšeli. Ne že by se chytří lidi nedovedli Erlang naučit, ale zkus si podat inzerát, že hledáš makáče na Erlang...
13.4.2007 12:38 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: Zásobník nadivoko
No a pak existujou lidi jako valeon :-))
Ještě na tom nejsem tak špatně, abych četl Viewegha.
13.4.2007 11:01 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: Zásobník nadivoko
Ty děláš něco s MMORPG v takovém měřítku?
13.4.2007 11:05 paskma | skóre: 13 | blog: Paskmův blog
Rozbalit Rozbalit vše Re: Zásobník nadivoko
Nop. Já se snažím vyrobit model-checker :-)
12.4.2007 22:32 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: Zásobník nadivoko
Odpovědět | Sbalit | Link | Blokovat | Admin
Nad tímhle kódem začínám chápat, proč někteří lidé považují texty markýze de Sade za umění…
Ještě na tom nejsem tak špatně, abych četl Viewegha.
12.4.2007 22:35 paskma | skóre: 13 | blog: Paskmův blog
Rozbalit Rozbalit vše Re: Zásobník nadivoko
Tak to si ještě počkej. Příště napíšu o fork() na úrovni Pythoňáckých korutin. S tím pak jde dělat takový nechutný backtracking, že si člověk připadá jako v Prologu. :-)
13.4.2007 00:55 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Zásobník nadivoko
Odpovědět | Sbalit | Link | Blokovat | Admin
No a odkaz na vygenerovaný Céčkový zdroják? :-)
13.4.2007 08:59 paskma | skóre: 13 | blog: Paskmův blog
Rozbalit Rozbalit vše Re: Zásobník nadivoko
Céčkový zdroják nic moc, je to stavový automat vygenerovaný z grafové reprezentace...
long pypy_g_slp_entry_point(struct pypy_list0 *l_argv_0) {
        bool_t l_v12; bool_t l_v16; bool_t l_v6; long l_v17; long l_v18;
        long l_v4; struct pypy_object0 *l_v3;
        struct pypy_object_vtable0 *l_v15; struct pypy_object_vtable0 *l_v2;
        struct pypy_object_vtable0 *l_v5;

    block0:
        l_v4 = pypy_g_entry_point(l_argv_0);
        l_v5 = (&pypy_g_ExcData)->ed_exc_type;
        l_v6 = (l_v5 == NULL);
        if (!l_v6) {
                goto block3;
        }
        goto block1;

    block1:
        /* kept alive: l_argv_0 */ ;
        l_v18 = l_v4;
        goto block2;

    block2:
        RPY_DEBUG_RETURN();
        return l_v18;

    block3:
        l_v3 = (&pypy_g_ExcData)->ed_exc_value;
        l_v2 = (&pypy_g_ExcData)->ed_exc_type;
        (&pypy_g_ExcData)->ed_exc_value = ((struct pypy_object0 *) NULL);
        (&pypy_g_ExcData)->ed_exc_type = ((struct pypy_object_vtable0 *) NULL);
        /* kept alive: l_v3 */ ;
        /* kept alive: l_argv_0 */ ;

13.4.2007 09:08 paskma | skóre: 13 | blog: Paskmův blog
Rozbalit Rozbalit vše Re: Zásobník nadivoko
BTW: Jediný důvod, proč je v Adě goto je ten, že by ho mohli ocenit generátory kódu :-)
13.4.2007 08:18 Tom.š Ze.le.in | skóre: 21 | blog: tz
Rozbalit Rozbalit vše Re: Zásobník nadivoko
Odpovědět | Sbalit | Link | Blokovat | Admin
Výborně, je to jistě krok správným směrem. I když mi přijde zbytečné mluvit pořád o tom zásobníku. Pokud to má být konsistentní, tak by to mělo fungovat i když se f i g inlinují (i když nevím, jestli to v Pythonu jde) a žádný zásobník ve hře není (a, popravdě řečeno, bych od "sufficiently advanced" kompilátoru očekával, že to vystreamlinuje do print 1...print 7 během kompilace). Nebo to je opravdu implementačně závislé na manipulace se zásobníkem v C a s "pravými" kontinuacemi to nepracuje?
13.4.2007 09:35 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: Zásobník nadivoko
Hmm, a co aspoň takhle ocenit, že si aspoň někdo po všech těch letech (kromě smalltalkerů a lisperů, samozřejmě :-)) všiml, že není třeba se omezovat na lineární zásobník? ;-)

(Mimochodem, to mi připomíná...prosím Tě, jak že to děláš s Lispem ve Vimu? Pořád nějak nemůžu přijít na to, jak lidsky hackovat závorky v tom modálním zázraku. :-))
13.4.2007 10:59 Tom.š Ze.le.in | skóre: 21 | blog: tz
Rozbalit Rozbalit vše OT - lisp ve vimu

Vždyť jsem to v první větě ocenil. A v seznamu chybí forthisti - ti se omezují na dva zásobníky :)

Asi nadešel čas na coming out. Pro psaní v lispu jsem přešel na emacs... po tuctu let s vimem. Pořád to ještě bolí, a ostatní věci dělám ve vimu, ale je to schizofrenní. Slime je slime. Zkoušel jsem kde co - konfiguraci vimu, propojení clispu a vimu přes readline mapování kláves, různé doplňky (vim+ecl a slim-vim), viper, ale prostě to není ono.

13.4.2007 11:27 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: OT - lisp ve vimu
Ksakru, a já se těšil, že mě konečně naučiš, jak že to efektivně děláš s Lispem ve Vimu a ono takhle. :-) Možná by to chtělo, až bude použitelný Climacs, v něm reimplementovat Vim - ale celý, ne jen nějakou náhražku. Já se přiznávám, že jsem taky schizofrenní. Nu což, co se dá dělat. :-)
13.4.2007 12:18 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: Zásobník nadivoko
Odpovědět | Sbalit | Link | Blokovat | Admin
huh, pekna prasarna... ale dokazu ocenit ty kouzla... i kdyz fakt se s tim lip pracuje, kdyz je to prirozeny konstrukt jazyka, nez kdyz se explicitne hrabe na zasobnik.... btw. v jave 7 se uvazuje o implementaci kontinuaci... takze takoveto pokusy na realnych jazycich nejsou vubec od cesty....
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
13.4.2007 14:14 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Zásobník nadivoko
Odpovědět | Sbalit | Link | Blokovat | Admin
Teda, když to srovnám s tímhle v erlangu:
-module(switch).
-export([start/0]).
-define(print(X), io:format("~p~n", [X])).
-define(switch(X), X ! switch, receive switch -> ok end).

g() ->
	?print(2),
	F = receive PID when is_pid(PID) -> PID end,
	?switch(F),
	?print(4),
	?switch(F),
	?print(6),
	?switch(F).

f() ->
	?print(1),
	G = spawn(fun g/0), G ! self(),
	receive switch -> ok end,
	?print(3),
	?switch(G),
	?print(5),
	?switch(G),
	?print(7),
	G ! switch,
	ok.

start() ->
	io:format("ahoj~n"),
	f().
Tak je to celkem nic moc ten python a to se to ještě musí přeložit a spustit jinak než obvykle, rozuměj taky zkompilovat. Přičemž zkompilovat v erlangu znamená:
> c(switch).
{ok,switch}
> switch:start().
ahoj
1
2
3
4
5
6
7
ok
>
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
14.4.2007 11:04 paskma | skóre: 13 | blog: Paskmův blog
Rozbalit Rozbalit vše Re: Zásobník nadivoko
Hm, pěkné. Ale já jsem neříkal, že Python přináší něco unikárního. Kontinuace jsou ve funkcionálních jazycích normálka. Akorád že tohle je skoro-mainstreamový Python a navíc to jde přeložit do céčka.
16.4.2007 08:23 Hynek (Pichi) Vychodil | skóre: 43 | blog: Pichi | Brno
Rozbalit Rozbalit vše Re: Zásobník nadivoko
... Kontinuace jsou ve funkcionálních jazycích normálka. ...
Na tom je vtipné, že v erlnagu kontinuace nejsou. Krom toho, kdykoliv narazím na problém s kontinuací, vždy bych se zamyslel, jestli to není chyba designu a nakonec je tu vždy možnost řešit to jako v erlangu thready, ale to musí být aspoň tak tenké jako v erlangu. V podstatě je to takový syntaktický cukr, akorát, že zatraceně sladký a i výkonostně jsou kontinuace trochu jinde než thready byť erlangovsky výkonné.
XML je zbytečný, pomalý, nešikovný balast, znovu vynalézané kolo a ještě ke všemu šišaté, těžké a kýčovitě pomalované.
14.4.2007 10:54 Ondrej 'SanTiago' Zajicek
Rozbalit Rozbalit vše Re: Zásobník nadivoko
Odpovědět | Sbalit | Link | Blokovat | Admin
No a pomoci call-with-current-continuation se da docilit toho sameho a navic mnohem elegantnejsim zpusobem.

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.