Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2014-10-28

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

All times shown according to UTC.

Time Nick Message
08:02 spito__ joined #divine
09:40 mornfall xstill: hm, co se počítá jako squeezing? (re memics lncs)
10:19 xstill mornfall: nevím, podívám se, ale typuju, že takové věci jako zvětšování okrajů a a změny písma
10:20 xstill btw. nevíš jak nastavit znc nebo irssi tak aby se mi zvýraňovali osobní zprávy i z historie (je před nima čas a tak to nefunguje)
10:22 xstill ad ty testy, to je divný
10:23 xstill ad global.ctors to jsem netušil, ale vzhledem k tomu, že je někde používáme jsem je považoval za root
10:23 xstill a ten kus dokumentace co jsi postnul nechápu
10:32 mornfall /load znc_timestamp
10:32 mornfall teda
10:32 mornfall /script load znc_timestamp
10:32 mornfall no, co na tom nechápeš? :-)
10:33 mornfall položky v global_ctors jsou tuply
10:33 mornfall pokud je tředí pole nastavený na globální proměnnou nebo fci, tak se ten globální konstruktor bude volat jen pokud ta globální proměnná nebo funkce ve výsledném modulu existuje
10:34 xstill hm, a na to mám přijít jak?
10:35 mornfall to v praxi znamená, že když mažeš symbol kterej se někde používá jako třetí složka toho global_ctors tuplu, tak ten celej tuple z global_ctors vyhodíš
10:36 xstill jako že ten symbol se musí používat ještě mimo ten global.ctors?
10:36 xstill aby se to nesmazalo?
10:39 mornfall jistě
10:39 mornfall to je guard pro ten konstruktor jako takovej
10:40 mornfall když máš globální proměnnou s konstuktorem, tak to normálně znamená že ten konstruktor zavoláš pokud existuje nějakej důvod tu globální proměnnou mít
10:41 xstill aha
10:41 xstill a předěláš to, nebo mám já?
10:41 mornfall jo předělám
10:42 xstill dík
10:42 xstill to vysvětluje proč jsou ty soubory tak nechutně velké a možná i proč to tak dlouho verifikuje
10:42 mornfall ano (to už jsem psal, myslím :-)
10:43 xstill aha jo
13:19 ilbot3 joined #divine
13:19 Topic for #divine is now DIVINE: A Parallel LTL Model Checker (http://divine.fi.muni.cz) | http://irclog.perlgeek.de/divine/
14:56 spito__ joined #divine
15:31 spito joined #divine
15:40 spito hoj, měli byste chvilku čas? :)
15:50 xstill spito: co potřebuješ?
15:51 xstill hm, ten skrip ty časy zruší úplně, to jsem zrovna nechtěl
15:58 spito antea:/home/xweiser/tmp/geometry
15:58 spito jestli je to dobře - hlavně metoda less a tag
15:59 spito když už to bude jakože vzorové řešení
16:08 xstill co to má být?
16:23 spito pb161
16:23 spito vzorové řešení - implementace operátorů
16:26 mornfall spito: ~xweiser tak úplně neexistuje :P
16:27 mornfall co to je vypadá to jako java
16:32 spito mornfall: jsem se spletl, no
16:33 spito a jak jinak bys to chtěl udělat? jsem celkem vázaný na to, že to není čistě C++ předmět, ale objektové programování s využitím C++ ;)
16:33 spito a jo, je to java style, protože jsem úplně nevymyslel, jak to udělat jinak
16:34 spito můžeš mi poradit
16:34 spito ;)
16:44 mornfall já nevim, tyhlety tvary jsou takovej kanonickej příklad na OOP
16:44 mornfall ale řekl bych že to je dost nic moc příklad...
16:45 mornfall a navíc vybrat si equal a less jako vzorový metody...
16:45 mornfall je hrozně to kostrbatý
16:45 spito jako jo
16:45 mornfall + slovosled
16:45 mornfall a clone() je taky prasečina
16:46 spito ale ono reprezentovat množinu pomocí vektoru (pak bych nepotřeboval less a tag) mi přišlo jako....divný
16:46 mornfall jakou množinu?
16:46 spito no jasně, ono by to chtělo asi celý nějak přepsat
16:46 spito ale takhle, já jsem dostal za úkol tohle přepracovat po jedné holce
16:47 spito ObjectSet je množina
16:47 mornfall ..!
16:48 mornfall ještě tohle
16:48 spito ..?
16:48 mornfall to je takový OOP za trest tohleto
16:49 mornfall počítám že zadání už šlo ven?
16:49 spito ne
16:50 mornfall jaký to má kód ten předmět?
16:50 spito pb161
16:50 spito ale skoro všechny informace najdeš tu: cecko.eu/public/pb161
16:50 spito http://cecko.eu/public/pb161
16:52 mornfall a je někde to zadání k přečtení?
16:53 spito mmt
16:54 spito http://cecko.eu/public/pb161/fall14_cviko09_original
16:54 spito (a nesmím to zapomenout smazat)
16:54 spito a teda... to zadání přepisuju, protože to se nedá
16:55 mornfall nedá no
16:55 mornfall :-)
17:02 mornfall šablony ještě asi neumí co? :-)
17:02 spito ne
17:02 spito umí virtual
17:02 spito a to jenom někteří
17:02 spito (ti, kteří dávají aspoň trochu pozor)
17:02 spito šablony jsou až na konci
17:03 mornfall chápu
17:04 mornfall jinak teda tag() == other->tag() je pěkně matoucí když to je void * a vrací to adresu řetězcové konstanty
17:05 spito no, já jsem nevymyslel jak jinak vytvořit něco unikátního, co je ale společné pro všechny instance dané třídy
17:05 spito a ukazatel vtable nejde legálně získat
17:05 mornfall typeid
17:06 mornfall The class type_info holds implementation-specific information about a type, including the name of the type and means to compare two types for equality or collating order. This is the class returned by the typeid operator.
17:07 mornfall typeid(*x) == typeid(*y) je legální cesta jak srovnat dynamické typy
17:07 spito jasně, ale já potřebuju udělat uspořádání na typech
17:07 spito protože std::set
17:08 spito (a nebo se vykašlat na std::set)
17:08 mornfall která čast „collating order“ není jasná? :)
17:08 mornfall type_info má metodu before
17:09 spito No guarantees are given, in particular, the collation order can change between the invocations of the same program.
17:09 mornfall To je snad jedno ne?
17:09 spito a to znamená co? :)
17:09 mornfall Že když ten program spustíš 2x tak můžou stejný typy být uspořádaný jinak.
17:10 mornfall To v podstatě platí aj o adresách těch konstant...
17:10 mornfall (aspoň teoreticky)
17:10 spito jasný, to je ta moje angličtina :D
17:10 spito btw: shared dokumentace - shnije?
17:10 mornfall ne, říkám že to mám ve svým stromě aplikovaný
17:10 mornfall ale push čeká než opravim ty global_ctors
17:11 mornfall hm, a ty ap_enum věci jsou asi taky rozbitý
17:12 mornfall protože ten linker asi vyhodí ty globální proměnný kde jsou uložený LTL vlastnosti
17:12 mornfall resp. pruner
17:12 mornfall ale to taky spravim
17:12 mornfall možná to i stihnu dneska
17:14 mornfall já bych to asi udělal tak že bych dal každýmu objektu metodu která by vyrobila vektor čísel
17:14 mornfall první bych tam vrazil hash_code vlastního typeid a pak všechny definující body
17:15 mornfall a pak na tom pustil lexicographic_order
17:15 spito no, zajimavé řešení
17:16 mornfall aspoň by se něco naučili z toho vzoráku ;-)
17:17 mornfall (s tím že o typeid se může starat něco z Geometry2D, takže per-objekt metody jen vyrobí vektor bodů...)
17:19 mornfall teda takhle
17:19 mornfall nejkratší je ten set budovat podle getSVG
17:19 mornfall ale to možná není úplně něco co jim chceš ukazovat
17:20 spito a nevím, jestli bych to tak fakt chtěl i implementovat
17:20 mornfall ah, ale hash_code je C++11
17:20 spito to skoro nevadí
17:20 mornfall no, implementace je dost triviální
17:21 mornfall vyházíš všechny equals, tag a less a Compare vrátí x->getSVG() < y->getSVG() :)
17:21 mornfall fungovat to bude...
17:22 spito jako jo, fungovat to bude
17:23 spito ale je to opravdu to, co bys chtěl mít normálně v kódu?
17:23 spito ty vektory se mi zdají být lepší
17:23 mornfall já bych nic z toho asi v kódu mít nechtěl ;D
17:26 mornfall ono celkově kontejnery syrových ukazatelů jsou docela nebezpečný
17:26 mornfall ale z toho asi jen tak nevybruslíš
17:27 spito unique_ptr je ale až c++11
17:30 mornfall „If a constructor throws an exception, the object's destructor is *not* run.“
17:31 mornfall tzn. že ten kopírovací konstruktor v ObjectSet je děravej jak síto
17:31 spito jo, to já vím
17:32 spito a teda - c++11 umožňuje volat destruktor, i když ty vyletí výjimka v konstruktoru
17:33 spito ty => ti
17:33 mornfall umožňuje, ale jak to je napsaný to neudělá
17:33 spito to já vím
17:33 mornfall a i kdyby jo, furt to je děravý :-)
17:33 mornfall no to je asi jedno
17:34 mornfall jen že je trochu škoda učit lidi takovýhle nejistý vzory
17:34 spito tihle lidi jsou rádi, že umí napsat virtuální metodu
17:34 mornfall já vim já vim
17:34 spito tak jako víc jak polovina z nich
17:35 mornfall jo, a getObjects? zrušit :-)
17:36 mornfall vidíš
17:36 spito asi jenom ten ne-const
17:36 mornfall radši bys je měl nechat naimplementovat begin() a end()
17:36 mornfall a ideálně nějakej rozumnej iterátor k tomu, s rozumným rozhraním
17:37 mornfall operator= určitě zaslouží komentář „proč tohle funguje“
17:38 spito však jo, to by mělo být na přednášce
17:38 spito a také na upraveném zadání
20:57 spito__ joined #divine
22:36 spito__ joined #divine

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