Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2013-11-07

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

All times shown according to UTC.

Time Nick Message
07:33 xbarnat joined #divine
07:53 xbarnat Az budu velkej, taky se naucim programovat. A muzu se na celou akademickou karieru vy...t.
07:55 xbarnat Kam se podivam, tam na me skacou nevyreseny kostlivci ze skrine (a to nemluvim o Diablu).
08:06 xstill ty jsi dneska v nějaké špatné náladě, to je to s tou akademickou kariérou vážně tak špatné?
08:21 xstill Changovi můžeš napsat, že floaty fungují v alpha 2 a ten __dso_handle nevyřešíme nejspíš bez modelu
08:23 xbarnat ok, dik za info, napisu mu ...
08:35 xstill jinak dneska nedorazím na cviko, budu se učit na vnitro
09:21 spito joined #divine
09:23 xstill spito: ty taky nejsi na automatech?
09:25 mornfall hm, __dso_handle je globální proměnná někde v libc++ nebo tak něco, normálně je vidět v stavech
09:27 xstill však uvidíme co nám pošle za model. Nebo je to už opravené v alpha2
09:28 spito xstill: nejsem
09:29 spito mornfall: pushneš tu opravu std::threadv libcxx?
09:30 mornfall no, byl bych radši kdyby to mělo smysluplnější nadpis :-)
09:30 mornfall zrovna z tohohle patche není zas tak moc poznat co bylo špatně
09:53 mornfall spito: už jsem to změnil a pushnul
09:55 mornfall mám udělaný ty leaky btw., ale někde v libc++(abi) je leak kterej se mi zatím nepovedlo opravit, takže padaj testy :-)
09:55 mornfall spito: jo, a ten std::thread si rozbil
09:55 mornfall libcxx/std/thread:332:5: error: attempt to use a deleted function __invoke(_VSTD::move(_VSTD::get<0>(__t)), _VSTD::move(_VSTD::get<_Indices>(__t))...);
09:56 spito co?
09:56 spito mně to šlo přeložit
09:56 mornfall co ti šlo přeložit?
09:56 spito úplně v pohodě
09:56 mornfall ale co?
09:56 mornfall std::thread t2( f2, std::ref( n ), std::ref( m ) );
09:56 mornfall tohle nefunguje
09:57 spito hmm
10:02 mornfall o tom že to šachování s unique_ptr co tam máš je přinejmenším podezřelý nemluvě
10:06 spito mornfall: no, řekl bych, že nechci mít memory leak, pokud selže volání pthread_create
10:06 spito to s tím unique_ptr jsem použil to samé, co tam původně měli
10:12 spito nemluvě o čem?
10:16 mornfall ale nic
10:16 mornfall __p.second bude kdo releasovat v hlavním vlákně?
10:18 mornfall __p->second
10:20 spito no, to by snad mělo zmizet buď v destruktoru __p, nebo to převezme vytvořené vlákno
10:20 spito nebo se pletu?
10:22 mornfall nevim cos chtěl říct, ale funguje to (proto že __p->second se "leakne" při __p.release())
10:24 mornfall chybu jsem taky opravil
10:25 mornfall ty memory leaky jsou fakt otrava
10:40 spito mornfall: pushneš to, abych se mohl podívat?
10:44 mornfall vydrž, je tam ještě další problém
10:44 mornfall už to sice přeložím ale nefunguje to
10:48 mornfall spito: viz ~thread, thread.cpp:35
10:52 spito nefunguje na tom to, že se při zpracování výjimky zavolá terminate, co?
10:52 mornfall hm?
10:53 mornfall ne, prostě nemůžeš zavolat destruktor na thread kterej běží
10:54 spito no, to je snad v pořádku, ne? resp. nevidím, kde může být problém....
10:54 mornfall jo, ale xstill má chybu v modelu
11:00 mornfall zdá se že napsat dvacetiřádkovej program kterej funguje je ve třech lidech práce na měsíc :D
11:00 xstill :-D
11:01 xstill hele aspoň si můžeme někde napsat, že divine objevil chyby v libc++
11:02 mornfall jenom jednu
11:03 spito to, co jsem opravil?
11:03 mornfall „opravil“ :D
11:03 spito co s tím je ještě špatně?
11:03 mornfall no nic, jen že tvoje oprava byla že to nešlo přeložit :-)
11:03 xstill ještě jsi psal, že jsi tam našel leak
11:04 mornfall no, leaky máme všude
11:04 xstill :-D
11:04 mornfall http://pastebin.dqd.cz/L2MS/ tohle je assertion-safe
11:04 mornfall searching...  14488 states, 37405 edges
11:05 mornfall hm, ten catch ... jsem si vlastně mohl odpustit
11:05 xstill zajímavé, já měl připojený IRC ale neměl jsem jinak internet
11:06 xstill ten vnitřní?
11:06 mornfall oba
11:06 mornfall jako že tam může být const std::bad_alloc &
11:06 xstill aha
11:07 xstill to je ale docela opruz psát to takhle
11:07 mornfall to teda
11:08 xstill hm, a vůbec ono by to neměl házet bad_alloc
11:08 mornfall a co by to mělo dělat?
11:09 xstill std::system_error (viz http://en.cppreference.com/w/cpp/thread/thread/thread)
11:09 mornfall system error to hází když selže pthread_create
11:10 xstill no, podle toho co tam píšou by to jinou výjimku dávat nemělo
11:10 mornfall "if thread could not be started"
11:10 xstill protože se nenaalokovala pamět třeba
11:10 mornfall může to hodit libovolnou výjimku
11:10 mornfall protože konstruktory parametrů můžou
11:11 mornfall (kopírovací/move)
11:11 xstill no nevím, zrovna ten bad_alloc je docela nečekanej v tomhle případě
11:11 xstill ale já se jdu raději učit
11:11 mornfall to je otázka no :-)
11:12 mornfall jenže bad_alloc se může stát kdekoliv, zejména pokud tam není explicitně napsaný že to nesmí alokovat
11:17 xstill hm, Křetínskej mě pěkně štve s tím, že se musíme naučit definice
11:19 mornfall :-)
11:19 mornfall xbarnat: btw. minulý měsíc jsem komplet zazdil výkazy ...
11:19 xstill hm, a k (S|LA)LR(k) si asi máme definice vycucat z prstu
11:20 mornfall a není paní Stanková která by to řešila, zdá se
11:23 mornfall tak jsem je vyrobil teď, naposled to dopadlo tak že to zdrcli do dalšího měsíce tak to třeba zafunguje i teď :-)
11:25 mornfall ono nám to totiž leakuje tu výjimku samotnou
11:25 mornfall __cxa_exception
11:26 xstill hm, ty leaky jsou oddělená property nebo je to pod assetion?
11:27 mornfall zatím je to pod assertion protože nemáme moc systém jak to rozumně kategorizovat
11:30 xstill jo, no ono by to chtělo celkově nějak poladit, aby taky šli hlášky k assertům a tak...
11:32 mornfall on by to měl __cxa_end_catch smazat...
11:32 mornfall hmhm
11:47 xstill hm, existuje něco jako LL(0) gramatika?
11:49 spito xstill: tuto otázku jsem si také kladl
11:50 mornfall proč ne?
11:50 mornfall jakej lookahead potřebuje regulární gramatika?
11:51 xstill no potřebuje vidět ten 1 symbol
11:53 xstill on je totiž problém že když do definice LL(k) dosadíš k = 0 tak dojdeš podle mě k tomu, že takové gramatika by nesměla nikdy pro jeden neterminál mít 2 pravidla
11:53 xstill nebo něco takovýho
11:53 xstill a to je o dost slabší než regulární
11:55 mornfall já nemam při ruce dostatečně přesnou definici LL
11:55 mornfall pamatuju si tak akorát že to k je lookahead
11:56 mornfall ale konečný jazyky vygeneruješ vždy aj gramatikou s jedním neterminálem, takže ty v LL(0) snad budou
11:56 mornfall (který navíc není na žádné pravé straně)
11:57 xstill to teda nevím
11:57 xstill ale to je asi jedno
11:57 mornfall Tak, S -> slovojedna S -> slovodva S -> slovotři je snad gramatika?
11:57 spito S->a | aa
11:57 spito ?
11:57 spito tohle zvládne?
11:57 xstill hele a recursive descent parser je zhora dolů nebo nebo zdola nahoru?
11:57 mornfall :D
11:58 xstill protože wikipedia tvrdí něco jinýho než Křetínskej
11:58 xstill mornfall: nepochyboval jsem o existenci té gramatiky ale o tom, jeslit je LL(k)
11:58 xstill teda pro nějaké k určite
11:59 mornfall jo já jen nepochopil cos myslel tím 2 pravidla pro jeden neterminál
12:00 mornfall ale pokud jde jen o existenci LL(0) gramatiky tak S -> \epsilon je taky gramatika
12:00 mornfall recursive descent začne od S
12:00 mornfall takže je asi shora dolů
12:01 xstill jo asi by mohli existovat, ale nebude smět nastat A -> \alpha | \beta, \alpha /= \beta
12:01 xstill začne od S, takže je top-down
12:01 mornfall xstill: no, z toho skoro plyne že to má nejvýše jedno slovo nebo tak něco ne?
12:02 xstill hm, to docela plyne
12:02 mornfall protože -> bude spíš ->^*
12:02 xstill super gramatika
12:02 xstill no ne to měla být pravidla
12:02 xstill ale i tak to plyne
12:03 xstill (definice třeba v http://www.fi.muni.cz/usr/kretinsky/IA006-cviceni.pdf strana 6)
12:04 xstill ty sbírky by byly asi nejlepší zdroj, kdyby tam ty definice byly všechny
12:05 mornfall no, to ->^* vypadne z toho že je LL
12:05 mornfall protože "všechny nejlevější větné formy"
12:05 mornfall ale to je jedno, je to otrava
12:05 mornfall a hlavně to je celý dost zbytečný
12:06 mornfall něco jako Hliněného izomorfizmy
12:06 xstill tak ty jsou trochu horší přece jenom
12:06 xstill tohle bys možná i mohl někdy omylem použít
12:07 mornfall fakt jedině omylem :D
12:08 xstill i když to už spíš použiješ ten recursive-descent parser, který se tam jen tak nenápadně (a možná špatně) zmíní
12:08 xstill s tím se i dá dělat
12:09 xstill (teda předpokládám, že Parsec je recursive descent)
12:10 xstill hm, ona fakt byla zadefinovaná strong LL i simple LL
12:10 mornfall jo, parsec je recursive descent
12:10 spito xstill: jaký je rozdíl mezi silnou a jednoduchou LL?
12:11 mornfall ale hlavně celá ta myšlenka derivovat parser z gramatiky je uhozená
12:12 xstill jednoduchá LL(1) je prej taková, kde pravidlo začíná terminálem a pro A -> \alpha | \beta musí každý začínat jiným terminálem
12:12 xstill mornfall: proč?
12:12 xstill spito: je to v sbírce u transformací LL(1)
12:13 mornfall xstill: protože na to aby to vůbec mělo nějaký smysl tak musíš používat virtuální terminály, atributový gramatiky a podobný zvěrstva
12:14 xstill co? o tom jsem nikdy neslyšel
12:14 mornfall tzn. tvoje terminály nejsou písmenka ale slova nějakýho regulárního jazyka
12:15 mornfall atributový gramatiky se učí v překladačích, to je takový to kde se pravidla gramatiky anotujou „kódem“ ala yacc/bison
12:16 mornfall gramatiky jsou stejně jen instance přepisovacích systémů a to dost omezená
12:17 mornfall stejně všichni co chcou popsat jazyk nějak srozumitelně a zároveň formálně používaj EBNF
12:17 xstill jo o překladače mám tuším v Trondheimu
12:17 xstill tak třeba mi to tam řeknou
12:18 mornfall pokud posledních dvacet let nespali tak možná ani ne :D
12:18 xstill ?
12:18 xstill jako že budou předpokládat že to ani nestojí za zmínku?
12:19 mornfall řekl bych že to co učí Křetínský je dneska spíš historická kuriozita ;-P
12:20 xstill hm, a proč se to potom učí a je to povinné?
12:20 mornfall překladače nejsou povinné myslim
12:21 mornfall automaty 2 nevím, to je taková kompilace ne zcela souvisejících věcí
12:21 xstill aha já myslel že narážíš na automaty
12:22 xstill překladače povinné nemám
12:22 mornfall u toho mi spíš přijde jako problém že to nemá koncepci
12:22 spito joined #divine
12:22 xstill no mě příjde jako problém, že to nemá materiály
12:23 mornfall ono je asi fajn vědět že existují nějaké parsery a že některé souvisí s gramatikami
12:38 xbarnat mornfall: ten patch na qcollection* mi nejde na aktualni CMakeList.txt vuci cemu si to delal?
12:39 mornfall xbarnat: mainline
12:40 mornfall co ti to napsalo?
12:40 xbarnat aha uz jsem to zparsoval ...
12:40 xbarnat chyba byla (jak jinak) u mne ...
12:44 xbarnat no odinstaloval jsem qcollection, a configure prosel ...
12:45 mornfall a žádný warning? a make furt failuje?
12:57 xstill hm, ale LR(k) a LALR(k) definici teda nechápu
12:59 xstill mornfall: hm, nejednozančná gramatika nemůže být vůbec LL ani LR pro žádné k ne?
13:03 mornfall já už ani nevim co přesně je nejednoznačná ...
13:03 mornfall ale víc stromů pro stejné slovo existovat asi může :)
13:03 xstill že existuje slovo které má více derivačních stromů
13:03 xstill jakto?
13:04 mornfall protože tě zajímá jen ten nejlevější, počítám
13:05 xbarnat ehm, nejlevejsi derivacni strom je blbost
13:05 xstill no ale levé derivaci odpovídá právě jeden strom
13:05 xbarnat j to ano
13:05 xstill takže víc stromů => víc levých derivací
13:05 xstill a teda není jednoznačně dané co by z toho mělo vyjít
13:06 xstill a teda nevidím jak by to mohlo být LL (popřípadě LR)
13:06 xbarnat j slovo, ktere ma vic derivacnich stromu v gramatice nejde deterministicky zparsovat, ano
13:07 xbarnat ale obcas se do pisemky dava priklad: jednoznacna gramatika, ktera neni LL(k) pro zadne k
13:07 mornfall tak, v principu jde dokud existuje deterministická volba mezi různými stromy
13:08 xstill xbarnat: takže gramatika která není LL(k) pro žádné k je třeba S -> Aa | aa, A -> a? a totéž pro LR(k)
13:08 xbarnat nebo jednoznacne nelevorekurzivni gramatika ...
13:09 xstill tohle jsem nepochopil
13:09 xbarnat jednoznacna *
13:09 xstill levorekurzivní není LL(k), ne?
13:09 xbarnat ano neni
13:09 xbarnat nebo je spravne rict ne neni?
13:10 xstill nevím
13:10 xstill čeština je divná
13:11 mornfall levá rekurze je taky důvod proč má bison/yacc speciální hack na aritmetiku
13:11 xbarnat S -> aBa | c; B-> a | eps
13:11 xstill v tom případě co nejjednodušší ne-SLL(1) gramtika kvůli konfliktu redukce-redukce je S -> a | a
13:11 xbarnat nejednoznacna
13:11 mornfall xstill: pravidla nejsou množina náhodou?
13:12 xstill aha jsou
13:12 xstill vidíš
13:12 xstill a mám to blbě
13:12 xbarnat nejlepsi trik je podle me s tim epsilonem
13:13 xstill xbarnat: ta gramatika co jsi poslal ukazuje co? LL(1) konflikt?
13:13 xbarnat jednoznacna nelevorekurzivni ktera neni LL(k) pro zadne k
13:14 xstill hm, to si musím zkusit
13:15 mornfall xbarnat: to se mi nezdá, nejdelší slovo je aaa?
13:16 xbarnat no prave to neni o delce slova
13:16 xbarnat aha blbe
13:16 xstill no mě vychází že je LL(2)
13:16 xbarnat j je
13:19 xbarnat S -> aSa | a
13:19 xbarnat ?
13:20 mornfall jo, na tohle potřebuješ nekonečnej lookahead
13:20 xbarnat S -> aSa | A ; A->a | aA
13:21 xbarnat j v tom je ta finta
13:21 xstill hm, jo smysl to dává, jen nenvím jak bych to přímo dokázal
13:22 xbarnat mej  nejake k, pak udelej (k+1) S -> aSa, a pak rozhodni volbu S->aSa | a
13:24 xbarnat BTW, jakym programem v Haskellu byste nasli nejmensi nepouzite prirozene cislo, ze seznamu cisel?
13:25 xbarnat IMHO, u LL je potreba utocit na ten nekonecnej lookahead, u SLL staci jen konecny kousek slova, ktery vznikne diky globalnimu follow napric ruznym derivacim
13:27 xstill xbarnat: \xs -> head (filter (`notElem` xs) [0..])
13:27 xbarnat kvadraticke ...
13:27 xbarnat jde to linearne
13:27 xstill :-D
13:28 mornfall no, nlogn jde
13:28 mornfall lineárně teda nevim :-)
13:28 xbarnat http://www.fi.muni.cz/~xbarnat/IB015/IB015_08.pdf
13:28 xstill tak n log n setřídit a pak je to jednoduché
13:29 xbarnat no uz to skoro mas plati ze to hledane cislo je totiz v rozsahu 0 az delka zpracovavaneho seznamu ...
13:31 xstill to vypadá na dost pěknou přednášku
13:32 mornfall to by mě zajímalo jak updatuješ tu tabulku v konstantním čase teda
13:33 xbarnat :-) normalne ne? naalokuju a offsetem ...
13:33 mornfall hm? :)
13:34 xstill no ale na to v haskellu potřebuješ aspoň ST monádu
13:34 xstill a mutable arrays
13:34 mornfall no to musí jít bez toho, počítám, jinak to není functional :-)
13:34 xstill Array je immutable
13:35 mornfall to jistě je
13:35 xbarnat hele ja to nevymyslel, zejo, ja to opsal z Pearls of Functional Algorithm Design
13:35 xstill ale ono se to ve skutečnosti nejspíš zoptimalizuje
13:35 xstill ale nebude to garantované
13:35 mornfall ono je nějaká šance že Sequence by to ubilo
13:36 xstill Sequence má log indexaci tuším
13:36 mornfall ve skutečnosti totiž nepotřebuješ random access
13:36 mornfall ale jen updatovat zleva doprava
13:37 xstill jakto?
13:38 mornfall aha houby
13:38 xbarnat posledni 4 slajdy te prednasky davaji reseni
13:40 xstill hm, někdy se na to podívám
13:41 mornfall tak, to jen redukuješ na to že v knihovně je accumArray :-)
13:41 mornfall a ten používá runST
13:42 xbarnat promin no ...
13:43 xstill tak ono na ST není tak moc špatného
13:43 xstill ale není to úplně funkcionální
13:43 mornfall proto se všechny ty operace jmenujou unsafeAccumST a tak :D
13:43 mornfall ono to právě není vůbec funkcionální
13:44 xbarnat no takze jsou problemy, ktere imperativne jdou resit optimalne a funkcionalne ne?
13:44 xstill to je děs, za poslední týden jsem asi 4x zapomněl jak se dělá SLR analyzátor
13:45 xstill xbarnat: řekl bych že jo
13:45 xbarnat xstill: :-) az to budes 15 let ucit ...
13:45 xstill :-D
13:46 mornfall xbarnat: řekl bych že to je situace podobná jako s turingáčem
13:47 xbarnat :-), turingac je ale v podstate informaticky zajimave tema, coz o SLR bych asi moc netvrdil ...
13:47 mornfall xbarnat: a přístupem na pásku v O(n) místo O(1) který máš v počítači
13:47 xbarnat nojo, ale cim pak naplnit 5 lete studium informatiky, ze ano ...
13:47 mornfall tím jsem myslel teda to funkcionální vs imperativní
13:48 xbarnat jo tak, no tak to jo ...
13:49 mornfall zkus si to implementovat na jednopáskovém stroji lineárně :-)
13:49 mornfall klidně ti aj přiznám abecedu int-ů
13:50 mornfall runST má v sobě schovanou „nekonečnou“ RAMku, stejně jako „běžná“ imperativní analýza
13:51 xbarnat no tak nic, tak ja budu na prednasce mene nadseny a reknu jim, ze je to stejne vsechno podvod ...
13:51 xbarnat jdu dom, dneska maji decka trdni schuzky ...
13:51 xbarnat tridni *
13:51 mornfall nj :)
13:53 xbarnat ad qcollection*
13:53 mornfall j?
13:53 xbarnat odinstaloval jsem qcollection, smazal _build, zkonfiguroval, prelozil a jdeto
13:54 mornfall takže to ten problém řeší?
13:54 xbarnat no ja myslel, ze ten qcollection je treba
13:54 xbarnat ale evidentne neni ...
13:54 mornfall na výrobu manuálu
13:55 xbarnat v jake podobe se ten man ual ma vyrobit?
13:56 mornfall no ten patch dělá to, že když qcollectiongenenerator nemáš tak se nepřeloží online help do GUI
13:56 mornfall stejně jako když není pdflatex tak nedostaneš pdf
13:56 xbarnat aha, ale nic to nenapise pri configure, jenom to nespadne ...
13:56 mornfall zajímavé
13:57 mornfall +            message( "-- WARNING: qcollectiongenerator not found." )
13:57 mornfall tohle nefunguje?
13:58 xbarnat asi ne
14:00 xbarnat no qcoll nemam v systemu a cmake _build | grep qcoll nenapise nic ...
14:01 mornfall ale qt máš jo?
14:01 mornfall a GUI zapnutý?
14:04 mornfall bez GUI ten qcollectiongenerator k ničemu potřeba není
14:12 xbarnat ano qt mam a GUI mam a zkompilovalo se a help v nem neni
14:12 mornfall veselé
14:15 mornfall já to neumim dost dobře nasimulovat, tak to asi nechám tak když to aspoň nějak funguje
14:17 xstill hm, kde se vezme, že LR(0) musí být bezprefixová?
14:18 mornfall to musí být každý DCFL ne?
14:19 xstill no to ne, S -> a | aa není bezprefixový
14:25 mornfall xstill: jo, to totiž platí jen o empty-stack DPDA
14:25 mornfall xstill: jenže akceptující stavy v DPDA jsou taky podvod :-)))
14:26 xstill co je empty-stack DPDA?
14:26 xstill jako, že akceptují prázdným zásobníkem?
14:27 xstill tam je nějaký problém?
14:29 mornfall musel by ses nedeterministicky rozhodnout jestli číst dál
14:30 mornfall protože když vyprázdníš zásobník moc brzo tak se zasekneš a nemůžeš akceptovat
14:31 xstill jako že při převodu z akceptování stavem na akceptování zásobníkem?
14:32 mornfall třeba, nebo kdybys chtěl napsat empty-stack DPDA na {a, aa}
14:32 mornfall tak buď po prvním a zásobník vyprázdníš (pak akceptuješ a, ale už ne aa) nebo nevyprázdníš (a pak neakceptuješ a)
14:34 xstill aha jo
14:47 mornfall (You
14:47 mornfall just have to be in the right "LL" mindset, which usually involves
14:47 mornfall watching 8 hours of Dr. Who before writing the grammar...  I actually
14:47 mornfall prefer LL if you didn't know...)
14:51 spito tak doktora znám, myslíš, že budu mít náskok? :D
15:00 spito xstill: je v IA006 ještě něco, na co bych se měl specificky podívat?
16:39 xstill spito: nevím, a píšeš mi na cviko funcka
18:40 xbarnat joined #divine
18:53 mornfall xbarnat: dobrý večer
18:54 xbarnat mornfall: i tobě
18:55 xbarnat děti se učí dobře, třídní schůzky proběhly v pohodě ...
18:56 mornfall chytré po tátovi jo? :-)
18:56 xbarnat je to možné, co já vím, kdo je jejich otec ...
18:56 mornfall :D
22:41 spito left #divine

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