Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2013-05-22

| Channels | #divine index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:16 mornfall „ne místo, já chtít růst!“ :D
00:16 mornfall jdu radši spát
00:18 Erbureth gn
06:19 spito joined #divine
09:40 mornfall joined #divine
09:41 mornfall Jak jako nejsem na IRCu? :)
09:44 spito 11:40-> Uživatel mornfall vstoupil do místnosti divine
09:45 spito no nebyl jsi tu
09:45 mornfall stejně se nic nedělo
09:45 spito já ti chtěl ráno napsat
09:45 spito co ty patche?
09:45 spito koukal ses na ně?
09:46 mornfall v polospánku :-
09:46 mornfall :-)
09:48 mornfall zajímavý je, že mi dal chanserv +o
09:48 xstill mornfall: divil jsem se, že hydra zkompilovala HC, ale pak jsem zjistil, že bylo vypnutý, tak tam máš ještě jeden NIX patch
09:48 xstill mornfall: co je +o?
09:48 mornfall channel op
09:50 xstill aha
09:54 spito xstill: jak slouho ses učil na sítě s Pelikánem?
09:54 spito *dlouho
09:54 xstill docela dost
09:55 xstill já jsem zapoměl na ty vydea co jsi chtěl
09:55 spito to je jedno
09:55 spito já se učím dnes
09:55 spito a dnes to taky píšu
09:55 spito to bude zase vypadat
09:55 xstill aha
09:55 xstill hodně štěstí
09:55 spito :D
09:56 xstill tak ono to nebylo až tak težký, pokud o sítích něco umíš
09:56 spito no právě
09:56 spito doufám, že nebude chtít kategorie kabelů od IBM
09:56 xstill :-D už si nepamatuju co chtěl
09:57 xstill ale vím, že tam jsou některý ohavnosti co už jsem rád zapomněl
10:01 xstill vidím, že máme RC2 :-)
10:03 mornfall tobě nic neuteče ;-)
10:05 mornfall spito: u snídaně to dočtu
10:06 spito mornfall: a po zkoušce na to sednu
10:07 spito tedy tak za 3 hodinky
10:07 mornfall teď to chce asi spravit to MPI (partitioned) a pak se vrhnout na benchmark tool
10:07 spito možná 4
10:08 Erbureth mornfall: ten fix pro kompilátor jsi do RC2 nezařadil? :)
10:08 mornfall Kterej?
10:08 mornfall Hmm.
10:08 mornfall Kruci. :)
10:09 xstill mornfall: k MPI se dostanu možná dnes večer nebo zítra, záleží na tom jak moc budu umět složitost.
10:09 mornfall [DVE: Fix handling of property processes in compiler
10:09 mornfall tohle jo?
10:10 Erbureth jj
10:10 mornfall Ok, dám to do branche, do final (nebo rc 3 pokud bude) se to dostane.
10:11 Erbureth ook
10:18 xstill hydra je nějak strašně náročná, úplně níčí annu
10:20 mornfall chce to nastavit ten firewall
10:21 mornfall řekl bych že ve velké míře ji ničí crawleří kteří lezou na :3000
10:21 xstill 3000 je co? hydra?
10:21 mornfall přímej port na hydrovej web interface
10:21 mornfall takže tam není ani cache ani throttling
10:22 xstill to fakt chce zakázat
10:22 xstill jak to vůbec najdou?
10:23 mornfall tak, jednu dobu jsme to běhali explicitně takhle
10:23 mornfall protože není úplně triviální to zaproxyovat
10:24 xstill aha
10:25 mornfall 24647 xstill    20   0  485m 449m 2744 S    0  2.8   0:02.43 nix-env
10:25 mornfall něco instaluješ?
10:25 mornfall no, swapuje to :-)
10:25 mornfall (vidím že iotop)
10:26 xstill jsem to zabil
10:26 mornfall nix-env -iA nixos.pkgs.iotop potřebuje mnohem míň paměti
10:26 xstill co to je za magii
10:27 mornfall nix-env -qaP \* ti řekne pod jakým atributem je co schovaný
10:27 xstill teda on ten příkaz nefunguje navíc
10:27 mornfall tak nixpkgs.iotop :-)
10:27 xstill to funguje
10:28 mornfall každopádně to funguje tak, že mu dáš přímo cestu v k attribute setu kterej popisuje tu derivaci kterou chceš
10:28 mornfall a on pak nemusí evaluovat všechno aby to našel mezi jménama
10:28 xstill aha
10:29 xstill s tím firewallem je nějakej problém, nebo to jen nikdo neudělal?
10:30 mornfall tak jako tak, problém je, že hydra potřebuje cca 50M paměti na build (i remote), tzn. cca 3.5G na těch 64 buildů co může běhat paralelně
10:30 mornfall a evaluátor občas sežere víc jak 5
10:30 mornfall a už nestíhá
10:31 xstill většina IO je nix-store --import
10:31 mornfall jo, to kopíruje výsledky
10:32 mornfall asi má chudinka hlavně málo swapu
10:32 mornfall jdu to napravit
10:33 xstill swapu je 32GB
10:33 mornfall no, už asi 20 vteřin
10:33 xstill aha, kolik bylo před tím?
10:33 mornfall 1G
10:33 xstill :-D
10:35 mornfall mělo by se to napsat do konfigurace, antea má teda 17 ale z toho 16 bylo vypnutých
10:35 mornfall (je to /dev/vg1.<hostname>/swap{1,2})
11:57 Erbureth mornfall: poslal jsem patch s těmi věcmi, o kterých jsme včera mluvili, constants folding jsem hodil do parseru a přihodil jsem tu definici maker procesů
11:57 mornfall super, podívám se na to
11:58 Erbureth díky, jdu na studijní, za chvíli jsem zpátky
12:04 mornfall Erbureth: Vypadá to dobře, nakonec to zdá se nebylo tak složitý.
12:04 mornfall Erbureth: Jen by možná bylo dobrý v Declaration volat fold rekurzivně.
12:05 mornfall Aby toplevel deklarace fungovaly jako letrec, ne jako let.
12:05 mornfall I když kdoví.
12:06 mornfall Dám to tam jak to je a nad letrec se ještě zamyslíme.
12:39 Erbureth mornfall: ook. jak myslíš to letrec?
12:40 mornfall Erbureth: No, když napíšu byte foo[x]; const int x = 7; tak to teď asi nezafunguje, nebo?
12:41 Erbureth nechal bych to prozatím jako v C
12:42 Erbureth používat proměnné definované fyzicky dřív
12:45 mornfall ok
12:45 mornfall aspoň nemusíme chytat nekonečný cykly
13:53 spito mornfall: co jsem to poslal za poťapaný patch?
13:54 spito a ten patch s dummy generátorem se ti nelíbí?
14:05 mornfall cojávim
14:07 xbarnat joined #divine
14:08 xbarnat baf uz jsem tu dlouho nebyl ...
14:08 xbarnat a ted tu jsem
14:08 xbarnat vcera jsem do pul jedne do rana Hackoval/Crackoval Nintendo Wii pro babicku ... kam ten svet speje ...
14:09 xbarnat Nicmene, jsem tu proto, abych se zeptal co s oponentama vasich praci? Ha?
14:14 Erbureth kdo nám je bude přidělovat?
14:14 mornfall Vedoucí.
14:14 mornfall :-)
14:17 Erbureth mornfall: myslíš, že je lepší šablonu procesu instanciovat "macroname(params)", nebo s klíčovým slovem "process macroname(params)"?
14:18 mornfall to kdybych věděl
14:20 Erbureth ony by se takhle daly instanciovat i další věci
14:20 Erbureth třeba LTL procesy
14:20 Erbureth ale to  bych dal do budoucna
14:21 mornfall asi bych tam spíš to klíčový slovo dal
14:22 Erbureth asi to fakt bude lepší
14:22 Erbureth xbarnat: co si myslíš ty?
14:23 xbarnat ja jsem pro klicove slovo
14:27 mornfall (bbiab)
14:37 xbarnat Oponenit byli prideleni!
14:37 xbarnat Oponenti *
14:42 spito xbarnat: zapsal bys mi pěkně prosím 15 kreditů? :)
14:42 spito (a řekl bych, že je xstill bude chtít taky)
14:43 spito mornfall: je pro tebe snesitelné, že bude pro odstranění -Wold-style-cast warningů kolem includovaných souborů #pragma GCC....?
15:08 mornfall spito: a nefunguje -isystem líp?
15:09 spito co to je?
15:10 mornfall no, vypne to všechny warningy v tý cestě kterou tomu dáš
15:10 mornfall pro #include
15:10 mornfall jinak pokud teda řešíš valgrind, tak ti to nepomůže, protože ty warningy vznikají použitím maker
15:11 mornfall to je lepši tu #pragma dát do toho bloku #ifndef NVALGRIND v pool.h...
15:12 spito jo, tam jsem ji dal
15:13 spito a to funguje
15:13 spito ale nasázel jsem je i v llvm
15:13 spito protože tam těch chyb bylo taky hodně
15:13 spito mornfall: proč máš v poolu všechno znaménkové? to jsem taky přehodil na unsigned
15:37 Erbureth joined #divine
15:47 spito joined #divine
16:13 mornfall http://fmt.cs.utwente.nl/tools/scm/spins.git btw
16:52 xstill mornfall: co je s tím spin-em?
16:52 mornfall kterým?
16:54 xstill no proč jsi posílal odkaz na git spinu?
16:54 mornfall to není git spinu :-)
16:55 mornfall to je ten SpinS
16:57 xstill aha jsem nepřečetl to poslední s :-)
16:58 xstill to už dává smysl
16:59 mornfall tak, kdybych objevil git spinu, tak by to asi bylo taky docela zajímavý :-)
17:00 xstill spin není open source?
17:01 mornfall SPIN je o deset let starší než Linux :-)
17:01 xstill fakt?
17:01 mornfall zdrojáky jsou, ale pochybuju že má version control
17:01 mornfall no, 1980
17:01 mornfall od 91 jsou zdrojáky veřejný
17:02 xstill no teda, to je dost
17:02 xstill ale tak nějaký version control snad mí musí ne...
17:02 mornfall interní, snad
17:05 xstill a k čemu by bylo zajímavý do toho vidět?
17:06 mornfall a nebylo snad? :)
17:08 xstill asi jo
17:10 xstill mornfall: to tak vypadá jako by sis chtěl přeprogramovat kus nixosu :-)
17:10 mornfall kde? :)
17:11 xstill no #nixos
17:11 mornfall :D
17:11 xstill se tam dneska výjimečně něco dělo a koukám, že ty...
17:12 mornfall maj tam bug
17:14 xstill ta hydra jo? to je nemilé
17:14 xbarnat joined #divine
17:18 xstill xbarnat: ahoj
17:18 xstill kdo teda bude můj oponent?
17:18 Erbureth Tak jestli to bude někdo, kdo rozumí DiVinE... :D
17:19 xbarnat Spito - Mornfall
17:19 xbarnat xstill - Vilik
17:21 xstill ok
17:22 xstill když vidím tu aktivitu na divine@fi tak bych měl začít zase něco dělat
17:23 xstill spito: co ta zkouška?
17:23 spito E
17:23 spito na to, že jsem to v podstatě neviděl....
17:24 xstill počkej to už máš výsledek?
17:24 spito jo, bylo nás tam 17
17:24 spito to opravil na požádání
17:24 xstill počkej to nebyly textové odpovědi?
17:24 mornfall furt čekat :-)
17:25 mornfall spito: Co máš další TODO mi radši řekni? :-)
17:28 spito najíst se
17:28 spito a pak zámky na extension u blobu
17:28 mornfall ah :-)
17:28 mornfall výborně
17:28 spito aby map a owcty
17:28 mornfall jj
17:30 xstill hmm ty zámky chceš cpát do parent pointru, že?
17:30 xstill aha ale ono se to vlastně zatím Shared a MPI kombinovat nebude...
17:31 mornfall :D
17:31 mornfall to teprv bude...
17:31 xstill ale tak bude se to muset vymyslet nějak
17:31 spito left #divine
17:31 mornfall už se lekl
17:31 xstill :-D
17:31 spito joined #divine
17:32 mornfall spito: Seš strašpytel.
17:34 xstill mornfall: na jaké úrovni je to MPI rozbité?
17:38 mornfall No, nemůže do poolu
17:39 xstill ale tak to řešilo ještě to tvoje, jinak co? jen NTree a protipříklady?
17:39 mornfall no neřešilo, žejo
17:40 mornfall ten pool potřebuješ aj na slavech
17:40 xstill ha už mám letos 19 kreditů :-)
17:40 xstill no a tam se musí vycucat z prstu ne?
17:42 mornfall musí se vyrobit a musí se nasdílet instancím algoritmu
17:42 mornfall nebo teda musí se dostat do generátorů
17:43 xstill a celá mašina ho musí mít z jednoho počátečního aby fungovalo dereference, žejo?
17:45 spito mornfall: byla potřeba restartovat Operu
17:47 mornfall xstill: tak
17:49 xstill to abych zjistil jak se MPI inicializuje...
17:52 mornfall No, když se zavolá Mpi::start(), tak když jseš slave už se nikdy nedostaneš ven.
17:53 xstill a algoritmy už v tu chvíli existují?
17:55 mornfall hmm
17:55 mornfall master vlastně asi existuje
17:55 mornfall to je divný ale
17:56 xstill no pokud normálně probíhá instanciace tak by to mělo fungovat ne?
17:56 mornfall jo, master už existuje
17:56 mornfall hmm
17:56 xstill jakej master?
17:57 mornfall algoritmus
17:57 mornfall lokální master
17:57 mornfall :-)
17:57 xstill to je trochu matoucí
17:57 xstill a ostatní vznikají on demand ne?
17:57 mornfall no, on nemá žádnou funkci krom inicializace
17:58 xstill (matoucí je označení lokální master, ne to že exituje)
17:58 mornfall a jak bys to nazval?
17:58 mornfall on teda nemá název, je to prostě         algorithm::Algorithm *a = NULL;
17:58 xstill nevím :-)
17:58 mornfall v divine.cpp:192
17:58 mornfall 1
17:59 xstill jo
17:59 xstill no takže pooly by měli být na místě
17:59 mornfall hmm
17:59 mornfall já ten patch smazal s tím že to uděláš líp ;-)
18:00 mornfall řekl bych že by se o pool měl starat Parallel, a všichni by ho měli ultimátně dostat touhle cestou
18:00 xstill jakej? to jsi asi neměl
18:01 mornfall ten co jsem tu pastoval
18:01 mornfall tak, on není moc dobrej
18:01 mornfall a hlavně to nefungovalo
18:02 xstill to bys ale nejdřív musal inicializovat Parallel (což je co?)
18:04 mornfall no, ten patch jak byl nastavoval ten pool jen na MPI uzlu 0
18:04 mornfall protože to nastavoval v algorithm::Common::parallel(...)
18:04 mornfall který se volá z run()
18:05 mornfall Parallel je třída která ti umožňuje rozvětvit běh do více vláken
18:06 mornfall A hospodařit s nějakými shared daty.
18:06 mornfall Tak aby to fungovalo aj s MPI celý.
18:06 xstill a to algorithm::Common::parallel se volá jen na MPI masteru?
18:06 mornfall jasně
18:06 mornfall run() běží jen jednou, žejo
18:07 xstill já do tohohle zrovna moc ještě nevidím...
18:07 mornfall tak, algoritmus má nějaký run, podívej třeba do OWCTY
18:07 mornfall je jasný že ten run() musí běžet právě jednou
18:07 mornfall MPI sem nebo tam
18:08 xstill jo to dává smysl
18:08 mornfall A občas zavolá parallel() který spustí nějakou metodu ve všech vláknech, včetně těch který nejsou MPI-local.
18:10 xstill kde se inicializuje self->topology()?
18:10 mornfall becomeMaster
18:10 mornfall trochu matoucí je, že becomeMaster se volá aj v těch "ne"instancích na MPI slave uzlech
18:12 Erbureth mornfall: jestli projdou testy, tak ti pošlu podporu pro instanciování procesů (opět zatím bez parametrů)
18:12 xstill mornfall: takže to je local master?
18:12 mornfall xstill: něco takovýho
18:12 mornfall xstill: ono to jen spustí inicializaci lokálních workerů
18:14 xstill neměl by se pool prohodit do MpiFrowarderu tudy?
18:14 mornfall určitě měl
18:14 spito xstill: dal ti jiřík kredity za bakalářku?
18:14 mornfall ale ten pool by měl být v Topology, asi
18:14 mornfall Teda ten master pool.
18:14 xstill spito: dal
18:15 spito sakra
18:15 xstill spito: tobě ne?
18:15 xstill mornfall: ono záleží který je master?
18:15 mornfall xstill: nezáleží, ale musí všichni vzniknout z jednoho
18:16 mornfall xstill: takže je dobrý mít nějaký který víš určitě že je ten správný
18:16 xstill no jenže algoritmus/graf se instanciuje dřív nebo minilálně nezávisle od topology...
18:16 xstill a nebo taky ne
18:16 xstill graf se vlastně dělá v algoritmu
18:17 mornfall No, konstruktor Topology vyrábí ty instance algoritmu, žejo
18:17 mornfall (ty který nejsou "master")
18:18 mornfall Takže Topology by mohlo obsahovat shared_ptr na Pool::Shared kterej bude všem posouvat.
18:18 xstill a algoritmus je zároveň potomek Parallel, že?
18:19 mornfall Jo, algoritmus je potomek Parallel.
18:19 xstill i NDFS?
18:21 mornfall struct NestedDFS : Algorithm, AlgorithmUtils< Setup >, Sequential
18:21 mornfall (...)
18:22 xstill ok
18:22 xstill co se vlastně volá když se konstruuje pool pomocí Pool( pool )?
18:23 xstill protože jediný konstruktor který vidím bere shared_ptr
18:23 xstill ale pool nevypadá jako shared_ptr...
18:23 mornfall defaultní kopírovací
18:24 mornfall (logicky)
18:25 xstill hmm, tam není uplně triviální vidět, že ten vůbec existuje
18:25 xstill ale jo to teda zkopíruje wharf?
18:26 xstill což v podstatě jen nastaví lake
18:26 xstill což je shared_ptr
18:26 xstill hmm
18:27 xstill není to triviální...
18:27 mornfall jak by mohl default copy konstruktor neexistovat?
18:27 mornfall resp. jak by se mohl volat kdyby neexistoval?
18:27 xstill no to druhé nejde, žejo
18:28 mornfall tak, a proto že se volá tak musí nutně existovat
18:28 mornfall ale to že existuje je přece normální stav
18:28 xstill no to jo, ale pokud předpokládám, že neexsistuje tak mě nenapadlo, že se volá ;-)
18:29 mornfall to je zajímavý předpoklad :-) hlavně když koukáš na jeho explicitní volání :D
18:29 xstill :-D
18:29 xstill co na to říct...
18:31 xstill no takže nechám v Topology Pool zkonstruovat sám a potom ho nějak dodám do Algorithm::Init asi
18:31 xstill a něco bude potřeba udělat se sequential
18:31 xstill asi by bylo nejjednodušší aby taky měli pool i když jim je na nic...
18:32 xstill hmm jenže Topology vzniká až po grafu.
18:33 mornfall ah, zrada
18:34 mornfall i když ne zas tak moc
18:34 mornfall becomeMaster by se mohlo přesunout do Common
18:34 xstill ale algoritmus nemusí být parallel...
18:35 mornfall ale Sequential může becomeMaster implementovat
18:35 mornfall stejně musí ten pool nějak řešit
18:36 xstill jako že by se volalo jen Common::init(...) a to by zavolalo případně becomeMaster?
18:36 mornfall J.
18:37 mornfall sice se něco přidá do Sequential, ale zase se něco dá pryč ze všech Parallel algoritmů
18:37 xstill a becomeMaster se může volat před inicializací všeho ostatního...
18:37 mornfall takže to není až taková prohra
18:37 mornfall no, to je na zvážení
18:38 mornfall hmm
18:38 xstill no musí se volat dost brzo protože ten pool
18:38 mornfall možná to není úplně nejlepší cesta
18:38 mornfall protože slave instance dostanou pointer na mastera
18:38 mornfall a čekají že má hotovej graf :)
18:38 mornfall kterej chcou použít jako blueprint
18:39 mornfall takže když se to vezme kolem a kolem...
18:39 mornfall tak bych z becomeMaster udělal vararg šablonu
18:40 mornfall a ten pool mu dal jako další parametr :-)
18:40 mornfall aha
18:40 mornfall to je vlastně úplně zbytečný
18:40 xstill proč vararg?
18:41 xstill co je zbytečný?
18:42 mornfall :D
18:42 mornfall ono tohle všechno funguje totiž
18:42 mornfall achjo :-)
18:42 mornfall to jsem si taky rovnou mohl prostě přečíst
18:42 xstill co?
18:43 mornfall jediný co chybí je v AlgorithmUtils::init nastavit pool v MpiForwarder-u.
18:43 mornfall no, ten pool se samozřejmě nastavuje správně
18:43 mornfall už teď
18:43 mornfall aniž by se muselo cokoliv měnit
18:44 xstill takže skoro to jo jsi dělal, jen místo v parallel to bude v AlgorithmUtils::init?
18:44 mornfall J.
18:44 mornfall :-)
18:44 mornfall Ale tak aspoň jsme si to prošli.
18:45 mornfall Nejsu s tím moc spokojenej, protože to je nejasný.
18:45 mornfall Ale přesun do Topology neslibuje moc velký zlepšení.
18:46 mornfall Nebo.
18:46 xstill to nebude ungovat
18:46 mornfall Mohlo by se oddělit konstrukci slave instancí od konstrukce Topology.
18:46 mornfall Vyrobit topology jako první a používat pool odtama.
18:46 xstill protože při volání AlgorithmUtils::init Topolofy neexistuje.
18:47 mornfall no, ten přesun becomeMaster by se měl udělat tak jako tak
18:47 mornfall a pak to fungovat bude
18:48 mornfall ale udělat nějak elegantně tuhletu výrobu instancí byl vždycky největší problém
18:48 mornfall to se táhne už od DiVinE MC.
18:49 xstill no mohli bysme v konstruktoru parallel vytvořit topologii a inicializovat ji v Common::Init, po grafu.
18:49 mornfall Jen pak budeš mít těch topologií hrozně moc. :)
18:49 xstill jen teda nám bude chvíli existovat topologie bez slaves.
18:50 mornfall Protože každej slave si v konstruktoru nějakou vyrobí.
18:50 xstill hmm
18:50 mornfall A celý se to rozbije.
18:51 xstill takže slaves mají v Parallel::m_toplogy nullptr?
18:51 xstill aha ne
18:52 xstill no to je v pohodě ten kostruktor prostě buď dostane mastera a pak si přiřadí topology od něj nebo si udělá vlastní
18:52 mornfall No mají, až než se jim řekne kterou mají používat.
18:52 xstill což půjde protože už bude existovat v masteru
18:52 mornfall To by fungovalo kdybys požadoval aby slave dostával topology jako parametr konstruktoru.
18:53 xstill no to bych klidně i požadoval aby dostal referenci na mastera.
18:53 mornfall Mi furt přijde lepší prostě vyrobit topology v becomeMaster a přidat initialiseSlaves nebo něco takovýho.
18:53 mornfall Takže becomeMaster se bude moct volat na začátku.
18:54 spito xstill: nevadí ti moc, když se ti v NTreeHashSetu změní int --> unsigned?
18:54 mornfall spito: vyrábíš bugy? :)
18:54 spito jj :)
18:54 mornfall to máme radost :-P
18:54 mornfall nechceš radši vyrábět ty zámky?
18:54 spito ale zrovna u uchování velikosti to je lepší unsigned, ne?
18:55 xstill mornfall: no becomeMaster by se pak ani volat nemusal, vykonstruovalo by se to podle potřeby
18:55 mornfall jediný případ kdy je lepší unsigned je když škudlíš bity
18:55 spito to má nějaký vliv?
18:55 xstill spito: no pokud tam není signed/unsigned warning tak bych to nechal
18:56 spito je tam
18:56 mornfall xstill: jen bys pak mohl lehce omylem zavolat topology() na slave-u předtím než se zavolal becomeSlave a vyrobit nepříjemnej bug
18:56 spito právě proto to dělám
18:56 xstill spito: kde?
18:56 mornfall na signed/unsigned warningu je blbý, že žádnej warning na to že ti může podtýct unsigned není :-)
18:56 spito asi tak všude...mě začali vadit ty warningy, tak jsem je začal střílet
18:56 mornfall mně*
18:57 spito :P
18:57 xstill mornfall: no becomeSlave by zmizelo taky...
18:57 xstill spito: no tak já si je odstraním sám, jen musím přijít na to proč je nevidím
18:57 mornfall xstill: to by fungovalo jen kdybys to všechno řešil v konstruktorech
18:58 xstill mornfall: a proč to nedělat?
18:58 mornfall xstill: má to tu nepříjemnou vlastnost že to kazí dědičnost
18:58 spito xstill: já to beru celé...i s warningama old-style-cast
18:59 xstill spito: no tak ty u mě nejsou žejo, tak mě vynech zatím
18:59 mornfall xstill: když budeš chtít aby každej potomek Parallel měl konstruktor kterej bere... co vlastně?
18:59 xstill mornfall: jak kazí?
18:59 xstill hmm
18:59 mornfall xstill: referenci na instanci Parallel jedině asi
18:59 mornfall xstill: pak by to mohlo fungovat
19:00 mornfall xstill: jen některý chtějí aj pointr na typ sebe sama
19:00 xstill No jo tak by to šlo.
19:00 mornfall takže ve výsledku všechny algoritmy dostanou novej parametr do konstruktoru kterej tam už vlastně je :-)
19:00 mornfall jen parallel o tom neví
19:01 xstill hmm
19:01 mornfall spíš bych byl pro snižování magičnosti konstruktorů, než zvyšování
19:02 mornfall nic, jdu cvičit, bbl
19:03 xstill hm, no asi jo, ono by to mohlo začít být ošlivý a ta inicializační sekce by v tom asi měla dost bordel kdyby se tam předalo this
19:03 xstill Takže udělám becomeMaster bez spuštění a pak to spustím pozdějš.
19:32 mornfall fajn
19:43 Erbureth mornfall: podíváš se mi prosím na počátek instancí procesů?
19:46 mornfall instantianization :-)
19:47 Erbureth jak je to správně?
19:47 mornfall instantiation
19:47 mornfall ale jestli na tom něco závisí tak to nech být, jen mě to pobavilo :-)
19:47 mornfall spito občas taky zarecorduje nějakou perlu ;-)
19:47 mornfall kdo ne, nakonec
19:48 spito mornfall: já jsem na to machr
19:48 spito proto mě máte
19:48 Erbureth :) Závisí na tom tuším hned další patch
19:49 mornfall hm, na tom pojmenování těch vygenerovaných procesů je trochu nepříjemný že to bude vidět v protipříkladech
19:49 mornfall existuje nějakej důvod proč tam nedat závorky s parametrama?
19:49 Erbureth na to by se dala udělat výhybka do dumpu
19:49 mornfall když už to je jednou AST, tak string jako string
19:50 Erbureth v kompilátoru by se to muselo speciálně ošetřovat
19:50 mornfall pravda, kompilátor používá názvy 1:1
19:50 xstill mornfall: problém je že bez becomeSlave nedostanu na slave topologii a tedy ani pool
19:50 Erbureth a v identifieru by se taky musel ten token přímo přepisovat
19:51 mornfall xstill: hm
19:51 xstill jo no
19:51 mornfall xstill: takže potřebuješ volat becomeSlave mnohem dřív, co?
19:51 mornfall aha, ale to vlastně nevadí
19:51 xstill a to se volá až v topology::parallel
19:51 xstill což tak moc nechápu
19:51 mornfall no to je proto že nebylo initialiseSlaves
19:51 mornfall teď se to může volat tam
19:52 mornfall řekl bych
19:52 xstill nevolá se to pak zbytečně víckrát?
19:52 xstill (teď)
19:52 mornfall volá
19:52 mornfall takových věcí máme teda víc
19:52 mornfall setIds třeba někde
19:52 mornfall to by taky mělo jít nějak vylepšit
19:52 mornfall Erbureth: jakto?
19:53 Erbureth mornfall: identifier ti text[a] nevezme celý
19:53 mornfall Erbureth: ale udělat nějaký replace "()[] " na _ v kompilátoru na identifikátorech by zas tak nevadilo
19:54 mornfall Erbureth: No, musel bys to vyrobit nějakým alternativním (neparsujícím) konstruktorem.
19:54 mornfall Erbureth: Třeba tomu dát rovnou token.
19:54 Erbureth mornfall: můžu to hodit jako nějaké todo do 3.2?
19:56 mornfall tak ona to není moc velká změna, radši bych to měl v 3.1
19:56 Erbureth ono to tam chce ještě nějak dál emulovat kontext, a je to celkem netriviální
19:56 mornfall co?
19:57 Erbureth bool valid() { return context; }
19:58 Erbureth i když, to by šlo
19:59 Erbureth stačilo by to appendovat. spíš ten kompilátor by byl netriviální
19:59 mornfall no, celej ten konstruktor Identifier( std::string, Context ) může prostě vzít kontext a string použít přímo :-)
20:00 Erbureth jo, tak to udělám. A pak teda vyřešit kompilátor
20:00 mornfall a v kompilátoru úplně stačí vyrobit metodu Identifier -> string a volat tu místo name()
20:00 mornfall a ta nahradí speciální znaky podtržítkama
20:01 mornfall těch volání name() tam nebude tolik aby to nešlo za pár minut pochytat
20:01 Erbureth jj
20:01 mornfall fajn
20:01 Erbureth ok, udělám to jako další patch
20:01 mornfall jasně
20:02 mornfall ještě ten klonovací konstruktor -- volat to s independent = false asi nemá smysl, ne?
20:02 mornfall takže by možná mělo smysl vyrobit unitární enum class a dát tam jako parametr ten?
20:02 Erbureth ono to tam je čistě kvůli tomu, aby to nerušilo kopírovací konstruktor
20:02 mornfall Nebo prostě prázdnou strukturu.
20:03 mornfall struct AstClone {}; třeba?
20:03 Erbureth ook
20:03 mornfall bude tak jasnější co to volání dělá
20:04 mornfall (taky se tím vyřeší to, že některý implementace na to independent koukají a jiný ne :-)
20:04 Erbureth (ony na to koukají všechny :))
20:04 mornfall nic jinýho jsem si nevšim, pak to pushnu najednou
20:05 Erbureth ook
20:05 mornfall zrovna Transition ne...
20:05 mornfall ono to teda nemá jinej efekt než že to kopíruje ty vektory 2x
20:05 Erbureth ten to jenom posílá dál
20:12 xstill mornfall: proč Algorithm::initStore(...) volá self.graph().setPool()? a nedělá to initGraph?
20:13 mornfall to nevim :)
20:13 mornfall ale docela rád bych z grafu pool úplně vyhodil
20:13 spito xstill: initGraph se spouští pro každé vlákno zvlášť?
20:14 xstill a kde ho chceš mít? v algoritmu?
20:14 mornfall ve storu
20:14 mornfall asi
20:14 xstill spito: celý graf je pro každý zvlášť
20:14 mornfall nebo něco :-)
20:14 xstill mornfall: ale graf k němu musí mít přístup stejně
20:15 xstill a teda store se asi musí vytvářet až po grafu
20:15 mornfall visitor jo, graf ne nutně, ten může alokaci dostat jako callback
20:15 xstill jako že bys volal g.successors( n, pool, ... )?
20:16 mornfall g.successors( n, [...]( int size ) { return pool.allocate( size + slack ) + slack; }, ... ) :-)
20:17 xstill to není vůbec hezké
20:17 mornfall jakto?
20:17 mornfall znamená to že graf nemusí vůbec vědět že nějaký slack existuje
20:17 mornfall to je dost win
20:17 xstill no jo ale psát to všude je dost na nic
20:18 xstill to by se musalo zabalit
20:18 mornfall kde všude?
20:18 xstill no všude kde je successors
20:18 mornfall myslíš datastruct.h:32 a datastruct.h:153?
20:20 xstill a ce a tak
20:21 xstill ale tak to se dá řešit tím, že se udělá alokátor který to schová, a ten se tomu hodí místo té lambdy
20:21 xstill takže to pro nezasvěcené nebude vypadat jako temná magie
20:21 mornfall to se sice dá, ale ce to nevolá
20:21 xstill tak jsi to předělal, asi
20:22 mornfall nikdy nevolalo :)
20:22 mornfall successorNum jedině, ale tam to ani nechceš alokovat z poolu
20:22 mornfall stejně to hned zase uvolníš
20:22 mornfall a nepotřebuje to slack
20:22 mornfall tomu dáš prostě malloc jako parametr :-)
20:22 mornfall nebo tak něco
20:23 xstill no asi chceš alokovat z poolu, protože to má rychlejší dealokaci, ale slack bys mít nemusal
20:23 xstill navíc teda bys nemusal mít slack ve stavu pokud jsi na NTree
20:23 xstill a tak
20:23 mornfall u successorNum který se volá dohromady párkrát je to fakt jedno :)
20:23 xstill ale to je na delší rozvahu asi
20:24 xstill no volá se podle délky protipříkladu, ale jo není to moc
20:24 mornfall tam je ta alokace úplně zanedbatelná
20:38 Erbureth mornfall: čím jsi nahrazoval znaky v tom kompilátoru u názvů souborů?
20:39 mornfall ve kterým?
20:39 Erbureth už si právě moc nepamatuju
20:39 Erbureth měl jsi na to tuším stringify makro
20:40 Erbureth hm, já si to grepnu
20:40 mornfall _ :-)
20:41 Erbureth nenalezeno
20:42 mornfall cmake/stringify.*
20:42 mornfall sed -e "s|\\.|_|g" -e "s|/|_|g" -e "s|-|_|g" -e "s|+|_|g"
20:42 Erbureth aha
20:42 Erbureth tak nic, díky
20:42 Erbureth jsem myslel, že to použiju na ty procesy u kompilátoru
20:42 mornfall :-)
20:48 xstill hm, já jdu spát abych zítra byl schopný udělat zkoušku...
20:51 mornfall dobrou
20:56 Erbureth gn, gl
21:22 spito brouk
21:22 spito left #divine
21:34 Erbureth mornfall: ook, úpravy hotovy
21:34 Erbureth nový patch je na mailing listu
21:37 mornfall mám
21:39 mornfall vypadá to OK
21:40 mornfall pushnu to zachvíli, mám rozebranou working copy
21:40 Erbureth ook, thx, jdu na další úkol ted
21:41 mornfall jasně :)
23:33 Erbureth mornfall: můžu tě poprosit o push? připravuju další várku patchů
23:36 mornfall 5 minut
23:37 Erbureth jasný, však než se to dokompiluje a doběhnou testy...
23:39 mornfall hmm, proc_instance.dve.so má jednobajtovej stav? :-)
23:39 mornfall xstill bude mít radost ;-)
23:40 mornfall push běží, ale rozbijou se testy s kompresí, tak snad to zítra Vláďa spraví
23:40 Erbureth jednobajtový před nebo po kompresi?
23:41 mornfall před
23:41 Erbureth to není dobře....
23:41 mornfall jakto?
23:41 Erbureth aspoň pár bajtů by měl mít
23:41 mornfall Hmm.
23:42 mornfall Pravda, jsou tam proměnný v tom procesu.
23:42 mornfall Takže to máte rozbitý oba. :D
23:42 Erbureth ale testy projdou, takže to vygeneruje správný počet stavů i přechodů...
23:43 mornfall Hmm, jo, takže problém je jen v tom ntreehashset.
23:43 mornfall Ten jeden bajt je modulo 16 nebo tak něco totiž.
23:43 Erbureth zase na druhou stranu tam je fakt hodně málo entropie, takže po kompresi bych se tomu jednomu bajtu nedivil
23:43 mornfall Ve zdrojáku výstup překladu vypadá OK.
23:44 mornfall Ne, ntree takhle nefunguje.

| Channels | #divine index | Today | | Search | Google Search | Plain-Text | summary