Camelia, the Perl 6 bug

IRC log for #parrot, 2012-07-27

Parrot | source cross referenced

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

All times shown according to UTC.

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

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

Parrot | source cross referenced