Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2013-11-25

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

All times shown according to UTC.

Time Nick Message
07:51 spito joined #divine
09:28 mornfall xstill: víš o tom, že llvm/info.sh v první iteraci vyrobí test/llvm_examples, a v druhé už kopíruje do test/llvm_examples/llvm ?
09:29 mornfall xstill: on ten test totiž prochází jen když máš starý test/llvm_examples :-P
09:31 mornfall (resp. to dělá makefile)
10:43 xstill mornfall: nevím
10:46 mornfall http://divine.fi.muni.cz/~xrockai/divine-testmatrix.html :-) -- nadpisy jsou mimo, ale ten červenej sloupec je timed
11:19 xstill kdybych tam něco viděl tak by to třeba bylo dobrý :-D
11:19 xstill (kromě toho scrollbaru uprostřed)
11:24 mornfall co máš za browser? :D
11:24 mornfall hm, jestli máš https redirector tak to rozbije
11:35 xstill aha, mám
11:35 xstill asi to nejde opravit na tvé straně :-D?
11:36 xstill už tam něco vidím
11:36 xstill ale teda furn mám jetej scrollbar, ale to asi nevadí
11:36 xstill je to celkem dost zelený :-)
11:37 xstill hezký dokonce jde prokliknou výsledky
11:38 xstill mornfall: přijedeš zítra, nebo už konzertuješ?
11:38 mornfall přijedu
11:39 mornfall koncert až příští týden
11:39 mornfall mohl bych zaplatit tu Jollu
11:39 mornfall jen teda dostávat věci před vánocema je otrava, to budou mít všichni doručovatelé šrumec
11:41 xstill kdy ji budeš mít?
11:41 mornfall nevim, 3-4 týdny od teď píšou
11:41 xstill jinak to se hodí že příší týden nepřijedeš já budu moct stejně až od 12
11:41 xstill asi jdu uplácat to nepřepisování instancí
11:42 mornfall jo, to by všemu pomohlo :)
11:42 mornfall to info mám spravit nebo to uděláš?
11:43 xstill no teoreticky můžu ale teď se mi nechce
11:43 xstill ještě bych musal pochopit co je špatně
11:43 mornfall cp foo bar -- když je bar adresář, vyrobí foo/bar
11:43 mornfall cp -R teda
11:43 mornfall cp -R ../examples/llvm llvm_examples (llvm_examples neexistuje: vytvoří llvm_examples)
11:43 xstill aha, jo (vyrobí bar/foo ne?)
11:43 mornfall (llvm_examples existuje, vytvoří llvm_examples/llvm)
11:44 mornfall jo, bar/foo
11:55 xstill ze stringstramu asi nevydoluju data přímo, bez kopírování, co?
11:58 xstill aha podle stackoveflow je to blbost
11:58 mornfall to zas tak moc nebolí
11:58 mornfall (ta kopie)
11:59 xstill asi ne
12:03 VojtaHavel joined #divine
12:03 xstill VojtaHavel: http://divine.fi.muni.cz/~xrockai/divine-testmatrix.html
12:04 VojtaHavel dík :-)
12:04 VojtaHavel left #divine
12:05 xstill (aneb jak se dva informatici v jedné místnosti baví přes IRC)
12:37 xstill ha, už to zdá se funguje
12:38 xstill aha ale nebude to fungovat úplně
12:38 xstill jak zjistím v C++ jestli soubor existuje?
12:39 mornfall ve wibble je nějakej stat
12:39 mornfall nebo access
12:39 mornfall něco takového
12:39 xstill aha, takže C++ to samo o sobě neumí? Ten stat funguje i na win?
12:41 xstill hm, zdá se že ifstream by měl jít otevřít a pak se zeptat na good
12:41 xstill (stejně ho otevírám)
12:43 xstill skusím mu zákeřně smazat soubor
12:43 xstill *zkusím
12:43 xstill jo funguje to
12:45 xstill hm, ten select.cpp dává clangu pořát dost zabrat
12:46 xstill paměťově
12:46 xstill gcc je v pohodě
12:46 xstill ale clang je schopný na tom vyžrat skoro 4GB
12:49 mornfall no, přijde mi žes to možná trochu přehnal na druhou stranu, dobrá polovina fcí má 2 řádky :-)
12:50 xstill no tak mě se je nechtělo nějak složitě řešit různě žejo
12:52 mornfall tak, ten emitFinalCode mohl klidně zůstat inline ne?
12:53 xstill pak bych musal řešit ten call na něj
12:54 mornfall nj, finals.has, kdyby finals byl set :-)
12:54 mornfall teda finals.count
12:54 xstill neříkam že to je těžký, jen že jsem línej
12:56 mornfall jinak v čem je rozdíl mezi FixArray a vector? (krom toho že má místo back_inserter appendArray?)
12:56 mornfall fakt mi přijde že to je vektor bez push_back
12:58 xstill tak appendArray dělá kopii, a vůbec nemá to milion věcí okolo jako vektor
12:58 xstill a tak se mi to líbilo
12:58 xstill ale teď musím na oběd
12:58 mornfall no, to sice nemá, ale datově to je to stejný
12:58 mornfall takže tím že to ty věci nemá nic neušetříš
13:00 mornfall hm, jinak tam máš teda spoustu volání konstruktorů navíc :-) proti vektoru
13:01 mornfall (jakože default-konstruuješ objekty který pak hned přepíšeš)
13:38 xhavel1 joined #divine
13:40 xhavel1 stavovy prostor zeno.xml vypada s fairness podezrele stejne jako s vypnutou fairness
13:41 mornfall to bych tipoval na chybu v instanciaci :-)
13:41 xhavel1 takze divine/instances/definitions.h:542?
13:42 mornfall to asi taky
13:42 mornfall otázka je kde je ten warning
13:43 mornfall kterej by tam měl být
13:43 mornfall uvidíme až se xstill vrátí z oběda
13:43 xhavel1 ok, ja si ho odchytim a proberu to s nim
14:32 spito joined #divine
14:33 spito http://pastebin.dqd.cz/otTv/
14:34 spito to je model, kdy 2 vlákna vloží každé čísla 1 a 2
14:34 spito jo, je tam chyba :D
14:34 spito tak kecám
14:35 spito každé vlákno se snaží vložit číslo 1 až 5
14:59 mornfall tak vyrob protipříklad ne? :-)))
15:10 xhavel1 left #divine
18:01 xstill hm, neni ten počet stavů nějakej extrémně velkej na to jak dlouhej je protipříklad?
18:01 xstill a 26 hodin verifikace to je docela hodně
18:07 mornfall who cares had sex :-) (jo, je to hodně)
18:08 mornfall asi je to hodně široký
18:09 mornfall ale fakt by mě zajímal ten protipříklad, z těch čísel to bez modelu nevymlátim žejo
18:09 mornfall xstill: co s tím FixArray? :) Nikola už na to posílá patche
18:11 mornfall appendArray jde udělat úplně stejně nad vektorem a bude to i rychlejší (kdyby na tom náhodou záleželo)
18:12 xstill fix array je k tomu, když nepotřebuješ zvětšování
18:12 xstill automatické
18:12 mornfall které vektor nemá :D
18:13 xstill tak vektor si pamatuje spoustu balastu okolo, a vůbec
18:13 mornfall co třeba?
18:16 xstill tak všechny ty věci co na tebe cgdb vybleje když si ho vypíšeš třeba
18:16 xstill FixArray je v podstatě unique_pointer s iterátorem
18:18 mornfall no, cgdb to jen neumí formátovat, slinkuj to s libstdc++ a bude to vypadat mnohem hezčeji
18:18 mornfall gdb na to má pluginy/skripty
18:19 xstill pointa není, že to cgdb neumí, pointa je že je zbytečené s sebou tahat spoustu věcí pokud víš že budeš mít fixní velikost
18:19 mornfall no, spousta věcí je jeden pointer (kapacita)
18:19 mornfall vektor jsou 3 pointry -- begin, end a capacity
18:20 mornfall fixarray je begin/end (begin/size)
18:22 mornfall (a za ten pointer momentálně platíš spoustou instrukcí navíc když má T konstruktory)
18:24 xstill no to teda neplatíš
18:26 mornfall no, new T[n] volá n konstruktorů, pak copy volá n kopírovacích -- kopírovací konstuktor, stejně tak defaultní
18:26 xstill no a vektor nebude volat konstruktory?
18:27 mornfall teda takhle, ty voláš konstruktor + assignment, vektor zavolá copy
18:29 mornfall to všechno jde samozřejmě doladit, otázka je jestli to stojí za to
18:30 xstill no ale vektor ti zavolá default konstruktory na zbytek při růstu ne? Nebo při reserve.
18:30 xstill takže ti to výjde nastejno
18:30 mornfall ne
18:30 mornfall reserve nekonstruuje nic
18:30 mornfall a při růstu záleží jak to uděláš
18:30 mornfall resize velá, emplace_back ne, push_back většinou ne
18:30 mornfall volá*
18:32 xstill hm, a proč potom potřebuju aby typ byl default-konstruovatelný na to aby se jeho vektor dal použít?
18:33 mornfall protože nepotřebuje? :-)
18:33 mornfall musí být copyconstructible a assignable
18:41 xstill hm, jsem si jistý, že mi to nefungovalo, ale je možné že to standart má tak jak říkáš
18:41 xstill ale to je stejně jiná věc
18:42 mornfall no, nefunguje resize( 10, T() ) (kde T() je defaultní hodnota)
18:42 mornfall stejně s std::vector x( 10, T(), A() )
18:42 mornfall ale vektor ten defaultní konstruktor fakt nevolá
18:43 mornfall hm
18:43 mornfall navíc je teda riziko že těch 8 bajtů nakonec stejně neušetříš
18:43 mornfall protože new[] si pamatuje velikost
18:44 mornfall (protože delete[] musí zavolat správnej počet destruktorů)
18:47 xstill hm
18:52 mornfall počítám že template< typename T, std::size_t N > std::array< T, N + 1 > append( std::array< T, N > x, T y ) { ... } by ti nestačilo?
18:54 mornfall no, jak koukám na ten kód tak i stačilo, jen tam potřebuješ nějaký template< std::size_t > přidat
18:56 mornfall ale jen jestli jsou všechny branches stejně dlouhý ...
18:59 xstill potom bude jeden velkej opruz psát typy těch proměnných a nepůjde je dávat do jednoho stacku
18:59 mornfall tak, stack obsahuje ID, to by nevadilo
18:59 mornfall stejně máš všude auto
19:00 mornfall kdyby to bylo na mně tak tam dám vektor a neřeším
19:00 xstill ID je std::pair< int, FixArray< Key > > a ty pole tam mají reálně různou velikost
19:00 mornfall jo tak
19:05 spito antea:~xweiser1/con*/ver*/
19:05 spito err.txt je soubor s protipříkladem
19:06 mornfall možná by stálo za to ho demanglovat :)
19:06 xstill to jsi řekl brzo
19:06 mornfall tak, já to umim
19:06 mornfall jen tak z hlediska čtení
19:06 mornfall (c++filt < soubor | less)
19:08 xstill jo no otázka spíš je proč je všude otazník
19:09 xstill pochybuju že by to reálně něco dělalo kdyby this byl neinicializovanej
19:09 mornfall to bude nejspíš chyba někde
19:09 xstill jiného než padlo na paměťovou chybu
19:09 xstill neříkej :-D
19:10 spito jo, vim kde je chyba
19:10 spito ono to padne i bez verifikace
19:10 mornfall ...
19:10 spito chybně jsem to upravil
19:11 spito mornfall: ale kdyby místo otazníků byly nějaké hodnoty, byl by divine ještě hezčí a krásnější
19:11 mornfall tak na tom je zajímavý že tam fakt nevidim nic jinýho
19:12 mornfall než otazníky :)
19:12 mornfall přitom to určitě někdy fungovalo
19:13 mornfall asi něco se zásobníkama, globální  proměnný vypadaj ok
19:14 xstill chtělo by to aspoň vědět kolik je segment
19:15 mornfall 45G generoval 26 hodin? to je docela dobrý :)
19:15 xstill 45G čeho?
19:15 mornfall memory-used
19:15 xstill zdá se ti to málo na tolik stavů?
19:16 mornfall to asi ne, když to podělím dostanu dost velký číslo
19:16 xstill jo no, právě to jsem udělal
19:16 mornfall otázka je co z toho je ten záhadnej overhead ve virt
19:17 mornfall 50 / s * thread
19:17 mornfall 50 stavů
19:17 xstill běželo to antee předpokládám, takže alespoň 25GB jinak by jí to zabilo
19:17 mornfall to abych začal optimalizovat
19:18 xstill 50 stavů za sekundu na thread?
19:18 mornfall na arke
19:18 xstill jinak ten paměťovej overhead je fakt dost divne
19:18 mornfall E5-2630
19:18 xstill aha
19:18 xstill tak to pak jo
19:18 xstill ale 1222b / stav je hodně na kompresi
19:19 mornfall to záleží čistě na tom jak velkej je ten stav bez ní :)
19:20 xstill tak jo ale asi nebude mít desítky kb, nebo jo?
19:20 xstill spito: máš nějakou představu kolik ta tabulka alokuje paměti?
19:20 xstill (v tom testu)
19:21 spito testovaná? no....maximálně 100 bytů
19:21 spito ne, to asi víc....
19:21 spito ale to 500 se vlezu
19:21 xstill mornfall: jak udělám nix-build z globálních nixpkgs?
19:22 mornfall napiš tam k nim cestu :-) nevim
19:22 xstill kam?
19:23 mornfall nix-build /cesta/někam/default.nix
19:23 xstill aha nix-build -A něco "<nixpkgs>" funguje
19:23 mornfall jo to asi taky
19:23 mornfall nebo ~/.nix-defexpr/nixpkgs
19:30 mornfall achjo to gdb to je něco
19:32 mornfall no, nějakej stav tady na začátku má 7.5KB
19:34 xstill hm
19:37 mornfall http://pastebin.dqd.cz/5OOt/ tohle je po pár vteřinách běhu
19:37 mornfall ty 64K objekty nejsou stavy ale všechno ostatní asi ano
19:38 xstill hm aha on problém je že pro každou velikost stavu se ti vytvoří 2MB buffer
19:38 mornfall no to není problém
19:38 mornfall to jsme už minule počítali
19:38 xstill a reálně se z něj použije maximálně tolik kolik je vláken
19:39 xstill těch velikostí je zhruba 150 * 2MB to je 300MB, to není moc teda
19:39 mornfall 21886 mornfall  20   0  758m 164m  32m t    0  2.1   0:19.51 divine
19:39 mornfall 307231 kbytes held; 302751kB wasted
19:40 mornfall někde přebývá 400M
19:40 mornfall :-)
19:40 xstill wtf:
19:40 xstill $ nix-env -iA nixpkgs.binutils_gold
19:40 xstill warning: name collision in input Nix expressions, skipping `/home/xstill/.nix-defexpr/expressions/nixos'
19:40 mornfall z toho 244M je binárka, budiž
19:40 xstill installing `binutils-2.23.1'
19:40 xstill builder for `/nix/store/0s914imjrf2nx57pxff0gsvgwkwjwy0r-user-environment' failed previously (cached)
19:40 xstill error: build of `/nix/store/ylmgh8p3fzy7qg1by4pkq796hv1k9rqq-user-environment.drv' failed
19:41 mornfall nix-store --clear-failed-path
19:41 mornfall hlavně teda z toho 2M bufferu se časem použije všechno :)
19:42 xstill kdy?
19:42 xstill error: no operation specified
19:43 xstill je to rozbitý, a to nemluvím o tom, že to že to selhalo kvůli prioritě by se fakt kešovat nemusalo
19:43 xstill ale to bych si asi měl stěžovat vedle
19:43 xstill ty buffery se právě nikdy nepoužijou protože se všechno zkomprimuje
19:43 mornfall no jak se alokujou nový stavy
19:44 mornfall jo takhle
19:44 mornfall hm
19:44 mornfall u komprese to je potenciálně problém :-)
19:45 mornfall ne sice neřešitelný ale problém
19:45 mornfall xstill: tak paths
19:47 xstill aha
19:48 xstill hm ještě kdyby to --set-flag priority pomohlo
19:51 mornfall hm... ten spookyhash v tom instance generátoru není vůbec dobrej
19:51 xstill proč se ti to nelíbí?
19:52 mornfall no, jednak je to zbytečně složitý -- stačí srovnat obsah -- a druhak to není cryptohash
19:53 mornfall (takže riziko že budou dva různý soubory mít stejnej je sice malé, ale mnohem větší aj než u md5...)
19:54 xstill to jo, ale zase nechceš linkovat divine proti openssl
19:54 xstill nebo teda já rozhodně nechci
19:54 mornfall to sice nechci, ale hlavně to není vůbec potřeba :-)
19:55 mornfall srovnat dva stringy jde aj bez hashe
19:56 xstill no musíš ten soubor celej načíst
19:56 mornfall wibble::sys::readFile
19:56 mornfall nebo tak něco
19:56 mornfall fs::
19:57 xstill hm
19:59 xstill hm s ohledem na to že to používá alloca uvnitř si nejsem jistej jestli je to vhodný
20:00 xstill (select má 3MB)
20:00 xstill to není úlně vhodný cpát na stack
20:00 mornfall tak, určitě se to může opravit
20:00 mornfall ale 3M na stacku je v klidu
20:01 mornfall (ideálně tak že se to načte přímo do stringu aby se nemuselo kopírovat... ale i když se to neopraví, fungovat to bude)
20:03 xstill ok, to můžu opravit
20:04 mornfall (defaultní pthread stack je 10M jinak)
20:04 mornfall hm, a defaultní main stack 8M :-)
20:22 xstill hm, už ani já nejsem schopnej přeložit divine na arke
20:27 xstill mornfall: pače
20:31 mornfall dobrý, až na
20:31 mornfall M ./divine/instances/generator/generator.cpp -19 +46
20:31 mornfall M ./wibble/sys/mmap_v2.h -1 +1
20:31 mornfall v jednom patchi
20:32 xstill co?
20:32 xstill hm, a to se mi povedlo jak
20:32 mornfall wibble patche musí být extra
20:32 xstill v mmapu jsem nic měnit nechtěl
20:32 mornfall no to je ten constexpr
20:32 xstill sorry
20:32 mornfall asi jsi to předtím změnil a nezarecordoval
20:32 mornfall a teď sis toho nevšim :)
20:32 xstill hm odrekorduju ho z toho patche
20:33 mornfall shodou okolností jsem tam měl nezarecordovaný oddělání toho řádku
20:33 mornfall tak to vyhodilo konflikt
20:33 mornfall :-)
20:35 xstill tak 3. pokus
21:40 xstill jo jinak by to chtělo lepší odkaz ne pre-built binaries než ten http://divine.fi.muni.cz/hydra/jobset/divine/release
21:40 xstill v tom se nevyznám ani já
21:40 xstill resp. nejsem schopný najít ty binárky
21:43 mornfall to je tím že tam žádný nejsou, ten build z 14.7. je snad na anně
21:46 xstill hm, toho jsem si ani nevšiml že jsou to strašně staré buildy
21:46 xstill ale proč to tak je?
21:48 xstill mimochodem jobs tab mi nefunguje asi nikde
21:49 xstill aha tak jen nechutně dlouho trvá
21:49 xstill on je nějakej vylepšenej
21:52 mornfall no, protože jsme přesunuli hydru
21:52 mornfall ona na to má gcrooty, takže ty binárky asi na anně jsou
21:53 mornfall ale na arke ty cesty nejsou
22:19 spito tak a je to dokázaný
22:34 mornfall dokázaný co? :)
22:40 spito že neumim programovat
22:40 spito co jinýho by taky přicházelo do úvahy
22:41 mornfall to říkáš jako kdyby to někdo uměl
22:48 spito If you put a million monkeys at a million keyboards, one of them will eventually write a C++ program.
22:48 spito The rest of them will write Perl programs.
22:48 mornfall old ;-)
22:49 spito já vim
22:49 spito to mi bylo jasný

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