|
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 | |