Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2016-11-13

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

All times shown according to UTC.

Time Nick Message
00:01 divine-buildbot joined #divine
00:07 divine-buildbot joined #divine
00:41 divine-buildbot joined #divine
01:17 divine-buildbot joined #divine
01:26 divine-buildbot joined #divine
01:51 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/
07:38 xstill tak jsem udělal úplně čistej build (včetně toolchainu) a padá to pořád
07:43 mornfall tak, ono je to asi dobře ne?
07:45 yaqwsx joined #divine
07:46 mornfall xstill: je nějakej rozdíl mez TEST_RUN_ROOT a .?
07:47 xstill jo, pokud se ten test přepne do jinýho adresáře
07:49 mornfall to se tomu wrapperu úplně stát nemůže
07:52 xstill ok, asi se bez toho dá obejít
07:56 xstill taky můžeš ty patche nestáhnout a já ti k nim časem přidám další změny v testech
07:57 xstill nicméně teď jdu dělat na těch výjimkách
08:15 yaqwsx xstill: Mohl by ses ještě prosím mrknout na fórum IB015?
08:15 xstill mohl
08:18 xstill hm, to bude zase peklo tady ty evaly
10:11 mornfall xstill: na ty custom lart pass náhodou nemáš nějakej test? já jsem přeskládával rozhraní BitCode, takže jsem musel vyresolvovat konflikty tak nevim jistě že jsem to udělal dobře :)
10:11 xstill mornfall: zatím ne, ale není to až takovej problém dodělat
11:08 mornfall xstill: ty 3 patche kolem wrapování testů jsem nakonec nahradil, jak to bylo asi zbytečně složitý a bylo by tam potřeba spravit některý problémy (třeba sourcování lib/testcase, spustitelnost bez toho wrapperu a tak)
11:10 mornfall xstill: ostatní jsem z divine4 pullnul, mělo by teď fungovat aj úplně napřímo spustit test ze zdrojovýho adresáře (bash ./todo/cc/opt-x.sh)
11:15 yaqwsx joined #divine
11:16 mornfall yaqwsx: ha, zrovna jsem s tebou chtěl mluvit :-)
11:17 mornfall yaqwsx: navrhoval bych jednak prohodit mountpoint a follow/nofollow, druhak vytáhnout limit do extra option?
11:18 mornfall yaqwsx: jo a follow/nofollow bych asi nechal bez Link, třeba find má -follow
11:19 yaqwsx Ok, prohodím. Skutečně limit do samostatného argumentu (tzn. aby byl globální)?
11:21 mornfall no přijde mi parametr toho --capture dost ... odstrašující :)
11:22 yaqwsx Ok, s tím souhlasím, ale nenapadlo mě, jak to elegatně v rámci parseru UI řešit (nevím, jak elegantně poznat, že přepínače jdou po sobě)
11:22 mornfall než do toho hrábneš tak si pullni, resolvoval jsem konflikt mezi tebou a xstillem
11:22 yaqwsx Ok
11:23 mornfall no, já bych řekl že globální limit stejně dává větší smysl
11:24 mornfall jinak musíš řešit takový ty situace, že máš dva follow --capture, oba symlinkujou nějakou věc a do jednoho limitu se vejde a do druhýho ne
11:26 yaqwsx Ok, beru a změním. Ještě nějaké připomínky?
11:26 mornfall (pak třeba začne záviset na pořadí v jakým se to prošlo jestli to hodí error nebo ne, nebo se to bude muset explicitně ošetřit)
11:27 mornfall ty magický 8 a 4 v memcpy v packStat jsou takový veselý, ale asi to může zůstat, protože nevim co lepšího :-)
11:28 mornfall hm, houby, ono to přece nefunguje
11:28 yaqwsx Jakto?
11:29 mornfall no, jednak teda to číslo odpovídá velikosti v předchozím memcpy
11:29 mornfall a druhak neodpovídá, může se to nahodile přepisovat podle toho co jsou ty sizeof
11:32 mornfall (kdyby tv_nsec bylo nedejbože 16 bajtů tak to je dokonce buffer overflow)
11:33 yaqwsx Aj, je to blbě, už to vidím.
11:33 mornfall lepší by bylo vyrobit struct z uint64_t/uint32_t a přiřadit to normálním = po složkách
11:33 yaqwsx Přemýšlel jsem nad něčím jako BOOST_FUSION_ADAPT_STRUCT, ale to mi přijde naimplemenovat jako opruz
11:34 mornfall asi bych se nebál do runtime vyrobit s tou strukturou header a sdílet jej mezi tady tím a diosem
11:35 mornfall runtime/divine/stat.h třeba
11:36 yaqwsx Ok
11:36 mornfall (asi to nepatří přímo do diosu, protože to potřebuje mít každej OS co chce ty data z envu vytáhnout stejný)
11:40 mornfall yaqwsx: jo a xstill přidal -Wextra -Wall dios-u, takže někdy do 4.0 to bude chtít asi trochu učesat :-)
11:57 mornfall xheno: pripomínam že si chcel na arke hodiť čisté repo
12:03 yaqwsx joined #divine
12:11 mornfall ještě dávám na známost, že ./test/divine přeloží a spustí divine (případně B=release ./test/divine, případně DBG=gdb ./test/divine, nebo DBG=memcheck)
12:13 xstill OK, asi se na ty tvoje patche budu muset pořádně podívat
12:13 xstill jinak teda očekávám, že jsi mi těma změnama v testech nadělal dost konfliktů, takže teď bude chvíli trvat než se k tomu prokoušu. Teď se snažím raději psát to NFM
12:13 mornfall jakých konfliktů?
12:14 mornfall jakože máš nezarecordovaný změny?
12:14 xstill no musím unpullnout ty patche a mám tu nějaký změny co na to navazovali
12:21 xstill tak pomalu dobíhá ten valgrind co jsem včera spustil: http://pastebin.dqd.cz/HPb3/
12:21 divine-buildbot Hey! build divine-next-debug #67 is complete: Failure [finished]
12:22 xstill že bychom zapisovali 8B do 3B blobu?
12:22 mornfall to aspoň začíná dávat smysl
12:23 mornfall ten useknutej backtrace teda moc ne
12:26 mornfall ale proč kruci write
12:28 mornfall to vysloveně vypadá jako zkorumpovanej zásobník, kde m_data uvnitř toho spookyhash objektu se přepíše nějakým ukazatelem odjinud
12:28 mornfall až na to, že m_data je pole a ne ukazatel... tak tomu fakt nerozumim
12:29 mornfall to že m_remainder bude náhodou rozdíl mezi m_data a začátkem nějakýho blobu se mi moc nechce věřit
12:34 mornfall navíc je to shadow blob
12:35 mornfall asi musí být chybné 'this' uvnitř toho Update
12:35 xstill obvzlášť když m_remainder je uint8, takže se moc daleko nedostane
12:36 mornfall jenže high je zase lokální proměnná, takže by to nemělo moc jít (její adresa by měla být vrchol zásobníku plus konstanta, ne něco co se načte z paměti)
12:37 mornfall xstill: máš k tomu někde bitkód?
12:38 xstill mornfall: pythia01:/var/obj/DIVINE/home/xstill/DIVINE/divine4.debug/test/run/bricks/brick-string.bt.dir/unittest.bc
12:39 yaqwsx joined #divine
12:39 xstill ale má to asi 150k stavů než to k tomu dojde :-/
12:44 yaqwsx mornfall: Spravím VFS a pustím se do česání.
12:53 xstill co je egdb?
12:54 mornfall na openbsd nehistorická verze gdb
12:54 xstill ještě by to mohlo umět cgdb
12:54 xstill aha vlastně to je jedno co tam napíšu
12:54 xstill jen gdb řešíš specielně
12:54 mornfall jo, jsem si na 99 % jistej že jsem to někam psal, ale nemůžu to najít :)
12:55 mornfall můžeš, ale psát DBG="cgdb --args" je trochu otrava
12:56 xstill aha, to je no
13:08 yaqwsx Umí náš command line parser defaultní hodnoty?
13:09 mornfall když tam ta option není, tak ti hodnotu ve struktuře nepřepíše
13:09 mornfall takže co tam bylo předtím je default
13:10 yaqwsx Ok, šlo mi o to, jestli je možné to udělat i nějak neroztříštěně (aby popisek + hodnota byly co nejblíže sobě)
13:14 mornfall xstill: když tomu dáš 'basicMatch' tak to umře stejně, jen s trochu míň stavama
13:16 mornfall xstill: cos udělal abys měl regex.h?
13:34 yaqwsx Pochopil jsem správně, že make debug zbuildí debug verzi DIVINU?
13:34 mornfall asi jo, proč?
13:38 yaqwsx Aha, v novém maku je hardcoded cesta do /var/obj?
13:38 mornfall není
13:39 yaqwsx Tak proč když mám v local.make "OBJ ?= /var/tmp/xmrazek7/divine4_build.", tak se mi DIVINE buildí po pullnutí do /var/obj/xmrazek7-divine-divine4?
13:40 mornfall yaqwsx: protože když tam dáš ?= tak se použije to co je už definovaný, pokud je
13:40 mornfall yaqwsx: to má být = (bez ?)
13:40 mornfall yaqwsx: v /etc/divine.make je nastavený to /var/obj
13:40 yaqwsx Ahá, díky.
13:44 mornfall xstill: no, máš tam pěknej bordel... když izoluju ten test u sebe, tak mi to normálně projde a ohlásí fault na nechycené výjimce, tak bych řekl že je klidně možný že se divine rozbil někde v těch výjimkách
13:45 mornfall ale chce to ty změny nějak roztřídit aby to šlo zjistit
13:47 mornfall (taky je možný, že za to může nějaká interakce toho co dělá brick-shelltest s těma regexama pak, kdoví)
13:50 mornfall ale jo, já už asi tuším jak se to rozbije
13:52 mornfall tam podteče size_t, ale v Update zase přeteče zpátky když se přičte k m_remainder a zavolá se memcpy sice na dobrou adresu, ale s length které je skoro size_t max
13:52 mornfall to převálcuje zásobník odspoda a voila
13:58 mornfall (to m_data ukazuje do zásobníku, takže jasnej overflow, zůstanou tam jen ty rámce nad tím bufferem)
14:05 yaqwsx mornfall: U mě jsou 2 patche opravující capturing VFS.
14:05 yaqwsx Můžu si nějak vynutit rebuild pouze DiOSu? Chtěl bych se podívat a opravit warningy.
14:06 mornfall yaqwsx: touch runtime/divine.h asi
14:07 mornfall xstill: jo, je to tak, mám assert na kterým to slítne
14:20 yaqwsx mornfall: Díky.
14:21 yaqwsx Proč vlastně __vm_obj_size vrací int a ne něco jako size_t nebo ssize_t? Ptám se na to v souvislosti s warningy
14:25 mornfall xstill: vypadá to že jsem nic nerozbil, tak si asi můžeš pullnout fix
14:25 mornfall yaqwsx: nevim a jdu ven, ale budu o tom přemýšlet ;)
14:27 yaqwsx Ok
14:27 mornfall (nicméně bych to tak asi nechal)
14:28 yaqwsx Jo, jde mi jen o vyřešení schizofrenie, jestli hodnoty vyjadřující velikost něčeho by měly být int nebo sizeněco. Bylo by dle mě rozumné to ujednotit (teď je v tom guláš)
14:30 mornfall podtečení unsigned typu je dost nepříjemný, viz teď ten bug
14:31 spito funguje ještě ten magický komentář, kterým dokáže přidávat *.c/*.cpp soubor přepínače pro překlad?
14:31 yaqwsx Takže překlopit runtime na používání signed typů pro velikosti?
14:31 mornfall spito: už ne
14:32 mornfall yaqwsx: nevim, a Lucka už mi asi uteče ... bbl :)
14:34 spito dost posix testů potřebuje includovat jeden hlavičkový soubor a při kompilaci k němu mají nastavenou cestu
14:34 yaqwsx mornfall: Ok, miz
14:34 spito jde divine přidat přepínač -Icesta, nebo ten soubor musim rozkopírovat všude?
14:41 yaqwsx xstill: Funguje nám pthread_cancel? Podle mě, ale snad v tom není nějaká vyšší magie, kterou jsem přehlédnul.
14:47 xstill spito: -Icesta funguje u divine cc
14:48 xstill yaqwsx: podle tebe co?
14:48 spito xstill: jasně, ale jak řeknu testům, aby si tenhle přepínač přidaly?
14:48 xstill yaqwsx: měl by fungovat
14:49 xstill spito: mohl bys zavést nějakej specielní komentář, kterej si test/lib/verify z toho kódu grepne a předá ho divine
14:50 xstill něco jako /* EXTRA_DIVINECC_FLAGS=… */ někde na začátku toho souboru
14:50 yaqwsx xstill: mělo to být "Podle mě ne" - pthread_cancel by měl zasílat request libovolnému vláknu, ne jen sobě.
14:50 xstill spito: to jak se pouští test určitě přesně ten tes/lib/verify
14:50 xstill yaqwsx: aha, to dost jo
14:50 xstill yaqwsx: mělo byt tam být getThread( gtid ) asi
14:51 yaqwsx Ok, spravím.
14:51 xstill takhle je to dost špatně
14:51 xstill chtělo by to na to nějakej test taky
14:51 yaqwsx xstill: nepokryjí to testy, které páchá spito?
14:51 xstill nevím, ale raději bych na to měl vlastní mini test, to nebude takovej problém, ne?
14:52 yaqwsx Ok
14:52 spito mno, jak bych to řekl...spíš je zázrak, když byť i jen interface test projde :D
14:53 xstill jakto?
14:53 spito chybí hlavičkové soubory (spíš je neumíme)
14:53 xstill jako třeba?
14:53 spito například jsem musel smazat všechny testy, které používají sys/wait.h
14:54 spito asi vyhodím i všechny, které používají semaphore.h
14:54 spito nejspíš budou chybět definice struktur
14:54 xstill spito: to by chtělo někam psát asi to gitlabu paradise/divine
14:54 xstill protože to principielně chceme
14:54 yaqwsx ...anebo se zastavit a napsat to tabuli ;)
14:55 spito to by se na tabuli nevešlo
14:55 xstill ta tabule začíná být celkově neúnosná, nevejdou se tam už ani naše věci, natož aby byla použitelná jako tabule
14:55 yaqwsx Tomu se říká motivace řešit issuses :-P
14:56 xstill no to není úplně, je dost věcí, který je potřeba řešit v horizontu delším než několik měsíců a tam moc nedává smysl je mít na tabuli
14:57 yaqwsx Souhlasím, tohle bylo ode mě jenom alé rýpnutí (protože ač vím, že ta tabule je nepraktická, tak můj malý autista ji zbožňuje!)
14:58 spito mám to normálně sypat do issues?
14:58 xstill tabule je super na blízké věci, dlouhodoběj3í bych raději držel jinde
14:58 spito Každou zvlášť? Nebo to mám grupovat?
14:58 xstill spito: jo, asi do jednoho typu sprovoznění téhle sady testů
14:59 xstill pak se z toho můžou udělat menší úkoly až to někdo bude reálně dělat
15:01 xstill spito: nebo to můžeš dávat podle hlaviček a grupovat nějakým tagem
15:05 spito testy s alarmem asi nechceme, co?
15:06 xstill on nemá moc jak fungovat, takže ne. a na to abychom to přepsali jako verifikovanou vlastnost "není tam livelock" taky nemáme vyjadřovací sílu…
15:26 yaqwsx Asi jsem našel i bug v pthread_setcancelstate...
15:28 xstill co je tam špatně?
15:29 spito pthread_kill - chceme umět?
15:30 xstill neumíme a chceme
15:30 yaqwsx xstill: oldstate může být null.
15:31 xstill hm, to je tak když nejsou testy :-/
15:31 yaqwsx Nj, proto jeden právě taky píšu :D
15:31 xstill já to rozhraní vesměs nekontroloval když jsem to portoval
15:37 yaqwsx Jak správně nazvat "Fix warnings" pro commit message?
15:48 xstill Takové patche tam už v podstatě jsou, jen je potřeba říct kde jsi je opravil
15:48 yaqwsx Ok
16:06 mornfall yaqwsx: jenže to co bylo přidaný není -Werror ale -Wall/-Wextra :)
16:07 yaqwsx Ale kruci, dneska nějak pletu slova. Spravím.
16:08 yaqwsx Hotovo
16:08 xstill yaqwsx: ale pokud jsi to dostatěčně opravil tak tam to -Werror přidej (k diosu)
16:09 yaqwsx Neopravil, je tam ještě spousta, ale fakt spousta chyb z VFS.
16:10 yaqwsx + bych rád ještě vyřešil tu schizofrenii okolo signed/unsigned typů pro velikosti.
16:12 xstill hm, ona tak nějak principielně vyplývá z toho, že mornfall (a já s ním už souhlasím) se neshodne se standardem C++ na tom jak se má reprezentovat velikost. Za mě teda taky lepší používat signed typy, protože přetýkají způsobem který má větší šanci způsobit odhalitelnou chybu
16:12 xstill a ty warningy ve VFS si bude muset projít Katka
16:13 xstill ačkoli počítám, že dost z nich má na svědomí spito
16:15 mornfall pro unsigned velikosti v C++ existují historické důvody... byla doba, kdy bylo smysluplný chtít objekty srovnatelně velký s rozsahem příslušného typu
16:16 xstill to je vlastně taky pravda, a ta doba není až tak dávno
16:17 xstill ještě na 32 bitech by to občas mohlo dávat smysl
16:17 xstill mornfall: ty jsi říkal, že ten brick-string u tebe failnul na něčem?
16:17 xstill u mě totiž prošel
16:17 mornfall xstill: asi máš nějaký změny v locale který jsem nenašel
16:18 xstill aha, jo, to mám, máš pravdu
16:18 mornfall classic_table cosi cosi
16:18 xstill to jsem nerecordoval zatím protože chci zkontrolovat, že to v PDClibu fakt není
16:18 xstill ona totiž libc++ se to by default snaží vytáhnout z libc
16:18 mornfall tou dobou mi už došlo kde je problém, tak jsem se přestal snažit stvořit menší testcase
16:23 xstill mornfall: filozofická otázka: začínáme mít testy, které v debugu běží fakt pekelně dlouho, třeba tady ty z bricks, ale i filesystém. Je otázka, jestli rozdělit functional testy na dvě čási (malé a velké), nebo prostě počítat s tím, že vývojáři si pustí functional v release a v debugu budou pouštět jen jednotilivé testy, které neprošly tím testováním v relese. S tím,
16:23 xstill že buildbot může tak jak tak ...
16:23 xstill ... pouštět všechno, ten má času dost, alespoň zatím.
16:23 xstill hm, mohl bych si opravit zalamování zpráv
16:24 xstill mám podezření, že tu mám nějaký perlový stript který se to to stará, ale mezitím se to irrsi asi naučila dělat sama a dělá to bordel
16:25 divine-buildbot Hey! build divine-next-debug #68 is complete: Failure [finished]
16:25 xstill hm, a brick-benchmark asi nechci pouštět nikdy… docela mě překvapuje, že ho jde spustit
16:26 xstill mornfall: https://paradise.fi.muni.cz/builds/api/v2/logs/960/raw padají unit testy
16:26 mornfall navrhoval bych něco jako 'make validate' který by spustil nějakou malou podmnožinu testů v debug-u a nějakou větší v release
16:27 xstill to mi příjde trochu neintuitivní v tom, že to potřebuje oba buildy
16:28 mornfall xstill: tohle URL na log není moc dobrý, protože má špatný MIME takže browser ho neotevře a je autentizovaný, takže curl mě pošle taky někam
16:28 mornfall (proklikám se tam)
16:28 xstill s tím moc nenadělám
16:29 mornfall tak nastavit tomu text/plain by asi šlo ne?
16:29 mornfall nebo vyjmout .../logs/... z autentizace
16:29 xstill jedině, že by to šlo nějak ohackovat na straně nginx konfigurace
16:30 mornfall hm, to se dostalo do patche něco co se nemělo
16:33 mornfall no nebo ne, něco se rozbilo někde jinde... assert z Date:   Tue Sep 20 20:42:21 CEST 2016
16:34 mornfall ale jo vim... to jsem si myslel že jsem zrovna otestoval, ale někde jsem to musel zašantročit v multitaskingu
16:40 xstill hm, Katka tady z toho mého testování bricksu nebude mít radost, ve VFS toho dost chybí
16:46 xstill hm, se divím, že brick-gnuplot testy běží tak dlouho, když tam žádný nejsou, ale ony tam samozřejmě jsou naincludovaný jiný testy…
17:17 yaqwsx Ok, díky tedy za info - upravím DiOS tak, aby pracoval se signed typy.
17:17 divine-buildbot Hey! build divine-next-debug #69 is complete: Failure [finished]
17:32 divine-buildbot Hey! build divine-next-debug #70 is complete: Failure [finished]
17:45 yaqwsx DiOS se už kompiluje clangem 3.9?
17:45 mornfall ne, clang 3.9 bude nejspíš až po release
17:45 mornfall nebo nevim, ale vidim to spíš tak
17:46 yaqwsx :/ Škoda, na ten Katčin VFS by se hodilo mít [[maybe_unused]]
17:46 spito do kdy jste chtěli mít ty posix testy v divine?
17:47 mornfall spito: středa? :-)
17:56 yaqwsx Ok, na warningy ve FS nebudu sahat. Chtěl jsem, ale buď některé syscally nemůžou fungovat anebo je v tom děsná magie.
17:56 mornfall :D
17:57 yaqwsx Např. openat kompletně ignoruje FD...
17:58 xstill piš to někam
17:58 mornfall ideálně do test/todo :)
17:59 yaqwsx Ok, prvně si ale domimplementuji std::thread::hardware_concurrency, ať se zbavím alespoň jednoho warningu.
17:59 xstill hm, jak to chceš implementovat?
18:00 yaqwsx boot parametr diosu?
18:00 xstill (btw. to je warning v libc++, tam bych -Werror asi nedával)
18:00 xstill OK, rozumnej default by asi mohl být 2
18:01 yaqwsx To, že je to v libc++ vím, ale ten warning mě při každém větším buildu těžce dráždí.
18:01 yaqwsx Proč ne default 0?
18:01 xstill co znamená 0?
18:01 yaqwsx nelze rozumně určit/není specifikován počet hw jednotek.
18:01 xstill aha, tak to jo
18:01 xstill tak 0
18:02 xstill já myslel, že to musí mít nějakou rozumnou hodnotu
18:02 yaqwsx http://en.cppreference.com/w/cpp/thread/thread/hardware_concurrency
18:02 mornfall default __divine_choose na 0 nebo 2 :-P
18:02 yaqwsx Fakt choose?
18:02 mornfall (výplazník?)
18:03 yaqwsx Jakože ono by to i dávalo smysl... Otázka jestli za to potenciální nárůst stavového prostoru stojí.
18:04 spito ad FS - to se přepisovalo, že?
18:04 mornfall yaqwsx: no nevidim tam jestli je požadováno aby to vracelo vždy to stejný
18:04 mornfall yaqwsx: (při více voláních ve stejným programu)
18:04 xstill taky jsem o tom chvíli přemýšlel, ale podle mě to nedává moc smysl dělat choice
18:04 yaqwsx ...tak choose při prvním zavolání :D
18:05 mornfall yaqwsx: asi bych dal default 0 (nebo 2) ale klidně jako možnost i nondet
18:05 mornfall nicméně zrovna teď bych si tím nelámal hlavu a klidně tam dal konstantu
18:06 xstill hm, a v C++17 bude ještě http://en.cppreference.com/w/cpp/thread/hardware_destructive_interference_size
18:06 mornfall jo taky jsem si toho všiml
18:06 xstill to je ještě úchylnější konstanta
18:07 mornfall no lepší než 128
18:07 yaqwsx To mě přivádí na ještě jednu otázku: chtěli bychom getenv. Umím získat pointer na _VM_Env* jinak, než že si ho uložím do stavu? Nelíbí se mi, že je to konstantní pointer.
18:07 xstill jak konstatní pointr?
18:07 mornfall yaqwsx: asi potřebujeme stejně environ
18:08 mornfall yaqwsx: takže v globální proměnné skončí chtě nechtě?
18:08 xstill právě, pokud se chceme tvářit jako posix
18:08 xstill což do budoucna přináší otázku, zda definovat __unix__ (momentálně to neděláme)
18:08 xstill ale až budeme mít fork a lepší VFS tak by to dávalo smysl
18:10 xstill mornfall: ještě memory limit by to chtělo do release
18:10 yaqwsx mornfall: ok, tam je env. Ale třeba pro hardware_concurrency, případně do budoucna i jiné syscally, by se mohlo hodit procházet _VM_Env. Fakt je stav to správné místo pro něj?
18:10 xstill pro přístup z DiOSu nemáš moc jinou možnost
18:11 mornfall nicméně hardware concurrency by to klidně mohlo vytahovat z toho envu, kdyby chtělo
18:11 mornfall ve smyslu environ
18:11 mornfall (neříkám že to je nejlepší možnost, ale šlo by to)
18:12 yaqwsx Není tam riziko kolize s uživateslkými věcmi? Nebo tam také platí dvojpotdrtžítková konvence?
18:13 mornfall v environ platí velkej zmatek :)
18:13 mornfall ale jo, fair point
18:14 xstill ale mohl bys to schovat za první NULL v environ :-D
18:15 yaqwsx ...stejně tak bych to mohl schovat za argumenty main, hm, hm? :-P
18:15 xstill k těm nemáš přístup z hardware_concurrency
18:17 yaqwsx BTW: Může main zapisovat do argv/envp?
18:21 xstill argv tuším jo
18:22 xstill The parameters argc and argv and the strings pointed to by the argv array shall be modifiable by the program, and retain their last-stored values between program startup and program termination.
18:22 xstill prý ze standardu C99
18:26 xstill environ nevím a man 7 environ taky nic v tomto smyslu neříká
18:27 mornfall nejspíš může, protože setenv/putenv by to mělo změnit
18:31 yaqwsx Pointer na strukturu, která obsahuje "systémové konstanty" nepřináší velký overhead, že?
18:33 mornfall někde to být asi musí :-)
18:36 yaqwsx Ok, já teď jedu vlakem do Brna, uvidím kolik toho na EDGE zvládnu vyrobit.
18:37 mornfall :-)
18:57 xstill jaká jsou vlastně pravidla zvýrazňování pojmů kurzivou v článku?
18:58 mornfall jaká si stanovíš, asi... je zvykem kurzívovat nově definované výrazy třeba
18:58 xstill OK, tak to byla moje představa v pořádku
20:14 divine-buildbot Hey! build divine-next-debug #71 is complete: Failure [finished]
20:22 xstill hm, nějak se neskipují TODO testy
20:24 mornfall kde?
20:24 mornfall tady ten build padnul na unittesty
20:25 xstill nojo, protože testcase to bere podle $0, takže u zabalených testů to samozřejmě nefunguje, protože to grepuje wrapper
20:25 xstill opravím…
20:26 xstill hm, ale jak je možný, že to někdy funguje?
20:27 xstill ono to totiž nefunguje
20:27 mornfall no, funguje
20:27 mornfall jen ne když se to volá z wrapperu
20:28 xstill no, což znamená, že to nefunguje pro .c a .cpp testy
20:28 xstill akorát, že jedinej takovej je todo/c/printf.c kterej už funguje
20:28 xstill a zbytek jsou .sh testy
20:28 mornfall todo/c/printf.c ani nemám
20:28 xstill nojo
20:29 mornfall asi tam stačí dát "$0 $1", newrapovaný testy asi nemaj žádný argumenty
20:30 xstill grepnu to todo v $0$1, to by mělo fungovat rozumně
20:30 xstill :-D
20:59 spito mornfall: taktická otázka - mám ty testy commitnout i v případě, že selžou?
20:59 mornfall spito: označ to jako todo
21:00 mornfall buď soubor.todo.c nebo pokud padá celej adresář, adresář.todo
21:00 spito a další otázka - v některých případech se přes `void *` posílají čísla, to můžu upravit
21:00 spito jo a některý testy nedoběhnou
21:00 mornfall co na tom? (čísla ve void *)
21:00 mornfall moc do toho nehrab, pokud to není nevyhnutný
21:01 spito v tom případě padne v Divine kontrola paměti
21:01 spito *nevyhnutelný ;)
21:03 spito chceme testy, které ke svému běhu potřebují #include <semaphore.h>?
21:04 mornfall jistě... todo
21:09 spito a alarm?
21:14 mornfall můžeš je přidat pokud je šance že se to ubije nějakým monitorem
21:15 mornfall (nebo třeba LTL specifickou pro ten kterej test)
21:16 mornfall nicméně to s těma číslama je dost podezřelý... to ti fakt padlo, nebo jen předpokládáš?
21:16 spito až se k tomu testu dostanu, tak si to potvrdím
21:18 spito co test na ovládání scheduleru?
21:19 mornfall set/get schedparam?
21:19 mornfall záleží jak vypadají
21:19 spito zatím jsem u pthread_attr_getschedparam
21:20 spito tady chybí dodefinovat konstanty
21:21 mornfall spito: http://sprunge.us/DGTf normálně funguje
21:24 spito FAULT: too many arguments given to a call: 0 expected but 1 given
21:25 spito Userspace VM Fault
21:25 spito Backtrace:
21:25 spito 1: __pthread_entry
21:26 spito http://pastebin.dqd.cz/MRnf/
21:28 mornfall spito: jo no, a_thread_func nemá parametr
21:28 mornfall tak mu ten NULL nejde dost dobře předat
21:31 spito no dobře, ale podle Céčkové normy by to mělo jít normálně zavolat, ne?
21:31 spito funkce bez ničeho by měla jít zavolat s libovolným počtem parametrů (až na to, že je bude všechny ignorovat)
21:31 mornfall dost pravděpodobně UB, ale nevím (je pravda že v těch závorkách není void, takže možná se to má chovat jako ...)
21:32 spito mám tohle v testech opravovat?
21:32 mornfall no, chtělo by to zjistit jak se to překládá a co za bitkód pro tu fci vypadne
21:45 mornfall spito: nevim, ale buď je to chyba v clangu nebo v tom testu
21:46 spito no, já zatím těm funkcím připisuju `void *dummy`, ale většinou se akorát posunu na další chybu
21:47 spito například je škoda, že když program padne na nenulové návratové hodnotě, nikde ve výpisu nevidím, jakou hodnotu to vlastně melo
21:47 spito *mělo
21:47 yaqwsx joined #divine
21:48 mornfall spito: to si asi můžeš lehce opravit (nebo si to vyžádat tady u yaqwsx)
21:51 yaqwsx Copak bys spito chtěl?
21:51 mornfall yaqwsx: vidět ve výpisu exit code
21:51 mornfall když to nebyla 0
21:51 spito tak
21:52 spito co znamená "Write syscall issued!"?
21:52 mornfall spito: stížnosti u Katky :)
21:52 spito ona tady ale není :P
21:52 mornfall spito: tak s tím něco dělej :P
21:53 mornfall (a pak až tady bude tak si můžeš stěžovat)
21:53 yaqwsx spito: Špatně sis ji vychoval!
21:53 spito když si vzpomenu...
21:53 spito vlastně, zítra se zase ukážu na FI
21:53 spito yaqwsx: připomeň mi to ráno
21:54 mornfall to mě skoro mrzí že tam nebudu
21:55 yaqwsx Že chceš vychovávat?
21:55 spito Co se vlastně stane, že se vypíše tahle hláška?
21:55 mornfall yaqwsx: ne, ostentativně si udělat popkorn
21:56 mornfall aha to bylo na spita
21:56 mornfall radši postel, už mi hrabe
21:58 yaqwsx mornfall: Ale ten popcorn bychom si mohli udělat (nějaký v Paradisu bude), pokud se ukáže na více než 30 sekund...
21:59 yaqwsx ...jo to mi připomíná, že bych měl vypsat Paradise kino.
21:59 spito ?
22:00 yaqwsx spito: /home/xmrazek7/divine4 je patch, který ti vytracuje nenulový návratový kód z mainu.
22:00 yaqwsx *v
22:01 spito já ho nepotřebuju, jenom říkám, že se to může hodit ;)
22:03 yaqwsx BTW: Čí malý autista psal konstruktor __dios::Context? Ty konstruktory jsou krásně zarovnané!
22:04 yaqwsx *ta inicializační sekce je krásně zarovnaná
22:08 spito ad alarm - asi nejsem schopný popsat vlastnost, že program nedeadlockuje, že?
22:09 spito k čemu slouží toto? __vm_trace( _VM_T_Text, "Write syscall issued!" );
22:10 yaqwsx Asi někdo nechal někde debugovací hlášku.
22:10 spito ta je snad ve všech funkcích ve fs.cpp
22:11 yaqwsx To se tedy zeptej Katky.
22:11 spito a jak se na to tak koukám, asi jsem měl ten refaktor dodělat :D
22:13 spito měl jsem rozdělanou úpravu FS, která měla ambice zohledňovat i uživatele a více procesů
22:15 spito nic, taky to vidím na postel
22:34 divine-buildbot Hey! build divine-next-debug #72 is complete: Success [finished]
23:31 yaqwsx ...konečně se to zkompiluje, zarecordováno a můžu jít spát.

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