Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2013-10-01

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

All times shown according to UTC.

Time Nick Message
07:53 spito joined #divine
09:04 mornfall target_link_libraries(clang clangFrontendTool clangAST clangAnalysis clangBasic clangCodeGen clangDriver clangEdit clangFrontend clangLex clangParse clangEdit clangARCMigrate clangRewriteCore clangRewriteFrontend clangSema clangSerialization clangStaticAnalyzerFrontend clangStaticAnalyzerCheckers clangStaticAnalyzerCore )
09:53 spito tools/divine verify --owcty -w 1 --compression=none --property=LTL --no-reduce ../test/data/test2.dve
13:09 xstill spito:  --disable-mpi-f77  --disable-mpi-f90
16:44 spito joined #divine
19:43 mornfall anna opět umřela, zdá se
19:43 mornfall xstill: vypnul jsi hydru po tom posledním deploy?
19:44 xstill ne :-(
19:44 xstill sakra
19:44 mornfall začíná to vypadat že nezvládá zátěž
19:44 xstill přehodíme home na anteu ne?
19:44 xstill aď to jede aspoň nějak
19:45 xstill nic nám nezaručí že nebude padat i s menší zátěží
19:45 xstill jen bych teda anteu teď restartoval ať má nový kernel
19:46 mornfall asi
19:46 mornfall kdoví
19:46 xstill můžeš mi dát instrukce co udělat až přehodím home na anteu?
19:46 xstill abych tě nemusal schánět
19:46 xstill a nahodil to co nejdřív
19:47 mornfall no, potřebuješ přepsat v /etc/nixos/config/{anna,antea}.nix v nfs.withNFS { ... enable = XXX; }
19:47 mornfall na antee na enable = true; na anně enable = false;
19:47 mornfall a pak deploy
19:48 xstill a to je vše?
19:48 xstill ok to je jednoduché
19:48 mornfall snad :-)
19:49 xstill já tu anteu teda restartuju, v nejhorším nenajede a nahodím je obě
19:49 mornfall jo, to asi nedělá rozdíl
19:49 mornfall jo, http://pastebin.dqd.cz/QQab/ kdyby někoho zajímalo jak to bylo s tím bugem v owcty ;-)
19:52 xstill hm, to asi nedávám
19:52 xstill jakej smysl tam má to, že base je teď void*?
19:54 mornfall no, casty na/z void * jsou dovolený
19:54 mornfall cast z uint32_t* na uint64_t* ne tak docela
19:54 xstill z hlediska aliasingu?
19:54 mornfall jo
19:55 mornfall ono technicky podle standardu, reinterpret_cast pointru na jinej pointr možná ani není definovanej
19:55 xstill (jinak tam máš old-style-cast)
19:55 xstill aha
19:55 mornfall hm, kde?
19:55 mornfall aha kruci
19:55 mornfall tam patří static
19:56 mornfall ten old-style tam je kvůli pokusu s volatile :)
19:56 mornfall když jsem zjišťoval jestli to je fakt strict aliasing
19:56 mornfall jinak teda GCC fakt spočítalo, že to je if ( 0 ) a smazalo
19:56 xstill jak k tomu došlo?
19:57 mornfall no, on si vyrobil temporary na výsledek těch inF() a inS()
19:57 mornfall to je lokální proměnná, typ bool nebo tak něco
19:57 mornfall ta proměnná se zmergovala s tím T t = T(); v BitField::...::get()
19:57 mornfall to si schoval do registru
19:58 mornfall bitcopy normálně proběhlo, zapsalo výsledek do té temporary
19:58 mornfall ale gcc tam už nevygenerovalo žádnej load
19:58 mornfall protože podle strict aliasing rule není povinný kontrolovat jestli mu pointr jinýho typu nepřepsal proměnnou na zásobníku
19:59 xstill aha
19:59 mornfall a protože ten pointr se dereferencoval jako uint64_t* tak sice v proměnný byla dobrá hodnota
19:59 mornfall ale v registru ne :-)
19:59 xstill zákeřný
20:00 mornfall a registr je to co se počítá, napropagoval tam konstantní nulu a if smazal :-)
20:00 xstill měli bysme si dělat sbírku toho co nedělat...
20:01 xstill jo a takovýhle použítí union jsem ještě neviděl
20:01 mornfall no, těch reinterpret_cast-ů tam máme docela dost
20:01 xstill hm, pravda
20:01 mornfall to je právě explicitní aliasing
20:01 mornfall problém trochu je, že procastovat to void * nepomohlo
20:01 mornfall což by podle standardu IMHO mělo
20:02 xstill a typ* -> void* je teda static_cast?
20:02 mornfall jo
20:02 mornfall aj obráceně
20:02 mornfall +    uint32_t &word() { return *static_cast< uint32_t * >( base ); }
20:02 mornfall vrátim ho aj do konstruktoru
20:03 xstill hm, a teda static_cast< uint32_t * >( static_cast< void * >( x ) ) je teda jako v pořádku nebo je to jen jiný zápis špatného castu?
20:03 xstill (kde decltype( x ) != int32_t* )
20:04 mornfall no to mi právě není jasný
20:04 mornfall já si myslim že by to mělo být OK
20:04 mornfall ale kód se vygeneruje stejnej, a mám trochu pocit že gcc to asi ani nerozlišuje
20:05 mornfall ono hlavně mi není úplně jasný jestli tohle fakt můžeš nebo ne :-)
20:05 mornfall protože char * (a void *) může aliasovat cokoliv
20:05 mornfall ale to nutně nemusí znamenat, že skrz to můžeš vyrobit aliasy jiných typů
20:05 xstill hm, je to až moc komplikovaný
20:06 mornfall tak, on to je trochu podvod
20:06 mornfall protože třeba memcpy je vždy OK
20:06 mornfall má parametr void * (resp char *, to vyjde na stejno)
20:06 mornfall a protože to je intrinsic tak si na to může hrabat jak chce
20:06 mornfall problém nastane až když se to všechno nainlinuje do jedný fce
20:08 mornfall když to interpretuju striktně, tak v podstatě existence jakýchkoliv dvou ukazatelů *do stacku* na stejný místo, různýho typu je špatně
20:08 mornfall pokud v tom místě stack není union příslušných typů, kdy to je OK
20:08 mornfall stacku*
20:09 mornfall objekty na haldě maj ještě nějakou výjimku, aby toho nebylo málo ;-)
20:09 xstill takže problém je jen na stacku?
20:09 xstill ach ji
20:09 xstill *jo
20:09 mornfall měli bychom si nechat koupit standard
20:09 mornfall po internetu se válí nějaký drafty občas
20:09 mornfall ale ...
20:10 mornfall začínám mít pocit, že náš lab bez standardu C++ přestává fungovat
20:10 xstill tak pro ten pocit, "hele tady máme standard C++11"
20:10 xstill dáme ho hned vedle bible
20:10 mornfall :D
20:11 xstill a necháme ho přečíst novým členům labu tak jako Jiříkovu dizertačku a tu bibli :-D
20:12 mornfall to abychom k tomu rovnou dodávali aj ampuli s kyanidem
20:13 xstill :-D (tohle jsem málem nepřežil smíchy)
20:13 xstill tak konec legrace
20:13 xstill musím se připravit na zítřejší funcko
20:14 mornfall :-)
20:14 xstill Jiřík tam dal úchylný příklady
20:14 xstill jako 'pair = uncurry (distr . ((.) (curry id)))'
20:21 xstill kde teda distr je <*> tuším redukovanej typově na funkce
20:21 xstill teda na ->
20:21 xstill je to docela hnus
20:22 mornfall nevim kde na to chodí
20:22 xstill asi od Libora
20:22 xstill ale tohle mohl podle mě vynechat
20:26 xstill jinak po 12 krocích a 10 minutách mi vyšlo 'pair (f, g) z = ((f z), (g z))'
20:26 xstill ale dalo mi to zabrat a to mám učit studenty a čekat že to poberou?
20:26 mornfall lambdabot to umí
20:27 mornfall curry id je vždycky podezřelý
20:27 xstill tak jasně, to znám
20:27 xstill lambdabot umí převádět point-free?
20:28 xstill ono je to jako algoritmizovatelný teda
20:28 xstill takže proč ne
20:28 xstill jen jako učit to studenty mě nepříjde dobrý, zvlášt tenhle příklad
20:29 xstill pokud už bych něco takovéhleho jako ten pair chtěl tak asi chci použít Control.Arrow než si to bastlit
20:30 mornfall tak hlavně nevidím proč to cpát do pointfree
20:30 mornfall pair (f, g) z = ((f z), (g z)) je normálně čitelný a použitelný
20:30 xstill no právě
20:30 mornfall o tom že distr není v prelude ani nemluvím
20:31 xstill to není, ale mě zrovna tahle funkce příjde dost neintuitivní
20:31 mornfall tak je to podobná haluz jako funkce typu (.) (.) nebo (.) . (.)
20:31 mornfall exercise in futility
20:32 mornfall to můžou v podstatě recitovat z malýho prince ... :-)
20:32 xstill ha, naučil jsem se nové anglické slovíčko
20:34 xstill jo a (.)(.) je nějaká divná už podle typu
20:35 spito left #divine
20:36 xstill on se nás lekl
20:36 xstill (jsem nevěděl že tu je)
20:40 mornfall on možná taky ne
20:42 xstill asi by bylo na čase spát, zítra od 8 applied crypto...
20:44 mornfall hm, to má aj přednášky?
20:58 xstill to má jen přednášky
20:58 xstill + úkoly
20:58 mornfall hm, já si pamatuju jen domácí úkoly
20:59 xstill :-D to by to mělo mít jen ty úkoly?
20:59 mornfall cojávim :-)
20:59 mornfall mi to přišlo docela fajn i tak
20:59 xstill tak asi jo
20:59 mornfall člověk si na to v klidu sedl
20:59 xstill na první přednášce toho moc zajímavého nebylo
21:00 xstill teda vlastně 2 přednáškácj
21:03 mornfall on ten standard snad neexistuje jako hardcopy
21:04 mornfall ansi aj iso to maj jen jako pdf
21:07 mornfall hm, BSI prodává hardcopy za 500 liber
21:09 xstill uf
21:09 xstill no teda
21:10 mornfall 320 NZD u standards.co.nz
21:10 mornfall to je tak třetina
21:12 xstill co to sakra má Jiřík za styl materiálu k IB015 že když zmenším stránku tak mi běžný odstavec vyteče ven
21:16 xstill asi je na čase přidat víc ploch do xmonadu
21:17 xstill tak a já fakt končím dneska
21:19 mornfall :-) dobrou
21:19 mornfall (antea najela zdá se)

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