Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2016-01-09

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

All times shown according to UTC.

Time Nick Message
07:56 xstill hm, tak jsem s tou aurou neuspěl :-/
09:00 xstill mornfall: a ještě mi prosím řekni co si myslíš o těch figurách jak jsem je teď nastyloval. Podle mě to dost pomůže čitelnosti, ale u tabulek přemýšlím jestli nenechat jen tu čáru dole. (pdf je nové)
09:04 mornfall no, je sice jasný co je figura, ale je to trochu overwhelming
09:04 mornfall a pere se to s číslama řádků za okrajem
09:05 mornfall jednu z těch spodních dvou čar bych zrušil
09:05 mornfall asi spíš tu spodní, a tu úplně vrchní dal stejně tenkou jako je ta mezi
09:08 mornfall nezapomeň opravit tu citační větu v prvním odstavci kapitoly 3 (can be found for example in [29, 5])
09:18 xstill jojo, nezapomenu
09:22 xstill 2 tenký čáry by asi taky šly, aktualizoval jsem pdf
09:30 mornfall lepší, ještě by to chtělo asi malinko víc místa kolem 3.1 a celkově mezi tou čarou a labelem a možná nějak srovnat horní a dolní mezeru mezi čarou a textem uvnitř obrázku (typicky kód vypadá že má extra volnej řádek na konci)
09:33 xstill jo, s tím místem je problém že ho ten krám na kód dělá sám a já zatím nevím jak mu ho ovlivnit
09:34 xstill ještě si s tím budu hrát, teď jdu dodělat tabulky
13:49 xstill hm, by mě docela zajímalo proč je na fifo 1 tam nová transformace asi 1000x lepší než ta z memicsu i po odečtení všech optimalizací
13:51 mornfall zní to trochu podezřele
13:54 xstill jo, ale zas si nemyslím, že by tam byl nějakej zásadní problém, jsem to docela testoval a dává to očekávané výsledky (jakože to nachází chyby tam kde by mělo)
15:35 xstill nojo, tušení bylo správné, https://paradise.fi.muni.cz/~xstill/dev/divine/next-xstill/lart/userspace/weakmem.cpp, v tomhle souboru je jeden noinline, když ho přepíšu na always_inline (což odpovídá tomu co bylo v původním userspace), tak se stane takvá dost nemilá věc, že se velikost fifo-tso-1 změní z 15k stavů na víc než 6M (už to běží dost dlouo…). Jak málo někdy stačí…
15:41 xstill (on se ten stavovej prostor totiž roznásobí pozůstatkama po vylévání store bufferu)
15:41 mornfall počítám že proto, že otočka toho cyklu na :349 není invariantní pro rámec svojí funkce když se to zainlinuje
15:41 xstill jo
15:42 xstill v tom původním to bylo sice jinak ale taky to nebylo invariantní
15:43 mornfall to je asi dobrej argument proč nulovat mrtvý registry
15:44 xstill jo, ale nulování mrtvých registrů, to co jsem byl zatím schopnej udělat nemá žádnej efekt. jenže ono si právě neumí poradit s cykly.
15:45 xstill ono totiž tu mrtvost nejde napočítat jen dosažitelností
15:46 xstill ale to se vyřeší, mám nápad jak udělat pěkně alokaci registrů, tak o tom bych se s tebou chtěl někdy pobavit (ale to počká až bude nový interpret, teď to nemá smysl), tak to můžeme spojit s tím
15:47 mornfall pěkně v jakém smyslu?
15:50 mornfall a kdy to nejde napočítat dosažitelností?
15:51 xstill no, v podstatě by se mi líbilo kdyby lart říkal přímo do jakých slotů má divine alokovat registry, a tu alokaci dělal částečně podle semantiky instrukcí. Jestli dobře tuším, tak totiž v divine registry nejsou typované, takže klině můžu překrýt bitcast s tím z čeho se castnul a tak podobně. Tím bys vlastně některé instrukce vůbec nemusel interpretovat. No a zbyde ti z toho n
15:51 xstill ejspíš výrazně mín registrů, které se ...
15:51 xstill ... pak už nějak doalokují.
15:52 xstill protože na cyklu může být další použití registru dosažitelný ale pokud je mezi tím assign tak ho můžu vynulovat
15:52 mornfall jo to už se asi děje, protože použití a definice uvnitř jedné instrukce neinterferují
15:53 mornfall (hodnoty se všechny vytáhnou a pak se zapíše výsledek)
15:54 xstill typicky, pokud %a = něco, %b = %a + 1 v cyklu tak to použití %a není takový že z něj není dosažitelné použití %a
15:54 xstill co se už děje?
15:54 mornfall že se překrývá operand s výsledkem, v bitcastu
15:55 mornfall pravda, jen pokud ten originál před bitcastem nemá další použití někde dál
15:57 xstill právě, oni se můžou překrýt vždycky. Dokonce by se mohlo překrýt i trunc, zext a sext s původní hodnotou (trunc se pak taky může vyhodit, ty exty se budou muset provést). Podobně phi se bude moct minimálně někdy překrývat.
15:57 xstill já už normálně mám tendenci psát \divine a \lart i sem :-D
16:00 mornfall to je ambiciózní, jen se to bude pěkně blbě počítat
16:01 mornfall ale mohlo by to jít zakódovat do constraintů
16:02 xstill to nějak zkusím až napíšem ten CAV
16:03 mornfall jakože %x = zext ... %y znamená že off(%y) = off(%x) + (sizeof(%x) - sizeof(%y)) a hledat alokace který to splňujou
16:05 mornfall a nebudeme muset všechno dělat v bigendian pak?
16:07 xstill stačí najít řetězy %x, %y = ext %x, %z = ext %y, … z nich vzít třeba ten nejdelší pokdu jich je víc. Jako primární registr pak označím ten největší, jeho životnost je sjednocení všech životnsotí reg. v tom řetězu. no a ty ostatní se naalokujou na stejnej offset, jen maj jinou délku. Právě že takhle to funguje v littleendianu, v big bysme museli posouvat ten offset
16:07 xstill LE má právě tu výhodu, že když ze stejné adresy přečteš menší datovej typ tak dostaneš trunc
16:08 xstill u BE musíš přičíst rozdíl velikostí
16:09 xstill ale to se nakonec dá počítám dostat z toho bitkódu jakou máš endianitu, takže se to asi dá udělat i univerzálně ta transformace
16:10 mornfall jo to co jsem napsal já je bigendian, ale funguje to stejně jen ty constrainty vypadaj jinak
16:41 mornfall a s dosažitelností mi furt není jasný, kdy je potřeba držet registr živej na use-use cestě?
16:41 mornfall registr by měl být na pozici x živej pokud přes x vede nějaká def-use cesta
16:43 xstill asi proto že jsem to celý implementoval asi tak za hodinu když se mi nechtělo dělat nic jinýho a není to moc promyšlený :-D
16:43 mornfall (s tím že def-use cesta je zpětná dosažitelnost def z use, tzn. pro def-def-use platí vždycky jen ten poslední def)
17:36 xstill tak jo, snad mám komplet text, kdyžtak mi prosím mrkni v tom PDF i na results.
22:08 xstill mornfall: nemáš náhodou po ruce nějakou rozumnou citaci na LTSmin?
22:13 mornfall maj ji na webu
22:13 mornfall druhá položka myslim
22:16 xstill aha, slepej jsem
22:18 mornfall jo a když řešíš literaturu, skontroluj si uvozovky, polovina článků má malá písmena v názvech místo velkých
22:19 mornfall možná taky (FOO 2015). 2015. není úplně ideální, párkrát jsem to tam zahlíd
22:20 xstill jojo, literaturu právě opravuju
22:20 xstill nechápu proč ale já mám ta malá písmena v tom bibu u některých článků
22:21 xstill (ale litearaturu teď nemá smysl abys kontroloval protože jsem většinu těch citací měnil)
22:22 mornfall jo to nedělám jen jsem se na to podíval a tohle mi udeřilo do očí
22:23 mornfall ono některý bib exportery to dělaj, nevim proč
22:23 mornfall na webu
22:29 xstill hm, tak bib snad v pořádku, jen teda mysím vymyslet co s tím přetýkajícím článkem o hashtabulce…
22:31 mornfall no, pokud bys všechno pokrátil na iniciály aby to bylo konzistentní taky by to přetékat nemuselo
22:31 mornfall (alternativně bys musel doplnit chybějící jména jinde a dopsat \- do Dynamically)
22:32 xstill no já jsem právě mezitím doplnil všude jména
22:32 mornfall tak to rozhyphenuj, to by mělo stačit
22:33 xstill jo, ještě musím zjistit kde
22:34 xstill ha
22:34 mornfall ještě v pdfku co mám přetýká Portable z POSIX-u
22:35 xstill tak prej dy-nam-i-cal-ly, angličtina je divný
22:38 mornfall to vypadá jako Longman :-) m by klidně mohl být onset k i, ale -nam- je přízvučný
22:42 xstill já se v tom nevyznám, našel jsem to někde na webu a rozdělil jsem to teda dynami-cally
22:44 xstill těch přetečení tam mám víc…
22:44 mornfall na transform.md ti pošlu nějakej diff někdy zítra dopoledne, teď už to nestihnu
22:45 xstill ok, díky
22:52 xstill hej to je fakt super, když zapnu draft abych viděl přetoky tak jich tam najednou mám spoustu navíc…

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