Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2016-11-21

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

All times shown according to UTC.

Time Nick Message
01:32 divine-buildbot Hey! build divine-next-debug #159 is complete: Failure [finished]
01:37 divine-buildbot Hey! build divine-next-debug #160 is complete: Failure [finished]
02:32 divine-buildbot Hey! build divine-next-debug #161 is complete: Failure [finished]
02:36 divine-buildbot Hey! build divine-nightly-release #22 is complete: Failure [finished]
02:48 ilbot3 joined #divine
02:48 Topic for #divine is now DIVINE | http://divine.fi.muni.cz | http://irclog.perlgeek.de/divine/
03:02 divine-buildbot joined #divine
03:16 divine-buildbot joined #divine
03:25 divine-buildbot joined #divine
06:36 divine-buildbot Hey! build divine-next-debug #164 is complete: Failure [finished]
07:09 divine-buildbot Hey! build divine-next-debug #165 is complete: Failure [finished]
07:23 yaqwsx joined #divine
07:29 divine-buildbot Hey! build divine-nightly-debug #22 is complete: Failure [finished]
07:33 xstill mornfall: tím posunutým assertem jsi to rozbil
07:46 xstill (to je ten spadlej test v buildbotovi)
07:47 xstill mám na to patch, ale rozhodlo se mi přebuildit LLVM, takže zatím není otestovanej
08:04 divine-buildbot Hey! build divine-current-release #18 is complete: Failure [finished]
08:23 mornfall jasně no, ono to přidává do trace kopii toho stavu
08:29 mornfall nicméně to v tom buildbotovi nevidim -- v jednom to vytimeoutovalo kdesi v pts/ a v druhým zdechlo brick-string.4.bt?
08:29 divine-buildbot Hey! build divine-next-debug #167 is complete: Failure [finished]
08:30 mornfall a nigthly prošlo celý... někde se něco rozbilo docela nedeterministicky
08:30 mornfall to by se s --threads 1 nemělo úplně dít
08:31 mornfall aha ono totiž ten patch jsem recordoval schválně až po nightly
08:40 mornfall xstill: to 'present' asi mělo být 'prevent' ...
08:45 mornfall (a taky depledet -> depletet, někdo tuším neměl ráno kafe :)
08:48 xstill_ nojo
08:49 mornfall ten timeout v nightly mě ale trápí víc
08:49 xstill_ hm, a mě tu failnuly dva testy…
08:51 xstill_ brick-string začal failovat a mám pocit, že to souvisí s tím co jsi přidal za kontroly
08:51 xstill_ "attempting to dereference a broken heap pointer"
08:51 mornfall aha
08:51 mornfall zajímavé
08:51 xstill_ to je počítám přeteklej object, ne?
08:52 mornfall a pthread_attr_init timeoutuje protože je... pomalej (předtím to trvalo 36 minut, teď to nedá za 2 hodiny)
08:52 xstill_ a pak spadnul sim/trace.2.sh
08:52 mornfall ten jsem už opravil
08:52 mornfall ... a nepushnul
08:52 xstill_ hm, to se DIVINE tak zpomalil?
08:53 mornfall to může být zrovna ten patologickej případ s těma objid, jdu se na to podívat
08:57 mornfall fakt no, v release z 1:20 na 13:51
08:58 mornfall ale celá testsuita 1:18 vs 1:33 a je tam o 6 testů víc
09:02 mornfall takže zas tak tragický to není, ostatní testy v průměru musely zrychlit aby se to stihlo :-)
09:03 mornfall xstill_: jo ten broken pointer mohl vzniknout různě, přetečení jen za konec objektu by byl out of bounds ale
09:04 mornfall tohle je že se třeba aritmetikovalo až z toho vypadlo něco co není ukazatel (změnilo se tomu objid, ne jenom offset)
09:04 mornfall nebo to prostě nebyl ukazatel nikdy (ale to by asi řvalo i předtím, něco)
09:12 mornfall a za 5-6 hodin třeba budu mít aj profil...
10:03 divine-buildbot Hey! build divine-next-debug #168 is complete: Failure [finished]
10:20 mornfall hm, ono ten test totiž má 6 vláken a měl sice jen pár objid konfliktů, ale oni kazí diamondy
10:20 mornfall takže to nagenerovalo výrazně víc stavů
10:20 mornfall nicméně snad už to bude zase lepší
10:21 mornfall kolize jsou pryč a na arke mi to teď doběhlo za 40s
10:24 mornfall callgrind krásně zvýrazňuje 'rolling shutter' v progress vlákně :-) searching: 165 states [dlouhá pauza] 6625 edges ...
10:43 yaqwsx joined #divine
10:43 mornfall xstill_: to jsem si předtím nevšiml jak jsem se zasekl na tom present, ale je tam prevent for místo prevent from :|
10:44 mornfall yaqwsx: tak co, zahodíme divine a jdeme dělat hornovy klauzule? ;-)
10:45 xstill_ mornfall: nojo
10:45 xstill_ ale pak to má 81 znaků
10:45 xstill_ ok, napraveno
10:46 mornfall pulled... ještě ten brick-string nám to kazí
10:47 yaqwsx mornfall: Já bych zůstal u DIVINU... Když Hornovy klauzule, tak jako abstrakci ;)
10:47 yaqwsx mornfall: DIVINE s abstrakcemi postupně pohltí všechny ostatní nástroje, ne?
10:48 yaqwsx ProloDIVINE
10:48 mornfall myslíš WololoDIVINE
10:51 yaqwsx mornfall: Promiň, jsem nevzdělaný - wololo je něco AoE, ne?
10:51 mornfall asi, já si to moc nepamatuju :-)
10:52 yaqwsx Tak proč WololoDIVINE?
10:52 mornfall ale jsou toho plné internety
10:52 mornfall on to říká nějakej kněz když obrací nepřátele na tvou stranu
10:53 mornfall +/-
10:53 yaqwsx Jop, takže je to AoE věc :D Ok, výstižný název
10:55 mornfall yaqwsx: vidíš, yaml jsem chtěl nějak dořešit
10:56 mornfall a vůbec, navrhuju na středu public beta
10:56 mornfall Vašek prý dodá víno nebo co ;-)
10:57 divine-buildbot Hey! build divine-next-debug #170 is complete: Failure [finished]
10:57 yaqwsx mornfall: Ok, pojďme ho dořešit. Chceš to tedy jako "DiOS boot info:" a pod tím seznam?
10:58 mornfall yaqwsx: tak; chci aby to co leze z info trace bylo yaml a aby to nepřerušovalo dokument
10:58 mornfall yaqwsx: ideálně ještě pokud by měl ten seznam být prázdný, tak aby neměl ani hlavičku
11:02 mornfall yaqwsx: env options by asi mělo být asociativní (klíč/hodnota), ne seznam
11:03 yaqwsx Jj, mám to na ToDo listu.
11:03 mornfall ještě ideálně upravit case v debug:*, všechno ostatní je lowercase a debug je camelcase
11:03 mornfall plus help: vs Supported commands:
11:04 yaqwsx Ok
11:04 mornfall (možná Help:?)
11:04 yaqwsx Proč Help:M
11:04 yaqwsx * Help:?
11:04 mornfall no nad tím bude DiOS ...:
11:04 mornfall a asi tam nechceš mít dios ...
11:04 mornfall :-)
11:05 mornfall raw env options by pak mohlo být Raw Environment:
11:06 mornfall xstill_: nevíš jestli když člověk používá const char * literály, volají se konstruktory std::string dynamicky nebo to překladač dokáže vyliftovat?
11:07 xstill mornfall: dost pochybuju, že si dokáže nějak poradit s dynamickou pamětí
11:08 mornfall pravda, nevím jestli dát tam std::string literály něčemu pomůže, to nejspíš zavolá v globálním konstruktoru?
11:08 mornfall nebo na to maj nějakou flignu...
11:09 mornfall jsem si totiž všiml, že boot dělá tisíce a tisíce alokací :)
11:12 mornfall podle <string> to vypadá že spíš nemaj a bude se to volat tak jako tak... výhoda by mohla být že se to zavolá jednou per konstanta
11:13 mornfall konstruktor asi nemůže mít trailing const co? :-)
11:14 xstill proč používá dios std::string?
11:14 mornfall aby nemusel strcmp-ovat asi
11:14 mornfall je tam parser na konfiguraci
11:14 xstill nejde používat std::experimental::string_view? tuším, že ho už v libc++ máme
11:15 mornfall no, to bych nechal na jindy, přidat s na konce literálů je malej zásah
11:18 yaqwsx Pomůže nám to v něčem?
11:19 xstill mohlo by to zrychlit boot a potenicálně celou verifikaci
11:19 mornfall no
11:19 yaqwsx žil jsem v přesvědčení, že boot nemá dopad na rychlost zbytku verifikace.
11:19 mornfall ono by to ale taky mohlo dopadnout obráceně :)
11:19 mornfall boot se tím asi zrychlí
11:20 mornfall xstill: pokud se ty literály musí alokovat dynamicky, tak se to spíš hrozně rozbije
11:20 mornfall protože by to vyrobilo globální proměnný, de facto
11:20 xstill to teď nechápu
11:21 mornfall tak, v __boot globální proměnný nemají být k dispozici
11:21 mornfall (jo, furt se to neenforcuje)
11:24 mornfall "..."s je totiž ve skutečnosti houby literál, to je sprostej function call
11:24 xstill no jistě
11:26 mornfall to jsem asi od výboru čekal trochu víc :D
11:27 xstill no ne, oni jen zavedli user literály a řekly, že knihovna tímto způsobem definuje ""s
11:27 mornfall ale snad aspoň když je to constexpr tak to překladač zafolduje do static storage
11:27 xstill jinak by to mohlo dost vyžadovat překopat string
11:27 xstill i když vlastně ne
11:27 mornfall no musel by mít constexpr konstruktor, co asi moc nejde
11:28 xstill to jde
11:28 xstill ten malloc/new je problém
11:28 mornfall no však constexpr konstruktor pro std::string myslím
11:28 divine-buildbot Hey! build divine-next-debug #171 is complete: Failure [finished]
11:28 xstill nojo, ale kde on by to alokoval a jak by to pak hlavně destruoval?
11:28 mornfall ono by to šlo kdyby byl constexpr overload, ale to asi taky není :)
11:29 mornfall no constexpr string by právě nemusel nic alokovat, mohl by ukazovat na ten const char * co dostal
11:29 mornfall kterej je statickej
11:29 mornfall jen by musel vědět že je const
11:30 xstill to asi fakt nejde v C++ vyjádřit
11:30 mornfall proto jsem zmiňoval trailing const u konstruktoru (který nejspíš neexistuje)
11:33 mornfall jo no, Note that cv- and ref-qualifiers are not allowed either; const and volatile semantics of an object under construction don't kick in until the most-derived constructor completes.
11:36 mornfall v C++17 to prostě řeší tím string_view, "bla"sv
11:37 mornfall a ten je constexpr
11:37 xstill jo, tam to jde, protože nealokuje
11:37 mornfall ono to je const_iterator all over again, řekl bych :)
11:59 xstill_ ten fault v bricsu je někde v std::regex, to jsem teda zvědavej
12:03 mornfall jo, hluboko v útrobách
12:03 mornfall a naše libc++ zdá se ""sv nemá, takže to bude muset počkat na update LLVM
12:04 xstill_ jen je mi divný, že je to broken pointr kterej má offset 0
12:05 mornfall ono to není jediná možnost jak se mohl rozbít
12:05 mornfall trace v simu snad řekne víc (jen má asi kilometr)
12:05 xstill_ to znamená, že to nemá pointer flag v shadow?
12:05 mornfall ano
12:06 xstill_ opravdu to chce ty trace ve stylu 0^1005
12:09 xstill_ "copied 97242 characters"…
12:10 mornfall to je aspoň protipříklad
12:11 mornfall teď si to představ v divine 3
12:11 xstill_ :-D
12:11 xstill_ chtěl jsem ti napsat, že to není moc user friendly, ale přesvědčil jsi mě, že může být hůř
12:12 mornfall není no, ale já asi budu muset chvíli dělat něco jinýho než divine
12:13 mornfall třeba si sehnat nějakej funkční laptop
12:27 xstill_ hm, vyplivlo to na mě po 2 stavech mega moc unused choices
12:27 xstill_ a prej executing - at -
12:28 xstill_ aha
12:28 xstill_ protože mi chybí nofail:malloc
12:30 xstill nicméně to načetlo nějakých 10k stavů a vyžralo komplet paměť
12:30 mornfall hm, nojo, sim by potřeboval zefektivnit
12:30 xstill tenhle protipříklad prostě nedá
12:30 mornfall jeden leak jsem opravil, ale ono jich tam je přecijen víc
12:38 mornfall ok, překvapení dne.. t460s je menší než x1
12:56 xstill_ ale je to docela blbý, že sim nenačte něco co verify vyprodukuje, jaksi bych čekal, že verify je to náročnější
13:00 divine-buildbot Hey! build divine-current-debug #18 is complete: Failure [finished]
13:00 mornfall já vlastně nevim kde to všechnu tu paměť vyleakuje
13:04 mornfall nojo
13:04 mornfall když on si s každým DebugNode táhne kontext, kterej si táhne lokální haldu, která si táhne lokální Pool
13:05 mornfall a data se sice sdílej, ale každá instance Pool-u si vyrobí asi 40KiB sizeinfo
13:07 mornfall ale to furt asi nestačí, 10k stavů à 40KiB e furt jen asi 400M
13:08 mornfall a kontext a přilehlé věci jsou max pár kilo
13:12 mornfall jo jenže ten pool není jeden, ale 4
13:12 xstill_ to by šlo nějak inteligentně sdílet, ne?
13:13 divine-buildbot Hey! build divine-next-debug #169 is complete: Failure [finished]
13:16 mornfall xstill_: asi jednu věc co můžeš aspoň lokálně zkusit je přesunout alokaci SizeInfo do sizeinfo() metody (tzn. inicializovat to líně)
13:18 mornfall to by branch predictor mohl pochopit a nemuselo by to víceméně nic stát
13:22 mornfall on ten problém se sdílením je, že debugnode potřebuje mít vlastní pohled do haldy, a halda zase nemá moc jak nabízet možnost sdílet pooly (teda ty jejich nesdílené části)
13:29 mornfall hm, dneska je deadline na studentský projekty
13:35 xstill_ to je kdybychom chtěli podat novej
13:35 mornfall jj
13:36 mornfall a podle toho že teď jsou prezentace to skoro vypadá, že ta za ten uplynulej bude tak za půl roku
14:35 xstill_ tak do té doby to třeba i bude
17:07 mornfall xstill_: jo, ten problém je v memmove
17:07 mornfall s brick-string
17:08 mornfall když dostane zarovnaný adresy ale lichý délky tak poničí ukazatele
17:08 mornfall tím jak jede odzadu
17:08 mornfall hm, i když to by se nemělo dít...
17:10 mornfall na pohled ta implementace vypadá že to řeší
17:13 mornfall a na ten little endian jednou umřu
17:15 mornfall aha už chápu :-)
17:15 mornfall to je trochu peklo ale
17:16 mornfall ono to kopíruje 13 bajtů, prvních 8 je ukazatel
17:16 mornfall a memmove vezme poslední na 4 zarovnanou adresu a pak to kopíruje po 8 bytech
17:16 mornfall tzn. trefí se přesně do poloviny toho ukazatele
17:17 mornfall yaqwsx: nějaké nápady?
17:19 mornfall zdá se že SysV ABI chce ukazatele zarovnávat na 8, to by asi fungovalo líp pak
17:19 mornfall zkusim to udělat tak
17:21 mornfall tenhle test s tím projde
17:21 mornfall takže asi dobrý no
18:07 yaqwsx mornfall: Odkud mám začít číst, abych chytl kontext?
18:07 mornfall yaqwsx: už ani nemusíš jestli se ti nechce :)
18:07 mornfall jinak od 18:07
18:07 yaqwsx Vyřešils to?
18:07 mornfall jj
18:07 yaqwsx Ok, i tak si to přečtu.
18:08 yaqwsx Jak jsi to vyřešil?
18:08 mornfall nicméně jsem při tom zjistil, že objhash mám úplně blbě
18:08 mornfall yaqwsx: s předpokladem že ukazatel je zarovnaný na 8 se to chová dobře
18:27 yaqwsx mornfall: http://pastebin.com/vG0f0QEf - může být takto?
18:29 divine-buildbot Hey! build divine-next-debug #172 is complete: Failure [finished]
18:48 mornfall yaqwsx: nejsou ty - u klíčů navíc?
18:48 mornfall zkoušel jsi to nacpat do nějakýho parseru?
18:57 mornfall tak už je snad hashovací funkce konečně dobře
19:13 yaqwsx mornfall: Parserem to prochází, bez - u klíčů neprochází
19:17 mornfall yaqwsx: zajímavý
19:19 yaqwsx http://yaml-online-parser.appspot.com/
19:19 yaqwsx Tím to testuji
19:21 mornfall yaqwsx: mně to vyrábí jednoprvkovej seznam kolem všeho
19:21 mornfall yaqwsx: když - změním za ' ' (tzn. zachovám indent) tak se to opraví
19:22 mornfall http://sprunge.us/CbFE takto
19:23 mornfall to help teda asi mělo jít o dva doleva
19:23 mornfall (to taky funguje a dělá to co bych čekal)
19:24 mornfall na arke je yaml2json
19:26 mornfall navíc jsem si všiml že si už yaml parser táhnem, jeden je totiž v llvm
20:18 mornfall xstill: zarecordoval jsem RLE choices, jako XXX... moc jsem to netestoval, použil jsem to při tom brick-string ale moc to nefungovalo :P nicméně na pohled to tvoří smysluplný věci, takže to mohla být chyba i jinde
20:56 yaqwsx joined #divine
22:35 yaqwsx joined #divine
22:36 yaqwsx Divím, že nedostávám odpověď a on se můj IRC klient rozhodl neposílat zprávy... Zítra asi zkusím přecijen IRSSI.
22:36 yaqwsx mornfall: neměly být supported commands být odsazené (spadají pod help)?
22:37 mornfall yaqwsx: jo, arke:/tmp/test.yaml asi
22:38 yaqwsx Ok, upravím.
22:38 mornfall v tom appspotu mi to taky vyrendrovalo OK
23:09 yaqwsx Právě teď existuje možnost debug:rewenvironment, která je komplikovaná - např. když zachytávám VFS. Hodnotou do YAMLU pak může být cokoliv (binární blob, víceřádkový soubor, soubor obsahující nepěkné znaky atd). Takže ho jen tak nemůžu narvat do YAMLU. Napadjí mě 2 řešení: detekovat binární bloby (test, jestli obsahuje nulový byte) a ignorovat/vypisovat je v hexa; zahodit debug:rawenvironment.
23:09 yaqwsx Co z toho je pro nás lepší?
23:19 mornfall yaqwsx: yaml má 'binary' typ (jako rozšíření asi) který používá base64
23:20 mornfall pokud se ti to chce implementovat
23:20 mornfall klidně bych to prozatím zahodil
23:22 mornfall určitě je s tím víc práce než aktuálního užitku
23:40 yaqwsx Ok, do současné verze zahodím a napíšu si to na dlouhodobý todo list
23:46 yaqwsx patche u mě - je tam i patch, který spravuje capturing VFS

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