Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2015-10-10

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

All times shown according to UTC.

Time Nick Message
01:47 ilbot3 joined #divine
01:47 Topic for #divine is now DIVINE: A Parallel LTL Model Checker (http://divine.fi.muni.cz) | http://irclog.perlgeek.de/divine/
06:49 xstill mornfall: mě ta adresářová a namespacová struktura v lartu leze hrozně na nervy. Nechám AA, abstract a weakmem tak jak jsou, ale k tomu udělám jen reduce (jako složku i namespace) a to bude obsahovart všechny passy potřebné k redukcím a analýzy hodím pod analysis zase všechny (tam by teda šlo přidat i to AA).
09:18 xstill mornfall: funkce v llvm může mít víc entry pointů? Myslel jsem, že ne, ale teď jsem narazil na Function::getEntryCount a není mi to moc jasný… leda že by se landingpady počítaly jako entry pointy.
10:47 xstill hm, já nemůžu použít funkci s auto návratovým typem před její definicí, ani pokud by to fungovalo pokud nemá auto :-/
12:56 yaqwsx joined #divine
13:04 yaqwsx Ahoj, snažím se SymDivine překlopit na Cmake a trochu bojuji s LLVM. Chci jej do projektu dostat pomocí "find_package(LLVM)". Jenže Cmakeové balíčky pro LLVM jsou rozbité (je na to i otevřený bug report) - končí na CMake Error at /usr/share/llvm-3.5/cmake/LLVMConfig.cmake:50 (include):
13:04 yaqwsx include could not find load file:
13:04 yaqwsx /usr/lib/llvm-3.5/share/llvm/cmake/LLVMExports.cmake
13:04 yaqwsx ;. Díval jsem do CMaku Divinu pro inspairaci, ale nebyl jsem z toho moudrý. V současném Makefilu prachsprostě volám llvm-config pro získání includů a knihoven. Jak se dá co nejjednodušeji dostat LLVM do Cmaku?
14:07 mornfall yaqwsx: no, jedna možnost je ukrást cmake/ z divine-u, tam nějaký FindLLVM je
15:04 xstill yaqwsx: divine má v cmake/ své FindLLVM, které v podstatě jen volá llvm-config, který předtím najde (je tam pár detailů s tím, že ten config se může jmenovat různě), pak už se jen nastaví příslušné flagy (likovací, kompilovací) podle proměnných z LLVM config. Ale má to taky své mouchy.
15:33 xstill mám funkci na které běží nulování alloca 15 minut, to není dobrý
15:34 mornfall to mi připomíná alokaci registrů
15:34 mornfall není to nějakej ten demangle?
15:35 yaqwsx Díky, nějak jsem to z toho pobral a vypadá to, že to dává rozumné výstupy. Ale nechce mi to slinkovat, nemůže najít "llvm::Type::getPointerElementType() const". Což je zvláštní, linkuji stejné knihovny jako v původním Makefilu. llvm-configu předávám: "--libs core irreader". Kterou knihovnu opomíjím?
15:36 xstill jo je to něco z demangleru, má 632 alloca a 2881 registrů
15:37 xstill yaqwsx: my dáváme linkeru snad všechny LLVM knihovny
15:37 mornfall co na tom dělá interference teďka?
15:37 xstill nevím, interferenci jsem nepouštěl
15:37 mornfall (...)
15:38 xstill … zjistím, ale musíš počkat
15:39 xstill běží 4 sekundy
15:39 xstill ale já už mám vymyšlené jak to udělat líp, jen jsem chtěl zkusit, jestli tam není nějká úplná konina
15:39 xstill ale to asi nezjistím, protože to nedoběhne v rozumném čase
15:40 mornfall asi bys to musel zkoušet na rozumných příkladech :-)
15:41 xstill to není úplně marnej nápad :-D
15:41 xstill já totiž někde mám příklad co vůbec nepoužívá C++
15:42 xstill jo, na tom to doběhne
15:42 mornfall (...) :P
15:42 yaqwsx Hm, takže chyba musí být jinde - i když mu předhodím všechny knihovny z LLVM, tak to neslinkuje :/
15:42 mornfall yaqwsx: nemáš to statický?
15:43 mornfall to pak záleží na pořadí -l
15:43 yaqwsx mornfall: Pořadí by si měl pohlídat llvm-config, ne?
15:43 mornfall no v rámci llvm jo
15:44 mornfall ale záleží kdo ten symbol používá
15:45 yaqwsx Je pravda, že .o soubory mi Cmake háže až za knihovny, ale na tomto pořadí by záležet nemělo, ne?
15:45 mornfall ale jo, mělo
15:45 mornfall dáváš to do link_libraries(...) jo?
15:46 yaqwsx Momentálně používám set_property
15:47 mornfall s jakým parametrem?
15:48 yaqwsx jak se používá link_libraries? link_libraries(TARGET target [LIBS])?
15:49 mornfall man cmake-commands
15:53 xstill yaqwsx: nebo tools/CMakeLists.txt v divine, ono by se mělo správně používat target_link_libraries tuším
16:34 yaqwsx joined #divine
17:44 yaqwsx xstill: Díky za tip - už to šlape!
17:54 xstill :-)
17:55 yaqwsx K tomu bugu - v balíčcích má už něco přes rok prioritu critical...
18:46 xstill sakra to jsou nápady, v LLVM je iterator u kterýho iterator::reference = iterator::value_type * (místo value_type &)
18:47 xstill a já se divím proč se to chová divně…
18:47 xstill a ICE v clangu
18:47 xstill aby toho nebylo málo
18:47 mornfall není to OOM?
18:48 xstill pochybuju
18:48 xstill není
18:48 xstill proč by mělo být?
18:49 xstill navíc by musel vyžrat těch 30GB paměti tak za sekundu, což jde špatně když půlka je swap (a asi i bez toho)
18:49 mornfall no já mam nastavený ulimity takže OOM pro překladač není zas tak těžký
18:51 xstill aha, to já nemám, s 16GB RAM se mi jen tak nestane, že by mi to překladač vyžral a divine většinou stinu zabít mezitím než začne swapovat a než udělá systém úplně nepoužitelným
18:53 xstill ježiš tam se musel někdo hrozně zamyslel, když tenhle iterátor dělal
18:54 xstill ono totiž mimo jiné potom nefunguje iterator::value_type x = *it;
18:55 mornfall to je proto že spousta věcí v LLVM je sdílená (a nekopírovatelná)
18:55 mornfall takových iterátorů tam bude víc
18:56 mornfall (ono udělat kopii instrukce nedává v kontextu toho jak to celý funguje moc smysl)
18:56 xstill sakra tak kdyby řekly, že value_type bude ten point tak by to dávalo smysl větší
18:56 xstill *řekli
18:57 mornfall na druhý straně je dobrý umět it->foo()
18:57 mornfall a nemuset psát (*it)->foo()
18:57 mornfall což bys jinak musel
18:57 mornfall jasně, není to moc STL ale je to tak v LLVM docela konzistentně
18:57 xstill no… nemusel, protože to záleží na operator-> toho iterátoru (ale bylo by to taky lehce divný, protože by dereferencoval 2x)
18:59 xstill no super… to abych si udělal nějakej wrapper, protože brick-query se z toho posere, a ten se mi hackovat tak aby to šlo asi nechce
19:11 xstill do háje, SuccIterator je fakt nepoužitelnej
19:26 xstill sláva, zvítězil jsem nad tím a analýza už seběhne za 36 vteřin na libdivinert
19:27 xstill (ale vloží 304 993 nových nulovacích funkcí)

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