Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2016-05-08

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

All times shown according to UTC.

Time Nick Message
16:58 xstill mornfall: budeš někdy v dohledné době v Brně? Potřeboval bych se s tebou pobavit o tom, jak by se dali nativně zpouštět věci vyprodukované divinecc
17:03 xstill momentálně jsem zkoušel implementovat (část) divine intrinsiků, ale není to tak snadný. V podstatě vidím jako možnost buď to implementovat celé jen přes syscally bez glibc, nebo celej divine postavit tak aby měl stejný rozhraní jako linux a userspace běžel na glibc (což by asi vedlo k věrnější verifikaci ale bude to nejspíš víc bolet)
17:03 xstill a teda jak implementovat výjimky v tom prvním režimu moc netuším
17:05 xstill ale zatím teda nemám ani malloc (protože nejde ani dloadnout knihovnu z programu zkompilovaného s divine userspace)
18:27 mornfall no ono to jde, ale jednoduchy to nebude
18:31 xstill otázka je spíš kterou cestou?
19:17 mornfall no cpat do divinu tech ca 300 syscallu fakt nebudem :p
19:18 mornfall port glibc spis
19:18 mornfall vyjimky ve stejnem rezimu jako scheduler
19:24 xstill port glibc ti až tak nepomůže pokud to chceš spouštět i nativně (protipříklady, nebo jak se já teď snažím s VFS) -- tam v nějakém momentě potřebuješ donutit ten kód co běžel v divine aby běžel nativně, ony ty syscally by mohly být v userspace, ale jo, taky by se mi moc nechtělo je implementovat. To s těma výjimkama nechápu.
19:24 xstill je teda možný, že kdybychom měli port glibc tak stačí možná jen vyměnit k jakému glibc se linkuje
19:25 xstill i když teda minimálně v VFS to tak snadný nebude
19:28 xstill momentálně zvažuju jestli by nešlo udělat nějaký wrapper který by byl zkompilovaný k systémovému glibc, po spuštění by uložil někam do globálních proměnných základní funkce které je třeba volat ze systému (malloc, free) a pak by ldloadnul by ten model a skočil na jeho __divine_start
19:29 xstill to se mi zdá jako míň bolestivý než si implementovat vlatní wrapper na mmap syscall a komplet alokátor. Jen teda až budeš mít framy aktiované hypervizorem tak se to asi celé dost zkomplikuje.
19:30 xstill (samozřejmě by bylo třeba implementovat __divine_* a unwind by asi v tomhle režimu noc nefungoval)
19:46 xstill ještě by teda mohlo jít všechny symboly v tom modelu lartem přejmenovat a pak to přilikovat k systémové glibc do které se budou provolávat __divine_* věci
19:47 xstill to by teoreticky taky mohlo fungovat (modulo výjimky)
19:47 xstill i když, když to tak vezmu, na úrovni LLVM není takovej rozdíl mezi tím jak řeší výjimky divine a systém
19:49 xstill kdyby se nahrazení personality a __cxa_throw dělo lartem a ne na úrovni zdrojového kódu tak by to skoro mohlo jít prohazovat
19:49 xstill akorát teda nevím co z toho bude aktuální v divine 4
19:49 xstill mornfall: ^^
20:10 mornfall no jak rikam, musis tak jako tak vyresit scheduler
20:10 mornfall nejaky vyjimky jsou proti tomu jednoduchy
20:13 xstill no, já nemám moc představu o tom, co má konkrétně dělat scheduler
20:13 mornfall tzn. musime mit vladu nad zasobnikama, podobne jako nativni pthready
20:13 mornfall no prepinat vlakna
20:14 xstill jasný, ale na téhle abstraktní úrovní (aniž bych věděl jak se to ovládá a jak to má fungovat v divine) se dost blbě uvažuje o tom jak to půjde implementovat
20:14 mornfall no zmenou zasobniku, nejspis
20:14 mornfall bude to vazany na platformu
20:14 mornfall do jiste miry
20:16 mornfall unwinder pak bezi z jineho zasobniku nez to co unwinduje, ale musi jiste rozumet strukture ramcu
20:17 xstill jak z jinýho zásobníku, neměl by běžet ze stejnýho jen "výš"?
20:19 mornfall no scheduler musi mit vlastni zasobnik tak jako tak
20:20 mornfall i kdyz unwinderu to mozna nepomuze
20:20 mornfall nicmene dwarf parser na tabulky jde pouzit z libunwind
20:21 mornfall a ten jump nahoru po zasobniku uvidime
20:21 mornfall v 4 zadny __divine_unwind nebude
20:22 xstill a jak to bude fungovat?
20:22 mornfall introspekce a aktivace ramce stejna jako pro scheduler
20:23 mornfall mam pocit ze uz jsme to nekdy resili
20:23 mornfall ta intro cast se bude muset v nativnim resit tim libunwind asi
20:24 mornfall nebo nejak vymlatit data o ramcich jinde
20:24 xstill hmmm, to bude zajímavý ještě
20:24 mornfall treba je zakompilovat do toho

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