|
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:02
rdice joined
|
|||
| dalek | r27835 | pmichaud++ | trunk: | 00:07 | |
| : [rakudo]: | |||
| : * Add an implementation of infix:<xx>, from RT#54870 (dolmen++) | |||
| : * Patch courtesy Olivier Mengu� <olivier.mengue at gmail.com> | |||
| : * One minor change to handle negative repetition values. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27835 | |||
| dolmen | Hé, hé. My first rakudo/perl6 patch :) | 00:11 | |
| Auzon | Congrats :) | 00:12 | |
| dolmen | Too late to print a tee-shirt for the French Perl workshop, on friday ;) | 00:14 | |
| Whiteknight | is the GLUT stuff in the parrot repo, or do i get it from somewhere else? | 00:19 | |
| tetragon | Which GLUT stuff, the parrot GLUT stuff that is built by make? | 00:24 | |
| Whiteknight | the parrot glut stuff. I'm trying to run the triangle.pir example, but it says it can't find the libraries | 00:25 | |
| tetragon | Which platform? | 00:26 | |
| purl | I'm running on OS/2 on an Atari, can you help? | ||
| japhb is bak | |||
| Whiteknight | I'm on debian x86 | ||
| oh, i didn't even think that they might not have it built for this platform | 00:27 | ||
| tetragon | Do you have the headers installed? | ||
| Whiteknight | I have no idea, which probably means "no". | ||
| dalek | r27836 | jkeenan++ | searchdocs: | ||
| : Differentiate between help and usage messages; split them into separate | |||
| : functions in Parrot::Docs::SearchOps. Adjust tests as needed. No | |||
| : command-line options now simply invokes short usage method. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27836 | |||
| japhb | Whiteknight: If you look at my latest patch set (in RT 54868), you'll see the list of packages in config/auto/opengl.pm that you need to install in the OS to get the headers) | ||
| Whiteknight | I haven't put much thought into this | ||
| thanks | 00:28 | ||
| tetragon | And what does Configure.pl say about OpenGL? My box says: | ||
| Determining if your platform supports OpenGL............yes, MacOSX_GLUT 5. | |||
| Whiteknight | "no." <-- There's my problem. I'll install it now | 00:29 | |
| japhb | Whiteknight: for Debian, it is freeglut3-dev, libglu-mesa-dev, and either libgl1-mesa-dev or nvidia-glx-dev (depending on your X/GL drivers) | ||
| Whiteknight | thanks | 00:30 | |
| japhb | tetragon: Can you try the RT 54868 patch set on Mac OS X when you get a chance? | ||
| japhb is being called to dinner; I'll be bak in a bit | |||
| Whiteknight | installing freeglut3-dev installed all the rest of the packages you mentioned | 00:33 | |
| so that's conveniner | |||
| convenient* | |||
| tetragon grumbles at having to edit japhb's patch set just so that it can by applied | 00:37 | ||
| What's the diff flag '--git' mean? | 00:44 | ||
| japhb: patch is choking on patch 0001, haven't tried any of the others yet | 00:50 | ||
|
00:54
bacek_ joined
|
|||
| bacek_ | hi again | 00:55 | |
| purl | oh, you're back! | ||
|
01:00
bacek__ joined
|
|||
| dalek | r27837 | jkeenan++ | searchdocs: | 01:09 | |
| : Add a test for the --all option. Correct error in regex searching for =item | |||
| : lines for ops; it was ignoring ops that take no arguments, e.g., end(). Add | |||
| : to MANIFEST additional test file and dummy files used during testing. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27837 | |||
| DietCoke | . | 01:10 | |
| bacek__ | .. | 01:12 | |
| tetragon | ... | 01:13 | |
| japhb | n(n+1)/2 | 01:14 | |
| purl | n(n+1)/2 is, like, the sum from 1 to n | ||
| japhb | go purl! | ||
| purl | You go, japhb! | ||
| japhb | tetragon: oh, suckage. | ||
| --git means git format, which includes info about file permissions, revision hashes, etc. | 01:15 | ||
| tetragon: OK, I'll try a different method of generating the patch(es) | 01:16 | ||
| DietCoke | was the git-svn question ever answered? | ||
| tetragon | Even with that stuff stripped out, it still isn't applying | ||
| DietCoke | unified diff format would be nice. | ||
| tetragon | It's failing on config/gen/opengl.pm | 01:17 | |
| japhb | DietCoke: which one? The one I asked is "Can you add SVN properties using git-svn?" And the answer I've seen so far is "no". Which bites, but oh well. | ||
| DietCoke: git is unified + extra stuff. | |||
| It's turning off that extra that will be the trick. | |||
| DietCoke | is git worth the hassle here? =-) | 01:18 | |
| tetragon | I got it to apply by removing the first chunk from that file (expansion of an svn $Id$) | ||
| japhb | Ah! Config/gen/opengl.pm? | ||
| japhb goes to fix that | 01:19 | ||
| tetragon | I got the batch to apply after removing that one chunk | ||
| japhb | tetragon: I've now posted a new single patch that replaces the previous 5. I generated it a different way in git-svn, hopefully this will work better for you. | 01:26 | |
| tetragon | I have a build on the go from the set of five | ||
| japhb | DietCoke: Does this new version work for you? | 01:27 | |
| tetragon: ah, cool, thanks. | |||
| dalek | r27838 | rgrjr++ | trunk: | ||
| : * parrot.spec, CREDITS: | |||
| : + Add %{_usr}/runtime to %files. Increments to Gerd Pokorra. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27838 | |||
| japhb | DietCoke: (is git worth the hassle here?) Right now, yes, because SVK is fubar under Debian at the moment, and I can't stand being unable to do local work and have decent merges and such | 01:28 | |
|
01:30
bacek_ joined
|
|||
| tetragon | japhb: Triangle spins | 01:38 | |
|
01:45
bacek_ joined
|
|||
| japhb | tetragon: excellent | 02:05 | |
| Now we need a Win32 success, and we're good for trunk inclusion. | |||
| Tene | Yeah, offline commits are very important for me, and I could never figure out svk | 02:06 | |
| I have hashes working in cardinal now | 02:07 | ||
| japhb | Tene++ | ||
|
02:08
Zaba_ joined
|
|||
| bacek_ running git svn clone svn.perl.org/parrot/trunk... | 02:09 | ||
| my estimations is 'few hours'... | |||
| Infinoid | I usually only fetch the current rev... | 02:14 | |
| Tene | bacek_: you really don't need 7 years of history. you can do a shallow clone. | 02:37 | |
| dalek | r27839 | jkeenan++ | searchdocs: | 02:45 | |
| : Add SVN tag and property. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27839 | |||
|
03:05
teknomunk joined
|
|||
| bacek_ | Tene: yeah... I'm definetly become stupid on meetings... | 03:42 | |
|
03:57
Zaba joined
04:19
ank joined
04:36
tetragon joined
04:53
mapar joined
04:54
mapar left
04:55
mapar joined
|
|||
| DietCoke | i'm pretty sure that our svn admins dislike getting the whole history for svk, at least. | 04:56 | |
| japhb | DietCoke: Do you know who/what I am waiting on for commitbit at this point? | 05:09 | |
|
05:12
Zaba_ joined
|
|||
| dalek | r27840 | pmichaud++ | trunk: | 05:28 | |
| : [rakudo]: | |||
| : * Fix typos and trailing spaces. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27840 | |||
|
05:30
baest joined
05:38
mapar joined
05:52
iblechbot joined
06:05
uniejo joined
|
|||
| dalek | r27841 | fperrad++ | trunk: | 06:27 | |
| : [install] | |||
| : - remove PAST-pm.pbc | |||
| : - remove Protoobject.pbc | |||
| : - add P6object.pbc | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27841 | |||
|
06:38
bacek_ joined
|
|||
| bacek_ | hi there | 06:38 | |
| purl: logs? | 06:39 | ||
| purl | logs are in the forest. or useful for recovering that was was lost, or assigning blame | ||
| bacek_ | purl: irc log? | ||
| purl | irc log is probably what is disturbing to me though - but it could be a total fabrication | ||
| bacek_ | stupid piece of code... | 06:40 | |
| pmichaud | no, logs is irclog.perlgeek.de/parrot/ | ||
| purl, logs is irclog.perlgeek.de/parrot/ | |||
| purl | i already had it that way, pmichaud. | ||
| pmichaud | no, irc log is irclog.perlgeek.de/parrot/ | ||
| purl | okay, pmichaud. | ||
| pmichaud | parrotlog? | ||
| parrotlog is irclog.perlgeek.de/parrot/ | |||
| try one of those, bacek :-) | 06:41 | ||
| bacek_ | pmichaud: thanks. I JFGI :) | 06:43 | |
|
06:52
AndyA joined
|
|||
| bacek_ have 5 failures in spectest_regression. | 06:57 | ||
| All about 'int(-0.5)' etc produces positive zero instead of negative. | 06:58 | ||
| moritz | int shouldn't distinguish those | ||
| floating points maybe, but int should have just one form of 0 | 06:59 | ||
|
07:02
masak joined
07:19
Zaba joined
07:25
ejs joined
|
|||
| bacek_ | moritz: previous versions of rakudo retuns "-0"... | 07:47 | |
|
08:17
bacek_ joined
|
|||
| Tene | DietCoke: were you being helpful, or is the separate "set svn props" commit a problem that I should work to avoid? | 08:24 | |
|
08:42
Casan_ joined
|
|||
| dalek | r27842 | fperrad++ | pdd25cx: | 08:43 | |
| : [build] | |||
| : - fix compiling of pdb | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27842 | |||
| bacek_ | ping pmichaud | 08:47 | |
| purl | I can't find pmichaud in the DNS. | ||
| bacek_ | pmichaud: ping | ||
| it so not in perl style... It should be same action! | 08:48 | ||
| nopaste? | 08:49 | ||
| 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 | it has been said that 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 | ||
| dalek | allison@perl.org | A foundation for Parrot: | ||
| link: www.perlfoundation.org/parrot/index...for_parrot | |||
| shorten | dalek's url is at xrl.us/bkxq5 | ||
| nopaste | "bacek" at 211.29.157.151 pasted "Propogating result from try{} block to caller (for pmichaud/jonathan to review)" (35 lines) at nopaste.snit.ch/13075 | 08:53 | |
| bacek_ | see everyone in couple of hours. | 08:54 | |
| dalek | allison@perl.org | Articles of Incorporation: | 09:02 | |
| link: www.perlfoundation.org/parrot/index...orporation | |||
| shorten | dalek's url is at xrl.us/bkyfj | ||
|
09:13
ank joined
09:31
iblechbot joined
|
|||
| dalek | allison@perl.org | A foundation for Parrot: | 09:33 | |
| link: www.perlfoundation.org/parrot/index...for_parrot | |||
| shorten | dalek's url is at xrl.us/bkxq5 | ||
|
09:43
ejs joined
|
|||
| dalek | r27843 | kjs++ | trunk: | 09:59 | |
| : [DEPRECATED] deprecate '.namespace \\n' in favor of '.namespace []\\n' to indicate root namespace. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27843 | |||
|
10:00
kj joined
|
|||
| kjs_ | kjs? | 10:03 | |
| purl | somebody said kjs was Klaas-Jan Stol <mailto:parrotcode@gmail.com> from The Netherlands or KHTML (read Safari/Koqueror)'s JavaScript engine... or called kj these days. | ||
|
10:03
ruoso joined
|
|||
| dalek | r27844 | kjs++ | trunk: | 10:06 | |
| : [DEPRECATED] add a 'post <release>' note to the .namespace (no brackets) item. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27844 | |||
|
10:12
ejs joined
10:13
IllvilJa joined
10:32
ejs joined
10:51
AndyA_ joined
|
|||
| kj | karma kjs | 11:01 | |
| purl | kjs has karma of 670 | ||
| kj | karma kj | ||
| purl | kj has karma of 5 | ||
| bacek | kj, slightly different :) | 11:02 | |
| cizra | karma purl | 11:04 | |
| purl | purl has karma of 8084 | ||
|
11:10
kid51 joined
11:18
ejs joined
11:34
rdice joined
11:40
^conner joined
|
|||
| ^conner | holy crap, I'm still an op ;) | 11:43 | |
| anyone have advice as to a decent php5+mysql hosting company? | 11:44 | ||
| dalek | r27845 | jkeenan++ | searchdocs: | 12:06 | |
| : Instead of storing dummy .ops files in the repository -- which would require adjusting several coding standards tests so that these files would not cause them to fail -- store them in samples.pm as exportable variables. Adjust tests accordingly. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27845 | |||
| DietCoke | purl-- | 12:48 | |
| purl | DietCoke: what? | ||
| DietCoke | hah, no wonder his karma is so high! | ||
|
12:48
gryphon joined
13:06
jhorwitz joined
|
|||
| bacek | seen pmichaud | 13:13 | |
| clunker3 | pmichaud was last seen on #parrot 6 hours, 31 minutes and 58 seconds ago, saying: try one of those, bacek :-) | ||
| purl | pmichaud was last seen on #parrot 6 hours and 32 minutes ago, saying: try one of those, bacek :-) | ||
| bacek | hey! 2 bots are too many for this channel! | ||
|
13:15
Whiteknight joined
|
|||
| DietCoke | I iz also a bot. | 13:15 | |
| bacek | bacek also bot is | 13:18 | |
| C3PO | I know billions of languages. What to translate something? | 13:19 | |
| pmichaud | pon | 13:20 | |
| pong | |||
| bacek | pmichaud, good evening :) | 13:23 | |
| pmichaud, nopaste.snit.ch/13075 | |||
|
13:23
Psyche^ joined
|
|||
| pmichaud | is the general consensus that we should deprecate ".namespace" in favor of ".namespace []"? I know that RT#48549 said that we should enable the ".namespace []" form, but that ticket was silent (until kjs' post) on deprecating the old version. | 13:24 | |
| bacek | pmichaud, Is it "right way" or I miss something crucial? | ||
| pmichaud | can't re-declare the same lexical in a scope. (the :isdecl(1) ) | ||
| DietCoke | I have no preference. it's the sort of thing we can optimize for compilers instead of humans. | ||
| kj | pmichaud: when I proposed the .namespace [] syntax, I think i explicitly mentioned to do so in favor of deprecating .namespace | 13:25 | |
| pmichaud | kj: I would've commented then if that was the case. | ||
| kj | I'd rather not have 2 notations for the same thing | ||
| bacek | pmichaud, ? | ||
| purl | somebody said pmichaud, was there an NQP test suitable for profiling? | ||
| pmichaud | we already have 2 notations for the same thing | ||
| for example, when using set_hll_global, to get at the root namespace requires not having any key. | 13:26 | ||
| i.e., set_hll_global 'foo', $P0 and not set_hll_global [], 'foo', $P0 (the latter is currently a syntax error) | |||
| kj | yeah but that's op syntax | ||
| bacek summon pmichaud but he ignores me... :) | 13:27 | ||
| pmichaud | although one can do $P1 = new 'ResizablePMCArray'; set_hll_global $P1, 'foo', $P0 | ||
| my point is simply that we do have a syntax where a non-existent [] means "root namespace". | |||
| anyway, I'm like Coke -- it's not a big enough deal for me to argue. But I was surprised that ".namespace" is being deprecated. | |||
| kj | I mean, if '.namespace' is preferred to indicate the root namespace, well, then IMHO, if that's the preference of the majority, let's stick to that, and not introduce another very similar way of saying the same thing; it'll confuse people later on | ||
| pmichaud | I'm not saying ".namespace" is preferred. I'm just not in a rush to deprecate it. :-) | 13:28 | |
| dalek | r27846 | Whiteknight++ | gsoc_pdd09: | ||
| : [gsoc_pdd09] merging from trunk r27845 | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27846 | |||
| pmichaud | bacek: can't redeclare the same lexical in the same scope (the :isdecl(1) on '$!dummy') | ||
| also, '$!dummy' could be an actual variable. | |||
| bacek | pmichaud, there is only one lexical declaration. | 13:29 | |
| pmichaud | what if there are two 'try' blocks in the same scope? | ||
| bacek | pmichaud, what is good name for such vars? | ||
| pmichaud, I hope they introduce new scopes. | |||
| pmichaud | yes, but the $!dummy you're introducing is in the outer block of the try, not in the inner block. | ||
| or perhaps I'm misreading the code. | 13:30 | ||
| at any rate, better would be to not use a lexical at all. | |||
| bacek | pmichaud, is there are better way to do it? | 13:31 | |
| pmichaud | I'm sure there is... just don't know what it is yet. | ||
| haven't looked at 'try' in months. | |||
| bacek | pmichaud, me either :) | ||
| pmichaud | PCT should return the result of the inner block as the result of the try. | 13:33 | |
| bacek | last statement in inner block is cleanup of $! | 13:34 | |
| (before my patch) | |||
| so it returns Undef... | |||
| pmichaud | maybe that should be first statement of inner block :-) | ||
| bacek | pmichaud, no... What if I'll try to check $! under try block in CATCH? | 13:35 | |
| pmichaud | well, if CATCH is invoked then $! has already been set to the exception | ||
| but yes, the inner try block should probably start with $! set to OUTER::<$!> | 13:36 | ||
| bacek | pmichaud, I'll try to implement this. | 13:37 | |
| pmichaud | I think you may need the new 'register' PAST::Var node that has been discussed. | ||
| then the results of $past could be held in a temporary register | |||
| kj | pmichaud: (no rush in deprecation) ok maybe I assumed too much. It's only a small thing, but I like consistency and clarity. | 13:38 | |
| bacek | pmichaud, probably. google isn't very helpful with '%r'... | ||
| pmichaud | kj++ # consistency and clarity :-) | ||
| kj | :-) | ||
| pmichaud | I don't know how much PCT currently relies on null namespace being representable as "" | 13:39 | |
| because PCT does know that it cannot always convert a namespace into "[]" | |||
| in particular, the 'key' method of the CodeString PMC knows to convert a namespace with zero components into "" and not "[]" | 13:40 | ||
| (and that feeds into set_hll_global, set_global, etc.) | 13:41 | ||
| kj | ooh ok. so it's not as simple as I thought then. | ||
| pmichaud | oops. Now that I look at CodeString.key, it looks as though it converts a namespace with zero components into "]" (which is obviously wrong). I might need a test for that later. | 13:44 | |
| bacek: I'm thinking that perhaps 'try' nodes should have the equivalent of an 'else' parameter | 13:45 | ||
| so that we have: PAST::Op( :pasttype('try'), $block_to_try, $catch_block, $exit_block ) | |||
| where the result of the node is always the result of $block_to_try | 13:46 | ||
| bacek | pmichaud, probably. But I didn't dig in PCT so much to give any useful feedback. | 13:49 | |
| DietCoke | pmichaud: like a try/catch/finally from java? that would be nifty. | 13:50 | |
| (being able to dispatch based on exception type would also be nifty, but probably overkill atm. =-) | |||
| pmichaud | well, not exactly 'finally', because finally always executes even if an exception was thrown | 13:51 | |
| my 'else' is if an exception wasn't thrown | |||
| bacek | pmichaud, is there anything similar to C++ destructors in parrot? | 13:52 | |
| pmichaud | bacek: that's been the subject of many discussions on parrot-porters that I've never bothered to follow very deeply. :-) | ||
| bacek | pmichaud, :) | ||
| pmichaud | bacek: so the answer is "I don't know". | ||
| DietCoke | pmichaud: your else is the catch, right. but I saw "exit_block", which I mapped to "finally" in my head. | 13:54 | |
| bacek | pmichaud, anyway, idea with loading to $! value of OUTER::!$ I like more than changing of try block. | ||
| pmichaud | bacek: well, loading $! to OUTER::$! will happen anyway as part of a standard block prologue. But we still need to "unset" $! if the try block succeeds. | 13:55 | |
| at least I think that's the case. | |||
| bacek | pmichaud, ok. But in PIR both versions of 'try' will be exactly the same. | 13:57 | |
| what the point? | |||
| purl | rumour has it the point is that tom_g would prefer to have consistent coredumps than unpredictable ones :) | ||
| pmichaud | no, in PIR they would end up being different. | ||
| bacek | purl, LOL! | ||
| purl stabs bacek in the face for crimes against English | |||
| pmichaud | the difference being in what PCT reports back as being the result of doing @a = try { ... } | 13:58 | |
| bacek | purl, wnat to learn some russian? | ||
| purl | bacek: bugger all, i dunno | ||
| bacek | pmichaud, ... Can you explain little bit more? | 13:59 | |
| pmichaud | currently 'try' nodes return the value of the inner block as the result of the try | ||
| bacek | pmichaud, yes | ||
| pmichaud | in rakudo, we're adding an extra "$_ = undef" statement to that inner block | ||
| so the result of the 'try' block always ends up being $!, which isn't what we want | 14:00 | ||
| (change $_ above to $!) | |||
| if we add an 'else' block to the try node | |||
| then we would put the $! = undef as part of the else block | |||
| bacek | pmichaud, yes. And passing exception to caller is language specific. | ||
| pmichaud | and the try block would continue to report its inner block as its result | ||
| bacek | why we should change common interface of PAST to support rakudo-specific behaviour? | ||
| pmichaud | since the inner block no longer contains the $! = undef statement, the result of the try would be the (true) result of the inner block | 14:01 | |
| other languages may also have a situation where they want to do things that are not part of the inner block | |||
| i.e., I'm not sure it's rakudo-specific behavior. | |||
| bacek | pmichaud, this is how my patch works :). In a nutshell it generates '$Pn = closure(); <cleanup>; .return($Pn);' | 14:02 | |
| pmichaud | yes, I know that's how your patch works. | ||
| I'm thinking that the more general solution might be to give 'try' blocks the equivalent of an else clause | |||
| bacek | what the difference with your proposal? | ||
| pmichaud | I don't need to generate the extra register | ||
| bacek | but how you'll call cleanup code without storing result somewhere??? | 14:03 | |
| pmichaud | in other words, I'm thinking that having an 'else' block is actually the more generic solution | ||
| because in PAST I can explicitly say which block provides the result. | 14:04 | ||
| i.e., PAST knows the results of all of the blocks. | |||
| or, put another way -- the result of a block is always held in a register somewhere | |||
| bacek | pmichaud, always storing result is bad idea... | 14:05 | |
| pmichaud | (well, unless the block is called in void context, in which case the result isn't stored) | 14:06 | |
| bacek | it will prevent some possible optimsation (or made them harder to implement) | ||
| pmichaud | but that doesn't apply in this case, since in your example the block is explicitly being called in a non-void context. | ||
| here, I'll type up the differences in the two approaches | 14:07 | ||
| just a sec | |||
| bacek | ok | ||
| pmichaud | (have to re-build rakudo) | ||
| bacek | rebuilding rakudo takes half an hour on my old-good laptop... | 14:09 | |
| pmichaud | already done here. :-) | ||
| bacek | pmichaud, :) | 14:10 | |
| afk for 10 minutes | |||
| nopaste | "pmichaud" at 76.183.97.54 pasted "for bacek: PIR differences in try approaches" (36 lines) at nopaste.snit.ch/13077 | 14:13 | |
| particle | pmichaud: how about creating PAST::Block types for pre- and post-block. basically, hooks that can do setup/cleanup on *any* block, and using them for 'try'. they could do setup like $! := OUTER::$! and cleanup like $! = undef, without affecting the return value | 14:15 | |
| pmichaud | I've been thinking about that also. | 14:16 | |
| particle | i'd *really* like hooks like that for profiling, debugging, etc | ||
| pmichaud | well, we need them for ENTER/LEAVE and the like also. | ||
| particle | putting them into PAST would make them pervasive and powerful | ||
| pmichaud | agreed. and 'return' probably fits in there as well. | 14:17 | |
| since that's just CONTROL | |||
| particle | ah. yes. | ||
| pmichaud | and that probably depends/impacts what allison is doing with exception handlers | 14:20 | |
| bacek | pmichaud, you right... Your version is much cleaner... | 14:27 | |
| pmichaud | also fwiw, in general I have a "working premise" that the underlying features of Perl 6 are general enough to be able to implement most other languages, so it's okay to adopt those features into the compiler toolkits | 14:29 | |
| I think for now I'll add an 'else' block to PAST::Op try nodes, but we may end up undoing it or rethinking it all later | 14:31 | ||
| bacek | pmichaud, ok. | ||
| pmichaud | one of the reasons why pre- and post-block might not work in this case is that it makes the (Perl 6) assumption that all exception handling is done at the block level. | 14:32 | |
| whereas some languages might have "try" bodies and clauses that aren't actually blocks. | |||
| bacek | pmichaud, what about my other patches? (You already announced that 'map' is implemented :) | ||
| pmichaud | bacek: still catching up on the patch backlog, yes. :-) | ||
| today I was thinking of fixing $_, $!, and friends. | |||
| particle | pmichaud: then how about a 'trigger' block type, with custom trigger types | 14:33 | |
| PAST::Block( :trigger :type<some-custom-hll-type> ) | |||
| ...with a standard list of trigger types including CONTROL, ENTER, LEAVE... | 14:34 | ||
| pmichaud | possibly | ||
| but I still think having an 'else' clause on try nodes may be useful. | 14:35 | ||
| bacek just wander do we actually need to clean up lexical $!... | 14:36 | ||
| pmichaud | on entering a routine, $! should be set to empty/null/undef. | ||
| for other blocks, $! should default to OUTER::<$!> | |||
| and the implementation of $! = OUTER::<$!> isn't exactly what I think it should be. | 14:37 | ||
| (it's currently done with inline PIR for some reason.) | |||
| moritz | should a try { } block also clear $! on entering? | ||
| bacek | why not to load OUTER::<$!> with lexical $! in 'catch'? | ||
| moritz | so that things like try { ... } try { ... } if $! { ... } DWIM? | ||
| particle | i think it's done with inline pir because jonathan wrote it and he tends to think that way :) | ||
| moritz | ie only check the second try's $! | ||
| pmichaud | I think it should clear $! on successful exit. | 14:38 | |
| not necessarily on entering. | |||
| moritz | probably more intuitive that way | ||
| pmichaud | depends on whether we think $! inside of a try block should default to OUTER::<$!> | 14:39 | |
| (and I'm guessing it probably should.) | 14:40 | ||
| bacek | pmichaud, agreed | 14:43 | |
| particle | $! should default to OUTER::<$!> | 14:44 | |
| pmichaud | I'd like a "make something_test" target that runs only the codingstd and docs tests that are part of normal "make test" | 14:51 | |
| something that we can tell rakudo programmers to be sure to run before committing, since we keep having problem with metadata and codingstd errors in the rakudo commits. | 14:52 | ||
| (and something that is shorter than a full 'make test' on parrot) | |||
| DietCoke | make 'coretest' is in between test and what you ask for. | 14:53 | |
| pmichaud | well, except for rakudo changes I really don't need to re-test the parrot core. | ||
| and I think coretest skips the tests I'm looking for. | |||
| DietCoke | possible. I thought it just skipped the configure tests. | ||
| but, +1, seems like a reasonable request. | 14:54 | ||
| pmichaud | looks like what I'm looking for are the developing_tests | 14:55 | |
| Whiteknight | how do I get opengl on windows? I'm trying to test out the opengl stuff but configure.pl says that I don't have it | 14:56 | |
| dalek | r27847 | pmichaud++ | trunk: | 14:57 | |
| : [pct]: | |||
| : * Add an 'else' node to PAST::Op 'try' nodes -- the 'else' | |||
| : node is invoked if the tried node doesn't throw an | |||
| : exception. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27847 | |||
| kj | pmichaud: is that try node's 'else' node also known as 'finally' in many languages? | 14:58 | |
| or is this different semantics? | |||
| pmichaud | kj: no. 'finally' is always invoked. | ||
| kj | ooh ok | ||
| DietCoke | oh, I thought your else was a catch block. it's an anti-catch block. My ability to misread continues to amaze me! | 14:59 | |
| pmichaud | right, it's an anti-catch. | ||
|
14:59
Zaba_ joined
|
|||
| pmichaud | try nodes already have catch nodes :-) | 14:59 | |
| bacek | pmichaud, I'll rewrite my patch tomorrow to reflect this changes... Time to sleep | 15:01 | |
| pmichaud | bacek: already wrote it :-) | ||
| I'm testing and about to commit. :-) | 15:02 | ||
| I'll give you credit for the ideas, though. | |||
| bacek | pmichaud, Hey! You stealing my karma!!! :) | ||
| ;) | |||
| pmichaud | we both get karma'd. | ||
| > my $a = try { 'foo'; }; say $a; | 15:03 | ||
| foo | |||
| purl | bar | ||
| szbalint | baz | ||
| nopaste | "pmichaud" at 76.183.97.54 pasted "for bacek: new version of 'try' handler" (13 lines) at nopaste.snit.ch/13078 | 15:05 | |
| pmichaud | I like the new code -- very clean. | ||
| bacek | pmichaud++ | ||
| Much-much better! | |||
| pmichaud | just checking spectest_regression before committing | 15:06 | |
| NotFound | Nast | 15:07 | |
| Ups, sorry. | |||
| bacek | moritz++ for spectest_regression | 15:08 | |
| moritz | ;) | ||
| bacek | sorry guys... It's definetly bed time here... | 15:09 | |
| see ya | |||
| dalek | r27848 | pmichaud++ | trunk: | 15:13 | |
| : [rakudo]: | |||
| : * Update $! handling in 'try' blocks. | |||
| : * bacek++ for ideas and suggestions on this. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27848 | |||
| pmichaud | karma bacek | ||
| purl | bacek has karma of 11 | ||
| pmichaud | bacek++ # bonus karma | 15:14 | |
|
15:15
masak joined
|
|||
| pmichaud | DietCoke: (coke-floats) .... why is "20 pounds" linked to a bag of cat food? ;-) | 15:19 | |
| DietCoke | because it weighs 20 pounds. | 15:20 | |
| pmichaud | oooooooookay. | ||
| DietCoke | I find it helpful to visualize the amount I've taken off by comparing it to stuff I can hold. | ||
| pmichaud | makes sense. | 15:21 | |
| DietCoke | 20 pounds was a hard weight to google for; most of the hits were diet programs. =-) | ||
| by the time I reach my initial goal, I'll have a link to a picture of one of my kids! :| | 15:23 | ||
|
15:23
jjore joined
|
|||
| moritz | DietCoke: we have here bags of coal (for barbecues) that are 20 pounds ;) | 15:24 | |
|
15:24
AndyA joined
|
|||
| DietCoke | there you. I had one of those in my gut 3 weeks ago. :| | 15:26 | |
| "there you go." | |||
| dalek | r27849 | Whiteknight++ | trunk: | 15:56 | |
| : [t] updating tests to use ".namespace []" instead of ".namespace", which is deprecated. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27849 | |||
|
16:11
iblechbot joined
16:15
rdice joined
16:47
Psyche^ joined
16:48
Theory joined
|
|||
| dalek | r27850 | allison++ | pdd25cx: | 16:48 | |
| : [pdd25cx] Free continuations from the stack. Now that exception handlers don't | |||
| : live on the stack, stack-based control flow and continuation-based control flow | |||
| : are completely independent. Also, revamp exception handlers so they no longer | |||
| : use C's unstable setjmp/longjmp (made possible by decoupling the stack from | |||
| : continuations, so we have true CPS). Cleanup the related tests, and add some | |||
| : new tests for resuming after handled exceptions. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27850 | |||
| DietCoke | allison++ | 17:03 | |
| DietCoke wonders if dan or chip will be in chicago next month. | 17:05 | ||
| confound | allison++ | 17:08 | |
| jhorwitz | yay, allison++ | ||
| confound | is dalek giving out bogus diff urls? | 17:09 | |
| jhorwitz wonders if anyone seen dan at all lately | |||
| DietCoke | he's been working on tornado, posting to his blog occasionally. | 17:10 | |
| dan's blog? | |||
| purl | i heard dan's blog was www.sidhe.org/~dan/blog/ | ||
| DietCoke | hurm. that says no updates since 11/07; was sure I'd see a few posts this year. | 17:11 | |
| diakopter | confound: no; feather's apache2 won't start b/c it's out of disk space... working on it. | 17:13 | |
| Juerd | diakopter: moritz is also working on it. Are you two aware of each other's work? :) | 17:17 | |
| purl | okay, Juerd. | ||
| moritz | purl: forget moritz | 17:18 | |
| purl | moritz: I forgot moritz | ||
| diakopter | confound: it's back up | 17:20 | |
| dalek | r27851 | Whiteknight++ | gsoc_pdd09: | 17:23 | |
| : [gsoc_pdd09] Adding some hooks where more information will need to go | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27851 | |||
| japhb | Whiteknight: still looking for OpenGL help? | 17:26 | |
|
17:27
cjfields joined
17:30
gryphon joined
17:43
barney joined
|
|||
| DietCoke | I can't build the pdd25-cx branch. :| | 17:45 | |
| particle | i'm pretty sure allison would like a report on that | 17:46 | |
| DietCoke | I'm testing against trunk to make sure it's not there too. | 17:47 | |
| JEEBUS manicheck is slow. :| | 17:48 | ||
| particle | you running windows? | 17:50 | |
| can we generate manifest from svn ls? | |||
| DietCoke | (windows) not atm. | ||
| eh. not something I care to fix atm, just whinging. | 17:51 | ||
| jonathan | hi all | 17:55 | |
| Back home, temporarily. | |||
| moritz | hi jonathan, what a rare condition (you home) | 17:56 | |
| jonathan | Heh | ||
| Tene | hi jonathan | ||
| jonathan | I have no plans for any Perl events or vacations to places I don't reach by train during June and July. | ||
| And no, that's not a challenge. ;-) | 17:57 | ||
| But French Perl Workshop coming up at the weekend. | |||
| DietCoke | particle: reported | ||
|
17:58
braceta joined
18:06
davidfetter joined
18:07
slavorg joined
18:28
Zaba joined
18:31
chromatic joined
18:32
rdice joined
|
|||
| chromatic | #ps time | 18:33 | |
| DietCoke | ... crap! | 18:40 | |
| chromatic | Tene: rubyspec.org | 18:42 | |
| Tene | chromatic: that's the one I found. | ||
| chromatic | That's the only one worth looking at. | ||
|
18:46
Ron joined
|
|||
| PerlJam | Tene: so ... how long before you get Rails working on cardinal? ;) | 18:56 | |
| jhorwitz considers mod_cardinal | |||
| Tene | PerlJam: I have no idea. I've never looked at the rails source, so I don't know what it needs. | 18:57 | |
| PerlJam | Tene: yeah, I figured as much. Rails probably needs *everything* anyway. | ||
| Tene | I expect to have a lot of things working soon. | ||
| PerlJam | Tene++ | ||
| jhorwitz++ (I'm lurking on #ps :-) | 18:58 | ||
| Tene | Most of my commits lately have been a tiny bit of code, and stealing class definitions from rakudo. | ||
| PerlJam | Tene: do you have a list of what's left? If there's some reasonably small things I might be able to find the time to help with cardinal. | 18:59 | |
| Tene | PerlJam: the largest item that I keep blocking on is that I actually don't know ruby. | 19:00 | |
| PerlJam | Tene: heh | ||
| Tene | PerlJam: The class hierarchy needs to be reworked to match ruby's. | ||
| Also, the builtins for all the different classes need to be written. | |||
| PerlJam | I've found rails at least a pleasant programming experience. I tend to guess at syntax and such and ruby obliges me by doing what I expected :) | 19:01 | |
| Tene | I don't know the semantics of most of the builtins. | ||
| bbiab lunch | |||
| Whiteknight | seen japhb? | 19:03 | |
| clunker3 | japhb was last seen on #parrot 1 hour, 37 minutes and 7 seconds ago, saying: Whiteknight: still looking for OpenGL help? | ||
| purl | japhb was last seen on #parrot 1 hour and 37 minutes ago, saying: Whiteknight: still looking for OpenGL help? | ||
| Whiteknight | oh good, bots in stereo | 19:04 | |
| japhb is snowed in by x-chat alerts | |||
| Whiteknight | sorry | ||
| japhb | no problem! Just made me chuckle | ||
| Whiteknight | I've got the opengl working on my debian box already. I tried to get it working on my WinXP box, but it's b0rk | 19:05 | |
| japhb | I expected that. OK, which compiler environment are you using? | ||
| Whiteknight | I was trying to use Visual C++ Express edition, but I couldn't really install that | ||
| my harddrive is completely screwed, can't download new stuff, can't install new stuff, etc | 19:06 | ||
| japhb | ouch | ||
| sounds like my wife's Mac after installing OS X 10.5 ... | |||
| Whiteknight | so, in short, i can't test it for you | ||
| japhb | oh | ||
| suckage | |||
| sorry to hear that | |||
| Whiteknight | i wish i could be more help! I can tell you that it works perfectly on debian | 19:07 | |
| moritz | Whiteknight: basically all build tasks are much easier on any unixish environment than under windows | 19:10 | |
| because on unixish systems you are expected to do such things | |||
| on windows only if you're a ultra-l33t hacker that can solve any problem anyway | |||
| Whiteknight | yeah, i know. That's why i made the switch in the first place | ||
| japhb | Whiteknight: since I run Debian myself, it had darn well BETTER work there. ;-) | ||
| Whiteknight | you've inspired me to start coming up with some gtk bindings for parrot | 19:11 | |
| although, because i'm so busy, that project is on hold indefinitely | |||
| japhb | I know how you feel. | 19:12 | |
| I don't really have time to be working on the OpenGL bindings, but they're important to me, and I got skewered in an open forum about not doing it, so my ego took over for my common sense and I got to work. ;-) | 19:13 | ||
| chromatic | I wouldn't say skewered exactly. | ||
| japhb | chromatic pops out of the woodwork ... | 19:14 | |
| So since you're here, who/what am I waiting on for my commitbit? | |||
| dalek | r27852 | bernhard++ | trunk: | ||
| : #46903: [TODO] [Perl] Implement todo items mentioned in tools/dev/extract_file_descriptions.pl | |||
| : Remove the script, as it seems to be unused. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27852 | |||
| chromatic | Looking for someone to mentor you and slap your hand if you break the build :) | ||
| japhb | Not to speak for anyone, but I think the hand-slapping is already well covered. ;-) | 19:15 | |
| chromatic | I have two concerns. One, the SVN metadata dance (which I've never liked anyway). | ||
| Two, that changes to the configuration system might break configuration on other platforms for what's admittedly an optional piece of Parrot anyway. | 19:16 | ||
| Whiteknight | maybe he needs a branch? | ||
| localize all the optional changes in a place where it doesnt really affect the rest of the build | |||
| japhb | chromatic: fair enough ... but for any change to the configuration system, kid51 has already told me that he requires a patch first, and some days to inspect. And I've both kept to that in the past, and intend to do so in the future. | 19:17 | |
| chromatic | Provided that we can encourage people on other platforms to test the branch, that works for me. | ||
|
19:17
ejs joined
|
|||
| japhb | chromatic: and as for the SVN metadata dance ... the worst that happens is that a test fails because of missing metadata, yes? My understanding is that it doesn't actually break the build (but I wouldn't know for sure, since most of the metadata doesn't really affect Linux) | 19:18 | |
| And that's only if I forget to follow a commit from git with an SVN commit | 19:19 | ||
| chromatic | Yep. | 19:20 | |
| japhb | chromatic: my working policy is that config changes need signoff from at least one representative each of Linux, Mac OS X, and Win32. Is that good enough for you? | ||
| chromatic | Also good. | ||
| japhb | OK, so now just need a mentor, I take it. | ||
| chromatic | Or at least someone to watch your commits for the first couple of weeks. | 19:21 | |
|
19:23
AndyA joined
|
|||
| chromatic | ... and I can do that. | 19:24 | |
| japhb | chromatic: perfect, thank you. | 19:33 | |
| So ... next step? | |||
| moritz is surprised that purl doesn't have a helpful suggestion for "next step" | |||
|
19:38
Whiteknight joined
|
|||
| confound | step 3? | 19:38 | |
| purl | step 3 is PROFIT! or "Get your girl to open that box" or www.step3profit.com/ | ||
| DietCoke | next step is step 3 | 19:39 | |
| pmichaud | DietCoke: so, did you want a cleaner explanation of parameter passing? ;-) | 19:41 | |
| DietCoke | as long as it ends up in the docs. it's the switching between parameter and argument that confused me, because they seemed to be used both interchangably, and distinctively. | 19:42 | |
| pmichaud | "parameter" is the thing on the receiving end -- what we define in a sub | ||
| "argument" is what we send -- what we pass in a call | |||
| moritz | and half of the time half of the people do confuse these two | 19:43 | |
| NotFound | moritz: and the comments in the code also. | ||
| pmichaud | yes, and sometimes even those of us who know the difference say the wrong one :-) | ||
|
19:43
AndyA joined
|
|||
| pmichaud | I think that PDD03 uses "target" and "value" instead of "parameter" and "argument" | 19:43 | |
| so, in Perl 6, nearly every parameter can be matched to a named argument | 19:45 | ||
| chromatic | Think of parameters as what we use when we say .param Type foo | 19:46 | |
| pmichaud | sub foo($a) { ... } can be called using either foo(3) or foo( a => 3 ) | ||
| sub foo($a, $b) { ... } can be called as foo(3,4) or foo( a => 3, b => 4) or foo( b => 4, a => 3) or foo( b => 4, 3 ) | |||
| Perl 6 also has a concept of "named only" parameters -- these are parameters that can only be match to a named argument. | 19:48 | ||
| At present, Parrot has no concept of a "named only" parameter. | |||
| Tene | parrotlog? | 19:49 | |
| purl | parrotlog is irclog.perlgeek.de/parrot/ | ||
| pmichaud | In Perl 6, that would be sub foo(:$a) { ... } which can only be called as foo( a => 3 ) or foo( :a(3) ) or something that explicitly provides an argument named 'a' | ||
| Whiteknight | pmichaud, what would it take to add "named only" parameters to parrot? | ||
| pmichaud | Whiteknight: I made a proposal to parrot-porters yesterday, which was then discussed today in #parrotsketch (and tabled to tomorrow's Perl 6 design meeting) | 19:50 | |
| essentially I think we should turn our existing :named flag to mean "named-only", and add a :positional flag that can be used to indicate "named positionals" | |||
| Whiteknight | i read the message and was lurking in #ps | ||
| NotFound | I think that fixing actual argument passing must be done first. | ||
| Whiteknight | okay, that answers my question | ||
| pmichaud | or, we could flip it around and say that :named means "named positional", and add a flag that indicates "named only" | 19:51 | |
| NotFound | I took several looks at the open argument passing bug tickets, and my impression is that the code is already too confusing. | ||
| pmichaud | but if we do that, we still need to change Parrot's semantics for handling named positionals, because at present it prefers to fill a named parameter with a positional argument | ||
| notfound... which tickets are those? | 19:52 | ||
| NotFound | Dont' remember... wait a moment. | 19:53 | |
| DietCoke | there's one in my queue, regarding turning on the check when there's no .params at all. | ||
| NotFound | #53926, for example. | 19:54 | |
| ah, this is youres X-) | 19:55 | ||
| chromatic | DietCoke, we might need Leo's comments on my patch there. | ||
| pmichaud | right, I filed that one. :-) | ||
| NotFound | I think there is other with similar content, let me see... | ||
| pmichaud | most of them are ones that I've found. :-) | ||
| because the stuff I work with tends to have the greatest variety of options. :-) | 19:56 | ||
| NotFound | Then why ask me? X-) | ||
| pmichaud | I didn't know if you found any that I didn't author. | ||
| but yes, the parrot calling conventions have always been a little flaky. | |||
|
19:57
AndyA joined
|
|||
| NotFound | pmichaud: #39844 | 19:59 | |
| #41132 | 20:00 | ||
| #46457 | 20:01 | ||
| That's all. | 20:04 | ||
| pmichaud | okay. | ||
| yes, any changes we make should fix those as well. | |||
|
20:09
Auzon joined
20:12
ruoso joined
|
|||
| dalek | r27853 | tene++ | trunk: | 20:34 | |
| : [cardinal] | |||
| : * Hashes start working | |||
| : * Small class creation fix | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27853 | |||
| r27854 | tene++ | trunk: | 20:37 | ||
| : Add new file to MANIFEST and set svn props. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27854 | |||
| Tene | Creating a hash works, and changing the value of an existing hash element works, but adding a new entry to the hash fails. | 20:38 | |
| Investigating... | 20:39 | ||
| Ah, I have the same problem with arrays, too. | |||
| Tene compares with rakudo past. | 20:40 | ||
| Specifically, Null PMC access in morph() | |||
|
20:42
japhb joined
|
|||
| Tene | I wonder if it's related to using pasttype('copy') instead of calling an infix:= sub | 20:45 | |
| jonathan | Tene: If you aren't vivifying the target of the assignment, you will get this issue. | 20:47 | |
| Tene | Hm. | ||
|
20:48
cjfields joined
|
|||
| Tene | jonathan: difference between vivibase and viviself? | 20:49 | |
|
20:50
dolmen joined
|
|||
| jonathan | Tene: IIRC, vivibase is what somehting like an array vivifies to, and viviself is what an element coming out of the array vivifies to. | 20:51 | |
| Tene | Okay, thanks. | ||
| Looks like that works. | |||
| pmichaud | vivibase says how to vivify the aggregate | ||
| I did it that way because it was easier than trying to always set viviself on the aggregate | 20:52 | ||
| jonathan | pmichaud: I started switching type checking over to happen on assign today. | 20:53 | |
| Got a chunk of code on my laptop that I did at Prague airport. | 20:54 | ||
| pmichaud | excellent | ||
| I'm hoping that changes the typechecking code a fair bit? | |||
| NotFound | There aren't import taxes? | ||
| jonathan | Yeah, just a little. ;-) | ||
| pmichaud | I'm wanting to migrate the typecheck stuff out of the <signature> rule and into the <param_var> rule, if not. | ||
| (and possibly even if so :-) | 20:55 | ||
| jonathan | I havn't looked at parameters yet. | ||
| pmichaud | but I'm going to leave typechecking alone until we know how mutables are going to pan out | ||
| jonathan | Well, I don't want to break something that works now, so I'm refactoring it to work on the new model. :-) | ||
| pmichaud | right now the typechecks are added as part of the <signature> action, but I think they should occur somewhat lower (like, in <typecheck> ) | ||
| jonathan | It already feels a bit cleaner. | ||
| pmichaud | but we'll wait until we have your refactors in. | 20:56 | |
| jonathan | I've factored some code out that I expect will give more re-use between variable and parameter types. | ||
| On parameters - not got to those yet. | 20:57 | ||
| pmichaud | I also looked a fair bit at signature handling, $_, and placeholders last night. | ||
| jonathan | Just making it work with variables first. Then parameters are up next. | ||
| pmichaud | we have a few too many flags floating around, I think :-) | ||
| jonathan | Need to get is copy, is ro (as default), is rw and so on to work. | ||
| Especially is ro, so we get the right semantics. :-) | |||
| pmichaud | those are just traits on the variable, yes? | 20:58 | |
| jonathan | Yeah. | ||
| I've yet to work out a neat way to handle this yet, though. | |||
| pmichaud | seems like 'is ro' should simply throw an exception on assign | ||
| jonathan | No, no. | ||
| That's the easy-ish bit. :-) | |||
| Actually applying that trait. | 20:59 | ||
| And how we apply traits to containers in general. | |||
| But we ain't gonna get that right until MMD is fixed. | |||
| So for now, I suspect we just want some hack for a few built-in ones. | |||
| pmichaud | aren't the traits just more properties? | ||
| jonathan | Yeah, kinda. But properties aren't really something you just have a hash of. | 21:00 | |
|
21:00
Zaba_ joined
|
|||
| jonathan | It's really like doing a "does" | 21:00 | |
| To actually set the property. | |||
| dalek | r27855 | tene++ | trunk: | ||
| : [cardinal] | |||
| : * Adding new items to aggregates works now. (jonathan++) | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27855 | 21:01 | ||
| jonathan | A well-behaved trait handler will say | ||
| $container does xxx($arg); | |||
| somewhere inside to set the metadata on the container correctly. | |||
| (from S12) | 21:02 | ||
| So we need to figure out "does" implementation. | |||
| And that + MMD so we can dispatch trait_auxilliary:is correctly = a little way off | 21:03 | ||
| pmichaud | okay. | 21:04 | |
| jonathan | Thus why I think maybe we just detect a few known ones at compile time as a special case for now. | ||
| pmichaud | I'm happy with "hack for a few built-in ones" for now. | ||
| jonathan | Maybe in the summer we can Do It Right. | 21:05 | |
| pmichaud | it's worked reasonably well thus far :-) | ||
| getting mutables implemented is far more important than type checking at this point. | |||
| or trait handling. | |||
| since w/o mutables we're having trouble doing simple hashes and arrays and the like | |||
| jonathan | For sure. | 21:06 | |
| purl | like totally! | ||
| jonathan | I'm not planning to spend weeks getting the type checking refactored though. | ||
| pmichaud | oh, definitely not. | ||
| jonathan | Like, I hope to have the branch ready to merge back in after FPW. | ||
| Which is this weekend. | |||
| pmichaud | I definitely want to get mutables in the trunk asap. | ||
| even if that means that type checking is disabled for a while. | |||
| jonathan | If it's going to take much beyond this weekend, then we can drop it for a while. | 21:07 | |
| Otherwise, I'd like to try and preserve it. | |||
| pmichaud | I'll leave that choice up to you. :-) | ||
| jonathan | Since I'm already a good bit of the way there with it... | ||
| pmichaud | I didn't have type checking in the roadmap, but it's probably around the same level as junctions. | 21:08 | |
| jonathan | I just don't like to give folks features to play with, then have them disappear. | ||
| pmichaud | agreed. | ||
| well, type checking is not exactly the same as MMD :-) | |||
| jonathan | And my Dog $fido .= new(); is not something I think we should make disappear lightly. | ||
| pmichaud | ah, to me that's not type checking, though. :-) | ||
| that's just a typed variable. | |||
| jonathan | Oh, it's not the checking. | 21:09 | |
| But the checking is not the hard part here. ;-) | |||
| pmichaud | okay. | ||
| jonathan | Not for now, anyway. | ||
| pmichaud | still, one could do my Dog $fido without having to store traits on $fido | ||
| jonathan | Yeah, true. | ||
| Well, let's see how it goes over the weekend. | |||
| pmichaud | just make sure fido gets initialized to a Dog proto :-) | 21:10 | |
| jonathan | We're going, at some point, to need to start building ourselves a kinda "class registry", I think. | ||
| pmichaud | oh yes, I know that. | ||
| jonathan | Not in the mutables refactor. | ||
| But so | |||
| my Foo $x; | |||
| pmichaud | it has to appear in the symbol table. | ||
| at compile time. | 21:11 | ||
| jonathan | Will put a proto in $x | ||
| if Foo is a class | |||
| But if it's a role or subset or anything more complex, it's just a Failure. | |||
| pmichaud | oh, we could still do that w/o a class registery | ||
| er, registry | 21:12 | ||
| jonathan | Runtime check? | ||
| pmichaud | just have runtim.... right. | ||
| jonathan | Yeah, I didn't feel like that. But you're right, of course. :-) | ||
| And we have to do it anyway. | |||
| For my ::T $x; | |||
| When heck knows what T is. | |||
| Or for my T $x; when T is a parameterized type. | 21:13 | ||
| pmichaud | but we will end up with a managed symbol table anyway, simply because the <typename> token is going to require it. | ||
| right now rakudo cheats by assuming that any capitalized bareword is a class/role/namespace | |||
| jonathan | Yeah. | ||
| That's...not nice. :-) | |||
| But it works for now. | |||
| pmichaud | it's a good heuristic for the moment until we can keep a symbol table around :-) | ||
| jonathan | I'm not sure it'd be too bad to do. | 21:14 | |
| pmichaud | well, theoretically we should just keep such things in lexical scopes. | ||
| i.e., as lexical variables. | |||
| and then do find_name to look them up. | |||
| jonathan | Keep what symbols are registered around as lexical scopes? | 21:15 | |
| pmichaud | as lexicals in the current scope. | ||
| i.e., what one scope things is a 'Dog' might differ from another scope. | |||
| jonathan | Ah, where doing a "use" imports names into the current scope, perhaps. | ||
| Right. | 21:16 | ||
| pmichaud | s/thinkgs/thinks/ | ||
| (can't type) | |||
| jonathan | Well, just some of the many tasks we have before us. :-) | ||
| pmichaud | indeed. | ||
| there are times when scheme looks more and more inviting. :-) | 21:17 | ||
| chromatic | Don't get used to it. | ||
| dalek | r27856 | chromatic++ | trunk: | 21:18 | |
| : [IMCC] Fixed compilation on platforms where returning the results of function | |||
| : that returns void isn't void enough for non-GCC compilers (Andrew Johnson, RT | |||
| : #54920). | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27856 | |||
| diakopter | nopaste? | 21:24 | |
| 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 | 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 | ||
| diakopter | hee | ||
| DietCoke | who turned up the verbosity on clunker? | 21:25 | |
| can we hush him up? one spammy bot is more than enough. =-) | |||
| Tene | clunker3? | 21:27 | |
| purl | rumour has it clunker3 is running from Tux_'s pc at work | ||
| Tene | clunker? | ||
| purl | rumour has it clunker is a known bot | ||
| Tene | Huh. | 21:33 | |
| I ran a tiny 10000 iteration while loop under both ruby 1.8 and cardinal. | |||
| ruby was about 5x faster | |||
| jonathan | Tene: was it an optimized Parrot build? | 21:34 | |
| And what runloop, and all of that usual things. :-) | |||
| Tene | I upped the iterations to 10000000, and cardinal is hanging horribly about once a second | ||
| I guess that's gc. | 21:35 | ||
| jonathan | Tene: sounds GC-ish. | ||
| Tene | Not optomized. I don't know how to build an optimized parrot. | ||
| Default runloop. | |||
| I'd be glad to re-do it with whatever changes you'd like. | |||
| chromatic | make clean | 21:36 | |
| edit the Makefile and add -O2 before -g | |||
| I'm sure there's a way to set that when running Configure.pl, but I'm too lazy to learn new things. | |||
| japhb | 'perl Configure.pl --optimize' or 'perl Configure.pl --optimize=<flags>' | 21:38 | |
| And then run parrot with -O2 -Ot, IIRC | |||
| leo: ping | 21:39 | ||
| dolmen | cardinal? | ||
| purl | somebody said cardinal was mail.freesoftware.fsf.org/pipermail...dinal-dev/ or the Ruby-on-Parrot project. or xrl.us/uyz3 | ||
| Tene | Looks like I get segfaults with an optimized build. | 21:40 | |
| chromatic | In the tests or in Rakudo? | 21:41 | |
| Or Cardinal? | |||
| purl | i think Cardinal is mail.freesoftware.fsf.org/pipermail...dinal-dev/ or the Ruby-on-Parrot project. or xrl.us/uyz3 | ||
| Tene | in building parrot itself. | ||
| chromatic | Which platform? | ||
| purl | I'm running on OS/2 on an Atari, can you help? | ||
| Tene | x86_64 | ||
| gmake[1]: Entering directory `/home/sweeks/src/parrot.gs/compilers/tge' | 21:42 | ||
| ../../parrot ../../runtime/parrot/library/PGE/Perl6Grammar.pbc --output=TGE/Parser.pir TGE/Parser.pg | |||
| gmake[1]: *** [TGE/Parser.pir] Segmentation fault | |||
| chromatic | Did you 'make clean' first? | ||
| Tene | Yes. I'll make realclean and try again. | ||
| This time, without -j, I get: | 21:44 | ||
| ../../parrot ../../runtime/parrot/library/PGE/Perl6Grammar.pir --output=PGE/builtins_gen.pir PGE/builtins.pg | |||
| gmake[1]: *** [PGE.pbc] Segmentation fault | |||
| pmichaud | I've been seeing an above-average number of segfaults lately (that seem to clear up with -G) | 21:45 | |
| fwiw. | |||
| chromatic | You're on 64-bit too, right? | ||
| pmichaud | right now 32-bit | ||
| had to move to 32-bit because of some vmware clock issues (long story) | |||
| but I may be moving back to 64 bit soon. | 21:46 | ||
| chromatic | I get threads failures with an optimized build. | ||
| japhb | I've got Intel 32-bit here (laptop), but AMD 64-bit at home. Both Debian testing. | 21:47 | |
| Tene | Looks like the cardinal grammar doesn't have 'for' | 21:51 | |
| Tene tries building optimized parrot on x86 | 21:53 | ||
|
21:54
Zaba joined
|
|||
| chromatic | Cardinal's taking a lot of continuations. That's why it's slow. | 21:55 | |
| If you can reduce the number of bsr LABEL operations, you can speed it up. | 21:56 | ||
| PerlJam | chromatic: but can't you make continuations faster? You've made bunches of other stuff faster. ;-) | 21:57 | |
| chromatic | Not in the short term. | ||
| In the long term, the sun will burn out and it won't matter. | |||
| We can only quibble about how long it'll take the medium term to arrive. | |||
| Tene | chromatic: which part of cardinal are you talking about? While running, or compiling? | 21:58 | |
| chromatic | While running. | 21:59 | |
| I profiled t/00-sanity.t | |||
| Tene | Okay. | ||
| jonathan | Pack of chocolate + placement of said chocolate on wifi router = almost drinking chocolate.... | 22:03 | |
| chromatic | Of course, that could be parsing speed. | ||
| japhb | mmm, chocolate ... | 22:04 | |
| chromatic | If you had a way to dump a runnable PIR transliteration (--target=PIR doesn't give me something runnable), I could profile that and make sure. | ||
| jonathan | If it's bsr and ret, I suspect it's parsing. | ||
| japhb seriously needs an infusion | |||
| jonathan | I think PGE generates quite a few of those. | ||
| chromatic | Yeah, I was thinking the same thing. | ||
| If only we had PIR-level profiling.... | 22:05 | ||
| nopaste | "tene" at 67.137.148.11 pasted "runnable pir for chromatic" (43 lines) at nopaste.snit.ch/13087 | ||
| Tene | Yeah, that's what I was asking about. | ||
| if you're profiling, you might want to drop the number of iterations a bit. | 22:06 | ||
| chromatic | Or dump to /dev/null | ||
| IO bound. | 22:07 | ||
| I wonder if there's a way to optimize bsr within a single sub... almost like you don't have to store a stack chunk. | 22:08 | ||
| Tene | With an optimized parrot on i386, I'm getting a 10x speed difference | 22:10 | |
| chromatic | That fast? | 22:11 | |
| Tene | compared to ruby | ||
| LEt me rebuild to see if it's actually slower when optimized | |||
| PerlJam | Tene: ruby is 10x faster? | ||
| Tene | Yes. | 22:12 | |
| .45s vs 4.8s | 22:14 | ||
| chromatic | What's slow: the ParrotObject PMC, specifically get/set attribute_keyed, because get_attribute_index_keyed eats up a lot of GCable headers. | 22:15 | |
| sorry, get_attrib_index_keyed | |||
| Fix get_attrib_index_keyed, and we get a lot of speed back. | 22:16 | ||
| jonathan | I'm still surprised optimized would be slower... :-S | 22:17 | |
| I'm not surprised that that particular function could be faster. | 22:18 | ||
| PerlJam | jonathan: it's clearly optimized for the wrong thing. | ||
| chromatic | Definitely. Just getting rid of PARROT_ASSERT should speed things up. | ||
| japhb | You know, it speaks well of Parrot's design that for the last while most of the performance wins seem to be small tweaks, not "change the entire design, we screwed up". | 22:19 | |
| dalek | r27857 | rblasch++ | trunk: | ||
| : [win32] Fix Parrot_asctime_r for Windows. | |||
| : Windows has asctime, but renders single digit days with a leading zero, | |||
| : instead of blank. This new implementation uses sprintf with the format | |||
| : string specified in the C standard. Probably not the fastest way, but | |||
| : hopefully correct. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27857 | 22:20 | ||
| chromatic | Remember though, I've focused on microoptimizations to make language hackers more productive in the short term. | ||
| japhb | sure, but still you've accomplished a remarkable amount with microoptimization. | ||
| It's not like the last month has added up to 10% ... you've got to be at 2x at least by this point. | 22:21 | ||
| chromatic | Probably 3x overall in the past three months. | ||
| japhb | That's just damned impressive for microoptimizations, you've got to admit. | 22:23 | |
| PerlJam | indeed. It makes me want to say chromatic++ everytime I think about it. | ||
| japhb | ditto | 22:24 | |
| So chromatic++ | |||
| chromatic | There are a few more lurking, for anyone with Callgrind, kcachegrind, spare time, and the desire to dive into some C code. | ||
| japhb | my grind-fu is weak. :-/ | 22:25 | |
| chromatic | I should write a brief introduction. | 22:26 | |
| It's really simple, once you learn a few things. | |||
| PerlJam | chromatic: sounds like a good post for parrotblog | 22:27 | |
| chromatic | Will do then. | ||
| Tene | Okay, looks like on this box, cardinal on optimized parrot runs this file in 4.8s, while unoptimized parrot runs it in 5.6s, so optimized is faster here. | 22:30 | |
| japhb | Tene: That's an optimized compile of parrot -- but did you succeed in running parrot with optimization flags? | ||
| In particular, running it with something other than the slow runcore? | 22:31 | ||
| Tene | japhb: -O2 -Ot | ||
| japhb | hmmm | ||
| Tene | japhb: I'll run it however you tell me to run it. | ||
| dolmen | in rakudo PIR, what is the right way to create a new list? | 22:32 | |
| japhb | I think leo had recommended -Oc once upon a time as well, but I forget how that interacts with -O2 -Ot | ||
| Tene | dolmen: possibly list() | ||
| jonathan | Try -C | ||
| dolmen | new 'List' (src/builtins/range.pir)? | 22:33 | |
| Tene rebuilds parrot. | |||
| japhb | jonathan: -Ot *should* select the platform-fastest runcore for you. If that's not working, that's a bug .... | ||
| dolmen | 'list'() (src/builtins/op.pir)? | ||
| jonathan | Ah, OK. | ||
| Tene | dolmen: yes, I suspect, depending on what you want to do. | ||
| japhb | Tene: why rebuilding parrot? | ||
| dolmen | Tene: is there a difference? | 22:34 | |
| Tene | japhb: to get optimized again. | ||
| japhb | Oh, you had last built it with no optimizations ... yep, gotcha | ||
| jonathan | dolmen: 'list'(...) will construct a list of its arguments, and flatten any other lists in there. | ||
| dolmen: If you want to create a new list rather than already having some existing list, then new 'List' is OK. | 22:35 | ||
| japhb | jonathan: there is an ancient RT from me that -O1 and -O2 are both supposed to turn on -Ot, but don't. I'd hate to think that -Ot was now itself broken. ;-) | ||
| jonathan | japhb: Well, parrot --help doesn't even mention -Ot specifically... | ||
|
22:35
sjansen joined
|
|||
| jonathan | Which is what I was looking at. | 22:36 | |
| japhb | perldoc docs/running.pod | ||
|
22:36
sjansen joined
|
|||
| dolmen | jonathan, is it the same object that we get after construction? | 22:36 | |
| japhb | And yes, that sounds like a bug, too | ||
| jonathan | dolmen: Yeah, you should get an instance of List. | 22:37 | |
| dolmen | dolmen: so, when creating a new empty list, "new 'List'" looks like more appropriate | 22:38 | |
| jonathan, than "'list'()" | |||
|
22:38
Whiteknight joined
|
|||
| pmichaud | or even | 22:41 | |
| $P0 = get_hll_global 'List'; $P1 = $P0.'new'() | |||
| (same as List.new() ) | |||
| jonathan | TMTOWTDI. :-) | 22:42 | |
| Tene | No change with -C or -Oc | ||
| japhb | snarg | ||
| chromatic | Hmm... look up the proper parent class in get_attrib_index_keyed based on key value, then look up attribute index directly there? | 22:44 | |
| That's two fewer header allocs.... | |||
| dolmen | jonathan: is it just a difference in the source or will there be a difference in the PIR ? | 22:45 | |
| jonathan | I thought you were writing PIR? | ||
| dolmen is not sure if PIR is the right word | |||
| jonathan | But the eventual code that is generated is different, if that's what you mean. | 22:46 | |
| 'list' calls a function. | |||
| dolmen | that is what I mean ;) | ||
| jonathan | new 'List' instantiates an object | ||
| And what pm posted gets the protoobject and calls the new method on it. | |||
| So yes, they're all different. :-) | |||
| pmichaud | all of them result in a List object. | ||
| calling 'list'() has the advantage that it can initialize the List object with some values. | 22:47 | ||
| japhb | chromatic: two fewer allocs per call can't be bad ... | ||
| dolmen | I'm seeing some places in op.pir where 'list'() is called without args. | 22:48 | |
| Now I konw how to fix this. | |||
| pmichaud | fwiw, 'list' is the general purpose "make a list out of these arguments in list context" function. | 22:49 | |
| dolmen | ok | 22:50 | |
| dalek | r27858 | tene++ | trunk: | ||
| : [cardinal] | |||
| : * 'while' loops start working | |||
| : * 'for' loops start working | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27858 | |||
| japhb | Tene's commit message makes it sound like while and for just magically started working on their own, and he just noticed. ;-) | 22:51 | |
| dalek | r27859 | tene++ | trunk: | ||
| : svn props on new test | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27859 | |||
| Tene | japhb: The intended message is that at least some basic functionality works correctly now, but I haven't even started to test how they work beyond that. | 22:52 | |
| japhb | Tene: I'm just teasing. | 22:53 | |
| Tene | Ah. | ||
|
22:54
teknomunk joined
22:55
tetragon joined
|
|||
| Whiteknight | PDD19 needs to be updated to reflect #48549. Is that the kind of thing I can do as a lowly peon, or do I need permission? | 22:57 | |
| dalek | r27860 | jkeenan++ | searchdocs: | 23:03 | |
| : Exclude t/doc/searchops/sample.pm from POD check because it contains some POD malformed for other testing purposes. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27860 | |||
| jonathan | Whiteknight: You can always send it as a patch to the list for feedback, if in doubt. | 23:05 | |
| Whiteknight | okay, that's probably the better solution. I'll do that. Thanks jonathan++ | 23:06 | |
|
23:08
Khisanth joined
|
|||
| dalek | r27861 | jkeenan++ | searchdocs: | 23:10 | |
| : Bring files up-to-date with trunk so that they pass the coda codingstd test. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=27861 | |||
|
23:25
petdance joined
23:34
cjfields joined
23:37
braceta joined
|
|||