Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2017-05-13

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

All times shown according to UTC.

Time Nick Message
01:49 ilbot3 joined #divine
01:49 Topic for #divine is now DIVINE | http://divine.fi.muni.cz | http://irclog.perlgeek.de/divine/
05:17 xstill yaqwsx: a pro clang/gcc ty závislosti počítá cmake, nebo je nějak vytváří kompilátor? pokud by je počítal cmake tak je možná otázka jestli mu nejde podstrčit runtime-cc jako kompilátor (a přesvědčit ho, že ho nemá zkoumat co se funkčnosti týče, což nějak myslím jde)
09:04 mornfall cmake 3.7 by měl umět DEPFILE pro ninju
09:04 mornfall ale bude se tam muset našroubovat spousta magie protože pro makefile zase nefunguje depfile
09:04 mornfall (tzn. pokud je generator makefile, použít implicit_depends a pokud je ninja tak depfile a do runtime-cc dodělat něco co vygeneruje odpovídající .d)
09:05 mornfall (nebo teda do toho custom_command, to může být něco jako gcc -MT ...)
09:06 mornfall -M ...
09:06 mornfall (ninja si to zařizuje pro build pravidla interně)
09:37 yaqwsx -M zatím nevím proč divine-cc neumí
09:39 yaqwsx BTW: Ale chceme mít CMake 3.7 a výše jako závislost DIVINu?
09:41 mornfall runtime-cc -M neumí protože to nikdo nenaprogramoval, a asi ani nechceš aby umělo... přidat tam volání normálního překladače s -M bude lepší
09:42 mornfall a asi nechceme, ale když už je to stejně conditional na generátoru tak to může asi být stejně dobře conditional aj na verzi cmake
09:42 mornfall (a ano, je to peklo)
09:43 mornfall druhá možnost by byla to celý obejít tím, že celej runtime se vygeneruje jedním příkazem kterej si závislosti pořeší interně
10:03 yaqwsx Přikláním se k tomu, že druhá možnost bude asi nejjednodušší...
10:26 mornfall yaqwsx: mám lepší nápad
10:26 mornfall yaqwsx: runtime-cc si může spočítat sha1 preprocesovaného vstupu a uložit to do toho .bc a když zjistí že sedí tak nepřekládat
10:27 mornfall (nebo vedle toho .bc, to je jedno)
10:27 mornfall preprocesor je skoro zadarmo
10:27 mornfall (jen to touchnout aby byl make/ninja spokojenej)
10:36 yaqwsx mornfall: To se mi líbí!
17:07 yaqwsx xstill: Odkud jsi čerpal informace o API clangu, když jsi psal CC?
17:08 xstill yaqwsx: doxigen clangu + zdrojáky, je to docela bída; co potřebuješ?
17:09 yaqwsx Získat výstup preprocesory, abych z něj mohl spočítat hash.
17:13 xstill hm, obávám se, že budeš muset spustit separátní instanci která udělá jen ten preprocesing, když se podíváš do divine/cc/clang.cpp:415 tak tam se volá cc1 s EmitLLVMOnlyAction, typnul bych si že tahle Action má společného předka s nějakou akcí která spustí jen preprocesor a můžeš to zavolat taky přes tu cc1 funkci
17:13 xstill yaqwsx: případně se podívej do dokumentace těch věcí co to používá jesti ty preprocesované věci nejde náhodou vytáhnout nějak
17:15 xstill a pozor na to, že knteré akce mají nezvratitelnou potřebu psát do souboru
17:15 yaqwsx Zatím se mi nepodařilo najít alternativu EmiLLVMOnlyAction pro preprocesor (našel jsem zatím pouzeobjektové souory,asm a pod)
17:15 yaqwsx xstill: Ok, díky, podívám se.
17:18 xstill yaqwsx: podívej se na potomky PreprocessorFrontendAction, nejspíš PreprocessOnlyAction
17:36 yaqwsx xstill: Používá se k něčemu LLVMContext ctx? Jak se tak dívám, všude to bere defaultní context.
17:36 yaqwsx Nebo jsem něco přehlédl?
17:38 xstill hm? kde to bere default context? kontext si drží nějaké informace k modulům, podstatné je, že ten modul musíš vytvořit se stejným kontextem se kterým ho pak používáš, proto ten kompilátor umí vzít kontext zvenku
17:39 yaqwsx Ok, tak to jsem přehlédl - přišlo mi, že všechny instance Compile braly čerstvě vytvořený context.
17:40 xstill minimálně instance co běží při kompilaci ve verify musí brát kontext který sdílí s interpretrem

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