Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2017-04-05

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

All times shown according to UTC.

Time Nick Message
01:48 ilbot3 joined #divine
01:48 Topic for #divine is now DIVINE | http://divine.fi.muni.cz | http://irclog.perlgeek.de/divine/
10:07 yaqwsx mornfall: Nějaké připomínky k patchům případně je třeba ještě něco udělat, aby kejsty a blurry mohly pokračovat?
10:48 mornfall yaqwsx: it's complicated
10:49 mornfall ERROR: Program::insert: Unresolved symbol (function): __dios_start_thread
10:49 mornfall trochu horší je že 3e7a3befebc57bb8cde4284a533c5291d033563a je docela solidní powerplant
10:50 mornfall celkově to je dost ne-reviewovatelný, protože to zároveň přesouvá velký bloky kódu a zároveň je to mění
10:51 mornfall nejradši bych viděl zvlášť patch(e) který to přesunou a pak nad tím patche který to editujou (to jde udělat třeba tak, že vezmeš next, uděláš jen ty přesuny, zarecorduješ a pak přepíšeš working copy tím co máš a budeš recordovat už jen actual změny)
10:52 mornfall a teda v těch makrech je asi docela bordel
10:55 mornfall můžu to teda pullnout i jak to je (pokud jsi s kejsty domluvený kvůli mergování passthrough), ale je nutně potřeba udělat pořádek, brzo
10:57 mornfall hmm, to že jeden patch maže monitor.cpp a další ho tam zase přidává je taky docela nešťastný
11:09 yaqwsx mornfall: Ok, očividně neumím recordovat velké změny. S kejsty nejsem nějak domluvený.
11:10 yaqwsx Budeš k dipozici večer (20+) - překopu ty patche, ale rád bych měl někoho na hotline, ať to zarecorduji správně.
11:11 mornfall yaqwsx: můžu být
11:11 mornfall yaqwsx: otázka je možná, je tam určitě všechno?
11:12 mornfall yaqwsx: jedna možnost je, pokud mi to zabalíš celý (tak aby to šlo přeložit/fungovalo), můžu to zarecordovat tvým jménem a pak se na to podíváš (resp. můžu to zkusit)
11:44 mornfall yaqwsx: bez toho posledního patche to zdá se funguje
11:54 yaqwsx mornfall: Moje chyba, opraveno.
12:28 yaqwsx mornfall: Pokud to pro tebe není velký overhead zarecordovat, budu za to rád!
12:28 yaqwsx mornfall: To co je na Arke by mělo být kompletní (prošly tomu teď testy)
14:03 mornfall yaqwsx: ok, dík
15:32 mornfall yaqwsx: asi to teď úplně nedám, zarecordoval jsem 2 'vzorové' patche pro fault.*, najdeš je v ~xrockai/src/divine/last
15:33 mornfall yaqwsx: problém je, že ten kód (asi částečně proto že to bylo přesunutý a pak editovaný) obsahuje docela dost redundantních změn, takže s tím je trochu víc práce
15:35 yaqwsx mornfall: Můžu ti nějak pomoci?
15:36 mornfall yaqwsx: no, nejlíp když začneš tím že se na ty patche podíváš
15:36 mornfall yaqwsx: bez toho XXX to jde přeložit a víceméně to funguje (většina testů prochází)
15:37 mornfall yaqwsx: a ten XXX je už docela civilizovanej/čitelnej
15:37 mornfall (logicky nejde přeložit, ale to by nebyl problém)
15:38 mornfall stejný postup by měl jít aplikovat na scheduling.{hpp,cpp}
15:39 mornfall a když se pak ty makra vytáhnou do separátního patche (pokud je nechceš hned ničit) tak už to IMHO bude zvládnutelný
15:39 mornfall další věc je, dívali jsme se na to dneska s kejsty
15:39 mornfall a nejlepší by mi asi přišlo, kdyby passthrough mohla být komponenta
15:40 mornfall nicméně passthrough se musí zaháčkovat na úrovni va_list wrapperů
15:40 yaqwsx Z jakého důvodu?
15:41 mornfall takže bych navrhoval následující: zrušit struct Syscall, přesunout wrappery (třeba jako wrap_foo) do BaseContext a šablonovat je individuálně
15:41 mornfall (tzn. každej by vypadal jako template< typename Ctx > static SchedCommand wrap_ ## name ( Ctx &, ... ) ...)
15:42 mornfall neměl by pak být problém vzít &Configuration::wrap_foo< Configuration > nebo tak něco
15:42 mornfall důvod: je potřeba sestavit ten _SC_* tuple
15:42 mornfall a to dost dobře bez va_list-u nejde
15:43 yaqwsx mornfall: Ok, to je fakt, který jsem si neuvědomil.
15:43 mornfall (sestavování toho tuplu musí být rekurzivní variadická šablona)
15:43 mornfall i když! hm
15:43 mornfall ono by to možná šlo aj bez toho va_listu
15:43 yaqwsx Neumíš to vyrobit z variadické šablony?
15:47 mornfall hm, int creat( Mem< const char * > _1, mode_t _2 ) { return pass( SYS_creat, _1, _2, _3, _4, _5 ); } ... tohle by mohlo jít implementovat
15:48 mornfall musí se vyrobit dostatečně transparentní konstruktory pro ty Mem<> a spol
15:48 yaqwsx Ok, teď nevím, jak tam dostat  Mem a spol.
15:49 mornfall no to přijde ze syscall.def
15:49 mornfall kejsty mě nebude mít úplně ráda, ale cesta by to být mohla... jdu mrknout jestli tady ještě je
15:50 yaqwsx Jestli chceš uniknout hněvu, klidně to sveď na mě. Než se vrátím, tak na to zapomne. Snad :-D
16:02 mornfall yaqwsx: je tu a přežil jsem to
16:02 mornfall yaqwsx: takže tahle cesta je asi OK
16:03 mornfall (struct Syscall může zůstat jak je)
16:03 mornfall ale bude potřeba překlopit syscall.def na ten int _1, const char *_2 princip
16:04 yaqwsx Ok
16:05 mornfall jinak budeš muset kejsty ukázat jak přesně má vygenerovat ty svoje implementace těma rekurzivníma makrama ;-)
16:05 yaqwsx mornfall: Já myslel, že se jich mám co nejdříve zbavit.
16:06 mornfall ano, máš :)
16:07 mornfall (to jen vyhrožuju co se stane když se jich nezbavíš :p)
16:07 mornfall (princip s překrytím _1, _2, etc. jsem jí už vysvětlil a myslím že tomu rozumí)
16:10 mornfall ty passthrough wrappery teď budou vypadat v podstatě úplně stejně jako libc wrappery (jen tam bude občas nějaký Mem< ... > navíc)

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