Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2016-05-30

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

All times shown according to UTC.

Time Nick Message
00:06 mornfall xstill: ten operator & je docela zbytečnej ne? pro StrongEnumFlags
00:06 mornfall xstill: tam musí aspoň jedna strana být StrongEnumFlags aby to dávalo smysl? nebo se počítá s enum hodnotama který jsou or nějakých jiných?
00:32 mornfall hm, to je zase nějaká díra do systému, divine cc vůbec nebrble když nesedí prototyp s implementací
00:35 mornfall jo no :-)
00:36 mornfall ono totiž jde mít extern "C" foo( X ) a foo( Y ) a on to je jako overload a ani to nepípne
00:41 mornfall pushnul jsem to, vypadá to funkčně, jdu spát
01:48 ilbot3 joined #divine
01:48 Topic for #divine is now DIVINE: A Parallel LTL Model Checker (http://divine.fi.muni.cz) | http://irclog.perlgeek.de/divine/
05:35 xstill mornfall: StrongEnumFlags už jsem psal hrozně dávno, je možný že nedává úplně smysl
05:50 xstill yaqwsx: necháváš trailing whitespace
05:50 xstill (dios.cpp, třeba 431, 454)
05:51 xstill darcs by tě na ně měl upozorňovat, ale lepší je nastavit si na to editor pokud to jde
05:59 yaqwsx Ok, na trailing whitespace si dám pozor.
06:47 yaqwsx joined #divine
07:39 xstill yaqwsx: a nejspší ti editor nedává newline na konec souboru
07:44 xstill mornfall, yaqwsx: můžete si pullnout autotrace + drobné změny v runtime
07:44 xstill (autotrace se zatím musí spustit lartem ručně)
08:17 mornfall xstill: trochu jsme to nedomysleli, protože nemám kde vyresetovat ten nested flag v __dios_trace
08:17 xstill jakej nested flag?
08:17 xstill aha return :-D
08:18 xstill no, nezanotovat __dios_trace je to nejmenší
08:18 xstill ono ho nemáš ani kde nastavit, žejo :-D
08:18 xstill když první instrukce je volání __dios_trace
08:18 mornfall nojo nakonec
08:18 xstill pošlu ti za chvíli opravenou verzi
08:19 mornfall já si totiž myslel že to bude kolem call, nevim proč
08:19 xstill to by jich bylo asi výrazně víc
08:19 mornfall zase by to fungovalo aj s varargy
08:19 mornfall víc by jich určitě bylo
08:19 xstill to je pravda no…
08:20 xstill ono by to nebyl až takový problém upravit aby to bylo před cally
08:21 mornfall za invoke to bude trochu horší, ale snad ne moc
08:21 xstill no return bych pořád anotoval uvnitř
08:22 xstill divine cc --help nefunguje
08:22 mornfall jo asi jen divine cc bez ničeho
08:22 mornfall nebo divine help cc
08:22 mornfall bez ničeho nepíše help, hm :)
08:22 mornfall reklamace u Viki ;-)
08:23 xstill budu dávat issues do gitlabu, tohle nespěchá
08:27 xstill můžeš pushnout to přidání env globální proměnné?
08:27 mornfall to by tam mělo být
08:28 mornfall pushnul jsem --autotrace
08:28 xstill já tu opravu rekurzivního trace
08:29 xstill nedal jsi tu proměnnou do nového souboru?
08:29 xstill aha ne je tam
08:29 mornfall ani ne, je to v runtime/divine/entry.cpp
08:29 xstill tak to je divný
08:30 xstill co můžou být tracpointy?
08:30 xstill protože nic mi to tam dát nenechá
08:30 mornfall zatím jen to calls
08:31 mornfall --autotrace calls
08:31 xstill opravdu chceme dlouhé volby bez = ? pak se nedá dát default hodnota pokud zadám jen volbu…
08:32 mornfall furt to cyklí
08:32 xstill no jasntě protože ten trace si pořád musí držet flag, protože volá vasprintf, opravím si to
08:33 mornfall jo no :)
08:35 mornfall s tím = nevim, ale = dělá docela potíže, hlavně když je volitelný
08:36 mornfall pak ho tam člověk nedá a když má náhodou správně pojmenovanej soubor tak se nestačí divit
08:36 mornfall ve valgrindu sice maj = ale vynechat ho tuším nejde
08:37 xstill mech   encountered a missing implementation
08:37 xstill value.hpp:73
08:37 mornfall jo to máme nějak vykomentovaný s Honzou :]
08:38 xstill pull a zkus jestli už to necyklí
08:39 mornfall mohlo to teda být static bool uvnitř té funkce
08:39 mornfall už to funguje
08:40 mornfall ne že by mi to po pár voláních neshodilo divine
08:41 mornfall ale to už bude asi bug někde jinde
08:44 mornfall musím dořešit ten elsevier, hrozně se mi chce s tím jejich systémem bojovat...
08:52 xstill nojo
08:55 xstill máš tam autotrace pro return
08:55 xstill akorát to nemám jak zkoušet protože ta chybějící implementace
08:56 mornfall tu můžeš zakomentovat, to je jen vsnprintf kterej volá ptrtoint aby to mohl vypsat
08:56 mornfall ono by se to rozbilo kdybys z toho chtěl zpátky ukazatel, nejspíš
08:56 xstill co mám zakomentovat, ten if?
08:56 mornfall jo
08:57 mornfall zajímavý,tou return anotací se to opravilo :D
08:57 mornfall +' '
08:58 xstill jo, aha, tak to není až tak zajímavý, vasprintf s 0 format stringem asi nefunguje
08:58 xstill jen to měl být fault
08:58 mornfall no ono to fault hodilo
08:59 xstill aha, tak divine našel další chybu
08:59 mornfall klasicky jsem přepdokládal že rozbitej je divine a ne ten bitkód :P
08:59 xstill :-D
08:59 mornfall doběhlo to, jen jak to anotovalo __sys_sched tak z toho jednak nejde nic přečíst a druhak je to hrozně pomalý :-)
08:59 mornfall to se bude muset dořešit to dělení na kernel/runtime/user
09:00 xstill statické věci ve funkci se také inicializují na 0?
09:00 xstill pro primitivní typy…
09:00 mornfall snad jo... jsou to globální proměnné, de facto
09:01 mornfall aha ale vlastně to nechem
09:01 mornfall protože tam překladač nablije nějaký pthread bordel
09:01 mornfall jsem zapomněl
09:02 xstill to snad nenablije pokud jsou 0 inicializované
09:04 xstill to je kvůli volání konstruktorů totiž
09:04 mornfall jo pokud tam bude nula tak by to mohlo projít, ale nevim jestli nenulovej inicializátor vyrobí jako atomic instrukci...
09:05 mornfall ani nevim jak by mohl
09:05 mornfall musí tam být extra příznak a zámek
09:05 xstill nemůže to vyrobit jako inicializovanej symbol, ne? Nebo měnitelné globální věci mohou být jen v BSS?
09:07 mornfall jo to by asi mohl
09:08 mornfall nakonec nejjednodušší je asi podívat se co to vyrobí za bitkód
09:08 mornfall počítám že tohle se s (ne)optimalizací měnit nebude
09:08 xstill to ne
09:12 xstill s tím indendentem už to vypadá skoro hezky
09:30 xstill i když se v tom pořád nedá vyznat
09:32 mornfall no, pořádně jsem si přečetl ten mail a nakonec jim to stačilo do mailu, zdá se... to jsem mohl udělat aj dřív :P
09:32 xstill :-)
09:33 xstill yaqwsx: fuj old-style cast (dios.cpp:389)
09:33 mornfall nicméně ten redakční systém co maj je asi z roku nula, má to nějakej vlastní filemanager a s každou verzí to chce asi milion příloh
09:33 yaqwsx To je cast na ty Enumy, že? Ano, stydím se
09:33 mornfall který sice nějak jde natáhnout z předchozí verze ale je to extra otravný proklikávat
09:34 yaqwsx xstill: BTW, nevíš jestli Evča odevzdala?
09:34 mornfall yaqwsx: to by už mohlo být v archivu vidět ne?
09:34 mornfall nebo až zítra?
09:34 xstill yaqwsx: právě dopisuje byla si vyprosit na studijním, že může odevzdat ve 3
09:34 yaqwsx Právěže není
09:34 mornfall omg :D
09:35 mornfall a že já nechávám věci na poslední chvíli
09:35 yaqwsx Mám takový pocit, že Paradise vychovává k dělá věcí na poslední chvíli....
09:36 xstill jakto? tys to před tím nedělal?
09:36 mornfall yaqwsx: já myslim že lidi co nejsou flákači jako my jsou ve formele... nebo na MIT
09:37 yaqwsx Obvykle jsem s prací trošku začal před deadlinem a pak ji odložil a dodělat před deadlinem. Teď začínám až před deadlinem.
09:37 mornfall xstill: nevim jak je to možný, ale ty indenty jsou na konci programu výrazně víc než 0 :-)
09:37 yaqwsx mornfall: Tak proč není Martin u nás?
09:38 mornfall yaqwsx: jako Jonáš? viděls ho někdy? :D
09:38 yaqwsx mornfall: Viděl, ale nevím na co tím narážíš...
09:39 xstill yaqwsx: ono to nic neříká o tom, že lidi co jsou ve formele nemůžou být flákači
09:39 mornfall na paradise je nezvykle upravenej, to s tím musí souviset
09:40 yaqwsx Ano, můj oponent je fešák, ale pořád nevím, jak si to vykládat.
09:41 mornfall yaqwsx: žehlí si košile... a češe se :P
09:41 mornfall to je spousta energie kterou by mohl vrazit do prokrastinace
09:41 yaqwsx mornfall: Takže říkáš, že on je flákač na práci, ale nefláká se co se týká domácích pracích, kdežto my flákáme všechno, jo?
09:42 mornfall :D tak něco
09:44 mornfall hm, první call to __sys_sched začne s indentem 0 jak by měl, nicméně poslední má indent 5?
09:44 mornfall někde utíká nějakej return
09:48 mornfall xstill: když se přesune entry na před call ale return zůstane ve funkci, tak __sys_sched bude ten indent těžce táhnout do mínusu
09:50 xstill jakto?
09:50 mornfall no __sys_sched se jako parametr call nevyskytuje
09:51 xstill každopádně moc nechápu jak to teď může být nesynchronizované
09:51 mornfall tomu vyrábí zásobník interpret
09:51 mornfall teda rámec
09:51 xstill aha
09:51 mornfall (což je myslím dobře, protože zrovna scheduler asi autotracovat nechci nikdy, tam si dopíšu trace ručně když ho budu chtít)
09:52 xstill jo, netracovat __vm*, __sys* a __dios* by asi dávalo smysl
09:52 mornfall no ne, já bych chtěl ovládat který call instrukce tracujou, ne který fce\
09:53 mornfall typicky chci vidět kde můj program volá __dios_cokoliv, ale co dělá ten __dios mě už nezajímá (dokud si to nezapnu)
09:53 xstill hm aha takhle
09:53 xstill to se bude docela blbě řešit protože __dios může volat něco z stdlib
09:54 yaqwsx Co kdybychom tedy zavedli to, že tracing si je vědom toho jestli je v diosu, a kernelu a dle toho se choval?
09:54 mornfall ten trace by mohl brát ještě +/- číslo ne na indent ale na umlčení
09:54 yaqwsx Nakonec jsem dospěl k názoru, že to spoustu věcí ulehčí a toto je další argument proč.
09:54 yaqwsx *proč ano
09:55 mornfall yaqwsx: jak to pozná?
09:55 mornfall resp. co tím přesně myslíš?
09:55 mornfall že každá __dios* funkce bude zvětšovat/zmenšovat nějaký globální počítadlo 'jsem v kernelu'?
09:55 yaqwsx +- nao
09:56 mornfall kde 'jsem v kernelu' počítám znamená na zásobníku kterej začíná __dios_sched
09:56 mornfall hm
09:56 mornfall teď vlastně nevim, tohle by šlo řešit mnohem jednodušeji
09:56 mornfall (stačí si to nastavovat v tom __dios_sched když vyskakuju/vracim se)
10:08 mornfall xstill: jo já vim proč to nelícuje, já mam vlastní scheduler se dvouma vláknama :D
10:08 mornfall hm, cat b.bc to jsem úplně nechtěl
10:09 mornfall jop s diosem to vypadá líp :-))
10:11 xstill mornfall: kde jsou v cli nastavený názvy příkazů (run, cc, …)
10:12 mornfall xstill: odvozují se z názvu struktury
10:13 xstill hm
10:19 mornfall právě mi došlo že to posouvání toho extra vektoru jde udělat mnohem jednodušeji, pushnul jsem to (jednořádková změna v cli.hpp tak to snad nebude konflikt s čímkoliv tam kutíš)
10:20 xstill v cli jsem zatím kutit nezačal
10:32 xstill uvažuju jestli nezintegrovat lart jako příkaz v divine
10:32 xstill ale zas on asi nemá závislost na libdivine teď
10:33 xstill mornfall: divinecc samostatný chceš zachovávat? (nejde ho teď přeložit)
10:34 mornfall vím o tom
10:34 mornfall asi chci, ale jako drop-in za clang/gcc
10:35 mornfall (nemazal jsem ho protože nevim jestli se bude editovat nebo psát od začátku)
10:37 xstill no ale rozbil jsi include
10:37 mornfall no rozbil jsem hlavně rozhraní cc::Compile
10:38 xstill to parsování -I tam bylo protože je je musíš explicitně povolit
10:38 xstill no v divine cc
10:38 mornfall aha, hm, jakto?
10:38 xstill no pokud chceš aby fungovali include na adresář fyzicky na disku tak o tom musí driver vědět aby ho ve VFS zpřístupnil
10:38 mornfall toho jsem si nevšim no
10:39 mornfall to je asi pravda, nenapadlo mě že to dělá jinak než že se podívá na -I/-isystem
10:40 xstill je pravda, že by to mohl dělat Compile
10:40 xstill hm, to je ale divný
10:41 mornfall nicméně přidat [-I{string}|-I {string}] do cc by mělo fungovat (pak dostaneš ty cesty explicitně ve stringovým vektoru)
10:41 xstill jo
10:43 xstill navíc to teď -I bla bere jako option -I a soubor bla
10:43 xstill což bude problém u všech dvouslovných parametrů pro CC1
10:43 mornfall to je celkově problém no
10:44 mornfall protože ty soubory potřebujem vytáhnout asi extra
10:44 mornfall a pokud nechcem parsovat celej commandline sami tak to asi přesně nepůjde
10:46 xstill jo, ono to totiž nefungovalo obecně ani v divinecc, jen to fungovalo s -I
11:02 xstill heh, to že to vyžaduje ten s literál je trochu zrádný
11:02 mornfall :P
11:03 xstill proč to vlastně nemůže fungovat bez toho
11:03 xstill ?
11:04 mornfall on možná podává ten string literál jako const char[N] a sežere to Args... protože to je lepší match než const char *
11:04 mornfall ale už si nepamatuju přesně
11:05 xstill to je možný
11:05 mornfall pravda asi bych mohl to Args... úplně zničit, protože to .add rozhraní je stejně lepší
11:05 mornfall (ono tomu totiž jde narvat všechny opšny do jednoho .add, jak to teď je)
11:06 mornfall ale je to divný protože na ten pattern kterej bere jako std::string se to chytne aj s string literálem
11:06 mornfall (teda ne-std:: string literálem)
11:15 mornfall prokrastinace mě jednou zabije :P curl http://sprunge.us/ZdVT
11:16 xstill wat :-D
11:25 xstill hm, pokud je něco blbě, tak se předpokladáná že Cc::run zavolá exit, nebo co má dělat, když nevrací žádnou hodnotu
11:25 xstill resp. nemělo by to něco vracet?
11:26 mornfall asi die() ne? to vyhodí výjimku
11:31 xstill no jo, ještě to trochu upravím ať to neabortí
11:32 yaqwsx xstill: Je Jiřík na FI/nesháněl se po mě? Psal jsem mu včera mail a ještě na něj nereagoval (ohledně paperu)
11:33 xstill yaqwsx: počítám, že má teď poradu vedení
11:34 xstill mornfall: máš tam patche na ty include a na to aby cc nesegvilo při selhání kompilace
11:34 mornfall xstill: logic_error by v panic() abortit měl, ostatní asi vesměs spíš ne
11:35 mornfall (nebo alternativně abortit když to není DieException nebo tak)
11:35 mornfall nebo to chytat v main(), cojávim
11:35 xstill teď to chytám v main v ui
11:35 xstill protože ten už má exitcode
11:35 xstill tak to mi dává smysl
11:36 mornfall ok
12:24 mornfall xstill: kdybys náhodou neměl nic lepšího, docela by se hodilo napočítat shasum runtime/ a zapisovat ho pak do libdivinert.bc
12:24 mornfall (asi v době výroby libdivinert_str)
12:25 mornfall budem pak moct vypisovat warning při linkování se 'špatnou' verzí
12:29 xstill no ten string se zatím nevyrábí ne?
12:29 xstill aha tenhle myslíš
12:30 mornfall DIVINE_SOURCE_SHA se vyrábí, ale nechceme celý tohle, fakt jen runtime/ tím se asi dost ušetří
12:35 xstill jo,
12:36 xstill koukám, že libunwind není moc dobrej v zjišťování backtrace
12:37 xstill teda jmen
12:55 xstill no on ani linuxovej backtrace() to nezvládá
13:02 xstill to je na nic
13:04 mornfall teoreticky by sis mohl přilartovat __md_functions do divinu a hledat to podle toho (ale kdyby něco nemáš to ode mě :P)
13:06 xstill ono to nějak jít musí, protože gdb to zvládne, ale už mě přestalo bavit si s tím hrát
13:08 mornfall gdb to tahá z dwarfu
13:08 yaqwsx joined #divine
13:21 xstill jo, takže v release to stejně dost možná nedá
16:53 yaqwsx joined #divine
17:54 mornfall Viki někdo ubližoval javou...
17:54 yaqwsx Cože?
17:54 mornfall string.compare( x ) == 0
17:55 yaqwsx Ajaj :D
17:55 mornfall nejlepší je to teda ve verzi compare( "" )
17:58 xstill to je trochu smutný, napiš jí ať si to opraví
18:13 xstill mornfall: k čemu je ta šaráda s version-generated.cpp.check? (to .check myslím)
18:14 mornfall xstill: to kdybych si pamatoval :D může to být workaround na něco co už je v cmake léta opravený
18:14 xstill hm, a hlavně nevidím kde se z toho stane to .cpp
18:14 mornfall v tom skriptu se vyrobí
18:15 xstill a když ho smažu tak už ho neumí vyrobit
18:15 mornfall jo už vim
18:15 mornfall no to je totiž tak, že ten .check se vždycky přegeneruje, ale není to vstup ničeho
18:15 mornfall kdežto to .cpp se přepíše jen když se změnil jeho obsah
18:16 xstill no já nevidím kde by se ten .cpp stvořil
18:16 xstill krom toho do add_library cpeš oba
18:16 mornfall říkám že v tom skriptu
18:16 xstill ne, na to je tam ještě .cached
18:16 xstill on ten check je navíc .output
18:17 mornfall .output? myslíš OUTPUT v add_custom_command?
18:17 xstill jo
18:18 xstill jakože ten skript generuje .chached a jeho output jde do .check
18:18 xstill ale kde se bere ten .cpp to fakt nevím
18:18 mornfall protože neumíš číst shell, asi
18:18 mornfall je tam spousta > $where
18:18 mornfall to $where je to .cpp
18:19 mornfall resp. >> $where
18:19 xstill ha
18:19 xstill ale pořád platí, že .cpp a .check mají stejný timestamp i obsah, ne?
18:19 mornfall ne
18:20 xstill jen teda .check je označenej jako SYMBOLIC, což ale jestli to dobře chápu říká cmake, že vlastně neexistuje
18:20 xstill jakto?
18:20 mornfall .check má novej timestamp pokaždý když pustíš make, .cpp má timestamp poslední změny zdrojáků
18:20 xstill aha
18:20 xstill už to chápu
18:20 xstill asi bych měl jít radší spát
18:22 mornfall (a Viki teda nenapíšu protože jsem to rovnou opravoval)
18:22 xstill takže to je celá sranda proto, že cmake neumí spustit command bez výstupu?
18:22 xstill no to není moc pedagogické
18:23 mornfall na pedagogiku bude ještě spousta příležitostí
18:24 mornfall kdybych měl důsledně trvat na stylu tak nedělám nic jinýho
18:24 xstill tohle není ani styl
18:25 mornfall no je
18:25 mornfall co jinýho? korektní to je
18:29 xstill nojo, tvoje definice stylu je širší než moje
18:30 mornfall jak bys to zařadil ty?
18:31 mornfall (netvrdím že všechny stylistický chyby jsou stejně špatný, ale víc mi vadí ty který vypadaj jako 50 řádek kódu kterej by se vlastně mohl smazat než atypickej zápis)
18:33 xstill styl je pro mě spíš formátování kódu, tohle bych označil za jako schopnost použít ten konkrétní jazyk efektivně a čitelně
18:34 xstill btw. existuje nějakej ekvivalent bývalého make VERBOSE=1?
18:34 mornfall ninja -v asi
18:35 mornfall neměl by být problém přidat do Makefile nějakej $(if...) nebo jak se to píše
18:35 mornfall podle $(VERBOSE)
18:35 mornfall aha houby, to se volá skrz cmake --build
18:35 mornfall -- -v
18:39 mornfall cmake --build $(OBJ)debug --target $* -- $(if $(VERBOSE),-v)
18:39 mornfall ^ takhle se to píše
18:40 xstill jo
18:40 xstill darcs query zdá se už neexistuje, takže ten výpočt sumy moc nefunguje
18:41 mornfall jo, s/query/show/
18:42 xstill nejspíš chceme darcs show files
18:43 mornfall hm, to s tím verbose je taky blbě ovšem :-) to funguje zase jen když je vybranej ninja jako builder
18:44 mornfall s gnu make to pak místo buildu vypíše verzi...
18:44 xstill jo
18:47 mornfall nějak jsem to implementoval a pushnul
18:47 mornfall (VERBOSE)
18:48 mornfall jde to zmást ale v rozumných případech to snad bude fungovat
19:14 xstill hm, jak dostanu do metadat string? MDString jsem sice našel, ale vůbec nechápu jak ho použít
19:16 xstill aha, už vidím
19:30 xstill hm, str->getString().str()
19:31 xstill někdy si říkám, že bych sám sobě neuznal úkoly možná
19:32 xstill příště bychom ale mohli do pokročilého C++ dát něco s LLVM :-D
19:32 xstill ať je sranda
19:33 xstill jako to že zapsat string do metadat je něco na co člověk potřebuje půl hodiny progrmaovat a pak to ještě segví je docela smutný
19:34 xstill hm, segví to protože nedávám pozor
19:40 yaqwsx Nope, žádné LLVM v pokročilém C++ - chceš, aby ti uteklo ještě více lidí?
19:41 xstill jen jako projekt :-D
19:44 yaqwsx Tak pak jo
19:44 xstill musím hodit compile do .cpp, divine.cpp se kompiluje hrozně dlouho
19:49 xstill mornfall: máš tam patche
19:50 xstill hm, počkej
19:53 xstill aha tak dobrý, můžeš si to pullnout
22:04 mornfall runtime/libcxx_include_future_str.cpp:4:1: warning: string literal of length 71995 exceeds maximum length 65536 that C++ compilers are required to support [-Woverlength-strings]
22:04 mornfall to jsem si doteď nevšim :-)
23:00 mornfall xstill: na pohled mi přijde, že když vezmeš starý libdivinert.bc a použiješ ho k překladu nějakýho x.c, tak výsledný x.bc bude mít nový sha a ne to z libdivinert.bc?
23:14 mornfall (ty 'private:' jsou teda skutečně otravné, nejde z překladače vymlátit kontext)
23:15 mornfall a ani mu nejde vnutit vlastní (zatím jsem to private zrušil)
23:16 mornfall hm, a taky jsem chtěl někdy spát :\

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