Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2015-10-31

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

All times shown according to UTC.

Time Nick Message
00:21 xstill no, hrabal jsem se v cmake a nastavoval to co mi přišlo jako dobrej nápad :-D
00:23 xstill já si to dobuildím a když to bude fungovat tak to pak zamoduluje
00:29 spito teď jsem přišel na to, že v cmake nejde nastavit -stdlib=libc++
00:29 spito teda že to jde, ale nic to nedělá
00:29 spito protože tenhle přepínač musí jít před jméno překládaného souboru
00:30 spito no a on je nejspíš až za ním
00:31 xstill já na to někde viděl přepínač v cmake
00:32 xstill ale nebude lldb protože chybí swig a ani modul na to nepomáhá, a nechce se mi s tím kvůli lldb štvát teď
00:32 spito nějaký hint na ten přepínač?
00:37 xstill já to snad nabuildím, ale jinak  LLVM_ENABLE_LIBCXX /  LLVM_ENABLE_LIBCXXABI
00:43 xstill hm, už mi to zdechá
00:43 spito na čem?
00:43 spito linker?
00:44 xstill linker, problém je, že z demanglovaných souborů nepoznám s čím vlastně linkuju a co čeká :-/
00:44 xstill ale asi čeká blbec libstdc++
00:45 xstill což asi znamená že máš patně include
00:45 spito eh co?
00:46 xstill že to vypadá, že se llvm-tblgen linkovat s libstdc++
00:48 xstill aha protože CPLUS_INCLUDE_PATH z gcc modulu asi
00:48 xstill je to boj
00:49 xstill všechno hrozně komplikovaný
00:49 spito tak zrovna to CPLUS... mám nastavený
00:50 xstill už to vypadá líp :-)
00:51 spito heh, jak jsi to přesvědčil?
00:51 xstill sláva, generuje to binárky nezávislé na libstdc++ :-)
00:52 xstill unset CPLUS_INLCUDE_PATH; unset C_INCLUDE_PATH
00:52 xstill alias temná magie
00:52 spito tak já jsem dělal to, že jsem to CPLUS... nastavil
00:53 spito teda že jsem tomu předhodil cestu k libc++ includům
00:53 spito jaký je v tom rozdíl?
00:53 xstill asi že jsem to nechal na tom cmake ať si to pořeší sám
00:53 xstill tyhle blbosti jako C_INCLUDE a LD_LIBRARY jsou dost zlo
00:54 spito takže unset+cmake?
00:54 xstill jenže bez toho to zas moc nefunguje s těma modulama :-/
00:54 xstill cmake jsem řekl, že má používat libc++(abi)
00:54 spito to jsem taky udělal
00:55 xstill a on si ho našel nějak, a do LD_LIBRARY_PATH jsem dal cesty k tomu stage1/lib
00:55 xstill ale fajn je, že se to linkuje proti stage2 libc++ rovnou
00:55 xstill není to vůbec hloupý
00:56 xstill takže možná ten bootstrap ani nemusí být tak složitý, mohl by stačit libovolný clang
00:56 xstill (protože potřebuješ něco co umí -stdlib= nebo jak se to jmenuje)
00:56 spito no jasně, když už víš, jak na to, tak se to zpětně jeví hrozně jednoduše
00:57 xstill jojo, je to jak důkaz, když ho chápeš tak je zřejmý :-D
00:57 xstill ale já začínám být silně přepracovaný a mám skoro vybytou baterku
00:58 spito *vybitou ;)
00:58 xstill takže jdu spát a zítra se uvidí jak to doběhlo
00:58 xstill hm, málo jsem se nad tím zamyslel
00:59 xstill (nad vybitou/vybytou, ale vybytou asi nedává vůbec v žádném kontextu smysl)
00:59 xstill dobrou noc
01:23 ilbot3 joined #divine
01:23 Topic for #divine is now DIVINE: A Parallel LTL Model Checker (http://divine.fi.muni.cz) | http://irclog.perlgeek.de/divine/
02:47 ilbot3 joined #divine
02:47 Topic for #divine is now DIVINE: A Parallel LTL Model Checker (http://divine.fi.muni.cz) | http://irclog.perlgeek.de/divine/
08:42 xstill hm, skoro, ještě vyřešit " undefined reference to `typeinfo for llvm::Instruction'"
08:44 xstill ale jinak to zdá se funguje
08:57 xstill mám fungující divine zbuildění s clangem a libc++ na anxurovi :-)
09:02 xstill jen teda lart se vsteká, že mu chybí rtti pro LLVM věci, ale to snad opravím
09:02 xstill ono to vypadá, že to leze od nás
09:03 xstill llvm-config blije hrozný věco do cxxflags
09:04 xstill včetně spusty warningů, -O3, -fno-rtti
09:07 mornfall vzteká*
09:07 xstill jsi fakt užitečnej
09:12 xstill hm, ale to je divný, protože mi bereme flagy jen pro preproceso, a tam to samozřejmě není
09:12 xstill a to -fno-rtti dostal jen lart
09:13 xstill nojo, ono je to v našem cmake
09:14 xstill otázka je proč
09:15 xstill ale nepomohlo to, asi fakt potřebuju llvm s rtti…
09:17 xstill což asi není až tak divný, v archu taky má rtti
09:26 xstill spito: já teď udělám modul, ale pak tam ještě přidám wrapper aby ten clang normálně používal libc++
10:11 xstill spito: module add llvm-3.7.0, wrapper bude za chvíli
10:31 xstill wtf. na nymfe cmake nastavuje rpath na /usr/include
10:46 xstill spito: už to funguje a nepotřebuje to ani žádné LD_LIBRARY_PATH blbosrti, ale budu rád když to testneš, protože ten wrapper nemusí být úplně dobře
10:53 xstill spito: zrada je teda v tom, že cokoli slikované s libstdc++ k tomu nepůjde přilinkovat, ale s tím se moc nenadělá
11:01 xstill zajímavé:  warning: moving a local object in a return statement prevents copy elision
11:03 xstill aha https://stackoverflow.com/questions/14856344/when-should-stdmove-be-used-on-a-function-return-value
11:03 mornfall jo, to jsem minule zmiňoval
11:04 xstill ten warning je v generator/llvm.h
11:04 mornfall já vim
11:05 xstill ok
11:28 xstill hm, k čemu je rpath když si pak něco vzpomene, že to stejně bude ignorovat
11:37 xstill mornfall: nevíš co by mohlo způsobit, že se rpath ignoruje a hledá se v systémových lokacích?
11:43 mornfall rpath nejde ignorovat
11:43 mornfall pokud v tý binárce skutečně je
11:43 mornfall (objdump ti řekne)
11:44 mornfall dokonce má rpath přednost před LD_LIBRARY_PATH
11:45 xstill readelf mi říká, že je tam RUNPATH (je správná), je v tom rozdíl?
11:45 mornfall ano, RUNPATH má menší prioritu
11:46 mornfall (než RPATH aj než LD_LIBRARY_PATH)
11:50 xstill hm, to je blbý, protože patchelf --force-rpath zdá se nefunguje
11:53 xstill ale stejně je divný, že to ignoruje RUNPATH, když nemám žádné LD_LIBRARY_PATH
12:08 xstill ještě teda, nefunguje to jen u některých knihoven: libc++ se načte, ale libc++abi už ne, libc++ má taky nastavenou RUNPATH
12:08 xstill asi prostě budu muset použít LD_LIBRARY_PATH
13:12 spito nejde přidat modul cgdb
13:13 xstill jak nejde, já s ním nic nedělal
13:13 spito jsem trubka
13:14 spito jde, klid
13:15 spito není divný, že stejně musíš clangu explicitně říct, že má používat svoje knihovny namísto těch od gcc?
13:17 xstill hm? to by nemělo být potřeba
13:17 xstill nesmíš tam mít ale zároveň modul gcc
13:17 xstill on je svině agresivní
13:18 spito mně se to totiž podařilo přeložit jenom tak, že jsem musel explicitně zadat -stdlib=libc++
13:19 spito jinak používal tu od gcc
13:19 xstill divné, to by nemělo být potřeba právě
13:19 xstill jak to překládáš?
13:23 spito no nakonec jsem si to trochu dodrbal :)
13:24 xstill a co byl problém?
13:26 spito normálně mu nastavím, aby používal LLVM_ENABLE_LIBCXX a LLVM_ENABLE_LIBCXXABI a pojmenuju LIBCXX_CXX_ABI jako libcxxabi
13:26 spito a když jsem to přeložil, tak to stejně pořád chtělo používat libstdc++
13:28 xstill a proč se to snažíš překládat, když jsem spal, že jsem ten modul udělal? Samo o sobě linkovat k libc++ nezačne, na to tam mám ten wrapper
13:28 spito i když jsem teda nepoužil ty věci na opatchovaní elfů
13:30 xstill co?
13:30 spito heh, jak vypadá ten wrapper?
13:30 xstill less $(which clang++)
13:33 spito no a mně se nelíbilo, že se tomu musí explicitně říkat, že libc++abi, že libc++ a tak
13:35 spito takže pořád ještě nechápu, proč je potřeba psát wrapper a nejde to jenom nastavit při překladu
13:36 xstill nepřišel jsem na to jak, krom toho ten wrapper navíc nastavuje rpath takže pak ten module nepotřebuje prasit LD_LIBRARY_PATH
13:40 xstill navíc jinak bys musal na spuštění libovolný binárky s tím zbuilděný mít i nahranej ten modul
13:50 xstill hm, zdá se že s tou RUNPATH to byl nějaký bug v tom chrootu kde to běželo (chybělo tam /proc a kdo ví proč to dělalo dost záhadný věci)
13:50 spito no, kromě toho wrapperu si myslím, že se mi to taky podařilo
13:50 spito dobré cvičení :D
13:51 xstill :-D tak ten wrapper je v podstatě přepsání nixového gcc wrapperu do perlu, měl by fungovat i o trochu líp
13:53 spito když jsi dělal modul gcc, bylo potřeba udělat taky nějaký wrapper?
13:54 xstill bylo by to bývalo lepší, ale tam jsem to dohackoval přes proměnné prostředí
18:04 spito joined #divine
18:16 xstill mornfall: proč na to abych nixem zbuildil tarball divine potřebuju GHC a milion haskellových balíků? :-D
18:17 mornfall no, asi na ten haskell-cesmi interface
18:17 mornfall nebo možná pandoc
18:17 mornfall asi spíš ten pandoc
18:17 xstill ajo, přeci jen to dává smysl
18:17 xstill trochu
21:07 xstill ten sv-comp bude asi veselej, je tam nějak hodně věcí
21:07 xstill jakože článků

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