Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2013-09-21

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

All times shown according to UTC.

Time Nick Message
09:12 spito joined #divine
09:54 xstill byl by nějaký důvod neimplentovat assert takto: #define assert( x )  __assert( !!x, /* ... */ )?
09:54 xstill (jde mi o to !!x)
09:57 mornfall asi není :-)
10:05 xstill ono totiž skoro každé další řešní má nějaké nevýhody
10:05 xstill i když vlastně kdyby ten __assert byl definovaný __assert( bool, /* ... */ ) tak by to bylo totéž i bez !!
10:06 xstill totiž ta implementace ve wibble zase volá copy konstruktor, což není ideální
10:06 xstill a reference tam být nemůže kvůli bitfieldům
10:22 mornfall const referenci na bitfield nejde vzít?
10:27 xstill nevím, stojí to za zkoušku :-P
10:29 xstill zdá se že jde
10:29 xstill const reference je dost magická věc
10:30 xstill ona dokáže dělat i cast zdá se
10:31 mornfall je to magická věc :)
10:37 xstill pokud někdo dělá const_cast na const referenci tak se asi může docela divit...
10:53 mornfall to jde? :)
10:53 mornfall (jinak než *&...)
10:54 mornfall hm
10:57 spito mornfall: pokud se do nějaké funkce cpe něco hodnotou, ale ta funkce na to nesahá, je to to samý, jako kdyby se to tam cpalo konstantní referencí?
10:57 spito tělo funkce/metody je dostupné v místě volání
10:58 xstill spito: bude se volat copy konstruktor nejspíš
10:58 xstill takže to není to samé řekl bych
10:59 xstill ono nevýš jaký má ten copy konstruktor efekty, takže ho nemůžeš jen tak vynechat asi
10:59 mornfall není to to samé
11:00 mornfall záleží jestli je k mání tělo toho konstruktoru hlavně
11:05 xstill hm, a má const reference nějakej overhead oproti volání hodnotou? (protože reference bude mít overhead tak jako pointer asi)
11:08 mornfall to je otázka :-)
11:08 mornfall když máš tělo, tak spíš ne
11:09 mornfall když je to reference na malou věc a tělo nemáš, tak tam overhead bude
11:09 spito jenom že v generátoru se v metodě read posílá vektro hodnotou
11:09 spito *vektor
11:09 mornfall metoda read
11:09 mornfall prosimtě
11:09 mornfall :D
11:09 mornfall navíc to je vektor stringů nebo něco
11:10 spito ? asi jsem vypadl z kontextu
11:10 mornfall to je performance sensitive jak noha :-P
11:10 mornfall no, že nemá smysl řešit kolik nanosekund navíc trvá volání read, který se provede tak jedno za běh divinu
11:10 mornfall jednou*
11:13 mornfall (ok, předává se to pro každý vlákno zvlášť, ale furt je to pár cyklů CPU)
11:20 spito mornfall: jenom jsem se ptal :P
11:21 spito nemusíš ze mě hned dělat nesvéprávného :D
11:39 spito vám se divine přeloží?
11:42 xstill gcc 4.7.3 nebo clang
11:42 spito takže s 4.7.2 to nedám?
11:42 xstill ne
11:43 spito a to proč?
11:43 xstill leda bys opravil ten ICE
11:43 xstill v llvm někde v lambdě
11:43 xstill ale this-> to není
11:43 spito tak to jo
11:47 spito jak přemluvím nixos, aby mi chtěl dát gcc4.7.3
11:47 spito ?
11:48 xstill nix-env -iA nixpkgs.ghc47 asi
11:48 xstill 4.7.3 je teď výchozí
11:48 xstill mornfall: to není úplně ideální řešení :-P
11:49 mornfall don't you say :-)
11:50 mornfall ale nemá smysl zabývat se rozbitým překladačem, IMHO
11:50 spito xstill: to nefunguje
11:50 mornfall 13:50:35 | xroc@ant:~ -> gcc --version
11:50 mornfall gcc (GCC) 4.7.3
11:50 mornfall nix-env -i gcc-wrapper-4.7.3
11:50 mornfall nejspíš
11:51 spito jo, dík, to už funguje
11:52 mornfall nicméně nix-env -iA nixpkgs.gcc47 by fungovat mělo
11:52 xstill samzořejmě že to nefunguje když napíšu ghc místo gcc
11:52 mornfall (to že Vláďa fičí na Haskellu je druhá věc)
11:53 spito stejně se mi to nepřeloží....std::atomic nesežere, že Fork a Leaf nejsou poznačený jako noexcept
11:53 mornfall to budeš muset opravit :-)
11:54 spito no to já vim
11:54 spito jenom se ptám, jestli se vám to děje taky
11:54 mornfall já už nějak gcc nepoužívám
11:54 mornfall kouknu do hydry
11:54 mornfall která se zase odswapovala do teplých krajin, zdá se
11:55 xstill no, jestli builduje RelWithDebugInfo tak to asi docala zabíjí pheme
11:55 xstill vzhledem k té 4GB cgrupě
11:55 xstill nebo teda spíš sebe než pheme
11:56 xstill hm, potřebuju type trait na odlišení enum od enum class
11:59 xstill naštěstí už to je na stackoverflow
12:03 mornfall co to zase koumáš? ;-)
12:04 xstill nic co bysme nutně potřebovali :-P
12:04 xstill uvidíš
12:04 xstill až pošlu mmap
12:04 mornfall to su zvědavej teda
12:04 mornfall typesafe serializace?
12:05 xstill to by bylo taky super...
14:05 xstill máme spoustu warningů v tabulkách
14:06 mornfall :-))))
14:17 xstill wtf linker
14:18 xstill údajně mi v libdivine chybí symbol kterej v libwibble je definovanej když se podívám přes nm
14:26 mornfall hm
14:29 spito left #divine
14:36 xstill asi potřebuju na čerstvý vzduch
14:36 mornfall :-)
14:36 mornfall já možná taky
14:46 spito joined #divine
15:06 spito left #divine
15:09 spito joined #divine
16:30 spito mornfall: proč je Tagged v anonymním namespace?
16:30 spito hashcell,h
16:51 mornfall cojávim
16:51 mornfall protože to původně byla nějaká hrozně pomocná věc
16:51 mornfall proč je fmap v hashset.h :-)
16:51 mornfall šup, uklidit ;D
16:52 spito kam uklidit?
16:52 spito no gcc mi na anonymní namespace řve warning
16:52 xstill co je špatnýho na anonymním namespace?
16:53 spito gcc řve
16:53 xstill hožná, že je v .h
16:53 spito mmt, hovor s máti...
17:04 spito 9:36 minut...no rozpovídala se
17:14 xstill super, mám špatné pořadí .a při linkování
17:15 xstill že to do teď nevadilo
17:21 xstill co je sakra divine.simple?
17:31 xstill už jsem ten linker vyřešil
17:35 spito g++ se vyjádřilo:
17:36 spito error: function ‘divine::NewType<T>::NewType() [with T = divine::Lake::Pointer]’ defaulted on its first declaration with an exception-specification that differs from the implicit declaration ‘divine::NewType<divine::Lake::Pointer>::NewType()’
17:36 spito hashset.h:29          NewType() noexcept = default;
17:36 spito co je na tomhle řádku špatně?
17:38 xstill nevím jestli to jde napsat
17:38 xstill nebo některý z fieldů nemá noexcept konstruktor
17:38 spito jde
17:38 xstill ok
17:38 spito to jsem právě zkoušel
17:39 xstill pak a Pointer má noexcept?
17:39 xstill -pak
17:39 spito no, zkusím...
17:39 spito i když, tam jsem ho dával...
17:40 spito a ani tohle nevadí
17:41 spito problém je ale, že tuhle chybu nejsem schopný reprodukovat
17:41 spito - na nějakým malým příkladě
17:41 xstill já takovou chybu nikdy neviděl...
17:41 spito mornfall: nesetkal ses s tím nekdě?
17:42 xstill hm, http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51295
17:48 mornfall :-)
17:48 mornfall spito: asi budeš muset noexcept-ovat destruktory
17:49 spito no, to totiž taky nefunguje
17:50 mornfall tak to je ještě něco jinýho třeba :)
17:50 xstill nechcete mi tvrdit, že divine jde kompilovat jen clangem s libc++?
17:51 mornfall nechceme
17:51 spito tohle je problém std::atomic, který chce jenom noexcept
17:51 spito no a noexcept se táhne jak smrad celým kódem...
17:51 spito podobně jako const
17:51 spito (a jediný výhoda oproti const je ta, že není kontrolován překladačem)
17:52 mornfall noexcept možná i je, throw() není
17:52 spito není http://en.cppreference.com/w/cpp/language/noexcept_spec
17:53 xstill hm, explicit nezapisuje do hlavičky generátor
17:53 mornfall aha, ono se to redukuje na throw(), v podstatě
17:55 xstill hm, explicit je vůbec rozbitej
17:55 spito mornfall: tak jsem to vyřešil
17:55 spito "= default" se musí přepsat na "/("
17:55 spito "{}"
17:56 xstill protože sizeof( wibble::Unit ) == 1
17:56 mornfall :-))
17:56 spito (ale netuším, proč to na nezávislém příkladu funguje, ale v divine nikoliv)
17:56 xstill takže momentálně asi funguje jen s --probabilistic
17:56 mornfall sizeof moc nemůže být nula
17:56 mornfall jedině snad void
17:56 spito asi magie....temná....
18:02 spito jde nějak nastavit, aby se mi nevypisovaly žádné warningy?
18:03 spito WARNING: OFF nepomohlo
18:03 xstill nejde
18:03 xstill musal bys upravit cmake
18:04 xstill warning OFF vypíná jen Wexra
18:05 spito bude tag znaménkový, nebo neznaménkový?
18:05 spito nebo podle nálady?
18:05 xstill já bych ho dal neznaménkový...
18:06 xstill nevím proč tam Mornfall dal int
18:06 spito jenom že je všude znaménkový a mornfall nemá unsigned zrovna rád
18:06 spito a v assertu se mi dostane krásného varování, který se hodí obzvlášť, pokud hledám chyby
18:06 xstill to nemá, ale reději bych se vyhnul znaménkovému bit-fieldu
18:07 xstill jako ten field je uint64_t...
18:10 mornfall kde je znaménkovej bitfield?
18:10 spito hashcell.h:120
18:11 mornfall to není bitfield
18:11 spito no to já vim
18:11 spito ale způsobuje mi to varování
18:11 spito a proto to oddělám
18:11 mornfall jaký?
18:12 spito znamínkový
18:12 mornfall ...
18:12 spito :D
18:12 mornfall tos to upřesnil
18:12 spito no porůznu je v kódu kupa porovnání, přičemž všechny tyhle porovnání jsou oproti neznaménkovým typům
18:14 mornfall unsigned is an abomination in the eyes of God
18:15 spito tedy mít všechno signed?
18:15 spito všechno = všechno, co jde
18:15 mornfall ale budiž, když ti nevadí že se budeš smažit v pekle
18:15 mornfall :-]
18:15 spito ne, tam se budu smažit už za tolik věcí, že mi je tohle asi jedno ...
18:15 xstill tak tady je stejně problém že se ti to zařízne na 16 bitů
18:15 xstill takže tě ten 32. fakt nezachání
18:16 spito no jo, ale buď budu psát všude přetypování, nebo to sjednotím
18:16 mornfall no, ořízne se ti to na tagBits bitů
18:18 spito pool.cpp existuje proč?
18:18 mornfall kdoví
18:19 mornfall zeptej se ho :-)
18:19 mornfall řekl bych že historické důvody
18:19 mornfall smazat
18:19 xstill já smazal tools/simple.cpp
18:20 mornfall to ještě existuje :-))
18:20 mornfall já to asi jen vyhodil z cmake
18:20 xstill dokonce i tam to bylo
18:20 xstill jako optional target kterej se nebuilduje
18:21 mornfall dokonce
18:21 xstill podle toho kódu bych řekl že to nešlo zkompilovat už před rokem
18:28 xstill hm, mám bug v instanciaci
18:33 xstill a fakt hloupý
18:38 mornfall minimální debug build (derivace) divinu má 900M
18:38 mornfall to je docela dost
18:40 mornfall skoro se mi zdá reálný, že to komprimuje dýl než hodinu a proto to timeoutuje
18:42 xstill minimal ne snad
18:42 xstill a nemělo by to timeoutovat jen pokud není výstup?
18:42 mornfall no on není
18:43 mornfall jako ono to nic nepíše tu hodinu
18:43 mornfall resp. teda ty min buildy to asi stihne
18:53 xstill mornfall: stihnul jsi se už podívat na to libc++?
18:55 mornfall nestihl, ale ještě to snad tenhle víkend dám
18:55 xstill :-)
19:09 xstill sakra já jsem ještě chtěl v tom MMapu vyhazovat výjimky místo assertu při chybě otevírání
19:09 xstill mornfall: ignoruj prosím ten poslední patch bundle
19:32 xstill je to tam opravené
19:36 mornfall hm, není lepší ten enable_if narvat do return typu?
19:37 mornfall (v operator&, |)
19:37 xstill asi je, nevím proč jsem ho tam dal takhle
19:41 xstill předělat?
19:41 mornfall přidat pak, já to hned pushnu
19:41 xstill ale ono to asi ničemu nevadí takhle
19:42 mornfall tak, v zásadě ne, jen to má dva šablonový parametry a asi z toho budou zbytečně zmatený chyby
19:42 xstill hm, to je možné
19:42 xstill jsem to tak napsal asi kůli tomu, že jsem vymínal konstruktory před tím
19:42 xstill a tam to asi jinak nejde
19:43 xstill takže jsem nad tím ani nepřemýšlel
19:43 xstill (bez toho to byl pěkný bordel)
19:44 mornfall :-))
19:45 mornfall no, máš to tam
19:45 mornfall hydra je rozbitá protože pheme nemají misto
19:45 mornfall a tak
19:45 xstill jako na disku?
19:45 mornfall snad to nějak brzo vyřeším
19:45 mornfall j
19:47 xstill už to přilo, dík
20:08 spito hmm, tak dnes už patch nepošlu
20:08 spito dneska se musim koukat na film :D
20:21 mornfall těžkej život, fakt :)
20:21 mornfall včera hospoda, dneska film

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