Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2017-05-06

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

All times shown according to UTC.

Time Nick Message
01:49 ilbot3 joined #divine
01:49 Topic for #divine is now DIVINE | http://divine.fi.muni.cz | http://irclog.perlgeek.de/divine/
06:19 xstill mornfall: jinak teda divbench compare  --instance 32572836 --instance 32585094 --result V --by-tag (to je teda ta verze co má haldu v globálních proměnných, takže z hlediska času by to mohlo být lepší, ale z pohledu stavů je ten rozdíl taky dost velkej (v podstatě jen bricks má nějaké testy kde jsou výjimky a není nofail malloc))
06:23 xstill (na brikcs je cca 3x nárůst času a cca 2x nárůst počtu stavů)
06:32 xstill aha ne, kecám, já tu změnu s přesunem fallback haldy na haldu zachoval
06:33 xstill a navíc tahle změna je dost na nic z hlediska fungování, protože ten init_heap se zavolá při prvním volání fallback_malloc, tedy ve chvíli kdy malloc už selhal, a pokusí se alokovat velký kus paměti z haldy, to nebude fungovat
06:34 xstill takže jediný jak zachovat chování i při prohnání codegenem je nechat tam globální proměnnou
06:35 xstill protože ty kosntruktory taky nebudou fungovat dobře (nejlíp bude fungovat asi ten hack s tou prioritou, ale to je dost o hubu)
07:16 blurryDeux joined #divine
07:17 blurryDeux moja google history po novom zahrna 'git whatsnew' a 'git show changes', dufam ze ste so sebou spokojni
08:25 mornfall xstill: ale ten __vm_obj_make je přece jen jiná reprezentace té globální proměnné (výhodnější pro programy které ten mechanismus vůbec nepoužívají)
08:26 mornfall to že se celý fallback malloc vyřadí je docela zásadní změna sémantiky
08:26 yaqwsx blurryDeux: Spíše bych čekal, že to bude bash history :-P
09:20 xstill mornfall: no ne, ty jsi včera argumentoval tím, že když vezmeš ten bitcode co DIVINE verifikuje a proženeš ho codegenem, tak to s tou mou úpravou nebude fungovat. A já říkám, že úplně stejně to nebude fungovat s tou tvou úpravou, protože v obou případech to spoléhá na to, že __vm_obj_make nemůže selhat. Jiná reprezentace globální proměnné to není, to by bylo třeba kdyby se
09:20 xstill to nějak anotovalo a na základě toho by to DIVINE jinak reprezentoval, ale zcela transparentně k programu (což by možná dávalo smysl se zamyslet, jestli jedokážeme nějajým způsobem některé globální proměnné uložit nepřímo, protože halda fallabck malloku nebude jediná věc která poteniciálně může být výhodná nebýt v jednom velkém globals oběktu, otázka je na jaké úrovni
09:20 xstill to udělat, jestli by to měla být vlastnost haldy, že to umí, nebo jestli by to mělo být něco co udělá nějaká transformace…).
09:23 xstill stejně představa, že někdo prožene kód z DIVINE codegenem, přilinkuje k němu nějakej DiVM compatible runtime a spustí to mi nepříjde prakticky použitelná pro cokoli jiného než protipříklady, protože ten runtime to nejpsíš bude docela brzdit a bude sám o sobě rizikovej vzhledem k tomu co bude muset dělat
09:48 xstill zajímavý, když nechám fallback haldu globální, tak to stojí v sumě nějakých 8 minut na těch 16 hodin benchmarků (oproti tomu, že vůbec mít fallback haldu stojí 8 hodin)
09:51 xstill "To simplify the presentation, we restrict ourselves to a single LLVM function without function calls and to types of the form in (for n-bit integers), in* (for pointers to values of type in), in**, in***, etc. Like many other approaches to termination analysis, we disregard integer overflows and assume that variables are only instantiated with signed integers appropriate for their type." … OK … jestli
09:51 xstill se takhle běžně dělá věda, tak už máme symbolizaci dávno hotovou…
10:39 mornfall 'argumentoval' jsem tím, že zrušení fallback haldy je zásah do sémantiky programu a kdybys ekvivalentní zásah provedl do programu kterej spouštíš tak tím vyrobíš chybu, is all
10:41 mornfall zejména když pak řekneš, že by se dala ekvivalentní změna k fallback haldě pomocí __vm_obj_make udělat anotací, jen potvrzuješ že tohle nemění sémantiku, jen reprezentaci
10:57 mornfall navíc když si vygrepuješ __divine__ v runtime/lib* tak těch funkcí které se mezi native a divine verzema liší v bitkódu zas tolik není a radši bych jejich počet zmenšoval
12:29 xstill jsem si jistý, že jsi mluvil i o codegenu, nicméně i kdyby ne, tak stejně tak ten tvůj zásah (který lze shrnout jako "naalokuju záložní paměť na záložní haldu ve chvíli kdy došla paměť"), má úplně stejný problém; v obou případech je nicméně argumentace poněkud děravá tím, že zásahy používají obj_make který grarantuje, že paměť bude mít, což obecně nemůžeš
12:29 xstill garantovat. To, že by ta anotace dělala to stejné co jsi udělal ty jsem neřekl. A pokud chceš zmenšovat množství __divine__ specifických věcí, což souhlasím, že je dobrý nápad, tak sis neměl akceptovat "libcxx: Move various locale-related static arrays into the heap instead.", který mimochodem způsobuje memory chyby
12:30 xstill nicméně daleko raději bych se bavil o tom, jak by se dala zefektivnit halda, než který způsob hackování kolem toho, že nezvládá velké globání proměnné je lepší

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