Parrot 4.6.0 "Wild Parrots of Telegraph Hill" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 18 July 2012.
00:59 kid51 joined 01:06 kid51_ joined 01:22 kid51_ joined 02:41 Psyche^ joined 03:05 woosley joined 03:19 benabik joined 04:32 muixirt joined
muixirt good morning 04:33
sorear good morning 04:37
muixirt hi sorear!
I'm still wondering why it is necessary to save pc in some structure in the inner loop of the bytecode dispatcher via Parrot_pcc_set_pc 04:40
removing it saves 3 machine instructions but has almost no effect on speed :( 04:44
and produces four failing tests 04:46
sorear inferior runloops, muixirt 04:50
muixirt sorear: ?
sorear if an opcode calls a C function, and then the C function calls a Parrot function
the Parrot function needs to be able to see its callstack
do you know about $*foo in P6? 04:51
muixirt no
nopaste "muixirt" at 79.224.252.186 pasted "inner dispatch loop" (36 lines) at nopaste.snit.ch/150637 04:58
muixirt sorear: and that's related to the Parrot_pcc_set_pc (well macro) that is right before the DO_OP? 04:59
sorear If Parrot_pcc_set_pc isn't called, backtraces and exceptions won't work
muixirt with out it these tests fail t/compilers/imcc/syn/const.t t/compilers/imcc/syn/macro.t t/compilers/imcc/syn/regressions.t 05:02
sorear i'm not suprised 05:07
as I just said, it's essential
muixirt but I would expect far more breakage and this current_pc field is hardly used 05:13
sorear you'd get far more breakage if you tried building Rakudo 05:17
muixirt sorear: so saving pc is necessary because of different length of opcodes?
sorear no, it's necessary because there's no other way for a C function to learn the caller location 05:18
muixirt btw. i built rakudo yesterday with that change but didn't run spectests 05:27
05:53 fperrad joined 07:09 schmooster joined 08:04 drift joined 11:25 JimmyZ joined 12:51 woosley left 13:25 bluescreen joined 13:31 schmooster joined 13:59 PacoAir joined 14:20 dmalcolm joined 14:31 lateau joined 14:37 lateau left 14:38 lateau joined 14:45 lateau left 15:23 darbelo joined
Coke . 15:41
alvis: there was no aloha, but I got your messages. Without your preferred email address I cannot add you. 15:42
15:43 benabik joined
benabik o/ #parrot 15:43
dukeleto ~~ 16:36
16:52 jashwanth joined
benabik Do we have the core roles documented for does_IPS? 16:56
benabik also wonders what the 2nd PMC argument is for does__IPP 16:57
16:57 awwaiid joined
benabik Ah. PDD17... under "provides" 16:58
Coke benabik: IIRC, those roles are all adhoc.
benabik Coke: There are some that the core types use and things check for, like "array" and "hash" 16:59
Hm. does_IPP calls 'VTABLE_does_pmc'... Which I don't think actually does anything. :-/ 17:01
Bleck, our object system.
moritz nqp: say(pir::does__IPS(nqp::list(), 'array')) 17:02
p6eval nqp: OUTPUT«1␤»
moritz nqp: say(pir::does__IPS(nqp::hash(), 'array'))
p6eval nqp: OUTPUT«0␤»
moritz seems to work
nqp: say(pir::does__IPS(nqp::hash(), 'hash'))
p6eval nqp: OUTPUT«1␤»
moritz nqp: say(pir::does__IPS([], 'hash'))
p6eval nqp: OUTPUT«0␤»
moritz nqp: say(pir::does__IPS( sub () { }, 'hash'))
p6eval nqp: OUTPUT«0␤»
Coke benabik: yes, but there is no guarantee that "array" or "hash" actually mean anything. 17:04
benabik Coke: Yes, this is true. But if I'm trying to get something to work like a hash, I'd like to report that it does. 17:05
Coke as opposed to a perl6-like role, where Positional actual guarantees some behavior.
benabik: fair enough.
benabik I _think_ VTABLE_does_pmc is a placeholder for something that was intended to be done at some point. 17:08
I can't find it implemented anywhere except default.pmc where it always returns 0 because "/* No C-level roles yet. */" 17:09
moritz pmclass FixedPMCArray auto_attrs provides array { 17:14
pmclass Hash provides hash auto_attrs { 17:15
benabik: the "provides" is what you're looking after, it seems
benabik moritz: Yeah, PDD17 lists them under provides but the opcode is does. 17:24
msg whiteknight Rosella.Test.Asserter.throws both a) appears to be untested and b) not to work 18:13
msg whiteknight It looks like it throws an exception to denote failure, but does so inside a try-catch block.
Wait...
aloha: aloha?
Oh dear. 18:14
Hm. dalek is here, but isn't marked bot.
Can someone +op slavog?
*slavorg
And aloha is just plain missing. Fun. 18:15
moritz++ 18:18
Coke slavorg: Help 18:31
slavorg I'm slavorg, an op-bot.Commands: trust, distrust, believe, disbelieve, leave, join. See also jerakeen.org/programming/slavorg
Coke slavorg: join #parrotsketch 18:32
slavorg I won't join there, because I don't trust you there.
Coke slavorg: trust Coke in #parrotsketch
slavorg But I don't trust you there, Coke
benabik Hm. Chicken and egg problem?
darbelo slavorg: trust Coke 18:36
slavorg But I already trust coke
moritz slavorg: join #parrotsketch 18:43
slavorg I won't join there, because I don't trust you there.
moritz can somebody /invite slavorg over in #parrotsketch
benabik Apparently I can. 18:44
Although I'm not an op over there.
18:52 jashwanth joined 19:10 whiteknight joined
whiteknight good afternoon, #parrot 19:12
benabik o/ whiteknight 19:36
whiteknight hello benabik 19:42
that throws() code is some of the oldest code in all of Rosella 19:43
from back before it was even called Rosella
dalek CT: 8d3d4f8 | benabik++ | src/PACT/Packfile.winxed:
Packfile: Remove unused 'useful opcode'
19:47
CT: e062fa1 | benabik++ | t/01-packfile/01-packfile.t:
Some tests for PACT.Packfile
CT: 1e2beb9 | benabik++ | / (2 files):
Packfile: helper function to add oplibs
whiteknight I'll try to get that patched up tonight. It should be a quick fix 19:51
benabik Yar.
I was going to poke at it but got distracted by kid
19:59 autark joined 20:27 rblackwe joined
dalek CT: 25ff7c2 | benabik++ | t/01-packfile/02-constant.t:
Test PACT.Packfile.Constant
20:42
benabik \\o/ All the constructors for Constant appear to actually do what I wanted.
Hm. Winxed doesn't have syntax to generate Keys, does it. 20:46
This makes testing PACT.Packfile.Constant.Key a little more difficult.
Blah. No easy way to generate a Key. 20:52
I shouldn't be surprised since that's why I made a Key class in PACT.
21:18 darbelo joined 22:59 kid51 joined 23:16 whiteknight joined
whiteknight good evening, #parrot 23:19
23:30 kid51 joined
dalek sella: 137b2c2 | Whiteknight++ | / (2 files):
[Test] Fix Asserter.throws() and Asserter.throws_nothing(), with tests. benabik++ for pointing out the problems
23:35