Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2017-01-20

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

All times shown according to UTC.

Time Nick Message
07:01 divine-next 1 new patch validated [mornfall]
08:47 yaqwsx joined #divine
09:30 yaqwsx joined #divine
09:47 divine-next 1 new patch validated [mornfall]
09:48 yaqwsx joined #divine
09:57 divine-next 2 new patches validated [mornfall]
11:00 yaqwsx joined #divine
11:01 yaqwsx Na arke:/tmp/delegate je k vidění první nástřel delegate pro DiOS. Mohli byste se na to podívat, před tím, než to začnu integrovat (pravděpodobně někam do Bricksu)
11:18 mornfall xstill: /usr/include/c++/6.2.1/cstdlib:75:25: fatal error: stdlib.h: No such file or directory
11:22 yaqwsx joined #divine
11:26 mornfall yaqwsx: jo vypadá to dobře, koukal jsi aj na bitkód/assembler jakej to vyrobí?
12:36 yaqwsx joined #divine
12:36 yaqwsx mornfall: To jsem ještě nestihl - zrovna skončila přednáška.
12:38 yaqwsx kosmetická věc - brát v Delegate objekty referencí nebo pointerem? Nemám na to názor. Psát & je totiž otrava, ale zase na druhou stranu to člověk si více dává pozor na životnost objektů.
12:52 yaqwsx mornfall: O2 z mého příkladu Delegate vyseká úplně a nechá jenom printy. Když to schovám za něco dynamického, tak operator() je 12 instrukcí (z čehož 3x getlement ptr, jednou derefereoncovaný call), specialozované invoky se vlezou do 17 instrukcí.
13:11 mornfall yaqwsx: kdyby to nemuselo umět free/static fce, ušetřil by se ten invoke stub nebo ne?
13:15 yaqwsx Změnil by se v jeden if
13:17 yaqwsx Ale nevím na kolik by to ulevilo počtu instrukcí v bitkódu.
13:18 yaqwsx mornfall: Nebo je derefence call tak drahý?
13:36 mornfall nevím, call je celkově drahý protože vyrábí rámec (pokud to vyrobí stub, tzn. jde to přes 2x call, tak je to určitě dražší než jeden, třeba nepřímej, call)
13:38 yaqwsx Call nepotřebuji - stačí mi místo stubu držet enum.
13:38 yaqwsx A obejdu se bez něj.
13:49 mornfall vida
13:49 mornfall to je hned lepší
13:52 yaqwsx No... až na to, že to typově nejde.
13:53 yaqwsx Protože do toho pointeru _invoke jsem ukládal typ funkce/třídy
13:54 xstill_ yaqwsx: kde máš ten kód?
13:55 yaqwsx arke:/tmp/delegate
13:59 xstill_ proč si ten delegát ukládá vlastně třídu pokud dostává pointer na metodu? Standardně se to v std dělá tak, že pokud chceš volat metodu, tak se uloží do něčeho jen ten pointer na metodu a třída se očekává jako první parametr, takhle to dělá třeba std::thread
13:59 xstill_ nevím jestli i function
14:00 xstill_ i když teda u funktoru máš asi ten stejnej problém
14:00 yaqwsx xstill_: Ale to stále neřešení můj problém - pořád musím mít správný typ toho pointeru a někde si ho pamatovat.
14:03 xstill_ jo no, to moc nejde, protože někde si ho musíš pamatovat v typu, takže musí být buď v typu toho invoke nebo toho delegáta, a tam být nemůže protože by to nebylo univerzální
14:05 xstill_ kdybys dokázal nějak vyprasit z method pointeru function pointer, tak to asi můžeš naprasáka zavolat na void *, ale to se těžce rozbije pokud ta metoda bude virtuální
14:05 mornfall to se těžce rozbije skoro vždy
14:05 xstill_ a vytáhnout ten pointer taky nebude úplně možný bez lezení do private věcí libc++
14:05 mornfall private věcí překladače
14:06 xstill_ jo dokonce
14:44 xstill_ tak jsem tou opravou VM něco rozbil
14:46 xstill_ jo no, taky máme v libc testech nedefinované funkce a ono si to pak myslí, že free vrací int
14:47 xstill_ jo, všechno špatný testy
14:48 xstill_ mornfall: akorát ten void main změnil typ chyby, ale to počítám nevadí (byl undef, teď je to control error)
14:49 mornfall to asi nevadí
15:26 divine-next validate failed (1 test), 3 patches pending [xstill]
15:35 yaqwsx Ohledně jiného způsobu implementace delegate jsem už nic nevymyslel...
15:36 divine-next validate failed (1 test), 5 patches pending [mornfall xstill]
15:39 mornfall xstill_: (jo to je ten patch co změnil 2.pointer-arith.c a rozbil tím sim/2.step.sh)
15:40 mornfall opravím
16:27 divine-next 6 new patches validated [mornfall xstill]
16:48 mornfall xstill_: myslím si, že ident autentizace v postgresu + qemu userspace tcp/ip by mělo v podstatě transparentně fungovat samo od sebe (bude se to autentizovat jako uživatel kterej to qemu spustil)
16:59 mornfall xheno: fifo-64.cpp:2:10: fatal error: 'fifo.hpp' file not found

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