|
Parrot 0.6.3 "Beautiful Parrot" Released | parrotcode.org/ | 5/649/88 new/open/stalled tix | logged in irclog.perlgeek.de/parrot/today Set by moderator on 17 June 2008. |
|||
|
00:10
AndyA joined,
apeiron_ joined
|
|||
| DietCoke | smoke is on life support. Smolder hasn't quite made it yet. | 00:19 | |
| magnachef | I'm reading through the "RFP: Parrot Needs Better Smoke Reports", and it seems like something I could take on | 00:20 | |
| kid51 is back from dinner | |||
| magnachef waves | 00:21 | ||
| kid51 | Yeah, Dan, I was going to send you that link. | ||
| Also rt.perl.org/rt3/Ticket/Display.html?id=49276 | |||
| magnachef | yeah, I came across it and it looks like it ties in with the other stuff I wanted to do | ||
| kid51 | hachi: purl just did it again! | 00:22 | |
| hachi | yeah, I get an SMS anytime she goes down | ||
| kid51 | Now on a different topic: It appears all my failure to 'make perl6' problems were bogus. | 00:23 | |
| DietCoke | I was afraid of that. =-) | ||
| hachi | zsh: segmentation fault ./purl1 | ||
| wonder if I have gcc | |||
| DietCoke | that RFP may not reflect state of the art smolder reality, which i think is on a mail to the list around the time of the hackathon. | ||
| I will try to get the test harness stuff done by the weekend at the latest. | 00:24 | ||
|
00:24
Zaba_ joined
00:26
purl joined
|
|||
| hachi | msg kid51 hello | 00:26 | |
| purl | Message for kid51 stored. | ||
| hachi | dang, she stored it | ||
| kid51 says hello world and waits to see what purl does. | 00:27 | ||
| She's working. | 00:28 | ||
| BTW, when did purl acquire gender? | |||
| Now let me try to store a message. | |||
| DietCoke | she's always been she. | ||
| kid51: another good way to get feedback from me on a ticket is to assign it to me. | 00:29 | ||
| though I'm not sure how scalable RT makes that. | |||
| kid51 | DietCoke: I've always thought that the assignee (?) should be the person who is taking responsibility for a ticket -- whether that be the owner or one who has taken on the task of solving it. | 00:30 | |
| DietCoke | yah. in other ticketing systems there's a "person who owns" and a "person whose job it is to work on ticket right now." | 00:31 | |
| kid51 | In the case of this ticket, you were the original requestor, so I think that means you always get mail about the ticket. | ||
| Correct? | |||
| DietCoke | if you do it as a reply and not a comment, yes. | ||
| in a year we'll all be using trac, for better or ill. | |||
| kid51 | What is trac? | ||
| DietCoke | ticketing system/wiki/svn integration. | 00:32 | |
| kid51 | I was about to say, "purl, trac?" -- but she ducked out again! | ||
| DietCoke | nothing to worry about yet. | ||
| kid51 | Does it include a pony as well ;-) | ||
|
00:59
Limbic_Region joined
01:02
DietCoke joined
01:03
bacek joined
|
|||
| hachi | kid51: she's always been a she | 01:03 | |
| see pound.perl.org, I think | |||
| so guess what kid51 | 01:06 | ||
| kid51 | Eh? | ||
| hachi | no more using message center for now | ||
| sleepycat on 10.4 appears to be broken or someething | 01:07 | ||
| kid51 | Was I a bad boy? | ||
| hachi | not you, just... something | ||
| kid51 | Can purl's other wonderful talents continue to be used? | ||
| hachi | yeah, I'm gonna start her back up... but I'm gonna ask that you not try the message center for a few hours | 01:08 | |
| I need to get some work (dayjob) done, and then I can get about to debugging her again | |||
| kid51 | Can you go back to #parrot and post that section via nopaste? | ||
| hachi | I'm on #parrot, what the devil are you asking for? | 01:09 | |
| kid51 | Oops, last message was meant for side conversation. | ||
| hachi | :D | ||
| kid51 | magnachef and I are discussing smoke testing. | ||
|
01:09
tetragon joined
01:10
purl joined
|
|||
| kid51 | purl nopaste? | 01:10 | |
| purl | somebody said nopaste was at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or paste.husk.org/ or poundperl.pastebin.com/ or paste.scsys.co.uk/ or don't bother me while I'm eating or App::Nopaste or tools/dev/nopaste.pl | ||
| kid51 | Anyone here familiar with 'dprofpp'? | 01:13 | |
| nopaste | "kid51" at 71.247.50.75 pasted "perl -d:DProf tools/build/pmc2c.pl --c src/pmc/null.pmc" (22 lines) at nopaste.snit.ch/13401 | ||
| magnachef | pastebin.ca/1056128 | ||
| there ya go kid51 | 01:14 | ||
| kid51 | Got it. | 01:15 | |
| I guess that since you live near the Canadian border, you use a Canadian pastebot, eh? | |||
| magnachef | heh | ||
| I can see Canada from work | 01:16 | ||
| bacek | kid51: what about dprofpp? | ||
| magnachef heads home | 01:17 | ||
| purl | Slacker! | ||
| kid51 | I'm wondering if we can speed up tools/build/pmc2c.pl, as it's called >100 times by 'make'. Of the various ways it's called, the '--c' option runs the longest. So I'm wondering if dprofpp can show me where to look for speedups. | ||
| bacek kid51: | 01:35 | ||
| use Memoize; | |||
| memoize('name'); | |||
| in Pmc2c/Method.pm | |||
| use Memoize; | |||
| memoize('subst') | |||
| in Emittter.pm | 01:36 | ||
| Gives me 30% performance boost | |||
| ok. 20% :) | |||
| kid51 | Hmm. Didn't realize Memoize was Perl 5 core. | 01:37 | |
| bacek | hmm... We stuck with coreonly modules? | 01:39 | |
| DietCoke | yes. | 01:40 | |
| in general. | |||
| kid51 | If it's not core, then we have to include it in the Parrot distribution itself. | ||
| DietCoke | see: 'corelist'. it's core in 5.7.3 | ||
| bacek | Memoize was first released with perl 5.007003 (patchlevel perl/15039, released on 2002-03-05 | ||
| DietCoke | anything in core as of 5.8.0 is fair game. | ||
| Yes. liberally apply Memoize, esp. if you're seeing a 20% boost. | 01:41 | ||
| kid51 | bacek: So your recommendation would be to focus on the most frequently called subroutines (4th column in dprofpp output)? | ||
| bacek | kid51: In general - yes | 01:42 | |
| kid51 | Okay. I won't get to this tonight, but I will make a note of it, as this is the oldest RT ticket which I myself have taken (rt.perl.org/rt3/Ticket/Display.html?id=38194). | 01:43 | |
| bacek | rewrite_vtable_method is next good candidate | ||
| kid51 | Here's dprofpp output for an instance of the --dump option: | 01:45 | |
| nopaste | "kid51" at 71.247.50.75 pasted "perl -d:DProf tools/build/pmc2c.pl --dump src/pmc/null.pmc" (21 lines) at nopaste.snit.ch/13402 | ||
| bacek | kid51: looks like your disk is very slow... | 01:47 | |
| DietCoke | purl? | ||
| purl | DietCoke? | ||
| DietCoke | corelist? | ||
| purl | hmmm... corelist is wrong, then. | ||
| DietCoke | no, corelist is how you find out when a module was included in perl core. | 01:48 | |
| purl | okay, DietCoke. | ||
| DietCoke | -> | ||
| Auzon | purl, corelist is also search.cpan.org/perldoc?Module%3A%3ACoreList | 01:49 | |
| purl | okay, Auzon. | ||
| pmichaud | is there a way to indicate that a sub should not accept any params? | 01:50 | |
| (in PIR) | |||
|
01:50
bacek_ joined
01:51
stupidbot joined
|
|||
| bacek_ | I promise that stupidbot will be good :) | 01:55 | |
| stupidbot: corelist Memoize | |||
| stupidbot | bacek_: Memoize was first released with perl 5.007003 (patchlevel perl/15039, released on 2002-03-05) | ||
| bacek_ | there is no other modules loaded in stupidbot. | ||
|
01:57
magnachef joined
|
|||
| kid51 | bacek_: And that was my *fast* disk: my Linux VM. | 01:58 | |
| bacek_ | Elapsed Time = 0.408132 Seconds | 01:59 | |
| User+System Time = 0.148132 Seconds | |||
| It's definitely spend most time on IO... | |||
| kid51 | But that's what we would expect for the --dump option, I'd think? | 02:00 | |
| it's printing to disk. | |||
| pmichaud | (my question is RT#39844, so answer is now.) | ||
| er, "no" | |||
| purl | i heard er, "no" was a short answer | ||
| bacek_ | RT#39844 | 02:05 | |
| stupidbot | RT 39844d: [BUG] Parrot doesn't do args checking for a sub without params - open | ||
| bacek_ | pmichaud: about (RT#56230) I can move all Complex's related functions into Complex.pir. Do it? | 02:16 | |
| pmichaud | sure. | ||
| bacek_ | pmichaud: ok | ||
| later today... | |||
| purl | well, later today is Hingis-Seles, the winner of that one playing Venus. | ||
| pmichaud | note that some of them will be moving _out_ of Complex.pir into Any.pir :-) | ||
| bacek_ | pmichaud: ok :) | 02:17 | |
| pmichaud: stupid question. I tried to add adverbs into parser. Successfully hacked grammar. But can't figure out, what should be created for 'structural' in colonpair... | 02:34 | ||
| dalek | r28699 | pmichaud++ | trunk: | 02:41 | |
| : [rakudo]: | |||
| : * Add workarounds for argument checking of 0-ary functions (RT#56366). | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28699 | |||
| r28700 | cotto++ | libs4php: | 02:59 | ||
| : [plumhead] make clean doesn't clobber important files now and $(LOAD_EXT) is | |||
| : properly defined. There are also a couple more granular PMC-related targets. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28700 | |||
| r28701 | cotto++ | libs4php: | 03:01 | ||
| : [plumhead] removed trailing whitespace. d'oh! | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28701 | |||
| cotto_home | It's so nice to finally be able to commit changes (provided they're not made at work). | 03:02 | |
|
03:15
tetragon joined
|
|||
| bacek_ | perl6: my $a; my $b; ($a, $b) = 1..2; | 03:17 | |
| polyglotbot | OUTPUT[Method 'lvalue' not found for invocant of class 'PAST::Stmts'ā¤current instr.: 'parrot;PAST::Compiler;as_post' pc 2787 (src/PAST/Compiler.pir:718)ā¤called from Sub 'parrot;PAST::Compiler;post_children' pc 1692 (src/PAST/Compiler.pir:364)ā¤called from Sub 'parrot;PAST::Compiler;as_post' pc 1957 | ||
| ..(src/PAST/Compiler.pir:492)ā¤called from Sub 'par... | |||
| Coleoid | I've built parrot and rakudo locally, on a windows box--can anyone help me with the next steps to run the spectests? | 03:19 | |
|
03:20
tetragon joined
|
|||
| Coleoid | Oh, and hi! :D | 03:20 | |
| I know I've seen links for running the spectests around somewhere, | 03:22 | ||
| bacek_ | Coleoid: make spectest_regression | ||
| in languages/perl6 | |||
| Coleoid | but suddenly I've found enough p6 resources around that I can't find the relevant link. | ||
| bacek: Thanks! Trying... | 03:23 | ||
| Oh argh. | |||
| I'm going to need to get subversion building on my machine, it seems. I've unfortunately updated to a tool which advanced my local svn working copy to 1.5, | 03:24 | ||
| ...which is incompatible with svn 1.4.x, which are the only packaged svn builds out there yet... | 03:25 | ||
| Is this just one of the things that goes without saying, that the deeper you get into open source... | 03:26 | ||
| ...the more time you spend getting your prerequisites in order, and their prerequisites, & c? | 03:27 | ||
| cotto_home | yeah, but after a while you get them all in order | 03:28 | |
| Coleoid | ... | ||
| cotto_home | then you forget how much of a pain it was until you have to set it up on a new machine | ||
| Coleoid | Probably about three days after I wipe Windows and install some Linux or BSD... :D | 03:29 | |
| cotto_home | win32 developers are welcome too | 03:30 | |
| Coleoid | I'd like to be such. | ||
|
03:31
clunker3_ joined
|
|||
| cotto_home | if/when you get it working, you can update the wiki page: www.perlfoundation.org/parrot/index...on_windows | 03:31 | |
| shorten | cotto_home's url is at xrl.us/bjcdh | ||
| Coleoid | I'm still paddling to get all the way up to zero. | 03:33 | |
| I'm off to get the SVN project loaded, and built, at which point I should be able to run spectests. Thanks for the hand so far, I'll be back if I stall out... | |||
| Uh. | 03:52 | ||
| For pity's sake. | |||
| So to build svn, I should install Python, and ActiveState Perl (after already building my own from source, which didn't satisfy Parrot, then installing Strawberry), and Apache 2, and does this ever bottom out? | 03:54 | ||
| cotto_home | tortoisesvn doesn't work? | ||
| Coleoid | TortoiseSVN works great for getting parrot and friends, | 03:55 | |
| but the spectest_regression target relies on the command-line SVN tools. | 03:56 | ||
| Which aren't included in TSVN 1.5, and there's no pre-built for that anywhere on the net that I find... | |||
| (1.5 is brand-new...) | |||
| And 1.5 does an auto-upgrade of local copies (incompatible with 1.4.x...) | 03:57 | ||
| And gah. | |||
| Perhaps if I come back in a couple of weeks everything will be over this temporary twistup. | 03:58 | ||
| cotto_home | if the older versions include the cli tools, you can get them from sourceforge.net/project/showfiles.p..._id=151948 | ||
| shorten | cotto_home's url is at xrl.us/gdgvw | ||
| cotto_home | it strikes me that this wouldn't be a bad time to try to get my xp vmware machine booting again | 03:59 | |
| Coleoid | Yeah, that may be best. I'd just have to nuke my current working copies, downgrade to TSVN 1.4.x, reup, I should be good... | 04:00 | |
| cotto_home: Really? All my whining and you think it's a good time to dive in? Am I whining wrong or something? :D | 04:01 | ||
| cotto_home | I'm most likely going to be doing it later anyway, so now'd be a good time to get familiar with the process. | 04:03 | |
| Coleoid | Thanks for your help, gonna scram, wife is home from city council. I'll let you know how I fared when next we meet. | ||
| cotto_home | good luck | ||
| purl | good luck is probably all I can say. | ||
| Coleoid | :D | ||
| cotto_home | Coleoid++ | 04:07 | |
| diakopter | Coleoid: tigris has win32 command-line svn installers... svn-1.4.6-setup.exe from subversion.tigris.org/servlets/Proj...derID=8100 do you really have to have 1.5.0? | 04:13 | |
| shorten | diakopter's url is at xrl.us/gdobo | ||
| cotto_home | msg Coleoid tigris has win32 command-line svn installers... svn-1.4.6-setup.exe from subversion.tigris.org/servlets/Proj...derID=8100 do you really have to have 1.5.0? | 04:16 | |
| purl | Message for coleoid stored. | ||
| shorten | cotto_home's url is at xrl.us/gdobo | ||
|
04:40
Zaba joined
05:02
Ademan joined
05:04
Psyche^ joined
05:08
Theory joined
05:09
Infinoid joined
|
|||
| dalek | r28702 | petdance++ | trunk: | 05:11 | |
| : regex tweaked so vim does not get confused | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28702 | |||
| pmichaud | bacek_: list assignment isn't implemented | 05:21 | |
| bacek_ | pmichaud: I can see it :) | 05:24 | |
| pmichaud: What about 'structural colonpair'? | 05:25 | ||
| pmichaud | ...structural colonpair? | 05:28 | |
| bacek_ | | <postcircumfix> {*} #= structural | 05:29 | |
| this from token colonpair. | |||
| pmichaud | that would be for things like :(...), :{...}, :<...>, etc? | 05:30 | |
| bacek_ | yes | ||
| pmichaud | I don't think those are implemented either. I don't even remember what they mean. :-) | ||
| bacek_ | they definetly not implemented :) | ||
| My question is how to implement it? :) | |||
| bacek_: pmichaud: stupid question. I tried to add adverbs into parser. Successfully hacked grammar. But can't figure out, what should be created for 'structural' in colonpair... | 05:31 | ||
| pmichaud | depends on the structure. :(...) is for signatures. :<...> and :[...] are for identifier extensions. :{...} is an adverbial closure. | 05:32 | |
| in each case it's not likely to be a simple PAST node, but will depend on the context. | 05:33 | ||
| for example, :<...> is used after category identifiers, as in infix:<+> | |||
| bacek_ | all this handled in 'method postcircumfix' I think... | 05:41 | |
| So, in 'method coonpair' I just have $<postcircumfix>. | 05:42 | ||
| colonpair | |||
| purl | well, colonpair is really a term | ||
| bacek_ | what difference between 'token', 'term' and 'rule'? | 05:44 | |
| (And colonpair is token in STD.pm...) | |||
| dalek | r28703 | pmichaud++ | trunk: | 06:00 | |
| : [rakudo]: | |||
| : * Add .pick methods and functions. | |||
| : * Add .elems methods and functions to Any. | |||
| : * Resolves RT#56266 and RT#49085. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28703 | |||
| stupidbot | RT 56266d: rand gets "invoke() not implemented in class 'Float' " - Revision: 28671 - open | ||
| dalek | r28704 | petdance++ | trunk: | 06:06 | |
| : adding some type sanity | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28704 | |||
|
06:18
Zaba joined
06:25
Zaba_ joined
|
|||
| dalek | r28705 | pmichaud++ | trunk: | 06:33 | |
| : [rakudo]: | |||
| : * spectest-progress.csv update | |||
| : * 73 files, 944 passing tests as of 2008-06-26 00:00 | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28705 | |||
| r28706 | petdance++ | trunk: | 06:36 | ||
| : consting and reheaderizing | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28706 | |||
| pmichaud | bacek: 'token' is a regex that doesn't backtrack (except where explicitly indicated) | 06:51 | |
| back: 'rule' is a regex where whitespace in the pattern corresponds to intertoken separators in the string to be matched | |||
| dalek | r28707 | pmichaud++ | trunk: | 06:56 | |
| : [rakudo]: | |||
| : * Move .cis and .unpolar into Any. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28707 | |||
| bacek_ | pmichaud: thanks for clarification. | 07:01 | |
| dalek | Christoph Otto | plumhead_renaming: | 07:27 | |
| link: www.perlfoundation.org/parrot/index...d_renaming | |||
| shorten | dalek's url is at xrl.us/d2gpk | ||
|
08:17
TiMBuS|Away joined
|
|||
| TiMBuS | rebooted in time to see myself go. damn windows games in WINE :( | 08:18 | |
|
08:39
cognominal joined
|
|||
| jonathan | morning all | 09:30 | |
| purl | morning, jonathan | ||
| jonathan | So, Rakudo day. Time-shifted a little, because I seem to have got some insomnia... | ||
|
09:33
masak joined
09:54
Ademan joined
09:56
bacek joined
|
|||
| dalek | r28708 | jonathan++ | trunk: | 09:57 | |
| : [core] Parse :lexid('foo'). | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28708 | |||
|
10:08
iblechbot joined
|
|||
| jonathan | Oh IMCC | 10:26 | |
| The sight of your internals | |||
| Will not bring world peace | |||
| dalek | r28709 | fperrad++ | libs4php: | 10:27 | |
| : [php] to_number in PMC | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28709 | |||
| bacek | jonathan, rewrite IMCC in Parser::Yapp? | 10:31 | |
| stupidbot, search Parser::Yapp | 10:33 | ||
| stupidbot, find Memoize | 10:36 | ||
| stupidbot, corelist search Parser::Yapp | |||
| stupidbot | bacek: Found no module matching /Parser::Yapp/ | ||
| bacek | hmm... not in corelist of cause... | 10:37 | |
| jonathan | bacek: Would prefer to write something that does POST to PBC. | 10:38 | |
| Then parse PIR with PGE, and use the actions to produce POST. | |||
| bacek | hey, It's different approach! Then you have to provide precompiled pbc for PGE | 10:40 | |
| jonathan | Yeah, of course, that's the issue. | 10:45 | |
| Phew. Finally got :lexid to work. That should make pmichaud happy. | 10:46 | ||
| dalek | r28710 | jonathan++ | trunk: | 10:54 | |
| : [core] Implement :lexid(...). | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28710 | |||
|
10:56
skv joined
11:01
jan joined
|
|||
| mj41 | Hi, I added MSWin32 machine to TapTinder - tt.ro.vutbr.cz/report/pr-Parrot/rp-trunk | 11:23 | |
| jonathan | mj41: Great, thanks! | 11:24 | |
| mj41: How hard would it be to also get reports like this, for make spectest_regression target in languages/perl6/ ? | 11:25 | ||
| mj41 | It is next on my TODO list :-) | 11:26 | |
| jonathan | Oh, great. :-) | ||
| moritz | mj41++ | ||
| cognominal | jonathan, how can I add the buiild on my macbook to taptinder? | 11:27 | |
| moritz | does that make you mj42? ;-) | ||
| jonathan | cognominal: I don't know - but mj41 is the person to ask. :-) | ||
| cognominal | ok | 11:28 | |
| mj41 | moritz: no, 42 is too great number for me :-) | ||
| purl | okay, mj41. | ||
| moritz | mj41: ;) | 11:29 | |
| cognominal | mj41? I did a ack -i on parrot source and did not see taptinder | 11:30 | |
| mj41 | taptinder.org | ||
| cognominal: it is not easy to add next machine, but doable | 11:32 | ||
| cognominal | ho, that's a per branch thing? | 11:33 | |
| mj41 | it is prepared for it | 11:34 | |
| but many parts are prototypes only | 11:37 | ||
|
11:41
ruoso joined
|
|||
| moritz | mj41: after reading the wiki, it seems that you have an IRC bot for reporting | 11:42 | |
| mj41: would you care to send it here to report test failures? | |||
| mj41 | no IRC bot yet, probably you should fix my English | 11:43 | |
| moritz | oh no, I just didn't read the "future" in "long future feature list" ;) | 11:44 | |
| mj41 | :-) | 11:53 | |
|
12:13
skv_ joined
12:14
mj41_ joined
12:16
nopaste joined
|
|||
| moritz | half of my spectest_regression runs are failures due to some GC problems | 12:35 | |
| pmichaud | I've started using the tools/test_summary.pl script, which passes -G to parrot | 12:38 | |
| jonathan | morning pmichaud | 12:47 | |
| moritz | pmichaud: isn't that the wrong approach? shouldn't we try to expose bugs rather than hiding them? | ||
|
13:04
iblechbot joined
|
|||
| dalek | r28711 | pmichaud++ | trunk: | 13:08 | |
| : [rakudo]: | |||
| : * Small update to postfix:<i>, so that (1i)i comes up with the | |||
| : correct result. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28711 | |||
| moritz | is that tested somewhere? | 13:09 | |
| pmichaud | moritz: the -G bug has (or bugs have) been around literally for years. I don't have a good feel for when it/they might get fixed. | 13:10 | |
| moritz | :( | ||
| pmichaud | so, for the most part it's interesting to note "oh, here's another place where it showed up", but rakudo doesn't seem to provide any useful information that is likely to lead to a fix. | 13:12 | |
| moritz | so it's really a parrot bug (or multiple so), nothing rakudo specific (for example rakudo specific PMCs)? | ||
| pmichaud | the odds are very high that it's a parrot bug. | 13:13 | |
| masak | what makes the CG bug(s) hard to fix? | ||
| pmichaud | any change -- even turning on tracing -- causes the bug to disappear. | ||
| moritz | masak: mostly that they aren't easy to reproduce with small code | ||
| masak | ouch | ||
| en.wikipedia.org/wiki/Heisenbug#Heisenbugs | 13:14 | ||
| pmichaud | they're extremely sensitive to the order in which things occur in Parrot, so once you start doing things to locate the bug, you can't reproduce it. | ||
| masak | but they _can_ be reproduced in their exact circumstances, no? | 13:15 | |
| pmichaud | personally, I'm betting/hoping that whiteknight's new gc algorithm gets rid of the bug altogether | ||
| they can be reproduced in the exact circumstances, yes. | |||
| masak | but that includes not being able to introspect the environment, I guess... | ||
| moritz | pmichaud: re whiteknight, probably - but he'lll also introduce new ones :( | 13:16 | |
| pmichaud | at least not being able to introspect the environment in ways that seem useful thus far. Chromatic has done a lot of work on this (actually, many of us have) -- but I suspect it's just a simple algorithmic or pointer bug somewhere in Parrot's depths that is waiting for someone to stumble upon it. | 13:17 | |
| (introduce new ones) -- sure, there will be new ones, but at least we'll have some fresh eyes looking at them, and hopefully the code will be a bit better structured so that it'll be easier to track them down. | 13:18 | ||
| (complex testing of (1i)i ) -- no, I don't think it's tested anywhere -- I just happened to notice it in scrollback a day or so ago and it's been in the back of my head to fix. :-) | |||
| moritz | I can write a test for it | 13:19 | |
| pmichaud | perl6: say (1i)i; # testing | 13:22 | |
| polyglotbot | OUTPUT[0+1iā¤] | ||
| pmichaud | polyglotbot hasn't updated either :-( | ||
| jonathan | pmichaud: Currently working on using :instanceof so we can have Sub, Method, Block types etc. | 13:29 | |
|
13:29
Zaba joined
|
|||
| pmichaud | jonathan: excellent | 13:29 | |
| jonathan | Got two failing sanity tests after the switch...one of them turned out to be a Parrot bug, which I've fixed. The other looks like a Parrot issue too...pain to find... | 13:30 | |
| moritz | jonathan: partly tested in S02-builtin_data_types/anon_block.t (at least on the the perl6 level) | ||
| pmichaud | jonathan: thanks for quick work on :lexid -- I'll give it a fuller test shortly | ||
| jonathan | pmichaud: Sure, hopefully it works for you. | 13:32 | |
| pmichaud | I'll add my (updated) test, at any rate. | 13:33 | |
| dalek | r28712 | pmichaud++ | trunk: | 13:36 | |
| : [core]: | |||
| : * Add a test for :lexid/:outer implementation by jonathan++ . | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28712 | |||
| DietCoke | the gc bugs can be tracked with the --gcdebug runcore, and in my experience, if you can occasionally get a GC bug on one platform without it, you can always get the gc bug elseewhere with it. there's a wiki page and two articles on ora by chromatic about this. | 13:39 | |
| pmichaud | jonathan: oops, looks like you've run into the same problem I had with my lexicals patch... nopaste coming | ||
| DietCoke | This was a miracle for me, because tcl would often trip over some GC bug on my osx box, and no one could duplicate it on linux. | ||
| DietCoke hurls www.perlfoundation.org/parrot/index...ng_gc_bugs :: Fixing GC Bugs | 13:40 | ||
| (that has links to chromatic's bugs on the bottom.) | |||
| s/bugs/articles/ | 13:41 | ||
| warning: sloooooooooow. | |||
| nopaste | "pmichaud" at 76.183.97.54 pasted ":outer in .pbc still uses wrong sub" (55 lines) at nopaste.snit.ch/13404 | ||
| jonathan | wtf... | 13:42 | |
| pmichaud | let me see if I can verify that it is in fact the wrong sub.... | ||
| jonathan | That makes no sense, we look up the outer at compile time and store the outer sub PMC, then freeze the lot, or so I thought... | ||
| pmichaud | yes, that's what I think as well | ||
| but *something* isn't right. | |||
| DietCoke | I didn't see a patch that updated how outer works, just one to parse lexid. | 13:43 | |
| dalek | r28713 | jonathan++ | trunk: | ||
| : [core] Make multiple dispatch work when you have your own sub type. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28713 | |||
| DietCoke | was that all in r28708? | ||
| pmichaud | DietCoke: there were two commits for :lexid | 13:44 | |
| one for parse, one for implementation. | |||
| jonathan | That one you just mentioned was just parse. | ||
| DietCoke | ah, 28710 was the impl. danke. | ||
|
13:44
gryphon joined
|
|||
| nopaste | "pmichaud" at 76.183.97.54 pasted ".pbc definitely grabs the wrong :outer" (55 lines) at nopaste.snit.ch/13405 | 13:45 | |
| DietCoke | gah, commented out code. | ||
| bad jonathan, no donut. =-) | |||
| jonathan | DietCoke: Yeah, I have it removed locally, I spotted that just now in a debug trace. | ||
| DietCoke | jonathan++ | 13:46 | |
| Sorry, been fighting against that in a codebase I have to maintain at work. =-) | |||
| pmichaud | I want to re-do it a bit to make sure it throws an exception if :outer refers to a lexid that is in use by multiple subs | ||
|
13:47
jay joined
|
|||
| pmichaud | but that's an easy change, once we get the .pbc working. | 13:47 | |
| jonathan | DietCoke: it's gone | ||
| dalek | r28714 | jonathan++ | trunk: | ||
| : [core] Remove commnented out code accidentally left from earlier commit. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28714 | |||
| jonathan | pmichaud: Just fighting with the remaining test fail I have at the moment...give me a moment on that first. | 13:48 | |
| pmichaud | sure, no problem. | ||
| I need a short break anyway, so bbiab | |||
| jonathan | ok | ||
| DietCoke | I don't see anything obviously wrong with the patches. | ||
| jonathan | Thanks for sanity check. | 13:49 | |
| DietCoke | pmichaud: I've seen 0-ary referred to as "nullary". | ||
| and there's a patch ready to go for turning that on for parrot; Just needed some feedback on how to deal with main. | 13:50 | ||
| jonathan: RT#39844 has another core thing that might let patrick remove some hacks in perl6, if you can get it working. Chromatic and I got close but no ciagr. | 13:54 | ||
| stupidbot | RT 39844d: [BUG] Parrot doesn't do args checking for a sub without params - open | ||
| DietCoke | stupidbot, owner? | ||
| (what's with the d after the ticket #?) | |||
| moritz | DietCoke: that would be bacek | ||
| DietCoke | purl, stupidbot owner is bacek | 13:55 | |
| purl | OK, DietCoke. | ||
| DietCoke | message bacek < stupidbot> RT 39844d: ... what's with the d? | ||
| purl | Message for bacek stored. | ||
| stupidbot | RT 39844d: [BUG] Parrot doesn't do args checking for a sub without params - open | ||
| DietCoke | message bacek You should also make stupidbot smart enough to know he's already done that in the last 5m. | 13:56 | |
| purl | Message for bacek stored. | ||
|
13:56
rdice joined
14:04
jhorwitz joined
14:08
tco joined
14:14
magnachef joined
|
|||
| DietCoke rethinks including Test::Harness 3 into parrot. | 14:16 | ||
|
14:20
Andy joined
14:23
jay left
|
|||
| jonathan | pmichaud: ping - need PAST/PCT help! | 14:30 | |
| purl | I can't find - in the DNS. | ||
| Tene | jonathan: what's the problem? | 14:32 | |
| purl | hmmm... the problem is that URI is not subclassible | ||
| Tene | purl: forget the problem | ||
| purl | Tene: I forgot problem | ||
| jonathan | Tene: methods are not getting :outer generated | 14:33 | |
| I haven't got much more on it than that yet... | 14:34 | ||
| DietCoke sums up his pondering to RT and asks for comments. | 14:37 | ||
| jonathan | oh, arses | 14:39 | |
| ## FIXME: RT#47794 - Parrot currently doesn't allow both | |||
| ## :method and :outer flags on a sub, so if we have :method | |||
| ## we automatically skip :outer processing. | |||
| stupidbot | RT 47794d: [BUG] objects - :method doesn't work with :outer() - open | ||
| jonathan | and | 14:40 | |
| ## FIXME: RT#47956 | |||
| ## PIR doesn't compile properly if :outer points to a sub | |||
| ## with :init/:load flags on it. | |||
| stupidbot | RT 47956d: [BUG] :init :load cannot be target of :outer in compiled PIR - open | ||
| DietCoke | "simple fix" not so simple. =-) | 14:44 | |
| jonathan | class Foo { method bar { say &bar.WHAT; } }; Foo.new.bar | ||
| Method | |||
| sub foo { say 42 }; say &foo.WHAT; | |||
| Sub | |||
| ...progress... | |||
| Hmm. Well, :method and :outer together seem to work fine here for me. | 14:53 | ||
|
14:55
NotFound joined
|
|||
| pmichaud | it's possible that the other lexical changes have fixed RT#47794 | 15:03 | |
| stupidbot | RT 47794d: [BUG] objects - :method doesn't work with :outer() - open | ||
| pmichaud | (bots should not speak unless spoken to...) | ||
| Zaba is leaving so sicily for 2 weeks tomorrow | |||
| to* | |||
| jonathan | pmichaud: Let me paste you my example here - if you think it's sane, we can maybe remove the workaround in PCT? | 15:04 | |
| nopaste? | |||
| clunker3 | pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ | ||
| purl | rumour has it nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or paste.husk.org/ or poundperl.pastebin.com/ or paste.scsys.co.uk/ or don't bother me while I'm eating or App::Nopaste or tools/dev/nopaste.pl | ||
|
15:04
cjfields joined
|
|||
| pmichaud | how about my test case in the ticket? | 15:04 | |
| dalek | r28715 | jonathan++ | trunk: | ||
| : [rakudo] Stub in Block, Ruotuine, Sub and Method PMCs and classes. Start using them for subs and methods (not for normal blocks yet - is a tad tickier). | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28715 | |||
| jonathan | pmichaud: OK, I'll try that. | 15:05 | |
| pmichaud | I still get "method not found". | ||
| jonathan | C:\\Consulting\\parrot\\trunk>parrot testm2.pir | 15:06 | |
| abc | |||
| xyz | |||
| That's your test case. | |||
| pmichaud | the first one (that doesn't work) or the second one (that does) ? | 15:07 | |
| Zaba | is there anywhere I can read about history of parrot? | ||
| jonathan | The first one | ||
| purl | The first one is gone | ||
| DietCoke | in the repository, on the mailing lists... | ||
| is there something in particular we can answer? | |||
| pmichaud | let me svn up and try it. | ||
| DietCoke | (we're kind of looking forward to 1.0, rather than back historically) | ||
| jonathan | Oh, I have one local change...hmm :-) | ||
| DietCoke smacks jonathan. | 15:08 | ||
| Zaba | DietCoke, I am just curious, why it's been decided to write a virtual machine, and did it all start because of perl6.. | ||
| pmichaud | can't run perl without a virtual machine of some sort. :-) | ||
| jonathan | DietCoke: It's not one that I *expected* to fix the bug. | ||
| Zaba | pmichaud, or rather, a virtual machine for another language but perl6, to write a perl6 interpreter on | 15:09 | |
| jonathan | pmichaud: Putting in my other patch now, since it smoked... | ||
| dalek | r28716 | jonathan++ | trunk: | ||
| : [core] Fix another place where we tested for enum_class_Sub rather than any subclass of of Sub. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28716 | |||
| DietCoke | One of the original goals was to provide a clean separation of the virtual machine for perl6 (as opposed to perl5, where it's bundled in) | ||
| pmichaud | Zaba: a bit of forward thinking, I think -- virtual machines really ought to be more generic than language-specific. | ||
| DietCoke | at some point we picked up "support other dynamica languages" as a goal, and perl6 picked up "support other implementations" | ||
| nopaste | "jonathan" at 85.216.151.226 pasted "pmichaud - this is the test that works here" (19 lines) at nopaste.snit.ch/13406 | ||
| Zaba | I see. | 15:10 | |
| pmichaud | essentially the choices at the time were either to (1) try to re-use the perl5 vm, or (2) build a new vm that supported dynamic languages, or (3) try to extend an existing vm to support dynamic languages. | ||
| neither (1) nor (3) were very appetizing. | 15:11 | ||
| Zaba | i see now | ||
| DietCoke | though 3 has some traction elsewhere. and clearly 1 is still in use. | ||
| pmichaud | 3 has some traction elsewhere *now*, but I'm not sure that it did *then*. In fact, I think Parrot was an enabler for #3 to start happening. | 15:12 | |
| (but that's just speculative on my part) | |||
| Zaba | #3 is happening? | ||
| jonathan | pmichaud: Actually, the local change I had might realistically have made this work...checking... | ||
| pmichaud | jonathan: something you committed in the past two hours caused it to work. | 15:13 | |
| jonathan | pmichaud: Yeah, it was my last commit. | ||
| pmichaud | the x.pir didn't run before I svn up'd, but it does now. | ||
| that is fantastic if that's working now. | |||
| jonathan | I hadn't been trying to fix that specific issue, but I'm glad I have. | ||
| pmichaud | I'll be testing all of the new :outer stuff in just a bit, I'll try that also and see what happens. | 15:14 | |
| jonathan | OK, sure. I'll leave my workaround in place for the Method stuff for now. | ||
| pmichaud | good idea. :-) | ||
| DietCoke | well, there was always jacl. and ironpython has been around for some time. | ||
| jonathan | Once they get :outer's, it can go. | ||
| DietCoke | honestly, I'm not sure the "here's why we're starting parrot" explanations were ever solidly documented; at least not to the skeptic's satisfaction. =-) | 15:15 | |
| jonathan | OK, you wanted me to look at :lexid and PBC interaction... | ||
|
15:16
slightlyoff joined
|
|||
| cjfields | Do we have an op for composing a string from escaped characters? I'm thinking something that converts '\\n' to a real newline. | 15:16 | |
| I saw compose(), doesn't seem to work for me | 15:17 | ||
|
15:17
slightlyoff left
|
|||
| pmichaud | cjfields: I had to roll my own for PGE and Rakudo. | 15:17 | |
| one of the Data::* libraries might have something, though. | 15:18 | ||
| moritz | DietCoke: maybe we should just answer that with "because it's fun" ;-) | ||
| pmichaud | it is fun, but in some ways it's been a very frustrating sort of fun. :-| | 15:19 | |
| it's a lot more fun today than it was a few years ago :-) | |||
| jonathan | moritz: There's 2 tests "unexpectedly" suceeding now due to Sub type working. ;-) | ||
| NotFound | We have C functions, but don't know if they are accesible from bytecode. | ||
| DietCoke | rakudo certainly looks more fun than partcl was, for example. =-) | 15:20 | |
| jonathan | It's more fun than net2pbc was... | ||
| DietCoke | but that's probably just jealousy. =-) | ||
| pmichaud | if rakudo and pct are making parrot more fun, then I think the mozilla grant has been a success. :-) | 15:21 | |
| time for another! :-) | |||
| jonathan | Aye! | ||
| jonathan is looking forward to his extra Rakudo time during July. | |||
| pmichaud realizes he *really* needs to write his mozilla grant report today. | |||
| jonathan | OK, got the PBC with :lexid bug reproduced...now to try and work out what on earth is going on. | 15:22 | |
| cjfields | well, I have trans() pretty much working... | ||
| jonathan | cjfields: Nice! :-) | ||
| pmichaud | yes. I had that with the patch I did for :outer -- and was equally stumped as to why it didn't "just work". But I didn't investigate much farther, as I'm very unfamiliar with bytecode freezing. | 15:23 | |
|
15:23
Theory joined
|
|||
| NotFound | cjfields: we have string_unescape_cstring, but I think there is no way to use it from bytecode. | 15:25 | |
| cjfields | It doesn't have named args yet for :c :d :s, but :d and :s shouldn't be too hard to implement | ||
| NotFound: okay, I can look into that | |||
| pmichaud | are you looking for interpreting escapes for trans()? If so, why? | 15:26 | |
| cjfields hates emoticons, when I mean ':c' | |||
| trans() is supposed to handle /n, /b, and other escaped chars | |||
| pmichaud | ...but won't Rakudo have already done that translation? | 15:27 | |
| cjfields | but it 'just works' if you use double quotes | ||
| yes | |||
| pmichaud | I would not expect trans to change '\\n' into a newline -- I'd want it to be a backslash + n | 15:28 | |
| cjfields | I suppose if you want | ||
| pmichaud | if I wanted a newline, I would have specified "\\n" | ||
| cjfields | "/n" => 'A' | ||
| Exactly | |||
| S05 is a bit fuzzy re: that | 15:29 | ||
| cjfields meant "n" => 'A' | |||
| NotFound | What's that 'trans' you talk about? | 15:30 | |
| cjfields | transliteration | ||
| purl | i guess transliteration is "as much as you like", but you'll see in dictionaries, for instance: impinge, v.t.: To touch upon, to strike, to infringe (qv). | ||
| cjfields | Meh... | ||
| pmichaud | NotFound: .trans() -- p6's version of the p5 tr///; | 15:31 | |
| NotFound | Ah, yes. | ||
| pmichaud | afk for a bit | ||
| jonathan | pmichaud: Found out why. Hating Parrot guts lots today. | ||
| cjfields | A bit important for us bioinformatics folks | ||
| would like to have a way to reverse complement a DNA strand | 15:32 | ||
| or translate DNA->protein | |||
| purl | babelfish cannot translate from en to en. Try translating through English. | ||
| cjfields | Interesting... | ||
| DietCoke | purl's lack of directions is frustrating. | 15:36 | |
| jonathan: what now? =-) | |||
| jonathan | DietCoke: Turns out that we re-do the "what is the otuer sub" logic when loading the packfile. | 15:39 | |
| There's a big comment in there about why. | |||
| Which I read as, "well, you can solve it properly if you want to go re-write a chunk of IMCC and who knows what else". | 15:40 | ||
| Long story short, we're going to have to stash lexid away in the bytecode. | |||
| I'd thougth we were going to avoid that. :-| | 15:41 | ||
| pmichaud | I was hoping that wasn't the case. | 15:45 | |
| (storing lexid) | |||
| where's the comment? | |||
| purl | well, the comment is pretty gold. | ||
| NotFound | I'm wondering it can be convenient to have an "escaped" encoding. That way escaping and unescaping can be treated like any other recoding. | ||
| pmichaud | NotFound: but then the question becomes "whose version of escaping?" | 15:46 | |
| not everyone escapes the same way. Even perl 5 and perl 6 don't have the same escapes. | |||
| Zaba | pmichaud, what is different? | 15:47 | |
| pmichaud | also, at least in Rakudo's case, it's much easier to build/decode the escapes as the string is being parsed. | ||
| NotFound | pmichaud: the one used by the function string_unescape_cstring | ||
| pmichaud | zaba: there are a _lot_ of differences. | ||
| Zaba | oh | ||
| pmichaud | perl 5 uses \\012 for octal notation, perl 6 uses \\o012 (and doesn't allow \\012) | ||
| jonathan | pmichaud: closure.pmc | 15:48 | |
| pmichaud: Maybe one day we can avoid this. For now, we'll just have to put up with it. | |||
| pmichaud: See in thaw vtable method | 15:49 | ||
| pmichaud | perl 6 allows things like \\x[48,65,6c,6c,6f] instead of \\x48\\x65\\x6c\\x6c\\x6f | ||
| jonathan: looking | |||
| Zaba | oh that's nice | ||
| NotFound | pmichaud: but is not mandatory that every feature of parrot has to be perl6-centric, it isn't? ;) | 15:50 | |
| pmichaud | I'm not saying parrot has to be perl6-centric, I'm just saying that parrot's version of escaped strings would probably be useful only for Parrot. | ||
| since other HLLs almost certainly also have different escape patterns. | 15:51 | ||
| NotFound | Yeah, I was wondering if that way can help simplify imcc and some other part of parrot. | ||
|
15:52
peepsalot joined
|
|||
| pmichaud | oh, that's possible. | 15:52 | |
| but I don't know that there are many parts of parrot doing unescaping outside of string_unescape_cstring | 15:53 | ||
|
15:54
jhorwitz joined
|
|||
| pmichaud | I definitely don't like the idea that we have to store the lexid's in the pbc's. But at this point I'll take whatever works. | 15:54 | |
| NotFound | If I remember well there are some routines that convert a string to a c-string just to call that function, some improvement to that scheme will be good. | ||
| particle | how do you get at the lexids at runtime without storing them in bytecode? | 15:58 | |
| i don't understand how that would work | |||
| pmichaud | normally you don't need the lexids at runtime | 15:59 | |
| :outer is a compile-time feature | |||
| and since we know that the sub being used as :outer is in the same compilation unit, we should be able to store a reference to the outer sub as part of the bytecode | |||
| unfortunately, parrot doesn't store compilation units as a single freeze/thaw -- instead it apparently does a series of separate freeze/thaws for each sub | 16:00 | ||
| particle | ok, storing the reference to outer sub is what i meant by lexid | ||
| right, | |||
| pmichaud | which means any cross-references between subs is lost | ||
| particle | yes, precisely. | ||
| in parrot, a sub is a compilation unit | 16:01 | ||
| pmichaud | ...and that's probably a mistake. | ||
| jonathan | Freezing them individually sure seems to be. | 16:02 | |
| particle | well, i don't know about that, but it's definitely a long-ago design decision | ||
| pmichaud | r28715 adds files but doesn't update MANIFEST. | 16:03 | |
| particle | manifest must die | ||
| jonathan | OK, well, better than removing them and not updating MANIFEST | ||
| pmichaud | true. :-) | ||
| but we still get test failures. :-) | |||
| jonathan | Someone else can do it, or I'll do it once I've got this saving lexid mess sorted out. | ||
| pmichaud | I'll take care of it. | 16:04 | |
| jonathan | Thanks. | ||
| dalek | r28717 | moritz++ | trunk: | ||
| : [perl6] added tools/progress-graph.pl. Also added missing test file to | |||
| jonathan | This is a tad painful... | ||
| dalek | : MANIFEST | ||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28717 | |||
| moritz forgot to make codingstd test before commiting | |||
| will do now | 16:05 | ||
| dalek | r28718 | pmichaud++ | trunk: | 16:06 | |
| : Update MANIFEST with files added in r28715. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28718 | |||
| pmichaud | ugh! | 16:07 | |
| having separate classes for subs means we also have to have .pmcs for every type?!? | |||
| particle | moritz: can you add vertical lines to the graph, or some other delimiter to signify parrot releases? | 16:08 | |
| pmichaud | thats um, not going to work. | ||
| parrot releases aren't in the source data for the graph. | |||
| jonathan | pmichaud: Yes, we need PMCs. | ||
| pmichaud | (separate pmc types for subs isn't going to work) | ||
| particle | pmichaud: but the data is in the parrot repo | ||
| pmichaud | particle: I think the graphs are being built from spectest-regression.csv, not from the repo. | 16:09 | |
| moritz | particle: I can take a look if GD::Graph supports that | ||
| dalek | r28719 | moritz++ | trunk: | ||
| : [perl6] codingstandards | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28719 | |||
| pmichaud | jonathan: what happens when someone subclasses Sub, Block, Routine, etc. ? | ||
| particle | moritz: s/perl6/rakudo/ please | ||
| moritz | particle: ok, will do | 16:10 | |
| jonathan | pmichaud: Right now, they can't...does the spec allow for this? | ||
| pmichaud | it doesn't *disallow* it | ||
| jonathan | OK | ||
| pmichaud | so I suspect it's allowed | ||
| if using :instanceof is going to require PMC types for everything, I think I might prefer to go with a wrapper Sub/Code/Method object of some sort. | 16:11 | ||
| jonathan | It's not possible right now to use a high level class / type. | ||
| With :instanceof | |||
| Or as a sub, in fact. | |||
| And it didn't look too easy to change that. | 16:12 | ||
| pmichaud | I could do it with a "Block" class that "has &!sub" and delegates invoke() to the &!sub | ||
| (and other methods as appropriate) | |||
| particle | does block, routine, sub, grammar, etc derive from closure? | 16:14 | |
| pmichaud | then it's just a matter of having appropriate initialization to generate the appropriate Block/Code/Method/whatever objects | ||
| jonathan | You could do something like that, but delegation ins't free, and calling in Parrot is costly enough already. | ||
| particle | oops, not grammar | ||
| pmichaud | Block, Routine, Sub, etc. derive from Code, iirc. | ||
| particle | ah, code. | ||
| pmichaud | how important is it to be able to distinguish Block/Routine/Sub/etc. at this point? | 16:15 | |
| i.e., what do we lose if we don't have that? | 16:16 | ||
| moritz | pmichaud: distinctiion between return() and leave() for example | ||
| rhr | Routine vs non-Routine is probably the most important distinction (return only works in Routines) | ||
| pmichaud | rakudo's already handling that | ||
| perhaps not perfectly in the case of leave(), but return does understand the Routine vs. non-Routine distinction. | 16:17 | ||
| jonathan | pmichaud: signature objects need to be stashed somewhere, and those are pre-requisite for MMD. | 16:18 | |
| pmichaud | jonathan: would it be possible to rebless parrot subs into HLL classes? | ||
| as opposed to delegating? | |||
| rhr | also you can .wrap a Routine | ||
| pmichaud | (I can get .wrap to work also w/o having to distinguish the code types) | ||
| jonathan | Same problem - the PMC_Sub macro that gets at a sub's internals assumes it's a sub PMC. | ||
| Or something with the same internal structure. | 16:19 | ||
| pmichaud | ...but that can be fixed, yes? same as we've had to fix the macros for the other builtin types that get derived into HLL types? | ||
| jonathan | I think it can be fixed, but I'm not sure it's trivial. | ||
| pmichaud | or we could just have a single perl6code.pmc that is the base class for all code objects | ||
| (and that understands HLL types) | |||
| instead of separate perl6block.pmc, perl6method.pmc, etc. | 16:20 | ||
| jonathan | I don't see that working. | ||
| pmichaud | I _really_ have a bad feeling about the proliferation of pmc types. | ||
| like really really really bad | |||
| jonathan | As soon as you end up with a HLL type being expected to be a sub PMC, you hit the problem. | 16:21 | |
| pmichaud | ....because sub PMC operations don't go through vtables, or...? | 16:22 | |
| jonathan | Right. | ||
| Well, some do. | |||
| Some don't. | |||
| DietCoke | all should. | ||
| shouldn't be poking at guts unless they're your own. | |||
| moritz | particle: I investigated a bit, and found no way to annotate releases or some such. | ||
| jonathan | I looked at solving this, and it looked non-trivial. | ||
| moritz | particle: if it's important for you, try digging into GD::Graph's docs, or switch to gnuplot or grace ;) | 16:23 | |
| pmichaud | I don't like extending the Perl6* <-> HLL* duality any farther than I absolutely have to. | ||
| jonathan | I agree we should do it eventually, and then we can have the PMCs now become HLL types, subclassable, the lot. In the meantime, what I've done doesn't break anything that did work, and does remove a roadblock. | ||
| And I'm not expecting it to be hard to switch over to using HLL level stuff for this, once Parrot allows us to do that. | 16:24 | ||
| pmichaud | "doesn't break anything that did work" isn't completely good. I'm worried about it becoming a dependency or expectation for new stuff. | ||
| see, for example, the 'infix:,' stuff I had to rip out and fix. | |||
| works is important, but we also want to try not to box ourselves into corners that are hard to extricate ourselves from. (imcc being another example.) | 16:25 | ||
| because then we're continually saying "that's too hard to do the right way now... we'll just work around it and maybe we'll fix it later." | 16:26 | ||
|
16:26
Zaba_ joined
|
|||
| pmichaud | I'm not immediately rejecting the work; I just didn't realize it was going to require a bunch of PMC classes to work, and I have to decide if I'm willing to accept that or not. :-) | 16:27 | |
| and that'll take a little time to think through. | |||
| jonathan | It wasn't my plan A - I wanted high level classes for the lot of them. | ||
| pmichaud | I _really_ want high-level classes for the lot of them. I'm willing to consider a lot of other workarounds to let that happen, too. This approach has huge alarm bells going off in my head. | 16:28 | |
| in particular, I'd be willing to accept the delegation runtime cost in preference to enshrining this approach. :-| | 16:29 | ||
|
16:30
Ademan joined
|
|||
| jonathan | Feel free to re-do it that way if you prefer it. | 16:30 | |
| I'm not completely sure it won't run into other Parrot issues too, though. :-| | 16:31 | ||
| pmichaud | I'll mull it over a bit. I also think we're likely to end up with something for signature handling that maybe obliterate the need for this. | ||
| i.e., I think we're going to have to layer our own signature handling on top of Parrot _anyway_, so doing this for the sake of signature handling doesn't quite fit for me. | |||
| jonathan | If you've got plans for signature handling, it'd be helpful if you told me about them like, soon. Before I dig into the MMD implementation. | ||
| pmichaud | I don't have plans -- it's one of those things I hadn't thought about much yet. | 16:32 | |
| jonathan | That's the *point* of this - so we can stick our own signature objects somewhere. | ||
| pmichaud | most of my thoughts have been "oh, jonathan's working on it" :_) | ||
| can signatures be properties on subs? | |||
| we need to be able to introspect them anyway, I suspect. | |||
| jonathan | Hmm. | ||
| If the properties get frozen into the bytecode, I guess that way could work. | 16:33 | ||
| DietCoke | tcl has been storing them as attributes on a .Sub class (TclProc) | ||
| pmichaud | even if they're not frozen in the bytecode -- we can generate :load :init to attach the properties | ||
| DietCoke | We also need them for introspection. | ||
| jonathan | DietCoke: TclProc is a PMC? | ||
| DietCoke | no. | ||
| jonathan | Oh? | 16:34 | |
| DietCoke | all the nasty bits are handled by .Sub | ||
| pmichaud | (I agree that frozen in bytecode would be cleaner/faster, but there's an overall question about how properties get frozen and I think we'll need some real use cases before that gets decided.) | ||
| DietCoke | I only did it this way because you couldn't have attributes on PMCs until recently. | ||
| see languages/tcl/src/class/tclproc.pir | |||
| (I'm storing my own string for 'args', not anything pure parrot there, but if it was a parrot representation, I could get the string I needed out of it. | 16:35 | ||
| pmichaud | (btw, this is also the reason why multisub, mmd, captures, signatures, and currying are a ways down on the ROADMAP :-) | ||
| purl | okay, pmichaud. | ||
| DietCoke | purl, forget (btw, this | 16:36 | |
| purl | DietCoke: I forgot (btw, this | ||
| jonathan | DietCoke: And how do you bless subs into TclProc? | ||
| As in, give them that type? | |||
| DietCoke | moment. | ||
| jonathan | thanks | ||
| DietCoke | line 251 of languages/tcl/runtime/builtin/proc.pir | 16:37 | |
| I had a sub, I assign it to a new tcl proc, and then set the attributes. | |||
| er, not a sub, an Eval. | |||
| in an ideal world, IMCC would say "oh, you don't want Eval, you want TclProc, here you are." | 16:38 | ||
|
16:38
Zaba joined
|
|||
| jonathan | Hmm | 16:38 | |
| DietCoke | but this worked. | 16:39 | |
| jonathan | So you can subclass Sub and have it work somehow. That's...curious. | ||
| DietCoke | welcome to my life as a partcl developer. :| | ||
| jonathan | I tried that with :instanceof and it didn't work out... :| | ||
| DietCoke | this predates instanceof by several years. =-) | ||
| pmichaud | part of the issue may be "when does the blessing occur" | ||
| it can't occur immediately at compile time, because the class may not exist yet. | 16:40 | ||
| but this isn't much different from things like :multi('MyHLLClass') | |||
| or even :method in a namespace. | |||
| jonathan | :instanceof is designed to work when you eval code and the relevant class has already been created. | ||
| pmichaud | right. I'm thinking it needs to work like :multi and/or :method, so that it patches things up once the relevant class is created. | 16:41 | |
| DietCoke | (years). I lied. 2007-02-25 | ||
| pmichaud | I agree that's more difficult. | 16:42 | |
| but i think it's ultimately what we'll have to do. | |||
| (or come up with a somewhat different approach altogether) | |||
| there have been many times lately when I doubt the intrinsic value of PMCs | 16:43 | ||
| er, of PMC classes. | |||
| perhaps Parrot's fundamental expectation is that every HLL will create a set of PMC types and that Class/Object types are the exception. But Perl 6 doesn't seem to be structured that way. | 16:44 | ||
| jonathan | Class/Object types aren't meant to be the exception. | ||
| pmichaud | right, so having this PMC class type seems to get in the way a lot :-) | ||
| jonathan | Huh? | 16:45 | |
| What do you mean by "PMC class type"? | 16:46 | ||
| pmichaud | things like Integer, String, Sub, Perl6Str, etc. | ||
| for Perl 6 at least, we keep having to create a PMC type *and* a parallel Class type, and then somehow manage the vtable and method mappings between the two. | |||
| that feels wrong. | |||
| DietCoke | And I thought you were crazy when you started doing it. =-) | 16:47 | |
| pmichaud | I haven't figured out an alternative yet | ||
| short of writing wrapper classes that delegate vtable methods | |||
| DietCoke | the delegation should happen automagically. | 16:48 | |
| pmichaud | (yes, I think it's crazy. No, after doing lots of this stuff I haven't found any workable alternatives.) | ||
|
16:48
kj joined
|
|||
| DietCoke | right, I'm not saying you have a choice. =-) | 16:48 | |
| For tcl, at least, i could use PMCs or objects; I went with PMCs because it lets me write some stuff in C for a (theoretical!) speed boost. I could probably get away just objects (that derive from the appropriate PMCs) just fine. | 16:49 | ||
| pmichaud | I was hoping to keep the number of cases of this down to an absolute minimum -- i.e., where Parrot already provided a good built-in type (Integer, Float, Hash) or where performance issues _really_ seemed to dictact a C-based implementation (Perl6Str). | 16:50 | |
| DietCoke | in my case, parrot's types don't behave enough like tcl types, so I'd always need to override something. | ||
| pmichaud | and even in the Perl6Str case, if I had a good way of writing Object methods in C then we wouldn't need Perl6Str at all. | ||
| DietCoke | define good. You can implement METHOD's in PMCs now. | ||
| pmichaud | yes, but Str is an Object, not a PMC | 16:51 | |
| so I have to have a Perl6Str PMC intermediary to have a place to attach the method. | |||
| DietCoke | Ah, I see. | ||
| pmichaud | (and actually it's a vtable override of get_number) | ||
| but even here I could have a vtable override in PIR that calls the C named method.) | |||
| DietCoke | You could write it in C and dispatch via NCI today. | ||
| but that is less-than-good, ya. | 16:52 | ||
| pmichaud | I tried that at one point and didn't have much success. I suspect the NCI signature I needed wasn't available. | ||
| particle | that's an easy fix | ||
| pmichaud | I'll look at it again when I rewrite get_number and fix the radix issues. | ||
| DietCoke | k. if you get stuck on it, please let us know, obviously. | 16:53 | |
| pmichaud | sure thing. | ||
| actually, having an example of overriding get_number in a (non-PMC) class would be sufficient. | |||
| i.e., subclass String and change its get_number vtable entry. | |||
| (but have the work for get_number be written in C. A simple return 12345; would be enough to demonstrate that it works :-) | 16:54 | ||
| afk, lunch. | 16:59 | ||
| before I go, though: jonathan -- if it seems I keep throwing up obstacles to the work you've put in today (i.e., :lexid, :instanceof) -- my apologies. Believe me, I'm frustrated about many of Parrot's limitations also. | 17:03 | ||
| and you keep running into the tickets I've alredy submitted. :-) | 17:04 | ||
| I am _very_ happy that :method and :outer work now | |||
| jonathan | pmichaud: Well, I fixed the :method :outer one, it seems. ;-) | ||
| And lexid freezing, I am debugging right now...hope to have it done soon. | |||
| pmichaud | oh, that will be fantastic | ||
| will it still be smart enough to keep track of lexids only within a code unit, or do I need to worry about making sure lexids are unique within an entire interpreter? | 17:05 | ||
| dalek | r28720 | fperrad++ | libs4php: | ||
| : [php] more type functions | |||
| jonathan | :instanceof and sub stuff - I don't disagree with you on the end goal here, I just know I've got funding to work on MMD, know I need to be able to store away Perl 6 signature objects to have a chance of getting that right, and really wanted a way to do that. This seemed like a reasonable way. | ||
| dalek | diff: www.parrotvm.org/svn/parrot/revision?rev=28720 | ||
| jonathan | For the interim, at least. | ||
| I think it will be within a code unit, from what I understand of the code. | 17:06 | ||
| pmichaud | would sub properties be a reasonable approach, also? | ||
| jonathan | I hadn't thought of that, and yes, that would perhaps work. | ||
| pmichaud | let's both think on it a bit. You've thought about mmd and signature issues far more than I have | ||
| (in case it's not obvious, the roadmap is also a rough guideline as to how much thought I've put into the implementation details of each item, too :-) | 17:07 | ||
| jonathan | OK. Getting Method vs Sub vs Block right to me was a bonus, I was really after a place to stick the sig. | ||
| pmichaud | I feel like a property is the right thing to do there, or an attribute on subs. | ||
| (and as far as I'm concerned, it can be an attribute on Parrot Sub :-) | |||
| (as opposed to something rakudo-specific ) | 17:08 | ||
| jonathan | Heh. Then we get into the world of trying to get some common type representation that's expressive enough to handle all that Perl 6 needs and other languages need, at Parrot level. | ||
| pmichaud | it may be that we just need Parrot to give us a "first cut", then rakudo takes over and refines it more. | 17:09 | |
| jonathan | It'd be nice, but I'm sure not smart enough to work that out without at least getting it done in Rakudo first. | ||
| pmichaud | well, we'll keep working on it then. :-) | ||
| jonathan | Well, the hard part isn't (erm, apart from today's discussion ;-)) storing the sig somewhere, it's building and (even more so) using it. | ||
| pmichaud | anyway, I have to go. bbiaw | ||
| jonathan | ok | ||
|
17:17
AndyA joined
|
|||
| DietCoke curses. Dates for yapc are set, and they conflict with the school year again. | 17:20 | ||
| particle | dates set already! | 17:23 | |
| sheesh, i'd better book a dorm room soon | 17:24 | ||
|
17:25
Zaba_ joined
|
|||
| jonathan | In Europe, we haven't had our YAPC yet this summer! :-P | 17:27 | |
| dalek | r28721 | fperrad++ | libs4php: | 17:30 | |
| : [php] oops | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28721 | |||
| nopaste | "jonathan" at 85.216.151.226 pasted "pmichaud - fixed PBC issue, demo, patch coming after make test..." (30 lines) at nopaste.snit.ch/13407 | 17:31 | |
| jonathan | particle: Where is the next YAPC::NA? | 17:32 | |
| DietCoke | jonathan: pittsburg | ||
| purl | i guess pittsburg is Soho-West, isn't? | ||
| DietCoke | (PA) | ||
| dalek | r28722 | fperrad++ | libs4php: | 17:33 | |
| : [php] rename decode_base64 to base64_decode | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28722 | |||
|
17:34
_shane joined
|
|||
| particle | pittsburgh? | 17:35 | |
| jonathan | OK | 17:36 | |
| particle | pittsburgh is the host of yapc::na 2009 | ||
| pittsburgh? | |||
| particle kicks purl | |||
| purl bites particle! | |||
| cotto_work | literal pittsburg | 17:39 | |
| purl | cotto_work: pittsburg =is= Soho-West, isn't? | ||
| cotto_work | no, pittsburgh is the host of yapc::na 2009 | ||
| purl | okay, cotto_work. | ||
| DietCoke | pittsburg is also hosting PPW in October of '08 | 17:40 | |
| purl | okay, DietCoke. | ||
|
17:40
Zaba joined
|
|||
| cotto_work | that bot is getting weirder and weirder | 17:40 | |
| japhb | jonathan++ # Haiku in the face of Cthulu -- er, IMCC's internals | 17:42 | |
| DietCoke | IMCC FTAGN! | 17:43 | |
| davidfetter | iaaa! iaaa! | ||
| cotto_work | wow. It's spreading. | 17:44 | |
| particle | why is there no tpf news about pittsburgh for 09? | 17:45 | |
| rdice: shouldn't somebody blog about that? | |||
| DietCoke | there was an article about PPW which referenced YAPC::NA'09 | ||
| davidfetter prepares a memo about the new cover sheets on the tpf repors | |||
| reports* | 17:46 | ||
| particle | maybe i'll bother jmcadams about news.perlfoundation.org/ | 17:47 | |
| DietCoke | particle: GO GET HIM! | 17:52 | |
| DietCoke grins at davidfetter. | |||
| dalek | r28723 | jonathan++ | trunk: | 17:54 | |
| : [core] Make :lexid work in PBC as well as PIR. This changes the bytecode format, so you'll probably want a make clean or even make realclean after this. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28723 | |||
| jonathan | That, was one of the most non-fun patches I've done in a while... | 17:55 | |
| DietCoke | jonathan++ | 17:59 | |
| rdice | particle: You could also bother jeremy flumann, who is the conferences chair. | ||
| particle | aha, thanks | 18:00 | |
| jeremy@perlfoun... ? | |||
| i'll look it up | |||
| jonathan | OK, I need to take a break for a while... | 18:01 | |
| TimToady | pittsburg is also in California | ||
| purl | okay, TimToady. | ||
| jonathan goes to check a map of the US | |||
| particle | note the lack of h | ||
| avar | jonathan: Was that change why perl6.pbc was failing? | ||
| or - the fix for that issue | |||
| jonathan | Oh! Dude, that confused me... | 18:02 | |
| avar: I wasn't aware perl6.pbc was failing - it wasn't using :lexid yet. | |||
| (unless you svn up'd and didn't re-build, mind) | |||
| avar | pmichaud fixed a problem that caused perl6.pbc to fail where perl6.pir worked, it had to do with some namespace stuff that was different in PBC than PIR | 18:03 | |
| no this is 2-3 days ago, not related to your change | |||
| jonathan | Aha, OK. | ||
| avar | I just thought maybe lexid was related to namespaces .. | ||
| jonathan | It's dealing with a problem that I think pmichaud discovered around the time he was fixing that particular issue. | ||
| TimToady | Why do properties on PMCs smell a lot like magics on SVs? (Maybe the same reason Perl 6 doesn't have properties anymore as of about 5 years ago...) </snipe> | 18:04 | |
|
18:04
Zaba_ joined
|
|||
| avar | TimToady: Same crap, fancier nomenclature ? :) | 18:05 | |
| TimToady | Sufficiently advanced properties are indistinguishable from magic. :/ | 18:06 | |
| jonathan | S12: "A property is defined by a role like this: ..." | ||
| DietCoke | i am fairly certain that parrot's PMC's properties and attributes came from dan's understanding of perl6's object model at the time. | ||
| TimToady | yes, as of about 5 years ago :) | ||
| jonathan | Or are we talking about some other definition of properties? | ||
| BTW, PMC properties are not what are used to do what that bit of S12 is talking about... | 18:07 | ||
| TimToady | S12 just uses that name to bridge the old notion of property to the new one of object attributes | ||
| jonathan | Right. The implementation of that bit of S12 in Rakudo really is just a role with an attribute. | ||
| TimToady | the basic problem is passive properties that must be interpreted by other code | ||
| all "properties" in P6 are really methods | 18:08 | ||
| and hence are innately active (at least potentially) | 18:09 | ||
| the fundamental problem with passive data is that you must interpret it the same way everywhere you use it, so you end up with tons of macros and such to enforce consistency that could have been enforced by the OO system for less overall cost. | 18:16 | ||
|
18:23
apeiron joined
|
|||
| rdice | particle: I gave Jeremy a poke about this. | 18:24 | |
| particle | beat me to it, thanks! | 18:27 | |
|
18:29
Theory joined
|
|||
| rdice | It turned out there were a few things I needed to say to him anyhow so I bundled it all together. | 18:31 | |
|
18:36
barney joined
|
|||
| TimToady | n | 18:38 | |
| or sometimes y | |||
|
19:07
Ivatar joined
19:24
Theory joined
|
|||
| dalek | bernhard.schmalhofer@gmx.de | plumhead_renaming: | 19:30 | |
| link: www.perlfoundation.org/parrot/index...d_renaming | |||
| shorten | dalek's url is at xrl.us/d2gpk | ||
| dalek | r28724 | pmichaud++ | trunk: | 19:33 | |
| : [pct]: | |||
| : * RT#44794 appears to have been resolved (jonathan++), so we | |||
| : can now eliminate the :method :outer workaround. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28724 | |||
| stupidbot | Error calling said() for rt: Ticket 44794 does not exist. | ||
| pmichaud | er, RT#47794 | ||
| oh well. | |||
| stupidbot | RT 47794d: [BUG] objects - :method doesn't work with :outer() - open | ||
| jonathan | pmichaud: Nice! :-) | 19:37 | |
| Glad that's one ticket cleared up. | |||
| pmichaud | me too. That should also make lexicals in classes work a little more sanely. | ||
| It's hard to have methods nested in a class scope when :outer doesn't work :-| | |||
| jonathan | Well, we've :init :load bug too...if it still exists. Didn't check that one. | ||
| pmichaud | yes, I'm wondering if that's been magically fixed also. Or if it's just another case of using enum_class_Sub that could be a similarly easy fix. | 19:38 | |
| now I'm going to see if I can get :lexid to work. | |||
| jonathan | Cool | 19:39 | |
| I'm sorta hacking out the PMCs you dislike, but...Euro 2008 semi-final. ;-) | |||
| pmichaud | then we can fix $_. And then we can fix .method() | 19:40 | |
| no rush on the PMC hacking. I still dislike them and want to see them come out, but perhaps we both need a few days to re-think it. | |||
| particle | ack enum_class_Sub --parrot | ||
| pmichaud | as long as I can virtually put up barbed wire fences and "danger danger!" signs around the current implementation I think we'll be okay :-) | 19:41 | |
| particle | src\\dynpmc\\subproxy.pmc | ||
| 15:#define enum_class_SubProxy -1 | |||
| that's all | |||
| pmichaud | and Euro 2008 semi-final *is* important. :-) | ||
| jonathan | pmichaud: Well, thing is, if I'm going to put signature stuff in, I'm going to need to do some stuff in the PMCs to make it happen. And if we're going to toss them in the end, I don't see much point putting more into them. | 19:43 | |
| My thought is: we just put it as a property on the Sub PMC, as you suggested. | |||
| And we'll also stash, as a prop, the proto of the type of that sub too. | |||
| pmichaud | I like that better for now, yes. But we do want something that works, too. I figure you'll solve it :-) | 19:44 | |
| jonathan | Then override WHAT on a sub to grab the proto from the prop and return that. | ||
| Sound workable? | |||
| pmichaud | right | ||
| yes | |||
| jonathan | OK | ||
| pmichaud | it can be made to work, at any rate. | ||
| oh, you probably won't want to see my next nopaste... | |||
| jonathan | Oh, I already checked earlier, that we can generate an :immediate with an :outer, get the outer sub with interpinfo and Do Stuff to it. | 19:45 | |
| nopaste | "pmichaud" at 76.183.97.54 pasted ":lexid oops" (99 lines) at nopaste.snit.ch/13409 | ||
| pmichaud | (yes, that's after svn up and make realclean) | 19:46 | |
| I'm trying a fresh checkout now. | |||
| jonathan | Oh, argh. | ||
| And I think I know right now what that is. | |||
| pmichaud | same error with fresh checkout. | 19:49 | |
| jonathan | Yeah | ||
| Building something that in theory has a fix now... | 19:50 | ||
| pmichaud | ...but Theory just left...? ;-) | ||
| nopaste | "jonathan" at 85.216.151.226 pasted "pmichaud - try this patch out" (23 lines) at nopaste.snit.ch/13410 | 19:51 | |
| jonathan | :-P | ||
| TimToady | Theory went off to Practice... | ||
| jonathan | Ooh, game has started... | ||
| pmichaud | jonathan: that seems to have fixed it. | 19:53 | |
| NotFound puts his red t-shirt on | |||
| pmichaud | who is in the semi-final? | 19:54 | |
| NotFound | Spain :) | ||
| TimToady | and Nobody? | ||
| purl | nobody fucks with the Jesus. | ||
| TimToady | is that a Spanish name? | ||
| NotFound | Nobody important X-) | ||
| Russia. | 19:55 | ||
| jonathan | Spain just scored. | ||
| pmichaud: OK, running make test on it there | 19:56 | ||
| erm | |||
| here | |||
| I'll ci if it passes. | |||
| pmichaud | excellent. | ||
| jonathan | NotFound: Russia have played some good football this tournament! | ||
| TimToady | in Russia, the inquisition doesn't expect nobody!!! | ||
| pmichaud | rebooting here (kernel upgrade and other package updates) | ||
| NotFound | jonathan: is not easy to reach semifinal without some good play ;) | 19:57 | |
| Anyway, I don't like football very much, I'm watching the match just to not be the only man in Spain that doesn't. | 20:00 | ||
| barney hopes for Russia in the final and does not understand check_isxxx.t | 20:03 | ||
| dalek | r28725 | jonathan++ | trunk: | 20:05 | |
| : [core] Fix memory management bug in :lexid implementation. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28725 | |||
| jonathan | NotFound: Yes, I remember the football fever in Spain well, from when I lived there. :-) | 20:07 | |
| NotFound | jonathan: add to that the time from last semifinal we played, and all is explained. | 20:09 | |
|
20:12
Theory joined
|
|||
| dalek | bernhard.schmalhofer@gmx.de | plumhead_renaming: | 20:17 | |
| link: www.perlfoundation.org/parrot/index...d_renaming | |||
| shorten | dalek's url is at xrl.us/d2gpk | ||
| NotFound | 2-0 | ||
| purl | 2 | ||
| cotto_work | thanks, purl | 20:22 | |
| purl | no worries cotto_work | ||
| NotFound | 3_0 | 20:25 | |
| jonathan | Awww...it's really all over for the Russians now. | 20:26 | |
| dalek | r28726 | fperrad++ | libs4php: | 20:27 | |
| : [php] add a PhpArray PMC | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28726 | |||
| cotto_work | this worries me slightly | ||
| DietCoke | cotto_work: which now? | 20:30 | |
| dalek | r28727 | bernhard++ | trunk: | ||
| : svn merge -r 28566:28724 svn.perl.org/parrot/branches/libs4...s/plumhead | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28727 | |||
| cotto_work | fperrad's change, but it looks like it's just stub code | ||
| shorten | dalek's url is at xrl.us/goi5o | ||
| cotto_work | it's fine | ||
| dalek | r28728 | jkeenan++ | trunk: | 20:33 | |
| : Add some POD and comments explaining what ICU is. Some typographical reformatting. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28728 | |||
| DietCoke | Can someone grab pmichaud's request in backscroll for a sample of a C-written method usable on an object in PIR and open a TODO ticket? | ||
| barney | cotto: The libs with implementations have tests which are passing for the PHC variant. | 20:35 | |
| cotto_work | nice | 20:36 | |
| barney, it'd be helpful if you could add a stub test for phparrays as t/pmc/array.t | |||
| NotFound | Spain wins! | ||
| barney | s/passing/mostly passing/ | ||
| It's Germany vs. Spain on Sunday | 20:37 | ||
| cotto: Will do tomorrow | 20:38 | ||
| cotto_work | in that case I'll probably just do it tonight when I get home | 20:39 | |
| it's not a big deal either way | |||
| cotto_work grumbles about the slowness of the legal dep't | 20:41 | ||
| barney | k. Or put sanity tests for all PMCs in a single file. | 20:42 | |
| dalek | r28729 | fperrad++ | libs4php: | 20:45 | |
| : [php] to_number() for PhpArray | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28729 | |||
|
20:47
purl joined
20:48
cognominal joined
|
|||
| DietCoke | did I send my perlcritic RFC to the list? | 20:50 | |
| (so I did. | 20:52 | ||
| perl5 is sure getting a lot of new tickets. | |||
| jonathan | pmichaud: Having any joy with lexid? | 21:05 | |
| pmichaud | jonathan: had to take another break for a bit | 21:20 | |
|
21:20
gmansi joined
|
|||
| pmichaud | trying it now | 21:20 | |
| jonathan | pmichaud: OK, sure. | ||
| cjfields | jonathan: got trans working with d: and s: | ||
| say "bookkeeper".trans(:d, 'ok' => ''); # beeper | |||
| say "bookkeeper".trans(:s, 'A..Za..z' => ''); # bokeper | 21:21 | ||
| Haven't wrapped my head around how to implement complement yet... | |||
| jonathan | :d is presumably delete, :s? | ||
| cjfields | yup | ||
| s = squash (repeats) | 21:22 | ||
| pmichaud | complement would be any character not in the range. | ||
| jonathan | Nice work. | ||
| cjfields++ | |||
| cjfields | yes, but how do we implement the complement of | ||
| " <>&".trans( ( [' ', '<', '&' ]=> [' ', '<', '&'])) | |||
| or | 21:23 | ||
| " <>&".trans( ([' ', '<', '&'] => [' ', '<', '&' ])) | |||
| ? | |||
| cjfields at a loss | |||
| pmichaud | start at the first position. See any of the items in the list match the string at that point. If yes, it's in the set; if no, it's in the complemented set | ||
| move to the next position | |||
| repeat until no more positions | 21:24 | ||
| one could potentially do some optimizations by keeping track of where each key occurs earliest | |||
| bacek | morning everyone. | ||
| pmichaud | instead of having to check every key at every position | ||
| jonathan: it may take me a bit of time to do :lexid in PCT, since I have to basically generate unique lexids on every outer block | 21:25 | ||
| jonathan | OK, sure, no hurry. | 21:26 | |
| bacek | DietCoke, I'll try to add some brains to stupidbot | 21:28 | |
| tewk | pmichaud: nqp question: how do I get the match object after a result_object has been set on a match. scalar context always seens to return the result_object. | 21:29 | |
| pmichaud | the match object is just $/ | ||
| $($/) is the result object, $/ is the match object | |||
| or, if doing a submatch, then $<foo> is the match object, and $($<foo>) is the result object that was set in $<foo> | 21:30 | ||
| cjfields | re: trans() I'll see what I can come up with. I'm attaching the latest patch to rt#55492. | 21:35 | |
| stupidbot | RT 55492: [PATCH] partial implementation of transliteration - open | ||
| cjfields | I'm adding a few tests in to spec (BTW, S05-transliteration//trans.t should start passing, +22 tests not counting several more I need to add) | ||
| pmichaud | excellent. | ||
| jonathan: (re: RT#47956--the other flag issues) even if what you did today doesn't fix that one, allison has it fixed in the pdd25cx branch | 21:36 | ||
| stupidbot | RT 47956: [BUG] :init :load cannot be target of :outer in compiled PIR - open | ||
| jonathan | pmichaud: Aha, good. | ||
| cjfields | Actually, I think the tests passed is 17 (tr/// isn't parsed yet, and there is an odd feed operator test which is also skipped). But I'll be adding in many more... | 21:39 | |
| pmichaud | excellent. we should be closing in on 1,000 passing tests then. | ||
| moritz | cjfields: if you need help fudging the tests, please let me know | 21:40 | |
| cjfields | thanks | ||
| moritz | pmichaud, jonathan: are there any specific topics for which you want more tests in t/spec/ (apart from S03, which Auzon currently does)? | 21:43 | |
| pmichaud | S02, S03, S04, and S29 are the ones I'm most interested in at the moment. | ||
| (in roughly any sequence.) | |||
| jonathan | Naturally, I have an interest in S12. :-) | 21:44 | |
| pmichaud | it may be a couple of weeks before we're ready for S06, S10, or S11 | ||
| (beyond very basic tests, that is) | |||
| I don't know that we'll be getting to S09 before the gsoc project finishes. :-) | 21:45 | ||
| tewk | pmichaud++ thanks, I think I was getting confused with say()'s output, you and _dumper cleared things up for me | ||
| pmichaud | tewk: yes, keep in mind that one a result object is set, then get_number and get_string are based on the result object | ||
| however, one can use .text to get the original matched text | 21:46 | ||
| (at least, I think .text works -- if not it needs to be added) | |||
| tewk really likes nqp, and is getting excited about perl6 | 21:47 | ||
| I know its late, but I've just started writing production nqp/perl6 code. | 21:48 | ||
| moritz | S04-statements/no-implict-block.t should succeed (fudged), but when I add it to t/spectest_regression.data I get a usage message from fudge | 22:01 | |
| any idea what's wrong with it? | |||
| (when I run spectest_regression I get that usage message) | |||
| pmichaud | usually that means fudge can't find the file. | 22:02 | |
| moritz tries a third time | 22:04 | ||
| pmichaud | jonathan: so far so good on :lexid -- got it added into POST and things compile okay | 22:05 | |
| nqp runs okay. | 22:06 | ||
| jonathan | Nice | ||
| pmichaud | basic rakudo tests run -- now trying spectest_regression | ||
| then I'll do it all again after converting immediate blocks to no longer be run as closures | 22:07 | ||
| (which is where the real problems began before) | |||
| dalek | r28730 | moritz++ | trunk: | 22:11 | |
| : [rakudo] one more test for spectest_regression | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28730 | |||
|
22:12
bacek_ joined,
teknomunk joined,
gmansi joined,
cognominal joined,
purl joined,
Theory joined,
apeiron joined,
_shane joined,
Ademan joined,
peepsalot joined,
cjfields joined,
NotFound joined,
AndyAway joined,
tco joined,
gryphon joined,
nopaste joined,
mj41 joined,
skv joined,
ruoso joined,
bacek joined,
Infinoid joined,
Patterner joined,
stupidbot joined,
DietCoke joined,
cxreg joined,
avar joined,
davidfetter joined,
magnachef_away joined,
zostay joined,
cosimo joined,
Coleoid joined,
rhr joined,
japhb joined,
particle joined,
zarchne joined,
jjore joined,
Khisanth joined,
GeJ joined,
tewk joined,
cotto_work joined,
omega joined,
TonyC joined,
Tene joined,
dngor joined,
Piper joined,
hachi joined,
cotto_home joined,
workbench joined,
diakopter joined,
spinclad joined,
bobwhoops joined,
TimToady joined,
obra joined,
rjbs joined,
confound joined,
cout joined,
Auzon joined,
jjuran joined,
vhold joined,
jq joined,
integral joined,
MagNET joined,
rafl joined,
baest joined,
jrockway joined,
slavorg joined,
Debolaz joined,
szbalint joined
|
|||
| cjfields | interesting.... | 22:29 | |
| pmichaud: let me know if rt#55492 is okay whenever you have the time (I'll check backlog). No hurry. | |||
| stupidbot | RT 55492: [PATCH] partial implementation of transliteration - open | ||
|
22:29
cjfields left
22:33
bgeron_ joined,
d4l3k_ joined
22:34
ilbot2 joined
|
|||
| moderator | Parrot 0.6.3 "Beautiful Parrot" Released | parrotcode.org/ | 5/649/88 new/open/stalled tix | logged in irclog.perlgeek.de/parrot/today | ||
| cotto_work | to whomever maintains stupidbot, a url after the RT info would be nice | 22:35 | |
|
22:37
Maddingue joined
|
|||
| moritz | that would be bacek_ ;) | 22:38 | |
| cotto_work: btw if you look at the irc logs (see /topic), #\\d{5} is turned into a link to the ticket | 22:39 | ||
|
22:39
rdice joined
|
|||
| pmichaud | jonathan: well, something doesn't quite work with lexicals yet -- I'll have to do a fair bit of work to track it down, though. | 22:41 | |
| cotto_work | moritz, so they are. | ||
| pmichaud | nqp passes all of its tests, but perl6 fails pretty spectacularly. | ||
| cotto_work | thank for pointing that out | ||
|
22:42
slavorg joined
|
|||
| jonathan | pmichaud: Is that when you removed the newclosure, or just with :lexid in general? | 22:44 | |
| pmichaud | removing the newclosure | ||
| with just :lexid in general everything still works. | |||
| jonathan | OK | ||
| pmichaud | (but I would somewhat expect that :-) | ||
| moritz | enough karma for today, good night ;-) | 22:46 | |
| pmichaud | (since it already works now.) | ||
| anyway, I'll keep playing with it and see if I can track it down. | |||
| rakudo has gotten so large it's a lot harder to track these things down, though. | |||
| particle | you should commit with just :lexid | ||
| dalek | r28731 | moritz++ | trunk: | ||
| : [rakudo] one more test for spectest_regression | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=28731 | |||
|
22:46
Maddingue joined
|
|||
| jonathan | Because I've just hit upon something odd with lexicals too. | 22:46 | |
| Do you see issues when you have a case where you've got something like: | |||
| { ...scome scope... sub foo { ...so this is nested... } } foo() | |||
| Basically, when you call into a nested scope, when you've never called the outer one? | |||
| night moritz | |||
| bacek_ | g'night moritz | 22:47 | |
| pmichaud | do you mean is that the problem I'm seeing now, or do you mean do I think that's a problem to be addressed? | ||
| it's not what I'm seeing now. After getting rid of newclosure I can't even get "say 'ok 1'" to work. | |||
| (it won't compile -- there's a problem somewhere in gen_actions.pir) | 22:48 | ||
| (related to the fact that there aren't newclosures.) | |||
| jonathan | Ah, you mean the actions from NQP don't even run to completion before hitting the problem? | 22:49 | |
| pmichaud | correct. | 22:50 | |
| jonathan | I have a test case you might be interested in. | 22:51 | |
| nopaste | "jonathan" at 85.216.151.226 pasted "pmichaud" (21 lines) at nopaste.snit.ch/13411 | 22:52 | |
| jonathan | Run this | ||
| pmichaud | somewhere it gets confused and expects a PAST::Val node to have a .pasttype | ||
| (when running perl6) | |||
| jonathan | It fails. Then comment out the call to test(). | ||
| pmichaud | yes, I'm aware that one can be an issue. | 22:53 | |
| jonathan | OK. | ||
| pmichaud | it fails because 'outer' was never called. | 22:54 | |
| jonathan | OK, but it doesn't fail in test. | ||
| pmichaud | so there's not really a context for test() to work from. | ||
| oh...? checking. | |||
| jonathan | Add say "ok here" after test() | ||
| pmichaud | the problem is probably that outer thinks it already has a context | 22:55 | |
| because the call to test() will build one for it. | |||
| jonathan | Yeah. | ||
| It "fakes" a call to the outer subs to build them. | 22:56 | ||
| pmichaud | but that shouldn't happen with the code I'm doing at the moment. | ||
| jonathan | OK | ||
| pmichaud | currently in PCT immediate blocks are called via newclosure | ||
| jonathan | It is decidedly an issue for the :immedidate with :outer. | ||
| pmichaud | I want to switch those to be normal calls | ||
| i.e., without calling newclosure | |||
| in the case of an immediate block, we're always invoking it from its outer sub, so there shouldn't be an issue. | 22:57 | ||
| jonathan | Right. | ||
| pmichaud | (but obviously there is, since it's not working for some reason :-) | ||
| jonathan | src/sub.c from line 505 is what happens when you call newclosure | 23:00 | |
| pmichaud | I'm wondering if it's attaching the wrong :outer somehow. | 23:01 | |
| because it's acting like the lexical it's expecting isn't the one it's getting. | |||
| and since the lexicals are fairly common (i.e., always '$/', '$past', and '$key'), a misplaced context would be difficult to spot. | 23:02 | ||
| (it could also be that POST is generating incorrect lexid/outer pairs.) | |||
| (i.e., that POST is getting the wrong lexids for each outer) | 23:03 | ||
| jonathan | That would certainly cause issues, if it is. ;-) | ||
| pmichaud | yes, but the code to do it turned out to be fairly straightforward, so I'm thinking that's not likely it. | ||
| jonathan | *nod* | ||
| pmichaud | At any rate, I'm not sure I want to go through gen_actions.pir and try to verify that each :outer is correct... | ||
| jonathan | It wouldn't exactly be surprising if it were a Parrot issue. | 23:04 | |
|
23:06
bacek_ joined
|
|||
| pmichaud | ugh. one nasty side effect of return exceptions is that they make the exception appear to be thrown from the return handler instead of the location of the original exception. :-( | 23:06 | |
| pmichaud turns off "return" in NQP for now. | |||
| jonathan | The invoke vtable method in closure.pmc is the interesting one. | 23:07 | |
|
23:07
purl joined
|
|||
| pmichaud | yes, I looked at it over the weekend. | 23:07 | |
| looks like $args in build_call | 23:09 | ||
| or whatever is being passed to build call | |||
| oh, perhaps store_lex isn't working. | 23:11 | ||
| pmichaud turns on some tracing. | |||
| jonathan | From reading the sub/closure code, I don't see anything that immediately looks like it would cause the issues you're seeing. | 23:12 | |
|
23:14
silug joined
|
|||
| jonathan | pmichaud: OK, I really, really need to try and get some rest now. | 23:15 | |
| Good luck debugging. | |||
| pmichaud | thanks for all of the improvements! | ||
| jonathan | Will write my report tomorrow...it ain't going to be a very exciting one. :-S | 23:16 | |
| Yeah, lots of under-the-hood work that was needed, but no shiny new features for people to play with. | |||
| pmichaud | tis okay. we've already busted through 1000 passing spectests today | ||
| jonathan | Nice. | ||
| :-) | |||
| pmichaud | my current count is 1073, and that doesn't include a few things that are failing | ||
| (that were previously passing) | 23:17 | ||
| jonathan | Does your :lexid change, without newclosure being removed, fix any? | ||
| pmichaud | probably not | ||
| jonathan | Grrr. | ||
| pmichaud | when newclosure is there, :outer doesn't really make a difference | 23:18 | |
| because it automatically takes the context of the caller, regardless of :outer says | |||
| er, "regardless of what :outer says" | |||
| jonathan | Ah, OK. | ||
| So we need both to make it work right. | |||
| pmichaud | right, unless we want to be calling newclosure prior to every subroutine invocation | ||
| (and checking to see if what we're calling is a Sub or a Closure to decide if we should be calling newclosure or not.) | 23:19 | ||
| jonathan | OK. | 23:21 | |
| Hopefully you can work out a smaller test case. | 23:22 | ||
| Maybe one of the other languages using NQP with a smaller actions file? | |||
|
23:22
particle joined
|
|||
| pmichaud | oh, I think I found it. | 23:23 | |
| or at least a part of it. | |||
| jonathan | Oh? | ||
| Just taking the garbage out...brb | |||
|
23:24
Limbic_Region joined
|
|||
| pmichaud | if this is indeed the problem it could likely suck big time. | 23:24 | |
| ....but I think I can make a smaller test case. | 23:27 | ||
| brb | |||
| nopaste | "pmichaud" at 76.183.97.54 pasted "more lexical badness :-( -- simple case" (70 lines) at nopaste.snit.ch/13413 | 23:34 | |
|
23:37
bacek_ joined
|
|||
| pmichaud | I can simplify the PIR quite a bit and then I'll submit a ticket. | 23:39 | |
| jonathan | That looks like new invocations of a sub aren't getting a clean lexpad. | 23:42 | |
| oh, no | 23:43 | ||
| it's not that... | |||
| hmmm | |||
| pmichaud | the closure is permanently tied to the original lexpad | ||
| jonathan | The inner one is holding...right. | ||
| Which is probably what my :immediate bug boils down to as well. | |||
| pmichaud | could be. | ||
| jonathan | It seems to make sense. | 23:44 | |
| pmichaud | here's a simpler case | ||
| nopaste | "pmichaud" at 76.183.97.54 pasted "more lexical badness :-( -- simpler case" (50 lines) at nopaste.snit.ch/13414 | ||
| pmichaud | it removes all of the NQP cruft. | ||
| should I file a ticket? | 23:45 | ||
| I think I'll just file this as a ticket for the moment, so others can perhaps start looking at it. | |||
| I need to get dinner and walk the dog. | |||
| jonathan | Yeah, do it. | 23:47 | |
| I'm too tired to look now | 23:48 | ||
| Maybe Saturday. | |||
| If someone doesn't beat me to it. | |||
| Grrr. So many Parrot bugs. :-( | |||
|
23:52
TiMBuS joined
|
|||
| jonathan | OK, sleeep - night | 23:54 | |