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:04 cognominal joined 00:10 AndyA joined 00:12 ank joined 00:14 rdice joined
smash i'm off.. cya all tomorrow 00:45
00:50 rdice joined 00:55 cout joined 01:11 teknomunk left
DietCoke purl msg smash you still on for the release in June? =-) 01:17
purl Message for smash stored.
DietCoke is pretty sure he's had that conversation already, but can't hurt to double-check.
01:44 Zaba_ joined
pmichaud does the release occur smack-dab in the middle of yapc::na ? 01:46
01:47 Hinrik left
Tene pmichaud: we could always move the release to the week before. 01:48
pmichaud I don't think it's a problem -- was just noting the date.
going to yapc::na ?
purl rumour has it going to yapc::na is particle, Coke, cotto, rjbs, confound, hobbs, Alias, jjore, pmichaud, allison, uri, chargrill, Abigail, stevan, waltman
pmichaud going to yapc::na 2008
going to yapc::na 2008?
Tene I was going to. Dunno if I'll get around to it now, though. 01:49
02:04 TonyC joined 02:24 tetragon joined
bacek_ yapc::na? 02:44
purl?
purl yes, bacek_?
bacek_ purl: yapc::na?
purl bacek_: bugger all, i dunno
bacek_ purl: you are most stupid piece of code I see ever!
purl ...but purl is a buggy piece of shit or a flooterbuck or a douchebag or an autonomic handjob system, well beyond the need for human intervention or a retard or a trannybot or a fuckslut in GumbyBRAIN's mind or going alone. or almost an anagram of Donaudampfschiffahrtskapitaensmuetzenkordel or a perv or an auto-triage bot or a she or a smartass or the sixth beatle. or github.com\\/dagbrown\\/flooterbuck\\/...
pmichaud yapc::na is www.yapc.org/ 02:47
yapc::na is also conferences.mongueurs.net/yn2008/
purl okay, pmichaud.
bacek_ pmichaud: btw, "!flatten" was a good idea :) 02:53
03:00 nopaste joined 03:08 tetragon joined
bacek_ > my @kv = kv(hash(a=>1, b=>2)); 03:18
No applicable methods.
pmichaud (!flatten) well, I almost went all the way to eager lists, but decided against it.
I don't know that I created function versions of all of the .kv, .keys, etc. yet 03:19
bacek_ looks like a bug in type matching for inherited classes in 'multi'
there is kv(Mapping)
line 184 in Mapping.pir 03:20
or some mistcommunication between 'protoobjects' and PIR's multi 03:21
pmichaud do you still have that pod comment bug exampl somewhere? 03:24
bacek_ pmichaud: just a sec. 03:25
03:30 TonyC joined
pmichaud even if I change kv to have :multi(_) it's not being found. 03:30
bacek_ nopaste.snit.ch/13048 03:34
pmichaud ohhhh, I know what the problem is with kv.
okay, I can fix it.
bacek_ this is for pod parsing 03:35
and it's your nopaste :)
pmichaud you had a shorter version earlier. :) 03:37
bacek_ I still trying to google it :)
nopaste "bacek" at 211.29.157.151 pasted "pod parsing error for pmichaud" (13 lines) at nopaste.snit.ch/13114 03:39
bacek_ I crafted new one. It's faster :)
pmichaud yes, muuuuch better
thank you
bacek_ removing {} in begging solve parsing problem 03:40
pmichaud yes 03:41
it must be because {} is a circumfix:{} 03:42
no, that's not it. 03:43
bacek_ no.
you can put 'sub call2 {' in first line 03:44
still failing
pmichaud right.
a-ha 03:56
tricky. 03:57
bacek_ tricky? 03:58
purl tricky is probably gone
pmichaud running spectest_regression now
but the problem is that pod_comment was (recursively) calling <.ws>
Tene I'm working on a smalltalk grammar. I could really use a way to trace the rules as they're trying to match.
pmichaud tene: when I do the pge refactor (over the course of the next week) I'll add one. 03:59
Tene pmichaud: nice. thanks. 04:00
pmichaud someone suggested something like %yydebug
Tene pmichaud++ # better than santa
bacek_ pmichaud: changing 'begin <.ws> <ident>' to 'begin \\h+ <indent>'?
pmichaud yes.
since that's what STD.pm has now. 04:01
that seems to fix the problem.
bacek_ pmichaud++ # more often than Santa
pmichaud bacek: r27932 04:02
dalek r27932 | pmichaud++ | trunk:
: [rakudo]:
: * Fix problem with <pod_comment> rule destroying statement end
: * bacek++ for providing a simple test case
diff: www.parrotvm.org/svn/parrot/revision?rev=27932
bacek_ running git svn rebase 04:03
pmichaud back in a bit
bacek_ pmichaud: 'end' is just \\N* in STD.pm 04:04
your version fail to parse '=end\\n' 04:06
because it expects $<indent> 04:08
nopaste "bacek" at 211.29.157.151 pasted "pod parsing error for pmichaud (again)" (20 lines) at nopaste.snit.ch/13115
pmichaud there are two =end's in STD.pm 04:18
=begin ... =end w/o an <ident> must be new.
cotto_home particle1, ping 04:21
pmichaud bacek_: I'm pretty sure that the pod you just pasted is incorrect. 04:25
"=begin pod" has to be followed by a matching "=end pod"
bacek_ pmichaud: looks like my mistake. 04:26
pmichaud but I'll go ahead and add the non-ident version
bacek_ but we should add anonymous version
:)
dalek r27933 | pmichaud++ | trunk: 04:35
: [rakudo]:
: * Add anonymous version of =begin...=end pod_comment. (bacek++)
diff: www.parrotvm.org/svn/parrot/revision?rev=27933 04:36
bacek_ pmichaud: update_passing_test reports new test to add 04:50
pmichaud new test file, that is? 04:52
nopaste "bacek" at 211.29.157.151 pasted "new tests to include in regression" (8 lines) at nopaste.snit.ch/13116
pmichaud wow 04:53
that's quite a few.
bacek_ pmichaud: it can be more if you'll fix 'kv' :)
pmichaud okay.
just a sec. that will take a few minutes.
spinclad pmichaud: (backlogged, now useless i'm sure) re www.pmichaud.com/sandbox/post3.txt:27: 'say "...\\n"' ? # woof! 05:04
pmichaud spinclad: thanks. Actually I was working on that in another win until I started fixing 'kv' and friends. 05:05
spinclad and like others said, it ends rather suddenly. it would be worth working in that you get back the protoob for free, if you can... other than those, a good intro. 05:10
pmichaud yes, working on the ending as well. :-)
PerlJamischromatic stares back at DietCoke 05:12
pmichaud (update) 'kv' fix is taking a while because I'm thinking about exports in general. :-)
pmichaud is continually amazed at how hard he'll work to be lazy. 05:51
particle1 tomorrow, i'll make moritz++'s update_passing_test_data.pl more general and portable 05:52
tonight, i sleep while pmichaud++ works hard at being lazy & 05:53
spinclad pmichaud: this is the True Laziness. (someday i will know it too.) 05:58
bacek_ S29? 06:08
purl S29 is probably svn.pugscode.org/pugs/docs/Perl6/Sp...ctions.pod
06:14 uniejo joined
bacek_ where 'prefix:<\\\\>' described? 06:17
pmichaud S03 06:18
(it's not likely to be implemented soon.)
bacek_ why?
pmichaud because it creates a Capture, and we have a lot of re-jiggering to do to work with captures.
06:19 Zaba joined
pmichaud (er, re-factoring.) 06:19
bacek_ :)
bacek_ can't find prefix: in STD.pm... 06:20
pmichaud it might not be in there yet.
it wasn't there a couple of weeks ago.
it would be prefix:sym<\\\\>
bacek_ pmichaud: yes... But it is not there... Yet. 06:22
STD.pm?
purl i guess STD.pm is svn.pugscode.org/pugs/src/perl6/STD.pm
bacek_ not in latest version... 06:24
06:24 ank joined
bacek_ we should remove S02-literals/hex_char.t from regression (for now) 06:25
there is 4 skipped test from 4
it useless
pmichaud rakudo could do those if it could be invoked with --encoding=utf8 06:26
(for just that test.) 06:27
(otherwise it'll really slow things down.)
dalek Conrad Schneiker | Parrot: 06:32
link: www.perlfoundation.org/parrot/index.cgi?parrot
bacek_ pmichaud: test 1 and 4 failed 06:33
pmichaud okay, we can remove it. 06:35
(hex_char.t that is)
should probably change "parse error" to "rakudo doesn't default to utf8"
dalek Conrad Schneiker | Parrot: 06:37
link: www.perlfoundation.org/parrot/index.cgi?parrot
06:43 clunker9__ joined 06:55 cognominal joined
pmichaud argggh, getting tired. 07:00
every time I almost get the problem generically solved, Parrot throws up another "oh, you can't do that." 07:01
oh well, I'll have to let it go for tonight. Need sleep, then make breakfast, send kids to school, etc. 07:06
g'nite
bacek_ pmichaud: gnite 07:12
07:26 iblechbot joined 07:37 IllvilJa joined 07:53 Zaba_ joined
moritz I'm getting occasional memory corruptions while running 'make spectest_regression' 07:54
jonathan hi all 08:47
bacek_ hi jonathan 08:48
moritz waves to the cheering croud 08:50
09:06 mire joined 09:30 Zaba joined 09:43 Whiteknight joined 09:59 Ademan joined
dalek r27934 | jonathan++ | mutablerakudo: 10:05
: [rakudo] Huge refactor of type checking of variables, for mutables branch. We now do the type check upon assignment.
diff: www.parrotvm.org/svn/parrot/revision?rev=27934
jonathan Phew. I'm glad to have that bit done. 10:06
10:19 cognominal joined
dalek r27935 | jonathan++ | mutablerakudo: 10:30
: [rakudo] Fix our variables that aren't assigned to at the point of declaration. This allows us to run Test.pm again, so the spectest damage can be seen.
diff: www.parrotvm.org/svn/parrot/revision?rev=27935
r27936 | jonathan++ | mutablerakudo: 10:40
: [rakudo] Initialize mutables with proto-object, if that is what is named as the type. This gets my Dog $fido working again, and probably passes one of the failing spectests.
diff: www.parrotvm.org/svn/parrot/revision?rev=27936
10:41 zarchne joined
bacek bacek__> rakudo: my @r; @r.push<hi>; 10:41
<exp_evalbot> rakudo r27936 OUTPUT[Method 'viviself' not found for invocant of class 'PAST::Op'␤current instr.: 'parrot;PAST::Compiler;keyed' pc 6207 (src/PAST/Compiler.pir:1721)␤
looks like PAST bug... 10:42
10:44 Whiteknight joined 11:09 cognominal joined 11:18 cognominal joined 12:10 cognominal_ joined 12:19 IllvilJa joined
tetragon Hrm... My build fails when I use make -j4 12:21
12:29 ank joined
tetragon japhb: Triangle spins on OS X 10.4 (32-bit Intel) using 20080527 patch 12:49
pmichaud 10:41 <bacek> bacek__> rakudo: my @r; @r.push<hi>; 12:53
granted, PAST isn't doing the right thing, but this would end up being a runtime error anyway, since @r.push returns an Int 12:54
jonathan pmichaud: Just working on trying to merge trunk into the Mutable branch.
So I can see what spectest_regression fails
pmichaud ouch
jonathan As in, what filas as a result of my changes
As opposed to, things changed in spectests. 12:55
Due to additions in trunk.
Yes
pmichaud I made some *significant* changes to trunk yesterday.
in particular, my @a = 1; now works. :-)
jonathan Ouch is the word. 12:56
I reviewd your changes and can see how to combine our work, I think.
How on earth do you handle files that were added to trunk?
Zaba pmichaud, what does it do?
the my @a = 1; thing
jonathan svn: Copyfrom-url 'svn.perl.org:/parrot/trunk/languag...src/classe 12:58
s/Array.pir' has different repository root than 'svn.perl.org/parrot'
If you have to handle that manually, I see what people meant about svn's merge support sucking.
shorten jonathan's url is at xrl.us/bk9pm
12:58 d4l3k_ joined, iblechbot joined
pmichaud as does my %hash = (1, 2, b=>c); 12:59
how are you doing the merge?
I normally do svn merge -r x:head svn.perl.org/....
and 'svn merge' handles additions
the big conflict we're likely to have is that the changes I made yesterday usurp the Perl6Array and Perl6Hash class names
but yes, I don't think it'll be difficult to merge mutable with trunk
you want to make sure you're merging from the same repository directory as your working directory
my suggestion at this point would be to just get mutables working for Perl6Scalar
jonathan pmichaud: I was going a directory at a time, just to try and keep it simpler 13:00
C:\\Hacking\\mutable\\languages\\perl6\\src\\classes>svn merge -r27798:HEAD sv
n.perl.org:/parrot/trunk/languages...rc/classes
pmichaud personally, if I were doing a merge into the branch, I'd do it this way 13:01
(1) copy my working directory into a backup location somewhere
(2) recheck-out a new trunk
(3) copy the significant files that changed from the branch into the new trunk. In this case I think it's principally mutable.pmc, perl6scalar.pmc 13:02
(4) hand-merge the changes for actions.pm and guts.pm
jonathan And a whole bunch of changes to actions.pm and elsewhere...
ouch.
pmichaud how much is there "elsewhere"?
jonathan I thought svn was menat to, like, help with stuff.
pmichaud seems to me like it should be Object.pir, guts.pir, and actions.pm
jonathan Yeah, you're right actually.
There is little besides those. 13:03
pmichaud the point of doing it this way is thatyou're not trying to merge the refactors I did yesterday in List.pir, Mapping.pir, Hash.pir, Array.pir, ......
and I think if we focus only on Perl6Scalar, we can prove that it's all going to work without breaking anything significant in Array and Hash
the main change I did was to create an "infix:=" multisub 13:04
which is overloaded for Array and Hash
the default infix:= basically calls the old !TYPECHECKEDASSIGN
and I removed !TYPECHECKEDASSIGN from actions.pm (because it's being handled by infix:=)
jonathan Yeah 13:05
Now the type check is done inside assign.
pmichaud which is basically what you've done :-) 13:06
jonathan So that goes away altogether inside my branch.
pmichaud it's basically gone inside of mine too, except I'm using infix:= where you're using the assign opcode. (using the opcode is better -- I just didn't want to mess with vtables for this.)
jonathan So you would replace the call with just an asign.
Aha, OK. 13:07
Ugh. This looks pretty ugly.
pmichaud I did offer to do the merge. :-)
....actually
jonathan I'm going to take you up on it. :-)
pmichaud here's what I propose to do. (more) 13:08
if you're ready for us to do a test merge, I propose to create a new branch just to try merging trunk and mutablerakudo together
if it works out, we merge that into trunk
if not, then we simply drop the branch and you can continue on from where you are now
jonathan I need to refactor parameter type checking. For now, we'll just rip that out, do the merge.
And I'll sort it out afterwards. 13:09
I think that delaying the merge beyond now is going to make it harder later.
pmichaud I agree
jonathan OK, let's go with your suggestion.
pmichaud okay. I don't have a lot planned anyway for this morning (other than to write some blog posts, but those can wait :-)
jonathan I need to post some journal thing I already wrote. 13:10
and got a talk in 40 minutes or so
here for the next 40 before that
pmichaud yeah, I'm in the same boat. I have a couple of posts already written but unposted
is mutablerakudo up-to-date committed and all?
(btw, I looked at your branch diffs from this morning and didn't see many conflicts in terms of merging with the stuff I did yesterday) 13:11
13:16 gryphon joined
jonathan Yes, no local diffs here 13:20
Does it look along the lines of what you had in mind?
bacek pmichaud, (about PAST) it doesn't really matter. I can put this code in eval (and it really dies).
so I can't implement eval_dies_ok in Test.pm 13:21
dalek r27937 | pmichaud++ | trunk: 13:24
: [pct]:
: * For vivibase, don't try to viviself something that can't be
: viviselfed. (We probably need more work on this in general, but
: this resolves the immediate issue for now.)
: * From reports by bacek++
diff: www.parrotvm.org/svn/parrot/revision?rev=27937
pmichaud bacek:
> say (1..100).hash<55>; 13:25
56
bacek pmichaud, excellent
pmichaud we don't do hash slices yet..... but that's a separate issue. :-)
okay, let's see if we can merge mutables 13:26
bacek doing git stash; git svn rebase; git stash apply
dalek r27938 | pmichaud++ | mutamerge: 13:28
: New branch to perform a test merge of jonathan++ 's mutablerakudo
: branch with trunk.
diff: www.parrotvm.org/svn/parrot/revision?rev=27938
bacek bacek@icebolt:~/src/parrot/languages/perl6$ cat eval.pl 13:34
eval "my @r; @r.push<hi>;";
bacek@icebolt:~/src/parrot/languages/perl6$ ../../parrot perl6.pbc eval.pl
No applicable methods.
it dies in parrot guts now... 13:35
13:35 Zaba_ joined
pmichaud Int doesn't know how to {'hi'} 13:35
bacek but it shouldn't kill whole program in 'eval'...
pmichaud why not? eval can throw exceptions 13:36
bacek yeek...
pmichaud if you want to stop the exception, use a try { ... }
bacek its slightly different from p5 :)
bacek@icebolt:~/src/parrot/languages/perl6$ cat e.pl 13:37
use Test;
plan 1;
eval_dies_ok "my @r; @r.push<hi>;", '.push<hi> should emit error.';
bacek@icebolt:~/src/parrot/languages/perl6$ ../../parrot perl6.pbc e.pl
pmichaud note that 'eval' in rakudo really doesn't work. 13:38
also, we should be eliminating "eval_dies_ok"
nopaste "bacek" at 202.7.166.182 pasted "Test.pm eval_dies_ok impl" (17 lines) at nopaste.snit.ch/13117
bacek pmichaud, hmm.. Why> 13:39
?
pmichaud oh, never mind, I see it in fudge
bacek me too :)
pmichaud but why use "eval_dies_ok" there?
I think it should just be dies_ok( { my @r; @r.push<hi> } , ... ); 13:40
bacek pmichaud, it's just implementation. Not related to particular test
13:40 Whiteknight joined
pmichaud ah. 13:41
your eval_dies_ok impl looks good to me :-)
bacek pmichaud, :) 13:42
pmichaud, btw, there is another problem with 'multi'. If I'll replace 'sub push' in src/classes/Array.pir from :multi(Perl6Array, _)' to ':multi(Perl6Array)' it will handle @a.push; 13:44
so, question is - it is really should be without '_' or parrot can't handle omitted args in multi sub properly? 13:45
pmichaud the _ means "required argument"
so it should be without '_' 13:46
bacek ok. Then you should fix Array.pir :)
pmichaud I'm redoing all of that, yes. But I need to work on the mutables merge first
bacek according to S29-array/push.t
pmichaud so that will likely be later today.
bacek pmichaud, ok.
pmichaud I'm trying to avoid us having to create a bunch of .sub 'foo' :multi(XYZ); .param pmc xyz; .return xyz.foo(); .end methods 13:47
bacek yeah... It's really weird...
s/It's/They are/ 13:48
pmichaud well, it appears it can be done with a really smart exporter.... but getting the MultiSub management right is slightly tricky
that's what I was working on last night before I got too tired to trust what I was writing :-)
bacek :) It's really good idea don't write code after 2AM 13:49
pmichaud it worked the night before last :-) 13:50
I remember staying up til 3am writing some really cool code, but I don't remember now what it was.
bacek I know. It was a 'day' here :)
pmichaud, question for 42 may be? 13:51
jonathan pmichaud: I wrote some PIR a while back that took a method from a class (basically, the sub PMC) and (provided it was makred multi) you could just push it into a PMC for that method name in the HLL root namespace. 13:52
pmichaud oh, yes, I remember now. I got "my @a = 1;" to work.
jonathan: yes, that's what I was doing last night.
essentially MultiSub isa ResizablePMCArray
jonathan Yup.
pmichaud but I was missing a step somewhere
13:52 mire joined
pmichaud or must've been missing a step 13:52
or some of the liberties that P6object is taking with methods wasn't working out 13:53
also, I discovered that ns.'add_sub'(...) doesn't like MultiSub
jonathan Hmm 13:54
pmichaud anyway, I had a version that was almost working except in one case, but then decided sleep was the better option for now.
bacek thinks that pmichaud lost 'ultimate question' :)
pmichaud oh, I know that question. 13:56
it's something along the lines of "When will Perl 6 be finished?"
jonathan Christmas! Which one not specified. :-) 13:57
pmichaud Q: When will Perl 6 be finished?
A: 42.
jonathan Though the question I get more from realistic people now, is when can we expect a first alpha release of Rakudo.
pmichaud that's an interesting question.
I suspect it depends on when I get a chance to improve parsing speed.
jonathan Yeah. I've been saying that certainly not as soon as this summer, but we might make it before the year is out. 13:58
pmichaud (which I'm still thinking will happen this summer)
we do have to get mmd fixed
jonathan use.perl.org/ :-) 13:59
pmichaud so yes, Q4 2008 seems plausible.
bacek and replace string concatenation with string array in parser... GC in parrot it really, really bad
jonathan bacek: Yeah, but if the GSOC project delivers the new GC, hopefully that's not going to be an issue after the summer either. :-) 14:00
jonathan crosses his fingers.
pmichaud right now the big performance bottlenecks I see are 14:01
bacek jonathan, steal some code from Harmony?
pmichaud (1) need protoregexes and ltm
(2) garbage collection
(3) strings
Whiteknight I am going to do my absolute best on that GC.
Whiteknight crosses his fingers too
jonathan Whiteknight: I know, and I'm really happy to have someone working on it. :-)
bacek takes more popcorn
:)
14:01 braceta joined
bacek ("moose".length) 14:03
eval("moose".length)
Method 'length' not found for invocant of class 'Perl6Str'
hmm...
pmichaud ....what is this ".length" thing you're writing? ;-)
Perl 6 has depth but no length.
bacek pmichaud, this is from spectest
pmichaud then spectest is real wrong there.
(if it's expecting a .length to work) 14:04
bacek its only one test which uses eval_dies_ok
pmichaud okay, then. It will indeed die. :-)
bacek but why it uses eval?
pmichaud I don't know.
some of the spectests were cargo-culted from P5's test suite without necessarily a lot of thought as to what they were doing, or how it might be different for P6 14:05
bacek > try{ "m".lenght }; say $!
Method 'lenght' not found for invocant of class 'Perl6Str'
pmichaud i.e., in many cases we have P6 tests being written by P5 programmers
bacek is it expected behaviour?
pmichaud that does what I expect, yes. 14:06
bacek hmm... Why it is 'compile-time error' instead of run-time? 14:07
pmichaud what you just shows is a run-time error
dalek r27939 | Whiteknight++ | gsoc_pdd09: 14:08
: [gsoc_pdd09] merging to trunk r27938
diff: www.parrotvm.org/svn/parrot/revision?rev=27939
bacek pmichaud, but why it wasn't caught by 'try'??? 14:11
pmichaud it was caught
at least it appears it was caught. You then turned around and printed the error message with "say $!"
bacek pmichaud, my bad...
bacek turns to pumpkin after midnight. 14:12
14:13 cognominal joined
pmichaud when is it not after midnight? ;-) 14:16
ank midnight! 14:17
purl midnight is 12 am right?
cizra has never understood the AM/PM system. 14:18
I mean, the border cases
ank i always have to think about 12:01
cizra 1 PM is afternoon. 12 AM is what?
ank 12am = 00 14:19
cizra Well, how do you say midday then?
pmichaud "noon"
cizra With numbers?
ank what time is it one minute before 1pm?
purl ank: It's nearly twenty past seven in the morning where I am.
pmichaud 12pm
one minute before 1pm is 12:59pm 14:20
ank exactly :D
cizra fuckity.
Why is the system so sick? The next thing after 12 pm is 1 pm?
ank think of zero instead of 12
pmichaud because people have difficulty using 0-based arrays. 14:21
cizra heh. Well, I guess you have to grow up in it to really accept it.
pmichaud so instead of 0..11, we got stuck with 1..12 and a rotate :-)
just take all of the hours and modulo 12
NotFound It's inherited code ;)
14:22 teknomunk joined
pmichaud "Because there were 20 or so pepole already using it, and it would be too difficult to switch." 14:22
NotFound break;
bacek bacek@icebolt:~/src/parrot/languages/perl6$ grep -r eval_dies_ok t/spec|grep -v svn 14:23
t/spec/fudge:my $IS = '\\\\b(?:is|ok|nok|is_deeply|is_approx|isnt|like|unlike|eval_dies_ok|cmp_ok|isa_ok|use_ok|throws_ok|dies_ok|lives_ok|eval_lives_ok|pass|flunk)(?:\\\\b|_)';
much better. We don't need 'eval_dies_ok' actually
pmichaud well, someone might want to use eval_dies_ok on a string that doesn't actually parse 14:24
bacek but it is not in 'spec'
some internal unittests probably
pmichaud you mean none of the spec tests are using it?
bacek pmichaud, exactly 14:25
pmichaud there may be some tests outside of the spec/ suite that use it that just haven't been migrated over to t/spec/ yet
bacek I'll take care about them :)
14:26 AndyA joined
NotFound The "compile-time" can mean that the exception throws when eval is compiling his argument. 14:26
bacek anyway 'eval_dies_ok' officially not implemented in rakudo.
(for spectest)
bacek@icebolt:~/src/parrot/languages/perl6$ grep -r eval_dies_ok .|grep -v svn 14:35
./t/spec/fudge:my $IS = '\\\\b(?:is|ok|nok|is_deeply|is_approx|isnt|like|unlike|eval_dies_ok|cmp_ok|isa_ok|use_ok|throws_ok|dies_ok|lives_ok|eval_lives_ok|pass|flunk)(?:\\\\b|_)';
bacek@icebolt:~/src/parrot/languages/perl6$
pmichaud, there is no 'eval_dies_ok' in rakudo and spec test at the moment :)
pmichaud right. But there are still quite a few tests in pugs' t/ hierarchy that aren't part of t/spec/ yet 14:36
and some of those are using 'eval_dies_ok' 14:37
whether they should be using 'eval_dies_ok' is a legitimate question, but there are some tests using it that could end up in t/spec/
14:37 wknight8111 joined, Zaba joined
bacek pmichaud, ok, I'll save this patch somewhere. Just in case if it will be required. 14:41
But there is no point to commit it right now
bacek doing svn co svn.pugscode.org/pugs/t... Internet in Australia are really bad... 14:44
14:51 cjfields joined 14:53 cjfields_ joined 14:54 cjfields_ joined
jonathan pmichaud: How's the merge going? 14:55
pmichaud I'm getting a weird error.
jonathan Ah.
Specifically?
pmichaud (also got distracted on this end so just really got into it) 14:56
jonathan I've seen plenty of weird errors while working on this. :-)
pmichaud (details in a sec)
if I start from trunk and copy mutable_pmc.template from mutablerakudo into my branch, but make no other changes, then I don't get a working perl6.pbc
even though nothing else in rakudo is using Mutable (as far as I know)
jonathan Oh. 14:57
That is...odd..
pmichaud I'm rebuilding just to make sure.
jonathan oh
pmichaud and I get a very strange error.
jonathan C errors?
pmichaud no, Null PMC in get_string()
somewhere in the P6object guts.
jonathan Ah.
OK, that is weird.
PerlJam pm: are you sure you had a working perl6.pbc to begin with ? :) 14:58
pmichaud PerlJam: actually, yes. I did spectest_regression on my branch before anything else.
just to make sure I had a known good starting point.
let's make sure I can build the mutablerakudo branch also 15:02
jonathan: did you have to make any changes outside of the languages/perl6/ directory? (e.g., to parrot core) 15:03
jonathan I don't *think* so. Let me check. 15:07
pmichaud doesn't look like it.
my mutablerakudo branch builds okay.
jonathan I don't remember doing so.
OK
Hmm
Have you tried updating the entire contents of the pmc directory (at least, the ones I added/changed) together? 15:08
Also, the makefile.
pmichaud the only file that significantly changed was mutable_pmc.template
bacek warned about merging in svn...
pmichaud I'm doing the merge by hand -- it's not a an svn issue in this case
jonathan I wonder if anything changed in Parrot in the meantime.
I'd not think so, though. 15:09
pmichaud yes, it's really kinda weird.
jonathan What's the branch called?
pmichaud mutamerge
but I haven't committed anything new to it yet.
jonathan Let me grab it and see if I can reproduce. 15:10
...never quote that last sentence out of context...
pmichaud ("Speakers so loud they.... ")
(don't know why that just popped in my head.)
oh.... 15:11
maybe I need to copy build/gen_mutable_pmc.pl also
jonathan Ah.
bacek always use two step merge in svn: trunk->branch, branch->trunk
jonathan Yes, I maybe fixed things in there.
pmichaud yes, those are different. 15:12
ah, that was it. 15:13
okay, I'll commit that.
15:13 cotto-work joined
pmichaud now let's see what's in Perl6Scalar 15:14
jonathan ok 15:15
dalek r27940 | pmichaud++ | mutamerge:
: [mutamerge]:
: First, grab the new Mutable PMC from mutablerakudo branch.
diff: www.parrotvm.org/svn/parrot/revision?rev=27940
jonathan getting myself a copy of the branch built so I can help if needed.
pmichaud Perl6Scalar simply extends Mutable.
That's good.
We might not even need it as a PMC, but could instead do that in PIR.
jonathan Speeeeeeed. ;-) 15:16
Array and Hash are, I guess, easier done in PIR though.
pmichaud yes, but even Scalar is going to have to be isa(Perl6Object)
jonathan True
pmichaud we'll still get the same speed
jonathan Maybe.
pmichaud well, we do get the ProxyPMC indirection, yes. 15:17
jonathan Anyway, we shouldn't really worry about that too much yet.
pmichaud mind if I do Perl6Scalar in PIR to start?
it'll be very short -- just a class registration
jonathan Sure 15:18
pmichaud since there are no significant methods to speak of
jonathan Though actually I think we need to move the type checking logic in Mutable now to be in Scalar.
Because types on arrays are on the elements.
pmichaud it should be basically the same, in principle (more)
the "type" always refers to the types of the contents
jonathan Yeah, but you set the contents of an array with keyed vtables, not assign. 15:19
pmichaud except there is no assign_keyed vtable (although I've asked about getting one)
jonathan Ah. Hm.
pmichaud set_* is for binding, not assignment. We shouldn't muck with that. 15:20
jonathan True.
pmichaud I've asked about having keyed variants of assign, but allison didn't seem too keen on the idea. I think it's a key feature missing from parrot 15:21
the 'copy' opcode is just a way to work around it.
what we'll end up with instead is that every element of an array will have a Perl6Scalar in it.
which means we've doubled the number of gc-able items. 15:22
jonathan Yeah. I hate that. 15:23
But it gets the right semantics.
PerlJam sounds like perl5
pmichaud but we could do better with an assign_keyed
jonathan Yeah, agree.
we'd need int variant of it too, I guess. 15:24
pmichaud yes.
for now I think I'm going to continue to let array elements work as they do, though.
jonathan Though the int hack maybe ain't going to work for us long term.
pmichaud okay, time for scalar.
jonathan multi method postcirfumfix:<[]> MyWeirdArray(Complex $key) { ... } 15:25
But happily we'll not worry about this, for a while yet. :-)
particle pmichaud: what do you think about using dynamic ops for assign_keyed? 15:27
pmichaud I think they should be core.
particle think of dynops as a way to make your point 15:28
rather than going for the whole shebang without having any data to back it up
jonathan Right. If we do them right in dynops, we can show they're needed for core.
pmichaud then I don't have a problem with it. :-)
jonathan It's not hard to move them there.
particle yep, easy to move dynops to core ops
jonathan Plus they seem to work pretty portably-ish.
I know they work on Win32, because I used them in .Net. 15:29
pmichaud the thing is, in order for assign_keyed to be useful it has to be supported in PCT
which basically means that anything using PCT or PGE would need them.
which kinda defeats the purpose of having them as dynops :-)
if it was just for Rakudo, I could see it.
particle why can't pct have dynops? 15:30
pmichaud well, it *can*... but I've heard that dynops are a little "evil", and it's hard to imagine us doing much on Parrot w/o PCT
(from an HLL perspective)
jonathan Sounds, like a good way to make a point. ;-)
pmichaud anyway, that's something to do for later I guess 15:31
jonathan "I did these dynops but dynops suck and now PCT is using them. I can haz core?"
Of course, it really wants vtable methods.
Not just the matching ops.
pmichaud correct. 15:32
oh, come to think of it, we probably *could* make it work in rakudo with the way things are set up now, without having to do it in PCT 15:33
anyway, I'm getting off-track of my task.
jonathan cracks the merge whip in pm's direction 15:34
pmichaud oh.
(nm.) 15:35
assign handles all of the typecheck stuff now?
jonathan yES 15:36
See assign vtable method in mutable
pmichaud gREAT!
jonathan Caps lock. We fails it.
dalek r27941 | pmichaud++ | mutamerge: 15:40
: [mutamerge]:
: * Add a Perl6Scalar class, with associated 'infix:=' method.
: * We aren't using this yet -- just defining it for the moment.
diff: www.parrotvm.org/svn/parrot/revision?rev=27941
15:49 cognominal joined
PerlJam Are there any relatively simple things that need doing for rakudo? (I'll have a couple of hours to play once I put the kids down for a nap) 15:52
pmichaud earlier bacek posted some spectests that supposedly can be added to spectest_regression 15:56
15:56 Theory joined
particle PerlJam: tools/update_passing_test_data.pl needs work 15:57
specifically, it needs to be made cross-platform, and one more thing...
it should accept two targets, "full" and the "subset", so we can discover which files from "full" can be moved to "subset" because they're passing. 15:58
right now it works *only* for spectest and spectest_regression 15:59
i'd like it to work for spectest and localtest, spectest_regression and localtest, x and y
16:06 gryphon joined
pmichaud getting an odd segfault. 16:13
dalek r27942 | jonathan++ | trunk: 16:14
: [rakudo] Fix to make loop { ... } work again (that is, when you don't supply a clause in brackets). Not quite sure why we had to do this fix - it may be a bug in NQP or PGE.
diff: www.parrotvm.org/svn/parrot/revision?rev=27942
jonathan sub add_firsts(@a, @b) { say @a[0] + @b[0] }
add_firsts(<1 2 3>, <4 5 6>)
am I rihgt in thinking this should give 5?
pmichaud yes
but I haven't worked on array parameters yet.
jonathan get_pmc_keyed_str() not implemented in class 'ResizablePMCArray'
is probably not the righ thing for it to give then :-)
ah, OK
looks like we're leaving here now 16:15
back online later, probably...maybe... ;-)
pmichaud okay. 16:16
I'll need a break soon also. I'm still working on the merge.
I'll make frequent commits, though.
jonathan cool
pmichaud++
# saving me from svn horrors
particle pmichaud++ #sneaky way to review jonathan++'s code 16:17
pmichaud if we do assign $P0, $P1 16:21
and both $P0 and $P1 are Perl6Scalars
is this causing $P1 to become the value attr of $P0 ?
(i.e., $P0 delegates to $P1 which delegates to ... ) 16:22
dalek r27943 | pmichaud++ | mutamerge:
: [mutamerge]:
: * First cut at merging actions.pm. This breaks things a bit, as I'm
: now getting an odd segfault when performing "does" on a Perl6Scalar
: (which happens quite a bit due to list context).
diff: www.parrotvm.org/svn/parrot/revision?rev=27943
16:31 braceta joined
dalek r27944 | Whiteknight++ | gsoc_pdd09: 16:57
: [gsoc_pdd09] implemented basic pool allocators by borrowing heavily from GC_GMS.
diff: www.parrotvm.org/svn/parrot/revision?rev=27944
17:01 barney joined 17:09 ejs joined
dalek r27945 | pmichaud++ | mutamerge: 17:14
: [mutamerge]:
: * Okay, using Perl6Scalar as a subclass of "Mutable Any" didn't
: work out so well - kept getting segmentation fault on
: C<does $P0, 'array'>. So, this version uses a Perl6Scalar PMC,
: which has the disadvantage of not being a subclass of Any.
: All but one of the spectests passes.
diff: www.parrotvm.org/svn/parrot/revision?rev=27945
japhb msg tetragon Did you try the latest patch on the OpenGL ticket? It's dated 2008-05-28, not -27 as you mentioned earlier .... 17:16
purl Message for tetragon stored.
17:41 jhorwitz joined 18:02 AndyA joined
jhorwitz hm, seeing this in a perl6 handler run from mod_parrot: Method 'split' not found for invocant of class 'Perl6Str' 18:03
analogous code works outside of mod_parrot
particle file a bug with the mod_parrot author
:P 18:04
jhorwitz takes a swing at particle
but can't determine his position. ;-)
cotto-work so you *can* determine his velocity?
jhorwitz or spin 18:05
so does that even make sense? split is most certainly a method of the Perl6Str class... 18:06
particle i need to walk around, i'm getting a headache. i'll help when i return &
18:33 kdc joined 18:49 Zaba_ joined 19:07 Ivatar joined, cjfields joined
jhorwitz sweet, cached mod_perl6 registry scripts work now. 19:18
pmichaud jhorwitz++ 19:20
jhorwitz pmichaud: see my 'split' question from before? 19:21
pmichaud I did. I don't really know what's up with that. 19:22
I'd probably need some code to play with to find it.
jhorwitz yeah, i don't even know where to start for that...
pmichaud or a test case that exhibits the bug.
jhorwitz that i have.
but only in mod_parrot, so it's kinda awkward to debug 19:23
pmichaud I'm seeing a few oddities like that here and there. I suspect something odd in mro or mmd
jhorwitz i'd believe it
pmichaud what exactly is the purpose of the set_pmc vtable method? 19:33
assign $P0, $P0 # very bad for Mutable. 19:42
19:44 braceta joined
pmichaud I'm thinking I'd like to move mutable.pmc into parrot core 19:50
20:07 braceta joined 20:16 Zaba joined 20:19 donaldh joined 20:24 Ademan joined
pmichaud how can I check if a PMC is of type Mutable without using vtable_isa ? 20:32
dalek r27946 | pmichaud++ | mutamerge: 20:34
: [mutamerge]:
: * Uninitialized values should be Failure, not Undef.
: * Add some comments to Scalar.pir .
diff: www.parrotvm.org/svn/parrot/revision?rev=27946
20:45 AndyA joined
donaldh How might I specify out parameters to dlfunc ? Are they supported? 20:46
e.g. int sqlite3_open(
const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb /* OUT: SQLite db handle */
);
20:49 mire joined
pmichaud =item C<INTVAL string_equal> 20:53
Compares two Parrot strings, performing type and encoding conversions if
necessary.
Note that this function returns 0 if the strings are equal, and non-zero
otherwise.
purl necessary is probably a very strong word.
it has been said that otherwise is cacheble
pmichaud =cut
pmichaud boggles.
forget necessary
purl pmichaud: I forgot necessary
pmichaud forget otherwise
purl pmichaud: I forgot otherwise
donaldh pmichaud: were you answering your own question? 20:58
pmichaud no, I'm just seriously bothered by a function called "string_equal" that returns false when the strings are equal. :-| 20:59
I think I'm on the right track for figuring out my earlier question, although I don't like it. :-)
(I don't like the answer, that is.)
NotFound pmichaud: must have been written by somenone that thinks that strcmp was written by God. 21:00
donaldh heh. no worries. I was pretty sure you weren't answering my question.
pmichaud or something like that.
donaldh: I don't have an answer to your question, sorry.
NotFound Budha, maybe.
pmichaud nci isn't my thing.
(yet) 21:01
it doesn't bother me that strcmp == 0 for equal strings, I understand that.
donaldh I suspect the answer is not-supported
pmichaud but perpetuating that meme into a function called "string_equal" is just too much.
however, apparently it's been that way since the earliest days of Parrot.
so the code is littered with lots of if (string_equal(a, b) == 0) ....
donaldh yuck 21:02
pmichaud which, if I just read it normally, seems to be asking if a and b are unequal
NotFound pmichaud: on the other side, we have the macro STREQ whose only work is to convert the result of strcmp to a logic value.
pmichaud that doesn't bother me either. 21:03
NotFound Don't bother, just makes me smile.
pmichaud I don't like it when people write if (!strcmp(a,b)) ... so, seeing STREQ seems like a reasonable approach
although maybe we also need STRNE, STRLE, STRLT, STRGE, STRGT :_P 21:04
donaldh or a better language? 21:05
NotFound Agree, but people with that type of reasoning usually does not write the function string_equal we have.
donaldh ahem
NotFound By the way, we have a lot of string_to_cstring and string_from_cstring conversions. A lot of them probably can be avoided. 21:07
pmichaud yes, those bug me also. But I'm less certain how to avoid them :-)
NotFound pmichaud: A way I was looking at this moment can be use STRING * instead od char * in some mmd tables. 21:09
pmichaud oooh, that seems.... smart
NotFound Problem is that predefined table is an static array. 21:10
pmichaud the more I look at the code, the more it scares me. :-| 21:12
okay, I'm less scared now. 21:13
dalek r27947 | jonathan++ | trunk: 21:16
: [rakudo] Fix .+ and .*; they got missed while getting the new metamodel in place.
diff: www.parrotvm.org/svn/parrot/revision?rev=27947
jonathan pmichaud: Just around for a moment - how's it going with the merge? 21:17
pmichaud assign $P0, $P0 seems to be an issue 21:18
also, assigning a Mutable to a Mutable makes for a long chain of Mutables 21:19
21:19 cognominal joined
pmichaud as far as the merge itself is going -- that seems to be okay 21:19
NotFound I don' understand what Parrot_mmd_rebuild_table does, and why it lies about his arguments.
pmichaud I have spectest_regression down to one failing test
NotFound If C<type> is negative all classes are rebuilt. .... UNUSED(type); 21:20
jonathan pmichaud: Do we ever directly assign a string? I thought we'd always make an instance of Perl6Str
pmichaud there Perl6Str and Str both
*there's
jonathan Ah, the long chain thing...
That can be fixed.
pmichaud yes, I'm working on that now
jonathan However, bit tricky to see if we really have a mutable.
pmichaud I think I need to overload VTABLE_isa so that Mutables report themselves as Mutables
(as well as whatever type their contents have) 21:21
jonathan Hmmm
pmichaud so I'm trying to figure out how to do that.
(how to check if we have a Mutable)
jonathan Well, need to add a method in the template if you plan to do that.
pmichaud (I know how to forward to the contents)
jonathan ok 21:22
I can fix that, probably.
pmichaud anyway, since I'm down to only one failing spectest_regression I'm thinking of merging it all into trunk 21:23
jonathan What fails?
purl fails are rare
pmichaud and then we can fix the one regression test. It has to do with class/object attributes
t/spec/S12-class/parent_attribute 1 256 3 6 200.00% 1-3
jonathan parent attributes one?
Oh, geck, I thought I'd fixed that.
pmichaud oh, you probably did -- I probably just didn't port over the fix.
jonathan OK 21:24
pmichaud I was pretty selective about what I ported and didn't port.
jonathan Object.pir?
pmichaud right, haven't done much with Object.pir yet (if anything)
jonathan ok, fix would likely be in there
pmichaud right.
jonathan try merging it and see
really nice work on the other spec test fixes!
pmichaud I wasn't able to make Mutable into a subclass of Any, either.
actually, it was simple. 21:25
jonathan OK
I had very few failures here after I gave it to you for merging.
pmichaud once I figured out that Mutable as subclass of Any wasn't working and left Perl6Scalar as a PMC, everything "just worked"
jonathan OK
We can override isa :-)
pmichaud right now it's (1) override isa 21:26
and (2) update assign to follow a chain of Mutables until we get to the actual value
(and doing #2 seems to require #1) 21:27
okay, I'll look at Object.pir next.
jonathan Hmm...I think I'm meant to go socialize now. To override isa, need to do it in mutable_pmc.template.
pmichaud right, had figured that part out. That seems pretty straightforward with the way you have it set up. 21:28
jonathan Just add overrides for VTABLE INTVAL isa_pmc(PMC* _class) {
and VTABLE INTVAL isa(STRING* _class) {
pmichaud I'm also trying to decide which is more efficient to use
jonathan The first one.
purl the first one is, like, ideal
jonathan Because if we cache somewhere in a static, the PMCProxy for Mutable
Then it can we a walk mro doing pointer comparrisions. 21:29
:-)
pmichaud well, we could... but I'm not sure that's what it's doing. :-)
jonathan Which is probably cheaper than messing with strings.
pmichaud a lot of the isa_pmc() methods seem to convert to strings and then do comparisons
jonathan Well, do this one better. ;-)
pmichaud which feels really wrong to me.
jonathan Yeah, me too.
pmichaud a n y w a y 21:30
jonathan Ok, gotta go
purl EXCUSE ME, I HAVE TO GO WASH MY COMPUTER
pmichaud Object.pir, here I come
Debolaz Completely unrelated to the topic of this channel: Big Buck Bunny is now released - www.bigbuckbunny.org/index.php/download/
pmichaud +.sub '!DOTYEPCHECK' 21:32
shouldn't that be "!DOTYPECHECK
shouldn't that be "!DOTYPECHECK" ? ;-)
at least it's consistently oddly spelled :-)
21:36 gryphon joined
donaldh Ah. (NCI related) Should have thought of that sooner. 21:40
NotFound Somenone has at hand some mmd related bug?
21:41 Auzon joined
donaldh The up-to-date list of NCI function signature types is in srd/call_list.txt 21:41
the PDD is incomplete.
japhb donaldh: too true. 21:42
Maybe I can fix that in a future patch. I just need to get the *current* one accepted.
donaldh japhp: PDD patch? 21:43
japhb No, OpenGL patch ... it affects call_list, because OpenGL has ~ 270 unique signatures.
Meaning, once my OpenGL patch goes in (as soon as signed off by one each of Mac OS X and Win32), then perhaps my sights should turn to the PDD. 21:44
NotFound Is not yet acceepted the "make clean ; make" bug patch? 21:45
japhb NotFound: Yeah, the fix for that is included in my OpenGL patch.
pmichaud separate patches == more likely to be applied :-)
japhb (at least, the part about call_list.txt being missing after a make clean)
pmichaud: I actually thought someone else was doing that,
NotFound That's the part that bugs me. 21:46
japhb but since no one does and it was affecting my users, I included it in mine.
pmichaud ahhh
well, you have a commit bit. If you're comfortable with the "make clean ; make" bug patch, go ahead and apply it. If anyone complains, you can blame me.
NotFound No, the problem is that if affects everyone that uses make clean.
purl okay, NotFound.
NotFound purl: forget the problem 21:47
purl NotFound: I forgot problem
pmichaud (I'd do it but my mind is focused elsewhere at the moment ;-)
japhb NotFound: I know that. I meant -- the people trying to test my OpenGL patch were tripping over this. In order to get my OpenGL patch tested, I had to include that fix. And I did the OpenGL patch before I got the commit rights.
This is all a "transitioning from pre-commitbit to post-commitbit world" pains 21:48
pmichaud indeed.
NotFound japhb: I know, but please don't forget the issue.
21:48 gryphon joined
japhb Of course, if either of you has Win32 or Mac OS X, test my patch, and perhaps I can commit later today. 21:49
pmichaud <-- Linux
japhb (I'm under strict orders not to commit patches that affect the config system without those signoffs)
pmichaud can you commit the 'make clean; make' part?
or does that need testing under different OS's also?
NotFound Send me a Mac and I'll test it ;) 21:50
japhb pmichaud: sure. Let me get my son a snack, and then I'll break it out.
pmichaud Send me a Win32 box and I'll convert it to Kubuntu. :-)
japhb pmichaud: it's a makefile fix. Depends on how you define "config system", but I'll be liberal here and blame it on you. ;-)
pmichaud exactly.
NotFound pmichaud: Before or after doing the test?
donaldh I have a Win32 (vista) box here. 21:51
can I help? 21:52
pmichaud message jonathan we can't use CONST_STRING in mutable.pmc because it's not built at the same time as Parrot. (IIUC, all of the CONST_STRING values get collected into all_cstring.str as part of building Parrot) 21:55
purl Message for jonathan stored.
japhb bak
donaldh: If you test my OpenGL patch, you can be counted as the Win32 test. 21:56
donaldh What do I need?
japhb I think tetragon tested my patch on Mac OS X last night, but he reported the wrong patch version, so I have to reconfirm that OS
NotFound #52976 is still valid?
japhb donaldh: OpenGL and GLUT. The required bits are specified in config/auto/opengl.pm in the patch 21:57
CRAP. I know why tetragon tested with the wrong patch ... someone decided to edit headers in the thread, and we didn't continue CC'ing RT 21:59
donaldh Okay, where do I grab the patch?
japhb OK, I'll have to resend that, just a sec.
donaldh: give me a sec
pmichaud (edit headers) sometimes that happens if someone receives multiple copies of a message and chooses to reply to the wrong one 22:01
japhb pmichaud: I get multiple copies of just about every message, and yes, I have to be careful about the reply. It's quite annoying. 22:02
One of those things computers are supposed to get right *for us*
donaldh: OK, it's now properly attached to the RT. Go to rt.perl.org/rt3/Ticket/Display.html?id=54868 and select the patch named "parrot-opengl-2008-05-28.patch" 22:04
OK, must backlog for a moment and see if I missed anything 22:05
donaldh japhb: what format is the patch? 22:10
japhb donaldh: I believe it was from 'git diff remotes/trunk' -- so in git "enhanced unified" format 22:12
I'm told it will apply for SVN users.
donaldh japhb: with what command/ 22:13
japhb Um ... 'cd parrot-root; patch -p1 < parrot-opengl-2008-05-28.patch' IIRC
donaldh: Which compiler environment are you using? MSVC, MinGW, or cygwin? 22:16
donaldh cygwin
japhb Mind if I add you to purl's "parrot platforms" list?
donaldh sure
japhb parrot platforms? 22:17
purl parrot platforms is Win32/MSVC: particle, Ron; Win32/Cygwin: Limbic_Region, donaldh (Vista); Win32/MinGW: Limbic_Region; Mac OS X: kid51, tetragon (intel/32-bit/10.4), DietCoke (intel/10.4); Debian Linux/i386: japhb; AIX: paco
donaldh japhb: what tests? 22:19
purl dev.catalyst.perl.org/wiki/Testing
japhb donaldh: ./parrot examples/opengl/triangle.pir -- does the triangle spin? 22:21
donaldh: this assumes, of course, that you have the SDK and GLUT installed ... 22:22
(And you'll need to make realclean and reconfigure once you have the SDK and GLUT in place, so that the OpenGL headers can be parsed by Configure) 22:23
donaldh ah, okay.
sorry I don't have GLUT yet. 22:24
japhb donaldh: You can either use Nate Robins' "GLUT for Win32" (quite old, known to work for MSVC, untested on cygwin or MinGW) or freeglut (up to date, and I think works on at least cygwin) 22:25
donaldh thanks 22:26
japhb (Please record the list of packages you need to install, for cygwin, BTW, I want to get the docs filled out)
E,TOO,MANY,COMMAS, 22:27
pmichaud I think thats: E,TOO,MANY,C,O,M,M,A,S,,,,,, 22:29
donaldh :D 22:30
./configure (we'll see)
22:30 particle joined
japhb 'make clean' fix for call_list.txt extracted ... testing ... 22:32
dalek r27948 | pmichaud++ | mutamerge: 22:35
: [mutamerge]: More updates
: * Mutable assign now dereferences any source mutables first.
: * Mutables return true for "isa Mutable"
: * Cleaned up type checking
: * Cleand up default infix:= for non-containers.
diff: www.parrotvm.org/svn/parrot/revision?rev=27948
donaldh japhb: leave this with me. I need to sleep. 22:40
japhb
.oO( Why is a target like 'make coretest' trying to test the library? )
donaldh: huh?
(What do you mean by "leave this with me"?)
pmichaud coretest is all of the tests excluding configuration subsystems and documentation
japhb pmichaud: I understand that. I was questioning whether that was what it *should* be. :-) 22:41
donaldh japhb: testing the patch. I'm installing GLUT, rebuilding parrot, etc. and need to sleep first.
pmichaud basically, "does everything that is supposed to run still run?"
japhb ah, gotcha
sleep well, donaldh
donaldh thanks
dalek r27949 | japhb++ | trunk: 22:42
: [Makefiles] Fix call_list.txt 'make clean; make' failure
diff: www.parrotvm.org/svn/parrot/revision?rev=27949
japhb NotFound: You should be happier now. :-) 22:43
NotFound japhb++ 22:44
pmichaud japhb++ # happier.
japhb regenerates OpenGL patch to no longer include that fix ... 22:46
22:54 tetragon joined 22:59 rdice joined
japhb msg tetragon OK, make that the 2008-05-30 patch -- I had to regenerate it. 23:02
purl Message for tetragon stored.
NotFound Where are the PIO printf formats documented? 23:04
tetragon haha
I was about to get around to -30 23:05
Just have to deal with a database first
23:12 kid51 joined 23:15 maxs42 joined
NotFound Looks like they are documented only in the comments of the Parrot_sprintf_format function. 23:16
tetragon japhb: 10.5 on PPC still spins with 20080530 23:28
japhb EXCELLENT 23:30
tetragon: do you have any other OS X variants? 23:31
I'm feeding the bot
tetragon Just 10.5 on 32-bit ppc and 10.4 on 32-bit intel 23:32
japhb great, thank you
parrot platforms?
purl parrot platforms is, like, Win32/MSVC: particle, Ron; Win32/Cygwin: Limbic_Region, donaldh (Vista); Win32/MinGW: Limbic_Region; Mac OS X: kid51, tetragon (intel/32-bit/10.4, PPC/32-bit/10.5), DietCoke (intel/10.4); Debian Linux/i386: japhb; AIX: paco
japhb OK, so we just need a Win32 confirm 23:33
jonathan pmichaud: Uh, typo + copy paste = consistent oddness. :-) 23:35
Need to sleep now...talks tomorrow. 23:36
Nice work on getting mutables stuff in shape.
If you didn't fix parent_attributes, feel free to go ahead and merge, and I fix that later.
pmichaud thanks. 23:37
I'm having trouble getting method calls to work, though.
jonathan Oh?
pmichaud It keeps thinking "0 arguments to new"
jonathan Weird
Surely we'd be seeing lots more failures?
pmichaud I think 'new' isn't called very often
it's only when we have $scalar.new(...args...) 23:38
jonathan Hmm
oh
when it's called on a varaible rather than a proto?
pmichaud yes.
jonathan ok
I've had too much chatruesse and am too tired to debug that now.
I can take a look tomorrow. 23:39
pmichaud okay. for some reason callmethodcc is losing the arguments 23:40
er, callmethodcc on a Perl6Scalar is losing the arguments
I'm wondering if it's because Perl6Scalar is a PMC that is reporting itself as an Object
jonathan Hmmm 23:41
Not sure.
nopaste "pmichaud" at 76.183.97.54 pasted "trace of $u .= new( :x(3) )" (23 lines) at nopaste.snit.ch/13120
jonathan Well, the flags are not imitated on the scalar, if that's what you mean.
pmichaud by the point of offset 52 we can see that P9 has been created and isa Foo. (But it's a "PMC" Foo) 23:42
(as opposed to an Object(Foo) )
at offset 64 we can see the arguments via set_args 23:43
then at offset 72 we call 'new' on P9 (still a "Foo")
but by the time we reach the method, the arguments have been lost.
gdb shows that "current_args" is indeed NULL when we get back from vtable_find_method 23:44
jonathan That is...odd.
pmichaud so that means current_args was null going into vtable_find_method 23:45
jonathan Now I'm wondering, if some call is happening between this that somehow clobbers the real call? 23:46
But I can't think where. 23:47
OK, I need sleep, I have 2 hours 40 minutes of talks to deliver tomorrow 23:48
pmichaud okay, no problem. I'll keep looking for it. 23:49
jonathan If you don't figure it out tonight, I'll get a debugger on it tomorrow and do some tracing.
pmichaud I may see if I can figure out why Perl6Scalar wasn't working as a subclass of Any
it was *mostly* working... just would segfault on "does 'array'"
jonathan Ah. 23:50
Odd
pmichaud yes. everything else seemed to be okay, including "does 'ArrayRef'"
jonathan I was fighting Parrot segfaults along the way of implemtning this.
pmichaud okay, get some sleep. 23:51
best wishes on the talks.
jonathan If you were wondering why typecheck function takes a result PMC as a parameter rather than getting it as a return value - that was working around Parrot bugs I didn't have the energy to track down yet.
OK, thanks....night.
23:51 teknomunk joined
pmichaud say hello to everyone for me -- wish I could be there. 23:51
jonathan will try and remember to do that :-)
You've been mentioned here. :-)
pmichaud (typecheck function) I was thinking of just doing a standard method call
jonathan Good luck!
purl i think good luck is all I can say.
jonathan Neither the Parrot_call_meth_fromc_args way nor the Parrot_PCCINVOKE way work. 23:52
:-(
pmichaud any idea why?
or is this just a known "don't try it, it does't work"?
jonathan Parrot_PCCINVOKE - yes, it doesn't handle the case when you have a Sub PMC rather than an NCI. 23:53
I have a good idea how to fix that, but was more interested in getting the mutables stuff sorted.
pmichaud okay.
jonathan The other way - no, I don't know why that one is broken and it segfaulted in a nasty place.
It wasn't obvious what was wrong at all.
Something in inter_call.c, IIRC. 23:54
pmichaud okay, that gives me stuff to work with.
jonathan OK
Sleep time, anyway
night
dalek r27950 | pmichaud++ | mutamerge: 23:55
: [mutamerge]:
: * Oops, gotta pass the properties to the Perl6Scalar.
diff: www.parrotvm.org/svn/parrot/revision?rev=27950
NotFound japhb: triangle spins in a c++ build. 23:57