Parrot 4.0.0 "Hyperstasis" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 18 January 2012.
00:13 ilbot2 joined
moderator Parrot 4.0.0 "Hyperstasis" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
00:14 tadzik joined, masak joined, Hunger joined, Coke joined, tty234 joined, p6eval joined, perlite joined, whiteknight joined, pjcj joined, contingencyplan joined, autark joined, particle joined, losinggeneration joined, wagle joined, Kulag joined, silug joined, nopaste joined, alvis joined, jlaire joined, slavorg joined, PerlJam joined, simcop2387 joined, dngor joined, bacek joined, dukeleto joined, aloha joined, ttbot joined, kthakore joined, krunen_ joined, ascent_ joined, betterworld joined, NotFound joined, Kovensky joined, pmichaud joined, bacek_at_work joined, szbalint joined, sorear joined, sri joined, Felipe joined, rblackwe joined 00:17 janus joined, ingy joined, athomason joined, preflex joined, Maddingu1 joined, GeJ joined, ligne joined, PacoAir joined, Patterner joined, trey joined, Tene joined, alester joined, dalek joined, seme joined, Util joined, Khisanth joined, Timbus joined, arnsholt joined, jtpalmer joined, cxreg joined, cotto joined, kshannon joined, eternaleye_ joined, allison joined, atrodo joined, japhb joined, hernan joined, knewt joined 00:23 lucian joined 00:29 l3l1p joined 01:12 knewt joined, Khisanth joined, seme joined, trey joined, Patterner joined, GeJ joined, preflex joined, athomason joined, ingy joined 01:29 janus joined, Maddingu1 joined, ligne joined, Tene joined, alester joined, dalek joined, Util joined, Timbus joined, arnsholt joined, hernan joined, japhb joined, atrodo joined, allison joined, eternaleye_ joined, kshannon joined, cotto joined, cxreg joined, jtpalmer joined
dalek sella: 76d0d18 | Whiteknight++ | src/template/ (13 files):
[Template] Add the first bits of a compile_to_winxed feature. A template can be pre-compiled to winxed code and, eventually, to pbc.
02:42
sella: 0072722 | Whiteknight++ | src/template/handler/Repeat.winxed:
[Template] Fix Handler.Repeat to generate correct winxed code in .to_winxed
sella: 016421c | Whiteknight++ | src/template/ (2 files):
[Template] Factor out some common key-saving code into the Handler parent class
sella: 974c2f0 | Whiteknight++ | src/template/ (4 files):
[Template] Fix Handler.Include to recurse properly and generate correct code in .to_winxed
sella: 6c4210c | Whiteknight++ | src/template/handler/If.winxed:
[Template] Implement Node.If and Node.Unless .to_winxed compilation
sella: ac80896 | Whiteknight++ | src/template/handler/For.winxed:
[Template] Implement Node.For.to_winxed
03:00 whiteknight left 03:32 jtpalmer joined, cxreg joined, cotto joined, kshannon joined, eternaleye_ joined, allison joined, atrodo joined, japhb joined, hernan joined, arnsholt joined, Timbus joined, Util joined, dalek joined, alester joined, Tene joined, ligne joined, Maddingu1 joined, janus joined, ingy joined, athomason joined, preflex joined, GeJ joined, Patterner joined, seme joined, Khisanth joined, knewt joined, pjcj joined, contingencyplan joined, autark joined, particle joined, losinggeneration joined, wagle joined, Kulag joined, silug joined, nopaste joined, alvis joined, jlaire joined, slavorg joined, PerlJam joined, simcop2387 joined, dngor joined, dukeleto joined, aloha joined, ttbot joined, kthakore joined, krunen_ joined, ascent_ joined, betterworld joined, NotFound joined, Kovensky joined, pmichaud joined, bacek_at_work joined, szbalint joined, sorear joined, sri joined, Felipe joined, rblackwe joined 03:34 perlite joined, p6eval joined, tty234 joined, Coke joined, Hunger joined, masak joined, tadzik joined
dukeleto ~~ 04:00
splitty kind of day 04:01
sorear I don't suppose whoever's been picking on freenode and github decided to move on to magnet ... 04:07
05:33 parthm joined 06:49 preflex joined
dalek kudo/nom: 9481a2c | moritz++ | src/core/control.pm:
give eval()s a separate file annotation
07:31
kudo/nom: 9435a07 | moritz++ | tools/build/NQP_REVISION:
bump to newest NQP to get -e file annotation fix
08:09 parthm left 08:14 dalek joined 09:38 ligne left 10:13 eternaleye_ joined 11:04 mj41 joined 11:45 lucian joined
dalek kudo/nom: 941a305 | moritz++ | src/core/Backtrace.pm:
improved backtrace printer

When encountering a a non-Routine, it searches for an outer Routine that also appears in the call chain, and takes their name, but the line number of the block. The idea comes from jnthn++
Testing welcome, not sure yet how well it interacts with lazy lists. At least for normal for-loops it cuts all those eager/reify methods.
11:50
kudo/nom: 2c672ae | jnthn++ | src/core/Range.pm:
Optimize range iteration code a bit to shave 40% or so off [+] 1..10000 style things.
11:56
kudo/nom: 6810cc6 | jnthn++ | src/core/metaops.pm:
When doing a reduction, we are going to need the whole list anyway. Instead of chewing it element by element, instead take it in bigger chunks. This reduces the fixed-size overhead per reificication which, in the case of reifying a range, is massively greater than the time to produce a single value. With this and the previous patch [+] 1..1000 runs in 8% of the time it did before; TimToady++ for pointing out this epic performance fail.
kudo/nom: c96ad7d | moritz++ | docs/ChangeLog:
update ChangeLog
12:02
kudo/nom: cd5136e | moritz++ | docs/ChangeLog:
remove duplicate ChangeLog entries, jnthn++
12:13
12:16 whiteknight joined
whiteknight good morning, #parrot 12:21
tadzik good morning whiteknight
whiteknight hello tadzik, how are you doing? 12:22
tadzik really good. I'm after my exams now, and even managed to get some unexpected skiing this winter 12:23
moritz \\o/
tadzik moritz: that means I'd be writing and sending my Prisoner's Dillema solution on friday evening or such :) 12:24
(I decided to leave laptop and everything at home_
)
12:24 JimmyZ joined
dalek p/bs: fd864b6 | moritz++ | src/HLL/Compiler.pm:
add "-e" file annotation where appropriate
12:25
p/bs: e0fdb23 | jnthn++ | src/HLL/Compiler.pm:
Merge branch 'master' into bs
12:36 parthm joined
nine Good morning parrot 12:59
tadzik hello nine
nine Is there some good source of information about the history of threading support in Parrot? 13:16
tadzik the only thing I recall are whiteknight's blog posts
moritz nine: I think "quite messy" is an accurate summary of the history :-) 13:17
(sorry for not being really help) 13:18
nine moritz: seems about right. But I'd like to expand that summary to about one written page ;)
I'll read Whitknight's blog posts (again). They really tend to be well written 13:19
I would so much like to just copy & paste most of the stuff whiteknight has written. Can't think of a way to explain those things better or more clearly. 13:30
13:31 not_gerd joined
not_gerd hello, #parrot 13:31
13:54 lateau__ joined
benabik o/ #parrot 14:05
whiteknight nine! 14:44
benabik eight!
masak seven! 14:46
tadzik six!
14:53 nbezzala joined
nine n-1! 14:55
whiteknight nine: what do we need to do to kick some threading-ass? 14:56
I'm feeling like I'm not helping enough 14:57
not_gerd: And I want to talk to you about object-model stuff too 14:59
nine whiteknight: well I need to write 39 more pages of my paper to get some spare time back ;) But on the other hand it can't hurt to spend a little time on the code again. Hardly know anymore where I stopped. But I think I was quite close to have everything working 15:04
whiteknight nine: On a semi-related note, I was a professional proof-reader back in college if you have need of such services
not_gerd whiteknight: sure - keep in mind that the gist was mostly me doing some brainstorming (more) 15:05
whiteknight nine: you might not believe me after seeing the flagrant abuse of commas on my own blog
not_gerd if you look at the history, you'll see that I thought about splitting up vtables into multiple interfaces before coming up with the message-passing system
^the gist history, that is
whiteknight not_gerd: It seems like you, bacek and I are of the same mind here
not_gerd things is, I don't really know a lot about parrot internals - in particular, how vtables currently are invokes from HLLs 15:06
benabik Vtables are mostly called from oeprators.
not_gerd my idea was to wrap the vtable arguments into a single 6model-introspectable object (located on the stack) and just use a single dispatch function 15:07
instead of auto-generating a single vtable, you'd end up auto-generate argument-object representations... 15:08
benabik vtables do need to be very fast. Minimal indirection would seem to be called for. 15:09
whiteknight not_gerd: the 6model source code should be very instructive here. It shows not only how that system works but how to interoperate with Parrot's current vtable system 15:10
not_gerd benabik: the way I factored it, you'd end up with an additional switch to dispatch ny message id
whiteknight Right no a vtable is called with the VTABLE_foo(interp, self, args) macros 15:11
and those call self->vtable->foo(interp, self, args)
not_gerd whiteknight: how are the args unpacked? 15:12
whiteknight vtables are defined in src/vtable.tbl, which is translated through obscure perl magic into code in 15:13
not_gerd: not packed at all, they're normal C-level functions
prototypes from src/vtable.tbl are generated in include/parrot/vtable.h
benabik If the list of vtable entries can be kept short, rather than calling a dispatch function, it could be kept in an array.
not_gerd benabik: that's the current system
whiteknight: I'm asking about the transition HLL -> vtable -> HLL 15:14
whiteknight not_gerd: it's all through ops. Certain ops call the corresponding vtables. look at src/pmc/object.pmc to see the mechanism for how a vtable override is called in an hll 15:23
not_gerd is reading Parrot docs 15:24
whiteknight vtables on object.pmc call Parrot_pcc_invoke_sub_from_c_args, which creates a new runloop to execute the vtable
dalek sella: d210dfa | Whiteknight++ | src/template/ (2 files):
[Template] Some fixes so Template.Engine.compile() returns a proper executable Sub
15:41
15:43 Psyche^ joined
not_gerd interisting tidbit: splitting the vtable into related categories has been proposed at least as early as 2006 15:46
^interesting
btw, #perl6 needs to get uint64 into parrot for rational numbers as required by spec 15:48
15:49 nbezzala joined
not_gerd moritz and jntn were discussing that earlier today 15:49
dalek kudo/rat-vs-fatrat: 2685a77 | moritz++ | src/core/Rat.pm:
preliminary work to get both Rat and FatRat working

Fails just one test that does (2/3) but SomeRole
kudo/rat-vs-fatrat: 7f1a890 | moritz++ | src/core/Rat.pm:
some small fixes, plus Num fallback for Rats
kudo/rat-vs-fatrat: 4ab4ffa | moritz++ | src/core/Rat.pm:
start to switch some arithmetic ops to smart Rat/FatRat semantics
kudo/rat-vs-fatrat: d8d17cb | moritz++ | src/core/Rat.pm:
switch the rest of the Rat ops to Rational
15:50 lateau__ joined 16:12 lateau__ left 16:31 mj41 joined 17:50 contingencyplan joined 17:58 contingencyplan joined 18:09 contingencyplan joined 18:15 contingencyplan joined 19:05 lucian joined 19:07 trey joined 19:22 contingencyplan joined 21:05 seme joined
dalek kudo/rat-vs-fatrat: b23da9e | moritz++ | src/core/Rat.pm:
fix thinko in DIVIDE_NUMBERS
21:20
kudo/rat-vs-fatrat: f27eab1 | moritz++ | src/core/Rat.pm:
thinkos, syntax errors
kudo/rat-vs-fatrat: 7dcb9e2 | moritz++ | src/core/Rat.pm:
formatting changes
21:33
kudo/rat-vs-fatrat: bdf0434 | moritz++ | t/spectest.data:
run fatrat.t
21:35 Psyche^ joined 21:45 Kulag joined
dalek p/bs: 940f600 | jnthn++ | src/ (2 files):
Rename original add_code; will replace it with a new one and migrate towards it.
22:03
p/bs: 5e4a611 | jnthn++ | src/HLL/World.pm:
Start to sketch out new deserialization handling code.
p/bs: 44811ea | jnthn++ | src/NQP/World.pm:
Add code that can be uncommented to try out the new serialization mechanism (breaks build at the moment).
22:07 Psyche^ joined
dalek kudo/nom: 29f5cf7 | jnthn++ | src/core/metaops.pm:
Another fairly notable performance boost for reductions (maybe another factor of two or so). [+] 1..100000 now runs in about the same time that [+] 1..1000 used to.
22:21
p/bs: 3614f78 | jnthn++ | src/ops/nqp.ops:
Correct an error.
23:00
p/bs: 5641529 | jnthn++ | src/NQP/World.pm:
Start to register some static code refs; we'll need a bit more than this, though.
p/bs: 046bd1d | jnthn++ | src/6model/serialization.c:
Add a sanity check to catch an error, rather than SEGVin'.
p/bs: 50459f4 | jnthn++ | src/HLL/World.pm:
A few fixes to code-gen for serialized output.
p/bs: b61b053 | jnthn++ | src/NQP/World.pm:
Start sketching in a NEW_SER flag to NQP::World; this will allow gradual exploration of using the new serialization engine without busting the ability to get through a build to make sure collateral changes this work causes are OK in themselves. With it on, we now make it a couple of compilation units into the build of the second stage.