Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2017-04-15

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

All times shown according to UTC.

Time Nick Message
01:48 ilbot3 joined #divine
01:48 Topic for #divine is now DIVINE | http://divine.fi.muni.cz | http://irclog.perlgeek.de/divine/
08:07 mornfall blurry: ten t.final je celkom koncepčný problém :p (ale aspoň už mám predstavu čo sa deje)
08:39 xstill a v čem je ten koncepční problém?
08:53 mornfall blurry: defuxxored (snáď) ... ps budeš mať konflikty s next-om kvôli odpraveniu int * pri syscalloch, nemal by to byť veľký problém
08:54 mornfall xstill: asi viz patche, za chvíli snad přistanou
08:54 mornfall bbiab
09:11 divine-next 2 new patches validated [mornfall]
10:14 blurry_ joined #divine
10:22 xstill aha vidím
10:26 blurry_ mornfall: mmnt, zaradim si to niekam to prioritnej fronty cinnosti
10:35 blurry_ mornfall: ale dakujem pekne
11:26 mornfall xstill: mít generování archivů v 'divine cc' je docela neortodoxní
11:27 mornfall (nejsem si jistej jestli je vůbec smysluplný mít to v režimu překládám divinem k dispozici)
11:28 mornfall to by bylo víceméně užitečný jen kdyby někdo chtěl psát makefile kterej bude používat divine cc
11:31 mornfall (což je přesně to čemu se chceme vyhnout tím, že budeme mít transparentní náhrady za cc/ld/ar)
11:42 divine-next 9 new patches validated [xstill mornfall]
13:18 blurry_ joined #divine
13:29 blurry_ mne 'viz patche' uplne nepomohlo, nechcete mi niekto zhrnut co sa udialo v konecnom pocte viet?
13:30 mornfall blurry_: divine bol hlúpy a nevedel si poradiť s prípadom keď sa do daného stavu dostal po error aj ne-error šipkách (ak sa tam najprv dostal po ne-error šipkách, tak príslušný parent graf tú nájdenú chybu vôbec neobsahoval → assertion failed)
13:31 mornfall blurry_: parent graf je zostavený z obrátených šipiek tak, že ku každému stavu obsahuje len prvú šipku ktorá bola do daného stavu objavená
13:32 mornfall blurry_: (možno by som mal hovoriť parent strom, lebo je to actually strom)
13:32 mornfall blurry_: používa sa to preto, lebo sa dá ľahko uložiť v pamäti konštantnej veľkosti priradenej ku každému stavu a stačí na to, aby sa našla cesta po ktorej sa prišlo k chybe
14:08 blurry_ mornfall: som rada, ze to nehovoris, ale pises, na to nemam dost advanced buffer
14:09 mornfall blurry_: a rozumieš tomu, alebo je ešte niečo nejasné?
14:14 blurry_ mornfall: not entirely, ale nepatrim medzi najchapavejsich jedincov
14:14 blurry_ mornfall: ale dalsi krok by musel byt vizualizacia
14:15 mornfall blurry_: env B=semidbg ./test/divine draw -std=c++14 --render 'tee ex.dot' ./test/pthread/2.deadlock-dead-thread.cpp
14:16 mornfall blurry_: scp arke:.../ex.dot . ; dot -Tx11 ex.dot
14:17 mornfall blurry_: doteraz to fungovalo tak, že sa povedalo že '20' je zlý stav, lenže parent 20 je 14, takže 'error' trace bol 1 2 3 4 6 9 14 20, na ktorom zjavne žiadny error nie je
14:18 mornfall (prípadne arke:/tmp/ex.dot je už hotový dot súbor)
14:20 mornfall blurry_: (opravil som to tak, že za zlý sa označí ten stav kde červená šipka začína, tzn. 25 alebo 19, a keď sa buduje trace tak sa ešte pohľadá tá jedna červená šipka na konci)
14:34 blurry_ mornfall: dakujem!, aj ked necakala som okamzitu vizualizaciu, ale prilezitostnu :)
16:54 xstill mornfall: na druhou stranu nevidím moc důvod proč by to nemohl umět. Příjde mi smysluplné aby kód který řeší divine cc a divine-cc (for the lack of better names…) byl pokud možno stejný, vzhledem k tomu, že pro rozumnou použitelnost musí divine cc stejně umět řešit takové věci jako include cesty a linkování ke knihovnám. Tím pádem plánuju, že divine cc a divine-cc budou
16:55 xstill nejspíš jen jiná nastavení pro cc::Compiler. Krom toho minimálně kvůli libc budeme potřebovat být schopní přeložit kód různě pro nativní a DIVINE běh a dát to následně dohromady a to mi příjde jako funkcionalita, která se víc hodí do divine cc (jakožto DIVINE-specific věci) než do pokud možno transparetního wrapperu nad clangem.
16:59 mornfall jo, jenže naše náhrada za 'ar' je otázka commandline parseru (který sdílet stejně nepůjde) plus ~15 řádek kódu (tools/runtime-ld.cpp)? ty patche co realizují divine cc -a vypadají ve srovnání dost složitě
17:03 mornfall normálně žádný nástroj který by přeložil nějaký .c a přímo z toho vyrobil archiv neexistuje, což je předpokládám zdroj většiny té složitosti
17:06 xstill složitě? myslíš těch pět rádků v Compiler::runCC (původně v cli.cpp) + commandline option?
17:08 xstill (ten patch co to přesouvá do runCC kam to patří je v podstatě ortogonální k tomu, že to umí archivy)
17:09 mornfall no, jednak všechno co není v next-u závisí na tom patchi co přídává -a, druhak ten přesun do compile není moc dobrý sám o sobě protože --dont-link je definovaný v ui/ ale error message je zadrátovanej v cc/
17:10 mornfall (tzn. to že ten stořádkovej patch je ortogonální nejde úplně dobře poznat)
17:11 xstill ta poznámka o ortogonálnosti byl kvůli množství kódu, je mi jasný, že je závislej a nejde ho pullnout bez toho -a
17:11 xstill ten error je trochu nešťastnej no
17:13 xstill nicméně snaha byla aby se dal pochopit, asi by se dal přeformulovat bez zmínění přepínačů
17:14 mornfall má to runCC nějakej potenciál uplatnit se v divcc?
17:15 xstill ano, to je právě to kde se řeší celé parsování přepínačů které se nedaj jen přímo předat clangu (-I,-L,-l,…)
17:16 mornfall nevyjádřil jsem se přesně, myslím tady ten kus kódu co se tam přesunul
17:19 mornfall (zrovna výsledek divcc bude dost jinej než výsledek divine cc, protože bude tvořit aj nativní kód a generovat elfový .o)
17:20 mornfall (a ty archivy budou teda taky asi jiný, resp. budou muset obsahovat ty hybridní .o a indexování bude asi k nativnímu kódu?)
17:21 xstill aha, myslím, že ano, i když to není nevyhnutelné, dá se to založit i na tom původním způsobu. Přemýšlím teď nad tím, že mergovat bitcode s nativním kódem v divine cc asi není taky úplně ideální volba, spíš na to bude muset existovat extra příkaz/nástroj
17:23 mornfall ono taky divcc by vůbec neměl používat virtuální filesystém, takže to bude možná spíš potřeba rozbít na víc kusů než to konsolidovat
17:24 xstill hm
17:25 xstill VFS se dá vypnout, OK zničím ten přesun do runCC
17:26 xstill co s tím -a? myslíš, že bitcode archivy nebudou k ničemu užitečné?
17:28 xstill podle mě je to dost na podobné úrovni jako --dont-link
17:28 mornfall nevím, užitečný by to bylo v situaci kdy potřebuju dělat s větším projektem a nemám divcc, ale má to jednak problém že to neodpovídá tomu jak funguje normální překladač (takže kdo si nepřečte manuál o tom stejně neví) a vede to na podobný problémy jako --precompiled
17:28 mornfall není --dont-link jen historický alias na -c?
17:29 xstill no je
17:29 mornfall (v divine cc to je speciální proto že máme speciální linker, ne proto že by to fungovalo v principu jinak než normální gcc)
17:30 xstill hm? ten linker není až tak specielní teď už (až na to, že k tomu linkuje i kernel)
17:32 mornfall no zejména to není ten linker kterej by pustil clang interně, takže si -c resp. jeho absenci musíme řešit sami
17:32 xstill jo takhle
17:34 mornfall a --dont-link jako alias bych klidně asi zrušil, je na to jeden test, manuál to vůbec nezmiňuje a nevím o tom že by se to někde používalo
17:43 xstill to může
19:37 xstill ten page limit 6 stránek LNCS je ovšem dost marnej
20:16 xstill jinak teda pokud chceme aby linky na virtuálky fungovali, tak bude buď potřeba aby se make-vm automaticky spustilo po release než se přegeneruje web (a ideálně zkontrolovat, že jen ta VM v pořádku, protože zatím ve většině případů se to nepovedlo na první pokus), nebo se odkazovat na poslední existující soubor.
20:17 xstill teď už by to teda mohlo fungovat o něco víc
20:17 xstill ale rozpadá se to celkem rádo
20:18 xstill + je teda ještě potřeba automaticky aktualizovat verzi v install.sh

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