Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2013-05-25

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

All times shown according to UTC.

Time Nick Message
07:54 xstill hej, já jsem to rozbil tím, že jsem do transition poslal Vertex!
07:59 mornfall zajímavé :)
08:02 xstill ani ne, on tam totiž s tím dojde i store a tím pádem Pool a ten pak alokuje z více threadu při NTree
08:02 mornfall ojoj :-)
08:04 xstill asi musíme vytvořit jinou strukturu, kterou budeme dávat do frony, a přijmout to že libovolný store musí být schopný dekomprese...
08:15 mornfall tak zatím to jde řešit tak, že partitioned visitor změní store ve vertexu když ho dostane
08:16 mornfall ale pokud budeme dělat nějakou kompresi se slovníkem tak to přestane fungovat
08:18 mornfall každopádně mi z toho plyne, že store by asi neměl mít přístup k poolu
08:19 xstill no NTree je závislý na tom, že má k dispozici lokální Pool, takže ho odpněkud brát musí, to je teď store
08:21 mornfall hm
08:21 xstill tak před tím jsem to měl tak, že QueueVertex dostal libovolný Pool a zkonvertoval se na Vertex
08:22 xstill to s NTree fungovalo dobře
08:22 mornfall jasně, ale ten store stejně budeš potřebovat
08:22 xstill ale na slovníkovou kompresi by to bylo k ničemu
08:22 mornfall potřebuješ store z originu a pool z targetu
08:22 mornfall jedna možnost je přidat do Vertexu aj pool
08:23 xstill v podstatě
08:23 mornfall a asi bych to tak udělal
08:23 mornfall a můžeme se zamyslet jestli dokážeme do fronty cpát něco menšího...
08:23 mornfall abychom se vrátili k tomu, že vertex existuje jen v callstacku
08:24 xstill to by bylo fain
08:24 mornfall v podstatě tam asi stačí dávat discriminated union handle/node
08:24 xstill ale na remote se bude muset do Vertex přidávat i store...
08:25 mornfall Partitioned ví odkud to přišlo, takže tomu šoupne správnej origin store
08:25 xstill partitioned ale nemá přístup k cizím store ne?
08:26 mornfall zrovna teď asi nemá
08:26 mornfall ale to lze řešit později, je to jen optimalizace
08:27 mornfall taky je možnost na to rezignovat a posílat v IPC prostě Node, stejně jako v MPI
08:28 xstill to by možná bylo rozumné přechodné řešení
08:29 mornfall no, přechodně tam můžeš taky nechat Vertex
08:29 mornfall s tím že bude 4 pointry velkej
08:30 mornfall a někdy časem se zmenší na jeden otagovanej pointer :-)
08:30 mornfall (to je hrozný jak když se někde objeví pár volnejch bitů, na co všechno je jde použít... ;-)
08:31 mornfall (taky by se mohlo říct, že handle s rankem/tagem -1 je node)
08:32 xstill no to ti nepomůže, protože po MPI musíš poslat obojí
08:32 xstill vrazím ten Pool do Vertex.
08:33 mornfall taky pravda
08:33 mornfall hmm
08:34 xstill potom bych se vrátil k tomu, že to co se posílá přes IPC je store-specific.
08:34 mornfall jo, to počká
08:35 xstill však říkám potom, teď to dělat nebudu, ono to bude fungovat i tak.
09:00 spito joined #divine
10:47 Erbu joined #divine
10:52 Erbu " "/part
10:52 Erbu pardon
11:32 xstill mornfall: queueuInitials se má dělat na master threadu?
11:35 xstill hm, to nebyl master...
11:35 xstill je to úplně rozbitý
11:56 mornfall queueInitials se dělá nejspíš všude ne?
11:57 xstill asi jo, se mi nenastavili idčka
11:57 xstill to už jsem vyřešil
12:10 xstill už jsem asi zase dereferencoval handle na špatném stroji
12:41 xstill hmm tohle fakt nedokážu vysvětlit, to je jako kdyby se změnil hash uzlu
12:46 xstill do hajzlu takhle se nedá pracovat, když padá debugger
12:58 Erbu přímo gdb?
13:01 xstill jo měl jsme coredump od gdb...
13:02 xstill asi 800MB ;-)
13:02 Erbu jak moc úchylné je debugovat gdb gdb? :]
13:03 xstill asi dost, a na to bych potřeboval mít gdb s debug symbolama a vůbec
13:03 mornfall no, jde to :)
13:05 xstill je to divné, první iterace owcty projde v pořádku a druhá mi pak řekne, že je tam transistion, která má mít oba vrcholy jinde...
13:05 mornfall a hasher je všude dobře jo?
13:05 mornfall jakože nepočítá někdo slack do hashe?
13:06 xstill nic jsem mu neprováděl, tak snad je v pohodě
13:07 xstill hmm ono to prostě padá při tom když se znova prochází stavový prostor
13:07 xstill teď mi to spadlo v CE
13:07 xstill hmm
13:07 xstill disown
13:07 mornfall :D
13:08 xstill ne ten už je opravený
13:10 xstill jak z CE vykopu shared když je to coredump a nemůžu zavolat shared()?
13:10 xstill aha už to mám
13:17 xstill je nějaký rozumný způsob jak debugovat po MPI?
13:17 xstill spoštět si dva terninály s gdb přes mpiexec mi moc rozumné nepříjde...
13:20 mornfall nic lepšího nevymyslíš :)
13:21 mornfall jedině že bys někde sehnal nějakej mpi-capable debugger
13:21 mornfall ale asi by sis ho musel koupit
13:21 mornfall a nevim jestli by fungoval moc dobře
13:47 xstill hej co to je za bordel, mě se následník nacpal do Blobu předka...
13:47 mornfall :D to je docela veselý
13:47 mornfall ale pool je LIFO, takže jestli tam byl free na toho předka tak další alloc ho prostě použije
13:48 xstill pak se divím, že to nefunguje a mění se hash
13:48 mornfall možná by to v debug módu mohlo být spíš FIFO
13:49 xstill no on se uvolnit neměl, je to bez komprese...
13:49 mornfall taky by to mohlo mít option nepoužívat freelisty
13:49 mornfall vůbec
13:49 xstill no já jsem si spoměl, že jsme zapnul NVALGRIND...
13:49 xstill což je docela chyba
13:49 mornfall :-)
14:07 xstill hej ten stream operátor na Blob je dost podezřelej.
14:08 xstill podle valgrindu je tam invalid read of size 4
14:08 xstill a já bych se moc nedivil
14:08 xstill to vůbec nepočítá s tím, že by délka blobu nebyla dělitená 4
14:09 xstill i když to by měl být menší invalid read asi
14:12 xstill aha no tak valgrind si stěžuje, že je to posunuté o 2
14:12 xstill což by nicméně fungovat mělo, protože se to zarovnává na 8
14:15 mornfall kdyby byl rozbitej bitstream operator tak to asi funguje ještě mnohem míň, ne?
14:18 xstill asi jo
14:18 xstill ten Blob je fakt smazaný...
14:33 Erbu mornfall: tak snad už asi poslední patch na to instanciování procesů je na mailing listu. Mrkneš se, prosím?
14:49 mornfall Erbu: Hmm, ten konstruktor Automaton na konci makeProcess voláš pro side-effect?
14:50 Erbu mornfall: side-effect?
14:50 Erbu mornfall: vytvořený proces ještě proženu preprocesorem, jako všechny ostatní
14:50 mornfall nebo nevim, pokud to nemá vedlejší efekt tak ten statement nedělá nic, ne?
14:50 Erbu jo, má to side-effect
14:50 Erbu všechny konstruktory preprocesoru mají side-effect
14:51 mornfall zajímavé
14:52 Erbu (kromě toho kořenového teda, ale ten je výjimka)
14:53 mornfall a nebylo by lepší mít ty efekty jako explicitní process()?
14:54 mornfall Declaration( ... ).process( ... ) je asi zápisově jasnější?
14:54 mornfall navíc se tím oddělí input a output parametry
14:55 Erbu zase by to akorát prodloužilo kód
14:55 mornfall velmi marginálně
14:55 Erbu jako, asi by to bylo lepší, ale nechal bych to na později, až odevzdám
14:56 mornfall ok, já to tam připíšu do TODO, pak udělej pull abys neměl konflikty
14:56 Erbu ook
14:56 mornfall ten konstruktor Constant kterej tu hodnotu zeserializuje a pak zase deserializuje je nutný? :)
14:57 mornfall (value = _value by asi taky docela fungovalo ne?)
14:57 Erbu potřebuju tam nějaký kontext
14:58 mornfall však "parent"
14:58 Erbu tak jo, upravím to v dalším patchi
14:58 mornfall Constant( int x, Context &c ) : Parser( c ), value( x ) {}?
14:58 Erbu ještě pak dneska pošlu patch na for loop, a tím bych tu strukturu do diplomky uzavřel
14:58 mornfall ty máš v pondělí termín co?
14:58 Erbu jj
14:58 mornfall Ok.
15:00 mornfall jo, možná by ještě bylo dobrý prohodit "key" a identifikátor
15:01 mornfall protože takhle to vypadá dost mimozemsky
15:02 Erbu ook
15:13 Erbu mornfall: tak ta přímá inicializace konstant nefunguje
15:13 mornfall jakto?
15:13 Erbu divine: /home/erbureth/Projects/divine/divine/dve/expression.h:44: divine::dve::EvalContext::ImmValue divine::dve::EvalContext::pop(): Assertion `!stack.empty()' failed.
15:14 Erbu data/proc_instance3.dve
15:51 mornfall Erbu: pull
15:52 Erbu mornfall: thx
16:19 Erbu mornfall: syntax může být for( x :: a : b ) {...}?
16:27 mornfall není lepší x : a .. b?
16:28 mornfall a : b je divnej zápis intervalu
16:30 Erbu a .. b nejde, expression je moc greedy
16:32 mornfall a je potřeba aby tam šlo napsat neuzávorkovanej expression?
16:32 Erbu nebo můžu zavést nové klíčové slovo
16:32 Erbu i to je možnost
16:33 mornfall 90 % času tam stejně bude konstanta nebo identifikátor
16:34 mornfall rozšířit parser expression tak aby volitelně vyžadoval závorky kolem složených výrazů by mělo být jednoduchý
16:35 mornfall případně ho zabalit do id | const | ( expr )
16:35 Erbu ook, tak zatím tam dám povinné závorky, a zbytek nechám jako TODO implementační detail
16:36 mornfall no, jen aby ty implementační detaily nebyly TODO ještě o Vánocích...
16:36 Erbu pokusím se do pondělka, záleží, kolik mi zbyde času
16:37 mornfall :-)
16:38 Erbu anebo přidám do lexeru token doubleperiod
16:39 mornfall to radši nazvi ellipsis :-)
16:39 Erbu ook
16:54 Erbu == All 15 tests (1030 subtests) passed. 9 tests skipped.
16:58 mornfall sounds good
17:03 xstill mě se tady dějou straště divný věci, jako že valgrind mě tvrdí, že Blob je smazaný z řádku, který jsem zakomentoval...
17:03 mornfall a pouštíš správnej divine jo? ;-)
17:04 xstill právě, že jo protože jsem i smazal celý build adresář
17:05 xstill hmm, ale on je tam zase ten veselej ring...
17:05 mornfall tak on asi nikdy nezmizel žejo :)
17:05 xstill ale že by to způsobovalo takový věci to je divný
17:05 mornfall to je dost nepravděpodobné
17:05 xstill já vím, jen mě nenapadlo, že se projeví na modelu co má tak 10 stavů
17:06 mornfall hmm
17:06 mornfall jakou hloubku to má?
17:06 xstill ale padlo to kvůli tomu ringu
17:06 xstill cgdb nedošlo ještě na konec a je na 30k
17:06 mornfall to vypadá spíš jako že se zacyklilo generování protipříkladu
17:07 mornfall jak vypadá backtrace v masteru?
17:07 xstill taky možný teoreticky
17:07 xstill no zdechne to při generování CE cyklu
17:08 xstill master přežil takže nemám backtrace...
17:08 mornfall aha
17:08 mornfall já bych si do toho mastera dal breakpoint
17:08 mornfall jinak než mít gdb pro každej proces to asi stejně nepůjde
17:08 xstill no já se možná nejdřív podívám na ten CE, nějak mě to nenapadlo ale on je takový ošemetný
17:09 xstill a nebo ne ať vidím kde mám hledat
17:13 xstill hmm ten trace určitě neměl mít 820 elementů..., parentTrace cyklí
17:17 mornfall jo, to odpovídá
17:31 xstill No jo, kterej idiot psal serializaci CeShared -- aha já ;-)
17:32 xstill ono tam totiž chybí zrovna to pole díky kterému to má zastavit
17:33 mornfall :D
17:34 mornfall blíží se to blíží
17:34 mornfall otázkou je jestli jde nějak zabezpečit aby se tohle jen tak nestalo...
17:34 mornfall ale derive asi v C++ moc není :-)
17:35 xstill bohužel...
17:35 xstill na tohle by to bylo ideální, škoda še C++ nemá nějakou compile-time reflection
17:35 mornfall tak, má, ale ne dost silnou
17:36 xstill no vidí jen na nested typy a ne na hodnoty
17:36 xstill owcty test prošel, spustím všechny
17:42 mornfall vidí aj na fieldy
17:42 mornfall ale ani jedno neumí enumerovat
17:44 xstill jak vidí na fieldy? Ale bez enumerace je to asi na nic.
17:44 mornfall decltype
17:46 xstill hm
17:51 mornfall musel bys to psát zhruba jako struct CeShared : magic_tuple< a, b, c, d > { a &a() { return get< 0 >( *this ); } ...
17:52 mornfall nebo používat indexaci typem, jako má lensovej tuple
17:53 xstill jo je to poněkud bolestivý, snad se časem dočkáme compile time reflection...
17:53 xstill ty máš v lens vlastní tuple?
17:53 mornfall tak, s NEWTYPE makrem by to šlo
17:54 mornfall xstill: no, lens nemá vlastní paměť ale našteluješ ho na nějakou existující
17:54 mornfall xstill: a hlavně teda ty fieldy v tom maj runtime proměnnou dýlku
17:54 xstill asi se podívám co to je za magii, až dodělám to MPI
18:09 spito he, nějak to flákám :)
18:09 spito ale zvítězil jsem na tuplem
18:10 spito teď dotluču ten bittuple
18:10 spito (ale je to peklo ty šablony :D )
18:15 spito (a bitshifty jsou taky peklo)
18:17 mornfall piš unittesty ;-)
18:17 mornfall šablony jsou dobrý
18:17 mornfall co bys dělal bez nich, žejo ;-)
18:18 spito Javu
18:18 spito tak výhoda šablon je ta, že když se ti to zkopiluje, tak to pak funguje
18:18 mornfall tos ještě neviděl Haskell :D
18:19 mornfall tam se ti klidně může stát, že když se to zkompiluje tak jsi právě dokázal že to je správně ;-)
18:19 spito ale viděl...z rychlíku
18:20 spito ale přijít na 2 letech bez Haskellu na rekurzivní vnořování bo jak se to jmenuje bylo....no musel jsem se zamyslet
18:34 Erbu mornfall: tak, snad už poslední patch dneska :) uděláš review, prosím?
19:30 mornfall jo hned
19:31 xstill mornfall: v OWCTY je 7 bitů k rozdělení mezi predCount a iteration ;-), jak je mám podělit?
19:31 mornfall xstill: cože? to je hrozně málo ne?
19:32 xstill na 512 iterací stejně asi nikdo čekat nebude?
19:32 mornfall nebo jako nových?
19:32 xstill no ne 7 bitů navíc ;-)
19:32 mornfall ajo
19:32 mornfall uf :-)
19:32 xstill doufám, že ses nelekl moc ;-)
19:32 mornfall jen trochu :-)
19:33 mornfall 18 a 10?
19:33 mornfall hm
19:33 mornfall kdybych tak uměl počítat
19:33 xstill 1 + 1 + 20 + 10?
19:33 mornfall 20 a 10
19:33 mornfall asi jo
19:33 xstill ok
19:50 mornfall Erbu: Proč je tam naduplikovaný makeProcess?
19:50 Erbu mornfall: kruhové závislosti, refaktoring je v plánu
19:51 mornfall ...
19:51 Erbu já vím, taky se mi to nelíbí
19:51 mornfall vyrobit z toho šablonovou funkci by mělo být otázkou pár minut
19:52 Erbu tak jo
19:53 Erbu jak se na to koukám, žádné tam nejsou
19:53 Erbu za chvíli pošlu patch, který to spraví
19:53 mornfall ok
19:55 spito ohňostroj :)
19:56 mornfall spito: kde?
19:56 spito ignis brunensis, výstaviště
19:57 mornfall jo tak
19:58 xstill moc daleko
20:04 xstill sakra ještě kdyby prošli unit testy...
20:09 Erbu mornfall: tak mám připravený patch, mám ho přidat k původní várce?
20:09 mornfall J.
20:12 Erbu mornfall: ook, máš ho na mailinglistu
20:22 mornfall spito: Bud
20:22 mornfall spito: Budeš mít co dělat aby ses probojoval na 4. místo. ;)
20:22 mornfall (zatracený ^M :-)
20:25 xstill hm chybí mi v ParallelCheck jedno vlákno...
20:29 mornfall 6.5M zdrojáků libstdc++ v jednom mailu... super ;-)
20:29 mornfall to jesm přesně potřeboval :D
20:29 mornfall jsem*
20:29 xstill však sis je poslal sám ;-)
20:29 mornfall For your future reference.
20:30 xstill ještě že už nemám mail na isu, kdo ví, co by s tím udělal
20:31 xstill bych ti taky rád něco poslal ale ještě bojuju s těma unitama
20:32 xstill někde se mi nezinicalizovali idčka ve storu nebo co
20:35 mornfall stane se :-)
20:35 xstill jo ale jen v tom testu, zdá se
20:37 xstill no to spíš vypadá, jako by jedno vlákno stihlo zdechnout než ostatní zpracují jeho data...
20:38 xstill což normálně nevadí, protože Store přetrvá déle než vlákno
20:39 mornfall to se asi stát může, protože ne všechny ty testy čekají na nějakou společnou terminaci
20:39 xstill ale když je ten store lokálně ve _visit tak to bouchne
20:39 xstill asi hodím Store do Checku přímo, ne jen do _visit
20:40 mornfall jo, to by mohlo pomoct :)
20:40 xstill jinak mě docela štve, že v těch unitech je víc bych než sami odhalí.
20:41 mornfall tak, unit testy na MPI se píšou fakt blbě :)
20:41 mornfall ale na visitor.test.h už jsem si někdy stěžoval
20:41 mornfall ostatní testy jsou dobrý
20:41 mornfall a ono nakonec visitor.test.h je taky užitečný, ale jen někdy :)
20:42 mornfall navíc tohleto nebyla chyba v testu
20:42 mornfall jen jsi vyrobil novou assumption
20:42 mornfall (to by se skoro dalo říct že je správně že se ten test rozbil)
20:43 xstill asi jo, alespoň jsem se zamyslel, že to nikde nedělají algoritmy
20:47 xstill ono tohle paralení jádro divine nemá moc rádo když se do něj hrabe...
20:49 Erbu xstill: jo, na to jsem taky narazil, když jsem se ho snažil před 2 lety přesvědčit, aby po skončení jednoho algoritmu spustil ještě můj :)
20:49 xstill sakra jeden test ale cyklí, to se mi vůbec nelíbí
20:50 xstill ten test mi udělal 2.5GB coredump :-)
20:53 xstill to je shared, do toho jsem nehrabal. Divné
20:58 xstill spito: podívej se na visitor.test.h:389, konkrétně na to jak neinicializuješ Store pomocí master store. Když jsem to tam naspal tak to zacyklilo.
20:58 xstill nevím co tam má být správně ale tohle je podezřelé
20:58 mornfall :D
20:59 xstill bych skoro řekl, že ten test běží s oddělenýma tabulkama
21:02 xstill tak asi ne ten shared_ptr má count 49
21:02 xstill to mě příjde teda trochu dost ale
21:04 mornfall mi* přijde* :-)
21:04 mornfall on default kopírovací konstruktor storu normálně funguje
21:05 xstill no, ale proč nefunguje inicializace přes mastera?
21:07 mornfall to tak docela nevim
21:09 xstill navrhuju tu záhadu nechat spitovi, ještě jednou to projedu na testech a pokud projdou tak ti to pošlu
21:09 mornfall :-)
21:09 mornfall sounds like a plan
21:15 Erbu Jak nejlépe v zápisu gramatiky vyjádřit, že neterminály můžou být v libovolném pořadí?
21:17 mornfall Definuj si na to nějakou syntaxi.
21:17 mornfall Nebo operátor.
21:19 Erbu StateDecl ::= \textit{arbitrary}( \text{States Commits Inits Accepts Asserts}) třeba?
21:20 mornfall Když někde řekneš co to znamená, proč ne. :)
21:21 Erbu stačí to jako footnote, nebo by bylo lepší to zadefinovat přímo v textu?
21:21 mornfall Jen máš nevyváženej whitespace kolem závorek.
21:21 mornfall Asi v textu, není to úplně obvious.
21:21 Erbu ook, díky
21:21 mornfall Ale když pro to vytváříš extra neterminál, tak je to zbytečný ne?
21:22 mornfall StateDecl ::= State | Commits | ...
21:22 mornfall ... ::= StateDecl* ...
21:23 Erbu ono to není úplně na *, každý tam má být nejvýše jednou (i když implementace povoluje víc, aby bylo zaručeno fakt libovolné pořadí)
21:26 mornfall No, implementace odpovídá něčemu jako StateDecl ::= State | Commits | ... | \epsilon a StateDecls ::= StateDecl^5 ne?
21:26 mornfall Ani tone.
21:26 mornfall to ne*
21:27 Erbu ten první max 1x, druhý 2x, a pak to roste s mocninou 2
21:27 mornfall :D
21:27 mornfall to není úplně zdravý :-)
21:28 mornfall jediný štěstí máš že tam jsou klíčový slova takže ty parsery umíraj rychle
21:28 * xstill sending patches
21:29 Erbu jj, a zas tolik tam toho není. U toho Systemu to bylo horší, tam původně bylo while( arbitrary(...)), tak jsem tam raději dal to variadické maybe
21:30 spito xstill: co se ti zdá špatně na defaultním copy konstuktoru?
21:31 mornfall spito: Nic, nelíbí se mu že nefunguje ten explicitní.
21:32 xstill mornfall: můžeš se na to podívat, než to pushneš?
21:33 xstill spito: poněkud jsem změnil extension v OWCTY tak pozor pokud tam budeš něco dělat.
21:33 spito xstill: já zatím bojuju s BitTUPLEM
21:33 mornfall xstill: Jo, čtu to.
21:33 spito sry za capslock
21:34 xstill v pohodě
21:34 mornfall xstill: runSlaves ale nic nespouští ne? asi by se to spíš mělo jmenovat initSlaves?
21:34 xstill no inicializuje je a oni se pak spustí sami ne?
21:34 mornfall spito: Pak můžeš dát bittuple jako příklad do C++ za čokoládu. :-)
21:35 mornfall xstill: nespustí, dokud nezavoláš parallel()
21:35 xstill to by musala být hodně velká čokoláda
21:35 mornfall xstill: jen konstruktory
21:35 xstill hmm taky fakt
21:36 xstill mornfall: chceš abych to přejmenoval?
21:36 mornfall stačí patchem na konci
21:37 spito mornfall: to by nikdo nedal
21:37 mornfall spito: Nemůžeš vědět. ;-)
21:37 spito no dobře, dají to 2 lidi
21:37 spito možná 4
21:37 mornfall za semestr? to by nebylo zlý
21:38 mornfall to by se tu čokoládu aj vyplatilo sponzorovat a ty lidi pak chytat pro lab ;-)
21:39 xstill můžeme to na podzim vyzkoušet ;-)
21:39 mornfall xstill: to using AlgorithmUtils< Setup >::init; je asi zbytečný?
21:39 xstill asi jo, kde to je?
21:39 mornfall zrovna to vidím v Simulate, nevim jestli je to i jinde
21:40 mornfall nevšim jsem si
21:40 spito tak, švenda se nebrání tomu udělat na konci jedné přednášky reklamu labu
21:40 xstill asi ne, jsem to tam zapoměl když jsem se pokoušel zbavit this->template init< This >()
21:41 spito říct, co děláme, že je potřeba C++, že je to sranda a tak
21:42 spito mornfall: ale je problém v tom, že když si udělám BitTuple, tak funguje jenom nad elementárníma typama
21:42 xstill spito: to je problém ne? Ani ten Blob/Pointer není elementární.
21:43 spito právě, to se bude muset vykoumat
21:43 mornfall Hm. Ten 2008 copyright v parallel.h je dobrej. :-)
21:44 spito pokud se ale třída umí vypsat do čísla, tak je to v pohodě
21:44 mornfall spito: jakto?
21:44 spito protože shifty
21:44 mornfall no já si představoval že to tam nablituješ jako raw paměť
21:44 mornfall ala atomic
21:44 mornfall "trivially copyable"
21:45 mornfall (ne nutně elementary)
21:45 spito to bude fungovat, dokud budeš udržovat třídy zarovnané na velikost bytu
21:45 mornfall jakto?
21:45 mornfall teda, co tím myslíš?
21:45 spito ale pokud bys chtěl udělat Blob/Pointer na dejme tomu 24 bitů, tak už to může být problém
21:45 xstill no ne musíš je přetypovat zarovnané, pak posunout, při dereferencování obráceně
21:46 xstill spito: to by stejně musel mít attribute unpacked a to už asi v divine nic nemá
21:46 spito pokud struktura obsahuje bitfield, tak nevíš nic
21:46 xstill spito: jakto?
21:46 spito protože standard
21:46 mornfall no, hlavně nepotřebuješ nic vědět
21:47 xstill co říká standard o bitfieldu?
21:47 spito že to záleží na překladači
21:47 spito a platformě
21:47 mornfall všechny typy mají velikost v celých bajtech
21:47 spito a vůbec
21:47 mornfall bittuple ti jen umožní z nich něco uříznout
21:47 mornfall v bitech
21:48 mornfall bittuple< int, 10, int, 22, SomeClass, 31, flag, 1 >
21:48 spito mornfall: tak nějak to koukám
21:48 xstill následky si každý musí rozmyslet sám ;-)
21:48 spito jaj, ale s tou třídou to nemusí fungovat dobře
21:49 spito neví, který bit odřízneš
21:49 spito *nevíš
21:49 mornfall nebo ještě líp bittuple< bitsof< int, 10 >, bitsof< int, 22 >, bitsof< SomeClass, 31 >, ...
21:49 spito mornfall: přesně tak to mám navržené
21:49 mornfall spito: víš kterej bit odřízneš
21:49 mornfall ten co je nejvíc vlevo :-)
21:49 spito ten nejvyšší
21:49 spito ale nevíš, jak to kompilátor poskládá do paměti
21:50 mornfall to už není starost bittuplu ale
21:50 spito ale moje ano
21:50 mornfall no to jo :-)
21:50 spito :P
21:50 mornfall ale s bitfieldama to používat nejde, to je jasný
21:51 mornfall měl jsem za to, že to programuješ abys ty bitfieldy mohl nahradit :-P
21:52 xstill hmm, to je zajímavá otázka, třeba když teď vezmu ten Blob, a přetypoval bych tu paměť kde je na char* a potom přistoupil na [0], co se stane? Přistuji do nejvyšších, nebo nejnižších bitů, respektive kam v tom bitfieldu?
21:52 spito nevíš
21:52 spito a nikdy bys na to neměl spoléhat
21:53 mornfall jo, no
21:53 mornfall :-)
21:54 mornfall to že jsem to někde dělal neznamená že se to smí ;-P
21:54 xstill takže potom bude
21:54 xstill potřeba udělat z pointru bittuple?
21:54 mornfall možná
21:54 mornfall :-)
21:55 mornfall http://www.boost.org/doc/libs/1_53_0/libs/parameter/doc/html/index.html tohle je docela hezký na straně klienta :-) jen ta implementace těch funkcí je trochu nechutná
22:00 xstill mornfall: to má za cíl udělat C++ ještě nepřehlednější?
22:00 mornfall tak, ty keyword parametry v callsitech jsou fajn
22:01 xstill jo ale ty definice funkcí...
22:01 mornfall :-)
22:01 mornfall jo, trochu to kazí dojem
22:01 mornfall ale, it can be done! :-)
22:02 xstill :-)
22:02 xstill jako vypadá to drsně docala se divím, že to vůbec jde udělat.
22:03 spito magie s makry
22:03 spito a pak taky s pointry...bych to viděl
22:03 spito prostě si někdo řekl "challenge accepted"
22:03 mornfall no, to co vypadlo z hydry je ale trochu dafuq, pokud jde o LLVM
22:04 xstill mornfall: takže vidím, že ty připomínky dám jako dodatečné patche.
22:04 xstill mornfall: co vypadlo z hydry?
22:04 mornfall ./new:60:7: error: 'operator new' takes type size_t ('unsigned int') as first parameter
22:04 mornfall xstill: S tím počítám. :)
22:07 xstill mornfall: máš je tam
22:09 xstill a ráno můžu začít dělat na benchmarkách, teď je potřeba vyřešit takové důležité věci, jako jak se to bude jmenovat :-)
22:10 mornfall :D
22:11 xstill mornfall: wibble je integrovanou součástí divine, nebo se dá nějak rozumě použít i externě?
22:11 mornfall xstill: dá, v Debianu měl snad i separátní balík :-)
22:11 xstill wow, a on má samostatný repozitář?
22:12 mornfall http://repos.mornfall.net/wibble/ ... až na to že jsem asi sto let nestáhl updaty z divinu
22:13 mornfall hmm
22:13 xstill to by možná bylo docela fain, je tam dost užitečných věcí
22:13 mornfall kde udělali soudruzi chybu :-)
22:14 xstill co?
22:16 mornfall Erbu propašoval patch kterej mění wibble/ a zároveň divine/... :P
22:16 Erbu mornfall: jo? kdy?
22:17 Erbu však ten jsem změnil, ne?
22:17 mornfall Fri Mar  2 11:01:33 CET 2012  Jan Kriho <xkriho@fi.muni.cz>
22:17 mornfall * DVE: Make commas and semicolons optional in transition definitions
22:17 mornfall
22:17 mornfall M ./divine/dve/parse.h -2 +6
22:17 mornfall M ./wibble/parse.h +25
22:17 mornfall už dlouho
22:17 Erbu aha... sakra
22:17 Erbu dá se s tím teď něco udělat?
22:18 mornfall uvidíme
22:19 xstill já jdu spát.
22:19 mornfall xstill: dobrou :)
22:20 spito mornfall: je rozumný ulehčit si práci se shiftama použitím std::vector<bool>?
22:20 spito nebo to je zabiják výkonu?
22:20 mornfall těžko říct
22:20 mornfall asi spíš zabiják
22:20 mornfall to bude flipovat každej bit zvlášť
22:21 spito jak get jsem dal, ale se setem mám docela problém
22:21 spito jako ne, že by to nešlo...
22:21 spito ale te vzoreček je hnusný
22:21 mornfall :-)
22:27 spito já už jdu spát
22:28 spito (musím, bo by jinak Zuzka byla nevrlá)
22:28 spito a když je nevrlá, tak mi nechce dělat jídlo
22:28 Erbu :D
22:28 spito a to se mě dotýká
22:28 spito páč mám pak hlad
22:28 spito a jsem nevrlý já
22:28 Erbu gn
22:28 spito brbly, jdu, hoj
22:28 spito left #divine
22:28 Erbu nás ještě čeká dlouhá noc
23:29 mornfall xstill: http://repos.mornfall.net/wibble/embeddable/ jsem aktualizoval
23:31 mornfall ty 4 patche který v divinu hrabou do wibble jsem zduplikoval
23:32 mornfall objeví se v mainline jako patche které nic nemění
23:32 mornfall ale snad by mělo všechno fungovat :-)

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