Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2016-11-19

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

All times shown according to UTC.

Time Nick Message
00:54 divine-buildbot joined #divine
01:31 divine-buildbot Hey! build divine-current-website #16 is complete: Failure [finished]
01:55 divine-buildbot joined #divine
02:07 divine-buildbot joined #divine
02:48 ilbot3 joined #divine
02:48 Topic for #divine is now DIVINE | http://divine.fi.muni.cz | http://irclog.perlgeek.de/divine/
03:28 divine-buildbot joined #divine
05:31 divine-buildbot joined #divine
06:00 divine-buildbot joined #divine
07:46 divine-buildbot joined #divine
07:53 xstill chjo, v ifu v make záleží na whitespace
08:49 mornfall jako gnu $(if ...)?
08:50 xstill ifneq, ale to je asi jedno, asi to je GNU
08:51 mornfall on je ještě nějakej globální if (asi jenom if, bez $(...))
08:51 xstill jo to je on
08:51 mornfall zajímavý
08:51 mornfall ale ono to asi není tak překvapivý když to je srovnávací
08:55 divine-buildbot Hey! build divine-current-website #17 is complete: Success [finished]
09:18 ilbot3 joined #divine
09:18 Topic for #divine is now DIVINE | http://divine.fi.muni.cz | http://irclog.perlgeek.de/divine/
09:30 mornfall udělat step v gdb vůbec není jednoduchý
09:30 mornfall zrovna se mi u toho zacyklilo
09:30 mornfall ha, ne, jen to trvalo
09:39 mornfall o.k... There is no support for 80 bit arithmetic. Internally, Valgrind represents all such “long double” numbers in 64 bits (...)
09:40 mornfall to asi celkem vysvětluje všechno
09:41 mornfall (ten assembler totiž vypadá OK i bez toho hacku)
09:42 mornfall a bug s protipříkladama není vůbec bug s protipříkladama
09:42 mornfall někde nám neštimujou stavy
12:10 mornfall no, ale už vim proč... teď co s tím
12:25 xstill proč?
12:31 mornfall ono se to stane když ten program rozmlátí ukazatel a na tom protipříkladu pak při re-evaluaci nevyjdou stejný objid
12:34 xstill to je docela blbý. Jak rozmlátí ukazatel?
12:34 mornfall třeba přičte 1 k objid, to je jedno
12:35 xstill aha, jakože to přestane být pointer?
12:35 mornfall j
12:35 xstill a tím pádem se to začne porovnávat jako data?
12:35 mornfall jistě
12:36 mornfall ono to nevadí v principu, ale implementaci která tam teď je
12:40 mornfall navíc se to teď vyseká na takové kravině, že memcpy odečte dva ukazatele a pak se udělá interrupt uvnitř, takže ten rámec vypadá různě právě podle těch objid
12:43 mornfall jinak teda jde čistě o to, že objid hint se neukládá do stavu, takže konkrétní objid nezáleží jen na 'from' ale aj na tom jak se tam přišlo
12:43 mornfall asi nezbude než ho tam uložit
12:44 mornfall (on byl beztak původní plán to dát do režie diosu, ale ještě na to nebyl čas)
15:06 mornfall no, nevim jak to rozumně alokovat... ani jsem to nechtěl řešit, ale asi budu muset protože jinak ty protipříklady fungovat nebudou
17:32 yaqwsx joined #divine
17:49 mornfall yaqwsx: brý večír
17:50 yaqwsx mornfal: Nápodobně.
18:31 xstill hm, jak je možný, že mám v simu v rámci proměnný u kterých vidím jen typy a ne hodnoty?
18:32 xstill případně nemaj ani typy
18:32 mornfall jaký proměnný to jsou?
18:33 mornfall nemaj typ znamená že je @type prázdný nebo vůbec neexistuje?
18:33 xstill že @type je prázdný
18:34 mornfall @value se zobrazuje jen u skalárů
18:34 xstill zdá se, že ten prázdnej typ je u proměnných kterých typ přichází jako šablonovej parametr
18:34 mornfall takže to že něco nemá @value může klidně znamenat že je to struktura nebo něco
18:35 xstill aha, a to se nedá pak nijak vypast?
18:35 xstill *vypsat
18:35 mornfall no to má pak atributy podle složek
18:35 xstill aha dá
18:35 xstill jen teď potřebuju skočit po stacku zpět
18:36 xstill to by bylo celkem fajn, kdyby šlo nějak líp
18:38 mornfall to asi nemůžu sloužit, stack je tak trochu strom... asi chci udělat 'breadcrumb' proměnný, tzn. udržovat zásobník inspect-ů po kterém se půjde vracet
18:39 xstill jo, to zní rozumně
18:40 mornfall no, má to taky pár záludností
18:40 xstill zatím zvládnu používat inspect $top.frame.@deref :-D
18:40 mornfall to by mělo být spíš inspect $top ne?
18:41 xstill no ne, $top je při faultu zásobník handleru, $top.frame.@deref je to místo, kde došlo k faultu
18:41 mornfall jo tak... no, to je další věc, že ten zásobník v tomto případě ani není spojitej
18:42 mornfall a dokonce to není ani strom protože se větví v opačném směru
18:42 xstill ano, a to na co skáču ani není vrchol toho userspace zásobníku
18:48 xstill invalid heap pointer dereference je hrábnutí na uvolněnej pointr asi, že?
18:48 mornfall typicky asi jo
18:50 mornfall (pokud se za uvolněnej počítá i když ho zničí VM, třeba rámec nebo alloca retem, tak je to asi jediná možnost co to může být)
18:50 xstill ok
18:56 xstill hm, tadyty moje pokusy o používání sim jsou docela nebezpečný pro release
18:57 xstill třeba jsem narazil na případ kdy source vypíše jen první řádek funkce
18:57 xstill a asi neumíme vypisovat uniony
18:58 mornfall to asi fakt neumíme... nicméně to je spíš chybějící feature než bug
18:58 mornfall a to že chybí source chce asi zjistit jak vypadají debug metadata
18:59 mornfall ideálně teda rovnou psát todo testy
18:59 xstill jo no
19:06 mornfall nicméně když zrušim hinty tak protipříklady fungujou, ale divine je (v debugu) 10x pomalejší
19:10 mornfall ale aspoň mám plán jako to opravit
19:21 yaqwsx joined #divine
19:24 xstill icmp v bitkódu by mohlo vypisovat operaci
19:39 yaqwsx joined #divine
19:50 yaqwsx joined #divine
20:09 xstill ještě by sim někdy mohl umět vypisovat registry
20:11 mornfall já vim, ale first things first
20:14 xstill achjo, já tu přes hodinu ladím to, že jsem si myslel, že std::copy vrací něco jinýho
20:15 xstill co vlastně ani nedávalo smysl
20:23 mornfall já myslim že furt lepší než valgrind a long double
20:34 mornfall přidal jsem predikáty k icmp/fcmp, za odměnu k tomu můžeš stvořit test :-)
20:36 mornfall hm, jasně že jsem vynechal OGT/UGT v fcmp
20:37 mornfall doamendoval jsem je tam
20:44 yaqwsx Psal jste někdo testy na API DiOSu? Ať vím, jestli se mám do toho ve chvílích, kdy mě nebaví chystat prezentaci o SeaHornu, pustit.
20:45 * mornfall ne
20:46 yaqwsx xstill: Testy, které jsi psal na faulty jsou zarecordované?
20:46 mornfall yaqwsx: test/dios/api něco obsahuje
20:47 mornfall (fault-config-*)
20:47 mornfall počítám že to bude ono
20:47 yaqwsx Jj, to jsou moje. Vláďa ale psal i jiné testy.
20:47 mornfall ah
20:47 xstill yaqwsx: ne, mám jen /home/xstill/DIVINE/divine4/test/dios/fault-*-memory.2.cpp, které je potřeba nějak zařadit, teď se mi to nechce dělat, takže si je klidně odtamtud vezmi a doplň další
20:47 xstill a vlastně teď nevím, jestli jsou ty testy správně
20:48 xstill ale to asi jo
20:48 yaqwsx Ok, podívám se na to.
22:08 yaqwsx Čtu článek o SeaHornu a píšou tam toto: "Moreover, it creates stubs for functions whose addresses can be taken and replaces function pointers to those functions with function pointers to the stubs". Proč je třeba něco takového dělat?
22:09 yaqwsx (žádný jiný kontext k tomu není, pouze se baví o transformaci kódu)
22:15 mornfall možná potřebujou chytat nepřímá volání ještě nějak jinak než u toho callu
22:16 mornfall ale nevim, nezdá se že by ten program chtěli spustit
22:16 mornfall ještě teda možnost že to je potřeba pro nějakou alias set analýzu
22:23 yaqwsx Hm, stále nevidím, proč to potřebují... Ale díky za postřehy.
22:28 mornfall no takhle, když máš nějakej call *x, a alias analýza říká, že x ∈ { a, b, c } tak z toho můžeš taky vyrobit call stub, kde stub se (třeba nedeterministicky) rozhodne jestli zavolat a, b nebo c
22:29 mornfall tím z toho kódu můžeš oddělat veškeré nepřímé call-y a analyzovat to věcma, co je neumí překousnout (kterých je asi spousta)
22:29 yaqwsx Jo takhle... Ok, to mi nedocvaklo.
23:56 divine-buildbot joined #divine

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