|
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 | |