Camelia, the Perl 6 bug

IRC log for #parrot, 2009-07-06

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 patspam joined #parrot
00:35 Whiteknight joined #parrot
00:39 hercynium joined #parrot
01:05 dalek close: r48 | Austin++ | trunk/src/parser/actions.pm:
01:05 dalek close: Bugfix for :phylum()
01:05 dalek close: review: http://code.google.com/p/close/source/detail?r=48
01:46 kid51 Austin ping
01:51 dalek tracwiki: Austin_Hastings++ | smoking parrot.png attached to SmokingParrot
01:51 dalek tracwiki: Smoking (dead) parrot image
01:51 dalek tracwiki: https://trac.parrot.org/parrot/attachment/wiki/Sm​okingParrot/smoking%20parrot.png&action=diff
01:54 dalek tracwiki: v5 | Austin_Hastings++ | SmokingParrot
01:54 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Sm​okingParrot?version=5&action=diff
01:54 dalek tracwiki: Austin_Hastings++ | smoking parrot.png attached to SmokingParrot
01:54 dalek tracwiki: https://trac.parrot.org/parrot/attachment/wiki/Sm​okingParrot/smoking%20parrot.png&action=diff
01:56 kid51 Oh, that's sick ;)
01:56 Austin Hi, kid
01:56 kid51 Commented:  http://code.google.com/p/close/wiki/CloseIntro
01:57 dalek tracwiki: Austin_Hastings++ | smoking parrot.png attached to SmokingParrot
01:57 dalek tracwiki: https://trac.parrot.org/parrot/attachment/wiki/Sm​okingParrot/smoking%20parrot.png&action=diff
01:57 Austin Cool. Thanks. (Believe it or not, that's the "toned down" version.)
01:57 Austin I'll have to tone it down some more.
01:58 Austin You said something about TODO tests earlier. That's just "# TODO" after the not_ok, right?
01:58 Austin (at EOL, I mean)
02:05 dalek tracwiki: v80 | Austin_Hastings++ | WikiStart
02:05 dalek tracwiki: https://trac.parrot.org/parrot/wiki/​WikiStart?version=80&action=diff
02:06 kid51 I think I was referring to the general principle of TODO tests, not how they're specifically implemented in PIR (as opposed to in Perl 5).
02:06 kid51 And I think pmichaud eventually made the same points.
02:06 Austin Ah. I know they exist, but I don't know what the TAP for them is supposed to look like. I'll google it.
02:07 kid51 TODO is for what we have yet to implement or for what we know is implemented but not working.
02:07 kid51 Probably supposed to look like any TODO tests in our Smolder reports.
02:08 Austin On another subject entirely, how about building a tree specification language?
02:08 Austin (in Perl5)
02:10 kid51 Earlier today, I sent you prv msg saying send me email.
02:10 kid51 I've no idea what a tree specification language is, so you'd have to spell it out more.
02:10 Austin Yeah. You still want that? I'd like to just put in on Trac.
02:10 Austin s/put in on/ put IT on/
02:10 kid51 Yes, putting it on Trac Wiki would be better.
02:10 Austin 'kay
02:11 kid51 Perhaps with a .png of a parrot climbing a tree.
02:11 Austin Hey, I had to google for quite a while to find an image suitable for mangling...
02:11 dalek tracwiki: v81 | Austin_Hastings++ | WikiStart
02:11 dalek tracwiki: https://trac.parrot.org/parrot/wiki/​WikiStart?version=81&action=diff
02:14 Austin Do you know anything about issue types in trac?
02:14 kid51 No
02:14 Austin :(
02:15 kid51 On which page might they be located?  Or are an issue?
02:17 Austin I don't know either. We talked @yapc::parrot-bof about reinstating the textual "roadmap" for releases.
02:17 Austin Jerry Gay (particle) mentioned something about special issue types.
02:18 kid51 All I can say is, if you go to the current roadmap, and then are able to resurrect the original version, you might get a clue.
02:18 Austin Laugh
02:18 Austin I don't think you can get there from here.
02:20 kid51 How about this?  https://trac.parrot.org/parrot/wiki/TracReports
02:22 Austin Right. Cool. That's how it's being done now.
02:22 Austin I just want somebody to write some prose that explains the overall "aim" of the milestone releases.
02:23 Austin Like "1.0 is intended to provide a platform for HLL developers"
02:23 Austin or "1.5 is for unicode support"
02:23 Austin whatever.
02:24 Austin Commingling the prose with the task queries would rock.
02:27 kid51 Post that on list, or pre-post it for #parrotsketch on Tuesday.
02:27 * kid51 must sleep
02:27 purl $kid51->sleep(8 * 3600);
02:27 Austin Ok. Good night.
02:28 Infinoid We release once a month regardless of which features get in, so the roadmap items aren't really set in concrete
02:28 dalek tracwiki: v6 | Austin_Hastings++ | BigProjectIdeas
02:28 dalek tracwiki: Added TreeUnit reference
02:28 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Big​ProjectIdeas?version=6&action=diff
02:28 dalek tracwiki: v27 | jkeenan++ | ParrotQuotes
02:28 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Pa​rrotQuotes?version=27&action=diff
02:28 dalek tracwiki: v3 | Austin_Hastings++ | SandBox
02:28 dalek tracwiki: https://trac.parrot.org/parrot/wiki​/SandBox?version=3&action=diff
02:29 Austin Yeah, but I think a little more clarity of vision would help keep us on track, and it might help lower the "on-ramp" for new people.
02:29 Infinoid Vision is great.  But volunteer developer resources are very hard to predict
02:30 Austin Yeah.
02:30 Austin I wonder why trac isn't honoring my WikiWords ?
02:30 Infinoid We should have that turned off except for existing pages
02:31 Infinoid excessive camelcasing causes strange results in the rss output (and irc logs)
02:31 Austin I think you did.
02:31 Austin Maybe that's why it's not working.
02:32 Infinoid goodnight all
02:35 dalek tracwiki: v82 | Austin_Hastings++ | WikiStart
02:35 dalek tracwiki: No more wikiwords. Use explicit links instead.
02:35 dalek tracwiki: https://trac.parrot.org/parrot/wiki/​WikiStart?version=82&action=diff
02:36 janus joined #parrot
02:51 zak_ joined #parrot
03:22 dalek tracwiki: v1 | Austin_Hastings++ | Glossy-Brochure
03:22 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Glo​ssy-Brochure?version=1&action=diff
03:25 dalek tracwiki: v7 | Austin_Hastings++ | BigProjectIdeas
03:25 dalek tracwiki: No more wikiwords. Use explicit links instead.
03:25 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Big​ProjectIdeas?version=7&action=diff
03:28 Themeruta joined #parrot
03:33 dalek parrot: r39894 | pmichaud++ | trunk/compilers/pct/src/PAST/Node.pir:
03:33 dalek parrot: [pct]:  Fix 'value' -> 'lvalue', from TT #810 (reported by Austin Hastings)
03:33 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39894/
03:59 pjcj joined #parrot
04:07 dalek TT #810 closed by pmichaud++: PCT - PAST::Val::lvalue() passes through to 'value'
04:10 dalek parrot: r39895 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir:
04:10 dalek parrot: [pct]:  Fix bug with 'attribute' scoped PAST::Var nodes (TT #803, report
04:10 dalek parrot: and diagnostics from Austin Hastings)
04:10 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39895/
04:30 dalek parrot: r39896 | petdance++ | trunk (2 files):
04:30 dalek parrot: list_splice() does modify @value_list
04:30 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39896/
04:33 dalek tracwiki: v1 | Austin_Hastings++ | TreeUnit
04:33 dalek tracwiki: https://trac.parrot.org/parrot/wiki​/TreeUnit?version=1&action=diff
04:33 Austin msg kid51 Typed up in stupefying detail at: https://trac.parrot.org/parrot/wiki/TreeUnit
04:33 purl Message for kid51 stored.
04:34 Zak joined #parrot
04:36 dalek tracwiki: v2 | Austin_Hastings++ | TreeUnit
04:36 dalek tracwiki: https://trac.parrot.org/parrot/wiki​/TreeUnit?version=2&action=diff
04:37 bacek_at_work pmichaud: around?
04:38 pmichaud around.
04:38 bacek_at_work pmichaud: (new "Iterator") on keys_revamp branch "Iterator" is pure interface class.
04:38 bacek_at_work so, there is no point to create it directly.
04:39 pmichaud bacek_at_work: I don't disagree.
04:39 bacek_at_work pmichaud: ah, ok :)
04:39 pmichaud I didn't say we should keep the "new Iterator" form -- I said I had no strong opinion about it.
04:40 pmichaud (which I don't)
04:41 bacek_at_work ok...
04:41 * bacek_at_work still having troubles with clear understanding of English...
04:42 pmichaud no problem.
04:42 pmichaud If I was strongly in favor of getting rid of "new Iterator", I would've said +1 to it.
04:42 pmichaud If I was strongly opposed, I would've said -1.
04:42 pmichaud Since it doesn't matter much to me either way, I'm effectively saying "0".  :-)
04:43 bacek_at_work so, now we have only "+0.5" for removing "new Iterator"...
04:44 pmichaud well, you can count mine as a non-vote.
04:44 pmichaud either way, it's not purely a "add up the votes" democracy.  :-)
04:44 pmichaud some votes count more than others.  :-)
04:45 bacek_at_work erm... According to my calculation it's now reduced to "+0.05"...
04:45 Austin What's the trouble with "new Iterator" ?
04:45 pmichaud anyway, I'm fine if we get rid of "new Iterator".  But if someone decides we really need to keep it, then I'm fine with that too.
04:45 pmichaud Austin: it's kind of a backwards way to get at an iterator.
04:45 pmichaud in some senses it assumes that all iterators are the same
04:46 Austin Isn't that the point?
04:46 pmichaud they should have the same API, yes.
04:46 Austin That all Iterators *are* the same?
04:46 Austin Okay.
04:46 pmichaud but internally they may be quite different.
04:46 Austin So the problem is inversion-of-control?
04:46 pmichaud that's a good way of putting it
04:46 pmichaud phrased another way -- even in Perl 6 we distinguish RangeIterator from other types of iterators
04:46 Austin What does "new Iterator" do now? Does it just make an Iterator, or does it call my class and ask for one?
04:47 pmichaud I think right now it tries to figure out what kind of aggregate you have and construct an appropriate iterator for that
04:47 pmichaud I don't think it asks the class for one.
04:47 Austin Well, that has to stop.
04:47 pmichaud But I haven't looked at it directly -- bacek++ would be able to say exactly what it does.
04:47 Austin (And I was so proud when I got "i = new Iterator, foo" working in close. Sigh.)
04:48 pmichaud At any rate, going through the vtable interface to obtain an iterator seems saner to me.
04:48 bacek_at_work Austin: check TT#811
04:48 Austin Why not go through the method interface? Any reason it has to be a vtable?
04:48 bacek_at_work Austin: performance reason only.
04:49 pmichaud cross-hll
04:49 pmichaud the method that language Foo uses for getting an iterator might not be the same method as language Bar
04:49 pmichaud and we can't force them to be the same, except via the vtable interface
04:49 Austin So how do I implement a tree iterator for my whatever-tree class?
04:50 Austin .sub get_iter :vtable ?
04:50 pmichaud right now, you just define the get_iter vtable method
04:51 Austin I'm still a little leery of that, because of my knee-jerk "no more vtables" reaction.
04:52 pmichaud well, we're not adding a new vtable function in this case -- it already exists.
04:52 Austin But I can see it working. The HLL compiler just emits the vtable override sub, and then it's in PIR space again.
04:52 Austin Okay. #811 +1 from me.
04:52 Austin (For what that's worth.)
04:53 Austin Good timing, Bacek. How many HLL's are going to be affected by this?
04:53 Austin (Close is one.)
04:54 pmichaud bacek_at_work: in TT#811, the code you give there explicitly checks for 'hash', 'array', or 'string'.  Why?
04:57 Austin Pmichaud: We almost had this conversation at PVMW. Is there, or should there be, an analogue to the "Iterable" role in Java? Something that reports support for get_iter?
04:57 Austin (Because "type == array or type == string or type == hash" is kinda lame.
04:58 pmichaud Austin: I think we should just ask the aggregate for an iterator and let *it* throw the exception if it can't do that.
04:59 pmichaud if we want to have a standardized role for "are you able to iterate" without actually creating an iterator -- well, I guess that makes sense too.
04:59 bacek_at_work pmichaud: because some aggregate can try to create Iterator
04:59 pmichaud but I'd rather have a stronger use case than this one.
04:59 pmichaud (in general I'm a fan of not adding things until they're truly needed)
05:00 Austin No, you're right. I was lost in a haze of possible iterator classes. But that's the implementor's problem. Either don't inherit this behavior, or catch the exception.
05:01 bacek_at_work pmichaud: VTABLE_get_iter will throw exception if it's not implemented.
05:02 pmichaud right.  That's what should happen.
05:02 pmichaud That seems to me to be exactly what I'd want to happen.
05:04 bacek_at_work (adding explicit check for type) If FooAggregate.get_iter will create Iteator" instead of specific FooIterator we'll have infinite recursion.
05:05 pmichaud oh, I see.
05:05 pmichaud although I have difficulty believing that any FooAggregate would turn around and try to create an Iterator on itself, knowing that it will fail.
05:05 Austin I don't.
05:06 Austin What? I have to deliver an Iterator? Isn't there a PMC for that? I'll just pass the request along.
05:06 pmichaud sure, but if FooAggregate isn't a string, hash, or array, then "pass the request along" would fail anyway.
05:06 pmichaud If it is one of those, then it'll still be the infinite loop.
05:06 Austin Which wouldn't be a problem if they called iter() on the underlying representation, but they'll blow it and call it on themselves.
05:07 pmichaud so saying that FooAggregate.get_iter might create Iterator is a red-herring sort of argument
05:07 pmichaud because it won't work even if the checks are there.
05:07 Austin How so?
05:08 pmichaud right now  init_pmc in Iterator checks to see if the aggregate does hash, array, or string, yes?
05:08 pmichaud it also throws and exception if the aggregate is not one of those
05:08 pmichaud *an exception
05:08 Austin Right.
05:08 pmichaud okay.  So, let's suppose I'm writing FooAggregator
05:08 pmichaud er, FooAggregate
05:08 pmichaud and I get down to the get_iter vtable
05:09 Austin But we're saying that init_pmc will just call pmc.iter(), right?
05:09 pmichaud it's doing that now (in bacek's version)
05:09 Austin sorry, that "Iterator.init_pmc()" will just call pmc.iter()
05:09 Austin Yep.
05:09 pmichaud PMC *real_iter = VTABLE_get_iter(INTERP, aggregate);
05:09 pmichaud I'm saying that having the check for string/hash/array doesn't provide any protection against the issue bacek identified
05:10 Austin True.
05:10 pmichaud so, as I was saying...
05:10 pmichaud we get down to FooAggregate.get_iter and say "oh, I'll just delegate that to the Iterator PMC"
05:10 Austin But I think we were supposing that it would *always* pass along the call.
05:10 pmichaud if I try delegating that to the Iterator PMC, bacek claims it'll be an infinite loop if we don't do the checks
05:11 Austin Right.
05:11 Austin Because of the "always pass along" supposition. The code in Trac won't have that problem.
05:12 Austin Bacek, you still here?
05:12 pmichaud so, we're just helping the pmc author by throwing an exception instead of infinite looping.  I can accept that.
05:12 pmichaud basically, one can call Iterator.init_pmc only for aggregates that are already hash/array/string.
05:13 pmichaud but of course, if the aggregate is already hash/array/string, then we end up with the same infinite loop.
05:13 pmichaud and we don't protect against that.
05:13 Austin I think it was the other way around. Bacek was trying to detect the loop because he wanted Iterator.init_pmc() to just return aggregate.get_iter()
05:14 pmichaud I don't follow that.  The code does aggregate.get_iter() only for string/hash/array
05:14 Austin (Speaking of which, is VTABLE_does the same as type ==, or is that a role?
05:14 pmichaud vtable_does is more like a role.
05:14 Austin So anybody who "does" hash gets called? That's even more bogus.
05:15 Austin http://nopaste.com/p/a5o59fcLb
05:16 pmichaud right.
05:16 pmichaud that's what my question was leading to.
05:16 Austin And that's where the infinite loop comes from.
05:16 pmichaud yes, I understand that.
05:17 Austin But I like simple code.
05:17 pmichaud putting the checks in there helps a pmc writer when attempting to create a get_iter vtable
05:17 Austin And that's simple.
05:17 pmichaud but it does so at a runtime cost for hash/array/string
05:17 pmichaud (the common cases)
05:17 pmichaud and, it doesn't protect the pmc writer who is creating a get_iter vtable for an aggregate that does array/hash/string -- that case will still get the infinite loop
05:20 bacek_at_work (sorry for delays... I'm @work)
05:20 * Austin kicks work.
05:21 bacek_at_work Ok, proper check in Iterator.init should be real_iter =VTABLE_get_iter(aggregate); if (VTABLE_type(real_iter) == enum_class_Iterator) ex_throw("Bah! Don't be lazy");
05:22 pmichaud oh, that would be nice.
05:22 pmichaud although it still infinite loops :-)
05:22 Austin Yeah.
05:22 Austin :-(
05:23 Austin Maybe a static pointer to current object?
05:24 Austin Are ops thread-atomic?
05:28 pmichaud personally, I find it's generally difficult to always stop a programmer from infinite looping.
05:29 chromatic Infinoid, I think it's possible, but every time we change the layout of PObj, something goes weird.
05:31 pmichaud (gc bug hunters) -- is it helpful for me to continue reporting the places where Rakudo is failing against parrot trunk?  Or should I not bother or wait until specifically asked?
05:33 chromatic It helps me to know if my run of t/spec/S12-methods/what.t, for example, is a failure you expect or if it's a likely GC problem.
05:34 pmichaud at present we don't expect any failures.
05:35 pmichaud some are creeping in from time to time (due to people changing the spectests on us), but I'm trying to fudge/fix those quickly.
05:35 chromatic Good to know.
05:35 pmichaud by far the majority of failures are -G related.
05:50 dalek parrot: r39897 | petdance++ | trunk/src/list.c:
05:50 dalek parrot: the function add_chunk made more sense split into add_chunk_at_start and add_chunk_at_end. There were two branches within and most of each was different. Only two lines of code in common between the two new functions.
05:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39897/
05:53 pmichaud sleep time here -- back tomorrow
05:59 eternaleye joined #parrot
06:09 eternaleye joined #parrot
06:09 uniejo joined #parrot
06:27 buildbot joined #parrot
06:31 slavorg joined #parrot
06:46 Austin Anybody know what a "KEY" is when declared as a parameter in a .ops file?
06:47 mikehh joined #parrot
06:49 chromatic From the book:
06:49 chromatic A key value. Something like C<[5 ; "Foo" ; 6 ; "Bar"]>. These are the same as indexes that we use in PMC aggregates.
06:50 Austin Yipes.
06:50 iblechbot joined #parrot
06:51 Austin I guess it makes sense, but can I convert a S register into a key?
06:51 Austin (I'm fighting with 'exists' right now.)
06:51 chromatic You'd have to use a keyed_str variant vtable.
06:52 Austin What does that mean?
06:52 purl You're a nut! You're crazy in the coconut!
06:52 Austin Oh, boy.
06:53 Austin So an INTKEY is presumably a [key] constrained to hold just integers?
06:54 chromatic It's an INTVAL used for a keyed_int variant.
06:54 chromatic get_pmc_keyed, get_pmc_keyed_int, get_pmc_keyed_str, etc
06:57 Austin But I'm getting an error claiming that opcode "exists_i_p_ic" was not found. Since the result is boolean, and the subject is an array or hash type, I'm pretty confident that "exists_i_p" is correct. What should the third type be, if not an integer?
06:57 Austin An array of some sort?
06:59 chromatic INTKEY, I believe.
07:05 Austin How do I construct an intkey?
07:05 Austin There's a Key pmc, but it doesn't look promising
07:05 chromatic Use an integer register as a key; $P1 = $P0[$I0]
07:05 Austin Sure. But then I can't do multi-dim keys, right?
07:05 Austin It looks like Key is what I want.
07:05 Austin Make a new Key, then push whatever horrible things on the end of it, then pass it right along.
07:05 chromatic Right.
07:05 Austin Guaranteed impossible to optimize. :(
07:06 chromatic Welcome to Sucktown, population Keys.
07:06 Austin Yeah, the comments in the code were a little depressing.
07:06 MoC joined #parrot
07:14 bacek_at_work hey! I almost cleaned up Keys mess!
07:14 Austin @bacek: Which keys mess?
07:14 Austin I thought you were iterating?
07:16 bacek_at_work Yes. But Keys are used for Iterating (in trunk)
07:16 bacek_at_work Thats why they are so messy...
07:16 Austin Ahh. Yes.
07:17 Austin Should that be true?
07:17 mikehh All tests PASS (pre/post config, smolder, fulltest) at r39897 - Ubuntu 9.04 amd64
07:19 bacek_at_work Austin: "Should that be true?"
07:20 Austin Should an iterator know about however-many levels of keys, or should it be a key containing however-many sub-iterators?
07:22 bacek_at_work no and no
07:22 Austin How should it work, then?
07:22 bacek_at_work "Keys" are for nested lookups only
07:23 bacek_at_work https://trac.parrot.org/parrot/ticket/761
07:24 bacek_at_work so, iterator should iterate "flat" aggregate.
07:24 bacek_at_work Key is "path" in nested aggregates.
07:25 Austin Okay.
07:26 Austin So how do you iterate ?
07:26 Gerd joined #parrot
07:32 dalek close: r49 | Austin++ | trunk/ (4 files):
07:32 dalek close: Added builtin-exists (for 1-dim items)
07:32 dalek close: review: http://code.google.com/p/close/source/detail?r=49
07:37 eternaleye joined #parrot
07:44 bacek_at_work Austin: using FooIterator.
07:44 Austin Bacek?
07:44 purl Bacek is importing the last week's worth of patches from http://github.com/bacek/pa​rrot/tree/packfile_revamp, I imagine
07:45 Austin If you've got a multi-level hash/array thing, how are you going to iterate that?
07:48 eternaleye joined #parrot
07:49 mikehh I am getting -> Method 'succ' not found for invocant of class 'Method' - in make spectest again
07:51 Austin mikehh: Sounds like a Rakudo thing, no?
07:52 mikehh I passed most tests yesterday at 13:18 BST and now at 08:52 BST a lot are failing again (latest rakudo on latest parrot)
07:53 Austin If only rakudo spectests didn't succ...
07:53 Austin heh heh heh
07:53 mikehh :-}
07:53 moritz Austin: no, it calls that method fairly randomly
07:54 bacek_at_work mikehh: GC bug...
07:54 bacek_at_work Austin: recursively iterate over?
07:55 moritz mikehh: could you try again with http://groups.google.com/group/parrot-dev/attach​/07d5487ff572d1ae/add_metadata_flag.patch?part=2 applied please?
08:02 bacek_at_work time to go home
08:03 bacek_at_work see you soon
08:15 |MoC| joined #parrot
08:39 mikehh moritz: I don't think it makes that much difference - slightly different results
08:50 nopaste "mikehh" at 90.209.206.211 pasted "rakudo test failures for moritz" (76 lines) at http://nopaste.snit.ch/17125
08:50 mikehh I know this should be in #perl6
08:51 moritz no problem
08:51 moritz mikehh: thanks very much for trying it out
08:52 mikehh moritz: I am going to try it again from scratch to see if there is any difference
08:52 bacek joined #parrot
08:53 bacek hi again
08:53 purl oh, you're back!
08:56 cotto joined #parrot
08:57 mikehh bacek: hi
08:57 purl hello, mikehh.
08:57 bacek hi mikehh
08:58 purl hi mikehh is probably still getting some weird results on Kubuntu Intrepid Amd64 - TT#412
09:00 mikehh bacek: I think that we are still getting GC bugs for rakudo
09:00 bacek I KNOW! :)
09:00 mikehh I thought that they had cleared up, but it seems they are back
09:00 bacek There is always another bug waiting...
09:37 mikehh moritz: I rebuilt and got slightly different results more tests passed - different failures
09:41 nopaste "bacek" at 114.73.176.104 pasted "Bah... Two results of same test run..." (18 lines) at http://nopaste.snit.ch/17126
09:43 bacek msg Whiteknight http://nopaste.snit.ch/17126 special for you...
09:43 purl Message for whiteknight stored.
09:54 donaldh joined #parrot
09:57 jonathan bacek: Do you have some stack randomization or heap allocation randomization stuff going on?
09:58 bacek jonathan: erm... No idea. Debian/Lenny x86.
10:00 jonathan bacek: Heh. I don't know anything about Linux. :-)
10:01 bacek jonathan: it... exists :)
10:01 jonathan ;-)
10:02 jonathan http://en.wikipedia.org/wiki/ASLR
10:02 jonathan That could be why you see indeterminite crashes, anyway. These bugs are very sensitive to memory layout...
10:05 bacek In Linux, a weak form of ASLR has been enabled by default since kernel version 2.6.12
10:05 bacek Aha!
10:05 bacek jonathan++
10:10 nopaste "mikehh" at 90.209.206.211 pasted "differences in make spectest runs in rakudo for moritz" (86 lines) at http://nopaste.snit.ch/17127
11:00 moritz mikehh: thanks for the analysis. I'm hilighting pmichaud since it will interest him, too
11:21 donaldh joined #parrot
11:43 bacek joined #parrot
11:52 TonyC joined #parrot
11:59 masak joined #parrot
12:00 Whiteknight joined #parrot
12:01 Whiteknight good morning #parrot
12:02 moritz good localtime()
12:03 Whiteknight purl msg bacek that's quite the nopaste! That's the same exact test, passing once and failing again with no differences? Very interesting
12:03 purl Message for bacek stored.
12:03 bacek joined #parrot
12:03 Whiteknight good morning moritz. I take it slavorg is down?
12:03 Whiteknight good morning bacek!
12:03 bacek good mor^W
12:03 bacek what? I almost gone to bed!
12:03 moritz seems like
12:04 bacek bacek@icering:~/src/rakudo.tt452$ ../parrot/parrot --gc-debug ./perl6.pbc t/00-parrot/02-op-math.t
12:04 bacek Method 'succ' not found for invocant of class 'Method'
12:04 moritz ah, it had no op
12:04 moritz thus couldn't hand out ops
12:04 bacek bah! It's not GC bug. Ot --gc-debug can't catch it...
12:05 Whiteknight that's good, right? GC bugs are the worst, so any other kind of bug must be better
12:05 bacek Whiteknight: no... I've lost someone to blame...
12:05 Whiteknight HA!
12:06 Whiteknight that looks to me like it could be a hash corruption issue
12:06 Whiteknight if hashes are losing keys, and if method names are stored in keys...
12:07 bacek indeed... But this is on my keys_revamp branch where I can reproduce this bug more easily. And I checked every single line in hashes for sanity.
12:08 bacek So... I can declare...
12:08 bacek IT'S ALL BACEK'S FAULT!
12:08 moritz YaY, we have somebody to blame!
12:09 Whiteknight does that bug ever occur in trunk, or is it just the branch?
12:09 bacek Whiteknight: it is.
12:09 moritz but we won't start throwing stones until he fixed it :-)
12:09 moritz Whiteknight: trunk too
12:10 Whiteknight great
12:11 moritz !
12:11 moritz (as in "not")
12:11 Whiteknight we really need a "sarcasm" operator
12:12 bacek In Sovi^ Perl6 you can declare OWN operators!
12:12 sjn <sarcasm>you mean like this?</sarcasm>
12:12 Whiteknight I suggest :P
12:12 bacek rakudo: say "hi"
12:12 polyglotbot OUTPUT[hi␤]
12:13 moritz rakudo: sub prefix:<sc:>($x) { "<sarcasm>$x</scarasm>" }; say sc:"great"
12:13 polyglotbot OUTPUT[<sarcasm>great</scarasm>␤]
12:14 bacek rakudo: prefix:<:P>($s) { say "<sarcasm>" ~ $s ~ "</sarcasm>" }; :P "Bah!"
12:14 polyglotbot OUTPUT[Statement not terminated properly at line 1, near ":<:P>($s) "␤in Main (src/gen_setting.pm:3340)␤]
12:14 Whiteknight rakudo: sub prefix:<:P>($x) {"<sarcasm>$x</sarcasm>"}; say :P"
12:14 polyglotbot OUTPUT[say requires an argument at line 1, near " :P\""␤in Main (src/gen_setting.pm:2444)␤]
12:14 Whiteknight damnit
12:14 Whiteknight rakudo: sub prefix:<:P>($x) {"<sarcasm>$x</sarcasm>"}; say :P"awesome";
12:14 polyglotbot OUTPUT[<sarcasm>awesome</sarcasm>␤]
12:14 sjn :)
12:14 bacek Bah! :)
12:15 sjn rakudo: :P
12:15 polyglotbot RESULT[{"P" => 1}]
12:15 sjn :)
12:15 bacek Wow. masa^W rakudo bug!
12:16 moritz why?
12:16 purl Left field.
12:16 moritz it seems perfectly fine to me
12:16 moritz :P as a term is a pair
12:16 jonathan Right.
12:16 bacek is it defaulting to 1?
12:16 jonathan Rakudo is right there I think. :-)
12:16 jonathan rakudo: say True
12:16 purl true
12:16 polyglotbot OUTPUT[1␤]
12:16 jonathan rakudo: say Bool::True
12:16 polyglotbot OUTPUT[1␤]
12:17 jonathan purl! :-P
12:17 sjn rakudo: say "\rakudo";
12:17 polyglotbot OUTPUT[Parrot VM: Can't stat languages/perl6/perl6.pbc, code 2.␤main: Packfile loading failed␤]
12:17 jonathan fail
12:17 Whiteknight TEH FAILZ
12:17 sjn rakudo: say "\rwhere did the text go?";
12:17 polyglotbot OUTPUT[Parrot VM: Can't stat languages/perl6/perl6.pbc, code 2.␤main: Packfile loading failed␤]
12:18 Whiteknight rakudo: w00t
12:18 polyglotbot OUTPUT[Could not find non-existent sub w00t␤]
12:18 Whiteknight rakudo: say "w00t"
12:18 polyglotbot OUTPUT[w00t␤]
12:18 Whiteknight rakudo: say "\rw00t"
12:18 polyglotbot OUTPUT[
12:19 masak o_O
12:19 Whiteknight that's the solution, you have to w00t it
12:19 Whiteknight raise rakudo's self esteem
12:20 jonathan rakudo: say "I am The Awesome."
12:20 polyglotbot OUTPUT[I am The Awesome.␤]
12:21 bacek rakudo: sub say($x where $x eq "w00t") { say "Bah!" }; say "great"; say "w00t"
12:21 polyglotbot OUTPUT[Unable to parse multisig; couldn't find final ')' at line 1, near "eq \"w00t\")"␤in Main (src/gen_setting.pm:3340)␤]
12:21 jonathan block
12:21 bacek rakudo: sub say($x where { $x eq "w00t" }) { say "Bah!" }; say "great"; say "w00t"
12:21 polyglotbot OUTPUT[Parameter type check failed; expected Junction, but got Str for $x in call to say␤in sub say (/tmp/vqtO1O38Td:1)␤called from Main (/tmp/vqtO1O38Td:1)␤]
12:21 bacek erm...
12:22 jonathan Again, correct, though mis-leading error.
12:22 jonathan (already we have a ticket for that)
12:22 bacek ah. ok.
12:22 jonathan (the Junction should be expanded)
12:22 * bacek taking off masak's hat
12:23 jonathan (internally if there are multiple type constraints they're held in an all junction)
12:23 jonathan I did a refactor to get type check error handling in one place already. So it'll be easier to fix now. :-)
12:24 skids joined #parrot
12:32 ruoso joined #parrot
12:44 dalek TT #814 created by stifynsemons++: v39897 build failure on Mac OS 10.5.7
12:59 masak so, I hear there are plans to make a profiling runcore.
13:00 masak I just want to say that this piece of news excites me, and that if you need early beta testers for it, I'm available.
13:02 Coke joined #parrot
13:07 buildbot joined #parrot
13:14 AndyA_ joined #parrot
13:14 * Coke drinks a peach-flavored coffee.
13:29 * davidfetter never considered peach as a coffee additive
13:29 davidfetter how is it?
13:30 Coke it tastes like a hot, squished, fuzzy peach.
13:30 davidfetter heh
13:30 Coke bizarre. I'd drink it again.
13:30 davidfetter :)
13:30 Coke (which is good, as we have a case of the k-cups here at work.)
13:30 davidfetter k-cups?
13:31 Coke k-cups is http://www.keurig.com/
13:31 Coke optimized for maximal packaging. :|
13:31 davidfetter ugh
13:32 davidfetter istm it shouldn't be impossible to make refillable cups
13:32 Coke you'd think.
13:33 davidfetter ask 'em :)
13:35 davidfetter http://www.keurig.com/help/faq.asp#coffeeTea3
13:35 davidfetter ugh
13:35 * davidfetter ponders internalizing this cost
13:36 Andy joined #parrot
13:52 NotFound hi
13:52 purl niihau, NotFound.
13:52 Gerd left #parrot
14:12 masak oh my, a bot massacring Pinyin...
14:15 davidfetter i'm thinking that should be nin3hao3 anyhow
14:17 masak why? because they are not acquainted, or because purl is a bot?
14:18 soxet joined #parrot
14:18 davidfetter the former
14:20 masak I haven't had the impression that natives would be offended if someone said 'ni2' instead of 'nin3' -- at least the difference is less important than, say, 'tu'/'nous' in France.
14:20 masak er, 'vous'.
14:21 * davidfetter checks with a "native"
14:21 masak :)
14:21 jonathan I found most natives were too busy being amazed that I could say "ni hao" to be offended. ;-)
14:21 masak yes, that might be it, too. :)
14:21 masak but I think I've been greeted with 'ni hao' by someone's parents.
14:22 masak either they were going out of their way to be familiar, or it didn't matter that much to them.
14:22 davidfetter it's how you greeted them, if i understand this right
14:23 davidfetter and i'm guessing you get a lot of leeway as a ferriner
14:23 masak I think they greeted me first, but ok.
14:30 * Coke wonders if chinese have a concept similar to gaijan.
14:30 * Coke needs more koohii.
14:31 masak Coke: do you mean 'gaijin'?
14:31 Coke whoops.
14:31 Coke I surely do.
14:31 Coke what little japanese I had is nearly gone. =-)
14:32 masak yes, the same word exists in Chinese.
14:32 NotFound I think that worrying about japanese traditions is like learning etiquette of Don Quijote's times before travelling to Spain X-)
14:32 masak I should say 'Mandarin' there, actually.
14:33 masak it's wai4ren2 in Mandarin.
14:36 dalek TT #815 created by fperrad++: Add a step for Configure
14:41 chromatic joined #parrot
14:41 iblechbot joined #parrot
14:42 davidfetter <-- mei3guo3ren2
14:42 davidfetter (i think i got the tones right)
14:49 Administrator joined #parrot
14:49 jimmy Did anybody need help about chinese?
14:50 jimmy coke?
14:50 purl coke is probably Will Coleda <mailto:will@coleda.com> or perpetually annoyed.
14:51 davidfetter jimmy, we were wondering under what circumstances "nin3 hao3" is more appropriate than "ni3 hao3"
14:51 jimmy Is that a joke?
14:52 PacoLinux joined #parrot
14:53 jimmy masak: good afternoon
14:53 masak jimmy: no hai! hao jiu bu jian le!
14:54 masak erm, s/no hai/ni hai/
14:54 jonathan .oO( is no hai Chinese for oh hai? )
14:54 davidfetter jimmy, nope
14:54 masak my Lolcal is destroying my Mandarin. :/
14:54 masak s/cal/cat/
14:54 jonathan lol!
14:54 davidfetter heh
14:55 masak also, just to practice: jimmy: 你好! 好久不见了!
14:57 jimmy masak: hello,no time no see.
14:57 jimmy masak: long time no see.
14:57 purl No...I've been watching you. That thing you do with the candle is most impressive.
14:58 masak purl: you really need to be quiet more often.
14:58 purl masak: sorry...
15:00 masak it's an interesting fact that 'long time no see' is one of the few borrowings from Chinese into English. that's why it looks ungrammatical in English.
15:04 jimmy davidfetter:I think that's a joke.
15:05 jimmy masak: yeah
15:08 jimmy gaijin ? tigao?
15:09 jimmy tisheng
15:09 Coke yah, I didn't mean a word that means foreigner, but if it had the same connotations.
15:10 tokuhirom_ joined #parrot
15:11 jimmy Please give me some english words and I'll list all words in chinese..
15:12 chromatic pants
15:12 chromatic killer robot
15:12 chromatic hovercraft
15:12 chromatic eels
15:12 masak futon
15:12 chromatic monkey butter
15:12 purl monkey butter is probably http://www.jwz.org/gruntle/monkeybutter.html or http://www.jwz.org/gruntle/ or http://cookie.allrecipes.com/az/MnkyPBBars.asp
15:13 masak Coke: there's a pseudo-prefix 'lao3' to words which denote scary things. for example 'lao3hu1', "tiger". it can also be applied to foreigners, 'lao3wai4', but the usage is controversial nowadays, I think.
15:13 masak jimmy might be able to fill in the gaps in my knowledge here.
15:14 jimmy chromatic: another joke ?
15:15 masak jimmy: yes. :)
15:15 masak jimmy: but I would like to see translations of those words.
15:15 masak jimmy: for the hovercraft and the eels, see http://en.wikipedia.org/wiki​/Dirty_Hungarian_Phrasebook
15:16 Hunger :)
15:20 donaldh joined #parrot
15:31 * Coke read's Ovid's post with some curiosity.
15:32 jonathan "It wasn't me!"
15:32 * Coke hasn't been following p5p, so only sees the occasional blog post.
15:32 * masak also
15:33 pmichaud which post in particular, here?
15:33 Coke http://use.perl.org/~Ovid/journal/39237?from=rss
15:37 * Coke finds http://www.nntp.perl.org/group/perl.​perl5.porters/2009/07/msg148155.html also, which is related.
15:38 Coke ah. apparently I am not as far behind on p5p news as I thought, as that is from last night.
15:38 Coke sad.
15:38 moritz also http://consttype.blogspot.​com/2009/07/resigning.html
15:40 PerlJam oh!  I nominate chromatic  ;>
15:41 chromatic No thanks; I have my doubts about the pumpking concept in general.
15:42 Andy Any volunteers to make Perlbuzz more professional?
15:42 Andy Because apparently that's what it's supposed to be.
15:42 Andy Whatever "professional" is.
15:43 pmichaud Andy: is this in response to a comment where someone said "it needs to be more professional"?
15:43 Andy http://consttype.blogspot.com/2009/0​7/perlbuzz-is-no-longer-useful.html
15:44 moritz someone is very disappointed
15:47 pmichaud fwiw, here's my take on the role of "pumpking".  The pumpking's primary job, as I understand it, is to oversee the development process.  But the primary metric by which a pumpking is to be evaluated has to be by the quality of whatever gets released.  That means there have to be releases.
15:47 jimmy sorroy,I can't follow you, masak
15:48 pmichaud If there are no releases, then as far as the larger community is concerned, there's no progress.  This was one of the major problems that plagued Perl 6 development until recently -- no releases implies no progress, regardless of how much "work" has actually been done.
15:48 masak jimmy: about the hovercraft. then never mind.
15:49 moritz pmichaud: I guess you know that the p5p pumpking has much more to do and say than that
15:49 jimmy davidfetter:mei3guo2ren2?
15:50 davidfetter jimmy, yeah, as you can tell, my mandarin is pretty limited ;)
15:51 jimmy well, not all chinese know mandarin.
15:51 jimmy good night, everybody.
15:51 chromatic The pumpking job is difficult and thankless: http://www.modernperlbooks.com/mt/2​009/06/the-value-of-a-pumpking.html
15:53 PerlJam Isn't that some of the evidence that perlbuzz is unprofessional?  :)
15:54 Andy how so?
15:54 chromatic I believe that was sarcasm.
15:54 PerlJam indeed.
15:55 PerlJam chromatic: though I'm not sure whether to ++ or -- you for being the proverbial last-straw for Rafael.
15:55 pmichaud moritz: I didn't say the only metric; I just said the primary one.  If there's another metric that is more important, I'd like to hear it.
15:56 Andy PerlJam: Screw you, it was Perlbuzz that was the last straw!
15:56 Andy It wasn't chromstic.
15:56 Andy I want credit for it!
15:57 Andy After all, "Someone is actively trying to damage the community image of P5P out there, and perlbuzz is helping him."
15:57 PerlJam Andy: sorry, perlbuzz wasn't mentioned by name in the resignation letter.
15:57 Andy Yeah, but we know better!
15:57 chromatic How about +0?  I've explained my goals from the start.
15:57 particle stop looking backwards.  it's time to start up the "perl is dead" threads again.
15:57 Coke I would like to point out that this channel is logged and sarcasm is hard to read.
15:58 chromatic Also sarcasm is rarely helpful online.
15:58 Andy s/ online//
15:58 moritz pmichaud: I was not referring to the metrics, but to the role. In Perl 5 it's not only "overseeing", but also "applying patches", "releasing", "tracking bugs" etc.
15:58 pmichaud moritz: sure... but all of those only matter if they lead to a release.
15:59 moritz right.
15:59 pmichaud that was the point of my comment above.
16:00 pmichaud the pumpking doesn't have to apply patches, he simply has to make sure that patches get applied.  the pumpking doesn't have to track bugs, he simply has to make sure they are being tracked (and addressed).
16:00 pmichaud Sometimes the pumpking actually *does* those tasks, yes.  But delegation and distribution of tasks are what scale.
16:01 pmichaud s/Sometimes/Often/
16:03 PacoLinux joined #parrot
16:03 pmichaud jonathan: still here for lexicals discussion?
16:04 jonathan pmichaud: yes, sure
16:04 pmichaud okay.
16:04 pmichaud so, right now a lexpad stores register numbers
16:05 Andy I hope nobody minds my refactoring from last night.
16:05 jonathan Right. I'd rather not change that if we don't have to.
16:05 Andy behaviors defined by a single boolean make me sad
16:05 Andy even if that boolean is wrapped in an enum
16:05 pmichaud essentially I think that we give every Sub a LexPad that isn't tied to a register frame
16:05 pmichaud sorry, that's wrong.
16:05 pmichaud rephrasing
16:06 pmichaud every Sub gets a register frame for its LexPad
16:06 pmichaud its static LexPad
16:06 pmichaud this is, in fact, what essentially happens now when we end up autoclosing subs -- we create dummy register frames for the autoclosed portion
16:07 jonathan OK.
16:07 pmichaud that static register frame is then what would hold the pre-initialized values
16:07 jonathan OK.
16:07 pmichaud I _think_ that's something of the way I had been thinking of things
16:08 jonathan That sounds sensible to me so far.
16:08 jonathan The next question is, how do we know when we're setting them into this context?
16:08 jonathan Do we know if just because we auto-closed?
16:08 jonathan So we hand over the original frame/create it, rather than cloning one?
16:08 pmichaud no, not exactly.
16:09 * pmichaud thinks a second.
16:09 pmichaud oh, maybe we could prototype something in PIR
16:09 pmichaud now that I'm thinking about it
16:10 pmichaud let me check a couple of things
16:12 pmichaud okay.
16:13 pmichaud oh, one other item... checking
16:14 pmichaud okay, how about this?
16:14 Theory joined #parrot
16:14 pmichaud right now, we have .loadinit code that attaches properties to Parrot Subs to make them into Rakudo subs
16:15 pmichaud as part of that .loadinit sequence, we
16:15 pmichaud create a new LexPad
16:15 pmichaud populate the LexPad with our pre-initialized variables (properties, values, whatever)
16:15 pmichaud attach that LexPad to the sub
16:16 jonathan Where "populate the lexpad" means?
16:16 pmichaud example:   my Foo @array;
16:16 pmichaud in the lexpad we would create a Perl6Array, attaching 'rw' property and the 'type' property to it
16:17 jonathan nod
16:17 jonathan OK, better question is: show me what that'd look like inside the loadinit
16:17 pmichaud just a sec
16:17 jonathan (esp the "create a new lexpad" step)
16:17 pmichaud oh, that part is easy
16:17 pmichaud lexpad = new 'LexPad', lexinfo
16:18 Theory chromatic: I blame you.
16:18 jonathan lexpad['$foo'] = $P0 # where does it actually store this?
16:19 chromatic For making lexpads easy, Theory?
16:19 Theory um
16:19 pmichaud oh, lexpads aren't hashes
16:19 pmichaud darn.
16:19 jonathan Right.
16:19 pmichaud okay, we create a hash then
16:19 jonathan That's what makes this a tad tricky.
16:19 pmichaud just create a plain hash, then
16:19 pmichaud and we'll attach the hash
16:20 jonathan At which point we get to, we make a hash containing the initial values and attach that, and then copy at the start of the sub.
16:20 pmichaud right.
16:20 pmichaud "copy at the start of the sub" can be a dynop for now
16:20 pmichaud or it can be a PIR sub
16:20 jonathan Maybe employing a dynop to do that copy so we don't have to (a) call - slow or (b) emit a wobload of inline PIR into every sub.
16:21 jonathan Oh, there's always (c) a macro
16:21 pmichaud well, I think the big win is that we're not constantly creating PMCs for type, rw, etc.
16:21 jonathan But you don't like those. :-)
16:21 pmichaud because those get shared.
16:21 jonathan (And where to keep them is a pain too...)
16:21 jonathan I like the dynop approach.
16:21 pmichaud I think I'd actually start with PIR
16:21 pmichaud ultimately it should be a speed win
16:22 jonathan What, call a PIR sub?
16:22 pmichaud yes.
16:22 jonathan Yeah, can do that for a first cut.
16:22 jonathan But thing is
16:22 jonathan will $P0 = clone $P0 # where $P0 is a Perl6Array
16:22 jonathan Actually clone the metadata?
16:23 pmichaud currently, no.
16:23 pmichaud but in reality, we don't want it to clone the metadata
16:23 pmichaud we want to use setprophash
16:23 jonathan No, that's why I was asking.
16:23 jonathan Did setprophash get implemented yet?
16:23 pmichaud I think so.  If it didn't, though, we can always iterate getprophash and bind individually.
16:23 * davidfetter wonders what a phash is
16:23 jonathan Or write setprophash dynop and propose it for moving into core.
16:24 pmichaud it's also possible that we really don't want to do a clone
16:24 pmichaud although if we're expecting things to have initial values, then perhaps we should (more)
16:25 pmichaud but we could have the "initial lexpad" simply keep track of the type of things to be created, rather than have an initial copy
16:26 jonathan I suspect initial copy may be easier.
16:26 pmichaud I'm wondering if it does bad things on startup, though.
16:27 jonathan Such as?
16:27 pmichaud a user-defined object might have side effects to creation
16:28 pmichaud and creating one prematurely might cause problems
16:28 jonathan ah, hmm
16:28 jonathan This gets kinda "fun" though.
16:28 jonathan Because e.g. traits are meant to be applied _once_.
16:28 jonathan Consdier
16:28 jonathan my Int @arr;
16:28 jonathan We're meant to call trait_mod:<of>(@arr, Int) once.
16:29 jonathan Ever.
16:29 jonathan But you do bring up an interesting problem.
16:29 pmichaud I don't see the tricky part to that.
16:29 jonathan Well it means that we need to create a Perl6Array and apply that trait to it.
16:30 jonathan And then "re-use" that already-set-up container.
16:30 pmichaud we can't create something that says "become a Perl6Array upon register frame activation" and apply the traits to that?
16:30 jonathan Like, on the first call?
16:31 pmichaud I see your point, yes.
16:31 jonathan That'd mean the loadinit woulnd't be able to apply the triats, it'd just have to store a thunk that did.
16:31 pmichaud well, it can put traits on the thunk
16:32 pmichaud and the thunk keeps those traits when it's unthunked
16:32 jonathan And then we call that thunk once.
16:32 pmichaud we're already going to have to do setprophash anyway
16:32 jonathan True.
16:32 jonathan Also
16:32 jonathan It means there's much less work that we have to do at startup
16:32 jonathan e.g. if a sub is never called, we don't spend time setting stuff up for it.
16:32 pmichaud right, that's kinda what I was aiming at.
16:32 Austin_zzz joined #parrot
16:33 pmichaud we still have an issue, there, though -- and that's dealing with Parrot's autoclose
16:33 * PerlJam lauds chromatic to offset Theory's blame.
16:33 jonathan Though it does mean for every block we'll have a loadinit *and* a setup thunk block.
16:33 Theory heh
16:34 pmichaud well, I wasn't necessarily thinking of the setup thunk as being a block.
16:34 pmichaud in the parrot sub sense
16:34 pmichaud just enough information attached to the sub so that we can dtrt
16:34 jonathan hmm
16:34 pmichaud the same way that signatures aren't blocks, they're metadata that provides !SIGNATURE_BIND with enough detail to dtrt
16:35 pmichaud heh
16:35 jonathan Aye, I'm just worried we're going to get ourselves into a horrible tangle if we're not very careful.
16:35 pmichaud actually, our initial lexpad is really just more signature data.
16:35 pmichaud i.e., a block's lexinfo could be considered part of its signature.
16:35 jonathan Because new traits are a language tweak really.
16:36 jonathan And we need to make sure we dispatch the trait application in the correct lexical scope and from within the correct namespace.
16:36 pmichaud that argues against combining the .loadinits
16:37 pmichaud (we had talked about combining .loadinits as a startup optimization -- this would seem to say we can't do that)
16:37 jonathan Aye, for trait application this gets a bit more scary.
16:38 jonathan If we start doing stuff like that from the wrong lexical scope, and we miss out on lexical multi-variants, we're going to be in trouble.
16:38 pmichaud okay.
16:38 sekimura joined #parrot
16:38 pmichaud can I ask for a day or two to let some of this percolate in my head a bit (more)
16:38 pmichaud I had only been thinking about things from a purely parrot perspective, without much thought to trying intermediate steps
16:38 jonathan You can. I'm actually going to be offline again for end of this week and next week.
16:39 pmichaud oh, that might work out really well then
16:39 jonathan (Seeing family etc)
16:39 jonathan I pondered taking a laptop with me, but where I'm going to be doesn't have so much connectivity options.
16:39 pmichaud I think I can come up with some ideas about being able to do much of this in existing parrot, without introducing radical changes
16:40 jonathan Plus I think what we're talking about is a bigger refactor than I can really pull off in the next day or two.
16:40 pmichaud either way, I think I'll have an idea of whether radical changes are needed so we can get them in the deprecation cycle before the 21st
16:40 pmichaud I agree, it's pretty big.
16:40 pmichaud but I like the idea of doing it in smaller steps
16:40 pmichaud and we should get some performance wins along the way
16:40 pmichaud (even in PIR)
16:41 jonathan OK, that sounds good.
16:42 pmichaud shall we plan a bit of scheduling between now and yapc::eu ?
16:43 pmichaud you're offline from approx July 9 to July 17 ?
16:43 jonathan The weekend after that too.
16:44 pmichaud so, to about July 19 ?
16:44 jonathan (Heading back then)
16:44 jonathan Right.
16:44 pmichaud July 19 I'm traveling to oscon, will be at oscon 20-24
16:44 jonathan OK.
16:44 pmichaud returning home on 25
16:44 pmichaud I expect to be available while at oscon, of course
16:44 jonathan Didn't you have some issues with the net connectivity there last year?
16:44 pmichaud but it'll be somewhat like yapc, where I'm also doing other on-site things (like giving presentations)
16:45 pmichaud yes, I did, but that was on my old laptop.
16:45 pmichaud I have new laptop this year :-)
16:45 jonathan :-)
16:45 pmichaud also, last year was at the oregon convention center
16:45 pmichaud although I guess it's o'reilly that handles the networking in any event
16:45 pmichaud regardless, my new laptop seems to have a much more robust wifi card
16:46 jonathan Ah, good.
16:46 pmichaud I've noticed much fewer connectivity issues with it wherever I go.
16:46 jonathan Wow, I hadn't realized how soon YAPC:EU was...
16:46 pmichaud so I don't expect wifi to be an issue
16:46 pmichaud anyway, I'll be at oscon 20-24.  Parrot release is 21.  Rakudo release would be 23.
16:47 pmichaud after that, we have one week before yapc::eu
16:47 jonathan Aye.
16:47 pmichaud anything big we want to have done going into yapc::eu ?
16:48 pmichaud most of what I've been planning to focus on for yapc::eu hasn't been directly code related
16:48 pmichaud here are (some of) my desired outcomes from yapc::eu
16:49 pmichaud > 1. Detailed plans for Rakudo development over the next 6 months
16:49 pmichaud > 2. Identification of specific features and timeline for a "Rakudo 1.0 release"
16:49 pmichaud > 3. Clarification of Perl 6 specification issues that are blocking development
16:49 pmichaud > 4. Publication of items 1-3 above
16:49 pmichaud > 5. Presentation of "Hacking Rakudo Perl" at YAPC::EU
16:49 pmichaud > 6. Recruitment of more developers and users to Perl 6 and Rakudo Perl
16:49 pmichaud I'm thinking of adding
16:49 jonathan I think at a code level there's not much I want to have pre-YAPC.
16:49 jonathan Other than making sure that all code in my yet-to-be-written talk works. ;-)
16:49 pmichaud > 7. Detailed review of rakudo's implementation status at synopsis sub-section level
16:50 jonathan That - 7 - would be very helpful in really gauging where we are at.
16:50 pmichaud That was obra's suggestion
16:50 jonathan I expect doing it properly will take at least half a day.
16:50 pmichaud I agree it would be hugely helpful.
16:50 pmichaud well, I'm thinking I should have a draft of it pre-yapc::eu
16:51 jonathan I'd already considered printing off S12 and S14 and going thorugh those highlighting what's done.
16:51 jonathan And not done.
16:51 pmichaud I was thinking of simply grabbing  "=head\d" and "=item"  lines from the synopses, and marking those.
16:51 jonathan That'd be OK too.
16:52 pmichaud marks would be "done, mostly done, a little done, not at all"  or something like that
16:52 jonathan Thing is though, in S12 I think we can count 1 heading that we don't have any coverage of yet.
16:52 jonathan So I'd really like to know what's left.
16:52 jonathan Same with S14.
16:52 pmichaud right
16:53 pmichaud anyway, maybe I can put together a structure for marking progress
16:53 jonathan That would be good to have.
16:53 pmichaud might even just end up being a (online) spreadsheet
16:53 jonathan Then we can review it together at YAPC::EU
16:53 pmichaud at least as a start, until we see what sorts of automated tools we might build for it
16:53 pmichaud yes, and perhaps bring others in on the review
16:53 jonathan That too.
16:54 pmichaud presenting it might make a good lightning talk :-)
16:54 jonathan Yes!
16:54 jonathan Especially if we can make it look pretty ;-)
16:54 pmichaud of course
16:54 pmichaud I might even try to do a version as an oscon lightning talk, but the timing on that might be a bit tricky
16:55 pmichaud maybe I'd just do a small subset, like S03-S05
16:55 pmichaud then we have the full thing for yapceu
16:55 jonathan nod
16:55 pmichaud okay, sounds reasonable
16:55 jonathan The ones I'd be interested to go through are like S02/S03/S04/S06
16:55 pmichaud agreed
16:55 jonathan As I've really not got a good feel for just how much of those we already cover.
16:56 pmichaud we do pretty well on many things
16:56 jonathan S12 and S14 I've been working very actively on.
16:56 pmichaud S06 is probably our weakest point from that set
16:56 jonathan So I've got a good picture of where we're at.
16:57 jonathan Even looking through the headings in S06 though
16:57 jonathan The initial set we seem good on
16:58 jonathan Ah, but feeds and macros are big missing bits
16:58 jonathan Also some of the more complex sig stuff
17:01 pmichaud right
17:01 pmichaud and we still don't handle named arguments correctly   :-( :-(
17:01 pmichaud I blame Parrot.
17:02 jonathan Aye.
17:02 jonathan :-(
17:05 dalek parrot: r39898 | NotFound++ | trunk/src/io/unix.c:
17:05 dalek parrot: [cage] reverting change in r39869 that broke c++ build
17:05 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39898/
17:17 jhorwitz joined #parrot
17:18 jdv79 are traits working in rakudo?
17:18 pmichaud which traits?
17:19 jdv79 The ones doc'd in S14
17:19 jonathan Ah, writing your own custom traits?
17:19 jdv79 i have a module i'd like to port from Moose and i think i need traits to do it
17:20 jonathan They're working to some extent. I comitted the initial refactor to start getting them in place yesterday.
17:20 jonathan So it's really bleeding edge at the moment.
17:20 jdv79 oh.  i'll take a quick gander then.  thanks.
17:21 jonathan http://gist.github.com/141544 # enough is done in Rakudo that things like this work, for exampl
17:21 jonathan e
17:21 jonathan Traits on subs you're likely to have no problem with.
17:21 jonathan Or few.
17:21 jonathan Traits on variables, there be dragons at the moment.
17:22 jonathan I'm very interested in any issues taht you run into though, of course.
17:32 Tene Wow, one-pint swallows.
17:32 Tene jonathan has impressive drinking skills.
17:35 mberends joined #parrot
17:35 jonathan ;-)
17:39 davidfetter mmm...drinks
17:49 dalek parrot: r39899 | fperrad++ | trunk (4 files):
17:49 dalek parrot: [config] refactor the generation of has_header.h with a template
17:49 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39899/
17:53 dalek close: r50 | Austin++ | trunk/ (3 files):
17:53 dalek close: Fixes issue #20. Added 'split' builtin, tests.
17:53 dalek close: review: http://code.google.com/p/close/source/detail?r=50
17:53 ruoso joined #parrot
17:54 buildbot joined #parrot
17:55 zak_ joined #parrot
18:05 rdice joined #parrot
18:08 * Coke reads http://code.google.com/p/close/wiki/CloseIntro and thinks (wait, what about NQP?)
18:08 Coke or .hll_macros, for that point.
18:09 Coke ... or jolt.
18:09 Coke (cola? some beverage-based lang.)
18:09 Coke not that those necessarily obviate close, but mentioning why they were insufficient or overkill or whatever would be helpful.
18:11 Austin What's the NQP syntax for storing something in an integer register?
18:12 * jonathan is curious to look at how Austin++ got storage in int registers working
18:12 * Austin isn't telling.
18:12 Austin (Until 0.3)
18:12 jonathan aww. :-(
18:12 jonathan Rakudo will need to do that for it's lowercase int tyep.
18:12 jonathan *type
18:12 Austin Yeah.
18:13 Austin "Close milestone 0.3" is actually a PCT rewrite.
18:13 Austin Or should I say "feature fest"?
18:13 Tene Austin: NQP syntax *will* be: my int $x;
18:15 pmichaud I asked that question on the mailing list ("why is NQP insufficient?") too but saw now response
18:15 pmichaud s/now/no/
18:15 pmichaud but yes,  the syntax for putting things in int registers is    my int $x;
18:16 pmichaud also   my num $x;   and     my str $x;
18:17 dalek parrot: r39900 | jonathan++ | trunk/runtime/parrot/library/P6object.pir:
18:17 dalek parrot: [p6object] Remove redundant line.
18:17 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39900/
18:17 Austin I kind of figured that "NQP is insufficient" == "not(X is written in NQP)" for some set of x
18:18 pmichaud I don't understand.
18:18 pmichaud that simply because we haven't written X in NQP yet, that means that NQP must be insufficient for writing X?
18:19 Tene Yes, that's what he's saying.
18:19 Austin Pretty much.
18:19 pmichaud hmmm.
18:19 Austin Lots of files ending in .PIR, not so many in .NQP in the lib dirs
18:19 pmichaud well, sure, most of those .pir came long before NQP
18:19 pmichaud and nobody's had a strong reason or inkling to try rewriting them
18:20 pmichaud ("if it ain't broke...")
18:20 jonathan pmichaud: I don't know if you have noticed the following during the Parrot build:
18:20 jonathan ..\..\parrot.exe  C:\Consulting\parrot\trunk\runtime\​parrot\library\PGE\Perl6Grammar.pir  --output=src\Grammar_gen.pir src\Grammar.pg
18:20 jonathan in file 'C:\Consulting\parrot\trunk\runtime\​parrot\library\PGE\Perl6Grammar.pir' line 174
18:20 jonathan Duplicated IDENTIFIER 'namespace'
18:20 pmichaud jonathan: yes -- there's a patch for it.
18:20 pmichaud I just haven't tested/applied it yet.
18:20 jonathan OK.
18:21 jonathan it just whizzed by as I was building and I wondered if you'd spotted it too :-)
18:21 Austin What's the return type of an unset attribute from PCT::Node?
18:21 pmichaud Undef
18:22 Austin Thanks.
18:22 Austin Thanks.
18:22 pmichaud Austin: any chance you could rewrite the prose to not claim that NQP is insufficient...?  ;-)
18:22 Austin Sure.
18:22 pmichaud it did seem like a very strong claim when I read it.
18:22 Austin I've got a rewrite-request pending. Probably today.
18:23 pmichaud okay, thanks.
18:23 pmichaud btw, I think TT #803 is fixed.  I didn't close the ticket yet because I'm trying to figure out if/how I want to write a test for it.
18:24 Coke assign it to moritz! =-)
18:24 Coke ... just use the NQP test?
18:25 Coke add a new regression file in the nqp test suite, slap it in there.
18:25 pmichaud sure, but it really ought to be a test for PCT, not for NQP.
18:26 Coke it's a test for pct written in nqp.
18:26 Austin I've got a set of those in Close.
18:26 pmichaud so I'd want to see it in t/compilers/pct, not compilers/nqp/t
18:26 pmichaud also, checking output is a bit tricky.
18:27 pmichaud since it doesn't produce something that is easily "ok 1"
18:27 Austin Yeah. I added a "TreeUnit" page to talk about that.
18:28 Austin HLL guys (like me!) are likely to appreciate some kind of tree-output-validator
18:28 pmichaud Perl 6 has designs for one, although nobody's implemented it yet.
18:29 Coke (tree output validator) - ... use TGE to generate some testable output. =-)
18:29 Austin Coke: How hard would it be to hook TGE up to NQP or Close code, instead of PIR?
18:29 pmichaud See "Unpacking tree node parameters" in Synopsis 6 for Perl 6's ideas about tree management.
18:31 Austin Okay, I found it. What's the context of this =head2?
18:31 Coke Austin: ISTR getting TGE to allow other languages in the blocks was on allison's todo list about 2-3 years ago. =-)
18:31 Coke I don't think it ever landed.
18:31 Coke I can probably dig up an RT for you.
18:31 pmichaud It didn't.  And I think we primarily blocked on having a good tree matching syntax.  At least, that's where I blocked.
18:32 pmichaud the mechanisms themselves were no problem, but having a clean syntax to specify the tree transformations was always an issue.
18:32 Coke http://rt.perl.org/rt3/Tic​ket/Display.html?id=40002
18:32 Austin Jesus. I don't think I'll ever learn Perl6.
18:33 Austin multi traverse ( NAry $top ( :kids [$eldest, *@siblings] ) ) {
18:33 NotFound jonathan: there were trac tickets for all "Duplicated IDENTIFIER" warnings from the first day imcc was able to emit them.
18:33 Austin The O'Reilly book is going to be behind the counter, under a wooden panel. "You must have an IQ at least 5 points higher than yours currently is to buy this book."
18:34 pmichaud what frightens me a little is that I can read that Perl 6 line without any difficulty :-)
18:34 pmichaud even though I haven't really studied that syntax
18:36 NotFound pmichaud: BTW, the warning is seen several times because the Makefile uses the .pir instead of the .pbc generated. This is intentional?
18:36 pmichaud yes
18:36 jonathan pmichaud: You know you've been doing Perl 6 too long when... ;-)
18:36 pmichaud jonathan: maybe I should resign today also.  :-)
18:36 jonathan noooooooooooo!
18:37 pmichaud "I'm resigning because I saw the line of code 'multi traverse ( NAry $top ( :kids [$eldest, *@siblings] ) )'  and it actually made sense to me."
18:37 * jonathan is a terrified by that thought
18:37 chromatic What's not obvious about that line of code?
18:37 jonathan I actually quite want to implement the stuff to make that line of code work. :-)
18:38 pmichaud 15:58 <chromatic> Also sarcasm is rarely helpful online.
18:38 pmichaud Unless that wasn't sarcasm, in which case I might be even more frightened :-)
18:39 pmichaud I do have to say, though, that I'm curious to see what we can do with tree matching when such things are available.
18:39 Tene use xpath;
18:39 chromatic To be fair, I've thought about tree matching for a while myself.
18:39 pmichaud oh yes, I had forgotten that.  Okay, I'm unfrightened.
18:42 jonathan Getting us able to multi-dispatch based upon nested signature bindability won't be so bad.
18:43 jonathan Doing it fast though is a whole different matter. :-)
18:45 pmichaud right now I'm interested in "at all"  :-)
18:46 ilia joined #parrot
18:47 jonathan Well, I'm kinda waiting on seeing what the Parrot dispatch refactor brings.
18:47 jonathan erm
18:47 jonathan calling conventions refactor
18:48 rob joined #parrot
18:51 * cotto wonders if that's ever going to land
18:52 jonathan same
18:53 jonathan I'd rather not having to work around PCC in Rakudo.
18:55 darbelo joined #parrot
18:57 Austin Well, that's nice. The Post Office thinks I've moved. :-|
19:01 cotto Maybe they're trying to tell you something.
19:02 Austin Yeah. They're trying to tell me I need to call my mother. Since she just called in a panic...
19:02 japhb joined #parrot
19:02 Austin Should Undef have a definite logical value?
19:02 pmichaud false.
19:02 pmichaud assuming you mean "boolean value"
19:02 pmichaud undef evaluates to 0 as a number, "" as a string, and false as a boolean
19:02 Austin Because class 'Undef' doesn't handle logical not.
19:03 pmichaud ?
19:03 Austin logical_not() not implemented in class 'Undef'
19:03 pmichaud oh
19:03 pmichaud interesting.
19:03 pmichaud what calls logical_not()?
19:03 Austin Is that a vtable message?
19:03 pmichaud I guess the "not" opcode?
19:03 Austin Yep.
19:04 pmichaud but undef does implement get_boolean, yes?
19:04 Austin ok(!(obj.flat()), "flat: New object is not flat");
19:04 Austin undef.pmc has get_bool return 0
19:05 pmichaud right
19:05 pmichaud anyway, interesting.
19:05 Austin Apparently only scalar.pmc implements logical not.
19:05 pmichaud correct -- I had never even heard of logical_not until now.  :-)
19:06 Austin Well, is this a bug?
19:06 Austin (I'm inclined to think it is...)
19:06 pmichaud you'd have to ask the parrot designers/architects about that one :-)
19:07 Austin Hmm. I'll just submit the bug, and they can resolve it.
19:07 pmichaud I'm a little surprised there's even a logical_not :-)
19:07 Austin :)
19:07 Austin One of those things that seemed like a good idea in 2001, I guess.
19:07 Austin Kind of like flying cars.
19:07 Austin And perfume.com
19:08 pmichaud aha
19:08 pmichaud NQP uses the isfalse opcode
19:08 pmichaud instead of 'not'
19:08 NotFound At least he not started to kill people on that year.
19:08 Austin NotFound: huh?
19:08 NotFound 2001
19:08 mikehh looks like r39899 caused a failure in t/steps/gen_config_h-01.t
19:10 Austin Allison commited a changeset 24650 to in support of pdd17pmc on 01/07/08 that vtable-ized the logical operations.
19:10 * pmichaud decides to switch hacking locations (to the back porch).  He doesn't notify the Post Office.
19:10 pmichaud weird, it's as recent as Jan 2008.
19:11 Austin Just wait, Pmichaud, until your mom calls you in a panic, convinced that the "Return to Sender" she just got means you're dead or in the hospital.
19:12 pmichaud Since she keeps moving without notifying me, I hope otherwise.
19:12 Austin And "josh" committed cs#1844, implementing a patch from Sean O'Rourke that "fixed' logical_not in PerlInt.
19:12 pmichaud I tried calling on Mother's Day and she had changed her phone number.
19:12 Coke josh has been gone for some time.
19:12 Austin Here's your sign.
19:12 Coke so has PerlInt.
19:12 Coke cs# ?
19:12 mikehh pre-config/smolder FAIL with t/steps/gen_config_h-01.t exits after test 9 - fulltest PASS
19:13 Austin cs# = changeset#
19:13 Coke ah. in svn we tend to use r.
19:13 Coke so, r1844.
19:13 mikehh at r39900 - Ubuntu 9.04 amd64
19:13 Austin This is from Trac. I sort of assume that Trac is tied up with SVN, though they keep claiming otherwise.
19:14 NotFound mikehh: Debian amd64 here, and don't see that problem
19:15 Coke Austin: trac has-a-svn.
19:16 Coke mikehh: you might be better off opening tickets for these reports.
19:16 NotFound Uh, no, It fails.
19:16 Coke unless notfound happens to be here. =-)
19:16 NotFound t/steps/gen_config_h-01.t .. 1/11 Undefined subroutine &gen::config_h::_handle_define_option called at t/steps/gen_config_h-01.t line 62.
19:18 pmichaud Gee, there's a service for everything:  https://www.renewbot.com/
19:19 dalek rakudo: 1340dd4 | jnthn++ | src/ (3 files):
19:19 dalek rakudo: A few s/new/root_new/ for the (minor) win.
19:19 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​340dd4d15e3cc8978875a427ec924988921d69a
19:19 dalek rakudo: ec0a594 | jnthn++ | src/parrot/P6role.pir:
19:19 dalek rakudo: Oops, last patch had an issue.
19:19 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​c0a594a6b8b4274909f39aa5b2eb6102edbb1dd
19:19 dalek rakudo: 68fd939 | jnthn++ | src/parrot/P6role.pir:
19:19 dalek rakudo: Another new that should have been a root_new.
19:19 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​8fd939b81c0294205c13b41b352b685dcd383f7
19:19 dalek rakudo: c70c241 | jnthn++ |  (2 files):
19:19 dalek rakudo: Bump PARROT_REVISION, unfudge crony.t.
19:19 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​70c241b687858715f9397842ce3f5a38be4b088
19:20 donaldh joined #parrot
19:23 Austin Virtual theft?
19:23 Austin Keep renewing until the heat death of the universe...
19:24 pmichaud our library limits to one renewal
19:24 pmichaud but, having paid around $80 so far in 2009 in overdue fines (that would've been avoided by this), it's a bargain
19:25 Austin Laugh
19:26 Austin For $80, you could just sign up for Amazon Prime and get the free shipping.
19:26 Austin Plus, you keep the books.
19:26 dalek TT #816 created by Austin_Hastings++: PMC 'Undef' does not support logical_not
19:27 pmichaud well, the bulk of that was from a very large number of childrens books that were checked out and we thought we had renewed but didn't
19:27 Austin The revenge of Dr. Seuss.
19:32 Austin Pmichaud: What's a "handlers" ?
19:33 pmichaud Austin: in PCT?
19:34 Austin Yeah. PAST::Node has a handlers method.
19:35 Austin It looks like it's supposed to be an array of PAST subtrees?
19:35 Coke pmichaud: I'm going to update tcl to require a parrot revision (OR a release) during Configure.pl later this evening. Feel free to steal that code if it helps.
19:35 pmichaud Coke: I already have that in Rakudo.
19:35 pmichaud added it for #18
19:35 Coke ah, very good.
19:36 pmichaud Austin: I think it's a way to put exception handlers around any PAST structure.  Tene++ might remember in more detail, since he wrote it.
19:36 Austin Okay. Thanks.
19:36 mikehh Coke: I try and see if we can get it sorted before opening a ticket ;-}
19:36 Tene That's right.
19:36 Tene Austin: it should accept a list of PAST::Control objects
19:36 pmichaud Coke: I can find the patch diffs if you're interested
19:37 Tene Austin: if you want more detail, please ask.
19:37 Tene also, feel free to contribute a doc patch. :)
19:38 Austin Nope. Just trying to write a test case. But it doesn't seem very "list-y". Takes one value, returns one value.
19:40 pmichaud looks to me like it just accepts any single PAST::Control object
19:41 Austin ok 18 - handlers: Overwrite works.
19:41 Austin On that note, it's time for lunch.
19:41 Tene perl6.past: { ...; CATCH { ... }; CATCH { ... } }
19:41 nopaste "polyglotbot" at 193.200.132.146 pasted "perl6 past" (333 lines) at http://nopaste.snit.ch/17129
19:41 Tene What does that have?
19:41 Tene <handlers> => ResizablePMCArray (size:2) [
19:42 Austin_otl An echelon of ellipses?
19:42 Tene Austin_otl: just wanted to generate a block with two handlers
19:42 Tene it accepts one value.  That value should be an array of handlers.
19:46 dalek partcl: r518 | coke++ | trunk/Configure.pl:
19:46 dalek partcl: make it easier to pull in more parrot config info
19:46 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=518
19:48 pmichaud okay, yes, array of handlers
19:50 avar joined #parrot
19:51 avar Of possible parrot interest: http://techblog.wikimedia.org/2009/06/o​n-templates-and-programming-languages/
20:01 jdv79 joined #parrot
20:10 Coke pmichaud: how did you do the dotted revision comparison - roll your own?
20:10 Zak joined #parrot
20:11 pmichaud Coke:  yes
20:11 pmichaud simple function
20:11 pmichaud sub version_int { sprintf('%d%03d%03d', split(/\./, $_[0]))
20:11 pmichaud }
20:12 pmichaud converts  1.3.0   into 1003000
20:12 Coke probably the easiest way to cheat. danke.
20:18 dalek TT #794 closed by NotFound++: split opcode should respect HLL mappings
20:18 NotFound t/steps/gen_config_h-01 fails also on i386
20:23 dalek rakudo: cf851ca | pmichaud++ | t/spectest.data:
20:23 dalek rakudo: Remove S03-operators/smartmatch.t from spectest.data -- it has several spec errors.
20:23 dalek rakudo: It needs to be re-examined for correctness and refudged for Rakudo.
20:23 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​f851caba20f1f70d9c0f1650aec42f0b0989abc
20:33 mikehh_ joined #parrot
20:41 bacek joined #parrot
20:41 hercynium joined #parrot
20:43 mikehh_ joined #parrot
20:46 maettu joined #parrot
20:53 maettu What I've been wondering about for the last week or so: Parrot is "quite" slow at the moment, in a case I studied even much slower than C. How come you are so confident that you will get a) parrot get out the door b) make it *fast*?
20:54 Coke maettu: That's an excellent question.
20:54 chromatic a) We release every month.  We're pretty darn good at getting Parrot out the door.
20:54 chromatic b) We know what the bottlenecks are and we have a plan to address them.
20:56 mikehh Notfound: the test looks for a sub that was removed in r39899
20:57 maettu (I feel that this is very calming to me. Whenever I will fight some little problems on my little projects, I will think of you and your confidence.)
20:58 chromatic Confidence or bull-headed stubbornness, people have various opinions.
20:59 mikehh Notfound: check smolder - it fails on all architectures since #24564
21:00 eternaleye joined #parrot
21:01 mikehh Notfound: We need to modify the test I think
21:02 maettu chromatic: Whatever. I think there are plenty of worthwile ideas in parrot, so just keep going. (And it's pretty cool to do some parrot-pseudo-assembler with a garbage collector etc. at hand)
21:02 Coke is object's vtable name a safe way to say "I have no version of this vtable but if you want to override it you can? - if so, would adding some syntax to pmc2c so we can just say VTABLE name :overridable ?
21:02 chromatic I don't understand the question, Coke.  Can you not override name?
21:02 Coke er, a safe /example/ - obviously we'd s/name/actual vtable name/ when generating the C.
21:03 Coke chromatic: doesn't work for arbitrary dynpmcs that aren't objects.
21:03 Coke or is the recommend way there to subclass your PMC and then override /that/ vtable?
21:03 chromatic That surprises me.  I expect that it should work.
21:03 chromatic Oh.
21:03 chromatic Right.
21:03 chromatic Because you have to check if it's overridden from PIR and then... blah.
21:04 chromatic Or do you mean C dynpmcs?
21:04 Coke that's the only kind of dynpmc of which I am aware.
21:04 Coke (anything written in PIR is a kind of object.)
21:04 Coke where object isa PMC, but a PMC isn't necessarily an object.
21:05 NotFound mikehh: For some value of "we"? ;)
21:05 chromatic I can't imagine why you can't override it.  To my knowledge, there's nothing special there (unless the pmc2c generator forbids it).
21:05 Coke I'm not trying to override name.
21:06 mikehh NotFound: As in sombody need to approve it :-)
21:06 Coke I'm just pointing to that as an example of "is this how I can override a dynamic-c-pmc's vtable from PIR, and if so, can we make a shortcut so I don't have to cut and paste it.)
21:07 chromatic Oh.  You want to write a dynpmc which contains vtable entries you can override from PIR.
21:07 chromatic Yeah, copy and paste is the current best way.
21:07 mikehh NotFound: just trying to figure exactly what it was testing fort
21:08 chromatic That argues for a function to keep all of that knowledge around instead.
21:08 mikehh s/fort/for/
21:09 Coke mikehh: in general the config/steps test test the current config implementation as written.
21:10 Coke which is to say, they're not necessarily testing the way things ought to work, just they way they worked when the tests were written.
21:10 Coke which may or may not be relevant to the current failure.
21:18 bacek good morning #parrot
21:23 nopaste "pmichaud" at 72.181.176.220 pasted "latest rakudo gc trials (x86 and x86_64, ubuntu)" (20 lines) at http://nopaste.snit.ch/17131
21:24 pmichaud oddly, the long-standing S10-* test that was failing on exit is no longer doing so.
21:25 chromatic pmichaud, is that with the patch I posted a day or so ago?
21:25 pmichaud that's using exactly what's in the repos, no patches
21:25 pmichaud I can try with the patch if you like.
21:26 nopaste "chromatic" at 72.90.115.31 pasted "Add Metadata GC Flag (pmichaud)" (10 lines) at http://nopaste.snit.ch/17132
21:27 jonathan chromatic: Heh, is that the flag not being set at the point we attach properties?!
21:27 chromatic It wasn't there, which seemed wrong.
21:28 jonathan aye
21:30 chromatic There may be other spots which need similar flags.
21:34 maettu left #parrot
21:35 pmichaud quick summary:  the tests that failed in my nopaste 17131 above fail in the same way after the metadata gc flag patch.
21:35 pmichaud (I'm running a spectest to see if any other tests fail)
21:35 chromatic Pity.
21:37 jonathan That doesn't mean the patch is unrequired.
21:37 jonathan Just not sufficient I guess. :-(
21:53 Theory joined #parrot
21:53 japhb joined #parrot
21:54 Austin_otl joined #parrot
21:55 dduncan joined #parrot
21:55 dduncan left #parrot
21:55 bacek chromatic: around?
21:56 * Austin sings "'round, 'round, get around; I get around..."
21:57 chromatic Yes, what can I do for you?
21:59 bacek chromatic: remember our conversation about cstring hash?
21:59 bacek I claimed that it's not protected from dlclose.
21:59 bacek (nopaste coming)
22:00 chromatic Yes.
22:01 nopaste "bacek" at 114.73.131.80 pasted "cstring hash shenanigans." (23 lines) at http://nopaste.snit.ch/17133
22:01 bacek is dlopen/dlclose can change memory layout?
22:02 Theory joined #parrot
22:02 chromatic I expect not.  What are you seeing in this paste?
22:03 Limbic_Region joined #parrot
22:03 bacek That pointer to "parrot" string treated as uninitialized by valgrind.
22:04 chromatic As far as Valgrind knows, our whole stack is uninitialized.
22:05 bacek ouch...
22:05 chromatic Valgrind doesn't know very much about stack scanning GC.  There are some Valgrind headers and defines we could use to decorate such code; that might help get more useful results out of Valgrind here.
22:10 bacek http://valgrind.org/docs/man​ual/mc-manual.html#mc-manual.mempools
22:10 bacek looks good starting point.
22:11 zak_ joined #parrot
22:11 chromatic I don't remember the exact headers.  I ran into confusion trying to decide how to write a configure step for them.
22:13 mikehh seen kid51
22:13 purl kid51 was last seen on #parrot 19 hours, 45 minutes and 31 seconds ago, saying: must sleep
22:14 bacek chromatic: what main purpose of PObj_is_special_PMC?
22:14 bacek (rephrase) When this flag should be set?
22:15 Tene *every* PMC should feel special!
22:15 Tene (sorry)
22:15 bacek Tene: all PMC are special. But some of them more special :)
22:15 Theory joined #parrot
22:16 mikehh bacek: dat is de problem :-}
22:16 chromatic a PMC with metadata, a custom mark, or PMC data in an array (I don't care for the latter)
22:16 dalek rakudo: 99ad1eb | masak++ | src/ (4 files):
22:16 dalek rakudo: added $format default to all .fmt variants
22:16 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​9ad1eba788968e9d758e4a381c691691b96286e
22:16 dalek tracwiki: Austin_Hastings++ | new parrot.png attached to NewParrotDeveloperGuide
22:16 dalek tracwiki: New parrot image
22:16 dalek tracwiki: https://trac.parrot.org/parrot/atta​chment/wiki/NewParrotDeveloperGuide​/new%20parrot.png&amp;action=diff
22:16 dalek tracwiki: v17 | Austin_Hastings++ | NewParrotDeveloperGuide
22:16 dalek tracwiki: https://trac.parrot.org/parrot/wiki/NewParr​otDeveloperGuide?version=17&amp;action=diff
22:17 bacek chromatic: oookey. Should ParrotLibrary has this flag? It explicitly clone metadata in .clone, but doesn't set this flag in .init
22:18 chromatic Yes, probably.
22:18 purl Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look  Because \ an asshole.
22:24 cotto forget probably
22:24 purl cotto: I forgot probably
22:24 cotto probably
22:24 Austin Yes, probably.
22:24 purl Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look  Because \ an asshole.
22:24 Austin purl: forget probably.
22:24 purl Austin, I didn't have anything matching probably
22:24 Austin forget Yes, probably.
22:24 purl Austin, I didn't have anything matching yes, probably
22:25 Austin yes, probably.
22:25 purl Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look  Because \ an asshole.
22:25 bacek purl: no, probably is <reply>
22:25 purl OK, bacek.
22:25 bacek yes, probably.
22:25 purl Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look  Because \ an asshole.
22:25 Austin yes, probably.
22:25 purl Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look  Because \ an asshole.
22:25 bacek stupid girl...
22:26 bacek purl: no, yes, probably. is <reply>
22:26 purl OK, bacek.
22:26 bacek yes, probably.
22:26 purl Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look  Because \ an asshole.
22:26 bacek bah!
22:29 Austin I have a question: Is parrot going to support threading (of PIR threads), and if so, will it be one interp per thread, or one interp with several threads inside?
22:29 dalek close: r51 | Austin++ | trunk/t/library/pct/PAST (4 files):
22:29 dalek close: Added tests for pct/PAST/Node.c=
22:29 dalek close: review: http://code.google.com/p/close/source/detail?r=51
22:29 bacek Austin: interp per thread iiuc
22:31 Theory_ joined #parrot
22:32 Austin Yowza. What things are shared?
22:32 avar left #parrot
22:32 chromatic By default, core data structures.
22:32 chromatic No user data.
22:33 bacek It's Internet era, dude. Everything is shared!
22:33 bacek :)
22:33 Austin bacek: :-)
22:34 Austin chromatic: Core data structures = filehandles and shmem segs and such? Loaded pbc? Or interp innards/gc/mem pools?
22:34 cotto forget yes, probably.
22:34 purl cotto, I didn't have anything matching yes, probably
22:34 cotto forget (yes, probably.)
22:34 purl cotto, I didn't have anything matching (yes, probably.)
22:35 cotto literal yes, probably
22:35 cotto literal yes, probably.
22:35 purl cotto: yes, probably. =is= <reply>
22:35 Theory joined #parrot
22:35 Austin Yes, probably.
22:35 purl Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look  Because \ an asshole.
22:35 cotto literal Yes, probably.
22:35 purl cotto: Yes, probably. =is= <reply>
22:35 Austin Yes, probably.
22:35 purl Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look  Because \ an asshole.
22:35 cotto It must be a special case.
22:35 cotto purl, owner?
22:35 purl owner is, like, hachi, see also #purl
22:36 rg joined #parrot
22:36 bacek No one can outsmart stupid bot! :)
22:36 Austin purl is the first, tentative step in the evolution of homo superior virtualis.
22:42 cotto I pinged hachi about it in #purl.
22:45 Theory_ joined #parrot
22:45 Austin cotto++
22:45 Austin Thanks.
22:45 Austin It's irksome.
22:46 cotto In the meantime, there's always < purl-- >
22:49 kid51 joined #parrot
22:53 mikehh kid51: r39899 changed config/gen/config_h.pm which removed a sub used in t/steps/gen_config_h-01.t which now fails
22:54 * Coke returns to find an insane amount of bot-spam.
22:54 Coke purl does respond in private, you know.
22:54 purl Coke: huh?
22:55 mikehh kid51: I am not sure exactlky what it was testing for - whether we need to modify the test or what?
22:55 mikehh s/exactlky/exactly/
22:56 dalek parrot: r39901 | fperrad++ | trunk/t/steps/gen_config_h-01.t:
22:56 dalek parrot: [config] update tests after r39899
22:56 dalek parrot: review: https://trac.parrot.org/parrot/changeset/39901/
22:56 mikehh ok that seems to sort that out :-}
22:57 kid51 fperrad to the rescue
22:57 kid51 He is very good about keeping the configuration steps in shape.  I saw that he submitted a patch today for a new config step.
22:58 kid51 It was a very thorough patch.
22:58 kid51 I don't have an opinion yet as to whether it should be applied, but it was thorough.
23:01 mikehh well the test now passes
23:01 mikehh after r39901
23:03 mikehh he doesn't seem to hang arouind here much
23:04 dalek tracwiki: v83 | jkeenan++ | WikiStart
23:04 dalek tracwiki: https://trac.parrot.org/parrot/wiki/​WikiStart?version=83&amp;action=diff
23:04 dalek tracwiki: v84 | jkeenan++ | WikiStart
23:04 dalek tracwiki: https://trac.parrot.org/parrot/wiki/​WikiStart?version=84&amp;action=diff
23:08 ruoso joined #parrot
23:20 donaldh joined #parrot
23:20 Coke pmichaud++ for version_int, which I meant to include in the commit msg.
23:21 dalek partcl: r519 | coke++ | trunk/ (2 files):
23:21 dalek partcl: Require a minimum parrot revision or release.
23:21 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=519
23:21 mikehh Ok now All tests PASS (pre/post config, smolder, fulltest) at r39901 - Ubuntu 9.04 amd64
23:46 mikehh I want to set up a parrot etc testbed and want to run the various platforms from a base Ubuntu 9.04 amd64 VM
23:47 mikehh anybody got any experience running a VM on a desktop rather than a server
23:48 pmichaud I do, but only with VMWare
23:48 mikehh I was thinking of using kvm but I don't really know enough about it
23:50 mikehh I was thinking of having Ubuntu i386 and Windows 7 as guests initially
23:50 mikehh and possibly adding maybe openbsd or something like that later
23:52 mikehh I have an AMD Phenom 940 quad core with 8GB and 2x1TB disk drives
23:52 mikehh I am open to suggestions
23:53 Austin Mikehh: The only caveat I have about running vm's is the resources they consume -- they're doing a really GOOD job of emulating PCs, which means timers, etc.
23:54 Austin That said, I ran VMware and Vxbox with no problems from my Dell Latitude. You could probably just set up a cron job to do a "make smoke" every couple of hours, and if they missed one because the box was shut down, no harm done.
23:55 pmichaud agreed -- I always managed to run VMware on my (now 5+ year old) Latitude with few problems
23:55 tetragon joined #parrot
23:55 mikehh My old desktop system was a dual core Pentium D - 2GB without VM capabilities
23:56 pmichaud my current desktop system is a dual core Pentium D
23:56 pmichaud (2GB, in fact)
23:56 mikehh I rebooted between i386 and amd64 Ubuntu - I want to avoid that

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

Parrot | source cross referenced