parrot.org/ - clean up those smolders for the release!
Set by moderator on 20 October 2008.
00:10 AndyA joined, Limbic_Region joined 00:23 magnachef joined 00:26 magnachef__ joined 00:46 magnachef joined 00:59 magnachef__ joined 01:18 magnachef joined, bsb joined 02:04 magnachef__ joined 02:55 grim_fandango joined 03:14 magnachef joined
pmichaud ...I'm getting spectest failures in rakudo -- is that "expected" at this point? 03:44
t/spec/S03-junctions/boolean-context.t is one example -- I'll get a full list in a second. 03:45
03:47 Psyche^ joined
dalek r32370 | allison++ | pdd22io: 03:48
: [pdd22io] Separate tests for 'read' and 'print' methods on FileHandle PMC.
diff: www.parrotvm.org/svn/parrot/revision?rev=32370
r32371 | allison++ | pdd22io: 03:52
: [pdd22io] Cache filename and mode passed to 'open' method for introspection and
: reopening. Add 'read' and 'print' methods.
diff: www.parrotvm.org/svn/parrot/revision?rev=32371
03:53 Ontolog joined
dalek r32372 | allison++ | pdd22io: 04:00
: [pdd22io] Keeping the revision history of the I/O buffering code under the new name.
diff: www.parrotvm.org/svn/parrot/revision?rev=32372
04:05 japhb joined
nopaste "pmichaud" at 76.183.97.54 pasted "rakudo spectest failures in trunk (r32369)" (7 lines) at nopaste.snit.ch/14492 04:32
04:56 clunker3 joined
bacek_ pmichaud: last 8 tests in junctions/boolean-context were added yesterday 04:58
pmichaud ...but they weren't marked as todo or skip? 04:59
bacek_ not yet. 05:00
pmichaud grrr. 05:01
I spent an hour or so trying to figure out why my changes were causing failures.
how about the ones in misc.t ? 05:02
bacek_ pmichaud: no idea... 05:03
but i have patch for boolean-context :) 05:04
not ok 19 - junction ("a" | "b" | "c") matches junction ($a & $b & $c) 05:15
ok(('a' | 'b' | 'c') eq ($a & $b & $c), 'junction ("a" | "b" | "c") matches junction ($a & $b & $c)'); 05:16
pmichaud probably need a boolean context there somewhere.
bacek_ probably bug in parrot...
rakudo: say (('a' | 'b' | 'c') eq ($a & $b & $c))
polyglotbot No output (you need to produce output to STDOUT)
pmichaud otherwise it can autothread over the ok() function
so it should be
ok( ? (('a' | 'b' | 'c') eq ($a & $b & $c)), '...') 05:17
bacek_ rakudo: say ?(('a' | 'b' | 'c') eq ($a & $b & $c))
polyglotbot No output (you need to produce output to STDOUT)
bacek_ hmm...
it's... weird...
pmichaud $a, $b, $c not defined there.
so of course that fails in channel. 05:18
bacek_ rakudo: my $a='a'; my $b='b'; my $c='c'; say ?(('a' | 'b' | 'c') eq ($a & $b & $c))
polyglotbot No output (you need to produce output to STDOUT)
bacek_ rakudo: my $a='a'; my $b='b'; my $c='c'; say ?(('a' | 'b' | 'c') eq ($a & $b & $c));
polyglotbot No output (you need to produce output to STDOUT)
bacek_ rakudo: say "hello"
polyglotbot No output (you need to produce output to STDOUT)
bacek_ yak...
pmichaud looks to me as though polyglotbot is the problem :-|
> my $a='a'; my $b='b'; my $c='c'; say ?(('a' | 'b' | 'c') eq ($a & $b & $c)); 05:19
0
bacek_ it's wrong
pmichaud it is?
purl Oh no it isn't!
pmichaud okay, I'll buy that it's wrong. Possibly a problem with the order in which things are being threaded. 05:22
wow, junction_comparrison_helper is *real* wrong. 05:24
for one, it should not be returning a single boolean true or false value -- it's collapsing prematurely 05:26
it's also always autothreading over the first junction, regardless of the junction's type 05:31
nopaste "pmichaud" at 76.183.97.54 pasted "example of junction autothreading result" (23 lines) at nopaste.snit.ch/14493 05:35
05:42 GeJ joined 05:46 Debolaz_ joined
bacek_ pmichaud: can you check my second patch from #60168? I slightly refactor all junctions ;) 05:51
pmichaud as I mentioned before, it would be better if it short circuited. 05:55
and infix_junction_helper has the same bug that junction_comparison_helper does -- it's always autothreading on the leftmost junction 05:57
dalek r32373 | pmichaud++ | trunk: 06:44
: [rakudo]: Add Object.Str method and get_string vtable function [RT #60350]
diff: www.parrotvm.org/svn/parrot/revision?rev=32373
06:48 MariachiElf joined
bacek_ pmichaud: in which synopsis described correct auto-threading behavior? 07:36
07:36 uniejo joined
moritz I guess it's either S03 or S06, but I didn't look yet. 07:37
bacek_ moritz: i did... 07:38
S03
no. nothing. 07:39
dalek r32374 | cotto++ | trunk: 07:41
: [pipp] make actions.pm more vim-friendly
diff: www.parrotvm.org/svn/parrot/revision?rev=32374
bacek_ afk # going home. 07:47
07:51 Ademan joined 07:58 iblechbot joined 08:03 bacek joined 08:05 tomyan joined 08:47 japhb joined
dalek r32375 | cotto++ | trunk: 09:00
: [codingstd] trailing space fix
diff: www.parrotvm.org/svn/parrot/revision?rev=32375
09:04 cosimo joined 09:14 rblackwe joined 10:20 kj joined
jonathan morning all 10:41
purl morning, jonathan
moritz moin ;)
kj morning
jonathan: I sent you an email about 5 min. ago 10:46
jonathan kj: Where did you send it to? 10:47
purl, jonathan
purl you are mailto:jnthn@jnthn.net or trying to put together a grant application.
jonathan wow, purl is actually accurate!
kj it's jonathan@jnthn.net I think
jonathan ah, there
kj that's an old one?
jonathan I'll go dig it out - in general, bad place.
No, it's my mailing list one. 10:48
kj ok
jonathan Being on mailing lists => spam
So the stuff that gets sent from mailing lists there gets sorted into folders, and I pretty much ignore the rest.
kj oh ok
jonathan kj: Found it, replying 10:49
kj .. and replied again :-) 10:53
jonathan Same! 10:57
:-)
OK, all sorted.
pmichaud++ # object stringification stuff
I suspect now that is fixed, this can be closed too... rt.perl.org/rt3/Ticket/Display.html?id=57310 10:58
dalek r32376 | jonathan++ | trunk: 11:19
: [rakudo] Make inheriting from classes complete with a namespace work. Patch courtesy of Chris Dolan.
diff: www.parrotvm.org/svn/parrot/revision?rev=32376
jonathan Less than 25 tickets before we can get the Rakudo queue back down to 150 - if indeed we can! :-) 11:23
bacek jonathan: can you fix #56612? :) 12:02
jonathan bacek: It's part of the wider lexical issues, I suspect - pm has a branch where I think he's made quite a lot of progress on that stuff. 12:03
bacek jonathan: I'll try "lex" branch. 12:05
jonathan: (while it compiles) Where I can find information about how Junctions auto-threading should work? 12:06
../../parrot perl6.pbc --target=pir --output=Test.pir Test.pm 12:08
Lexical '$/' not found
it's on "lex" branch...
jonathan S09?
purl hmmm... S09 is perlcabal.org/syn/S09.html
bacek Yo! But why tests in 't/junction' instead of 't/spec'? 12:10
jonathan Those are from Pugs tests, and have maybe not been reviewed yet (or maybe have been and also exist in t/spec somwehere) 12:12
bacek In spectest there is only S09-autovivification and S09-subscript_slice 12:15
we probably need help of "Moritz the Test Master" ;) 12:16
msg moritz Can you review tests from 't/junction' and copy appropriate tests into 't/spec'? 12:18
purl Message for moritz stored.
moritz I already reviewed the simpler tests
bacek moritz++ # being faster that quantum computers :) 12:19
moritz well, back in the days, at least 12:20
I guess the remaining ones are non-trivial
bacek "back in days"... Looks like you moving faster than light (if Einstein right) 12:22
moritz anyway, if I get around to review some more, it's surely not before 19H localtime (that's in 6H), likely even later 12:24
bacek moritz: deal 12:26
dalek r32377 | fperrad++ | trunk: 12:28
: [Lua]
: - add "man or boy" test
: see en.wikipedia.org/wiki/Man_or_boy_test
diff: www.parrotvm.org/svn/parrot/revision?rev=32377
r32378 | bernhard++ | trunk: 12:43
: #60364 [PATCH] pod fixes: L<draft/pdd19_pid.pod>, typos, syntax
: Courtesy of Brad Bowman.
diff: www.parrotvm.org/svn/parrot/revision?rev=32378
12:44 barney joined 13:36 Hunger joined 13:53 gryphon joined
Coke is the __get_string mentioned in dolan's email the parrot 'get_string :vtable' ? 14:06
(in which case lets stop using the __)
pmichaud good morning 14:12
14:12 nopaste joined
pmichaud I'm guessing that dolan saw the __ somewhere in the docs or in existing code. 14:13
14:14 gryphon joined
pmichaud autothreading is in S09 14:17
diakopter re r32377, I daresay the Perl (5) implementation on the referenced wiki is the shortest of the implementations listed. 14:18
... at first glance
although the Ruby one is comparable. 14:20
Coke i'm just happy the tcl one works. =-) 14:23
jonathan pmichaud: morning 14:24
Just went out for food, to the posta, etc
s/posta/post office/
pmichaud jonathan: good morning 14:25
jonathan pmichaud: So, container stuff? 14:26
pmichaud first thing I'd like to see us do is rename Mutable to ObjectRef
since that's a bit more accurate. 14:27
then we'll be getting rid of (or sharply reducing) Scalar
jonathan Perl6Scalar OK. 14:28
Should we do it in a branch, or? 14:29
pmichaud probably branch
jonathan OK
pmichaud can you remind me how .true, .True, etc. ultimately played out? 14:31
jonathan Oh, ouch...
IIRC, True was going to a role.
And False too
And when composed they overrode .true to return 1 and 0 respectively 14:32
pmichaud same as any other enum, or special?
got it
jonathan No, the main point out of it was that they weren't going to be like any other enum.
pmichaud right, because they have a .true method
(that overrides an object's .true when composed)
jonathan Well, that's the problem. The enum Bool <True False> would actually have a True method.
And not a .ture one
pmichaud I don't see that as a problem. 14:33
jonathan So it couldn't just work as a straightforward enum.
pmichaud am I missing something?
right.
okay, so True and False are just special roles
jonathan Right. That's how I remember the discussion ending.
pmichaud they're basically the same as the enum but with an additional .true method
jonathan Yes.
So I suppose they'd also introduce .True and .False and .Bool
pmichaud okay, here's another question -- what's the relationship between .Bool and .true in Object ? 14:34
jonathan That one I'm not totally certian on, but my expectation is that the default .Bool method just does coercion to a Bool. For Object it would maybe not be so surprising if it was defined in terms of .ture. But I could argue that the other way around too... 14:35
pmichaud yes, I was wondering which one is the base and which one is derived.
jonathan It seems to me almost like we have too many things here.
pmichaud I'm starting to think we should get rid of .true 14:36
jonathan IMO, but IANALD, since we have people overriding Str, Num etc to say "what is my Str representation, what is my Num representation", I'd rather stick with that scheme and tell people to override Bool.
pmichaud agreed.
although I don't mind if .true in fact calls .Bool
jonathan And then .true is just a utility method from Any that calls .Bool, and .false calls it and negates it.
pmichaud I haven't seen a .false, fwiw. 14:37
jonathan If indeed there is .false...is there? :-)
OK, then I made it up.
pmichaud I think it's just .true
jonathan Now, the thing is that if we actually do it this way around, then Bool *can* just be the enum, I think.
So you mix it in, and now .true calls .Bool, which was overriden by mixing in the enum and hey, we get the right answer. 14:38
pmichaud and Object.Bool just checks definedness?
jonathan Yes.
pmichaud that does seem correct.
jonathan Yeah. Why didn't we think of it this way before... :-)
pmichaud I'm thinking there's a case that doesn't work.
or that there's a LD reason for wanting .true 14:39
jonathan Hmm.
What's the relationship of prefix:? and prefix:! with all of these too, is also worth asking.
Thing is, there's potentially three ways that you can specify how you booleanize. Override Bool, override true, overload prefix:? 14:40
You could do them all differently for epic fail. ;-)
pmichaud well, overload prefix: operators is discouraged
jonathan Sure.
pmichaud for example, to specify stringify we define Str() and not overload prefix:~
jonathan Right.
So for getting a boolean value, overriding Bool would seem to fit in the "what we encourage" pattern. 14:41
pmichaud I'm also wondering if .true is intended to be able to check a value's truth "without mixin"
jonathan That feels...odd.
pmichaud i.e.,: my $a = 0 but True; ?$a (true) $a.true (false)
jonathan I hope not.
Then again, I'm just implementing, not designing. ;-) 14:42
pmichaud I'm guessing "not", since S03/S04 don't speak of .true in that manner
jonathan Yeah 14:43
I can't recall seeing anything along those lines.
dalek r32379 | tewk++ | trunk:
: [pirc] fixed linking to be portable
diff: www.parrotvm.org/svn/parrot/revision?rev=32379
jonathan tbh, part of me wonders if the relationship between all of these is one of those "whichever implementation does it and has it right enough makes the standard" kinda things 14:44
pmichaud heh
well, I'm actually thinking of specifying it in Perl 6
and posting that to p6l
jonathan That may be a good plan.
The fact that this way makes Bool just work as an enum feels encouraging. 14:45
14:46 gryphon joined
jonathan tries to work out why on earth he's getting invalid PIR spat out 14:47
Am doing if foo() -> $x { ... } stuff
pmichaud where -> $x is bound to the result of foo() ?
jonathan Right.
Did some change in PCT. 14:48
pmichaud I think that requires PCT
jonathan To support this.
pmichaud ah.
I was going to solve it generically in PCT. But I felt it needed to wait to see how lexicals finished out.
jonathan Not committed yet. It worked in the REPL for a simple test...and a spectest one that looks very similar comes out with bad code.
Ah, OK.
pmichaud I wanted to use the same approach in PCT for while/until/for/unless/etc. 14:49
jonathan Well, this'll give us something that works until then...
I was just checking the block arity.
Like for does to know how many things to take at once.
pmichaud I'm a little concerned about getting too much "something that works until then" because our "something that works" is often ending up being a blocker to future progress
but yes, checking the block arity is the right way to go. 14:51
I think that the 'for' loop has its own arity that can override the block arity.
jonathan Yes, it has to handle the special case of no arguments and thus setting $_, I think. Conditionals don't do that. 14:52
pmichaud well, for doesn't set $_
but it does force an arity of at least 1.
kj tewk++ # pirc builds on win *and* linux 14:53
jonathan Ah, OK, and we handle the $_ at the Perl 6 compiler level.
pmichaud correct -- it's just a parameter 14:54
jonathan For this case I check we have an arity of 0 or 1 and complain if not.
pmichaud I would just check if arity is non-zero and use that to decide whether to send the value as a param
jonathan If we have a sub with arity 2, and we send in just 1, we're doomed at runtime anyway, I think. 14:55
pmichaud yes, but I think it makes more sense as a runtime error.
jonathan prefers compile time errors when possible
It felt possible.
I can do it that way instead, though.
pmichaud sure, but in this case a runtime error would be more consistent with what we would see for most other sub calls with wrong number of params 14:56
at any rate, I think I'd prefer arity checking to be performed by the HLL compiler and not by PCT
jonathan Ah, OK. 14:57
I'll just go on > 1 then.
Oh argy.
This is...weird.
pmichaud if a HLL has a sub with arity > 1 but that can somehow be called with a single argument, I don't want PCT to second-guess that.
dalek r32380 | coke++ | trunk: 14:58
: this ticket is closed.
diff: www.parrotvm.org/svn/parrot/revision?rev=32380
jonathan OK, good point.
Will modify it.
I think my problem may be some weird parse issue.
nopaste? 14:59
clunker3 pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/
purl well, nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/
nopaste "jonathan" at 85.216.157.73 pasted "heh" (10 lines) at nopaste.snit.ch/14494
jonathan pmichaud: If you uncomment the last line of that, it suddenly gives a bunch of PIR errors.
jonathan wonders what the PAST looks like
pmichaud do we support my ($a, $b, $c); yet? 15:00
that looks odd to me.
jonathan Yes, but not assigning to them all.
(as in, not list assignment...)
pmichaud also, given that lexicals have known issues I would eliminate $a_val and $b_val from that test. 15:01
sub testa { 'true_a' }
sub testb { 0 }
particle look, perl 5 constants! 15:02
15:03 rdice joined
jonathan Ah, got simple short test case. 15:04
dalek r32381 | coke++ | trunk: 15:07
: reference additional ticket
diff: www.parrotvm.org/svn/parrot/revision?rev=32381
pmichaud so, shall we get started on value/containers? 15:14
jonathan Yes - we can, I was hoping to work on what on earth was wrong with my if ... -> ... patch first, but it doesn't look obvious. 15:15
So, create the branch. 15:16
And then we can starting working in there.
jonathan delegates the scary version control bits of the job :-)
pmichaud I always wonder what to call the branch 15:17
:-)
jonathan rakontainer
pmichaud how about rakon for short?
jonathan nice
In a week everyone will be asking us, "why rakon", and we won't remember. ;-) 15:18
pmichaud of course, eventually we'll have a rakoff, I suspect.
branch committed.
svn.perl.org/parrot/branches/rakon
(checking out, building) 15:19
dalek r32382 | tewk++ | trunk:
: [MSWin32] fix build
diff: www.parrotvm.org/svn/parrot/revision?rev=32382
r32383 | pmichaud++ | rakon:
: [rakudo]: new branch for redesigning value/container semantics
diff: www.parrotvm.org/svn/parrot/revision?rev=32383
jonathan OK, checking it out.
dalek r32384 | kjs++ | trunk: 15:23
: [pirc] add a TODO file. update manifest and .skip.
diff: www.parrotvm.org/svn/parrot/revision?rev=32384
15:24 jhorwitz joined
jonathan pmichaud: OK, got it built. 15:28
pmichaud same here. 15:29
first thing I'd like to do is have an ObjectRef type. I'm thinking "Mutable" should become "ObjectRef"
jonathan OK.
In theory that's "just" some renaming. 15:30
pmichaud well, there are some things that Mutable does now that ObjectRef should not.
i.e., there shouldn't be assign_pmc, or type checking 15:31
jonathan OK 15:32
I note: Note that the 'copy' opcode above doesn't modify or
copy PMC properties on either PMC, so properties effectively
remain with their PMC "container".
pmichaud correct. 15:33
jonathan Is that what it does today, or what we need it to do?
pmichaud that's what it does today.
jonathan OK
pmichaud (and what we need it to do.)
also, I'd like an ObjectRef to not create an Undef object on initialization. :-)
jonathan OK.
You'd like it to creathing nothing? 15:34
pmichaud I'm okay with it initializing to PMCNULL.
jonathan NULLPMC?
OK.
I guess another step is writing the !VALUE methods.
Shall I take the renaming and just start doing it?
I think rename and then start to modify it...
pmichaud yes, please. I'll start working on the details of !VALUE
jonathan OK, great.
pmichaud I'm still not certain where Perl6Scalar will end up in all of this. We need a PMC type that can be used for scalar parameters to "wrap" additional constraints onto a value, so perhaps that's Perl6Scalar 15:36
jonathan Ah yes, we discussed all the additional constraints a while back and I think we found an answer.
pmichaud for a basic "my $x";, I'm expecting that $x is simply the Object protoobject 15:37
jonathan Yes.
Me too.
And I note we clone the object prototype too.
pmichaud okay, we can do that.
jonathan I think we need to, since my $x; $x++; needs to do something sane.
pmichaud oh, that's been worked out.
jonathan Oh? 15:38
purl rumour has it Oh is there a standard rule that defines a number of estimated man-hours per ticket
pmichaud increment on an undef replaces it with an Int
jonathan Right.
Which means we shoulda cloned though, I think.
pmichaud yes, you're correct there.
jonathan Otherwise we modify the Object proto. Which would kinda suck. :-)
pmichaud but the cloning of the Object proto can/should be done in actions.pm 15:39
jonathan Oh yes, I was expecting that.
Coke if we're getting rid of the integer type, we also need an easy way to do what "$P1 = new 'foo'" is doing. should we add pmc_new_from_string and pmc_new_from_pmc to wrap that sort of functionality? 15:40
pmichaud Coke, you lost me.
Coke pmc_new takes an int. 15:41
pmichaud oh, you're talking about internally in Parrot.
Coke yes.
"new thread"
pmichaud istr that allison told me that integer types would likely remain in Parrot through 1.0
they just wouldn't be visible at the PIR level 15:42
Coke if the ticket to remove VTABLE_type is still valid, that's still a ton of updates.
pmichaud that said, I wouldn't see an issue with having pmc_new_from_string and pmc_new_from_pmc 15:43
particle that's my understanding, too (int types)
Coke since vtables are user facing, I'm assuming all those tickets are still valid.
15:44 Andy joined
pmichaud agreed. 15:44
Coke hurm. I think instead of a top level pmc_new, I can just add a helper function to go from "Frob" to an int (odd if one doesn't already exist.) 15:45
jonathan Coke: Though on removing the vtable method, a good first step is maybe to remove the op that lets you get at the value from PIR and fixing the PIR side. Then that "just" leaves the C side for afterwards. 15:46
jhorwitz Coke: Parrot_PMC_typenum? 15:47
pmichaud hasn't the op for getting int values in PIR already been removed?
Coke hurm. we have pmc_type, but the op <pmc_new_p_s> does more. 15:48
jonathan: vtable_type is pretty invasive. 15:49
jhorwitz pmichaud: IIRC, that was find_type
pmichaud jhorwitz: yes, that's what I recall also.
jhorwitz was deprecated a while ago, not sure if it's been removed
Coke I don't think much of the user facing int types have been removed at all. 15:51
pmichaud are there any opcodes left that use int types?
Coke yes. 15:52
the biggest being "new_p_i"
15:52 hercynium joined
pmichaud ah, yes. 15:52
is anything blocking their removal?
particle i can't think of anything... at least nothing serious. we changed the test suite from .Integer to 'Integer' a long time ago 15:53
Coke I haven't researched it since the last time when i didn't get any replies. =-)
pmichaud so, try removing new_p_i and see what breaks. :-) 15:54
Coke I figured I'd slowly pull things out of trunk this time, if I could find any threads that weren't too deep.
pmichaud same for find_type_*
(new topic) is it appropriate to "bump" things on the mailing list to try to bring attention to them again? I'm thinking of my exceptions thread that has been warnocked since last week. 15:55
particle yes
Coke PIC breaks. 15:57
(removing that section...) 15:58
dalek r32385 | jonathan++ | rakon: 16:04
: [rakon] Rename Mutable to ObjectRef. This just does the rename everywhere, so should be nearly no breakage (sanity tests still all pass, checking spectest for anything missed).
diff: www.parrotvm.org/svn/parrot/revision?rev=32385
pmichaud excellent.
jonathan++
jonathan This was the easy step. ;-) 16:05
dalek r32386 | pmichaud++ | rakon: 16:06
: [rakudo]: Update MANIFEST.
diff: www.parrotvm.org/svn/parrot/revision?rev=32386
jonathan Ah, missed a couple of bits 16:08
pmichaud okay. next I'm thinking that infix:= goes back to being a function instead of a method.
jonathan Had two failing tests in spectest regression.
pmichaud (we can fix the missed couple of bits first)
jonathan OK, done them, just going to have a final re-run of spectest_regression. 16:09
One of them was in a bit of code we'll delete anyway. One of them wasn't.
dalek r32387 | jonathan++ | rakon:
: [rakon] Two missed references to Mutable, which caused a couple of spectest regression failures.
diff: www.parrotvm.org/svn/parrot/revision?rev=32387
pmichaud so, infix:= is a function that we call to do assignment. It's basically the same as what's currently defined in Object.pir, except no longer a method and we don't need to be checking for Mutable/ObjectRef 16:10
and I'm guessing it should move out of Object.pir, since it's no longer specific to Object. 16:11
jonathan Yes, into builtins, somewhere.
pmichaud there's already an assign.pir, I think
jonathan Yes, I think so.
moritz if the test suite catches misses in refactors, I (and all test suite hackers) can be proud ;)
jonathan moritz: I'd hate to be doing this refactor without a decent sized test suite. 16:12
pmichaud the test suite hackers can be proud regardless :-)
and what jonathan said
the test suite is a huge help to us here.
jonathan: do you want to do the infix:= adjustment or shall I?
jonathan pmichaud: I can do it. This is where everything breaks, I guess... :-) 16:13
pmichaud it's where things start to break, yes. we can do frequent commits. (more)
unfortunately, paula just added something to my schedule for the day, so if I'm going to have any lunch I have to do it now or else wait 6+ hrs
(I also have some other errands that must be done very soon.) 16:14
so I'm thinking I may disappear for about 90 mins but then will be back for the remainder of the day.
does that work? 16:15
jonathan Yes, it can.
So do you want me to push ahead with changing infix:= to a function? 16:16
particle jonathan: i can help
pmichaud yes, please.
particle what else needs doing?
pmichaud some things will probably break, but I think you can make progress.
jonathan OK. Did you have any of the !VALUE methods written?
pmichaud no
jonathan OK. So we're not going to switch to doing those again yet.
pmichaud I'm thinking we should be able to convert infix:= to a function without having to get !VALUE working yet. 16:17
i.e., and still be fairly close on passing existing tests.
jonathan OK. infix:= does different things right now depending on the LHS, which is decided by what we call the method on.
Does it become a multi sub?
pmichaud it can be a multi, but for now there would only be one.
the only way in which the LHS affects things now is to decide if it should dispatch to Scalar or to use the PIR version 16:18
since we're losing some of our Scalar stuff, it should matter less. 16:19
jonathan Array and Hash have infix:= methods that do fairly different things.
pmichaud oh.
jonathan From Scalar, that is.
.namespace ['Perl6Array']
.sub 'infix:=' :method .param pmc source $P0 = get_hll_global 'list' $P0 = $P0(source) $I0 = elements self splice self, $P0, 0, $I0 .return (self)
.end
erm, that's readable...but gives you an idea 16:20
pmichaud oh yes, they're coercing the rhs to a list.
that will change, but yes, for now they can be made multis
jonathan OK
Then we write the !VALUE and it's the thing that does the co-ercion to the list.
pmichaud yes/no.
eventually we'll end up with two infix:='s, neither of which will be called infix:= :-) 16:21
we'll have one for list assignment and one for item assignment
and the parser will determine which is called.
jonathan Ah, yes.
Is that something we're doing in this refactor too?
pmichaud for now we'll just mmd/cheat
jonathan hehe 16:22
pmichaud I still need to fix the parser so that it can recognize the two types of assignment.
jonathan OK
jonathan pushes that task firmly onto pmichaud's plate
pmichaud I'm thinking that will likely occur with protoregexes.
although I may implement a stopgap solution if it looks like protoregexes will be a bit longer than I like.
jonathan ok 16:23
particle so, if spectests pass, can rakon be merged to trunk after infix:= -> multi sub/
?
jonathan OK, we've got a clean spectest run from the renaming.
pmichaud: Did you start on the !VALUE methods at all?
pmichaud jonathan: only in my head. 16:24
jonathan pmichaud: If not and you're gone beyond me having done the infix:= changes, shall I do some of them?
pmichaud you can start on !VALUE if you want, yes.
jonathan ok, sounds good.
I'll leave you to do lunch.
pmichaud particle: there's a _lot_ of stuff that has to change as part of infix:=, so merging to trunk might be a bit premature.
particle ok, well we can merge NOW, to get the renaming in 16:25
pmichaud I'll leave that to you and jonathan to decide -- I don't think this will be a long-lived branch anyway.
particle i'm a big fan of merging frequently to reduce pain later
ok
jonathan particle: You can do it now if you like, I'll just continue working in the branch. 16:26
pmichaud I don't like the way most people do merges at the moment.
particle we're on svn 1.5 now, and don't need to do through the gyrations previously used
pmichaud most people seem to try to merge trunk updates into the branch prior to merging back to trunk -- I don't like doing that. 16:27
and after merging back to trunk, I tend to drop the branch and create a new one from trunk.
as opposed to continuing on in the current branch.
jonathan particle: If you can merge the branch as it is now into the trunk without affecting the branch, and it will make the fianl merge easier, you can do it. Otherwise, I'd rather you didn't. 16:28
distractions--
:-)
pmichaud that way I don't have to keep track of "what's already been merged in the branch and trunk?"
I find that except for long-lived branches or branches that deeply affect a lot of parrot, intermediate merges are more complex. I had that problem with the hllmagic branch a few weeks ago. 16:29
particle make sure you have svn 1.5* client 16:30
then it's not a problem, svn tracks what merged when automatically
see svnbook.red-bean.com/nightly/en/svn...rging.html for the details if you wish 16:31
pmichaud will do, later.
oops, before I go... I'm thinking that infix:= as a function might not work.
particle urk. 16:32
pmichaud let me work it through before I go.
the problem is that if the lhs is an ObjectRef to an Array or Hash, we don't want it to MMD to the Array/Hash assignment. 16:33
that's probably one reason why infix:= was a method before -- to avoid MMD issues. 16:34
jonathan Ah.
Hmmm...yes. 16:35
pmichaud let's make it a function anyway.
inside of the array/hash versions, we can check to see if the target is an ObjectRef and redispatch there.
jonathan OK. 16:36
pmichaud i.e., we'll let MMD play, but we may have to patch up MMD when it guesses wrong.
either that or we can just do our own "mmd" within a single infix:= function (no :multi)
*that* might be better for now.
jonathan That may be more desirable.
pmichaud let's do that.
at least all the nastiness will be in one place until we get around to doing list assignment.
jonathan In fact I was kinda hoping we might get away with calling infix:= in some cases as an optimization, in The Future.
But anyway, that's for later. 16:37
pmichaud right. okay, let's do it that way -- just a single infix:= function that handles all assignment
if the lhs is an ObjectRef, force scalar assignment
else if the lhs is an Array, then we place the rhs into list context and assign that
else it's a scalar assignment
(all of this is semantically wrong in several ways, but it's a cheat for now.) 16:38
jonathan Sure.
particle let's see what the tests catch us on
dalek r32388 | coke++ | trunk:
: [CAGE] Use of type ids is deprecated.
diff: www.parrotvm.org/svn/parrot/revision?rev=32388
pmichaud Hash gets treated like Array
jonathan *nod*
pmichaud okay, lunch for me, back in 90.
particle i'm not going to merge/delete/recreate branch now 16:39
jonathan OK, thanks.
particle i'm building parrot/rakudo now, will be able to help after running spectest 16:40
16:45 jan joined
particle jonathan: for container types on the lhs (Hash/Array) can we use a 'does' test for a role rather than checking 'isa' or 'can'? 16:45
jonathan Depends if there's a role exclusively done by mutable stuff like hashes that is distinct from what arrays do, etc. 16:46
Coke has a patch that removes new_p_i and new_p_i_p
particle coke: passes make test? 16:47
Coke ayup
only needed a few tweaks in t/pmc/pmc.t
particle ship it! see what the smokers think of it.
ah, parrot finally built in rakon branch. 16:49
Coke particle: committed. 16:50
purl The chicken is involved, but the pig is *committed*.
Coke svn seems happier today 16:51
dalek r32389 | coke++ | trunk:
: RT #48024 : remove [DEPRECATED] new_p_i and new_p_i_p.
diff: www.parrotvm.org/svn/parrot/revision?rev=32389
jonathan OK, moved over to infix:= function and whipped out the assign thing that Perl6Scalar did. Sanity tests all pass still. 17:01
17:01 masak joined
jonathan particle: I think the next commit is where plenty breaks. 17:05
Finding out just how much now... 17:06
particle ok, i'm still running spectests
my cpu is rather saturated with other tasks atm
disk too, for that matter
dalek bernhard.schmalhofer@gmx.de | Pipp: 17:08
link: www.perlfoundation.org/parrot/index.cgi?pipp
jonathan OK. 17:16
Damage not actually that bad.
Failed 8/211 test scripts. 29/6377 subtests failed.
particle wow
jonathan I was expecting worse.
Of course, I may always have done something wrong... ;-) 17:17
dalek r32390 | jonathan++ | rakon: 17:20
: [rakon] Move us away from having an infix:= method to having an infix:= function. Also rip out the usage of assign; we're just using copy now.
diff: www.parrotvm.org/svn/parrot/revision?rev=32390
Coke if type ids are being removed, does anyone see a point in keeping t/op/types.t? (esp if find_type is the next thing to go) 17:23
17:25 Theory joined
barney Shouldn't the copyright lines be changed to 'The Parrot Foundation' ? 17:25
Coke not yet. 17:26
eventually, that's the plan.
barney k 17:27
particle we're working on it, barney. in fact, i have some docs from our lawyer to review
nopaste "Coke" at 193.200.132.135 pasted "remove find_type opcodes" (1292 lines) at nopaste.snit.ch/14495 17:28
Coke apparently has the least interesting board position. woot. =-) 17:29
particle coke: the MANIFEST.SKIP patch looks unrelated, sholud commit that now 17:30
also, what about removing typeof?
Coke ... one thing at a time.
particle ok, just checking
Coke MANIFEST.SKIP is only updated because it's a generated file. I can revert it. 17:31
particle no, it needs to go in
i updated pirc metadata some time ago, didn't regen the skipfile
Coke ok. any problem removing those test files?
particle not that i can see
17:32 ruoso joined
dalek r32391 | bernhard++ | trunk: 17:35
: #60184: [CAGE] Change the name of 'stacktrace' attribute to 'backtrace'
: changed 'stacktrace' to 'backtrace'
diff: www.parrotvm.org/svn/parrot/revision?rev=32391
Coke particle: was missing an update, kjs already fixed that. 17:36
dalek r32392 | coke++ | trunk: 17:38
: RT #48024 : remove [DEPRECATED] find_type_i_p and find_type_i_s opcodes
diff: www.parrotvm.org/svn/parrot/revision?rev=32392
r32393 | jonathan++ | rakon: 17:43
: [rakon] Rip out assign vtable method that is now no longer used. Doesn't affect any test results.
diff: www.parrotvm.org/svn/parrot/revision?rev=32393
r32394 | jonathan++ | rakon: 17:47
: [rakon] Re-instate readonly check that we lost when we stopped using assign vtable.
diff: www.parrotvm.org/svn/parrot/revision?rev=32394
jonathan BTW, it seems we don't have any spectests that test that parameters to subs are readonly by default.
jonathan smiles at moritz 17:48
moritz can amend that later
jonathan w00t
is copy and is rw should both work too
17:53 Psyche^ joined
moritz jonathan: there's a test for that in S06-traits/misc.t 18:02
tewk_ :q 18:03
jonathan moritz++ 18:04
moritz but rakudo probably dies anyway because of eval issues...
jonathan Ah. :-|
moritz and if I move the variable inside the eval string, it fails for current (trunk) rakudo. 18:05
now changed in (pugs) r22902 18:06
afk &
18:13 gryphon joined
dalek r32395 | coke++ | trunk: 18:13
: RT #48581 - remove [DEPRECATED] vtable type_keyed_str
diff: www.parrotvm.org/svn/parrot/revision?rev=32395
particle coke: 18:14
-Return the type number of the PMC indexed by a PMC, integer, or string key.
+Return the type number of the PMC indexed by a PMC or integer key.
ORLY?
purl YA RLY.
particle s/integer/string/
18:15 ambs joined 18:16 ambs left
Coke particle: I removed the string one. 18:16
... no?
(new) any typeofs that return int are going, neh? 18:17
18:19 magnachef joined
particle oh, i misread. yah. 18:20
pmichaud back 18:21
jonathan pmichaud: w/b
pmichaud: About to commit a load of .VALUE 18:22
pmichaud: Then I suggest reviewing my patches. ;-) 18:23
pmichaud okay, great, I'll take a look.
Coke valid_type_i_i ? 18:24
that's covered by deprecated type ids, neh?
jonathan pmichaud: erm...ouch....I've managed to make one spec-test infinite loop 18:25
pmichaud jonathan: just one?
purl One is none.
jonathan So far and I'm into the S29 now. 18:26
It was an IO one.
I'll tell you how much I'm failing of spectest in a moment
All sanity still pass.
pmichaud okay. if it's an IO test that doesn't surprise me too much.
jonathan Aye, that area is rather messy still. 18:27
pmichaud I'm even willing to live with an IO regression if need be.
jonathan pmichaud: Overall so far, just tossing in the changes, not incredibly much broken. 18:28
Failed 10/211 test scripts. 43/6377 subtests failed.
On spectest_regression.
pmichaud excellent. go ahead and commit that, and I can take a look.
jonathan It's going in right now....done.
pmichaud wow, a lot more changed than I expected (at least by looking at files that changed) 18:29
dalek r32396 | jonathan++ | rakon:
: [rakon] Implement !VALUE for a bunch of times and start calling it when doing item assignment (e.g. not to a Perl6Array or a Perl6Hash).
diff: www.parrotvm.org/svn/parrot/revision?rev=32396
jonathan pmichaud: Mostly defining !VALUE on the things I think need it (e.g. value types) 18:30
moritz jonathan: should I open a ticket for sub foo($x) {$x++} not croaking?
jonathan moritz: Yes, I'm not sure how we solve that yet though. ;-)
pmichaud moritz: a ticket would be fine -- I expect we can fix that when we fix increment/decrement
(since those are broken too.) 18:31
jonathan: in assignment, we also need to do a check for definedness 18:32
jonathan Of the LHS?
pmichaud no, the rhs
jonathan Right. The LHS is vivified.
pmichaud so that $x = undef; works
jonathan Yes, you're right.
pmichaud if the rhs is undefined, we can skip the type check.
jonathan More than that. 18:33
If the RHS is undefined, we need to look at the type to potentially choose the correct proto-object.
pmichaud oh, do we have to do that? 18:34
jonathan my Dog $x; # $x is a Dog
$x = undef; # $x is now a Dog proto again
erm, it's a Dog proto on line one
I was assuming stuff happened in between. :-)
pmichaud I don't think that $x = undef forces it to be a Dog proto again. 18:35
$x = foo_that_fails();
jonathan I thought that it did, since it's an undefined instance of the type.
Oh, hmm.
Interesting values of undef in typed values...
pmichaud exactly.
jonathan I think this is why Failure is a role.
I think that's what the spec says anyway... 18:36
There's not meant to be an Undef type.
pmichaud from S02: Variables with non-native types can always contain undefined values, such as Object, Whatever and Failure objects.
jonathan OK
But still, what if you do $x = undef;
What do we stick in there?
An Object of course, can work...
pmichaud undef currently returns a Failure.
jonathan But it's inconsistent.
pmichaud or we can switch it to return an Object.
jonathan my Dog $x; # $x must be a Dog proto here 18:37
pmichaud sure, that's no problem.
my Dog $x is the same as my Dog $x = Dog;
my $x is the same as my $x = Object;
jonathan Yes.
pmichaud my Dog $x simply means that $x is constrained to hold a Dog, or an undefined value. 18:38
jonathan So my Dog $x; $x = undef; # you think shouldn't have an undefined Dog here as in the proto?
I thought I'd read/heard somewhere that's how it should work.
I may be confused and we only do it like that at the point of declaration though.
pmichaud I think it may have changed recently (in response to issues of how to increment a protoobject) 18:39
jonathan OK
So let's just skip the type check, anyway.
pmichaud correct.
jonathan Do you want to add that, or shall I? 18:40
pmichaud you can do it -- I'm still reviewing changes.
jonathan OK
Should we change undef to return Object? 18:42
pmichaud Object still needs some work on it.
jonathan Not that it matters for now...
OK
pmichaud yes, I think I'd prefer to get assignment working first and then we can revisit Object.
jonathan OK.
pmichaud I'm also hoping to get the vtable functions (get_bool, get_string, etc.) working properly
jonathan Yes. Not to mention increment, decrement... 18:43
pmichaud those are actually pretty simple -- I could probably go ahead and add them.
dalek r32397 | coke++ | trunk: 18:44
: RT #48024 - remove valid_type_i_i opcode, which depends on long [DEPRECATED] integer type ids.
diff: www.parrotvm.org/svn/parrot/revision?rev=32397
jonathan Put in the patch for undef. 18:45
pmichaud but I'll wait until we're done with assignment. :-)
dalek r32398 | jonathan++ | rakon:
: [rakon] Allow assignment of undef value always.
diff: www.parrotvm.org/svn/parrot/revision?rev=32398
jonathan Yes. Let's triage the things we (uh, I ;-)) broke.
pmichaud since ObjectRef isn't a subclass of Object, I don't think we need the check for it in Object.!VALUE 18:49
or Perl6Array.!VALUE 18:50
jonathan Yes, but since ObjectRef delegates all of its methods, this is where we end up when we do have an ObjectRef. 18:51
pmichaud oh, I see what's happening, though.
yes, you're right.
But cannot Perl6Array and Perl6Hash simply inherit from Object.!VALUE ?
i.e., do they need their own !VALUE ?
I'm think the general case is that they simply inherit from Object 18:52
the value types are the "special case", even though there are more of them in the builtins.
jonathan No, because Perl6Hash inherits from Mapping, which has value semantics and so returns itself. 18:53
So we have to re-override to get the reference semantics.
Hash isa Mapping isa Object 18:54
pmichaud actually, Mapping promotes to Hash
but yes, I get the point. 18:55
it's almost worth defining a special !VALUE method on ObjectRef that intercepts all of those cases. 18:56
jonathan Well, we'd have to hack it into find_method.
Because we override that at the moment... 18:57
pmichaud don't we already do something similar for Scalar/Mutable?
jonathan No.
pmichaud then how do readonly/rw work ? 18:58
(methods on ObjectRef)
(methods on ObjectRef, that used to be on Mutable) 18:59
18:59 mberends joined
jonathan We used MutableVAR to handle that case. 19:00
pmichaud okay.
jonathan Though now Perl6Scalar is going away, that does get interesting again. 19:01
pmichaud well, I think we'll still have a VAR of some sort
jonathan Sure. I think it'll do stuff with the properties hash.
pmichaud exactly.
and we'll still have something kinda like Perl6Scalar to be able to deal with parameters. 19:02
(I think.)
jonathan Yes.
pmichaud oh. 19:03
perhaps !VALUE in Object/Hash/Array/Mapping/List should just return .item() ?
I'm even curious if !VALUE and .item are in fact the same at some point. 19:04
I kept them separate for now and in the description simply so that we didn't trap ourselves into believing they were the same before we conclusively proved it. 19:05
but in those classes where they have the same semantics, we should probably go ahead and treat them that way.
jonathan I removed the call to .item and replaced it with .'!VALUE' in infix:=
pmichaud yes, that's correct.
that's what I want to do for now. 19:06
but perhaps Hash.!VALUE should really simply do .tailcall self.'item'()
jonathan OK. So we've got
(9 subtests UNEXPECTEDLY SUCCEEDED), 1503 subtests skipped.
Failed 10/211 test scripts. 43/6378 subtests failed.
pmichaud This is excellent. jonathan++
jonathan pmichaud: But it also needs to make a ref to it, or should .item do that too?
pmichaud well, yes.
jonathan OK. And .item in List also? 19:07
pmichaud yes.
jonathan OK
pmichaud want to do that first or fix the failures?
jonathan Let's do that.
pmichaud actually, I'd like to know what the failures are, first.
they might shed some light on the overall issue. 19:08
jonathan I can nopaste
pmichaud yes, please.
nopaste "jonathan" at 85.216.157.73 pasted "currently failing" (15 lines) at nopaste.snit.ch/14496
jonathan t\\spec\\S12-class\\declaration-order.t we can ignore
t\\spec\\S16-filehandles\\io_in_while_loops.t - was the one I thought was infinite. Turns out maybe it's not ;-) 19:09
pmichaud say.t and undef.t are the ones that we should look at.
and assigning-r
jonathan Yes. 19:10
pmichaud (updating and trying those to understand them better)
dalek r32399 | coke++ | trunk: 19:12
: Remove usage of [DEPRECATED] typeof opcode.
: This opcode wasn't even used. Be nice if we had a -w flag that warned us about unused register assignments.
diff: www.parrotvm.org/svn/parrot/revision?rev=32399
jonathan One is about array stringification. 19:13
ok4-saystringifiesitsargs
That's from say.t
It may be some of the other tests use that to check expected array output, so fixing that may fix others.
pmichaud I'm guessing that the arrayref isn't stringifying properly, then? 19:14
19:14 chromatic joined
jonathan The code is just 19:15
my $arrayref = <ok 4 - say stringifies its args>;
say $arrayref;
So yes, I suspect so. 19:16
pmichaud oh!
we probably need to fix flatten
I'm surprised we didn't get more failures.
chromatic TimToady, I just had a conversation with Al Aho. What a fascinating guy! 19:17
Coke chromatic: You're just jealous your nick isn't alliterative.
chromatic I can't float either. 19:18
jonathan pmichaud: Oh, good point. :-)
Coke man is make test noisy. :| 19:19
jonathan pmichaud: I'm just going to take a break for 20-30 minutes to eat the pasta/bolog I've just cooked up.
particle al came up in a phone conversation i had last night
pmichaud that works for me -- I'll keep looking at this stuff, and I need to run another errand quickly
so 20-30 mins is about right.
jonathan nice 19:20
dalek r32400 | coke++ | trunk: 19:27
: remove usage of [DEPRECATED] integer typeof opcode.
diff: www.parrotvm.org/svn/parrot/revision?rev=32400
Coke anyone know what t/op/01-parse_ops.t is testing? 19:29
(it has a reference to typeof; when I remove various typeof ops, the test fails, and it is unclear why. 19:30
chromatic If it's what I think it is, it tests that IMCC recognizes various ops. 19:31
Coke hurm. I wonder if I'm missing a generated file here. lemme start from scratch. 19:32
chromatic You need to regenerate Parrot::OpLib::core.
Coke doing a realclean; that should do it. 19:33
particle yep 19:34
Coke ... nope. wtf. 19:39
chromatic Also remove 'typeof' from %parse_errors in the test. 19:41
Coke chromatic: yes, but why? 19:42
typeof is still an opcode...
chromatic Wish I could tell you. 19:43
jonathan pmichaud: back 19:45
Coke chromatic: that's the fix, though. ah well. 19:50
TimToady chromatic: yes indeed # re: AA 19:51
pmichaud back also 19:52
jonathan pmichaud: Any luck fixing up !flatten? 19:54
pmichaud jonathan: I'm thinking I may want to re-do list/item/flatten
I did a trace on what we have now, and there's a lot of building and unpacking of lists taking place 19:55
one thing I'm thinking is that cloning an ObjectRef should not be delegated
i.e., it should actually clone the Objectref
(this is separate from doing $ref.clone(), which *would* invoke the clone method.
jonathan You mean VTABLE_clone, right?
pmichaud yes. 19:58
jonathan OK, I can do that.
Rationale? Are you expecting doing it to fix something? 19:59
pmichaud well, if I do $b = (1,2,3); $a = $b; then I expect $a and $b to refer to the same object 20:00
if we have ObjectRef's clone vtable simply create a clone of the ObjectRef (and not the underlying object), then we get exactly what we expect
jonathan Oh, yes 20:01
Working on it. :-)
pmichaud does it work to simply keep the VTABLE_clone from being delegated, similar to what we do for set_prop and get_prop? 20:02
or does it need its own clone entry?
jonathan I think it needs its own clone entry.
pmichaud okay.
I haven't written many PMCs so I'm never quite certain. :-)
jonathan Well, otherwise the fallback is to freeze and then thaw it, but that's likely going to freeze what it refers to as well, and means we also have to override freeze and thaw and...well, no. :-) 20:03
dalek r32401 | coke++ | trunk:
: remove [DEPRECATED] opcodes: typeof_i_p, typeof_i_p_ik, typeof_i_p_k, typeof_s_i
: which all depend on integer type ids. 20:04
diff: www.parrotvm.org/svn/parrot/revision?rev=32401
pmichaud clone should be simple to write at any rate :-)
and it might not work out in the long run, but it seems natural at this point.
jonathan pmichaud: Should it matter if I don't carry the properties across? Since when we then do copy we ignore them anyway... 20:07
pmichaud we don't want the properties.
jonathan ok
pmichaud properties are part of the PMC (container), not the value.
jonathan OK, testing the change. 20:08
pmichaud can you go ahead and commit so I can play?
also, did you notice that there's now a C<Nil> type? ;-) 20:09
jonathan Done 20:10
Coke chip has closed ticket # 55580. whee
dalek r32402 | jonathan++ | rakon:
: [rakon] Make clone vtable method on ObejectRef clone itself rather than delegating.
diff: www.parrotvm.org/svn/parrot/revision?rev=32402
PerlJam "rakon"? 20:11
jonathan Yes, it was part of the answer to some question I asked on Tuesday I fear.
pmichaud that's fine, I'm glad it's official now.
jonathan pmichaud: See, I told you that nobody would understand the branch name. :-P
pmichaud it's okay, more reason for us to keep it short lived 20:12
PerlJam It's just the first time I've seen it.
pmichaud "rakon" is short for "rakontainer"
which is the branch where we're fixing rakudo's containers.
PerlJam okay
Coke ... hurm. I don't see them removed. perhaps it'll take a day or two. 20:16
20:19 jan joined
jonathan pmichaud: That clone chagne did some...interesting...things to our test results. 20:20
pmichaud oh, I bet it did. 20:21
jonathan (10 subtests UNEXPECTEDLY SUCCEEDED), 1503 subtests skipped.
Failed 8/211 test scripts. 69/6378 subtests failed.
We fail less test scripts, but more individual tests.
PerlJam jonathan++ woohoo! :)
pmichaud that's quite a bit better than I expected. :-)
assignment and object semantics need a rethink -- perhaps from the ground up.
jonathan Erm, isn't that just what we've been working on? 20:22
pmichaud yes.
but I mean the whole item/list/flatten/etc methods
jonathan Ah, OK.
pmichaud: The new failure is t\\spec\\S29-num\\rounders.rakudo 1 256 36 72 1-36 20:23
pmichaud that looks simple to fix. 20:24
dalek r32403 | coke++ | trunk:
: RT #48579 -- remove [DEPRECATED] vtable type_keyed_int
diff: www.parrotvm.org/svn/parrot/revision?rev=32403
jonathan OK, good.
We have less failures.
pmichaud i.e., I suspect it's a trivial thing that causes all of the failures.
jonathan Still the one with stringification.
pmichaud I'm really quite surprised we have so few.
jonathan Me too.
pmichaud the stringification is definitely a flattening issue.
jonathan OK
That may be what it all boils down to.
Oh! I need to pop to the store before it closes...it's just nearby, so won't be long at all... 20:25
Coke smacks svn. 20:26
pmichaud no problem, it's going to take me a few minutes to get in the right mindset (and close off the bool discussion in #perl6) 20:29
chromatic I read "pop to the store" and thought "Oh dear, not another exception handler problem." 20:35
Coke push_eh cliff 20:36
masak it could be if he didn't push to the store first :)
cotto EXCEPTION_FOOD_NOT_FOUND
dalek r32404 | coke++ | trunk: 20:42
: RT #48577 remove [DEPRECATED] vtable type_keyed
diff: www.parrotvm.org/svn/parrot/revision?rev=32404
jonathan RESUME # have nom now 20:44
dalek r32405 | cotto++ | trunk: 20:47
: [pipp] make grammar slightly smarter about PHP tags, plus various minor changes
diff: www.parrotvm.org/svn/parrot/revision?rev=32405
20:49 gryphon joined
cotto grrr. I got an email confirming my commit, but the svn command still hasn't completed. 20:51
pmichaud that happens sometimes.
cotto yeah. It's just annoying.
masak then the email is wrong, no? 20:54
cotto The commit was fine. It's just that my local wd didn't get updated. 20:55
pmichaud there's a handshake problem between perl.org's svn server and svn clients 20:57
the svn server finishes the commit, but the client never gets back a response saying "okay, server's finished"
so it just hangs there, or comes back with a "200 OK merge failure" or any of a number of oddities
21:05 purl joined
Coke long standing issue; there was a ticket open for a long time, but was closed because it hadn't happend in a few months. 21:06
tewk_ I'd say its 1/100 commits maybe less 21:07
Coke I see smolder.plusthree.com/app/public_pr...st_failure ... seems to be already fixed. 21:14
tewk_: are you committing from feather?
(on feather, it's happening about 8/10 atm.)
jonathan pmichaud: Well, I think we've just enumerated about every possible way to do the boolean stuff on #perl6... ;-) 21:16
Coke seen allison? 21:17
purl allison was last seen on #parrot 2 days, 2 hours, 6 minutes and 17 seconds ago, saying: heads to airport [Nov 4 19:11:15 2008]
pmichaud I'm thinking we just implement what makes the most sense to us for now, and let the test suite resolve any outstanding issues. 21:18
if it doesn't show up in the test suite, it's not really part of the spec. :-)
jonathan ;-) 21:19
Yeah, but after that discussion, I'm not sure what makes most sense any more. ;-)
particle be true to your bool! 21:25
Coke seen kjs? 21:28
purl kjs was last seen on #perl 136 days, 5 hours, 55 minutes and 27 seconds ago, saying: yo [Jun 23 15:33:30 2008]
Coke seen kj?
purl kj was last seen on #parrot 6 hours, 35 minutes and 36 seconds ago, saying: tewk++ # pirc builds on win *and* linux
Patterner true. false. filenotfound. 21:29
Coke see WhiteKnight? 21:36
seen WhiteKnight?
purl WhiteKnight was last seen on #parrot 22 hours, 39 minutes and 22 seconds ago, saying: a little too ambitious, as it turned out
jonathan pmichaud: How's flattening the bug going? 21:37
pmichaud pretty good -- just working through a few items 21:38
jonathan Great.
21:38 Aisling joined
pmichaud I'm sure I'll have it today/tonight somehow. :-) 21:38
that'll clean up a bunch of bugs
jonathan OK, great. 21:39
Is that going to be the majority that now fail, do you think?
pmichaud majority of what? ;-)
jonathan Majority of the ones in our branch! 21:40
pmichaud oh, yes, but I'm also talking about fixing a bunch of bugs in the test suite in the process
e.g., my $h = { a=>1 }; $h = 3; will end up being fixed.
jonathan Ah, I see.
Is that mistakes in the tests, or mistakes in our implementation? 21:41
pmichaud in our implementation.
jonathan OK
That example should just end up with $h holding the integer 3, right?
21:41 rdice_ joined
pmichaud yes. 21:41
jonathan OK.
pmichaud what happens at the moment (in trunk) is that $h has a Hash, so infix:= ends up trying to do a hash assignment.
in the branch $h will be an ObjectRef, so it'll just be replaced by the 3.
Coke is there some way to make 'make test' just stop whenever a test expected to pass fails? 21:42
jonathan ah, yes, that'll be better 21:44
pmichaud: So is there anything in particular in the branch you want me to look at, or should I leave you to flatten? 21:49
pmichaud I think you can leave me to flatten -- that's what I'll be doing tonight. Should have it done before you get up tomorrow. :-) 21:50
jonathan OK
pmichaud if things look clean, I'll merge to trunk.
jonathan Gotta get up early to head over to Vienna for day 1 of TCPW.
Mind if I send you over my patch for if foo() -> $x { ... } to see if you can make anything of what on earth is going wrong? 21:51
pmichaud sure, that'd be great. I might not be able to look at it until tomororw.
jonathan It works fine...until you write another statement (like a say) after the if block!
pmichaud I'm also interested in getting Junction fixed up a bit -- some of the patches that have been applied there are pretty suspect. 21:52
jonathan I'd rather just bite the bullet and fix dispatch.
pmichaud that could be done also. :-)
jonathan And then we can toss all the stuff that attempts to do it some other way.
I actually had written that as one of the things on the grant application I'm working on. 21:53
pmichaud getting that dispatch to work would be a big help, definitely.
jonathan Big bunch of stuff on dispatch, including sub methods too, which are in the same problem space.
Was going to put parametric roles on there too. 21:54
22:01 magnachef joined 22:03 TiMBuS joined 22:10 slightlyoff joined, slightlyoff left 22:13 contingencyplan joined, TiMBuS joined
jonathan moritz: Is it you that does the graph of Perl 6 test results for Rakudo? 22:14
moritz jonathan: yes
jonathan moritz: plz i can haz url?
moritz rakudo.de/
jonathan wants to put it in his talk for Twin City
pmichaud I haven't done any updates in a couple of weeks.
I'll do that tonight.
you can also get a graph from pmichaud.com/perl6
jonathan is that one any more up to date?
pmichaud it will be tonight :-) 22:15
jonathan ah, ok
I'll put the latest one in and try to update it tomorrow
moritz it's auto-generated from docs/spectest-progress.csv every 6 hour or so
pmichaud if you look at www.pmichaud.com/perl6/rakudo-tests...-10-23.png you'll see that I've changed the graph slightly 22:16
jonathan What's RSkip vs SSkip?
pmichaud the grey represents "total number of spectests"
Coke touches rakudo.
pmichaud the yellow represents "tests in spectest_regression"
moritz at least in the stacked graph
jonathan And the grey represents all spectests? 22:17
pmichaud so rskip is "tests skipped in regression suite" and sskip is "tests skipped outside of regression suite"
dalek r32406 | coke++ | trunk:
: bare .namespace is [DEPRECATED], use .namespace []
diff: www.parrotvm.org/svn/parrot/revision?rev=32406
pmichaud so I can see how quickly the entire spectest suite is growing, as well as the regression part
jonathan OK, makes sense.
pmichaud as of 10-23, we had about 9k tests in spectest
there's about 5k+ tests in the regression suite 22:18
we pass around 4400 of those.
jonathan OK, thanks
jonathan wonders what it is by now
pmichaud (er, 6k tests in regression suite)
I've already started the updates.
jonathan Thanks!
pmichaud it takes a bit of time to run them day-by-day 22:19
jonathan Oh, you run for each day? OK!
chromatic I'm working on a program that lets you schedule tasks. It might be nice.
jonathan hopes the latest graph has a bit more of an upward slope at the end
moritz it might be cron, not nice
pmichaud I've thought about doing that, but I like watching it manually
sometimes I catch things that prompt me to file tickets 22:20
I fear that the latest graph is probably somewhat flat -- hasn't been a lot of progress lately.
chromatic Not since the last release anyway.
pmichaud if I can get containers working in the next 5 hrs then we'll see an upward tick at the end :-)
chromatic I was just idly wondering if it's automatable. If it's not, then we have a problem. If it is and you prefer it this way, not a problem. 22:21
jonathan Levelled out at 25th September. ;-)
pmichaud I'm sure it can be automated -- I have a script that does most of the work. I just prefer manual for the moment.
jonathan Oh no, a bit later.
:-)
Coke if perl6 & nqp pass their tests, is it safe to close out '.namespace' vs. '.namespace []' ?
(in addition to 'make test', of course.)
jonathan Coke: It's had a deprecation cycle, I assume? 22:22
Coke yes.
pmichaud Coke: I think so, from a rakudo/nqp perspective. I don't know if any other languages are still using .namespace anywhere
jonathan I'd imagine so, then.
Coke =item * C<.namespace> (without brackets) [post 0.6.2]
jonathan Coke: Did a quick grep of the repo for .namespace\\n give anything?
Coke ... I think the "from a rakudo/nqp perspective" was obvious. I was asking for a slightly larger concensus. =-) 22:23
in the ticket, the concern was that it would break PCT; if those 2 are working, PCT isn't broken, neh?
pmichaud if those 2 are working, PCT is likely fixed. 22:24
Coke nicholas++ 22:25
22:29 slightlyoff joined 22:31 slightlyoff left
Tene Feels like I might be starting to swing back towards parrot hacking again. Maybe. 22:33
Which is good, as I'm off of work next week.
dalek r32407 | coke++ | trunk: 22:42
: RT #48549 [DEPRECATED] [PDD19] .namespace requires brackets
: Force .namespace to require brackets instead of allowing a bare directive.
: Fixup PCT to emit this (verified that nqp and perl6 still pass all tests)
: Update the documentation, fix the one core test that used the syntax.
diff: www.parrotvm.org/svn/parrot/revision?rev=32407
22:43 TonyC joined
pmichaud I'm wondering if the 'key' method in CodeString should return "[]" 22:44
instead of testing for '' explicitly in PCT
Coke pmichaud: it -is- returning [""]
PCT has a code path that doesn't use the .key() method.
pmichaud that path needs fixing then 22:47
Coke very likely. I took the patch of least resistance.
;)
it occasionally is using outerns = get_global '$?NAMESPACE' 22:48
as the string to put in the parrot .namespace directive.
pmichaud we should default that to '[]' then 22:49
i.e., $?NAMESPACE should be initially set to '[]' 22:50
then we don't end up with the case of it being an empty string.
Coke ok. have a fix. testing... 22:51
perl6.ops:63: warning: request for implicit conversion from 'void *' to 'struct PMC *' not permitted in C++ 22:54
chromatic That should be mem_allocate_typed, I think.
I meant to comment on the patch.
jonathan chromatic: Ah, yes, I expect you're right. 22:55
C++. So not a superset of C. :-) 22:56
chromatic C++ has more of a type system.
Coke pmichaud: fixed.
... as soon as svn complies.
pmichaud Coke++
jonathan chromatic: Yes, and BCPL had less of one... ;-) 22:57
jonathan wonders if anyone else encountered that languag
*language
chromatic C's type system comes from PDP assembly more than anything else.
dalek r32408 | coke++ | trunk:
: [PCT] default our NAMESPACE to the parrot representation of the top level NS so we don't have to do a fixup later.
diff: www.parrotvm.org/svn/parrot/revision?rev=32408
Coke chromatic: the type_ids branch is officially useless at this point, I think. =-)
(though trunk is still missing your fixup to remove '.Integer' and friends.) 22:58
chromatic: mind if I delete the branch?
(your patch is attached to a ticket somewhere.)
chromatic Go ahead.
That's an IMCC patch, right? 22:59
pmichaud jonathan: how hard would it be for us to implement 'is also'? 23:00
Coke chromatic: a bit, plus updates to anyone using .const .Sub 23:01
chromatic If you send me the ticket number, I'll try it on trunk.
pmichaud is the .const .Sub replacement syntax implemented yet?
chromatic I think I switched it to .const 'TypeName'
23:01 johbar joined
Coke pmichaud: It was part of the patch, IIRC 23:01
pmichaud okay.
I know that when I tried it in trunk it didn't work yet. 23:02
Coke chromatic: rt.perl.org/rt3/Ticket/Display.html?id=48024 23:03
chromatic Thanks!
23:04 PerlJam joined
dalek r32409 | coke++ | type_ids: 23:04
: Deleting crufty branch
: A lot of this work has now been applied to trunk, and most of what hasn't is
: available as patches (chromatic++) in RT. The branch itself hasn't been
: updated from trunk in some time.
diff: www.parrotvm.org/svn/parrot/revision?rev=32409
r32410 | pmichaud++ | rakon:
: [rakudo]: Clean up !flatten, !VALUE, and item in List/Array.
: * This resolves quite a few spectest failures for the branch.
diff: www.parrotvm.org/svn/parrot/revision?rev=32410
jonathan pmichaud: Not massively massively hard, but not trivial either.
I pretty much know how to do it. 23:05
Or at least, don't have any bits that I think would be incredibly hard.
To be able to add methods, it's easy. 23:06
Attributes are harder - I think the consensus was that it was meant to affect existing instances.
jonathan tries pmichaud's patch to see how much it fixes 23:07
Coke hey ack? I hit control like 30 seconds ago, mkay?
control-C even.
23:08 wolverian joined 23:09 pmichaud joined, leo joined
Coke is that a real leo sighting or a netsplit? 23:10
masak can netsplit produce fake leo sightings?
chromatic How can you tell when his birthday is anyway?
Coke when he returns and the opbots op him, yes.
masak ah. 23:11
Coke by that logic, I'm leo.
masak :)
I'm not.
jonathan pmichaud: Did you see my reply to your question about is also? 23:13
pmichaud jonathan: lost in the netsplit
dalek r32411 | coke++ | trunk: 23:14
: this op is [DEPRECATED]; make it squawk under './parrot -w'
diff: www.parrotvm.org/svn/parrot/revision?rev=32411
jonathan 00:04 <@jonathan> pmichaud: Not massively massively hard, but not trivial either.
00:05 <@jonathan> I pretty much know how to do it.
00:05 <@jonathan> Or at least, don't have any bits that I think would be incredibly hard.
00:06 <@jonathan> To be able to add methods, it's easy.
00:06 <@jonathan> Attributes are harder - I think the consensus was that it was meant to affect existing instances.
00:07 * jonathan tries pmichaud's patch to see how much it fixes
pmichaud I just need to add methods.
jonathan Oh. That's easy.
pmichaud in particular, I'd like to start writing the builtins in Perl 6.
'is also' is one of the few remaining obstacles. 23:15
Coke anyone else having feather time out on them?
s/time out/freeze/ 23:16
pmichaud me.
Coke locks up for seconds at a time. annoying.
jonathan Just should check with Allison if we are allowed to change the default semantics of Class PMC to have the classes open.
Or if she'd rather you had to pass in a flag saying they should be. 23:17
chromatic I thought that was the default semantic.
pmichaud I'm not sure I need even that.
I just want a method definition to generate the correct PIR 23:18
i.e., so that the resulting method goes into the correct namespace.
the builtins will undoubtedly be precompiled
jonathan Oh, so it may not be modification after instantiation. 23:19
In that case it's even easier. :-)
At least, to get something that basically works.
pmichaud basically I just need 'is also' to suppress generation of any code that creates the class (because it already exists)
-or-
it could go ahead and attempt to generate the class by silently fail. 23:20
s/by/but/
nopaste "pmichaud" at 76.183.97.54 pasted "current failing tests in rakon branch" (10 lines) at nopaste.snit.ch/14499 23:21
jonathan I prefer the first option.
(feather has issues...)
OK, 5 test files with regressions. 23:22
pmichaud I count 6.
jonathan t\\spec\\S12-class\\declaration-order.t doesn't count
It fails in trunk too 23:23
pmichaud right, I wasn't counting that.
jonathan oh, hmm
I just did a spectest_regression with your patch and got one less failing...hmmm
pmichaud but I suspect that S29-list/pick.t depends on random numbers.
so sometimes it fails and sometimes it does not.
jonathan No, I'm missing t/spec/S29-conversions/ord_and_ch
pmichaud did I fail to commit? 23:24
no, svn just messed up on my end.
jonathan I don't think so - I got chagnes to Array and List when I did svn up
And see less failures. 23:25
Just ain't geting that particular one.
pmichaud ah, ranges are having problem. 23:27
oh, maybe not. 23:28
hmmm.
23:29 bacek_ joined
pmichaud grrrrr 23:29
it looks like a make test harness issue again 23:30
if I run ord_and_chr directly it runs fine 23:31
if I run via "make t/spec/S29-conversions/ord_and_chr.t" it segfaults after test 54
23:32 davidfetter joined
jonathan :-| 23:32
pmichaud so I'm guessing that's not a real issue.
Coke t/pmc/fixedinterarray.t has some tests that use a deprecated opcode -and- the deprecated .FixedIntegerArray - anyone see an issue with removing those tests? 23:33
jonathan Ah, OK. Annoying though. :-(
chromatic Does the Makefile add any Parrot flags?
pmichaud chromatic: not as far as I know.
Coke be interesting to see if it fails with parrot and --runcore=gcdebug 23:34
particle pmichaud: is 54 the final test?
run the test outside the harness, then check the proc error code
davidfetter nin hao 23:35
masak nin hao, davidfetter. ni hao ma? 23:36
davidfetter hao le 23:37
davidfetter now just about out of mandarin
anybody else in beijing atm?
Coke ->
particle i'd be amazed if you were the only one in beijing atm, davidfetter
masak :)
davidfetter heh
23:38 dalek joined
davidfetter i should have been more specific, i suppose 23:38
23:41 kj joined 23:43 d4l3k_ joined
d4l3k_ r32412 | pmichaud++ | rakon: 23:44
: [rakudo]: circumfix:<[ ]> returns an ObjectRef
diff: www.parrotvm.org/svn/parrot/revision?rev=32412
cotto "200 OK" is not an error 23:48
23:49 PerlJam joined 23:50 pmichaud joined, d4l3k_ joined
pmichaud feather is definitely having issues. 23:51
Tene I can't get parrot to stop segfaulting on feather3 23:54
so no polyglotbot