Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2017-03-16

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

All times shown according to UTC.

Time Nick Message
02:48 ilbot3 joined #divine
02:48 Topic for #divine is now DIVINE | http://divine.fi.muni.cz | http://irclog.perlgeek.de/divine/
06:41 xstill hm, to nebylo moc dobrý s tím divine.h -> divm.h není úplně málo testů v databázi co to includují
06:41 xstill pro výjimky přidám divine.h který bude includovat divm.h ale pak to musíme opravit
06:44 xstill je teda otázka jestli vlastně má ještě nějaký smysl ty testy pouště znova
06:44 xstill ale spíš jo, ať alespoň vidím, že se to nerozbilo
07:06 mornfall no, lepší by bylo aby testy žádný divine.h neincludovaly (ani žádný divm.h)
07:06 mornfall teda modely
07:06 mornfall a ano, je to problém
09:59 xstill_ tak jsem to přeměřil a chybí mi asi 14 benchmarků (možná používájí něco z dios.h co se přesunulo, nebo nevím…), nicméně dostávám se někna na 2.8 %, což bych řekl, že dostatečně odpovídá na to abychom tam ty čísla mohli nechat
09:59 xstill_ hm, skoro to vypadá, že tam budou benchmarky těsně kolem meze paměti, protože chybí nějaké z libc++ testů
11:37 xstill_ mornfall: transformace je na webu, akorát aby to bylo přeložitelné tak jsem k tomu musel dát i kus bricks
11:37 xstill_ a dal jsem tam readme, že je potřeba mít LLVM 3.7
11:41 xstill_ mornfall: do unwinderu jsem jen ten jeden soubor, tam se to moc nedá vypreparovat na něco uzavřeného
11:48 xstill_ takže archivy jsou zhruba naplněny dokonce před deadline
11:54 yaqwsx sim nenačítá zdrojové soubory z nějakého binárního blobu, ale přímo z filesystému?
11:56 yaqwsx Já myslel, že se to čte ze stringifikovaných zdrojáků. Momnetálně se mi totiž divine snaží načíst absolutní cestu /divine/...
12:57 mornfall yaqwsx: čte se to z VFS, ale asi jen když to tam je
12:58 mornfall yaqwsx: if ( src.empty() ) src = brick::fs::readFile(...)
12:59 yaqwsx Jojo, už to vidím a už jsem to i spravil. Neměl bych debugovat hladový...
13:00 yaqwsx V CMaku pro runtime jsem měl špatnou cestu, vůči které se počítá umístění ve VFS.
13:01 mornfall yaqwsx: tvořil jsi nějaký ten text k projektu?
13:04 mornfall yaqwsx: pak si ještě asi unpullni ten XXX patch co máš v divinu na arke :) a kdybys (i když je to hodně work in progress) mohl zarecordovat co teď máš jako XXX a dal to na arke, docela by to pomohlo, abychom se na to s blurry mohli mrknout
13:05 yaqwsx Zatím ne - před hodinou jsem se vrátil ze školy a první věc, ke které jsem sedl byl Divine
13:05 mornfall :-)
13:05 yaqwsx mornfall: Přesně to mám v plánu, ale prvně to chci dostat do podoby, kdy se to zkompiluje a zároveň to na triviálním programu nebude házet undefined jump :)
13:06 mornfall ok, XXX patch má prioritu, až se dostaneš k projektu tak prosím cc blurry (řeknu aj jí aby ti poslala když něco bude mít)
13:06 yaqwsx Jojo, já doufám, že to už nepotrvá dlouho.
13:06 mornfall yaqwsx: pokud to zvládneš za 45 minut tak jo, jinak beru aj nepřeložitelný ;-)
13:07 yaqwsx Ok
13:09 mornfall dik
13:11 yaqwsx mornfall: O jakém XXX patchi na arke se bavíme? Dívám se do logu a žádný XXX na arke nemám.
13:20 yaqwsx Už je to chvilka, co jsem pracoval se simem, a musím říci, že manuál není úplně dostatečný (stálo by za to jej lehce vylepšit) - jsem ve faultu, jak skočím o rámec výše, abych se podíval co způsobuje fault?
13:21 xstill yaqwsx: inspect .frame:deref nebo tak něco (případně zkus nejdřív show ať víš kam skáčeš)
13:21 blurry yaqwsx: priebezne mozes aj pisat co v manuali chyba
13:22 yaqwsx blurry: Příklad jednoduchého programu, kde ukážeš, jak se dělá se simem. Pohyb sem tam, zkoumání proměnných, atd.
13:24 yaqwsx xstill: To mi zobrazí aktuální rámec, jak si zobrazím zdroják příslušející .frame->parent?
13:24 blurry mornfall says source bez parametrov po inspect
13:25 blurry a mas si urobit darcs log -p XXX na arke
13:25 blurry a pozdravuje ta
13:26 yaqwsx blurry: Že děkuji! A že by mě zajímalo, jaktože nefunguje (ani když to nahradím regexem): darcs log --match 'comment XXX'
13:27 blurry udajne je comment len ta dlha cast z commit message patchu (mozno)
13:27 yaqwsx Ah, děkuji!
13:28 mornfall btw ja to ctu ale pocitac mam v officu tak se mi nechce psat :p
13:30 xstill yaqwsx: když uděláš ten inspect tak se přesuneš na ten ráme a source pak bude relativně k tomu
13:31 xstill nebo source .frame:deref
13:31 yaqwsx Děkuji za rady, už se mi povedlo zjistit, proč narážím na built-in unreachable. Takovou pitomost jsem nečekal.
13:34 blurry aaaaaand?
13:34 yaqwsx Chybu tam nechám, ale už recoduji patch!
13:36 blurry nie to ti hovorim v mojom mene ci sa aj podelis s pitomosti
13:37 yaqwsx Momentálně mám zrušenou implementaci raise, takže když PDClib volá raise( SIGKILL ), tak se nic nestane a skočí na unreachable
13:38 blurry tiez sme to stretli
13:41 yaqwsx Patch u mě na Arke
13:41 yaqwsx PS: Je to v tom ještě bordel (nefungují signály a passthrough), ale rád uslyším názor a případně to celé předělám :D
13:42 yaqwsx Namespacy __sc, __sc_passthrough přijdou pryč, zmizí wrappery DiOS syscallů.
13:51 xstill wrappery dios syscallů? jakože create thread a tak? a jak se volají?
13:52 yaqwsx Generují se.
13:52 xstill jo takhle, to není zmyzely, pod zmizely si představím že neexistují vůbec
13:55 mornfall no zmyzely to fakt není
13:56 xstill nojo
13:58 mornfall yaqwsx: to s tím generováním prototypů je trochu, hm, nešťastný
13:58 mornfall yaqwsx: teda zejména s generováním doprostřed jinak normálního C++
13:59 mornfall yaqwsx: něco jako SYSCALL( foo )( int x, int y ) jako jsou unittesty bych bral spíš
14:00 mornfall yaqwsx: to SYSCALL pak jde teoreticky vykousnout aj perlem, i když není moc dobrý že když to třeba zakomentuješ perl to furt uvidí
14:01 mornfall yaqwsx: a ta syscall.def nemusí nutně existovat (bylo by to rozdistribuovaný v komponentách)
14:03 mornfall yaqwsx: (tomu by se šlo možná bránit něčím jako cpp '-DSYSCALL(n)=__SYSCALL__ ## n' a pak by se z výstupu preprocesoru vygrepovalo __SYSCALL__([a-z]*) nebo něco
14:03 mornfall )
14:06 xstill fakt je na to potřeba perl, nejde ty prototypy vygenerovat preprocesorem?
14:07 mornfall no, problém je spíš ve wrapperech než v prototypech
14:07 mornfall (a v implementacích)
14:08 xstill no wrappery se ale zas nemusí generovat doprostřed jiného kód, ne?
14:08 xstill *kódu
14:10 mornfall nevidím úplně tu výhodu v #define SYSCALL_MACHINE_PARAMS(x) ... #define SYSCALL(x) #include <sys/syscall.def> #undef ...
14:10 mornfall oproti SYSCALL( foo )( ... )
14:11 mornfall a vytáhnout to tím perlem z toho druhýho není o moc těžší
14:12 mornfall pak každý .hpp který obsahuje SYSCALL může dostat vygenerovaný .syscall-impl.cpp
14:13 xstill výhoda je, že nepotřebuješ perl a máš jednodušší build proces
14:13 mornfall hm, jen teda to bude muset být SYSCALL1( foo, int, int ) aby šlo generovat prototyp té druhé věci
14:13 mornfall xstill: a jak teda vygeneruješ ty implementace bez perlu?
14:15 xstill to asi nevygeneruju
14:16 mornfall pak ten perl ale potřebuješ tak jako tak
14:16 xstill teda, no, ono by to šlo, ale bylo by to nejspíš výrazně horší než tím perlem
14:16 mornfall to chci vidět
14:16 xstill tak perl potřebujem tak jak tak
14:16 mornfall pro každej parametr to musí vyrobit extra volání va_arg
14:16 xstill no demonstrovat ti to nebudu
14:16 xstill mám i lepší věci na práci
14:18 xstill ale dají se dělat nějaký ty prasárny s pseudo variabilně mnoho parametrů beroucími makry
14:29 yaqwsx mornfall: Tak jak by sis představoval to generování? Pro tento způsob jsem se rozhodl, že mi přišlo pohodlné možnost vygenerovat např. prototypy do komponent.
14:29 mornfall yaqwsx: jako chápu výhodu, ale je to dost nečistý
14:30 mornfall yaqwsx: tohle nedělá ani moc z qt
14:30 mornfall (metaobject compiler)
14:30 mornfall tam jde tu hlavičku normálně includovat ještě předtím než se na ni spustí preprocesor
14:31 mornfall (kterej byl kdysi taky napsanej v perlu, iirc)
14:31 yaqwsx Přiznám se, že jsem se díval, jestli není možné Clangu přidat "preprocess" pass.
14:31 mornfall no ale furt to znamená, že kdokoliv by chtěl tu hlavičku jakkoliv použít, musí ji prohnat preprocesorem
14:32 mornfall i kdyby to nakrásně šlo integrovat do clangu
14:33 yaqwsx Nevím moc velký rozdíl, jestli potřebuji vygenerovat soubor nebo prohnat hlavičku preprocesorem.
14:33 yaqwsx *Nevidím
14:35 mornfall když ta hlavička není preprocesovaná, tak můžeš udělat #include <něco.h>
14:35 mornfall pokud nevygeneruješ ty nedefinované věci, tak ty sice nebudou definované, ale všechno ostatní můžeš normalně používat
14:36 mornfall vezmi si že třeba potřebuješ deklaraci některýho scheduleru, abys podědil tu třídu kvůli datům, ale metody tě nezajímají protože je nebudeš volat
14:37 yaqwsx Ok, neřešeí to potom /* {{{ DIVINE_GENEREATE() }}} */
14:38 mornfall jo, ale ... je to furt icky
14:39 mornfall kdyby to nešlo jinak tak /* DIVINE_GENERATE */ asi jde přežít, ale šťastný z toho nejsem
14:39 mornfall jednoduchej příklad int x() /* DIVINE_GENERATE */ ... bum, compile error někde uvnitř toho generovanýho bloku
14:40 yaqwsx Ok, takže prostě ideálně generovat samostatné soubory, které includovat?
14:40 yaqwsx Nebo generovat soubor, který bude definovat makra?
14:42 yaqwsx A místo {{{DIVINE_GENERATE_XY() }} se bude psát DIVINE_GENERATE();
14:49 mornfall yaqwsx: a je nějaký větší problém s tím zahodit syscall.def a rozdělit to do jednotlivých struktur?
14:49 mornfall yaqwsx: jako int SYSCALL( jméno )( parametry )
14:50 mornfall yaqwsx: to by nemělo být problém paušálně rozbalit na int jméno( parametry ); __unwrap_jméno( dot dot dot, va_list * );
14:50 yaqwsx Jakože bych Perlem generoval implementace a warppery, hlavičky podobně jako to bylo před tím?
14:51 mornfall yaqwsx: int jméno pak bude mít normální ruční definici a __unwrap_jméno se vygeneruje implementace
14:51 mornfall yaqwsx: syscalls.h jde celý vygenerovat perlem
14:51 mornfall yaqwsx: nebo se na to úplně vykašlat, syscalls.h není potřeba
14:52 mornfall ty prototypy jsou stejně povinně deklarované v unistd.h a spol
14:52 mornfall musím jít cvičit ale před šestou se zase objevim a měl bych mít ~1.5h čas
14:52 yaqwsx OK, já mezitím popřemýšlím a sepíšu nějaký ten text
14:53 mornfall super, blurry už něco má a měla ti to poslat :-)
14:53 yaqwsx Tak to se ještě nestalo.
14:53 mornfall blurry: ?
14:59 xstill_ a ten unwrap by měl být co?
15:19 yaqwsx xstill_: BTW: Víš už, co je s tím studentským projektem?
15:30 blurry ze jirik asi zapomnel odeslat report
15:31 blurry a mas
17:57 xstill yaqwsx: Jiřík mi přeposlal zprávu od Komárkové ohledně projektu: "posledni obhajoby byly v listopadu, to vy jste nemeli ukonceno. ted hledam termin na duben. Podepsanou zpravu od tebe mam, el. verzi jsme vlozila do ISEP. "
19:26 yaqwsx xstill: Ok

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