Camelia, the Perl 6 bug

IRC log for #parrot, 2008-12-16

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 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33940
00:02 GeJ as of r33938: All tests successful in Parrot (14 tests and 620 subtests skipped) on FreeBSD 7
00:02 GeJ testing the languages now.
00:03 tetragon joined #parrot
00:05 GeJ what about lua?
00:06 jonathan Lua is, I believe, pretty complete.
00:07 chromatic yes, it is.
00:07 GeJ ok, so testing lua too.
00:09 AndyA joined #parrot
00:17 wknight8111 GeJ
00:18 wknight8111 GeJ++ (that's what I meant)
00:21 nopaste joined #parrot
00:28 chromatic particle, why is the file still open in r33938?
00:30 GeJ wknight8111: I'm all confused with TZ and all, how long before the release?
00:30 wknight8111 about 24 hours
00:30 wknight8111 what timezone are you in?
00:30 GeJ NCT (yup, I have my own timezone)
00:31 wknight8111 oh nice, sounds expensive
00:31 GeJ New Caledonia. A small island in the vicinity of Australia.
00:31 GeJ timezone-wise, we're between eastern Australia and New Zealand.
00:43 bacek_ joined #parrot
00:46 * peters says g'night
00:49 arthur joined #parrot
00:54 Alias OK, this is annoying
00:54 Alias perl6 works for me
00:54 Alias But it doesnt' work for anyone I give my installer to
00:54 GeJ which test suite should I run for pipp? is 'test-all' ok?
00:54 pmichaud alias: the *.pbc files are missing, afaict
00:55 GeJ so far (100% +1 test for Rakudo and 100% for pheme)
00:55 jonathan Alias: You tried it on a machine that doesn't have a Parrot, or after make realclean (or even just make clean) in the directory you did the build?
00:59 arthur work harder people, pleaaaaase, i want dot notation in perl !
00:59 jonathan Dot notation?
00:59 purl Dot notation is of the devil
00:59 arthur oooh :(
00:59 * jonathan uses the cross operator to defeat it
01:00 cotto Cartesian or holy?
01:01 jonathan We have a holy cross operator in Perl 6?
01:01 pmichaud It's   XoX  I think.
01:01 pmichaud (because it has a "hole" in it)
01:01 jonathan *groan*
01:01 arthur I wanted to help by wrinting tests, but I don't find them :
01:02 arthur arthur@aquarelle:~/Sandbox/parrot$ ls languages/perl6/t/
01:02 arthur 00-parrot  01-sanity  harness  pmc  spectest.data
01:02 jonathan arthur: make spectest
01:02 purl make spectest is failing more than usual too
01:02 pmichaud arthur:  tests are managed in the pugs repository
01:02 wknight8111 XoX is a real operator?
01:02 arthur oh
01:02 jonathan wknight8111: Sure, if you define an infix:o
01:02 pmichaud wknight8111: not yet, at least not until someone defines infix:<o>  :-P
01:02 jonathan arthur: If you do make spectest it will check 'em out.
01:02 arthur hey that works !
01:02 pmichaud or even just "make t/spec"
01:03 arthur thanks !
01:03 * wknight8111 defines an XoX operator that gives hugs and kisses to all the elements of an array
01:03 arthur you should add this to the "how to help" page
01:03 pmichaud we need an article somewhere about "how to write tests"
01:03 arthur did not see that nowhere
01:03 pmichaud which "how to help" page?
01:03 pmichaud (there are so many...)
01:03 arthur pmichaud: I think it was the parrot one
01:03 pmichaud okay.
01:04 pmichaud we need to get some "standard" pages up on rakudo.org or something.
01:04 pmichaud or on the perl6 wiki.
01:04 arthur ( or everywhere )
01:05 GeJ pipp: errors in gmp (probably because I didn't build Parrot against it) otherwise big Woohoo!
01:05 GeJ now, lua and lolcode
01:05 polyglotbot OUTPUT[errors in gmp (probably because I didn't build Parrot against it) otherwise big Woohoo!]
01:05 arthur hey, is it true that with parrot i'll be able to use python moduels in perl6 ?
01:05 jonathan ...lol
01:06 jonathan polyglotbot++
01:06 jonathan arthur: Not quite yet, but that's the goal, yes.
01:06 arthur wow, and compile perl6 scripts to swf ?
01:07 jonathan ...what?!
01:07 arthur :)
01:07 jonathan That's maybe a *longer* term goal. ;-)
01:10 GeJ I HAS A FAIL
01:10 jonathan OMG!
01:11 jonathan IN LOCODE? WTF?
01:11 pmichaud yes, lolcode has a failure.
01:11 GeJ t/01-vars.t
01:11 GeJ BTW MULTIPLE DECLARATIONS WITH ASSIGNMENTS SHOULD CLOBBER
01:11 pmichaud it's re-declaring the same lexical twice.
01:11 jonathan pmichaud: no, lolcode has a FAIL.
01:11 pmichaud okay, jonathan.
01:11 purl somebody said jonathan was mailto:jnthn@jnthn.net or trying to put together a grant application.
01:12 jonathan ooh, pmichaud can be taught things like purl
01:12 jonathan pmichaud: ltm is really easy, you just do it over dinner tonight
01:12 jonathan ;-)
01:13 pmichaud right now I'm trying to decide what to do about Captures in Rakudo.  ;-|
01:13 jonathan Specifically?
01:13 jonathan ...that spelling looks so wrong...
01:14 pmichaud the "passing tests" we have involving captures pass by coincidence, not because Captures are in any sense "working".
01:14 jonathan ...oh damm, i'ts right... :-|
01:14 jonathan Coincidence?
01:14 purl I think not
01:14 pmichaud e.g.,
01:14 jonathan By being the only parameter?
01:14 pmichaud my $capt = \%hash;
01:15 pmichaud isa_ok($capt, 'Hash', ...);   # passes because Capture_PIR was a subclass of Hash
01:15 jonathan Ah.
01:15 pmichaud there are a few other instances.
01:15 jonathan Hmm. Is it even spec that a capture isa Hash?
01:15 pmichaud no.
01:15 pmichaud it's not isa Hash
01:15 jonathan does Associative for sure
01:15 jonathan Right.
01:15 pmichaud I'm not even sure it does Associative
01:16 jonathan Ah, becuase it's readonly?
01:16 pmichaud no, not for that reason.
01:16 pmichaud consider:
01:16 Alias OK, so
01:16 pmichaud my $hashref = \%hash
01:16 pmichaud say $hashref<key>
01:16 Alias I can get perl6 to run on the same host I built it on
01:16 pmichaud is that key on the hash in the capture, or on the capture itself?
01:16 Alias If the perl6/bin is in the PATH
01:17 Alias But not on someone else's host, even if perl6/bin is in the path
01:17 pmichaud Alias: the .pbc files are missing.
01:17 Alias And Perl::Dist always builds in the same diorectory it will install
01:17 Alias hrm
01:17 Alias either missing or not locatable
01:17 pmichaud at least, they were missing from the version I tried earlier.
01:17 Alias Where do they end up
01:17 Alias pmichaud: you tried the alpha-2?
01:17 pmichaud in the build directory, in runtime/parrot/library
01:17 pmichaud Alias: yes.
01:17 Alias That's odd
01:18 jonathan pmichaud: Is there a case where this manifests in a different answer to something?
01:18 jonathan Oh, hang on, yes...
01:18 jonathan Because it's a reference to the hash, so if the hash changes, you'd expect a different answer out of looking into the capture.
01:18 pmichaud my %hash = <a b>;  my $capture = \( %hash, :a(3) );
01:18 pmichaud $capture<a> = ... ?
01:19 jonathan I think the spec says that it's not supposed to lose information, or something along those lines.
01:19 pmichaud keep in mind that "capture" is really "argument list"
01:19 * jonathan tries to remember/find the exact quote that he's thinking of
01:20 arthur pfff, can't write perl6 tests, all the easy ones are already done
01:20 pmichaud in this case \( %hash, :a(3) )    means one positional and one named argument
01:20 pmichaud but I don't think we can use .{ }  on the capture itself to get to the named arguments.
01:20 pmichaud because we need to be able to do .{ }  on its first positional if it's to act like a reference.
01:21 jonathan OH!
01:21 jonathan Yes. Hmm.
01:21 jonathan So we'd expect in this context a hash would not flatten.
01:21 jonathan So %hash would be the first positional arg.
01:21 wknight8111 the new Padre is very nice
01:22 jonathan So $capture<a> would be 3 I'd guess.
01:22 pmichaud oh, that's odd too.
01:22 pmichaud I must be misinterpreting Capture somehow.
01:22 pmichaud because obviously captures _do_ flatten.
01:23 jonathan Well, we know when you do a calls (%hash, :a(3)) then it's a positional arg and a named arg, surely?
01:23 pmichaud yes.
01:23 jonathan So I'd expect the same of captures.
01:23 Alias pmichaud I double checked, and the alpha-2 DOES have the pbc files
01:23 pmichaud alias:  what directory?
01:23 purl directory is an organized listing of data
01:23 Alias C:\perl6\perl6\runtime\parrot\library
01:24 pmichaud I saw the .pir files there, but not the .pbc files
01:24 pmichaud let me fire up my vmware box
01:25 jonathan pmichaud: S02 says that captures do both Associative and Positional.
01:25 jonathan Found that while looking for the thingy I was originally after.
01:25 GeJ Ouch... lots of problems with lua.
01:25 pmichaud jonathan: so.... hrm.
01:25 GeJ I really must have done something wrong
01:26 pmichaud given:   my $capture = \%hash;    is that the same as my $capture = \(%hash) ?
01:26 pmichaud or is it more like   my $capture = \( |%hash ) ?
01:26 pmichaud (or whatever the syntax is to get things into the named slots)
01:27 pmichaud Alias: you're correct, the .pbc files are there.
01:28 pmichaud I must've been looking at something else earlier.
01:28 jonathan pmichaud: Not sure if this helps, but...
01:28 Alias So how does perl6.exe resolve the location of the library
01:28 jonathan S09 has this snkppet:
01:28 jonathan my @array;
01:28 jonathan my $cap = \@array[0][0]; # $cap is a Capture object - see S02
01:28 jonathan my :($obj) := $cap;   # @array[0][0] created here
01:28 jonathan Oh, hmm, that's not relevant as it first looks.
01:29 pmichaud Alias: in this case it's not really perl6.exe that resolves the library -- it's parrot.
01:29 pmichaud (more)
01:29 pmichaud and parrot looks in the build directory for them.
01:29 Alias ok
01:30 Alias And yet on two matching machines, with the same directory structure, one works and the other doesn't
01:30 Alias The difference being one is the one that built it, and the other is not
01:30 jonathan pmichaud: S03 isn't clear on this to me. But if we expect to do $cap = \@a and then later $cap[0], it would follow it's like \(|@a)
01:31 Alias Could timestamps be screwing anything up?
01:31 jonathan If it were the second, getting at @a[0] through the capture would be $cap[0][0]
01:31 pmichaud jonathan: except (I think) that the first positional is also the thing used when in item context
01:31 pmichaud i.e., captures have a notion of an "invocant"
01:32 pmichaud they aren't truly "array + hash" in the same way that Match objects are, I don't think.
01:33 jonathan pmichaud: \($inv: $pos1, $pos, :named(1), :named(2))
01:33 jonathan I think \$foo would fill the $inv slot, and you'd write $$cap to get at that (not sure there's another way)
01:33 pmichaud except that doesn't fit the notion of it being a "reference"
01:34 jonathan How so?
01:34 pmichaud i.e., if I do  my $a = \%foo;  then I would expect $a.keys() to dtrt
01:34 pmichaud which I guess it does if it puts all of the elements into the named slot
01:34 pmichaud but it doesn't do that correctly if I later have  %foo<new> = 5;
01:34 pmichaud because $a wouldn't see the new key
01:35 jonathan By fill I'm meaning binding rather than assignment.
01:35 pmichaud so, you're saying that \%foo puts %foo into the invocant slot?
01:36 jonathan No, I'm saying the hash slot references %foo
01:36 pmichaud ah.
01:36 * pmichaud things.
01:36 pmichaud *thinks.
01:36 pmichaud and \@foo would reference @foo in the array slot.
01:36 jonathan That's how I thought it worked, yes.
01:37 pmichaud how is prefix:<\> to know this?
01:37 pmichaud it's not syntactically determined, is it?
01:37 Alias hrm, weird
01:37 Alias my path must be screwed
01:37 jonathan I don't thing so.
01:37 jonathan S03 implies that \ is the operator
01:37 * Alias runs perl6.exe under procmon
01:38 pmichaud note that there is prefix:<\>   and circumfix:<\( )>
01:38 jonathan Yes.
01:38 pmichaud so, prefix:<\> on a Hash creates a capture with that Hash in the hash slot
01:38 jonathan S03 doesn't make that clear.
01:38 jonathan But STD.pm does.
01:38 jonathan I think that would give the expected semantics, yes.
01:39 pmichaud prefix:<\> on an Array creates a capture with the Array in the array slot.
01:39 pmichaud prefix:<\> on anything else puts it in the item slot.
01:39 jonathan That would seem to make sense.
01:39 jonathan $cap[0] and $cap<x> then work out
01:39 jonathan I guess if you do something like
01:39 jonathan \(:named(1), |%hash)
01:40 jonathan Then you no longer are referencing %hash any more because you flattened it out.
01:40 pmichaud right
01:40 jonathan And if you do \($pos1, %hash) etc then %hash is referenced, as the second positional.
01:40 pmichaud although you may still be referencing the things that %hash contains, just not %hash itself.
01:40 jonathan Yes.
01:41 Alias pmichaud: Can you download and run perl6.exe under procmon?
01:41 pmichaud some of this doesn't seem to completely fit with other statements I've seen TimToady make... but I've been missing some pieces so perhaps it makes sense.
01:41 pmichaud I'll rethink it a bit, though.
01:41 pmichaud in the meantime I'm wondering if I can cheat and just have \@array and \%hash return ObjectRef :-)
01:41 Alias procmon is a little tool made by a tiny tools company microsoft bought some time back in history, it's basically kernel/library tracing for Win32
01:41 pmichaud I guess we've convinced ourselves that it can :-)
01:42 pmichaud Alias: you'd have to walk me through it a bit -- I don't do much in the windows world anymore.
01:42 Alias http://technet.microsoft.com/en​-us/sysinternals/bb896645.aspx
01:42 Alias Download that, chuck the exe on your desktop or something
01:43 Alias Then start it up, and under the Filter -> Filter... dialog, add a "Process Name" filter for "perl6"
01:43 Alias Then run the perl6.exe -v from the command line, and see what ends up in the procmon trace
01:43 jonathan pmichaud: Why can't you just have the operator create a capture and stick the thingy in the right slot?
01:44 Alias Should give us an idea of if it's actually looking and not finding something, or if it's finding it, but freaking out about timestamps or something
01:44 jonathan Because Capture PMC doesn't have slots for three PMCs?
01:44 jonathan But does something more optimal under the hood?
01:44 pmichaud because Capture PMC doesn't expose the slots to the user
01:44 jonathan Ah.
01:44 jonathan So it lacks an interface to screw with it the way we want to. :-)
01:44 pmichaud it probably can be made to do so, but doesn't yet.
01:45 pmichaud right.
01:45 jonathan It's one of those interfaces, that is easy to implement, but that I can't quite think how should look.
01:45 pmichaud jonathan: I'll just make it return an ObjectRef for now.
01:45 jonathan OK
01:45 pmichaud we can worry about Capture later.
01:45 jonathan wfm
01:46 pmichaud thanks for the tips.
01:46 jonathan There's meant to be a separate signatures and captures synopsis at some point, IIRC.
01:46 pmichaud yes, S07
01:46 pmichaud oh, S08
01:46 pmichaud (S07 is laziness and iterators)
01:46 jonathan *nod*
01:47 jonathan S14 - didn't hear back from TimToady on it yet.
01:47 jonathan But he's travelling a lot ATM, so not so surprising.
01:49 pmichaud Alias: okay, what am I looking for?
01:49 Alias So you have a procmon trace?
01:49 pmichaud yes, with lots of events in it
01:50 Alias What should happen, is there's about 10 or so events from loading the exe itself, then you should it almost immediately spend about 50 events traversing down into the runtime library
01:50 Alias (Assuming you filtered down to perl6)
01:50 Alias I make it about 500 events for a total perl6.exe -v
01:51 Alias Let me try a screenshot
01:51 pmichaud if you happen to have crossloop available, I have it on my instance and I could give you access to my desktop.
01:51 Alias crossloop... erm, googling
01:51 pmichaud it's a fancy interface for remote desktop sharing
01:51 pmichaud built on tinyvnc
01:52 Alias ah
01:52 Alias installing
01:52 purl it has been said that installing is one thing, using it is another. or in the 'famous last words' category
01:53 Alias Installed
01:53 purl i think Installed is easy as well.
01:53 pmichaud sent you my access code via privmsg
01:57 Tene Okay, I have break and continue working in blocks with when() statements.
01:57 pmichaud nice.
01:57 Tene There's one awkward hack...
01:57 pmichaud send as patch for now then so I can look at the hack
01:58 Tene using when in a block installs a handler for CONTROL_BREAK exceptions, according to spec...
01:58 Tene so right now I'm installing that handler in the when_statmenet method in actions.pm, only if there are no existing handlers already.
01:58 Tene That check isn't the right check.
01:59 Tene It won't break anything, though, afaict.  Checking spectest_regression right now.
01:59 nopaste "tene" at 97.117.74.5 pasted "when/control/break patch for pmichaud++" (181 lines) at http://nopaste.snit.ch/14966
02:00 Tene brb
02:00 apeiron joined #parrot
02:00 pmichaud all:  I have to disappear suddenly for a while -- things just got crazy at home.  bb soon (I hope)
02:01 * Tene nods
02:03 Tene This also lets when blocks return the right thing.
02:03 Tene Which is pretty cool.
02:05 pmichaud back for a bit
02:06 pmichaud the handler doesn't go on the innermost block, though.
02:06 pmichaud (still this is a good first approximation)
02:08 Tene It does according to S04
02:08 pmichaud it goes on the innermost block that sets $_
02:08 Tene Ah.
02:08 Tene I see it now.
02:08 Tene Yeah, reading comprehension fail.
02:08 dalek r33941 | tene++ | trunk:
02:08 dalek : [pct]: Add more control types.
02:08 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33941
02:08 dalek r33942 | tene++ | trunk:
02:08 dalek : [rakudo]: Basic support for continue and break in given/when.
02:08 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33942
02:09 pmichaud I'd be concerned about CONTROL_BREAK and CONTROL_CONTINUE as names.
02:09 pmichaud because what they're doing isn't at all what most languages think of as "break" and "continue"
02:09 * Coke catches up with review for a bit.
02:09 jimmy joined #parrot
02:11 pmichaud (okay, 'break' is somewhat close to the c-style 'break')
02:13 jonathan Tene++ # given/when now useful!
02:14 pmichaud the CONTINUE exception just forces a return?
02:14 pmichaud okay, wfm
02:14 Tene pmichaud: returns from the WHEN block, yes.
02:15 pmichaud right.
02:15 jonathan pmichaud: How fixed did you make the WHENCE stuff in the assoc branch?
02:15 pmichaud jonathan: I left it as a hash
02:15 jonathan OK.
02:15 Tene jonathan: are you wanting to use it for anything?  I could use an example for blog.
02:15 pmichaud jonathan: but got it all working, so merged branch back to trunk.
02:16 pmichaud Tene: I'd like to see the handler generation factored.
02:16 jonathan Debating if to do Rakudo day tomorrow, or if to keep my mitts off it on release day and do it on Wednesday.
02:17 jonathan If I do Rakudo day on Wed, I'll spend some time on Hague Grant work tomorrow, but that's in the branch...
02:17 Tene pmichaud: agreed.  I'll try to do that tonight.
02:17 pmichaud it's okay to do it as a sub for now.
02:17 pmichaud that'll also make it easier for when we fix it to attach the handler to the correct block
02:18 pmichaud we need some way to easily determine which block is setting $_ as a param.
02:18 pmichaud maybe we can get that from the signature information, when that's done.
02:19 Tene We could possibly have a $?TOPIC_BLOCK
02:19 pmichaud I guess @?TOPIC_BLOCK, since we'd need to restore scope as well.
02:19 Tene restore scope?
02:19 pmichaud yes, when we exit $?TOPIC_BLOCK we'd need to restore the old one.
02:19 pmichaud because they can nest.
02:20 pmichaud for @foo {   given { ... }    when * { ... } }
02:20 Tene Right.  If we just look it up by crawling @?BLOCK and examining signatures, though, we wouldn't need to restore anything.
02:20 pmichaud (note that the when attaches to the 'for', not the 'given'
02:20 Tene Oh
02:20 Tene Reading comprehension fail again.
02:20 Tene Yeah, I understand now.
02:21 Tene and yes, you're right.
02:21 pmichaud yes, crawling @?BLOCK means we don't need to restore anything.
02:22 pmichaud we could set something in each block's symbol table, though.
02:22 pmichaud that might work.
02:22 pmichaud that would actually be fairly easy.
02:22 pmichaud $?BLOCK.symbol('$_', :parameter(1) )
02:23 * Tene driving &
02:23 pmichaud anyway, if you can get the refactor, we can certainly handle the parameter stuff.
02:23 pmichaud This is fantastic work.
02:23 * pmichaud twitters more news.
02:26 * jonathan needs to sleep...
02:26 pmichaud jonathan: just returning an ObjectRef seems to work for now.  :-)
02:26 jonathan pmichaud: Oh, great!
02:27 pmichaud it at least gets me through my immediate hurdle (inadvertent punning on Hash)
02:27 jonathan Deferring fixes that need spec clarifications works for me. :-)
02:27 jonathan You hacking on parameter stuff?
02:27 jonathan Or preparatory clean-ups etc?
02:28 * Tene commits refactor and then really goes home.
02:29 Alias pmichaud: I have a meeting, I'll log in later
02:29 dalek r33943 | tene++ | trunk:
02:29 dalek : [rakudo]: Refactor some copypasta out of my last commit.
02:29 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33943
02:29 * Coke prepares to svn-bisect again. :|
02:29 Tene pmichaud: they also return the last item in the when block, too
02:30 dalek r33944 | cotto++ | trunk:
02:30 dalek : [packfile] make directory_unpack a little more paranoid
02:30 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33944
02:34 jonathan pmichaud: Sleeping, if you've any preferences for what I do tomorrow (hacking in the branch, or some pre-launch fixes) leave a note and I'll backlog in the morning. Night.
02:38 pmichaud Alias: no problem.
02:38 pmichaud jonathan: I don't have preferences.
02:41 pmichaud Tene: the "last item in block" can't be part of when_handler_helper?
02:42 pmichaud (just pass $block as a param)
02:45 tewk pmichaud: does a PGE grammar exits for perl5 style regexes?
02:45 apeiron joined #parrot
02:45 tewk That seems like a component a lot of languages could reuse.
02:46 tewk pmichaud: are all the subid deprecations in for tomorrow?
02:46 pmichaud tewk: sure:  PGE::P5Regex
02:46 tewk Cool
02:46 tewk I thought there was one.
02:46 pmichaud tewk: afaik all of the subid deprecations are in.  I'll double check.
02:47 tewk have you had a chance to fix subid usage in PCT?
02:48 pmichaud tewk: yes.  It works great.
03:00 * Coke wishes google reader would aggregate blog posts that were cross posted.
03:00 pmichaud yes, me too.
03:01 Coke rakudo/perl6 is the worst offender.
03:01 Coke (in my set of subscriptions)
03:01 pmichaud yes, agreed there also.
03:01 pmichaud I don't have a suggestion for how to fix that.
03:01 jimmy coke: i got a doubt
03:02 Coke Shoot.
03:02 Coke (go ahead and ask)
03:03 jimmy there were double line in file PBC_COMPAT begin with 3.18
03:03 chromatic That's a typo, and probably mine.
03:04 Coke removing it will break PBC_COMPAT, won't it? =-)
03:04 jimmy i think i should ask bernhard, but he was not online for a long time.
03:04 Coke nah, it can be removed.
03:04 Coke though I think all of those entries will be wiped pre-1.0
03:07 jimmy maybe another is setfd
03:07 jimmy just a thought.
03:07 purl just a thought. is _smtp_code_220 really an object method ?
03:08 Coke pmichaud: http://groups.google.com/group/google-reader-​feedback/browse_thread/thread/b81817f72ad0ef5​f/146fe806f1a73df4?lnk=gst&amp;q=feature+requ​est+%3A+remove+duplicates#146fe806f1a73df4
03:08 Coke shorten that
03:08 purl That URL is at http://xrl.us/o3kew [groups.google.com]
03:40 Alias left #parrot
03:59 Khisanth joined #parrot
04:02 elmex_ joined #parrot
04:09 dalek r33945 | tene++ | trunk:
04:09 dalek : [rakudo]: Remove more copypasta.
04:09 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33945
04:09 Tene pmichaud++
04:09 Khisanth joined #parrot
04:13 contingencyplan joined #parrot
04:17 TiMBuS joined #parrot
04:17 pmichaud btw, it's okay to use the PAST::Block's .symbol hash as a place to store information
04:18 pmichaud just make sure the symbols don't conflict with actual vars :-)
04:18 Tene I don't feel up to doing that refactor tonight.
04:19 pmichaud no problem
04:21 ChrisDavaz joined #parrot
04:21 TiMBuS http://www.parrotcode.org/docs/ has anyone else noticed all the docs no longer seem to exist?
04:22 Coke that page is outdated; wouldn't hurt to open a trac ticket to remind us to create a non-outdated version at parrot.org
04:23 vaidyagi joined #parrot
04:24 TiMBuS ah
04:26 Coke There was a plan to move the docs over; I don't know how detailed it was.
04:31 TiMBuS good idea, the new site looks a lot cleaner.
04:31 TiMBuS but at the moment i cant read any of the docs online so i have to read the pod/pmc files, which isn't so fun =/
04:32 chromatic perldoc src/pmc/sub.pmc or something
04:33 cotto make html
04:37 TiMBuS make html works great
04:37 Andy joined #parrot
04:38 TiMBuS i probably should have looked in the makefile for something like that ;/
04:41 dalek r33946 | pmichaud++ | trunk:
04:41 dalek : [rakudo]:  Minor update to Capture -- it's still wrong, though.
04:42 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33946
04:50 tetragon joined #parrot
04:52 Tene perl6.paste: _dumper('a' ~~ /a/)
04:52 nopaste "polyglotbot" at 193.200.132.146 pasted "perl6 paste" (1 line) at http://nopaste.snit.ch/14969
05:06 Andy I'm compiling Parrot.
05:06 Andy It's like a pair of old shoes.
05:07 chromatic Rocket shoes.
05:07 Andy It's comfortable.
05:09 chromatic Yeah, I'm -><- close to giving up on Perl 5 for good and concentrating on Parrot.
05:10 dalek r33947 | pmichaud++ | trunk:
05:10 dalek : [rakudo]:  Fix hash interpolation into lists.
05:10 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33947
05:11 Andy I'm looking for compiler warnings.
05:11 Andy 'cause that's how I roll.
05:12 chromatic There's an extra warnings flag in GCC 4.x that we don't enable by default.
05:12 chromatic I forgot what it was, but it's something like -fconversion.
05:19 Coke chromatic++ Andy++
05:20 Coke karma whore?
05:20 purl cash up front, please
05:20 Andy I see only about 5 warnings.
05:21 Coke Andy: it would be spiffy if you could fix http://rt.perl.org/rt3/Tic​ket/Display.html?id=50908
05:21 Andy prob'ly not
05:22 Andy I'm not done with the book
05:22 Andy but if I don't do something useful, I'm goin' into the corn.
05:22 tewk looking at PCT I wonder if we should have get_global_vivify_as opcodes.
05:23 ffwonko joined #parrot
05:23 Coke goin' into the corn?
05:23 Andy looking at ticket
05:23 Andy sorry, "goin' into the corn" is....
05:23 Andy I can't even explain it.
05:24 Andy So the key is that you want to make it fatal, not a warning?
05:24 Coke yes. and we seem to be adding in the appropriate gcc voodoo. But it's still only a warning.
05:25 Coke if we could fix that, we'd get particle to stop complaining whenever someone breaks MSVC. =-)
05:25 Andy ok
05:25 Andy ah, good
05:28 ffwonko joined #parrot
05:30 Coke msg particle here's some failing windows tests for you: http://smolder.plusthree.com/app/​public_projects/smoke_report/8555
05:30 purl Message for particle stored.
05:30 Coke msg particle (negative zero errors in complex.t)
05:30 purl Message for particle stored.
05:31 dalek r33948 | pmichaud++ | trunk:
05:31 dalek : [rakudo]:  Fix list assignment when rhs is short of elements (RT #61336)
05:31 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33948
05:31 Andy oooh, look, I forgot --cage
05:31 Andy NOW there's lots of warnings
05:42 dalek r33949 | coke++ | trunk:
05:42 dalek : Since we're so close to the release anyway, add a notice for 'make smoke'.
05:42 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33949
05:42 Coke pmichaud: I will not complain if you reject RT #36452.
05:43 jimmy coke: that is from me. but I don't know how to compile with gdbm.
05:43 jimmy and other dev package.
05:43 Coke jimmy: What?
05:43 jimmy molder_test
05:44 Coke ... what?
05:44 purl Yada yada yada hasn't been implemented yet! (unless you run bleadperl)
05:44 Coke I get you mean "make smolder_test".
05:44 Coke But what are you referring to?
05:44 jimmy http://smolder.plusthree.com/app/p​ublic_projects/report_details/8555
05:44 Coke ok.
05:45 jimmy I think I should  take more test tonight.
05:45 pmichaud 36452 rejected.
05:47 Tene looking for something else to work on...
05:47 Coke tene; you could peek at my new segfault. =-)
05:48 Tene new segfault?
05:48 * jimmy is looking for something else to work on too....
05:48 * Andy is trying to build GCC 4.4
05:49 Coke TT #48
05:54 Coke our gcc detection is too generous; it thinks g++ is gcc.
05:54 Coke (which then barfs on:
05:54 Coke cc1plus: warning: command line option "-Wdeclaration-after-statement" is valid for C/ObjC but not for C++
05:54 Coke )
05:56 Andy wait wait
05:56 Andy gcc and g++
05:56 Andy under Solaris
05:56 Andy you have to specifically specify
06:01 Coke this is on darwin/intel
06:01 Coke I configured with CC=g++
06:01 Coke --cc=g++, that is.
06:01 * Coke is, unmercifully, still awake.
06:03 Andy man, I am so not hep to all this configgy hoohah.
06:03 Coke no one is.
06:03 Andy Why do we do anything with CPP?
06:03 Coke Iunno.
06:05 Debolaz_ joined #parrot
06:06 dalek r33950 | coke++ | trunk:
06:06 dalek : update file against recent PIR syntax updates. (Get RT #48034 to fail the way it's reported in the ticket.)
06:06 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33950
06:09 Andy is the problem that we're expecting errors to stop ?
06:11 Alias joined #parrot
06:11 Alias OK, I know why my Perl 6 installer is failing
06:11 Alias It's because you guys have hard-coded the build directory into the library search
06:11 pmichaud right.
06:11 Alias It only finds the pbc files if it's running in the exact same path it was compiled in
06:12 pmichaud that's what we've been saying-- it looks for the files in the build directory.
06:12 Alias So make install is pointless...
06:12 pmichaud right.
06:12 Alias And --prefix is pointless...
06:12 Alias And so is reallyinstall
06:12 pmichaud as far as pbc2exe is concerned, yes.
06:12 Alias So can you pull those out
06:12 pmichaud make install is fine, just not for pbc2exe.
06:12 Alias hrm
06:13 dalek r33951 | coke++ | trunk:
06:13 Alias This is somewhat crippling long-term
06:13 dalek : Be more specific about how to run this file.
06:13 dalek : Not that it helps.
06:13 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33951
06:13 Alias I think MAYBE I can find a way to temporarily get around it
06:13 pmichaud we expect to fix Parrot's make install by the Jan release
06:13 Alias ok
06:13 pmichaud this is one of the reasons I've been harping about getting 'make install' fixed soon.
06:14 pmichaud because Parrot 1.0 is kinda pointless if 'make install' doesn't work.
06:16 pmichaud we might be able to get pbc2exe to work based on --prefix instead of (in addition to?) the build dir
06:17 Alias instead of
06:17 Alias And that would be great
06:17 Alias I have enough headaches from build leftovers in Strawberry
06:17 pmichaud I wasn't the one who implemented pbc2exe -- that'd be particle and/or chromatic
06:18 pmichaud when it comes to parrot config... I get a little lost.
06:18 Alias For reasons I don't understand, ppm files want to install in D:\Documents and Settings\adam.kennedy\My Documents\dev\build\perldist\perl\ppm
06:18 Alias I've had several bug reports
06:18 Alias So yes, instead of :)
06:19 pmichaud oh, there's a --install option to pbc_to_exe
06:19 Alias Some of this looks partly implemented
06:19 pmichaud yeah.
06:19 Alias There are strings in some places refering to the --prefix
06:19 pmichaud but I don't know if it ever worked.
06:20 pmichaud the install footprint for parrot has never really worked in the 4 years I've been working on it.
06:20 Alias That MUST work before you try to call yourself 1.0
06:20 pmichaud yes, we know.
06:20 purl Well, okay, I just thought it would help.
06:20 Alias ok
06:21 pmichaud it's one of the items that is a definite blocker to 1.0 -- i.e., we don't release 1.0 unless/until that's fixed.
06:21 Andy Coke: It feels like a compiler bug.  We're calling -Werror=... correctly.
06:21 Alias Would be nice if you had enough to support both relocation and portability
06:21 Alias My current Portable 5 stuff is a nasty hack
06:21 pmichaud but in reality it's a blocker for several other things, which is why it's critical path means it needs to be fixed in jan if we're to get everything else done in feb/mar
06:22 Alias In the mean time, I'll try to dodgyhack Perl::Dist to build parrot in the --prefix path
06:22 pmichaud sounds good.
06:23 Alias I'll post an alpha 3 when it works
06:23 pmichaud out of curiosity, did you try the "make installable" target in Parrot?
06:24 pmichaud I don't know what that does, but I'm guessing it builds a Parrot that's designed to be run from --prefix.
06:32 Andy I forgot how slow pmc2c.pl and c2str.pl are
06:41 Theory joined #parrot
07:06 chromatic Alias, you can set the PARROT_RUNTIME environment variable.
07:08 Hadi joined #parrot
07:09 Hadi left #parrot
07:14 iblechbot joined #parrot
07:23 yjh joined #parrot
07:24 davidfetter joined #parrot
08:02 alvar joined #parrot
08:05 Theory joined #parrot
08:15 Tene http://blogs.gurulabs.com/stephe​n/2008/12/perl-6-gatherwhen.html
08:16 moritz Tene: is there a reason why you called it gather/when and then wrote about given/when? ;-)
08:16 Tene ...
08:16 Tene Thanks.
08:17 moritz Tene: anyway, good work!
08:17 Tene http://blogs.gurulabs.com/stephe​n/2008/12/perl-6-givenwhen.html
08:17 Tene Let's home the name change doesn't screw up the planet aggregator.
08:18 Tene hope
08:19 moritz Tene: so far it has been rather robust
08:20 moritz (if we talk about the same one ;-)
08:22 ffwonko joined #parrot
08:23 dalek Gaurav Vaidya | BuildBot:
08:23 dalek link: http://www.perlfoundation.or​g/parrot/index.cgi?buildbot
08:25 dalek Gaurav Vaidya | BuildBot:
08:25 dalek link: http://www.perlfoundation.or​g/parrot/index.cgi?buildbot
08:29 dalek Gaurav Vaidya | Parrot:
08:29 dalek link: http://www.perlfoundation.o​rg/parrot/index.cgi?parrot
08:31 contingencyplan joined #parrot
08:43 Alias hrm
08:43 Alias Sure seems to be a lot of make targets :)
08:44 Alias chromatic: So I'd need to add PARROT_RUNETIME to the installer?
08:44 Alias er
08:44 Alias I don't know what PARROT_RUNETIME would do... make it somewhat more magical I imagine though :)
09:26 bacek joined #parrot
09:57 moritz seen masak
09:57 purl masak was last seen on #parrot 1 days, 12 hours, 50 minutes and 35 seconds ago, saying: GeJ: top of the evening to you, sir.  [Dec 14 21:07:02 2008]
09:59 tomyan joined #parrot
09:59 ffwonko joined #parrot
10:09 riffraff joined #parrot
10:10 riffraff hi everyone
10:10 purl Howdy, riffraff, you fantastic person you.
10:10 moritz good morning
10:10 riffraff writing a PGE grammar, is there a way to set a global ignorecase flag?
10:11 riffraff I mean, I could probably change the input source when read but it seems hackish
10:11 moritz in Perl 6 there is no such options, but I don't know about PGE
10:11 riffraff (I wouldn0t know how to do it anyway aither :)
10:11 moritz (though PGE is modeled strongly after Perl 6 regexes)
10:13 jimmy riffraff:     [:i 'TRUE' ]
10:13 jimmy is it ?
10:13 purl it's it!
10:13 moritz jimmy: that's not global
10:15 jimmy maybe should set it at TOP
10:16 riffraff thanks I'm trying
10:16 moritz jimmy: :i should be lexically scoped
10:17 gmansi joined #parrot
10:17 riffraff yeah that's how it is specced at least
10:20 riffraff and as designed, it is lexical
10:22 jimmy yes, i tested it just.
10:25 Theory joined #parrot
10:30 jimmy i got the answer
10:30 jimmy token TOP { [:ig ^ <sea_or_code>+ {*} ]}
10:30 jimmy using :ig
10:30 jimmy and that global
10:32 jimmy riffraff: ping
10:35 riffraff pong
10:35 riffraff but I don't understand it :)
10:36 riffraff ah the :g is for :global ?
10:36 jimmy yes
10:36 riffraff strange, but useful
10:37 jimmy here is the answer. http://dev.perl.org/perl6/doc/design/syn/S05.html
10:37 riffraff works like a charm
10:37 moritz it doesn't listed :ig last I looked, and :g meant something differnt
10:37 jimmy :g        :global
10:38 moritz (match globally, ie as often as possible)
10:38 moritz just like s/...//g in perl 5
10:38 jimmy moritz, it listed
10:38 jimmy it :g
10:38 riffraff the apocalypse names :g but just en passant
10:39 moritz jimmy: yes. And :g means "match globally", not "change the scope of another modifier"
10:39 jimmy :g or :global
10:39 moritz riffraff: the apocalpse is out of date. You should really rely on the synopsis
10:39 jimmy but it changes
10:39 riffraff right, thanks
10:40 jimmy moritz: i tested it ,and it changes the scope of another modifier
10:40 riffraff anyway I've got my shakespeare parser working I'm so proud of myself :)
10:40 moritz jimmy: yes, I've got that, but I don't thing it's specced
10:40 Hadi joined #parrot
10:40 Hadi left #parrot
10:42 jimmy moritz: maybe, but it is not described any more about the meaning. maybe it is outedated.
10:43 jimmy s/outedate/outdated/
10:44 jimmy syn?
10:44 purl Go, and SYN no more
10:44 jimmy Synopsis ?
10:44 purl Synopsis is http://git.jrock.us/?p=Bot-Synopsis.git;a=summary
10:47 riffraff I have the feeling it works just one level down, possibly it is an unintended behaviour
10:49 moritz rakudo: grammar A { token a { :ig <b> }; token b { <c> }; token c { 'c'}; }; say "C" ~~ m/<A::a>/ ?? "yes" !! "no";
10:50 polyglotbot OUTPUT[perl6regex parse error: Quantifier follows nothing in regex at offset 23, found 'i'␤current instr.: 'parrot;PGE;Perl6Regex;parse_error' pc 9840 (compilers/pge/PGE/Perl6Regex.pir:1161)␤called from Sub 'parrot;PGE;Perl6Regex;parse_quant_error' pc 8219
10:50 polyglotbot ..(compilers/pge/PGE/Perl6Regex.pir:612)␤called from Sub 'parrot;PGE;Exp;Quant;perl6exp' pc ...
11:04 ruoso joined #parrot
11:10 Hadi joined #parrot
11:10 Hadi left #parrot
11:18 cognominal pmichaud,  on my mac, I have a  directory called  ~/Library/Logs/CrashReporter. Before filing reports, I want to know, is there a case where parrot test intentionnaly crash a process.
11:36 Hadi1 joined #parrot
11:36 Hadi1 left #parrot
12:00 Ademan joined #parrot
12:06 uniejo joined #parrot
12:17 iblechbot joined #parrot
12:38 ffwonko joined #parrot
12:47 Lorn joined #parrot
12:56 pmichaud good morning
12:56 pmichaud cognominal: I'm not aware of any parrot tests that intentionally crash, but that doesn't mean there aren't any.
12:59 yjhz joined #parrot
13:12 Wknight8111 joined #parrot
13:20 kj joined #parrot
13:37 contingencyplan joined #parrot
13:41 cognominal joined #parrot
13:42 tetragon joined #parrot
13:47 mberends joined #parrot
13:48 gryphon joined #parrot
14:07 AndyA joined #parrot
14:09 Infinoid ok, so apparently parrot segfaults on ubuntu x86-64
14:09 Infinoid unfortunately I can't mark http://rt.perl.org/rt3/Tic​ket/Display.html?id=61092 and https://trac.parrot.org/parrot/ticket/26 as duplicates
14:09 Infinoid and even more unfortunately, I can't reproduce it on gentoo x86-64
14:11 dalek r33952 | pmichaud++ | trunk:
14:11 dalek : [rakudo]: spectest-progress.csv update: 249 files, 5139 passing, 0 failing
14:11 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33952
14:12 dalek r33953 | kjs++ | trunk:
14:12 dalek : [pirc] fix some documentation. #define a magic number '4' (number of parrot types)
14:12 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33953
14:15 Theory joined #parrot
14:17 Zaba joined #parrot
14:21 * Infinoid tries setting up an ubuntu chroot with debootstrap for testing.
14:21 moritz $perl6_tickets -= 4;
14:22 Alias moritz++
14:22 Alias moritz++
14:22 Alias moritz++
14:22 Alias moritz++
14:22 pmichaud moritz++
14:22 Alias (Alas, purl does not support +=)
14:23 jonathan pmichaud: Woke up earlier today feeling quite bad with whatever unfun virus I seem to have, and couldn't see myself focusing for 8 hours on stuff today. :-( So certainly giving Rakudo day a miss.
14:23 moritz actually Tene++ fixed most of the problems reported in those tickets :-)
14:23 jonathan Will do tomorrow, hopefully.
14:23 pmichaud jonathan: no problem.  Today is a good day for missing.  :-)
14:23 pmichaud I got tagged to do some stuff for rdice, so that'll occupy me much of the day.
14:24 pmichaud after that I'm working on declarations, signatures, and parameters
14:24 pmichaud there's a lot to refactor there, so it'll go in a branch.
14:26 jonathan OK
14:26 jonathan If I do anything today, it'll be in my branch.
14:27 pmichaud fwiw, a nice win would be to write a 'sort' in PIR, since the built-in sort for FPA doesn't work with multisubs.
14:27 pmichaud we could fix about 4 tickets with that, I think.
14:28 pmichaud even better if it's a stable sort
14:28 moritz then it'd fix another ticket :-)
14:29 pmichaud oh, wait, I just figured out an ugly hack.
14:29 moritz pass a sorting sub that does the MMD lookup?
14:29 pmichaud yes.
14:29 * pmichaud implements that.
14:29 pmichaud -Ofun at work.
14:33 ffwonko joined #parrot
14:38 jimmy joined #parrot
14:40 jimmy now smolder_test failed 62 on MSWIN32
14:53 DietCoke joined #parrot
15:09 Alias It's such a joyous feeling when you finally get a whole new layer of repository automation working
15:09 Alias You can practically taste the force multiplier kicking in :)
15:10 Alias (Also joyous because when you code for yourself, there's none of the pain of writing all that POD)
15:12 Andy joined #parrot
15:20 Alias sigh, and then you find it doesn't do QUITE what you need yet, because there's one more teensy feature missing
15:20 Alias But that can wait until tomorrow
15:22 Coke secret?
15:22 purl i guess secret is in the url :)
15:22 Coke Infinoid: I wonder if svn::bisect::automated is a better name for what I want to do.
15:23 Coke (and also if I can just steal all your code. =-)
15:23 Coke You know what would be nice? a tool that updated PLATFORMS.
15:25 lathos Yeah, that's hideously outdated.
15:27 * jonathan realizes he finally is going to have to learn how to sync a branch with trunk...
15:28 PerlJam jonathan: with svn 1.5 is super easy.
15:28 Infinoid Coke: you're welcome to steal my code if it helps (it's pretty simple stuff tho)
15:29 jonathan PerlJam: And without that?
15:29 Infinoid odd, $TEST_JOBS doesn't seem to have an effect on this ubuntu thing
15:29 Coke should it?
15:29 PerlJam jonathan: it's not so easy and quite a bit annoying since you have to track the revision numbers you've merged yourself
15:30 Infinoid I thought it should
15:30 jonathan PerlJam: OK, time to download 1.5... :_)
15:30 NotFound joined #parrot
15:30 NotFound Hi
15:30 purl hola, NotFound.
15:31 nopaste "pmichaud" at 72.181.176.220 pasted "can anyone explain this trace...?" (3 lines) at http://nopaste.snit.ch/14973
15:32 jonathan pmichaud: Erm. No. :-|
15:33 jonathan That looks...odd.
15:33 pmichaud it's very odd.
15:33 pmichaud just a sec, more coming.
15:33 moritz memory corruption?
15:33 purl i think memory corruption is system dependant
15:33 PerlJam the sub in P2 was inadvertently garabage collected?
15:33 jonathan That'd not affect the NS having a pointer to it, though.
15:34 Wknight8111 I'm getting a test failure, WinVista, IA-64, t/op/trans.t:tanh in the JIT core
15:34 Wknight8111 is there anybody else here who could even duplicate that?
15:35 * Infinoid fails with ENOVISTA, ENOIA64, ENOJITSK1LLZ
15:37 nopaste "pmichaud" at 72.181.176.220 pasted "a slightly more bizarre trace" (8 lines) at http://nopaste.snit.ch/14974
15:38 * Coke adds https://trac.parrot.org/parrot/wiki/LeaveTheNest
15:39 Coke pmichaud: the second line is ok, as P1 is null ahead of time. the 3rd line is freaky.
15:39 * jonathan has svn 1.5
15:39 Coke jonathan: jot down some notes on the trac wiki about merging with 1.5
15:39 pmichaud Coke: it appears to be a bug of some sort with set_global
15:40 pmichaud because it's not actually doing the set.
15:40 jonathan pmichaud: Looks like that to me too.
15:40 pmichaud let's see if I can do a small test case.
15:43 pmichaud my small test case works fine.  hrm.
15:44 nopaste "pmichaud" at 72.181.176.220 pasted "the code generating the bizarre trace" (22 lines) at http://nopaste.snit.ch/14975
15:45 jonathan pmichaud: Have you tried it in your test case where the sub is a multisub?
15:45 jonathan Since 'infix:cmp' surely is...
15:45 pmichaud in this particular case the sub is not a multi sub
15:45 pmichaud the code that gets there is
15:46 pmichaud say sort { $^a <=> $^b } 45, 2, 6, 1
15:46 pmichaud oops
15:46 pmichaud say sort { $^a <=> $^b }, 45, 2, 6, 1
15:46 jonathan But you're doing
15:46 pmichaud and 'by' comes in as the closure argument.
15:46 jonathan by = find_name 'infix:cmp'
15:46 jonathan Oh, OK.
15:46 pmichaud only if the arity is less than 2.
15:46 pmichaud it's not in this case.
15:47 pmichaud also, infix:cmp is not _yet_ a multisub -- we couldn't make it a multisub because fpa's sort doesn't work with multisubs.
15:47 jonathan Oh.
15:47 pmichaud I'm trying to make infix:cmp into a multisub, which is what leads me down this dark scary path in the first place :-|
15:47 jonathan OK, then I can't point at the multi-sub logic and blame it.
15:47 jonathan (I ain't looked at the code yet, but it was going to be my prime suspect...)
15:47 pmichaud right.
15:48 PacoLinux Coke: Kea-Cl is also out of the parrot svn (can you put a reference in the wiki ? )
15:48 purl okay, PacoLinux.
15:49 NotFound purl: forget Coke: Kea-Cl
15:49 purl NotFound, I didn't have anything matching coke: kea-cl
15:50 NotFound purl: Kea-Cl?
15:50 purl rumour has it Kea-Cl is outside of the repo, I think. or out of the parrot svn (can you put a reference in the wiki ? )
15:50 ruoso joined #parrot
15:51 pmichaud that is just really weird and disturbing.
15:51 * pmichaud tries again with -G, just out of curiosity.
15:51 PerlJam what does "box 3" do exactly?
15:52 pmichaud creates an Integer PMC
15:52 pmichaud sets it to 3
15:52 pmichaud 'box' is an opcode to autobox the native types.
15:52 jonathan pmichaud: set_pmc_keyed_str in NameSpace PMC has some...interesting...logic. :-)
15:52 jonathan (Relating to subs.)
15:52 pmichaud jonathan: figures.
15:53 pmichaud I'll go look at that.
15:53 Coke PacoLinux: https://trac.parrot.org/parrot/wiki/Languages
15:53 mberends purl: forget Kea-Cl
15:53 purl mberends: I forgot kea-cl
15:54 Coke If you can give me the info on kea-cl, I can add it there, or you can just edit the wiki directly.
15:56 pmichaud what's up with that TT #10 comment?
15:56 jonathan Yeah, that caught my eye too...
15:56 jonathan pmichaud: Ah, it's because it calls ns_insert_sub_keyed_str
15:56 jonathan Which does PMC_sub
15:57 jonathan Which will expode if it's not *really* a Sub PMC but has been subclassed.
15:57 jonathan However, we're not reblessing subs in Rakudo yet, so I'd expect us to end up calling ns_insert_sub_keyed_str
15:58 pmichaud well, the trace indicates it's definitely a Sub and not a MultiSub, so...
15:58 particle Wknight8111: your question about win32 ia-64 jit...
15:58 Wknight8111 yeah?
15:58 jonathan pmichaud: Ah. Is the sub marked :anon?
15:58 pmichaud probably.
15:58 purl Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look harder.
15:58 jonathan hehe
15:58 jonathan /* If it's anonymous, we're done. */
15:58 jonathan if (PObj_get_FLAGS(value) & SUB_FLAG_PF_ANON)
15:58 jonathan return 1;
15:58 purl i guess return 1; is it a value?  a flag?  truth?  perhaps this is a shell programmer and he's really trying to say false!
15:58 PacoLinux Coke: https://rgrjr.dyndns.org/sv​n/kea-cl/trunk/README.text
15:58 particle 1) there's no parrot jit for itanium (is that what you mean by ia-64?)
15:58 pmichaud so I *can't* store an anonymous sub in a namespace?
15:58 jonathan Inside ns_insert_sub_keyed_str
15:59 jonathan That looks like the upshot of what we currently have, yes!
15:59 particle 2) parrot fails to build on win32 amd64 msvc, due to pointer/data conversion size mismatches
15:59 pmichaud okay, I think I can get my test case from that.
15:59 pmichaud bingo.
16:00 pmichaud that's it.
16:00 jonathan pmichaud: I think it is because the same call is used when we are constructing the namespace in the first place and we may well use that logic to make sure we don't put anonymous thigns in the NS
16:00 jonathan In reality IMCC should check if the anonymous flag is set.
16:00 jonathan And then not even try.
16:00 jonathan That's my guess why we have this bit of logic in here.
16:00 pmichaud that'd be my guess also.
16:01 pmichaud so, I can't use the namespace to store this "static" information about the sub for now.
16:01 pmichaud hrm.
16:01 pmichaud I guess I'll have the namespace store a proxy of some sort, then.
16:01 jonathan I don't feel right before a release is time for me to be modifying this bit of the codebase. :-)
16:02 pmichaud I agree.
16:02 pmichaud I'll file the ticket and it can go from there.
16:02 jonathan OK.
16:02 pmichaud *thanks*
16:02 jonathan If it is what we're guessing, it may not be hard to fix.
16:02 jonathan As in, if that's the only reason the code is there.
16:03 * jonathan syncs his branch up with trunk and sees how spectests are looking
16:05 pmichaud now TT #56
16:06 * jonathan thinks svn 1.5's merge thing works like merge shoulda done from the start :-S
16:07 PerlJam jonathan: yep
16:09 pmichaud yay, that seems to work now.
16:09 pmichaud jonathan++
16:10 pmichaud ...and we now have a stable sort.
16:10 Coke PacoLinux: https://trac.parrot.org/parrot/wiki/Languages updated to at least point to your website.
16:11 Coke jonathan: with the exception of tracking file renames properly. =-)
16:11 Coke for that, we need 1.6
16:11 PacoLinux Coke: kea-cl is not mine, but I find it interesting :)
16:11 moritz or git ;)
16:12 Coke oh, I thought you were rgr under a different name.
16:12 * Coke finds the "git" references nearly as helpful as "switch to linux" when asking MS questions.
16:12 jonathan And just as irritating.
16:13 Coke worse when I'm asking an svn question about something I'm doing at work, where running git isn't really an option.
16:13 Coke here I can see it as a "why don't we switch our infrastructure to something better" comment, which is not terrible.
16:13 Coke but still.
16:14 Coke git?
16:14 purl git is Alexy tourbin Perl Git repository: git://git.altlinux.org/people/at/packages/perl.git or the guitar institute of technology or the fast source code management system or great for that. or at git://utsl.gen.nz/perl-sotomorrow or http://www.perlfoundation.org/perl​5/index.cgi?perl_git_repositories or GNU Interactive Tools or http://git.or.cz/ or rather like iptables.
16:14 PerlJam Coke: git.  :)
16:14 jonathan I've only just learned how to merge in svn, I can't be bothered to learn a new vc system!
16:14 jonathan :-P
16:15 PerlJam jonathan: git is more complicated to understand that svn, but much more powerful.  to draw an analogy, git:svn :: perl:php   :)
16:16 dalek r33954 | jonathan++ | rakudoreg:
16:16 dalek : [rakudo] Sync type reg branch with latest in trunk.
16:16 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33954
16:17 jonathan Woo. I'm left with just 4 failing spectests now in my branch.
16:17 pmichaud excellent.
16:17 hercynium joined #parrot
16:17 jonathan OK, first is probably to try and use the new assertion stuff you did.
16:18 particle rakudoreg is what, type registry?
16:18 jonathan Yes.
16:18 jonathan I've got lowerclass cases working just fine in this branch. :-)
16:18 pmichaud yes, the new assertion stuff works quite nicely.
16:18 jhorwitz joined #parrot
16:19 pmichaud I can't believe I didn't think of it sooner.
16:19 particle *lowercase classes
16:19 jonathan ...wow.
16:19 jonathan And this is why I'm not commiting to trunk today. :-)
16:19 pmichaud some of the cases are indeed lower class, I bet.
16:19 PerlJam what "new assertion stuff"?
16:20 pmichaud PerlJam: in regexes:     <?{{ PIR returning boolean }}>
16:20 PerlJam oh.
16:20 pmichaud as a stopgap until we get <?{ perl 6 code returning boolean }>
16:21 PerlJam speaking of pir stopgaps ... is a perl6 prelude waiting on something in particular?
16:21 pmichaud yes, several things.
16:21 Coke prelude?
16:21 Coke perl6 prelude?
16:21 Coke perl 6 prelude?
16:21 Coke purludee?
16:21 pmichaud prelude is the Perl 6 builtins written in Perl 6
16:21 Theory joined #parrot
16:22 pmichaud a new one I found this week is that we have to have a universally unique :subid generator
16:22 dalek r33955 | jonathan++ | rakudoreg:
16:22 dalek : [rakudo] Oops, meant to commit all updates from trunk, not just the Rakudo ones...
16:22 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33955
16:22 particle we have a uuid gen in pir
16:23 apeiron joined #parrot
16:24 pmichaud then we need a way to import symbols into the global namespace.  I'm thinking I'll wait a day or two for the EXPORTALL thread on p6l
16:24 pmichaud then we also need to fix parameter passing, as it's not quite right yet
16:24 pmichaud then we're about there.
16:24 contingencyplan joined #parrot
16:30 Infinoid particle: I've done just about all I can on https://trac.parrot.org/parrot/ticket/26 and http://rt.perl.org/rt3/Tic​ket/Display.html?id=61092 (can't reproduce it even after installing ubuntu intrepid)
16:31 riffraff joined #parrot
16:31 riffraff hi
16:31 purl bonjour, riffraff.
16:32 chromatic joined #parrot
16:32 Infinoid good morning
16:32 Theory joined #parrot
16:32 particle Infinoid++ that may prompt an informative response
16:33 Infinoid I hope so
16:36 jonathan pmichaud++ # assertions work
16:36 Infinoid ooo, 5.8.9 and 0.8.2 on the same day
16:37 dalek r33956 | fperrad++ | trunk:
16:37 dalek : [PLATFORM]
16:37 dalek : - update for MinGW gcc 3.4.5
16:37 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33956
16:37 dalek r33957 | jonathan++ | rakudoreg:
16:37 dalek : [rakudo] Remove hack and use new assertion syntax.
16:37 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33957
16:37 moritz Infinoid: actually 5.8.9 was yesterday, they just waited with the announcment for all the cpam mirrors to catch up
16:38 jhorwitz pmichaud: rakudo panics with "rtype not set" when compiling ModPerl6::Registry.  hrm.
16:38 moritz I've seen that error somewhere in RT before
16:38 * jhorwitz goes ticket spelunking
16:39 particle coke: re http://smolder.plusthree.com/app/​public_projects/smoke_report/8555, the platform says 'MSWin32' in the report, but is it really cygwin? t/pmc/complex.t line 1037 suggests that parrot isn't reporting MSWin32 as its platform.
16:39 Theory joined #parrot
16:39 particle coke: i need more details on the platform before i can reproduce/fix
16:39 jhorwitz moritz: i don't see it in RT, at least not in a search.
16:40 moritz jhorwitz: maybe it wasn't RT after all :/
16:40 jhorwitz oh well
16:41 Coke particle: if the platform says MSWin32, I doubt it's cygwin.
16:42 particle does strawberry report mswin32/gcc?
16:42 Coke $ perl -e 'print $^O';
16:42 Coke cygwin
16:42 Coke checking.
16:42 particle Alias: i'd love a 64bit strawberry
16:42 jhorwitz found some references in the IRC logs, but nothing detailed.
16:42 Coke strawberry is MSWin32
16:43 Coke and probably gcc.
16:43 particle coke: downloading and installing after my dental work
16:43 Coke just have them all ripped out and replaced with a beak.
16:43 jhorwitz you should bring a laptop and do it DURING your dental work.
16:44 ihrd joined #parrot
16:44 ihrd hi there
16:44 purl hola, ihrd.
16:45 Infinoid hi ihrd
16:45 ihrd Mark Glines said I can help
16:45 ihrd with amd64 segaful
16:45 Infinoid yep, that's me
16:46 particle how the heck do i use strawberry? is there not a command shell? crap, i hope it didn't muck with my global env. i'll have to figure it out after dentist :( &
16:46 ihrd ok, I still have it on r33957
16:46 Infinoid particle: it adds itself to your PATH
16:46 gaurav joined #parrot
16:46 Infinoid so you just open a command prompt and do "perl Configure.pl" as normal
16:47 particle that ruins my whole env. :(
16:47 particle uninstall time!
16:47 Infinoid maybe a fixup batchfile would help
16:47 gaurav left #parrot
16:47 Infinoid ihrd: okay.  is it failing during build or during test?
16:47 gaurav joined #parrot
16:48 ihrd infinoid: now on make perl6
16:48 ihrd infinoid: I will make test now
16:49 Infinoid ok.  I'm trying the same thing in ubuntu intrepid right now, but I was not able to reproduce this earlier today
16:49 Coke particle: all you have to do is update your PATH.
16:50 dalek r33958 | coke++ | trunk:
16:50 dalek : Delete all 2007 entries; they're all at least a year old, which is at least 2.7 human years.
16:50 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33958
16:51 * Infinoid also tries etch
16:51 Infinoid wait.  ihrd, which version of ubuntu are you using?
16:52 * Coke wonders why PLATFORMS has so much info that doesn't help anyone in it.
16:52 ihrd infinoid: I do test now on server, I can look when it done
16:53 Coke if I just run 'make test' on my platform, which core did I test?
16:53 Coke cgoto?
16:53 purl cgoto is tested with make testg
16:53 Infinoid ihrd: ok, thanks
16:53 Coke ok, smarty pants, which core is tested with "make test". =-)
16:54 masak joined #parrot
16:54 ihrd masak: hi :)
16:54 masak I cannot make it to the #ps meeting today. my laptop was stolen. but consider my report to be the usual: fixes here and there, and many rakudo bug reports.
16:54 masak ihrd: hi there.
16:54 purl hi there. is probably ->foo(1, 2, bar => 3) supposed to work when calling an MX::Method defined as combined({ required = 1 }, { required => 1 }, { required => 0 }, bar => { required => 1 }) supposed to work?
16:55 masak purl: forget hi there
16:55 purl masak, I didn't have anything matching hi there
16:55 masak purl: forget hi there.
16:55 purl masak, I didn't have anything matching hi there
16:56 jonathan masak: Ouch. That's not good. :-(
16:56 masak jonathan: I agree. :/
16:56 masak it's not the data loss so much as being threatened with a knife that I don't like.
16:57 jonathan Whoa. :-(
16:57 jonathan That's nasty.
16:57 masak I'm quite good with backups nowadays.
16:57 chromatic It would have been just as bad with a knife that you DID like.
16:57 * Coke smacks chromatic
16:58 masak chromatic: yes. I'll try to find a way to formulate that sentence in a way that doesn't lead to many interpretations. thank you.
16:58 * Coke ponders shortening "bug mongering" to "buggering"
16:58 * Coke suspects that would not end well.
16:58 * Coke is getting a test failure on osx/intel
17:00 Infinoid Coke: tickering?
17:01 jonathan I hate stack overflows. Especially as my debugger won't break on them so I've no clue wtf happened.
17:01 nopaste "ihrd" at 77.35.42.97 pasted "./parrot -t t/pmc/pmc_3.pasm on my amd64 server" (289 lines) at http://nopaste.snit.ch/14977
17:01 Wknight8111 a google image search for "buggering" returns some interesting results
17:01 Coke ... bad idea, sir.
17:01 Wknight8111 and interesting in the bad way
17:01 Coke good idea?
17:01 purl Coke: Good Idea: Drinking fresh milk from the carton. Bad Idea: Drinking fresh milk from the cow.
17:02 masak moritz: re the bug for which you asked for confirmation: I cannot give you such confirmation right now. but I'm fairly sure it persists.
17:02 masak ...on that platform.
17:02 ruoso joined #parrot
17:05 dalek r33959 | pmichaud++ | trunk:
17:05 dalek : [rakudo]:  Update 'sort' to be a stable sort, and perform infix:cmp on Pairs.
17:05 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33959
17:05 dalek r33960 | coke++ | trunk:
17:05 dalek : update osx /intel report
17:05 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33960
17:08 * Coke vaguely wishes CPAn asked you about suggested dependencies.
17:08 Coke "this module is optional but gives you the ability for my package to frobulate. You want?"
17:10 Coke Infinoid: you have a lot of deps. =-)
17:10 Infinoid I'm a lazy bastard.
17:12 Coke Infinoid: it'd be nice if it showed the output of 'svn up'
17:13 Coke then I'd know if I couuld get by with a simple "make" instead of a full clean/reconfig/make
17:13 kj joined #parrot
17:13 Coke (perhaps if I could specify a verbose flag to 'svn-bisect start' if you didn't want it always on
17:14 Infinoid ah.  I hid that stuff because it seemed more like git-bisect that way... but I am flexible on this either way
17:15 Infinoid with my usage pattern, I just stack a realclean up on the same command line, so it never mattered to me
17:15 dalek r33961 | Whiteknight++ | trunk:
17:15 dalek : [PLATFORMS] Adding Win64+Strawberry Perl (GCC3.4.5) to the list of platforms that I've tested today.
17:15 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33961
17:16 Infinoid do we expect --optimize to work on linux/x86-64?  I can reproduce ihrd's segfault when configuring with that option.
17:16 Theory joined #parrot
17:16 jonathan woo, back to all sanity tests passing
17:16 moritz Infinoid: I reported a segfault duriing build on that configuration as well
17:17 moritz s/configuration/platform/
17:17 moritz (64bit + --optimize)
17:17 Infinoid which ticket?  I've got one RT ticket and one Trac ticket for this, and I think neither are from you
17:17 Infinoid so we can probably merge something.
17:17 moritz looking...
17:18 Coke Infinoid: gah. how do I get svn-bisect to show me the current session?
17:18 Coke as I've now skipped the (&#@$ message it showed me.
17:18 Infinoid svn-bisect view
17:19 moritz Infinoid: RT #61242
17:20 Infinoid great, I'll merge with #61092
17:20 Infinoid incidentally, do you know if --optimize used to work at some point in the past?
17:20 Coke Infinoid: bug report: it doesn't show you the "the bug must have occurred in revision foo."
17:20 Coke "There are currently 2 revisions under scrutiny.
17:21 Infinoid oh.  yeah, that code is stupid.  it depends on whether you last said "good" or "bad", but it doesn't actually update the metadata accordingly
17:21 Coke ... even though it already pegged one revision as the culprit.
17:21 Infinoid so if you re-run the most recent good/bad command, you will get the same result again
17:21 Coke thankfully I had immediately done an 'svn diff' on the offending version so I had it in my history.
17:21 Infinoid its something I should fix
17:23 Coke as long as you're in there, the dashes after known- look odd with the whitespace padding.
17:23 Coke I'd just drop 'em.
17:23 Coke Infinoid++
17:24 dalek r33962 | jonathan++ | rakudoreg:
17:24 dalek : [rakudo] Get lexical types identified when checking if we hvae a type name (this gets type capture working again far enough to pass the sanity test for it, but we still don't pass the spectest yet).
17:24 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33962
17:26 Infinoid still kinda strange how --optimize breaks on ubuntu but not gentoo
17:27 buildbot joined #parrot
17:27 moritz Infinoid: did you see Nicholas' reply to my report?
17:28 Infinoid yeah, looks scary
17:28 Coke RT#60926; at a guess, one of those foo->bar items needs a null guard.
17:29 dalek r33963 | pmichaud++ | trunk:
17:29 dalek : [rakudo]:  Add Pair.pairs (RT #59394, bacek++).
17:29 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33963
17:30 Infinoid uck.  ticket merging is a great feature, but I hate how unreadable the result sometimes is
17:30 * chromatic will try to make the meeting today.
17:30 pmichaud #parrotsketch in 60.
17:30 chromatic Somehow I have five meetings today, many of them overlapping.
17:31 * Coke should grab lunch
17:35 dalek r33964 | jonathan++ | rakudoreg:
17:35 dalek : [rakudo] Fix type capture more properly; the spec test passes again.
17:35 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33964
17:38 ffwonko joined #parrot
17:38 * Infinoid imagines a headerizer hack that implements Nicholas's non-null asserts
17:39 * jonathan wonders how/why we're generating $P155 = "MyPack::val_v"()
17:39 jonathan pmichaud: We have a test
17:39 jonathan ok((MyPack::val_v), "default sub called in package namespace");
17:40 jonathan Where val_v is defined in the namespace MyPack.
17:40 jonathan It should call it, right?
17:40 pmichaud yes.
17:40 jonathan OK
17:40 jonathan Before we were treating this as a type name and somehow it all worked out. :-)
17:40 dalek r33965 | kjs++ | trunk:
17:40 dalek : [pirc] more preparation for refactoring of target/symbol/pir_reg structs.
17:40 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33965
17:40 jonathan Now we end up generating that I pasted earlier
17:40 pmichaud yes, because it would still split the name on the '::' and do the lookup.
17:40 pmichaud (because it started with [A-Z])
17:40 jonathan Yup.
17:41 jonathan Guess I've just discovered another issue
17:41 pmichaud it's just that when it did the lookup it got a sub and not a type.
17:41 jonathan Aye.
17:41 jonathan So the test passed by accident"
17:41 pmichaud which happened to work out okay.  It's the same reason why    ~~ Grammar::foo    finds a sub even when we don't want it to.
17:41 jonathan Yup.
17:42 pmichaud looks like I closed 17 rakudo tickets this week.  :-)
17:42 jonathan Nice!
17:42 jonathan How many did masak open, though? ;-)
17:43 * jonathan looks for where to fix the call thing
17:43 pmichaud jonathan: it still has to detect MyPack as a type.
17:43 pmichaud that becomes the :ns() entry
17:44 pmichaud with "val_v" becomine the "name" entry
17:44 pmichaud in a :scope('package') lookup.
17:45 jonathan A package is a type?
17:45 pmichaud it's something that is recognized as a typename, yes.
17:45 pmichaud at least, that's the way I've understood it.
17:45 jonathan OK, we must be parsing wrong, because we don't end up in typename.
17:45 pmichaud if you're only accepting protoobjects, that's why.
17:45 jonathan MyPack::val_v parses as a term
17:45 pmichaud you might need "protoobject or namespace"
17:46 jonathan Oh, I've got a few things. In parsing MyPack::val_v we never hit typename.
17:46 jonathan noun -> term -> name
17:47 jonathan Ah, I see
17:47 jonathan term:name checks for types too.
17:47 pmichaud yes.
17:48 pmichaud but in this case "MyPack::val_v" isn't a type, so.... hrm.
17:48 pmichaud so it's an unrecognized name, and assumed to be a listop.
17:48 pmichaud I guess.
17:49 jonathan # unrecognized names are assumed to be post-declared listops.
17:49 jonathan Yup
17:49 pmichaud that feels a little funny, but I guess I can go with that.
17:49 pmichaud it means that perhaps <longname> should return a PAST::Var( :scope('package') )   node
17:50 pmichaud that looks very reasonable to me.
17:51 pmichaud I'm not sure that we're doing "longname" yet, though.  I'd have to check the grammar.
17:51 jonathan We're not.
17:51 pmichaud actually long name is  PAST::Var, with :scope('package')  only if there's a namespace component.
17:51 pmichaud hmm, that's not quite right either.
17:52 pmichaud ah well, it can be figured out.
17:52 pmichaud I'd better get my stuff done for rdice
17:52 jonathan aha
17:52 jonathan $past := PAST::Op.new( :name( ~$<name> ), :pasttype('call') );
17:52 jonathan In the action we don't break the name into its name and namespace parts
17:53 pmichaud need to do that only if there are namespace parts, though.
17:53 Maddingue joined #parrot
17:53 jonathan That's OK, parse_name will do the right thing I guess.
17:53 pmichaud so, parse_name( ~$<name.... right.
17:53 pmichaud that'll work well.
17:53 jonathan Ah, but we don't want to set namespace to be an empty list if there's no namespace part because we want a lookup in the current, not root, namespace.
17:54 pmichaud correct.
17:54 pmichaud you do something different depending on the number of elements coming back from parsename
17:54 pmichaud if 1, then generate the Op like we do now.
17:54 pmichaud if > 1, then generate a PAST::Var node that is the first argument to PAST::Op
17:55 allison joined #parrot
17:55 dalek r33966 | kjs++ | trunk:
17:55 dalek : [pirc] start duplicating info for symbols/pir_reg; old code will be removed shortly.
17:55 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33966
17:55 ihrd left #parrot
17:56 pmichaud it may need some refactoring for interpolated namespaces anyway.
17:57 jonathan pmichaud: It's a call node, can't I just set :namespace(...) on the conditon it's > 1?
17:59 pmichaud I don't know if call nodes understand :namespace
17:59 pmichaud (I don't recall that they do.  I've been thinking that perhaps they should.)
17:59 jonathan Gah, they don't!
18:00 pmichaud or I've been thinking that :name can become a PAST tree that becomes the thing to be called
18:05 * jhorwitz files a new rakudo bug report right after pmichaud fixes his previous bug :(
18:05 pmichaud jhorwitz: correct -- binding is broken for arrays/hash elements at the moment.
18:06 jhorwitz ok, that's fine.  i can work around it
18:06 jonathan pmichaud: Aha, seems to work. Need to spectest, but it does fix that borken test.
18:06 pmichaud you'll want to do that -- I don't know that it'll be fixed real soon.
18:06 jhorwitz (PIR in perl modules)++
18:09 dalek r33967 | kjs++ | trunk:
18:09 dalek : [pirc] remove field #1 ("interval") from symbol/pir_reg.
18:09 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33967
18:11 Coke parrotsketch?
18:11 purl well, parrotsketch is a status meeting for parrot core committers held every Tuesday at 18:30 UTC in #parrotsketch
18:11 Coke time?
18:11 purl time is 18:11:07 2008 and (did you mean "clock"?) or flowing like a river
18:11 Coke clock?
18:11 purl Coke: LAX: Tue 10:11am PST / CHI: Tue 12:11pm CST / NYC: Tue 1:11pm EST / LON: Tue 6:11pm GMT / BER: Tue 7:11pm CET / IND: Tue 11:41pm IST / TOK: Wed 3:11am JST / SYD: Wed 5:11am EST /
18:12 Whiteknight joined #parrot
18:14 rindolf joined #parrot
18:18 dalek r33968 | kjs++ | trunk:
18:18 dalek : [pirc] remove field #2 ("type") from symbol/pir_reg.
18:18 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33968
18:18 dalek r33969 | jonathan++ | rakudoreg:
18:18 dalek : [rakudo] Fix term action to respect namespaces. This fixes up all remaining broken spec tests, most likely (need to pull latest changes in from trunk to be sure of that, since more was unfudeged since I last sync'd).
18:18 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33969
18:20 particle jonathan: have you upgraded to svn 1.5? i strongly recommend it.
18:20 jonathan particle: Yes
18:20 particle excellent.
18:21 particle i want to write up a guide to the pugs repo for rakudo hackers
18:21 jonathan ,
18:21 particle svn 1.5 allows sparse checkouts
18:21 jonathan d'oh
18:23 jonathan pmichaud: When you've time, may be good to talk about use. But don't want to drag you from what you're working for rdice, plus I plan to get food after #ps. Maybe in a couple of hours works?
18:23 dalek r33970 | kjs++ | trunk:
18:23 dalek : [pirc] remove field #3 ("color") from symbol/pir_reg.
18:23 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33970
18:23 pmichaud jonathan: maybe.  tomorrow might be better.
18:23 jonathan pmichaud: OK.
18:24 jonathan pmichaud: I think my branch now passes all tests.
18:24 * moritz tests jonathan's branch
18:24 jonathan Just brought in your latest changes to sort/pairs to make sure.
18:24 pmichaud excellent.  If that's the case, I recommend merging right after release.
18:24 jonathan pmichaud: I can't
18:24 jonathan Because I've broken use.
18:24 pmichaud oh, I see.
18:24 jonathan At lesat, use when you have classes in what you're using.
18:25 jonathan Since we need to have the symbols available at compile time, we need to use at compile time.
18:25 jonathan As in, call the compiler from the compiler.
18:25 pmichaud right.
18:25 jonathan Which works. But breaks pre-compiled modules.
18:25 moritz like Test.pir
18:25 moritz d'oh.
18:26 jonathan moritz: No, because Test.pir doesn't have any classes or roles. :-)
18:26 jonathan Just subs.
18:26 jonathan It'll break if I don't do it at compile time, because the symbols will be missing and typename won't find 'em.
18:26 pmichaud why does it break pre-compiled modules, again?
18:26 particle it breaks november, i'm afraid
18:27 jonathan If I do it at compile time, then the pre-compiled module needs a kind of "trace" leaving in it (in loadinit).
18:27 jonathan So that the module actually gets used in the pre-compiled case.
18:27 kj #ps in 3
18:27 pmichaud right.
18:27 jonathan I think just doing that should work.
18:27 jonathan But I got the impression you wanted to talk more about it.
18:27 * particle checks http://cia.vc/stats/author/particle
18:27 pmichaud you're correct.
18:28 pmichaud I want to talk more about it so that we can get all of the :load stuff resolved correctly.
18:28 jonathan particle: Right, and november is what I don't want to break here.
18:28 jonathan pmichaud: Right.
18:28 pmichaud it can wait a day, then.  we don't have to worry about the branch going out of date with respect to trunk.
18:28 pmichaud we can also get MAIN fixed too.
18:29 pmichaud I won't do any of my other changes I have planned until we merge this branch into trunk.
18:29 pmichaud I do have a question, though.
18:29 jonathan OK, that's what concerned me. You making a branch from trunk to do parameter stuff.
18:30 pmichaud I won't make that branch until we do the merge.
18:30 jonathan OK
18:30 kj #ps in 0
18:30 pmichaud in the PAST::Block.loadinit stuff, do you think it's okay if we say that the loadinit's happen *outside* of whatever namespace the PAST::Block happens to be in?
18:30 pmichaud (currently they happen in the same namespace)
18:31 pmichaud I tested having all of the .loadinit stuff combined into a single :load :init sub, and it worked great except for that potential issue.
18:32 jonathan The *big* issue is that any blocks that are referred to by the loadinit must be compiled within the correct lexical scope.
18:32 jonathan And namespace.
18:32 purl namespace is, like, the internal namespace for things like $c->forward and template paths, anyway
18:32 jonathan e.g.
18:33 jonathan sub foo($a where { $a > 0 }) { ... }
18:33 jonathan That block must be in the right lexical scope.
18:33 jonathan But the loadinit code will refer to it.
18:33 jonathan When it is building the signature object.
18:33 jonathan If we can get _that_ right, I don't see any problems.
18:34 pmichaud the { ... } isn't part of the loadinit itself -- it's just referred by the loadinit.  There's no problem there -- that's what :subid solves for us.
18:35 pmichaud so yes, the where closure is still in the correct lexical scope.  the loadinit just attaches that closure to the signature object -- namespace isn't an issue.
18:35 dalek r33971 | kjs++ | trunk:
18:35 dalek : [pirc] more refactoring. Removed field #4 ('name', 'regno', and union-ified them)
18:35 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33971
18:35 pmichaud I'm just wondering if someone might try to use .loadinit in PAST to set package-scoped variables and expect it to be in the same namespace as its "outer" block.
18:37 jonathan I think that may be one of those "we need to document how it works" kinda things.
18:37 pmichaud so I'm thinking PCT can declare, at least for now, "loadinit items occur outside of the block in which they're declared"
18:37 jonathan I think it's an OK limitation, provided we specify it.
18:37 pmichaud and if someone wants to do something inside of the block/namespace, they create their own PAST::Block with :load :init flags
18:37 pmichaud but .loadinit is for compilation-unit-scoped initialization tasks.
18:38 jonathan Right.
18:38 jonathan We're not removing a way to do something.
18:38 jonathan You can still make a :load :init block if needed.
18:38 pmichaud okay.
18:38 jonathan It's not hard to do that.
18:38 dalek r33972 | infinoid++ | trunk:
18:38 dalek : [cage] Fix trailing whitespace.
18:38 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33972
18:38 pmichaud and I'm thinking that having one :load :init block for the compilation unit is a lot better than having one per Routine
18:39 jonathan It is much more work to build up a bunch of stuff in a single routine.
18:39 jonathan Yes. More efficient for one.
18:39 jonathan But less generated code and easier to pick stuff out of the generated code for another.
18:39 pmichaud oh, I can add comment lines.  It's actually not too difficult to pick them out.
18:40 jonathan Oh, I was thinking the toher way around, but that's a good point too.
18:40 jonathan I meant that at the moment you have a sub, a block of init code for it, a sub, a load of init code...
18:40 alvar joined #parrot
18:40 jonathan A lot of the time I don't care about the init code, I want to see what's going on in the sub itself. (As in, Perl 6 level sub.)
18:40 pmichaud right.
18:41 pmichaud I'm the same way -- I want the init code out of the way.
18:41 pmichaud so it'll go at the top, and all init takes place in a single :load :init sub
18:41 pmichaud fewer invocations, fewer subs.
18:41 pmichaud seems like a win.
18:42 jonathan Yes.
18:42 jonathan I'll be very happy to see that.
18:43 jonathan And subid makes it possible to get scoping stuff right.
18:43 pmichaud that should already be the case in PCT.
18:43 jonathan Will we have to make subids outselves?
18:43 pmichaud no, PCT handles it all for us.
18:43 pmichaud I may expose an option to allow HLL-generated subids, yes.
18:43 jonathan OK, even in the sub foo($x where { $x > 0 }) { ... } and then referencing that block by subid in the initload for signatures?
18:44 pmichaud yes, PCT handles that.
18:44 jonathan How will that look?
18:44 jonathan s/will/does/ then ;-)
18:44 pmichaud sub foo :subid('19')
18:44 pmichaud ...
18:44 pmichaud .end
18:44 arthur left #parrot
18:44 pmichaud sub '' :anon :subid('20') :outer('19')
18:44 pmichaud ... stuff for $x > 0
18:44 pmichaud .end
18:44 pmichaud .sub '' :load :init
18:45 pmichaud .const 'Sub' $P11 = '19'
18:45 pmichaud # initialization for foo
18:45 pmichaud .const 'Sub' $P11 = '20'
18:45 pmichaud # initialization for anon sub
18:45 pmichaud .end
18:45 jonathan OK, makes sense.
18:45 jonathan I was thinking at the PAST level more.
18:46 jonathan So I have the PAST::Block for the constraint
18:46 jonathan And I'm building my loadinit.
18:46 pmichaud it's same as now.
18:46 jonathan Ah, yes, bad example.
18:46 pmichaud my $loadinit := $block.loadinit();   $loadinit.push(...)
18:46 jonathan Yes, because loadinit takes care of doing the lookup.
18:47 jonathan I was thinking of the case where I have a PAST::Block and I know I will want to reference it (by a subid lookup) elsewhere in the tree.
18:47 pmichaud right -- don't have that yet.
18:47 pmichaud that's what I mean by "expose an option to allow HLL-generated subids"
18:47 jonathan I can't just incldue the PAST::Block elsewhere in the tree, otherwise it spits it out twice (plus how I know which block was the one to code-gen...)
18:48 jonathan OK, so in that case we'd force HLLs to make subids themselves.
18:48 pmichaud either that or just say "give me the subid for this block" and let PAST generate it.
18:48 jonathan Right. The second one would be nice.
18:48 pmichaud I'm looking at the issue of references in general.
18:48 jonathan But it's not a high priority for me - I don't have a need/use case right off hand.
18:50 moritz jonathan: added a very simple use+class test in (pugs) r24417
18:51 jonathan moritz: Passing?
18:51 moritz jonathan: in trunk, yes
18:51 jonathan moritz: Excellent, that's exactly what I needed.
18:51 jonathan moritz++
18:51 moritz I'll elaborate a bit more on them, but it's a start
18:54 ff-wonko joined #parrot
18:58 dalek r33973 | kjs++ | trunk:
18:58 dalek : [pirc] et voila! Nice code! woohoo. Refactoring follows shortly.
18:58 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33973
19:00 leto joined #parrot
19:02 jonathan Ah, I gotta pop out for a bit...
19:02 jonathan bbsoonish
19:10 particle that's a terrible commit message.
19:10 dalek r33974 | coke++ | trunk:
19:10 dalek : pass 'make codetest'.
19:10 dalek : Note that I think the passing c_indent update for filehandle.pmc makes the code uglier, but I bend my will to that of the codingstd test.
19:10 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33974
19:12 chromatic That's a terribler commit message.
19:13 kj Whiteknight is doing a good job on his book
19:13 kj eh,wrong windows
19:21 Theory joined #parrot
19:23 chromatic Hm, Eiffel is a powerful language.
19:23 particle yes, true, it's very slow.
19:24 chromatic Have you used it?
19:24 particle in years past, i have
19:24 chromatic In theory, it's easy to optimize.
19:24 particle before bush 2
19:26 particle i liked design by contract a lot
19:26 chromatic Once routines are clever too.
19:27 chromatic Explicit and declared conversions.
19:29 particle once routines are like state variables
19:29 Zaba joined #parrot
19:29 dalek r33975 | kjs++ | trunk:
19:29 dalek : [pirc] the previous commit removed a lot of tests for whether a <target> node was a <symbol> or <register>; now that mess has been cleaned up, code duplications and struct definitions can be cleaned up. This patch does exactly that.
19:29 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33975
19:37 leto joined #parrot
19:39 dalek r33976 | allison++ | cc_restart:
19:39 dalek : Creating branch for a clean application of the calling conventions refactor.
19:39 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33976
19:39 dalek r33977 | kjs++ | trunk:
19:39 dalek : [DEPRECATED]
19:39 dalek : + deprecate 'slice' op
19:39 dalek : + deprecate string indexing sugar mapping to substr opcode.
19:39 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33977
19:40 moritz jonathan: re use test, I was wrong, it doesn't work in trunk :(
19:40 moritz and I can't figure out why
19:44 moritz jonathan: de-alarm, I simplified it so that it works in trunk
19:44 pmichaud afk # working on presentation -- must finish soon.
19:45 Whiteknight allison++
19:47 kj allison: I suspect the whole stack calling conventions, specified/examplified in pdd19, are no longer relevant. Can you confirm?
19:47 kj at least it's not parsed by imcc
19:49 allison kj: looking now
19:50 allison kj: yes, you can eliminate the stack calling conventions documentation
19:50 Khisanth joined #parrot
19:50 kj okidoki. thnx
19:51 Whiteknight cotto: I don't understand your knockknock joke
19:52 cotto some enchanted evening
19:53 Whiteknight buh-dum ch!
19:53 Infinoid Coke: fixing that codingstd test was on my list, but it was going to be a while, as there is some seriously baroque string parsing code in that test.
19:54 Whiteknight allison, do you have the current diff against trunk for the calling_conventions branch? I'll lend a second pair of eyes if you need them
19:54 allison Whiteknight: applied to a fresh branch and testing now
19:55 Whiteknight okay, I'll wait for you to commit the changes and then look over them
19:55 moritz jonathan: ok, the test (t/spec/S10-packages/use-with-class.t) is now a bit more extensive, passes in trunk, and fails in rakudoreg ;-)
19:57 * Coke runs a very long 'make' cycle.
19:58 * particle is building the fresh branch as a baseline
20:00 allison Whiteknight: I've granted you posting access on parrot.org, you may want to try it out
20:01 Whiteknight thanks! I definitely will
20:02 Whiteknight the calling_conventions branch doesn't even build for me right now, linker errors with undefined IO-related functions
20:03 dalek r33978 | moritz++ | trunk:
20:03 dalek : [rakudo] add a file (classes that are defined in use'd modules) to t/spectest.data
20:03 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33978
20:04 b2gills joined #parrot
20:09 dalek r33979 | kjs++ | trunk:
20:09 dalek : [pdd19] change some {{ }} notes in more formal notes, indicating the current behaviour, and what it will be like. More cleanups of pdd19 will come after more deprecated stuff is removed from the implementation (IMCC). + remove example with stack calling conventions.
20:10 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33979
20:12 b2gills left #parrot
20:12 Coke Whiteknight: if I run the tests as described in the release guide, I get the one failure I already reported in platforms.
20:13 Whiteknight which one failure?
20:14 * Whiteknight has too many windows open
20:14 Coke `ack darwin PLATFORMS`
20:15 Coke there's an open RT for it.
20:15 Coke t/compilers/imcc/syn/macro.t segfaults on intel&ppc darwin
20:15 * Coke supposes he should try to get a darwin ppc report in for you.
20:15 Coke when are you cutting the release?
20:16 Whiteknight probably about 7pm EST, so 4 hours from now
20:16 Coke ok. I'll see what I can do.
20:16 Coke ->
20:16 Whiteknight I could push off till 8ish if there is a last minute rush, but I would rather not
20:19 chromatic I'd debug that problem, but I forgot my password to the only Darwin PPC box I have available.
20:20 chromatic ... but I might be able to reproduce it on Linux PPC.
20:22 Whiteknight goodluck, and godspeed
20:31 bacek good morning
20:39 Whiteknight good morning bacek
20:41 bacek Whiteknight: first your release today? :)
20:41 Whiteknight yep, first release in about 4 hours
20:43 bacek good luck!
20:43 purl You'll need it.
20:45 GeJ Good morning everyone
20:46 Whiteknight good morning GeJ
20:48 masak joined #parrot
20:48 GeJ hej masak
20:48 masak hejsan GeJ
20:49 masak I heard there would be a release today.
20:49 GeJ you heard it right
20:49 masak how's it going?
20:50 GeJ I dunno, I just woke up. Running a build and test session against the latest revision right now.
20:50 * jonathan is back
20:50 masak GeJ: sounds like a good idea. I'll do that too.
20:50 moritz waking up is always a good idea ;)
20:50 masak moritz: :)
20:51 GeJ servus moritz
20:51 GeJ and no it's not.
20:51 GeJ Bed, good. Outside, bad!
20:51 * moritz stands corrected
20:52 masak 'svn: command not found' :/
20:52 * masak installs
20:59 Whiteknight heading home now, be back later
21:06 masak how come `perl Makefile.PL` fails with "Compilation failed with 'cc'", even after I've installed gcc-4.1 with apt-get?
21:08 moritz masak: probably 'cc' isn't a link to gcc
21:08 moritz masak: install the build-essentials package
21:08 masak moritz: oka
21:08 moritz (or perl Configure --cc=gcc)
21:09 masak "Couldn't find package build-essentials"
21:09 masak moritz: and I do have a /usr/bin/cc
21:09 moritz masak: sorry, just build-essential (without the trailing s)
21:10 masak (and doing `perl Makefile.PL --cc=gcc` didn't work)
21:10 masak moritz: oki, trying that.
21:10 moritz masak: Configure, not Makefile
21:10 masak oh.
21:10 bacek masak: apt-get build-depends parrot
21:10 masak I thought you remembered wrongly. does Configure run Makefile.PL?
21:11 moritz it's the other way round
21:11 chromatic No, the other way around.
21:11 masak bacek: 'Invalid operation build-depends'
21:11 bacek masak: Lenny? apt-get build-dep parrot
21:11 masak bacek: ah, ok
21:11 moritz build-dep, not build-depends
21:11 masak Makefile.PL worked now.
21:13 * masak is amazed at how bacek managed to guess his distro down to the version, and from a single error message
21:14 * bacek uses Debian since Potato :)
21:16 moritz despite a fair number of remaining RC bugs, Lenny is very much usable these days
21:16 bacek moritz: indeed
21:18 masak I've been trying unsuccessfully to disable Gnome today, and replace it by ratpoison
21:20 bacek masak: why? why to replace and why unsuccessful?
21:21 masak I'd like to learn to use something like ratpoison. I tend to prefer keyboard-only to a great degree.
21:21 moritz ah, a future ion3 user ;-)
21:21 masak and I guess the tips and tricks I found on the web were outdated or something, because they didn't work. I still haven't figured out what to change to make Gnome not start at startup.
21:21 bacek xmonad!
21:22 bacek masak: apt-get remove gdm :)
21:22 moritz masak: at startup only gdm is started, not gnome
21:22 moritz masak: you can replace that by xdm for example, which is a bit lighter
21:22 masak bacek: been thinking of installing xmonad, too, yes.
21:22 masak so gdm != gnome?
21:22 moritz correct
21:26 chromatic Only 1100 more commits to check out.  Sigh.
21:29 masak moritz: so when I replace gdm by xdm, what is it that I've replaced, exactly?
21:30 moritz masak: the thing on the GUI in which you type your username and password
21:30 moritz masak: and which usually lets you chose your window manager
21:30 masak aah.
21:31 moritz you don't have to remove GNOME to try another window manager
21:31 moritz (and neither do you have to replace gdm)
21:32 masak oic
21:32 moritz (I always leave gnome installed in case $girlfriend wants to use my computer and gets fed up by fvwm ;)
21:33 masak heh
21:34 masak all tests successful.
21:34 purl make install NAO!
21:34 masak purl: no.
21:34 purl masak: huh?
21:34 * masak just realized that his Chinese dictionary is at home
21:34 masak so I have to go now.
21:35 masak good luck with the release, everybody.
21:36 dalek r33980 | allison++ | trunk:
21:36 dalek : [doc] Add release instructions for uploading source tarball to parrot.org FTP.
21:36 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33980
21:40 Tene pmichaud: I was having a weird problem with PCT that I didn't quite understand.  I have a patch that makes things not die, but I'm not certain it's correct.  It was mostly a guess.  Do you have a minute to look at it?
21:42 pmichaud yes
21:42 nopaste "tene" at 97.117.74.5 pasted "Modification to sub 'bind' :multi(_,[PAST;Op])" (16 lines) at http://nopaste.snit.ch/14981
21:43 Tene When I used := in rakudo, it was failing with 'rtype not set'
21:43 pmichaud currently bind should only work for PMCs
21:43 pmichaud yes, := is broken for hashes/arrays
21:43 Tene Okay.
21:43 pmichaud we'll have to build some form of proxy objects to support hash/array element binding
21:44 pmichaud either that or we'll have to figure out how to do something clever with set_pmc_keyed_*
21:45 pmichaud (so that they can support slicing directly)
21:46 pmichaud and hopefully whatever we come up with doesn't imply creating a new proxy object on every array/hash fetch
21:47 pmichaud jonathan: ping
21:48 pmichaud purl message jonathan ...how hard do you think it would be to get ObjectRef to participate in multi dispatch?
21:48 purl Message for jonathan stored.
21:49 pmichaud e.g., so that   .sub 'foo' :multi('ObjectRef')     could work and bind tighter than whatever ObjectRef is referencing?
21:49 pmichaud afk, have to run some errands
21:54 jonathan pmichaud: pong
21:54 jonathan oh, too late
21:55 jonathan purl message pmichaud it wouldn't surprise me that when we switch to Perl6MultiSub, it'll Just Work maybe even without any changes (other than creating a protobject for ObjectRef, which may or may not be a challenge).
21:55 purl Message for pmichaud stored.
21:55 dalek r33981 | julianalbo++ | trunk:
21:55 dalek : fix a perldoc coding error
21:55 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33981
21:56 jonathan purl message pmichaud For MMD today, we may be able to do it by intercepting get_mro and sticking ObjectRef into what comes back.
21:56 purl Message for pmichaud stored.
21:57 pmichaud back for a minute
21:57 pmichaud creating a protoobject for ObjectRef shouldn't be a challenge
21:57 pmichaud of course, we still want the ObjectRef to participate in mmd for whatever it's referencing
21:58 pmichaud so, if I do:    $P0 = new 'List';   $P1 = new 'ObjectRef', $P0
21:58 jonathan pmichaud: Perl6MultiSub calls isa, I believe.
21:58 pmichaud okay.
21:58 pmichaud it didn't work when I tried it a few days ago, I think.
21:58 jonathan And we taught ObjectRef to know about isa.
21:58 jonathan With Perl6MultiSub?
21:58 pmichaud oh, I guess not with Perl6MultiSub
21:58 jonathan Or with the standard Parrot one
21:59 jonathan OK.
21:59 pmichaud it would've been a standard Parrot one.
21:59 pmichaud that makes sense.
21:59 jonathan let me check something quickly...
21:59 pmichaud (it was infix:= that I was playing with)
21:59 dalek r33982 | allison++ | trunk:
21:59 dalek : [cage] Deprecated opcode 'pioctl' has been removed.
21:59 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33982
22:00 jonathan Oh, hmm.
22:00 jonathan Yeah, we do get_type and ObjectRef forwards that.
22:00 dalek r33983 | allison++ | trunk:
22:00 dalek : [doc] Removing opcode that no longer exists from the documentation.
22:00 jonathan Then looks up the mro of the underlying thingy.
22:00 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33983
22:00 dalek r33984 | tene++ | trunk:
22:00 dalek : [rakudo]
22:00 dalek : * move Exception clas sinto a new file
22:00 dalek : * add resume() and rethrow() to Exception
22:00 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33984
22:00 jonathan In the vtables of the interpreter
22:00 jonathan And the mro is in the vtable
22:01 jonathan So there's no get_mro call to intercept.
22:01 jonathan Meh. Was an interesting through for the 2 minutes I forgot how Parrot guts work...
22:01 pmichaud heh
22:01 jonathan I'm rather struggling on an easy way to bend Parrot's MMD to let us dispatch on ObjectRef.
22:02 pmichaud it (or something like it) may become important at some point.  Otherwise we'll constantly be checking "is this an ObjectRef" before we do anything.
22:02 jonathan Or a tricky way either for that matter.
22:02 pmichaud it is not immediately critical -- just something I kept running up against while doing assignment/list slices/hash slices/other
22:02 eric256 joined #parrot
22:02 jonathan I'm a tad scared even if we do manage to get Perl6MultiSub to do it that it will interact nastily with caching.
22:02 pmichaud and I'm thinking it may end up being important for binding of aggregate elements as well :-(
22:03 jonathan Hmm. Yes, it would. :-|
22:03 jonathan Basically, ObjectRef lies about its existence.
22:03 eric256 i implemented .succ and .pred in src/classes/Object.pir but i'm wondering if it belongs in Scalar instead, anyone got an idea?
22:03 pmichaud ...don't we already have .succ and .pred ?
22:04 dalek r33985 | allison++ | trunk:
22:04 dalek : [pdd] Remove section on Deprecated Opcodes from I/O PDD, now that all of them
22:04 dalek : have been removed.
22:04 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33985
22:04 jonathan And just behaves like the thing its referencing (including claiming to have the thing it's referencing's type ID). Which is why it appears transpent like we usually want it to.
22:05 pmichaud oh, maybe VAR(...) has some answers.  I'll have to think about that.
22:06 pmichaud eric256: I think .succ and .pred are already implemented.
22:06 dalek r33986 | allison++ | trunk:
22:06 dalek : [cage] Remove long-deprecated opcode 'pioctl' from the editor highlighting.
22:06 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33986
22:06 jonathan And that's why we come unstuck with Parrot's MMD. It comes and says "oh hi, what type are you?" And we hand back the type ID of what we're referencing.
22:06 jonathan And it uses that for the MRO
22:06 jonathan Of course, if we don't do that, then we will break impressively.
22:07 eric256 pmichaud: then i must have mis understood. cause  "my $x = '000'; $x.succ; say $x;" doesn't work and from the S03 i thought it would
22:07 pmichaud .succ isn't an inplace modifier
22:07 pmichaud it returns the successor value
22:07 pmichaud rakudo:  my $x = '000';  say $x.succ;
22:07 polyglotbot OUTPUT[Method 'succ' not found for invocant of class 'Str'␤current instr.: '_block11' pc 46 (EVAL_12:22)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 892 (src/PCT/HLLCompiler.pir:508)␤called from Sub 'parrot;PCT;HLLCompiler;evalfiles' pc 1216 (src/PCT/HLLCompiler.pir:669)␤called from Sub
22:07 polyglotbot ..'parrot;PCT;HLLCompiler;command_line' pc 1396 (src/PCT...
22:07 Tene rakudo: say 1.succ;
22:07 polyglotbot OUTPUT[Method 'succ' not found for invocant of class 'Int'␤current instr.: '_block11' pc 23 (EVAL_12:15)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 892 (src/PCT/HLLCompiler.pir:508)␤called from Sub 'parrot;PCT;HLLCompiler;evalfiles' pc 1216 (src/PCT/HLLCompiler.pir:669)␤called from Sub
22:07 polyglotbot ..'parrot;PCT;HLLCompiler;command_line' pc 1396 (src/PCT...
22:07 eric256 see?
22:07 pmichaud oh, maybe .succ isn't implemented for Str
22:07 Tene or Int
22:08 jonathan rakudo: my $x = 1; say $x.succ
22:08 polyglotbot OUTPUT[Method 'succ' not found for invocant of class 'Int'␤current instr.: '_block11' pc 46 (EVAL_13:22)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 892 (src/PCT/HLLCompiler.pir:508)␤called from Sub 'parrot;PCT;HLLCompiler;evalfiles' pc 1216 (src/PCT/HLLCompiler.pir:669)␤called from Sub
22:08 polyglotbot ..'parrot;PCT;HLLCompiler;command_line' pc 1396 (src/PCT...
22:08 jonathan *nod*
22:08 pmichaud but  simply doing  $x.succ  doesn't change the value of $x
22:08 eric256 right i understand that
22:08 jonathan Yeah, we succ at this at the moment.
22:08 eric256 it still doesn't in my implementation
22:08 pmichaud so, we need .succ for Int and Str (and probably Num)
22:08 eric256 done i think
22:08 pmichaud but it definitely doesn't belong in Object
22:08 Tene .succ is only implemented for Bool in rakudo
22:09 eric256 http://rafb.net/p/Vpkgx357.html
22:09 pmichaud eric256: yes, those are wrong.
22:09 eric256 okay thats what i was wondering. object didn't seem to tbe the right place
22:09 pmichaud because the inc opcode ends up calling .succ
22:09 pmichaud so you end up with a recursive loop.
22:10 dalek r33987 | allison++ | trunk:
22:10 dalek : [cage] Remove tiny example file illustrating deprecated and removed opcode 'pioctl'.
22:10 pmichaud (on the other types)
22:10 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33987
22:10 eric256 why does it work then? hmm
22:10 eric256 ohhh on the other types
22:10 pmichaud it'll work okay for Int, Num, and Str, because they have their own 'increment' vtable function.
22:10 pmichaud but other Object types don't, they get the one that is defined in Object
22:10 pmichaud and that one calls ".succ" :-)
22:11 pmichaud so we'd end up with a case of:    class Foo { };   my $x = Foo.new;  say $x.succ;    # infinite loop
22:11 pmichaud instead of "method .succ not found"
22:12 eric256 and indeed it does. well i'll go add a test to make sure mine fails testing at least so this wont have been a total loss hehe
22:13 pmichaud if you want to submit a patch for Int/Num/Str, that'd be great.
22:13 pmichaud (and tests)
22:14 pmichaud okay, folks, I need to get to bank before closing.  bbiaw
22:14 eric256 same code just one for each class? or is the code still wrong?
22:15 pmichaud the code itself looks pretty good.
22:16 pmichaud this is one of those places where vtables make us turn everything inside-out
22:17 TiMBuS joined #parrot
22:18 chromatic If we replaced vtables with MMD....
22:18 jonathan ...then we make the few remaining fast things slow?
22:19 chromatic We could get rid of the multimarshalling code.
22:19 jonathan OK, if we replaced the ops that are currently MMD to just do the MMD and not go through the vtable, sure.
22:20 jonathan I'd rather not making eg. set_pmc_keyed go through MMD, though.
22:20 chromatic Me neither, at least not right now.
22:20 jonathan OK.
22:20 jonathan In that case we probably are agreeing.
22:20 jonathan I thought you meant whip out vtables alltogether.
22:21 chromatic Not soon, no.
22:21 jonathan OK.
22:21 chromatic Maybe by February.
22:21 chromatic (Yes, that's a joke.)
22:22 dalek r33988 | tene++ | trunk:
22:22 dalek : MANIFEST and metadata updates for new file.
22:22 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33988
22:22 jonathan :-) I'd rather see us try that until we've tried it with the already-mmd'd ones.
22:22 jonathan "...placing interest rates as low as zero - their lowest level in history..."
22:23 jonathan Well yes, I guess they've not been lower. :-)
22:23 * jonathan is amused by some journalsim
22:23 jonathan *journalism
22:23 * eric256 realy wants a -5.5% loan
22:24 Whiteknight joined #parrot
22:26 chromatic Remember that for a journalist "history" means "THE LAST FIVE MINUTES!  OMG!  PONIES!!"
22:28 dalek r33989 | tene++ | trunk:
22:28 dalek : [rakudo]: CONTROL blocks
22:28 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33989
22:39 dalek r33990 | allison++ | trunk:
22:39 dalek : [cage] Deprecate 'add_io_event' opcode.
22:39 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33990
22:43 Whiteknight allison still here?
22:50 dalek r33991 | allison++ | trunk:
22:50 dalek : [cage] Remove completely unused file io_mmap.c.
22:50 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33991
22:57 Alias left #parrot
23:01 dalek r33992 | Whiteknight++ | vtable_self:
23:01 dalek : deleting old and unused branch that has become woefully out of date. Will revisit these issues later
23:01 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33992
23:11 dalek r33993 | allison++ | trunk:
23:11 dalek : [cage] Eliminate vague todo.
23:11 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33993
23:13 Whiteknight karma allison
23:13 purl allison has karma of 1226
23:13 Whiteknight karma C
23:13 purl c has karma of 7358
23:13 Whiteknight (C++)++
23:14 Whiteknight karma C++
23:14 purl c++ has karma of -79
23:15 bacek_ joined #parrot
23:15 ruoso joined #parrot
23:16 Whiteknight (C++)--
23:16 Whiteknight karma C++
23:16 purl c++ has karma of -80
23:20 Whiteknight The whole sub calling system seems so fragile
23:20 bacek_ Whiteknight: what the problem with c++?
23:21 Whiteknight oh, no problem with C++, it's a fine language. I just like playing with the bot
23:21 jonathan Whiteknight: In what sense?
23:21 jonathan (I'm not disagreeing with you, just curious what you feel is the most broken bit.)
23:21 Whiteknight jonathan: the cc branch is broken beyond repair, the Sub PMC uses all sorts of creepy introspection that's causing segfaults, etc
23:22 tewk Whiteknight: its a very complex system,
23:22 Whiteknight yes, and we're digging up some of it's complexity recently it seems
23:23 tewk Has a new branch been created yet, allison said she had a clean diff.
23:23 jonathan Whiteknight: I haven't been paying the attention I maybe should have - what exactly has the branch been trying to achieve?
23:23 jonathan Just tidying up and fixes, or something more fundemental?
23:24 Whiteknight That branch had a large wishlist. The first bite was trying to unify Parrot_PCCINVOKE and Parrot_pcc_invoke_sub_from_sig_object
23:24 Whiteknight After that we're trying to refactor/simplify all the runops_* functions, and convert contexts to PMCs
23:25 particle tewk: allison created the cc_restart branch, but didn't apply the diff :(
23:25 jonathan That's a lot to do in one go.
23:25 allison particle: haven't committed it yet
23:25 Whiteknight yeah, we're not doing it all in one go, breaking it down into subtasks
23:25 allison have reverted some changes that were only merge problems
23:26 Whiteknight and the first one is B0RKZORED
23:26 Whiteknight I can't even build the calling_conventions branch anymore because of linker errors
23:26 allison have also reverted the change of name for Parrot_PCCINVOKE, so it's obvious how small the changes really are
23:27 Whiteknight yeah, that's a change I should't have made, but I had sed handy and a few extra minutes to myself
23:27 jonathan svn 1.5 feels buggy.
23:27 particle buggy, how?
23:28 jonathan Like, after an svn merge into my branch, I then have to svn up in my branch (even though there's nothing to update) before I can commit. :-S
23:28 particle my big complaint with svn is really with win32. lockfiles during cleanup phase of svn update take forever to delete.
23:28 solarion don't use win32?  :)
23:28 particle jonathan: are you using the new merge syntax?
23:29 dalek r33994 | jonathan++ | rakudoreg:
23:29 dalek : [rakudo] Sync branch up with trunk.
23:29 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33994
23:31 jonathan particle: svn merge https://svn.perl.org:/parrot/trunk/ # should be all I need?
23:31 allison Whiteknight: well, it was a sensible change at the time, when all tests were passing. Trimming things down just makes it easier to pinpoint the failure.
23:31 jonathan (I do that in my branch.)
23:31 particle jonathan: right
23:32 jonathan :-S
23:32 jonathan Who knows.
23:32 Whiteknight it's easy enough to reproduce anyway, so no harm in reverting it
23:33 particle jonathan: you shouldn't need svn up after merge. see http://blog.red-bean.com/sussman/?p=92 for a succinct guide
23:35 Tene svn--
23:35 particle svn++
23:36 tewk git++++
23:37 Whiteknight karma git++
23:37 purl git++ has neutral karma
23:38 Tene Every project that I see that uses svn keeps having problems from merges breaking things.  Its behavior wrt. merging seems broken every time I've tred it.  Every time time I try to use svn, I either break something or almost break something.
23:38 moritz git++++
23:38 Tene Of course, that could easily say more about me than about svn.
23:38 chromatic Ever time I try to use git, I end up reading about storage models and file systems instead of how to create a single patch against a project's HEAD.
23:38 moritz oh, and every freakin' merge breaks MANIFEST
23:39 moritz but that's a problem with MANIFEST
23:39 moritz why do we need that anyway? can't we just generate it as part of 'make release'?
23:39 jonathan Well this is amusing. Turns out that to make "use" work with pre-compiled modules and to happen at compile time means uncommenting 2 lines of code and leaving the current thing we do in place and tweaking the comments explaining it...
23:40 * jonathan tries to work out what he's missing, or if he's just smarter today than a couple of months ago
23:40 Whiteknight (smarter today)++
23:40 jonathan Of course, still need to work some stuff out with pmichaud, but given I'm only uncommenting two lines and not putting any more into init... ;-)
23:41 * jonathan should get some November guys to test this
23:41 Whiteknight you know what they call November++?
23:42 Whiteknight ..December
23:42 chromatic Wiki Royale du Fromage?
23:42 particle moritz: that's a dead horse
23:42 moritz particle: what? manifest?
23:43 particle getting rid of manifest. we'll do it, someday. not today.
23:43 moritz ok.
23:43 particle just run tools/dev/mk_manifest_and_skip.pl regularly
23:44 dalek r33995 | jonathan++ | rakudoreg:
23:44 dalek : [rakudo] Make use happen at compile time, but keep emitting the same thing we did before at runtime (basically, just uncomment the two lines that I'd annotated 'we really want to be doing this' and leave what we were already doing in place. Duh. :-)
23:44 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33995
23:44 particle urk.
23:45 Whiteknight allison+ is on a ticket managing rampage
23:46 jonathan That gets the test moritz++ added passing in my branch.
23:46 jonathan However, somehow the merge f00ked up so I fail some pairs tests...wtf...
23:47 moritz pmichaud added Pair.pair or Pair.pairs or something
23:48 particle jonathan: i wish i'd questioned that commented code some time ago!
23:48 Whiteknight There are so many things for me to do next cycle, it's rediculous
23:49 moritz jonathan: November has a file (Session.pm) that loooks like this: Role Session; use Config; has $.attribute; this last line fails with the rakudoreg branch
23:49 particle that should get us closer to importing, too
23:50 particle moritz: does it fail before the last commit and after?
23:50 moritz I only tried after the last commit
23:50 moritz funny thing is, if I complue Config.pm first, it works.
23:50 Tene complue?
23:50 Tene oh, compile
23:51 * moritz should really go to bed
23:52 moritz maybe I get a chance to distill that into a test case tomorrow
23:54 jonathan particle: to be honest I didn't spend a load of time on it before, I was trying to unblock November (which I did) and it's worked until now, when we really needed it done at compile time.
23:54 dalek r33996 | jonathan++ | rakudoreg:
23:54 dalek : [rakudo] Some changes from trunk that somehow didn't make it to the last merge. This should mean the branch now passes all spectests, including the use ones, and that pre-compiled modules should work.
23:54 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33996
23:55 jonathan moritz: That would be great. I don't want to break November.
23:55 particle ...especially with a release of parrot/rakudo happening *soon*
23:55 particle it would be nice if November could choose to target 0.8.2 if it wishes
23:56 jonathan particle: There's no way this branch is going in before the release.
23:56 particle ah, okay then :)
23:57 jonathan I didn't expect to fix what I just did.
23:57 jonathan Well, not today.
23:57 particle umm. does that mean it might be passing things by chance?
23:57 particle even though you just fixed a bunch of those? it's doing the same in a different way?
23:58 jonathan particle: I didn't expect to as in, I thought it was going to take me quite a lot of work to achieve, rather than just some uncommenting. :-)
23:58 jonathan Thus I didn't think I'd have time to do it before the branch.
23:58 jonathan Now that I've done the change, the results make senese.
23:59 jonathan Anyway, still need to review use etc with pm and it's probably best to get it sorted out in the branch.
23:59 jonathan And then merge.
23:59 particle ok
23:59 jonathan Need to work out the November failure too.
23:59 eric256 its nice to look at the source of November and see that its still perl ;) if you know what i mean.
23:59 particle i need to learn about use, too

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

Parrot | source cross referenced