Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2017-04-03

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

All times shown according to UTC.

Time Nick Message
05:11 mornfall yaqwsx: to není takovej problém (je to v kernelu)
05:11 mornfall navíc to možná půjde zlepšit
10:55 yaqwsx Mám překlopený DiOS na skládání stavu pomocí dědičnosti. Všechno funguje, jen se mi rozbily asi tři symbolické testy (např. 2.sym-subst-6.cpp) a to tak, že asi odmítají slučovat stavy a vyžerou veškerou paměť stroje pekelně rychle
10:55 yaqwsx Nějaké tipy jak to zdebugovat?
11:00 mornfall sim by to mohl zvládnout načíst
11:00 mornfall nebo si to namaluj (draw)
11:00 mornfall (ten má limit na hloubku)
11:08 yaqwsx Nevím jestli u draw dělám něco špatně (divine draw --symbolic input.cpp), ale dostanu jednom řetízek 33 stavů (bez jakýchkoliv detailů o stavech)
11:09 mornfall yaqwsx: možná si tam přidej trace, pak ho uvidíš na hranách (snad)
11:09 mornfall yaqwsx: a/nebo zvětši hloubku
11:11 yaqwsx Nehledě na hloubku je to stále řetízek (což mě nepřekvapuje k chování, které pozoruji). Ale je u draw normální, že stavy jsou označené pouze číslem a není na nich žádná další informace?
11:20 mornfall to je, ale jak říkám, když tam dáš trace tak vyskočí na hraně
11:21 yaqwsx myslíš obyčejný textový trace?
11:21 mornfall (o hloubky šlo jen o to, že ten trace může být relativně daleko od počátku)
11:21 mornfall ano
11:22 yaqwsx Ah, on tam skutečně je. Jen je fakt prťavý, že jsem na první pohled přehlédl.
11:22 mornfall :D
11:22 mornfall no když to dostatečně anotuješ, tak by mělo být vidět co se zacyklilo
11:25 yaqwsx Konkrétně v příkladu 2.sym-subst-6.cpp si myslím, že DIVINE nesloučí stavy
11:25 yaqwsx (je to příklad, který inkrementuje proměnnou modulo 8)
11:25 mornfall je trochu divný že změna v diosu rozbila zrovna tohle
11:26 mornfall dokážeš si ty stavy namalovat a srovnat je na pohled? (draw $state v sim-u v odpovídajících ale různých stavech)
11:26 yaqwsx To je mi také záhadné. Není to tím, že substituce prosákla na nevhodné místo DiOSu?
11:27 yaqwsx Ok, vyzkouším.
11:27 mornfall celkem nevidím jak by se to mohlo stát
11:31 yaqwsx Můžu nějak výstup z draw v simu uložit?
11:31 mornfall hmm, dobrá otázka... nemá to nějakej parametr? (někdy jsem jej přidával ale nevim jestli jsem to i pushnul)
11:31 mornfall (help draw)
11:32 yaqwsx Právěže nemá
11:32 yaqwsx Proto se ptám, jestli to není hidden feature
11:33 mornfall no, je tak hidden že to leží někde v nějakým mojem repu :-)
11:33 mornfall ale když pustíš sim 2x tak nic nepokazíš
11:35 yaqwsx Nepokazím, ale mluvit o pohodlnosti...
11:37 mornfall chceš radši divine 3? :-P
11:37 mornfall já to někde vykopu a pushnu...
11:37 yaqwsx V pohodě, fungovat zvládnu.
11:38 yaqwsx A výhružky DIVINU 3 na mě neplatí, protože s tím jsem nikdy neměl pořádně tu čest. Jenom jsem vždy viděl na prezentacích kilometrové protipříklady
11:41 yaqwsx mornfall: Liší se pouze jinou adresou framu. Což si nejsem jist, jestli je dobře
11:42 mornfall yaqwsx: to by nemělo ničemu vadit ale
11:45 yaqwsx Ok, teď musím mizet, ale večer se na to podívám.
11:46 mornfall ok... asi to nemáš někde na arke co?
11:46 mornfall (ne že bych měl čas se na to dívat)
11:47 yaqwsx Nemám, teď běžím na univerzitu, jak e tam dostanu, tak to nahodím na Arke a pingnu tě
11:47 mornfall ok
11:48 mornfall (nebež sa lebo sa spadneš, povedal jež a (spadol) sa tiež)
12:06 yaqwsx mornfall: Je to na arke. Selhává 2.sym-subst-6.cpp pokud bys měl čas.
13:22 xstill_ yaqwsx: no právě, a nic dalšího DIVINE 3 neuměl
13:26 mornfall yaqwsx: hm, furt tam jsou nějaký konflikty, je to možný?
13:49 yaqwsx mornfall: Kde je máš? Všechny patche mám stažené
14:05 mornfall yaqwsx: asi jsem měl nějaké nečekané lokální změny, my bad
14:12 mornfall yaqwsx: nicméně 2.sym-subst-6.cpp vypadá docela konečně
14:13 mornfall (konkrétně 6 stavů)
14:17 yaqwsx Ok, tak co je u mě rozbitého?
14:17 mornfall yaqwsx: nevim, pullnul jsem všechno... kde to pouštíš?
14:17 mornfall yaqwsx: nemůžeš mít nějakou divnou z3?
14:18 xstill_ a vůbec, máš z3?
14:18 yaqwsx mornfall: Mám 4.4.1
14:18 yaqwsx ...a dříve mi testy procházely.
14:21 yaqwsx Jedinou podezřelou věc, kteoru jsem dělal byl upgrade z jádra 4.4 na jádro 4.8. Ale to by snad nemělo rozbít Z3
14:22 mornfall otázka je co ještě jinýho jsi u toho upgradoval :-)
14:22 yaqwsx Nic jiného.
14:22 yaqwsx A i tak - to by nemělo rozbít Z3
14:23 yaqwsx ...a když už, tak snad tak, že neprojde skoro žádný sim příklad
14:23 yaqwsx *sym příklad.
14:24 mornfall no já neříkám že to není divný
14:32 mornfall yaqwsx: je to trochu wtf, když jsem to pustil v testech tak to cyklí
14:33 kejsty joined #divine
14:34 mornfall yaqwsx: nj protože jsem idiot a když to pustím bez --symbolic tak to skončí
14:35 mornfall (also: wtf?)
14:36 yaqwsx Takže i tobě to teď cyklí?
14:36 mornfall ano
14:38 mornfall a draw $state mi zemřelo na assert :\
14:47 mornfall yaqwsx: navíc to nedělá vůbec žádný dotazy na smt...
14:48 mornfall nebo zase dělám něco blbě
14:57 mornfall yaqwsx: je možný že se rozbilo něco s maskováním?
15:16 mornfall yaqwsx: jo, všechno je označený jako shared (that's the difference)
15:17 mornfall yaqwsx: je ale otázka jestli to fakt cyklí nebo to jen generuje fakt velkej stavovej prostor
15:32 yaqwsx Já bych řekl, že by to mělo mít tak c * 8 stavů
15:32 yaqwsx mornfall: Takže mi někde leakuje pointer z userspace do kernelu?
15:33 mornfall yaqwsx: stav má atribut shared, to není dobrý
15:34 mornfall yaqwsx: je možný že někde zapíšeš ukazatel na stav do globální proměnný nebo něco takoveho?
15:36 mornfall yaqwsx: mžná _DiOS_fault_cfg za to může?
15:37 yaqwsx Ten tam byl ale vždycky....
15:37 yaqwsx Už vím...
15:38 mornfall a ukazoval na?
15:38 yaqwsx ... Fault byl ale schovaný za ještě jedním pointerem.
15:38 yaqwsx Teď je fault součástí přímo.
15:38 mornfall ano
15:38 mornfall there's your problem
15:38 yaqwsx Jop, taková pitomost.
15:39 mornfall jsem říkal že ty globální proměnný v diosu nejsou dobrý :)
15:39 yaqwsx Jak jinak chceš vyřešit konfiguraci simfailů bez syscallu?
15:40 yaqwsx PS: Tohle není ironické, fakt čekám na dobrý nápad
15:40 mornfall to stejně nebude fungovat když přestane dios sdílet proměnný s programem
15:40 mornfall (protože programy)
15:40 mornfall (protože procesy, wtf píšu)
15:42 mornfall určitě by to mohl být nějakej globální bool v libc a _start by mohl dostat příslušný pokyn jej nastavit
15:42 mornfall (nebo globální bitfield když bude víc než jeden simfail)
15:43 yaqwsx Takže simfaily jsou per-proces?
15:43 yaqwsx *mají být
15:44 mornfall no, globální proměnný jsou, takže bude těžký je nemít per process
15:44 mornfall vyrábět kus sdílený paměti na jeden bit asi není úplně win :)
15:45 mornfall jinak by to asi musel být dotazovací syscall
15:45 mornfall (taky mnohem větší overhead)
15:47 yaqwsx Tak bity máme momentálně 4 jestli se nepletu :D
15:47 yaqwsx (ne že by to něco měnilo)
15:47 mornfall simfail je jen malloc
15:48 mornfall (a simfail je myslim jediná věc která userspace zajímá)
15:48 kejsty joined #divine
15:49 yaqwsx Ok, beru zpět. Pravda, zatím je ten bit chudák sám.
15:49 yaqwsx Registr jako kompromis?
15:50 mornfall to je spíš antikompromis
15:50 mornfall bude se to tam muset cpát v scheduleru
15:50 mornfall je s tím _start-em nějakej problém?
15:50 mornfall (možná pokud to někdo bude chtít měnit za běhu, ale třeba by bylo lepší to stejně zakázat)
15:51 yaqwsx Se startem asi není problém kromě změn za běhu.
15:51 blurry_ joined #divine
15:57 xstill_ ještě přibude konfigurování výjimek (ten unwinding při nechycené výjimce dělá docela bordel), takže budou dva
15:57 xstill_ jinak mi i dává smysl aby to bylo per proces
15:57 xstill_ protože co když to ten jeden proces změní, tak by to mohl změnit jen sobě
15:58 xstill_ (i když ono teda změnit to jinak než dočasně pod maskou stejně dělá bordel mezi vlákny, takže si člověk moc nepomůže…)
16:33 blurry_ joined #divine
17:22 kejsty joined #divine
17:41 mornfall kejsty: ten jeden patch ktorý máš zarecordovaný a nie je v nexte (ceb10290cf354bfae5ec7cc5373abd6621dcc68c) -- môžeš opraviť lenght na length v popise (prípadne vymeniť 'syscall call combination' za 'syscall argument combinations')? O:-)
17:41 mornfall kejsty: (bez neho ten passthrough nefunguje tak dobre ako by asi mohol)
17:53 yaqwsx mornfall: Jop, bylo to tou konfigurací faultu.
17:53 mornfall yaqwsx: \o/
17:53 yaqwsx (zatím vyzkoušeno na jenom příkladu)
17:53 mornfall ← not completely stupid
17:53 yaqwsx (y)
17:54 yaqwsx Moje otázka je - máš k současné podobě konfiurací nějaké připomínky anebo to můžu učesat (mám tam ještě jeden rest) a rozumně zarecordovat?
17:54 mornfall (je teda ale možná problém v implementaci __sym_* protože to možná ve skutečnosti nekonverguje když tam padne interrupt na blbý místo)
17:55 yaqwsx Jinak, poté plánuji trochu refaktorovat DiOS (a důsledně oddělit kernel a userspace)
17:55 mornfall (třeba v momentě kdy existuje nějakej ne-weak pointer do formule?)
17:56 mornfall yaqwsx: ještě na mě vyskočil ten mechanismus výroby syscall tabulky jako podezřele složitý (ale nevím jestli to je složitost nutná)
17:56 yaqwsx mornfall: Myslíš syscall ## wrapper?
17:56 mornfall yaqwsx: (resp. není mi úplně jasné jestli je potřeba aby kontext podědil ty static wrappery)
17:57 mornfall nicméně musim vystoupit, do Vídně se mi nechce
17:57 mornfall klidně ale češ :) (kdybys učesal tu preprocesorovou rekurzi pryč taky bych se vůbec nezlobil :)
17:57 mornfall ozvu se později
18:04 yaqwsx mornfall: Ok, to je pravda - nakonec jsem toho, že Syscall je struktura nevyužil, takže z ní nemuím dědit.
18:04 yaqwsx mornfall: Ověřil jsem si, že to jde, tak teď nemám problém rekurzi zahodit :D
18:07 mornfall výhodu toho že je to struktura vidím v tom, že ten šablonovej parametr přijde tam a ne ke každýmu wrapperu
18:08 mornfall ale to jde pak použít jako SyscallWrapper< Config >::foo( ... )
18:08 yaqwsx Jojo, to tak chci nechat - ale nepotřebuji z ní dědit.
18:08 mornfall resp. &SyscallWrapper< Config >::foo
18:10 mornfall jo a ještě asi můžeš zničit ty věci v syscall.def který jsou ze systable.def od kejsty protože těch systable skutečně hrozí víc (záleží od jádra host systému)
18:12 yaqwsx Ok, takže ze syscall.def zmizí komponenta a passthrough
18:52 mornfall a ty out/in/mem veci
19:04 yaqwsx mornfall: Ty nebudou stejné pro všechno?
19:06 mornfall já vlastně nevim... možná jo
19:07 mornfall radši to tam nech, smazat to je jednodušší než to zase přidávat :-)
19:08 yaqwsx mornfall: Ano, s tím souhlasím!
19:53 blurry_ joined #divine
20:10 kejsty joined #divine
22:31 yaqwsx mornfall: První dávka patchů u mě na Arke

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