Parrot 0.6.2 "Reverse Sublimation" Released | parrotcode.org/ | 18/672 new/open tix | logged in irclog.perlgeek.de/parrot/today
Set by moderator on 24 May 2008.
00:01 cognominal joined 00:08 Zaba_ joined 00:10 AndyA joined 00:14 cognominal joined 00:36 bacek joined
bacek morning... 00:39
00:42 rdice joined
japhb msg NotFound Glad to hear triangle spins in c++ build! What platform/compiler are you using? 00:46
purl Message for notfound stored.
00:48 root joined 00:53 AndyA joined 01:06 Zaba joined 01:28 Whiteknight joined 01:31 ank joined, cognominal joined 01:32 Zaba_ joined
Whiteknight purl message? 01:33
purl Perhaps you mean "messages", or "message nickname blah blah", or "messages help", or.. eh, just forget it.
Whiteknight message ewilhelm Hey eric, I don't think the psoc aggregator is working: it hasn't updated since the 25th, and I know i've been blogging almost daily since then. 01:34
purl Message for ewilhelm stored.
01:40 braceta joined 01:56 kid51 joined 02:00 Zaba joined
tetragon kid51: Have you seen #55074? It's related to an OS X configuration issue (namely that not everyone uses darwinports). 02:04
02:28 pmichaud joined
kid51 tetragon: Yes, I'm preparing it for application now. 02:31
dalek r27951 | jkeenan++ | codetests: 02:33
: Implementing suggestion by pmichaud in
: rt.perl.org/rt3/Ticket/Display.html?id=54992: --code option to
: t/harness to run file metadata and basic coding standards tests, rather than
: separate script.
diff: www.parrotvm.org/svn/parrot/revision?rev=27951
pmichaud kid51++ 02:35
dalek r27952 | pmichaud++ | mutamerge: 02:36
: [mutamerge]:
: * Fix up VTABLE_isa and VTABLE_does for Mutable PMCs.
diff: www.parrotvm.org/svn/parrot/revision?rev=27952
japhb kid51: What OS X variants (CPU/bits/version) do you have? I'm feeding the bot. 02:43
02:47 davidfetter joined
kid51 10.4 ppc 02:53
I take it you mean what type of Mac I have myself? 02:54
... or do you mean the darwin variants we need to test particular RTs?
... such as rt.perl.org/rt3/Ticket/Display.html?id=52214 02:55
purl nopaste? 02:56
purl well, nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or paste.husk.org/ or poundperl.pastebin.com/ or paste.scsys.co.uk/ or don't bother me while I'm eating or App::Nopaste or tools/dev/nopaste.pl
nopaste "kid51" at 70.107.13.195 pasted "My Mac" (2 lines) at nopaste.snit.ch/13121 02:57
tetragon My i386: pgbuildfarm.org/cgi-bin/show_log.pl...2012:21:03 03:01
shorten tetragon's url is at xrl.us/bmauq
nopaste "tetragon" at 69.196.141.26 pasted "My PPC" (12 lines) at nopaste.snit.ch/13122
03:10 kid51 joined
dalek r27953 | jkeenan++ | trunk: 03:10
: Applying patch submitted by Seneca Cunningham in
: rt.perl.org/rt3/Ticket/Display.html?id=55074: directory variable truth
: check in handle_darwin_for_macports(). Add tests to
: t/steps/auto_readline-01.t to cover this condition.
diff: www.parrotvm.org/svn/parrot/revision?rev=27953
03:16 Zaba joined 03:18 Theory joined
bacek pdd09? 03:42
03:42 cognominal_ joined
bacek stupid bot... 03:42
purl it has been said that stupid bot is www.terrybisson.com/meat.html
bacek pdd?
purl it has been said that pdd is the Perl Developer's Dictionary, clintp's latest project and at www.amazon.com/exec/obidos/ASIN/0672320673 or Parrot Design Document, found in docs/pdds
04:11 Zaba_ joined 04:29 tetragon joined 04:30 davidfetter joined
cotto_home particle, ping 05:48
nm 05:50
05:53 Zaba joined
cotto_home mke? 06:07
dalek r27954 | pmichaud++ | mutamerge: 06:22
: [mutamerge]:
: * Keep getprop, setprop, etc. properties with the mutable itself.
diff: www.parrotvm.org/svn/parrot/revision?rev=27954
r27955 | pmichaud++ | mutamerge: 06:23
: [mutamerge]:
: * Clean up some variable, trait, and type handling in actions.pm .
diff: www.parrotvm.org/svn/parrot/revision?rev=27955
06:26 bigal joined
bacek pmichaud, why latest commit in branch? 06:46
pmichaud I'm working on merging jonathan++ 's mutables work into trunk. But I'm doing the merge in a branch in case it doesn't work out. 06:48
bacek ok 06:49
jonathan morning all 06:58
purl afternoon, jonathan
pmichaud good morning, jonathan 07:01
jonathan Just about to leave for the venue. 07:02
07:13 kdc joined
jonathan arrives 07:28
pmichaud: If you are using setprop etc to set the type on the mutable, why are you then having them forwarded?
pmichaud I'm not having them forwarded. 07:29
they were being forwarded before my change in r27954
jonathan r27945 looked that way...let me look again.
Oh man, are you relying on my hacky Perl script's stupidity to not know about comments?! 07:30
pmichaud so far, yes. :-)
jonathan :-O
That's sick.
:-)
pmichaud I do some sick things from time to time. 07:31
I'm still getting a variety of segfaults
jonathan Even with -G?
pmichaud so what I thought I would do is to complete the merge, but with a simple switch so that we can use either the existing non-Perl6Scalar version or the Mutable
then we can keep playing with Mutable in trunk, without that being the default 07:32
jonathan OK
Hmm
How many are you getting, and where?
pmichaud just a sec, I'll try spec_regr again
"make test" still passes. 07:33
jonathan Weren't we down to just one failing test earlier? 07:34
pmichaud I think I'm still at one failing test (the same one)
but things fail when we start doing my Int $a;
(which spectest_regression isn't doing much of.)
jonathan Grrr. 07:35
pmichaud Grrr?
purl woof!
jonathan I had got that to work nicely in my original branch.
To the point that with roles and constraints it was more correct than trunk. 07:36
Hmm
pmichaud I haven't changed *that* much of the code.
jonathan Your hack is too evil.
perl6scalar.obj : error LNK2001: unresolved external symbol _Parrot_Mutable_setp
rop 07:37
Breaks the build on Win32
Unless you have uncommitted fixes?
pmichaud not for that.
...how could we end up with an unresolved extern? 07:38
unless it shows up in the .h file but not the .c
make clean, perhaps?
jonathan yeah, sorry, didn't do make clean 07:39
works now
OK, you switched to storing the type with setprop 07:40
?
Rather than giving a parameter to new that provided the init into?
s/into/info/
pmichaud yes, for a variety of reason
s
jonathan OK, where to properties get put now? 07:41
pmichaud getprop and setprop :-)
jonathan Which sticks them....?
pmichaud in a hash
every PMC has a properties hash
(or _can_ have one, if setprop is used)
jonathan OK, so ATTR PMC *properties; is now redundant and we should be doing lookups through a vtable call now? 07:42
the problem you're running into
Is that init_pmc sets up various things
But you're providing the type info too late now.
pmichaud oh, I have a change for that.
(uncommited)
jonathan ok 07:43
pmichaud here, I'lll commit.
jonathan ok, thanks, I'll have a look
dalek r27956 | pmichaud++ | mutamerge:
: [mutamerge]:
: * More conversions for 'type' property and Mutable initialization.
diff: www.parrotvm.org/svn/parrot/revision?rev=27956
pmichaud (I get quite a few failures in the mutablerakudo branch, fwiw) 07:44
jonathan Sure, there were 4-5 spectest_regression that failed
I wasn't sure how much of that was being behind on changes to trunk, though.
pmichaud about 8 now. Right.
the PMC parameter to 'new' is now the initial value for the Mutable 07:45
as opposed to a properties hash
jonathan Ah, OK 07:46
That un-does the "is it a proto-object" logic, but I can put that back later. 07:47
pmichaud well, I know when it's called that we have a proto-object, at least at this point.
I haven't figured out when we end up with a Junction of types. 07:48
(i.e., what Perl 6 code produces it)
jonathan $( $<typename>[0] ) - might be a role or subset too
In which case we need to store an undef
Oh, you took out the junction stufff? 07:49
pmichaud it's easy to put back
jonathan Sure.
pmichaud (it's still there at the bottom)
jonathan OK
It's for
my Mouse Explosive $danger_mouse;
Like, it has to be an instance of Mouse and do the Explosive role. :-)
pmichaud and in that case it's initialized to undef also? 07:50
jonathan It's <typename>* in the grammar to let you have many
Yes
If the thingy isa proto-object, it's initialized to that.
pmichaud okay. I think we should do that logic in actions.pm instead of Mutable
jonathan Yeah, eventually it needs to interact with a class registry too.
So for that it needs to be in actions.pm.
I just stuck it in the pmc_new for the time being, since it was easy. :-) 07:51
pmichaud I think Mutable should simply initialize to a value, or be undef.
jonathan If you have my Foo $x, and Foo is a proto-object, it initializes to that.
Otherwise, it's undef.
pmichaud I'm also wondering if perhaps Mutable shouldn't initialize value at all, but simply keep track of the initial type somewhere to use if it's accessed before assigned 07:52
jonathan I'm pretty sure that was the upshot when I asked for clarifications on p6l about this.
Could be an optimization, yes.
pmichaud well, I'm not sure it's an optimization
since basically every vtable method has to check to see "am I initialized?"
jonathan Hmm, true.
Yeah, you're right.
Maybe we shouldn't do that. :-)
BTW, the changes to VTABLE assign method are a tiny bit suboptimal. 07:53
pmichaud what would be really cool would be to have an object that replaces itself upon initialization :-)
jonathan Because if you have an untyped variable, it goes to the properties hash every time.
But let's get the semantics right first, anyways. 07:54
pmichaud yes, I hadn't quite worked out how I wanted to get around that.
jonathan Well, it makes typed variables more efficient than untyped. ;-)
pmichaud well, not really :-) 07:55
because a typed variable calls DOTYPECHECK
jonathan True. :-)
pmichaud and I guarantee that's likely to take longer than the property lookup :-)
jonathan Also true. :-)
pmichaud we could possibly make a NULL vs. PMCNULL distinction
jonathan Mwahaha. 07:56
purl mwahaha is probably at jerkcity.com/jerkcity1983.gif
pmichaud i.e., initialize it to NULL, then on first assign change it to PMCNULL
jonathan Evil. :-)
But I like it.
It's fine by me, provided we put a comment in explaining.
pmichaud it's nice to have so many sentinels to choose from :-)
jonathan OK, so how far do you feel we are off mergning? 07:58
I know it will break stuff in trunk (parameter type checking etc) that I want to demonstrate in my talk this morning.
pmichaud is the stuff in trunk currently working?
i.e., after the changes I did the past couple of days?
jonathan And I'm going to be inviting people to check out trunk and make their own Rakudo.
Yeah. With -G. :-S
pmichaud weird. 07:59
well, that's gotta be all parrot bugs then, because trunk isn't using any custom PMCs beyond perl6str
jonathan Oh, hmm
It was yesterday.
pmichaud it's not working now?
jonathan yeah, but I didn't remember doing svn up 08:00
pmichaud (merge, long story): 08:01
bacek PHP is a minor evil perpetrated and created by incompetent amateurs,
whereas Perl is a great and insidious evil, perpetrated by skilled
but perverted professionals.
pmichaud I'm not sure how long it will take us to chase down the various segfaults. It could be simple, but it could also be a while
jonathan OK
I'm not sure, where they are happening
pmichaud so that's why I was aiming towards the "easily switch between Mutable and non-Mutable implementation" approach
jonathan Oh, I see the breakage - Perl6Str does odd things with ACCEPTS 08:02
sub foo(Int $x) { say "ok" } 08:03
foo(42)
ok
foo(4.2)
Parameter type check failed
It's some issue specific to string type. 08:04
pmichaud I'm not seeing where strings enter in to this.
jonathan foo("hi") # incorrectly works
Ah, my original example was with foo("hi")
bacek just read gc_gms_*...
jonathan I think let's see why the segfaults 08:05
Try and find them quickly, if possible.
08:05 cognominal joined
pmichaud okay. I was going to go ahead and finish up my Mutable switch. 08:05
jonathan I'm scared, of breaking trunk then telling people to check it out. ;-) 08:06
pmichaud well, I'm not in rush to merge right now
jonathan OK
Which tests are segfaulting?
pmichaud it can wait a day or so
jonathan Or simple test case?
Ok, great. I can work on the segfault between talks.
pmichaud no tests are segfaulting (more)
> my Int $a; say $a.WHAT; 08:07
Int
> my Int $a; $a = 3; say $a.WHAT;
[oops; continuation 0x83375a8 of type 22 is trying to jump from runloop 571 to runloop 50]
Unknown PMC type to thaw 0
>
(segfaulting being a generic term for "totally unexpected behavior") 08:08
jonathan Oh, not realy segfault. 08:09
pmichaud well, I see those from time to time also. 08:10
jonathan Ugh.
It's still there with -g?
er, -G
pmichaud I'm running with -G now, and yes, still there with -G
jonathan ok, at least it's not just GC bug then
pmichaud hmmmm 08:11
> my Int $a; _dumper($a);
"VAR1" => PMC 'Int' { ... } with-properties: Hash { "type" => PMC 'Int' { ... }
}
okay, that's what I expect.
but
> my Int $b; $b = 3; _dumper($b);
"VAR1" => PMC 'Int' { ... }
>
is not what I expect. The properties disappeared.
jonathan Odd 08:12
08:12 iblechbot joined
pmichaud oh, it's not doing the :multi(Perl6Scalar, _) like it was earlier 08:13
jonathan Ah, OK 08:15
I just went through the properties code in default to check that it doesn't call any vtable functions we are forwarding.
pmichaud it doesn't, does it? 08:16
(I looked it over, but didn't think about those having vtable calls of their own)
jonathan No, it doesn't from what I can see. 08:18
It would have been a logical source of the problem (e.g. it was setting the props on the value), but it seems to not be that.
pmichaud actually, I think dumper is lying to me
that it's still a Scalar
and still has properties 08:19
jonathan Ah
How so?
pmichaud just a sec 08:20
(preparing nopaste)
jonathan ok 08:21
pmichaud oh 08:22
I got a segfault
actually, a failed assertion. 08:23
nopaste "pmichaud" at 76.183.97.54 pasted "failed assertion" (48 lines) at nopaste.snit.ch/13124
pmichaud it's somewhere in _dumper. 08:25
jonathan $P2 = new 'String'
$P2 = 'xyz'
setprop $P0, 'type', $P2
That looks bogus.
pmichaud how so? 08:26
jonathan type is not expected to be the name of the type
It's meant to be a proto-object, role or subset type
pmichaud ohhhhh
duh
jonathan $( $<typename> ) gives those :-)
pmichaud you're right
I was testing something different
(which won't work)
jonathan All the same, it shouldn't fail that nastily.
pmichaud and it shouldn't fail prior to the assign. 08:27
(which it does.)
because all I'm doing is setting a property.
jonathan yeah
pmichaud we don't actually *do* a typecheck until the assign.
jonathan Right.
So it shouldn't matter until then.
pmichaud I think it's a bug in dumper, actually 08:28
nopaste "pmichaud" at 76.183.97.54 pasted "failed assertion trace" (23 lines) at nopaste.snit.ch/13125
pmichaud "clone S1, S0"?!? 08:29
oh, I see where it's coming from. something's null.
jonathan get_params PC13 (3), P2, S0, P1 PC13=FixedIntegerArray=PMC(0x837f180) P2=PMCNULL S0="(null)" P1=PMCNULL 08:30
That's wrong wrong wrong.
Yes.
pmichaud oh
jonathan Should be PMCNULL
pmichaud that's the same problem I was seeing earlier
and that we have with the one failing spectest
callmethodcc loses the arguments.
jonathan No
set_args PC25 (3), P0, S1, P1 PC25=FixedIntegerArray=PMC(0x837eec4) P0=Object(Data::Dumper::Default)=PMC(0xb747e12c) S1="(null)" P1=Undef=PMC(0x83370c0)
S1 was null going into the call 08:31
pmichaud oh.
jonathan Unless it lost them some way back
Look a bit further back in the trace
pmichaud looking
jonathan Oh, it's S1, not P1, so wouldn't be PMCNULL
08:32 bacek joined
jonathan OK, giving 2 hour Perl 6 tutorial starting in a few mins. 08:34
So will be away for a bit.
pmichaud okay. I should probably get some sleep.
jonathan yeah! 08:35
it's late where you are
pmichaud 03h35
08:35 AndyA joined 08:49 barney joined
dalek r27957 | pmichaud++ | mutamerge: 08:53
: [mutamerge]:
: Fix .ACCEPTS method in P6object so it doesn't over-eagerly
: match strings.
diff: www.parrotvm.org/svn/parrot/revision?rev=27957
pmichaud I'm not the only evil code writer :-) 09:50
10:04 AndyA joined
dalek bernhard.schmalhofer@gmx.de | Plumhead: 10:11
link: www.perlfoundation.org/parrot/index.cgi?plumhead
r27958 | pmichaud++ | mutamerge: 10:14
: [mutamerge]:
: * Finish the 'switch between Mutable and non-Mutable'.
: * This commit is not using Mutable, although the code
: remains close to the same. Modify the $?PERL6SCALAR
: variable in src/parser/actions.pm to switch between
: them.
: * All spectest_regression tests pass with this version.
diff: www.parrotvm.org/svn/parrot/revision?rev=27958
r27959 | pmichaud++ | mutamerge: 10:22
: [mutamerge]:
: * ....and this version works when using Mutables for Scalars.
: * All spectest_regression tests pass.
diff: www.parrotvm.org/svn/parrot/revision?rev=27959
pmichaud jonathan: r27959 in the mutamerge branch passes all spectest_regression tests.
...off to bed... 10:23
dalek r27960 | bernhard++ | trunk: 10:25
: [Plumhead]
: Add test for case sensitivity of variable names.
diff: www.parrotvm.org/svn/parrot/revision?rev=27960
10:25 Whiteknight joined
cognominal applauses for jonathan++ 10:26
10:37 allison joined
dalek r27961 | bernhard++ | trunk: 10:46
: [Plumhead]
: Add a TODO-test for string interpolation.
diff: www.parrotvm.org/svn/parrot/revision?rev=27961
10:55 masak joined
dalek r27962 | allison++ | pdd25cx: 11:23
: [pdd25cx] Allow pragma subs to resume after a handled exception by returning to
: an outer runloop.
diff: www.parrotvm.org/svn/parrot/revision?rev=27962
11:34 Zaba joined 11:39 bgeron joined 11:46 cognominal joined
barney From which PCT-based language can I steal string interpolation? Perl6 looks too involved. Cardinal seems to have no variable interpolation. 11:46
jonathan pmichaud++ # mutamerge :-) 11:47
11:47 NotFound joined
NotFound Hello. 11:48
jonathan bonjour
purl hey, jonathan.
NotFound japhb: ping 11:49
dalek r27963 | bernhard++ | trunk: 11:51
: [ecmascript]
: Arguments to subrules need to be quoted.
diff: www.parrotvm.org/svn/parrot/revision?rev=27963
r27964 | bernhard++ | trunk: 12:17
: [Plumhead]
: Allow digits in variable names.
diff: www.parrotvm.org/svn/parrot/revision?rev=27964
12:20 iblechbot joined
dalek r27965 | bernhard++ | trunk: 12:22
: [Plumhead]
: Simplify the IDENT rule
diff: www.parrotvm.org/svn/parrot/revision?rev=27965
12:24 kid51 joined 12:30 AndyA joined 12:36 ambs joined 12:41 kid51 joined 12:51 jimk joined 12:55 davidfetter joined 12:56 cognominal joined
dalek r27966 | bernhard++ | trunk: 13:04
: [Plumhead]
: Add todo test for references.
diff: www.parrotvm.org/svn/parrot/revision?rev=27966
13:09 Ademan_ joined 13:17 IllvilJa joined
dalek r27967 | jkeenan++ | codetests: 13:21
: Eliminate all instances of from this file only.
diff: www.parrotvm.org/svn/parrot/revision?rev=27967
jimk That was $(PARROT_ARGS) that was eliminated from that file. 13:22
13:23 kid51 joined 13:32 Ademan_ joined
pmichaud good morning 13:44
purl and a lovely morning to you too, pmichaud
jonathan morning
jonathan has survived all of his talks
bar a lightning talk
pmichaud running commentary was that the talks were excellent
jonathan They were fun to give. 13:45
pmichaud "jaws are dropping" :-)
jonathan I haven't had chance to look at the segfaulting fun yet.
pmichaud it might not be there any more :-)
jonathan Just built the latest of the mutamerge branch
Oh
So did you do the merge yet? 13:46
pmichaud no -- wanted to give you a chance to play with it first and see what errors you could find
(I"m like you -- I don't like breaking too much in trunk because then people who check it out may be disappointed)
jonathan Let me run the tests on Win32 to make sure they pass consistently for both of us. 13:47
pmichaud but most of the tests I ran were doing fine
jonathan I need to write more tests for some of the features we don't yet test in spectest_regression. 13:48
But that work.
(Like subset.) 13:49
pmichaud > my Int $a; $a = 'hi';
Type mismatch in assignment.
jonathan (And type checking. And .*, .+...) 13:50
Ah, good. :-)
That was broken in trunk, I think.
pmichaud yes, the default .ACCEPTS method in P6object was a little overeager :-)
jonathan hehe
pmichaud "It's a string! Okay!"
jonathan You did check your changes, didn't break matching grammars.
?
Something else, I fear we have no test for, but should work. 13:51
Let me run my Perl 6 RPN calculator in the mutamerge branch...that'll soon tell us.
pmichaud I didn't check that. But I was thinking that matching grammars might in fact be an overload of infix:<~~> and not something that .ACCEPTS does
jonathan That'd be a cunning stunt. 13:52
pmichaud I was thinking that we could create an t/03-misc/ directory where we can throw tests that aren't yet ready for t/spec/ 13:53
jonathan Cool
I throw them there, and @aother spec-test-ifies them. :-)
Delegation!
purl it has been said that delegation is the handler chain
jonathan And second pair of eyes, more importantly. 13:54
pmichaud well, we could perhaps get Auzon++ to look at them as a source of tests for his work, too.
jonathan Aye. 13:55
OK, all testsw pass here.
pmichaud yay!
pmichaud celebrates.
jonathan But geck. My RPN evaluator is br0ked. :-( 13:56
I suspect, on grammar matching.
pmichaud nopaste?
purl rumour has it nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or paste.husk.org/ or poundperl.pastebin.com/ or paste.scsys.co.uk/ or don't bother me while I'm eating or App::Nopaste or tools/dev/nopaste.pl
nopaste "jonathan" at 194.167.199.29 pasted "un-rpn" (46 lines) at nopaste.snit.ch/13126 13:58
jonathan Just try 3 5 +
But minimal test case is this: 13:59
grammar Test { rule TOP { \\d+ } }
if "42" ~~ Test { say "ok" }
Doesn't print ok
pmichaud okay, I'll fix that.
jonathan Awesome 14:00
(BooK is giving too amusing talk to concentrate on code!)
14:11 tetragon joined 14:16 Whiteknight joined, Zaba joined 14:41 allison joined
jonathan pmichaud: Back now, from coffee + lightning talk slide hacking. 14:45
pmichaud okay. I'm reworking .ACCEPTS a bit. 14:55
(also taking a short break for breakfast :-) 14:56
NotFound A fast break ;)
15:04 Limbic_Region joined 15:10 particle joined
jonathan pmichaud: I found that using roles as type names doesn't work, but I don't think this is a result of the Mutable branch, but rather earlier work in trunk. 15:12
I will fix this after the merge.
pmichaud okay
I suspect you're correct.
I suspect it's the P6object stuff that broke it. 15:13
jonathan It's maoning about a missing .item in fact. 15:14
pmichaud oh, then it's the changes to support list/hash/scalar context
jonathan Aye man.
Well, I will be having a good look a role composition in a week or two.
getting attributes right and so forth.
pmichaud I'm planning to do an 'add_attribute' method to P6object that takes care of the create-a-new-class-object 15:20
(and adjusts protoobjects and so forth)
don't know if that will impact role composition, but I figure we'll need it at some point. 15:21
jonathan Just a wrapper around addattribute op?
pmichaud essentially, yes.
jonathan Adding them to roles will be a similar process.
pmichaud metaclass.'add_attribute'('$.foo')
jonathan no, $!foo 15:22
pmichaud right
jonathan But yes, that's fine with me.
pmichaud (some other language could use $.foo !)
jonathan :-)
pmichaud BTW, I found Grammar in the smart match table :-) 15:23
jonathan Oh/
I thought it was only mentioned in S05.
pmichaud $Larry is evil. 15:24
nopaste "pmichaud" at 76.183.97.54 pasted "Grammar in S03" (15 lines) at nopaste.snit.ch/13127 15:25
jonathan Argh!
pmichaud =-)
which tells me this has to be done using .ACCEPTS, which is just as well because :multi on infix:~~ wasn't working out anyway.
jonathan Yeah, I figured it needed to be on ACCEPTS 15:27
It's just how. :-)
pmichaud got it covered :-) 15:28
jonathan Nice.
Give grammars an auto-generated ACCEPTS method>
?
pmichaud make it possible for classes to tell P6object which class methods override the protoobject ones
I was already doing that for 'new' -- I've just generalized it into a list.
jonathan Ah, cunning.
:-) 15:29
pmichaud $ cat x
grammar Test { rule TOP { \\d+ } };
if "42" ~~ Test { say "ok"; }
$ ./parrot perl6.pbc x
ok
jonathan Nice.
OK, I can't find any mutable-specific breakage now.
Go ahead and commit
erm, merge
pmichaud $ ./parrot perl6.pbc rpn 15:30
3 5 +
8
jonathan If you're happy with it.
:-)
cool
pmichaud I think so.
I need to get a fresh drink and then do the merge.
15:30 silug joined
pmichaud should be pretty straightforward now, since most of the issues have been taken care of and I don't think trunk changed in any of the relevant files. 15:30
NotFound ./mutable.c:1974: error: invalid conversion from 'void (*)(parrot_interp_t*, PMC*)' to 'void (*)(parrot_interp_t*, PMC*, PMC*)' 15:31
jonathan I did one or two tiny fixes since the branch, I don't think they touched the same files either.
NotFound Building with c++
jonathan NotFound: what's on that line? 15:32
pmichaud NotFound: and are you in the branch or in trunk ?
NotFound Parrot_default_visit, inside temp_base_vtable
pmichaud: in trunk 15:33
pmichaud okay, we're about to redo that.
(i.e., it'll be replaced on merge)
jonathan Try again after we merge.
NotFound Ok.
dalek r27968 | pmichaud++ | mutamerge: 15:35
: [mutamerge]
: * Add ability for P6object to specify which class methods override
: P6protoobject ones.
diff: www.parrotvm.org/svn/parrot/revision?rev=27968
cognominal I bought 25 euros with 30 euros at the perl auction
jonathan ...
dalek r27969 | Whiteknight++ | gsoc_pdd09:
: [gsoc_pdd09] updating to trunk r27967
diff: www.parrotvm.org/svn/parrot/revision?rev=27969
jonathan I wondered what on earth you were buying. 15:36
pmichaud just goes to show that 30 euros aren't worth what they used to be.
jonathan ...says the guy with the US dollars... ;-)
pmichaud ("but these are 'Special FPW Edition' euros!") 15:37
I used to have a Swiss bank account. :-)
that was cool.
cognominal the last tshirt auction with many of them
pmichaud okay, svn ups, realcleans, rebuilds, tests, then merge 15:38
dalek r27970 | pmichaud++ | mutamerge:
: [mutamerge]:
: * Get Grammar (and subclasses) to use Grammar.ACCEPTS instead of
: the P6protoobject one.
diff: www.parrotvm.org/svn/parrot/revision?rev=27970
NotFound Try with monopoly money.
jonathan pmichaud: Doing here too.
15:38 Theory joined
pmichaud prepares to give his Dual-core Intel a serious workout. 15:39
compiling two parrots and running a variety of 'make test' targets in parallel. 15:40
(evil laugh) FRY, MOTHERBOARD, FRY!
pmichaud hears the fan spinning up on his workstation.
NotFound pmichaud: Are you trying a new implementation of hcf? 15:41
pmichaud lol
hey, don't we need a 'lol' opcode? 15:42
japhb NotFound: you rang?
pmichaud: no need -- we have a whole language for that 15:43
NotFound japhb: g++ 4.2.3-2ubuntu7
jonathan VIZIBLE "LOL"
cognominal will auction lol, but they want to stay aftre 1.0
NotFound I will vote for a PLASE opcode. 15:44
japhb NotFound: Which Ubuntu release is that?
jonathan ?
NotFound PLEASE
jonathan PLASE?
Oh
I pondered proposing object oriented extensions to lolcode.
NotFound To help Intercal implementations.
japhb: 8.04 15:45
japhb Objects would be called "KITTEHZ" and Classes would be "BREEDZ"?
NotFound The ubuntu7 thing is a packet id, I think.
japhb NotFound: do you usually install the latest release?
jonathan IIRC, KTHXBYE is already taken in lolcode syntax
japhb jonathan: yeah, end of program 15:46
NotFound japhb: usually not, this time yes.
japhb NotFound: What CPU/arch? 15:47
NotFound model name : Intel(R) Pentium(R) M processor 1.73GHz 15:48
japhb NotFound: thank you. Mind if I feed the bot?
NotFound Do.
japhb parrot platforms? 15:49
purl it has been said that parrot platforms is Win32/MSVC: particle, Ron; Win32/Cygwin: Limbic_Region, donaldh (Vista); Win32/MinGW: Limbic_Region; Mac OS X: kid51 (PPC/10.4), tetragon (Intel/10.4/32-bit, PPC/10.5/32-bit), DietCoke (Intel/10.4); Debian Linux/i386: japhb; AIX: paco
japhb grrrr. It refused to take your C++ use, because "karma must be done in public!" 15:50
no, parrot platforms is Win32/MSVC: particle, Ron; Win32/Cygwin: Limbic_Region, donaldh (Vista); Win32/MinGW: Limbic_Region; Mac OS X: kid51 (PPC/10.4), tetragon (Intel/10.4/32-bit, PPC/10.5/32-bit), DietCoke (Intel/10.4); Debian Linux/i386: japhb; Ubuntu Linux/i386/g++: NotFound; AIX: paco
parrot platforms?
purl i heard parrot platforms was Win32/MSVC: particle, Ron; Win32/Cygwin: Limbic_Region, donaldh (Vista); Win32/MinGW: Limbic_Region; Mac OS X: kid51 (PPC/10.4), tetragon (Intel/10.4/32-bit, PPC/10.5/32-bit), DietCoke (Intel/10.4); Debian Linux/i386: japhb; AIX: paco
NotFound karma g
purl g has karma of 427
japhb grrrr
NotFound :D
jonathan lol 15:51
NotFound karma c
purl c has karma of 6947
jonathan ...
japhb parrot platforms? 15:52
purl it has been said that parrot platforms is Win32/MSVC: particle, Ron; Win32/Cygwin: Limbic_Region, donaldh (Vista); Win32/MinGW: Limbic_Region; Mac OS X: kid51 (PPC/10.4), tetragon (Intel/10.4/32-bit, PPC/10.5/32-bit), DietCoke (Intel/10.4); Debian Linux/i386: japhb; Ubuntu Linux/i386/g_plus_plus: NotFound; AIX: paco
japhb finally
NotFound karma chameleon
purl It comes and goes.
pmichaud okay, mutamerge branch fails coding tests but I'll fix those in trunk. so..... MERGE!
jonathan YAAAY!
Getting passes on Win32 as well.
pmichaud no conflicts in the merge. now rebuild and test. 15:53
jonathan :-)
jonathan is happy to see this go in
pmichaud++ for doing the hard part 15:54
pmichaud I'm really happy we have this in too , and that things like my @a = 1; dtrt
and that hash() works, and list() works, and...
btw, while working on list context I figured out that lazy lists are going to be pretty easy to put together. I was half-tempted to go ahead and try it. 15:55
jonathan and now you can work on protoregexes ;-)
pmichaud (actually, more than half-tempted)
jonathan I was pondering working on that soon.
But if you've figured it out...
NotFound Some good soul can try #55050 ?
jonathan Or alternatively, the explain what you were thinking and I turn it into code approach, so you can hack on the protoregexes. ;-) 15:56
pmichaud it's pretty straightforward, actually
jonathan I already started getting a Range class in place.
That is a lazy iterator.
pmichaud essentially, a List simply keeps all of its elements lazily
but we override keyed access, shift, etc to flatten as needed 15:57
jonathan And an Array has the lazy part, and an evaluated part?
erm, list
OK
pmichaud right. but the evaluated parts are just elements of the underlying ResizablePMCArray
jonathan Sounds good.
How do we keep track of what's evaluated and unevaluated?
pmichaud for optimization we just need to keep track of how much is already flat
jonathan Just add an extra counter?
Right.
pmichaud well, I was thinking of adding a variable.... but now that I've committed to getprop and setprop I might do that :-) 15:58
s/variable/attribute
jonathan variable => attribute?
ok
pmichaud since the "already flat" part is supposed to be somewhat hidden anyway
for an iterator, a list just returns a clone of itself 15:59
jonathan That's what I did already for Range.
well, not a clone 16:00
Hah. I just won something in an auction by bidding 42 EUR. 16:03
pmichaud 43! dollars!
16:03 AndyA joined
jonathan now has a some plush smileys. :-) 16:04
Will help make my new appartment more geeky. 16:05
dalek r27971 | pmichaud++ | trunk: 16:11
: [p6object]: Merge changes from mutamerge branch
: * Add PROTOOVERRIDES to say which class methods
: override protoobject methods.
: * Clean up .ACCEPTS to do class/role-based smart
: matching (i.e., isa + does).
diff: www.parrotvm.org/svn/parrot/revision?rev=27971
pmichaud Done. r27972. 16:12
tests welcomed. 16:13
dalek r27972 | pmichaud++ | trunk:
: [rakudo]:
: * Merge mutamerge + mutablerakudo branches into trunk.
: * All spectest_regression tests pass.
: * jonathan++ jonathan++ for Mutable implementation and merge help.
diff: www.parrotvm.org/svn/parrot/revision?rev=27972
pmichaud jhorwitz++ # mod_perl6 Registry Scripts www.smashing.org/jeff/node/35 16:15
NotFound ./perl6scalar.c:517: error: 'Parrot_Mutable_delprop' was not declared in this scope 16:16
16:16 iblechbot joined
NotFound Same for getprop, getprops and setprop 16:17
pmichaud did you make clean or make realclean?
NotFound Mmmmm... please, wait.
pmichaud those were defined in the previous version of mutable, but are no longer there.
so I think a library / header is out of date.
(and possibly a makefile dependency.) 16:18
NotFound ./perl6 -e"say 'Hello, world.'" 16:22
Hello, world.
purl rm -fr /
NotFound :)
pmichaud++
./perl6str.pmc: In function 'FLOATVAL Parrot_Perl6Str_get_number(parrot_interp_t*, PMC*)': 16:25
./perl6str.pmc:91: warning: switch missing default case
Just this warning.
16:26 dcat_ joined 16:29 tetragon joined, teknomunk joined
pmichaud NotFound++ 16:32
dalek r27973 | pmichaud++ | trunk: 16:33
: [rakudo]:
: * Fix "switch missing default case" warning reported by NotFound++ .
diff: www.parrotvm.org/svn/parrot/revision?rev=27973
pmichaud okay, time for a break. 16:36
then maybe lunch. 16:37
then journal posts.
then dinner, soccer, and hopefully more hacking.
16:45 cognominal joined
jonathan Yay, we has merge! 16:57
pmichaud it's been a good couple of weeks. :-) 17:02
afk for a while 17:03
jonathan Ugh. I get a failure in instantiate.t in trunk. 17:18
oh, not rakudo bug. svn issue 17:19
17:20 kid51 joined
jonathan works, my bad. 17:20
17:46 DietCoke joined
DietCoke ~~ 17:46
Coke ~~
DietCoke jpahb? 17:47
japhb?
purl japhb is probably Geoffrey Broadwell, mailto:geoff@broadwell.org
japhb DietCoke: here, for just a second 18:16
pmichaud I think he just wanted your name and address for an introductory letter to parrot-porters.
DietCoke <nod>
japhb pmichaud: Ah, cool, thanks
Thanks again, DietCoke. 18:17
pmichaud suggests "/msg purl japhb?" :-)
DietCoke If everyone else did that, I'd be happy to follow their lead. :|
japhb has taken to just keeping a purl tab open in his IRC client
pmichaud how do you know we aren't doing that? ;-)
DietCoke clearly -everyone- isn't. =-)
japhb DietCoke: sometimes you *want* your purl conversation to be in public 18:18
pmichaud I use /msg purl selectively. :-)
18:18 lichtkind joined
japhb pmichaud: ditto that 18:18
TimToady you shouldn't have to autogenerate an ACCEPTS method if it just gets inherited from Grammar 18:20
pmichaud correct, however, we run into a bit of a tricky issue wrt protoobjects 18:21
i.e., $x ~~ Foo means something slightly different if Foo is a Grammar protoobject as opposed to another type 18:22
("Grammar protoobject" => protoobject of something inheriting from Grammar) 18:23
TimToady why does it mean something different?
pmichaud $x ~~ Dog # is $x a Dog?
TimToady ah 18:24
pmichaud $x ~~ MyGrammar # match against MyGrammar's TOP rule
TimToady then lets not use ~~ at all for grammar matching
pmichaud that's okay with me... but what instead?
$x.match(MyGrammar) ?
MyGrammar.TOP($x) ? 18:25
TimToady the way it works out in STD5 is Dog.new("string").TOP()
pmichaud where Dog is a Grammar?
TimToady yes, sorry, not awake yet 18:26
histamine/antihistimine inspired jetlag...
pmichaud I can do that as well, but I like one of the .match or MyGrammar.TOP forms better.
I don't have a strong opinion. At any rate, as it turns out we end up not autogenerating methods, but instead have something to control when a protoobject retains its protoobject sense over its class sense 18:27
(and that gets used pretty rarely.)
TimToady well it needs to know when to generate an initial match state against which grammar and which string, but other than that I'm not picky about syntax
that sounds hacky 18:28
pmichaud oh, it's not too bad, actually.
TimToady well, it's too bad if every other implementation settles on a differnt hack... :(
pmichaud it's not really visible to the P6 programmer -- it's kinda internal to Parrot/Rakudo
TimToady these things have a way of leaking... 18:29
pmichaud but yes, the $x ~~ Type vs. $x ~~ Grammar conflict is probably worth resolving
(leaking) -- yes, I know. If we fix $x ~~ Grammar then it's one less thing to leak. :-)
anyway, it works for now until the synopsis changes. Also, I always thought it was kinda strange that TOP was described in S03 and not S05. 18:30
TimToady possibly we need a defined grammar object that is a match factory 18:32
actually, .ACCEPTS is distinguishing undefined vs defined all over the place, Regexp, Junction, etc 18:35
pmichaud yes, I thought about that as well
but couldn't quite make it work with Grammar
(conceptually, that is)
essentially the way we do it now is that protoobjects have a slightly different .ACCEPTS method from their normal instances 18:36
i.e., they do type-matching instead
TimToady so that argues that a Grammar match should be against a Grammar.new
pmichaud I'm warming up to that very quickly, yes. 18:37
so!!!
$x ~~ Grammar # is $x a Grammar?
$x ~~ Grammar.new # match against Grammar
?
18:38 Andy joined
TimToady that might help straighten out current parser bookkeeping too in the compiler 18:38
pmichaud yes
that's what I was liking about .new
because then we know we have an actual instance of a Grammar instead of a potentially shared one 18:39
TimToady and maybe a grammar could then be somewhat mutable without always resorting to inheritance to modify it
pmichaud yes 18:40
TimToady which might make it easier to track subs and such
pmichaud yes
TimToady lemme think about that s'more wrt STD... 18:41
pmichaud sure thing
what I have now works and will be easy to modify
and I'm at least a day or two away from any significant PGE refactoring that would depend on this
(and even if it takes longer than that, it shouldn't be hard to adapt) 18:42
TimToady when I see all the different responses to a perl6: query on #perl6, it worries me when I see such different responses. I wonder when (if ever) we'll even agree on what error messages to emit... 18:43
DietCoke ... you can always agree for us.
=-)
particle let the test suite decide.
18:43 Zaba_ joined
TimToady no, I can't, because I just don't have time to agree on everything 18:43
so I have to have faith in the larger community to work it out 18:44
pmichaud I think it will work out
TimToady and I think [particle] is correct that the test suite is the locus of that negotiation
pmichaud agreed.
totally.
purl GAG ME WITH A SPOON!!1!
DietCoke agreed.
I would, however, give you the 20 dollar bill I have left in my wallet if you'd take a full time "agree-er" position. =-) 18:45
pmichaud grabs a spoon and proceeds to...<deleted>
tetragon Eat gelato? 18:46
TimToady DietCoke: well, I did that for about four years once, and it set me back about $250k...
pmichaud the fact that the perl6: queries evoke different responses is at least partially due to evolutions in the spec, I think
as well as our evolving understanding of Perl 6
DietCoke ... ok, 25$.
purl, 250000 / 25
purl 10000
DietCoke yahhh.
pmichaud now if we only had 10,0.... coke beat me to it.
18:47 gmansi joined
TimToady pmichaud: yeah, I actually think the perl6: query is a healthy thing to keep the democratic process alive 18:47
pmichaud I _really_ like that query. 18:48
particle 9999 coders with $25 in their pockets, 9999 coders with money, ask one for money for larry, pass it to him, 9998 coders with $25 in their pockets
pmichaud it shows what other developers are thinking, it also shows the questions and problems that non-developers are encountering
a lot of times I look at the scrollback to find things to fix or implement :-) 18:49
particle i wish we had an off-channel (like run.pugscode.org) version
pmichaud (or decide to fix/implement it because of something I saw in scrollback)
TimToady but part of the value is its in-your-face-ness
pmichaud yes, I like it on-channel
particle there's room for both
pmichaud there are some times when I want to issue queries without flooding the channel -- otoh it's nice to see everyone else's queries 18:50
TimToady eek, a heterogenous opinion!!! shoot it!!!
pmichaud timtowtqi?
18:50 gryphon joined
TimToady maybe there's a way to log the query and a summary of how much agreement was achieved on one line 18:51
with a link to the actual results
pmichaud well, "log the query" can be the irclogs :-)
TimToady the summary could usefully give the shortest non-null response, and which engines returned that answer 18:52
and a list of the dissenting engines
18:53 radhios joined
particle "writing the dissenting opinion is pugs, which has in past debate often been held as a persuasive authority" --npr coverage 18:55
18:55 slightlyoff joined
diakopter particle: you can message the evalbot directly and it will reply just to you 18:55
DietCoke yay, finished some `official parrot business' I had to do. Now I can actually hack on something. 18:57
... this is going to suck, I'm going to have to bring a windows laptop to yapc! 18:58
particle shakes his house &
pmichaud DietCoke: you're right, that sucks. I'll give you the 20 dollar bill left in my wallet and a Kubuntu disk so you can fix it. :-) 19:05
pmichaud prepares to make his first-ever parrotblog post 19:06
19:06 AndyA joined
DietCoke when merging, what does "skipped" mean? (I know I've already looked this up once...) 19:07
pmichaud I don't know -- never encountered that.
DietCoke to verify, 'svn merge -rRev1:Rev2 <url to trunk> .' from inside a pristine, updated working copy of the branch? 19:28
Tene svn really doesn't track any of that for you? Huh.
19:29 braceta joined
lichtkind has perl 6 __END__ tokem? 19:46
token
19:46 slightlyoff left
TimToady lichtkind: no 20:00
lichtkind TimToady: so all token are gone good 20:02
TimToady use =begin END instead, is the current recommendation, though we'd have to special case it not to complain about a missing =end END
lichtkind but how can i say to parser stop parsing to ignore large POD sections?
TimToady S02 lists where various __FOO__ tokens have gone 20:03
lichtkind i see thanks 20:04
TimToady: but so i have to put POD in seperat pod file if i want to prevent reading by parser? 20:05
TimToady in general, yes, but =begin END might be a special case 20:06
afk & 20:08
lichtkind thanks
TimToady++
20:20 slightlyoff joined 20:25 ambs joined 20:29 Zaba joined 20:32 slightlyoff left 20:36 AndyA joined
pmichaud article posted to www.parrotblog.org/ . That was far more painful than writing ever should be. 20:39
(because of the way blogger handles formatting)
but at least now I have a tool for (re)formatting my text into something acceptable for Blogger. 20:40
20:46 mire joined 20:54 Ademan joined 21:05 AndyA joined
lichtkind pmichaud: is P6object inspired by smop? 21:15
21:17 AndyA joined 21:31 Ademan joined 21:33 AndyA joined 22:01 jisom joined 22:14 davidfetter joined 22:15 zev joined 22:36 allison joined
pmichaud lichtkind: (inspired by smop) no, it's inspired by Perl 6 and Synopsis 12 22:46
lichtkind pmichaud: ah 22:47
pmichaud: what are the greatest benefits for newcomers you think (beside from constant sigils, say, signatures and the oop :) ) 22:51
pmichaud regularized syntax 23:02
even beyond constant sigils
purl, rakudopost?
purl bugger all, i dunno, pmichaud
pmichaud rakudo.org ?
purl rakudo.org is, like, rakudo.org
pmichaud ugh. blogging software is so.... stupid 23:04
I'd like to post an article to rakudo.org. I have it all written. But I can't find the stupid "add post" link anywhere. 23:05
yay, irc logs. 23:09
Limbic_Region pmichaud - chances are, you have to login
pmichaud I'm logged in, yes.
but nowhere from rakudo.org is there a "post new article" link. 23:10
Limbic_Region pmichaud - it is oh, then it should be pretty straight forward
are you familiar with mt ?
pmichaud You just have to know the magic url (rakudo.org/cgi-bin/mt/mt.cgi)
and I'm not good at remembering that url
Limbic_Region heh, the default
ok, so when you log in - up in the upper left hand corner 23:11
there should be two tabs
one says "write entry"
?
pmichaud if I log in through the normal "rakudo.org" comments section, those links don't appear 23:12
Limbic_Region well, I don't have an account for rakudo.org - I use MT for my own home page
and I never login through comments :-)
pmichaud right
I don't have an MT home page 23:13
I already have too many "home pages" :-P
Limbic_Region well - I needed something to put up pictures of my daughters since the nearest relative is like 600 miles away
the furthest is literally half way round the world
I hired audreyt to do it 23:14
pmichaud I'm using picasaweb for mine. Very impressive stuff.
Limbic_Region she integrated photo blogging into it so I have a single CMS
I was too lazy to do it myself and told her to use whatever tools she felt comfortable with 23:15
pmichaud okay, done writing posts for now. 23:24
time to go to dinner with my lovely wife and do some shopping
Limbic_Region enjoy
23:43 kid51 joined