Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2013-09-19

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

All times shown according to UTC.

Time Nick Message
07:30 spito joined #divine
09:46 xstill hej ono je něco strašně špatně s tou kompilaci v divine
09:46 xstill protože mě to includuje glibc ze systému
09:46 xstill nějak
09:55 xstill no nix za to může asi
09:57 xstill teda clangWrapper
10:00 xstill hm potřebujeme oddefinovat __linux__
10:04 xstill nebo nějak znásilnit libcxx __config
10:16 xstill hm, chybí nám nl_types.h
10:29 xstill to asi dáme i bez něj
12:22 xstill co jsem komu provedl, že mi nejde překompilovat xmonad
12:57 xstill tak jsem zkompiloval libcxx
13:00 xstill ne že ty to s tím fungovalo teda
15:46 mornfall :-)
15:46 mornfall hele, Petr Bauch si stěžuje (nevím proč mně, všude to píše paradise-supp@) že mu nefunguje počítač...
15:51 xstill hm, nic mi neříkal
15:52 mornfall tak až ho uvidíš tak mu za mě vyhubuj, že má psát na paradise-supp@ nebo někomu kdo má čas (tzn. na lampárnu) :D
15:54 mornfall a Jiřík mi píše že nejde přeložit divine
15:54 mornfall já bych ty lidi lískal
15:54 mornfall máme asi tak 4 místa kam je smysluplný to psát, a můj jabber není jeden z nich :-P
15:55 mornfall jedno
15:55 mornfall meh
16:03 xstill klid
16:03 xstill o překladu divine ti nic neřeknu
16:04 xstill mám rozbité libc++
16:04 xstill takže jsem nestáhnul tvoje patche
16:04 xstill už mi to jde přeložit ty knihovny ale stále mám unresolved reference na type info různých věcí
16:05 mornfall hmm
16:06 mornfall no, ono hlavně hydra to přeloží
16:06 xstill může mít gcc 4.7.2 a staší pak má ICE
16:06 xstill ale to bych musal vědět co má za chybu
16:07 mornfall může
16:07 mornfall on mi prostě oznámil že to nejde přeložit, tečka
16:07 mornfall kvůli shared, a tím veškeré detaily končí
16:08 xstill hm, mě by zase zajímalo který blbec dělal formuláč pro přihlášení na erasmus do Trondheimu, dostanu z něj akorát error #102
16:08 xstill nevíš co mi může způsobovat chybějící type info?
16:08 mornfall to je dobrej error
16:09 xstill jo no, hlavně jsem to chtěl mít už hotový a ono tohle
16:09 mornfall nevim, krom špatnýho pořadí -l a chybějících destruktorů mě nic nenapadá
16:09 xstill jak je to vlastně s pořadím -l, jak se to vyhodnocuje?
16:11 xstill to co je víc vpravo se použíje na resolvování toho vlevo?
16:16 mornfall ten internet tady taky moc nefunguje...
16:16 mornfall jo, symboly jsou „vidět“ jen směrem doprava
16:16 mornfall tzn. -la -lb to co není v a resolvuje v b, takže a vidí symboly v b ale b nevidí symboly v a
16:17 mornfall (netvrdil bych úplně že je to zrovna intuitivní)
16:19 xstill to není
16:20 mornfall jdu na vlak
16:20 mornfall vrátim se
16:20 xstill jo
16:21 xstill ona je asi chyba že ta libcxx neví že jede nad libcxxabi
16:21 xstill asi
16:23 xstill hm, asi nepomohlo
16:32 xstill škoda, že nemám ivy-bridge, mohly bych si v labu připojit 2 monitory + laptop :-D
16:34 xstill hm, @_ZTISt13bad_exception = external constant i8*
16:35 xstill z toho external odvozuju, že to tam ve skutečnosti není
16:37 xstill aha tak asi ne, to je vyditelnost, že/
16:37 xstill ?
16:38 xstill ale llvm-nm říká že je symbol nedefinovaný
17:06 xstill něco je strašně špatně
17:11 xstill to je fakt hloupý
17:12 xstill mě se ve stringách vytvoří dva symboly src_exception_cpp_str a linker nemůže zařvat, že jsou duplicity
17:13 xstill a já tady jak blbec řeším kam se mi ztratil soubor
17:15 xstill budeme muset mít ve stringách namespace
17:29 xstill tak teď se uvidí jestli jsem všechno rozbil :-P
17:43 xstill bingo
17:43 xstill teda teď mi chybí __cxa_begin_catch, ale to je alespoň pokrop
17:44 xstill *pokrok
18:01 xstill hm to by asi bylo
18:02 xstill mornfall: jak máš zajištěno, že se místo __cxa_throw bude volat __cxa_throw_divine?
18:02 xstill abych ti něco nerozbil
18:06 xstill už jsem to našel
18:15 xstill hm, už mi nic nechybí
18:15 xstill ale dostal jsem assertion `bad parameters for opcode 43' failed;
18:16 xstill hm, int -> ptr cast
18:16 xstill %2 = inttoptr i64 %1 to void ()*, !dbg !18365
18:18 xstill přesunu se konečně z labu
18:18 xstill budu tu za 30 minut
19:03 mornfall já teď docvičil
19:03 mornfall ještě musim něco sníst
19:16 xstill jasný
19:18 mornfall nějaký inttoptr se mi zdá jsem nedávno spravoval
19:18 mornfall hm
19:25 mornfall xstill: můžeš si zkusit přidat overloady na uint64_t do cca program.h:63? (typ Pointer)
19:25 mornfall to by teoreticky mohlo tý chybě pomoct
19:25 mornfall i když mi to teda přijde divný
19:25 mornfall resp. hlavně konstruktor
19:25 mornfall ale operator uint64_t bude taky potřeba jestli to je fakt tím
19:28 xstill jo podívám se na to
19:35 xstill neměli bysme clangu nějak dát vědět jak velký pointer vlastně máme?
19:36 mornfall nevim jak moc dobrý to je nápad
19:36 mornfall ono teď to funguje tak že když to je víc než 32b tak se to dorovná nulama
19:37 mornfall takže všechny offsety do struktur, polí, etc. jsou stejný jako pak v reálným kódu
19:37 xstill nevím, mě to jen tak napadlo
19:37 xstill hm, to je fakt, že tím by kód neodpovídal platformě
19:38 mornfall tak, já doufám že jednoho dne to udělaj tak, že ten bitkódu bude retargetovatelnej
19:38 mornfall protože v podstatě instrukce na počítání velikosti/offsetu tam jsou
19:38 mornfall takže clang by žádný tvrdý offsety do bitkódu generovat nemusel
19:38 mornfall (ale momentálně to dělá)
19:38 xstill tak ty operátory nic nezachránili (dal jsem je teda explicitní, protože implicitní generovali ambiguous cast nebo co)
19:39 mornfall dokážeš z toho vyrobit backtrace?
19:39 xstill asi jo
19:39 mornfall jen teda vlastně nevim jestli z něj něco vyčtu
19:39 mornfall co všechno na tom padá?
19:40 xstill thready
19:40 xstill ale něco jsem zjistil ještě padá na chybějící symbol, takže to může být chyba v tom jak mám nastavenou libcxx
19:43 xstill jsem v NotPreffered větvi implent (execution.h:1107)
19:43 xstill trace ti někam dám
19:45 xstill http://pastebin.dqd.cz/qOY2/
19:46 mornfall aha zatraceně
19:46 mornfall to je PC
19:46 mornfall a ne Pointer
19:46 mornfall PC potřebuje uint32_t konverzi přidat
19:47 mornfall (ne že bych tušil proč chce nějakej program převádět pointr na funkci na int...)
19:47 xstill protože atomicky loaduje nějakej handler
19:47 xstill asi z pole
19:47 xstill a inkrementuje ten pointer nebo co
19:48 xstill %1 = atomicrmw add i64* bitcast (void ()** @__cxa_unexpected_handler to i64*), i64 0 seq_cst, !dbg !19442
19:48 xstill je těsně před tím
19:48 mornfall dafuq :-)
19:48 mornfall jak může inkrementovat pointr na fci
19:48 mornfall no
19:48 mornfall on tam přidává 0
19:48 mornfall to bude nějakej hack :-P
19:49 mornfall pointr na funkci + 1 je asi docela krutě nedefinovaný
19:50 xstill to asi jo
19:50 xstill je to v get_terminate a podobně
19:50 xstill je tam return __sync_fetch_and_add(&__cxa_terminate_handler, (terminate_handler)0);
19:50 xstill takže přidat cast operátory pro PC?
19:50 mornfall jo
19:51 mornfall to je fakt solidní hack teda
19:51 xstill nevím k čemu to je teda
19:52 mornfall protože žádný __sync_fetch_and_do_nothing není
19:53 xstill on není atomic load?
19:53 mornfall tam by patřil __atomic_load nebo jak se to jmenuje
19:53 mornfall jen ten zase není v C++11
19:58 xstill vadí něčemu když ty cast uint32_t operátory budou explicitní v Pointr i v PC? ono to totiž jinak dělá problém
20:00 xstill asi vadí
20:00 mornfall nevadí
20:00 mornfall hm
20:00 mornfall jo vadí
20:00 mornfall kontroluje se jestli to jde přiřadit
20:00 mornfall ale to jde napravit
20:00 mornfall execution.h:359
20:01 mornfall declcheck( r = l ) přepsat na declcheck( r = static_cast< decltype( r ) >( l ) ) nebo tak něco
20:01 mornfall static_cast< X >( l )
20:01 mornfall proč to je r a l a ne l a r
20:01 mornfall kdoví
20:02 xstill vyzkouším ten cast
20:03 mornfall potom teda musíš to stejný udělat o dva řádky dál
20:03 mornfall jinak to asi nepůjde přeložit :)
20:04 xstill jo to se přesně stalo
20:04 xstill ale nevím jestli to je co chceme, protože ...Convert::operator()<divine::llvm::Pointer, signed char> se mi nezdá jako úplně dobrý nápad
20:10 xstill teda já nevím jestli taková zvrhlost v C jde, možná jo
20:11 mornfall to se ti povedlo jak?
20:11 mornfall hm
20:11 mornfall on asi int jako int
20:11 mornfall char a = static_cast< int >( b ); asi normálně funguje
20:11 mornfall nebo to možná ani tak ne, ale int a = static_cast< char >( b ) určitě
20:11 mornfall hm
20:12 xstill no jo, to není nic strašného
20:12 mornfall a tohle je teda pointer = char
20:12 xstill právě
20:14 xstill je to nějak strašně rozbitý
20:14 xstill program.h: 246: assertion `int( pc.function ) <= int( functions.size() ) - 1' failed; got [3968] > [797] instead
20:14 xstill ale u tebe to bude asi 238
20:15 xstill hm, to vypadá jako function pointr někam do kelu
20:23 mornfall hm, on se to pak snaží volat, zdá se
21:38 mornfall jak vypadá backtrace od toho?
21:39 mornfall možná pošli patch a já se na to pak podívám
21:47 xstill no on ten Pointr <-> PC operátor není třeba protože existuje sekvence PC <-> uint32_t <-> Pointer
21:47 xstill ale z nějakého důvodu chybí cast int -> Pointer
21:47 xstill (už mám jiný assert)
21:48 xstill protože reference
21:52 xstill ale jakto, že to před tím fungovalo, i když jen pro Pointer
21:55 xstill mám to nějak hnusně rozkopaný, protože povoluju cast double -> Pointer
21:57 xstill to co jsem udělal ti asi moc nepomůže
21:57 mornfall joj
21:57 mornfall no myslel jsem to libc++
21:58 xstill jedině že jsem zjistil, že aby fungovali konverze na Pointer musí mít operator=( uint32_t ) a tak
21:58 xstill potřebuju to ještě trochu urovnat mám v tom bordel
21:58 xstill a musím jít spát
21:58 xstill zítra jdu na osmou
21:58 xstill takže ti to pošlu zítra
21:59 mornfall :-)
21:59 mornfall dobrou
21:59 mornfall kruci zase půlnoc
21:59 mornfall zítra před 12 nevstanu
21:59 xstill to se máš
21:59 xstill dobrou
23:38 xstill joined #divine

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