Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2017-02-18

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

All times shown according to UTC.

Time Nick Message
00:00 xstill tohle teda vypadá, že tolik nestrácí na 10447, ale vychází to zhruba nastejno, takže stejně na nic
00:05 mornfall nj, 10450 už má půl hodiny výhodu
00:09 xstill je to marný, čas jít spát
00:11 mornfall ok... napíšeš Jiříkovi že to vzdáváme?
00:15 mornfall https://paradise.fi.muni.cz/~xrockai/except.pdf je každopádně poslední iterace textu, všechno co je TODO by mělo být označený
02:48 ilbot3 joined #divine
02:48 Topic for #divine is now DIVINE | http://divine.fi.muni.cz | http://irclog.perlgeek.de/divine/
08:44 xstill mornfall: jinak si myslím, že pokud by se build_note inicializovala na absolutní cestu zdrojáků + datum a čas tak by to pokrylo většinu věcí a rozhodě by to bylo lepší než nic
10:50 mornfall zatím jsem zjistil, že nechat dbg.* v bitkódu stojí na fifo-naive asi 25 % času (ale tím se fail s výjimkama nevysvětluje protože to nebylo zarecordovaný)
11:22 mornfall každopádně mezi oldexcept a next není ve fifo-naive žádnej rozdíl, takže nevím cos vlastně naměřil
11:44 mornfall xstill: za regresi ve fifo-naive můžou nedotažený 'noexcept' v pthread-ech (který jsem si nepullnul)
11:44 mornfall (fifo-naive hodně používá pthread_mutex_lock/_unlock)
11:49 xstill hm, nevidím, že by tam u něčeho chyběla noexcept anotace, podívám se na to pak
11:50 mornfall každopádně je to v tom, s těma 3 patchema je to konzistentně (a výrazně) pomalejší
11:50 xstill no, nicméně v oldexcept byly ty stejné patche taky
11:52 xstill takže to může dělat regresi vůči nextu ale nevysvětluje to ten fail
12:02 xstill zkusím to unpullnout a poštvat na to pheme
12:02 mornfall no, ta část v bricks je jednoduchá, v oldexcept je call na _Unwind_RaiseException na 2 obrazovky instrukcí, v aktuálním to vyteklo 20000 řádků scrollbacku
12:05 xstill jo to není tak překvapivý, personality a metadata budou mít dost instrukcí, ale teda steně mě překvapuje, že ten rozdíl je až tak velký, čekal bych pár procent, ne 3x pomalejší
12:10 xstill 304297 bude ta instance s revertnutým noexcept (ty ID rostou úchylně rychle…)
12:47 mornfall no, rozdíl mezi next a oldexcept při vyhození jedné výjimky je 394k vs 119k instrukcí
12:47 mornfall z čehož usuzuju, že tohleto už letos v publikovatelným stavu nebude
12:51 xstill to je počet instrukcí na to vyhození, nebo na celý model?
12:51 mornfall dotáhnout divm do stavu kdy bude 250k instrukcí zanedbatelný rozdíl bude nějakou dobu trvat, jestli na to vůbec dojde
12:51 mornfall na celej model
12:52 xstill fu
12:52 mornfall kterej ale nic moc jinýho nedělá
12:52 mornfall z toho 97k je boot u obout
12:52 mornfall obou*
12:53 mornfall takže vyhození je cca 22k proti 297k
12:53 xstill hm prochází ti aktuálně pdclib/3.stdio-fclose.pdc?
12:54 xstill hm, to vypadá, že mi darcs něco špatně zmergoval
12:54 mornfall podle status.html prošlo
12:55 mornfall já jdu ven a výjimky jdou na hromádku k weakmem-u
13:08 xstill hm, měl jsem funkční generování LSDA tabulek ale pullnul jsem si ty tvoje patche a rozsypalo se to, zdechne mi to při hledání začátku bloku v instruction tabulce
13:08 xstill nicméně teď na to kašlu a jdu taky ven
15:28 mornfall spito: jak to vlastně vypadá s tvým úkolem?
15:42 mornfall on navíc ten parser vypadá tak že každá šestá instrukce je branch
15:49 xstill mornfall: pořád platí, že na začátku basic blocků je prázdná instrukce?
15:52 mornfall xstill: dostala OpBB jako opcode (nikoliv 0)
15:52 mornfall xstill: a nevim jestli tě to potěší, ale skoro všechen čas se tráví v __md_get_pc_meta
15:53 mornfall xstill: protože kdoví proč to lineárně prochází všech 2000+ funkcí?
15:54 mornfall i když nevim jestli OpBB jsem zarecordoval, možná ne
15:58 xstill hm, jo, budu muset nějak informaci o těhlech operacích dostat do userspace
15:59 xstill __md_get_pc_meta hledá lineárně protože tu tabulku nejde staticky seřadit podle function poitrů
16:00 xstill když budou instrukce v paměti tak by nemuselo být v podstatě potřeba hledat vůbec, ne?
16:02 mornfall volá se to 5x a typicky to vezme něco jako 3500 iterací, každá iterace těch 6 instrukcí, to je hned 100k instrukcí
16:03 mornfall nemuselo, určitě ne takhle neefektivně
16:04 xstill asi bych ty přidané opcody vyřešil tak, že by se to dopsalo do toho enumu v runtime/divine/instructions.h a ten by se pak mohl opravit aby fungoval i v ne-runtime a používat i ve VM
16:04 mornfall ale nemuselo by se to hledat ani teď, funkce jsou očíslované v iteration order toho modulu
16:05 mornfall (a číslo funkce se z code pointru získá (pc & _VM_PM_Obj) >> _VM_PB_Obj nebo tak něco)
16:07 mornfall personality možná překvapivě skoro nic nedělá, ono ty lsda jsou typicky asi spíš skoro prázdný
16:08 mornfall chvíli něco memsetuje (to by se možná taky nemuselo po bajtech) a pak něco málo počítá
16:09 xstill ano, pokud funkce není moc velká, akorát jsou tak asi 4 memory interrupty který by se daly zničit pokud by detekce opakovaného čtení brala v úvahu i offset
16:09 xstill v tom nastavení z results do výjimky
16:09 xstill některý věci v té tabulce nejsou zarovnané
16:09 xstill některé bohužel ani nemůžou být
16:10 xstill ty LEB kódované indexy by teď s tou novou implementací měly být kratší
16:10 xstill takže celé LSDA bude kratší
16:10 mornfall ale možná je teda téma znovu na stole, protože když se zničí ten loop v __md_get_pc_meta tak by to mohlo výrazně poskočit
16:11 xstill (ale je poměrně dost zarovnané, akorát nevím jestli memcpy využije zarovnání na 4)
16:11 mornfall memcpy jsem si ani žádný nevšiml, jen memset
16:12 xstill tak to asi dokázal clang odoptimalizovat spátky na load
16:12 xstill v implementaci je memcpy kvůli nezarovnaným datům
16:12 xstill ale to se asi na x86 targetu vyhodilo
16:13 mornfall ne žádný memcpy tam není
16:13 xstill tím líp
16:13 mornfall (aspoň žádný který by se reálně zavolalo v tady tom jednoduchým příkladu)
16:21 mornfall pokud jde o čísla opcode, tak to všechno nějak do divine.h přijde spolu s typama na čtení instrukcí a tak
16:22 mornfall teď se to může klidně nějak ohackovat
16:22 mornfall stejně pak asi přejmenuju divine.h na divm.h a všechno tím rozbiju
16:27 xstill ok, instrukce už tam jsou (v divine/opcodes.h), tak by se to mohlo přesunout do divm.h pak
16:28 xstill ještě mi to nějak rozbilo nalezení záznamu k invoke
16:52 xstill má vůbec smysl abych debugoval co je špatně na těch metadatech teď když se ta reprezentace bude předělávat? Mám podezření, že ta instruction tabulka je nějaká rozbitá
16:57 mornfall v next-u testy prošly, takže až tak moc rozbitá být nemůže, ale možná nemá
16:58 mornfall taky záleží co s tím článkem
17:13 xstill to je vlastně pravda, že to nějak fungovat musí
17:14 xstill no podle mě by mělo smysl dodělat tu externalizaci reprezentace
17:14 xstill podle toho jak to dopadne potom se rozhodnout co s článkem
17:51 mornfall nemělo, protože to je projekt na dlouho
18:13 mornfall http://paris.utdallas.edu/qrs17/index.html (12 stran IEEE, deadline 1.3.)
18:14 mornfall (a ano, je to v Praze, ale to je myslím v tento moment docela jedno)
18:14 mornfall všechno další má limit 15 lncs (ten článek má teď 20 a to tam není všechno)
18:18 mornfall 1.3. jsou dokonce abstrakty, tzn. pokud 1.3. bude dotažená implementace a evaluace, tak do 8. klidně doladím text a může se to submitnout
18:21 xstill takže jen předělat metadata aby fungovaly rychlejš?
18:23 mornfall no to já samozřejmě nevim, prostě to dotáhnout... prostoru na optimalizaci tam může být dost na to aby se to chovalo slušně, ale zaručit to nemůžu
18:27 mornfall odkrokovat v sim-u jedno vyhození výjimky je dobrej začátek, je možný že když se spraví metadata tak to už bude srovnatelný, je možný že ne ale že to půjde ještě někde zlepšit
18:28 xstill jasně, začnu od metadat
18:28 mornfall když bude ta sada co je v postgresu do deseti procent horší než s D3 tak si myslím že to je na paper
18:28 xstill ok, to mi zní rozumně
18:28 xstill co je ta konference zač?
18:29 mornfall IEEE Quality cosi
18:29 mornfall web vypadá hrozně, ale hned druhá odrážka v topics je software testing, verification and validation
18:29 mornfall (pak o něco dál formal methods)
18:31 mornfall a organizuje to IEEE, bude to velký a nejspíš to nebude mít špatnej rating
18:37 xstill ok, to by se mělo dát zvládnout
22:53 divine-next 1 new patch validated [mornfall]

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