|
Parrot 0.8.2 Feliz Loro Released | parrot.org | 45 TT | 538 RT Set by moderator on 17 December 2008. |
|||
|
00:07
Aisling joined
00:09
AndyA joined
00:14
Whiteknight joined
00:30
gmansi_ joined
00:34
Random joined
00:42
gmansi_ joined
00:50
tewk joined
|
|||
| Coke gets another spec test working. | 00:55 | ||
|
01:04
TiMBuS joined
01:39
leto joined
01:43
cspencer joined
|
|||
| cspencer | in PIR, is there a way of writing a single multi method that runs on two different types? | 01:44 | |
| ie) is there a way of doing a logical OR in the :multi(...) syntax? | |||
|
01:49
Hadi joined,
Hadi left,
gmansi_ joined
|
|||
| Coke | no. | 01:59 | |
| easiest way to do that (if a non trivial sub) is to have one that does the work (make that the common case) and another that dispatches. | 02:00 | ||
| (presuming your types are amenable to that sort of thing.) | |||
| cspencer | alright, thank you :) | 02:03 | |
|
02:04
Random left
02:07
kid51 joined
|
|||
| Coke | pmichaud: ping | 02:23 | |
|
02:35
Hadi joined
03:09
Andy joined,
Andy left
03:13
Andy joined
|
|||
| dalek | r34222 | jkeenan++ | trunk/t/codingstd: | 03:14 | |
| : Delete inline comment re RT 444437. | |||
| review: xrl.us/y5w5g | |||
| Andy | ok, what can I do for you? | 03:15 | |
| kid51 | Andy: Can you do anything with these RTs: rt.perl.org/rt3/Ticket/Display.html?id=39117 rt.perl.org/rt3/Ticket/Display.html?id=43827 rt.perl.org/rt3/Ticket/Display.html?id=50684 | 03:18 | |
| Andy | looking | ||
| first one yes | 03:19 | ||
| 2nd was from valgrind I think | |||
| 3rd one maybe | 03:20 | ||
| kid51 | Thanks. | ||
|
03:21
gmansi joined
03:24
Hadi left
|
|||
| dalek | r34223 | petdance++ | trunk (3 files): | 03:25 | |
| : no IO::File imports | |||
| review: xrl.us/y6fjx | |||
|
03:35
lathos joined
|
|||
| kid51 must sleep | 03:36 | ||
| purl | $kid51->sleep(8 * 3600); | ||
| lathos | Urgh, if there a way to pass arrays into NCI? I don't think there is. | ||
| tewk | lathos: use an unmanaged struct maybe? what are you trying to do. | 03:37 | |
| oh is this an IN arg? | |||
| lathos | Yep. Postgresql API wants bind parameters passed in as const char * const *paramValues | 03:38 | |
| tewk | We could write a custom PMC that takes a PIR array and does the needed transformations | 03:40 | |
| lathos | That seems like an awfully large hammer to use in order to "avoid" writing C. | ||
| Andy | anyone else having problesm with t/library/pcre? | 03:41 | |
| where's the smoker site these days? | 03:42 | ||
| dalek | r34224 | petdance++ | trunk/compilers/imcc: | 03:43 | |
| : Make the sprintf arguments a const char, not a buffer | |||
| review: xrl.us/y7p23 | |||
| lathos | More generally it would be nice to have an NCI type of, say, [t] and have the wrapper function create the array. No idea how to go about this though. | 03:45 | |
| tewk | lathos: we can do that, all the sigs are one letter long, so we have to pick a new letter, for now. | 03:48 | |
| lathos | The obvious thing to do would be to use lower case for scalar and upper case for vector, but that's already been trod on by p, s, and i. | ||
| ("s" for short and "S" for string is particularly awkward.) | 03:49 | ||
| tewk | S is for a Parrot STRING, t converts a STRING register to char*, | ||
|
03:49
rurban_ joined
|
|||
| lathos | Yes. But still "s" and "S" are wildly assymetrical. Anyway. | 03:50 | |
| Hrm, nothing says a sig needs to be one letter long. | |||
| tewk | well there are 56 letters, plenty left unused though awkard. | ||
| lathos | I don't want to have to be remembering that z is an array of integers and A is an array of shorts. | 03:51 | |
| "At some point punctuation may be used as modifiers on the function parameters, in which case each parameter may be represented by multiple letters.' | 03:52 | ||
| tewk | lathos: at that point, why not move to a full dsl | 03:53 | |
| lathos | You keep coming out with these big hammers. :) | ||
| tewk | you can be a parrot developer until you over abstract everything you do:) | ||
| lathos | Which is why parrot is about 15 times slower than it used to be. | 03:54 | |
| tewk | I agree. MMD and calling conventions unification have added a lot of slow down. | ||
| I'm not opposed to [t], its a really simple, small dsl. | 03:55 | ||
| :) | |||
| lathos | Well, we can follow the PDD and have a couple of punctuation characters, "&" for "pointer-to", "@" for "array-of". | 03:56 | |
| tewk | I should probably read th PDD | 03:57 | |
| lathos | Oh, hang on, there's an undocumented "T" type which gives you "char **". | 03:58 | |
| tewk | Where are you reading this? Did I add it? | 04:00 | |
| lathos | tools/build/nativecall.pl | ||
| 16172 paultcochrane T => "char **", | |||
| tewk | I'll have to see if I support that in jitted NCI | 04:01 | |
| lathos | I still think a generic array mechanism is better than a mountain of special cases with bizarre names. | ||
| tewk | Sounds good to me, just some c parsing code to change, | 04:02 | |
| lathos | It's not even parsed. The functions are kept in a hash. | ||
| s/functions/signatures/. Well, both, actually. | |||
| tewk | jitted nci parses it, tools/build/nativecall.pl parses it also to generate subs | 04:03 | |
| stubs that is. | |||
| lathos | Ah, so I see, yes. | ||
| Ah, Dan added "T" about five years ago. | 04:07 | ||
| I *have* been out of the loop. | 04:08 | ||
| Although it doesn't have a case in make_arg, so I can't imagine that it would work. | 04:10 | ||
|
04:16
johbar_ joined
|
|||
| tewk | pmichaud: ping | 04:18 | |
|
04:20
cotto joined
|
|||
| pmichaud | pong | 04:20 | |
| tewk | I've got some perl6 failures as a result of trying to remove :method and :vtable from namespaces. | 04:21 | |
| pmichaud | probable. | 04:22 | |
| tewk | Would you have some time to look if I made a branch or set you a patch? | ||
| pmichaud | there are some places where perl 6 expects methods to be in the namespace | ||
| tewk | I fixed the ones that were obvious to me. | ||
| pmichaud | make a branch. I'm working on something else right now and won't be done with it for about an hour | ||
| tewk | I'll check it in so you can at least look, feel free to give me pointers and hints, and I'll be happy to do keep working on it. | 04:23 | |
| Tene | pmichaud: up for a POST question? | 04:27 | |
| pmichaud: if I have foo = self.'uniquereg'('P'), how do I represent foo ~ '["type"]' in a POST node? Do I just concat? | 04:30 | ||
| dalek | r34225 | tewk++ | branches/nsentry: | 04:32 | |
| : [nsentry] create branch | |||
| review: xrl.us/zaqru | |||
| r34226 | tewk++ | branches: | 04:36 | ||
| : Remove all nsentry branch | |||
| review: xrl.us/zayk8 | |||
| r34227 | tewk++ | branches: | 04:37 | ||
| : Recreated nsentry branch | |||
| review: xrl.us/za2v4 | |||
| pmichaud | Tene: you mean you want to have a keyed access? Yes, concatenate. | 04:38 | |
| Tene | I'm putting together a first draft of loop_helper. I except it will need at least naming changes. Do you want me to just commit if tests pass, or do you want to review a patch first? | 04:39 | |
| pmichaud | please let me review patch | ||
| Tene nods. | |||
| pmichaud | or work on it in a branch | 04:40 | |
| branch might be better. | |||
| Tene | You prefer branch? | ||
| pmichaud | yes, I don't think it'll live long. | ||
| tomorrow seems like a good day to get the loop stuff done. | |||
| Tene | can you create one for me to use? | ||
| pmichaud | done. pctloop. | 04:41 | |
| oh, wait, not done. | 04:42 | ||
| it failed. | |||
| one moment. | |||
| dalek | r34228 | tewk++ | branches/nsentry (27 files): | ||
| : [nsentry] current nsentry changes for branch | |||
| review: xrl.us/za9uq | |||
| pmichaud | okay, now created: svn.perl.org/parrot/branches/pctloop | 04:43 | |
|
04:43
Andy joined
|
|||
| dalek | r34229 | pmichaud++ | branches: | 04:43 | |
| : [pct]: new branch for refactoring loop code. | |||
| review: xrl.us/zbctb | |||
| tewk | pmichaud: nsentry branch ready for you to look at. | 04:44 | |
| pmichaud | okay, thanks. I'm trying to get this commit in by midnight. | 04:48 | |
| (CST, 72 minutes from now) | 04:49 | ||
| lathos | t/pmc/stmlog dying? | 04:52 | |
| Oof, t/pmc/pmc dying. But this could be in my modified tree. | |||
| tewk | pmichaud: # at lib/Parrot/Test/NCIGENAST.pm line 78. | 04:56 | |
| # 'Method 'clone' not found for invocant of class 'NCIGENAST;TypeDef' | |||
| NCIGENAST is my subclass of PCT::Node, | 04:57 | ||
| is clone something new? | |||
| error building ncigen | |||
| not building, but running the tests. | |||
| nopaste | "tewk" at 97.117.90.121 pasted "nsentry spectest failures" (40 lines) at nopaste.snit.ch/15057 | 05:04 | |
| lathos | OK, some tests are failing and it's not the fault of my code. :) | 05:11 | |
| Tene | Okay, have a good draft done. 'for' in nqp and rakudo all work. | 05:35 | |
| Spectest looks okay, but I'll let it keep running anyway. | |||
| Going to commit, and then move another loop type over to using it. | 05:36 | ||
| dalek | r34230 | tene++ | branches/pctloop/compilers/pct/src/PAST: | 05:38 | |
| : [pct]: First draft of loop refactor. | |||
| review: xrl.us/zex24 | |||
| Tene | t/spec/S04-statements/map-and-sort-in-for.t gets some uncaught exceptions... | 05:39 | |
| Oh, no, not that one. t/spec/S04-statements/next.rakudo | 05:40 | ||
| Ah, becaus eof 'while' | 05:42 | ||
|
05:45
Hadi joined
|
|||
| dalek | r34231 | pmichaud++ | trunk/languages/perl6/src (3 files): | 05:50 | |
| : [rakudo]: Add whatever star to list and array slices. | |||
| review: xrl.us/zfstg | |||
| r34232 | petdance++ | trunk/src: | 05:52 | ||
| : change strcpy to memcpy | |||
| review: xrl.us/zfx8e | |||
|
05:53
vaidyagi joined
|
|||
| TiMBuS | hmm, the language spec im using calls for frexp to be implemented. is there a way to get the component bits of a parrot Num? the bitwise ops only work on ints | 05:53 | |
| dalek | r34233 | petdance++ | trunk/src: | 06:02 | |
| : consting | |||
| review: xrl.us/zgqas | |||
| Andy | is src/bignum.c of any value? | ||
| Tene | pmichaud: any plans to have a PAST type for C-style for loops AKA Perl 6 'loop'? | ||
| pmichaud | Tene: I'm thinking about it, yes. | 06:03 | |
| I was hoping to make that part of the loop refactor. | |||
| there are a lot of similarities. | 06:04 | ||
| Tene | Excellent. I'll do that now. Any naming preference? | ||
| pmichaud | 'loop' ? | ||
| Tene | Great. | ||
| pmichaud | that would most closely match the p6 syntax. | ||
| dalek | r34234 | petdance++ | trunk/compilers/imcc: | 06:17 | |
| : Combined a strcpy/strlen together | |||
| review: xrl.us/zhkq7 | |||
| Tene | 'while' and 'loop' now use loop_helper. | 06:20 | |
| Now to implement 'redo' | |||
| dalek | r34235 | tene++ | branches/pctloop (2 files): | 06:21 | |
| : [pct] | |||
| : * Port 'while' to use loop_helper | |||
| : * Add a 'loop' type for C-style 'for' loops. | |||
| review: xrl.us/zhpfa | |||
| pmichaud | Tene: what's the purpose of 'push_throw_typed' ? | 06:26 | |
| Tene | pmichaud: It pushes instructions to create a new exception, set its type, and throw it. I found I was repeating that in several places. | ||
| pmichaud | okay. I was wondering if loops should always throw exceptions, but I guess p6 will require that they do so. | 06:27 | |
| dalek | r34236 | tene++ | branches/pctloop (2 files): | 06:29 | |
| : [pct]: Support 'redo' in loop_helper | |||
| : [rakudo]: Add 'redo' and 'last' subs | |||
| review: xrl.us/zibc6 | |||
| Tene | Is this approximately what you had planned? | ||
| pmichaud | I'm still looking at it. It's approximately what I had planned, yes, but I'm still looking at it a bit. Some pieces don't quite feel right yet. | 06:30 | |
| Tene nods. | |||
| pmichaud | I don't think the next semantics are quite right. | 06:33 | |
| i.e., I think that an exception thrown by the for won't catch a NEXT exception handler in the body. | 06:34 | ||
| Tene | They might not be quite right, but I'm pretty sure that that specific issue is handled correctly. | 06:35 | |
| Let me check... | |||
| nopaste | "tene" at 166.70.38.237 pasted "example for pmichaud++" (4 lines) at nopaste.snit.ch/15058 | 06:36 | |
| pmichaud | oh, I see, you're pushing the default .CONTROL_LOOP_NEXT onto the end of the body's post | ||
| Tene | That runs correctly. | ||
| Right. | |||
| pmichaud | ...so if the body was a PAST::Block, does this add the throw to be inside the block? | 06:37 | |
| Tene | No. | ||
| ... wait, should it? | 06:38 | ||
| pmichaud | I don't know. I'm trying to see how all of that would fit together. | 06:39 | |
| Tene | in that example, should the CONTROL block be hit or not, do you think? | ||
| You're right, though, to represent that. | 06:41 | ||
| pmichaud | with for @list { ... NEXT { ... } } | 06:43 | |
| the NEXT block has to be triggered on each iteration. | |||
| Tene | Hmm. | 06:44 | |
| pmichaud | ...so I'm thinking it might not be best to do this all with control exceptions. | 06:45 | |
| it gets a little dicey if we're having to push the exception throwing into the body itself. | |||
| (we do have to still use control exceptions, yes --- to handle things like 'next' and 'last' in nested blocks. But it might not be best to use handlers for all of it.) | 06:46 | ||
| Tene | We still need 'for @l { ...; next; ... }' to work right, though. | 06:47 | |
| I can refactor that specific case out, but that won't allow NEXT blocks to work either. | |||
| pmichaud | I'm confused -- how does what you just wrote relate to what I said? | ||
| next() continues to throw a control exception, yes. | 06:48 | ||
| that control exception has to be caught by the for loop, yes. | |||
| but I'm not sure PCT should be forcing exceptions into the blocks. | 06:49 | ||
| nopaste | "tene" at 166.70.38.237 pasted "I thought that you were proposing this change" (21 lines) at nopaste.snit.ch/15059 | ||
| pmichaud | I think I am proposing that change, yes. | ||
| Tene | How does that help with allowing NEXT blocks to work? | ||
| pmichaud | in itself, it doesn't | 06:50 | |
| I'm just saying that the overall design of throwing 'next' exceptions for the basic loop feels wrong. | |||
| i.e,. I'd like the 'for' nodes to be "unexceptional" | |||
| Tene | 'kay | ||
| pmichaud | more likely what I'm thinking might happen is that rakudo generates the 'next' exceptions at the end of the block. | 06:51 | |
| Tene nods. | |||
| pmichaud | instead of PCT doing it. | ||
| if we do that, *then* the NEXT handler inside the block would get triggered | |||
| it still is up to the PAST 'for' node to catch the exception and do the right thing with it | |||
| but the PAST 'for' node isn't responsible for generating the exception | 06:52 | ||
| nopaste | "tene" at 166.70.38.237 pasted "like this" (12 lines) at nopaste.snit.ch/15060 | ||
| pmichaud | close, it would probably need to push onto $past[1] | 06:53 | |
| Tene | Ah. | ||
| pmichaud | so that it goes on the block, and not on the 'for' node itself. | ||
| ...but we have similar issues with LAST and FIRST | 06:54 | ||
| does a LAST block get called on the last iteration, or only in response to an explicit 'last' call? | |||
| I'm guessing the former. | |||
| Tene | The former. | ||
| pmichaud | the block itself can't be throwing that exception, though. So... hrm. | 06:55 | |
| I'm wondering if loops have to become a new blocktype. | 06:56 | ||
| Tene | That's what I was considering. | ||
| pmichaud | that doesn't feel quite right either, though. | 06:58 | |
| Tene | That patch doesn't actually work... trying to figure out why... | 07:00 | |
| pmichaud | anyway, I'm getting a bit tired on this end, and I still have a couple of blog posts I need to write | 07:01 | |
| how about I sleep on it a bit tonight and pick it up tomorrow? (you're of course welcome to continue working on it) | |||
| figuring out the right way to handle FIRST/NEXT/LAST in this will be the key to getting loops in general to work. | 07:02 | ||
| Tene | Semantically, I suspect that either loops are a new type, or rakudo is reaching up the stack to tweak the Op. | 07:03 | |
| I can make either of those work. | |||
| pmichaud | at the time we build the block, there's no "stack" to "reach up" | ||
| instead, the loop construct would have to inspect the block and hoist things up. | |||
| Tene | Well, yeah. | ||
| pmichaud | in order to do that we'd want a somewhat different structure than the PAST::Control nodes we have now. | 07:04 | |
| at least for those items. | |||
| Tene | Or, I guess, PCT could inspect the block. | ||
| That seems a little odd, though. | |||
| pmichaud | it'd be odd | 07:05 | |
| Tene | I'm not convinced it's necessarily wrong, but odd. | ||
| pmichaud | we'd have to provide special slots for those things | ||
| -and- | |||
| and we'd have to say that the body of a loop is always a block. I was trying to avoid that. | |||
| Tene | No. Stmts can have these too. | ||
| pmichaud | or we put the special slots on every PAST node | ||
| Tene | You were already considering that for the Control nodes. | ||
| pmichaud | oh, it could just go on Stmts | ||
| Tene | Right now the 'handlers' attribute or whatever it ended up named is on ::Node | 07:06 | |
| pmichaud | hmm. that's not quite so bad. | ||
| Tene | You think you have enough to think on? | 07:07 | |
| pmichaud | having PCT grab the handlers is a pain, though, because it messes up the lexical nesting. | ||
| Tene | Oh, true. | 07:08 | |
| pmichaud | or at least has the potential to mess up the lexical nesting. | ||
| and we'd have to do it before processing the body. | |||
| anyway, that approach feels like it's making things messier, not neater. | |||
| I'm sure there's a more elegant solution -- just need to explore it a bit more. | 07:09 | ||
|
07:09
Theory joined
|
|||
| Tene | I'll keep thinking. Go blog. | 07:09 | |
| dalek | r34237 | pmichaud++ | trunk/languages/perl6/docs: | 07:10 | |
| : [rakudo]: spectest-progress.csv update: 261 files, 5790 passing, 0 failing | |||
| review: xrl.us/zmiiw | |||
| pmichaud | +562 new passing tests in two days. +1011 new passing tests in two weeks. | ||
| Tene | Very nice. :) | 07:11 | |
|
07:20
cottoo joined
|
|||
| cottoo | irclog? | 07:23 | |
| purl | irclog is irclog.perlgeek.de/parrot/today or see also: infrared clogs | ||
| Tene | ... ohright, work tomorrow. | 07:28 | |
| I have to sleep. | |||
|
07:31
UltraDM joined
|
|||
| cottoo wonders how people will react to the new default TT report page. | 07:51 | ||
| cotto | trac.parrot.org/parrot/report/1 | 07:52 | |
| TiMBuS | woah | 08:02 | |
| a trac | |||
| does it have a web based submission thing? | |||
| because if so, woot | 08:03 | ||
|
08:04
pdcawley joined
|
|||
| cotto | yes, but you have to register | 08:05 | |
| TiMBuS | awesome | 08:11 | |
| dalek | r34238 | pmichaud++ | trunk/src/charset: | 08:27 | |
| : [core]: Recognize LINE/PARAGRAPH SEPARATOR unicode chars as whitespace. | 08:28 | ||
| review: xrl.us/zqvop | |||
|
08:37
iblechbot joined
08:52
masak joined
|
|||
| Tene | pmichaud: I have a good solution... will explain tomorrow | 09:09 | |
|
09:10
masak joined
|
|||
| dalek | r34239 | bernhard++ | trunk (2 files): | 09:37 | |
| : [codingstd] trailing whitespace | |||
| review: xrl.us/zvi3n | |||
|
10:07
elmex joined
10:12
tomyan joined
10:56
alvar joined
11:20
donaldh joined
11:33
Tux joined
|
|||
| Tux | pmichaud, yt? | 11:33 | |
|
11:36
Ademan joined
11:48
rurban_ joined
11:52
iblechbot joined
11:53
barney joined
|
|||
| dalek | r34240 | bernhard++ | trunk/languages/pipp/t/embed: | 11:57 | |
| : Add examples on how to find 'no_args'. | |||
| review: xrl.us/z85z4 | |||
|
12:07
ffwonko joined
12:12
ff-wonko joined
12:17
rkh joined
|
|||
| dalek | r34241 | bernhard++ | trunk/languages/pipp/config/makefiles: | 12:23 | |
| : [Pipp] Normalize indention of continuation lines | |||
| : Rename 'make smolder-test' to 'make smoke'. | |||
| review: xrl.us/2aziw | |||
|
12:24
jimmy joined
|
|||
| dalek | bernhard.schmalhofer@gmx.de | Pipp: | 12:28 | |
| link: www.perlfoundation.org/parrot/index.cgi?pipp | |||
| r34242 | bernhard++ | trunk (4 files): | 12:39 | ||
| : [Pipp] Move pipp.pir from src/common into src | |||
| review: xrl.us/2b29b | |||
|
12:51
rjh joined
|
|||
| bacek | rakudo: my @a=(1,2); say @a.WHAT | 12:54 | |
| polyglotbot | OUTPUT[Arrayā¤] | ||
| bacek | it's... strange | ||
| rjh | rakudo: my @a=(1,2); say @a.HOW | ||
| polyglotbot | OUTPUT[get_string() not implemented in class 'P6metaclass'ā¤current instr.: 'print' pc 16384 (src/builtins/io.pir:26)ā¤called from Sub 'say' pc 16403 (src/builtins/io.pir:35)ā¤called from Sub '_block14' pc 111 (EVAL_13:49)ā¤called from Sub '!UNIT_START' pc 15866 (src/builtins/guts.pir:327)ā¤called from | ||
| ..Sub 'parrot;PCT;HLLCompiler;eval' pc 892 (src/PC... | |||
| rjh | :S | ||
| bacek | rakudo: my @a=(1,2); say @a ~~ List | ||
| polyglotbot | OUTPUT[1ā¤] | ||
| bacek | rakudo: my @a=(1,2); say @a ~~ Array | 12:55 | |
| polyglotbot | OUTPUT[1ā¤] | ||
|
13:17
ask_ joined
13:26
Lorn joined
|
|||
| Coke | cotto: doe the colors on that report do anything other than cause nausea? =-) | 13:36 | |
|
13:56
apeiron joined
|
|||
| dalek | r34243 | fperrad++ | trunk/lib/Parrot/Harness: | 14:02 | |
| : [smolder] | |||
| : - load proxy settings from *_proxy environment variables | |||
| review: xrl.us/2itvq | |||
| lathos | I'm about to do something really nasty to tools/build/nativecall.pl | 14:05 | |
| Coke | nasty enough to warrant a branch? | ||
| lathos | Not yet. | ||
| Currently just some aggressive refactoring. | 14:06 | ||
| Tomorrow, however... | |||
| dalek | r34244 | bernhard++ | trunk/src: | 14:14 | |
| : [doc] Update doc for Parrot_register_HLL(). | |||
| : Signature was changed in r21105 | |||
| review: xrl.us/2jtw6 | |||
| lathos | Whoa, tests pass. | 14:19 | |
| barney | Try 'make codetest' | 14:21 | |
| lathos | Is there a specific NCI stress test I can apply? | 14:22 | |
| Actually maybe I should send this patch to chromatic for review. | 14:24 | ||
|
14:29
Theory joined
|
|||
| Coke | does parrot have the equivalent of www.tcl.tk/man/tcl8.5/TclCmd/tclvars.htm#M21 ? | 14:42 | |
| $tcl_platform(osVersion) | 14:43 | ||
|
14:48
gryphon joined
14:49
gryphon joined
|
|||
| dalek | r34245 | moritz++ | trunk/languages/perl6/t: | 14:49 | |
| : [rakudo] three more tests for t/spectest.data | |||
| review: xrl.us/2m4rh | |||
|
15:03
DietCoke joined
|
|||
| donaldh | Hi, what's the default behaviour for PIR that doesn't contain a :main sub ? | 15:04 | |
|
15:04
Andy joined
|
|||
| Coke | when invoked from the command line? | 15:04 | |
| donaldh | Yup. | ||
| Coke | I believe the first sub is run. | ||
| donaldh | Hmmm. That's wknight's problem with his jit_h_files branch. | 15:06 | |
| The tests seem to be running on to next sub. | |||
| Coke | is he perhaps missing an "end"? | 15:07 | |
| donaldh | possibly. | ||
| nopaste | "donaldh" at 213.123.171.12 pasted "This causes a SEGV with -j" (14 lines) at nopaste.snit.ch/15061 | ||
| "donaldh" at 213.123.171.12 pasted "This DOESN'T cause a SEGV with -j" (14 lines) at nopaste.snit.ch/15062 | 15:08 | ||
|
15:11
jhorwitz joined
|
|||
| PerlJam | donaldh: on the first one, what happens if you add a call to "end" as the last thing in _main? | 15:12 | |
| donaldh | PerlJam: that also fixes it. | 15:13 | |
| PerlJam | donaldh++ | 15:14 | |
| donaldh | msg wknight8111 Have a look at the irclog for a suggestion about your jit_h_files problem irclog.perlgeek.de/parrot/2008-12-22#i_780388 | 15:18 | |
| purl | Message for wknight8111 stored. | ||
| Coke | end is added by default in the normal core on main. | 15:20 | |
| donaldh | For wknight's jit core it looks like an explicit main works, but an implicit one doesn't. | 15:22 | |
| A lot of tests use implicit main, i.e. first sub | 15:23 | ||
| dalek | r34246 | Whiteknight++ | trunk/docs/pdds (2 files): | 15:27 | |
| : [PDD] add mention of "parrot" root namespace to PDD19 and 21. This is for TT#80, which I will close if there are no objections to this edit. | |||
| review: xrl.us/2qdm5 | |||
|
15:27
Wknight8111 joined
|
|||
| donaldh | Wknight8111: Have a look at the irclog for a suggestion about your jit_h_files problem irclog.perlgeek.de/parrot/2008-12-22#i_780388 | 15:29 | |
| Wknight8111 | thanks! | 15:30 | |
| I figured it was something with the jit end code. The jit_emit.h file had multiple definitions of some functions that were conditionally defined with macros | 15:31 | ||
| so what I need now is to figure out what function I clobbered and fix that | |||
|
15:34
alvar joined
15:50
ruoso joined
15:52
ruoso joined
|
|||
| jsut|work | what's up with the docs on parrotcode.org, i'm just getting blank pages | 15:52 | |
| the index is there, but all the pages linked to by the index are blank | 15:53 | ||
| ie: www.parrotcode.org/docs/intro.html | |||
| barney | Whiteknight8111: I thought that the true root namespace had the name '' | 16:02 | |
| 'parrot' being one down the true root namespace | |||
| s/one down/one level below/ | 16:03 | ||
|
16:06
AndyA joined
|
|||
| barney | Also line 308 in pdd19 should probably say: You can specify the **hll** root namespace by using empty brackets | 16:07 | |
| tewk | lathos: send me the patch, also jitted nci must be tested on linux or windows i32 | 16:14 | |
| lathos | It's just a refactor of the perl side so far, doesn't have any semantic change and so shouldn't have any effect on jitted nci. | ||
| tewk | good, I'd be happy to test. If you send me future patches I'll do the jitted nci refactorins too. | 16:15 | |
| lathos: your welcome do delve into jitted nci, but I'll do it you would like. | 16:17 | ||
| lathos | I'd rather not at the moment. :) | 16:18 | |
| But until I've finished refactoring the Perl there shouldn't be any changes needed. Once I start implementing $ and @ signatures things will get more interesting but that won't be for a while. | |||
| tewk | Sounds great. | 16:19 | |
|
16:24
davidfetter joined
16:28
hercynium joined
16:29
riffraff joined
|
|||
| riffraff | hi everyone | 16:29 | |
| purl | Howdy, riffraff, you fantastic person you. | ||
| riffraff | purl, you're lovely | ||
| purl | riffraff: sorry... | ||
| riffraff | dummy question wrt using parrot to parse a custom language: if I have a rule defined in terms of itself (such as expr = value | expr + expr ) when writing the action for the rule I should be able to access the nested nodes, right? | 16:31 | |
| in this example, I'd have something like for $p=PAST::Op.new; @($<expr>) { $p.push( $($_) ) } but $<expr> seem to be empty | 16:33 | ||
| Wknight8111 | Are you sure that the true root namespace is ''? | 16:45 | |
|
16:51
rkh joined
|
|||
| pmichaud | expr = value | expr + expr is likely to be an infinite loop. | 16:58 | |
| good morning, everyone. | 17:00 | ||
| moritz | good morning | 17:01 | |
|
17:02
Khisanth joined
17:06
iblechbot joined,
khisanth_ joined
|
|||
| Tux | pmichaud, does my CSV fix work for you? | 17:07 | |
| pmichaud | Tux: which csv fix? | 17:10 | |
| Tux | Spreadsheet::Read | ||
| pmichaud | (I'm still just waking up.) | ||
| Tux | it is you who asked me that for MacOSX, right? | ||
| pmichaud | not I -- at least I don't think I did. | 17:11 | |
| I don't have a Mac. | |||
| Tux | then ignore me. sorry to have bothered | ||
| pmichaud | no problem | ||
| Tux | From: Patrick Michaud <pmichaud@u.washington.edu> | ||
| pmichaud | heh | ||
| Tux | you can imagine I thought it was you | ||
| pmichaud | that's my doppelganger | ||
| davidfetter has at least one, too | 17:12 | ||
| pmichaud | there's _another_ Patrick Michaud in the Perl community. | ||
| We keep running into each other at YAPC::NA. | |||
| and confusing the heck out of registration folks. | |||
| Tux | ok, i'll hide in my cave again. enjoy | ||
|
17:12
Tux left
|
|||
| davidfetter | there's a guy who works at portland state university in their IT department | 17:13 | |
| named David Fetter | |||
| i'm constantly bumping into him at OSCON, or was until last year :P | |||
|
17:19
apple-gunkies joined
17:35
riffraff joined
|
|||
| jhorwitz | sounds like the other patrick michaud at YAPC | 17:37 | |
| dalek | r34247 | pmichaud++ | trunk/languages/perl6/src/builtins: | ||
| : [rakudo]: @*INC should be an Array, not a List (RT #61608, moritz++) | |||
| review: xrl.us/2272d | |||
| moritz | pmichaud: funnily I found that bug while running a pugs regression test of which I thought "oh, this is so pointless" ;-) | 17:38 | |
| pmichaud | heh | 17:39 | |
| moritz | the one in t/magicals/inc.t | 17:40 | |
|
17:43
pdcawley joined
|
|||
| Coke | pmichaud: have you given any thought to how rakudo is going to implement tying? | 18:00 | |
| (tieing?) | 18:01 | ||
| pmichaud | a little. | ||
| any particular aspect you're curious about? | 18:02 | ||
| in general, one does: my @array is TiedArray | |||
| that causes @array to be created as a TiedArray object | |||
| then everything "just works" after that :-) :-) | |||
| Coke | ok. so you're going to have separate classes for anything that is tied. | ||
| pmichaud | that's pretty much what the p6 spec says, yes. | 18:03 | |
| Coke | so I might analogously have a TiedTclList | ||
| pmichaud | Perl 6 has a "Tieable" role, iirc | ||
| Coke | and then you have methods on Tied* to register method/vtable overrides, and then dispatch things as necessary? | ||
| pmichaud | yes. | 18:04 | |
| Coke | k. | ||
| that's about what I had, but was hoping vtables would magically make it easier. =-) | |||
| pmichaud | postcircumfix:<[ ]> and postcircumfix:<{ }> are methods, as well as .STORE and possibly .FETCH | ||
| Coke | I am at the point now where in order to get much further I need to implement a tcl-level override hash-indexing on read. | 18:05 | |
| (Tcl's tcltest.tcl requires the equivalent of 'tie' to function properly.) | 18:06 | ||
| it works as long as you don't ask whether you should be skipping certain tests.) | |||
| (also, I need to turn on tracing after a variable has been created, but I should be able to do that.) | 18:09 | ||
|
18:10
apple-gunkies joined
|
|||
| rjh | at the risk of sounding a Ruby fanboy, the ability to simply subclass Array/Hash and override the fetch/store methods was very intuitive and sensible | 18:18 | |
| are Perl 6 arrays/hashes 'full' objects? could this be done? | 18:19 | ||
| pmichaud | yes, they're 'full' objects | 18:20 | |
| so one would likely override postcircumfix:<[ ]> | |||
| rjh | nice | ||
| so where does tying fit in | |||
| dalek | r34248 | pmichaud++ | trunk (2 files): | 18:35 | |
| : [core]: Correct .arity for subs with optional named parameters (RT #61606). | |||
| : * Also adjust test to only test valid PIR. | |||
| review: xrl.us/27yce | |||
| pmichaud | tying fits in simply by declaring an array or object as an instance of the overridden class | 18:36 | |
| thus | |||
| my @a is MyCustomTiedArray; | |||
| then all accesses to @a would go through the overridden methods instead of the normal Array ones. | 18:37 | ||
| cotto | Coke, do you think the colors don't add anything to the TT report? | ||
| pmichaud | I find the colors more distracting than helpful. | ||
| perhaps that's because I haven't memorized the color scheme yet. | |||
| I'd find it easier if priority was a column instead of a color, although we're getting a bit too much information in the display already. | 18:38 | ||
| cotto | better? | 18:39 | |
| purl | i guess better is relative, depends how you want to use them ;) | ||
| pmichaud | I don't see the priority, though. | ||
| the "version" column isn't that useful yet... maybe it will be in the future as we get onto a more stable release cycle. | 18:40 | ||
| afk, lunch and errands. | |||
| cotto | it's between component and version now | 18:41 | |
| (just added) | |||
| jonathan waves from England | 18:48 | ||
| Tene waves from not-England. | 18:49 | ||
| rurban | Hi jonathan | 18:55 | |
| jonathan | rurban: Hi :-) | ||
| Wknight8111 | purl forget better | ||
| purl | Wknight8111: I forgot better | ||
| Coke | cotto: no, they're too confusing. | 18:58 | |
| Coke wonders if someone would like to write 'set_pmc' for TclArray. =-) | |||
| oooh, copy works. | 19:02 | ||
| bah, no it doesn't do what I need, I think. | 19:15 | ||
| I have a PMC foo; I wish the PMC to become a subclass of itself. ... morph? | |||
| jonathan | Coke: Rakudo has a rebless_subclass dynop that may do what you want. | 19:18 | |
| If you have a use case too, perhaps we make it an official Parrot op. | |||
| pmichaud | copy can work. | ||
| $P0 = new 'Subclass' | |||
| copy self, $P0 | 19:19 | ||
| (do things to $P0 to preserve information) | |||
| (before the copy) | |||
| Rakudo does this to get ResizablePMCArray objects to turn into List objects | |||
| jonathan | hi pm | ||
| pmichaud | hiya, jonathan | ||
| jonathan | I see you made a couple more tests pass. ;-) | ||
| pmichaud | a few. | 19:20 | |
| jonathan | s/few/few hundred/ | 19:23 | |
| pmichaud++ | |||
| pmichaud | yeah, I just got started on finding things that could be easily done, and did those. :-) | ||
| got some really good momentum, so decided to ride on that a while :-) | |||
| jonathan | Nice | 19:24 | |
| I've just been travelling, seeing people, doing Christmas shopping, etc. | |||
| pmichaud | that sounds good. (I did Christmas shopping as well, but none of that other stuff ) | 19:25 | |
| Coke | jonathan: now I think I just need to figure out which :vtable override I need on the reader side. | ||
| jonathan | Yeah, it's nice to get a break from things a bit. | 19:26 | |
|
19:28
barney joined
|
|||
| Tene | pmichaud: what do you think about this: | 19:32 | |
| 1. 'while' and 'for' and friends strip the 'handlers' attribute out of the block and pass it as a named parameter to 'loop_helper' | |||
| 2. 'loop_helper' constructs the loop, wraps the passed handlers around the loop, and then adds its own handlers around that | |||
| Coke | jonathan++ | ||
| pmichaud | Tene: it still feels as though the handlers would end up with the wrong lexical scoping. | 19:33 | |
| Tene | Hmm. | 19:34 | |
| You might be right... thinking... | 19:36 | ||
| pmichaud | I'm starting to think that looping in a perl6 sense is going to be something we do within a block, as opposed to do "on" a block. | ||
| Tene | My thinking here is that the Op loop nodes represent a modification of the block. | 19:37 | |
| pmichaud | that feels wrong. | ||
| if we're modifying a block, we should just do it on the block. | 19:38 | ||
|
19:38
mberends joined
|
|||
| pmichaud | or else the Op loop node belongs *within* the block, instead of outside of it. | 19:38 | |
| Tene | If the loop is within the block, the loop handlers will be nested inside of the block handlers. | 19:39 | |
| pmichaud | doesn't have to be that way -- we can change the way handlers are genrated. | ||
| Tene | Unless loop nodes are a variant of blocks. | ||
| pmichaud | well, that's kinda what I've been thinking also | 19:40 | |
|
19:40
particle1 joined
|
|||
| Tene | That seems to be the idea we've been dancing around. | 19:40 | |
| pmichaud | but if we're going that route, then I want to solve ENTER and LEAVE as well. | ||
| Tene | For a nested loop node to reach out and wrap handlers around the outside of what contains it seems wrong to me. | ||
| nopaste | "Coke" at 72.228.52.192 pasted "complete hack, but this now works:" (8 lines) at nopaste.snit.ch/15063 | 19:41 | |
| particle1 | pmichaud: you broke rakudo for c89-compliant compilers with r34219. strncasecmp isn't c89. | ||
| Coke | jonathan++ | 19:42 | |
| pmichaud | particle: I'm open for suggestions. | ||
| I just borrowed what src/pmc/bigint.pmc was doing. | |||
| particle1 | lc first? | ||
| hrmm | |||
| pmichaud | I can't lc the entire source code. | 19:43 | |
| I could do a series of three tolower() tests. | |||
| but that seems ugly. | |||
| I'll just do the tolower tests. | 19:44 | ||
| particle1 | ok, i don't have bigint support, so this may have been broken for some time. | ||
| i'll look into that | |||
| dalek | r34249 | pmichaud++ | trunk/languages/perl6/src/classes: | 19:46 | |
| : [rakudo]: Refactor some Mapping methods (RT #61618, cspencer++) | |||
| : * Patch courtesy Cory Spencer <cspencer@sprocket.org> | |||
| review: xrl.us/3dzgb | |||
| pmichaud | jonathan: btw, I tried doing the trick of eliminating perl6str's vtable functions by moving them into another PMC type and using add_vtable_method, but couldn't get it to work at all. | ||
| I didn't have a good way of looking up the method from the generic PMC. | |||
| particle1 | pmichaud: could you stick the pmc in the _perl6 namespace, then expose them as methods? | 19:48 | |
| pmichaud | particle1: that's the thing, I couldn't look them up as methods | ||
| particle1 | oh, i thought you couldn't look them up as vtables | ||
| dalek | r34250 | pmichaud++ | trunk/languages/perl6/src/pmc: | 19:49 | |
| : [rakudo]: Eliminate strcasecmp from inf/nan conversions (particle++) | |||
| review: xrl.us/3ebmz | |||
| particle1 | find_sub won't work? | 19:50 | |
| pmichaud | it's not in the namespace, is it? | ||
| particle1 | you could put it in the namespace | ||
| pmichaud | from C? | ||
| how do I do that? | |||
| particle1 | checking... but the namespace code is still a mess, and i'm a bit rusty | 19:51 | |
| pmichaud | there are, unfortunately, a lot of messy things at the moment. :-| | ||
| particle1 | some things never change ;) | 19:52 | |
| pmichaud | Coke: btw, you asked a few days ago about things to speed up PGE | ||
| particle1 | btw seattle isn't really set up to handle 17" of snow over 4 days | ||
| Infinoid | I'm told driving in the snow in seattle is like nascar in slow motion | ||
| pmichaud | this is going to sound like I'm being snarky, but actually what would help PGE the most at this point is (1) faster method calls (calling conventions), and (2) PIR-level profiling | 19:53 | |
| I mean yes, redesigning for protoregexes and LTM will help a lot also, but I'd guess the bigger wins are in making those calls faster in the first place. | |||
| for example, when I switched the Match objects from being PIR based to PMC-based, we got a 15% speed improvement. | 19:54 | ||
| particle1 | Infinoid: that's not far from the truth. i've got 4wd and chains, so i'm fine. those other morons, though.... | ||
| jonathan | pmichaud: Don't write them as vtables, write them as normal methods, then you can look them up with find_method. | ||
| pmichaud | jonathan: I did write them as normal methods. | ||
| find_method wouldn't find them. | |||
| barney | apropos messy namespaces: How do I construct a PAST::Op node that calls a funcion below a different HLL root namespace ? | ||
| Coke | (pir level profiling) that's a big win all around. | ||
| jonathan | pmichaud: Oh. That's....weird. | ||
| Infinoid | particle1: heh. AWD and snow tires usually works fine for me, but yeah, you gotta pay attention | ||
| Coke | pmichaud: I also wonder if being forced to use PMCs for attributes is hurting us. | 19:55 | |
| jonathan | pmichaud: OK, I'll try and take a poke and see why it doesn't work at some point. | ||
| Infinoid | does anyone here have an opinion on the changes I've made to dalek's svn log? | ||
| Coke | (with extra GC pressure) | ||
| Infinoid | I've got a bit of negative feedback about linking to svn.perl.org for the diffs, but on the other hand, it's more reliable than parrotvm.org seems to be | ||
| nopaste | "pmichaud" at 72.181.176.220 pasted "find_method doesn't work on PCCMETHODs (for jonathan)" (6 lines) at nopaste.snit.ch/15064 | ||
| Coke | why negative feedback? isn't that the canonical source? | ||
| Infinoid | parrotvm.org's diffs look nicer (when it doesn't crash generating them) | 19:56 | |
| pmichaud | I agree -- looking at the diff seems more difficult on perl.org | ||
| I can't see it all at once | |||
| but perl.org thus far has worked okay for me as well. | |||
| Infinoid | yeah, I haven't found a way to convince svn.perl.org to give me the whole thing on one page (yet) | ||
| I have been looking. | |||
| pmichaud | oops, I forgot the output | 19:57 | |
| renopasting | |||
| Coke | couldn't you use svn.perl.org's feed, but just point to parrotvm.org's urls? | ||
| nopaste | "pmichaud" at 72.181.176.220 pasted "find_method doesn't work on PCCMETHODs, with output (for jonathan)" (12 lines) at nopaste.snit.ch/15065 | ||
| Coke | seems like it should just be a revision # you have to change, neh? | ||
| Infinoid | I certainly can, and I will if it's preferred | 19:58 | |
| Coke don't care. | |||
| Infinoid | its just a $url = "blahblah?rev=$rev", easy to change | ||
| Coke | I like the branch to "longest matching path", though. | ||
| er, change. | |||
| Infinoid | thanks, glad that's working | ||
| last time I tried parrotvm.org, it completely failed to display a diff to a checkin to some branch | |||
| let me see if I can find that again | |||
| (trunk checkins worked, I don't know why) | 19:59 | ||
| do we have a timeframe for switching svn to trac? (I'm wondering how much effort I should invest in the current stuff.) | |||
| ok, here's an example. www.parrotvm.org/svn/parrot/revision?rev=34168 loads fine; www.parrotvm.org/svn/parrot/revision?rev=34169 has an error | 20:00 | ||
| Coke | Infinoid: we're hoping for post-january release. | 20:01 | |
| (on the svn switchover) | |||
| Infinoid | ok. if I get a couple more votes for review links to parrotvm.org, I'll switch them back (easy on my end of things) | 20:02 | |
|
20:10
bacek joined
20:15
dalek joined
|
|||
| Infinoid | (switched back to parrotvm.org, bug me if you hate it) | 20:16 | |
| pmichaud | afk # lunch | 20:18 | |
| Coke | (*&#$. to get this one thing to work, I have to implement [trace variable foo r], [namespace code], [namespace inscope] ... | ||
| Infinoid | yakkity yak | ||
| Coke | aiming for a pre-existing test suite sucks. ^_- | ||
| riffraff | are the logs for #parrot still available somewhere? | 20:24 | |
| Tene | purl: irclog? | 20:25 | |
| purl | irclog is irclog.perlgeek.de/parrot/today or see also: infrared clogs | ||
| riffraff | on www.parrotcode.org/misc/parrotsketch-logs/ they seem to be stopped at 200809 | ||
| Infinoid | infrared clogs? | ||
| purl | infrared clogs are like ruby slippers, but more so | ||
| riffraff | thanks | 20:26 | |
| possibly the resources page on parrotcode should be updated ? | |||
| particle1 | pmichaud: i can replicate your behavior :( | ||
|
20:27
gryphon joined
|
|||
| nopaste | "particle" at 76.121.106.245 pasted "find_method not finding method :(" (35 lines) at nopaste.snit.ch/15066 | 20:27 | |
| riffraff | pmichaud, thanks for reply earlier today, sadly I had a network failure ad could not read it | ||
| pmichaud | particle: I think that chromatic's post to parrot-dev is a not-so-good indictment of Parrot internals at the moment. | 20:28 | |
| anyway, I'm really going to lunch now. | |||
| later. | |||
| Coke | pmichaud: we've been saying for some time, correct, then fast, neh? so the fact that there are HUGE optimizations to make does not surprise me at all. (but it does certainly look bad) | 20:29 | |
| dalek | r34251 | fperrad++ | trunk/languages/WMLScript/t/Parrot/Test: | 20:51 | |
| : [WMLScript] Test | |||
| : - now, work with absolute pathname | |||
| review: xrl.us/3ic22 | |||
| r34252 | fperrad++ | trunk/languages/WMLScript/t (21 files): | 20:57 | ||
| : [WMLScript] Test | |||
| : - now, work with a correct pragma 'use lib' | |||
| review: xrl.us/3iy43 | |||
| r34253 | fperrad++ | trunk/languages/markdown/t/Parrot/Test: | 20:59 | ||
| : [Markdown] Test | |||
| : - now, work with absolute pathname | |||
| review: xrl.us/3i7an | |||
| r34254 | fperrad++ | trunk/languages/markdown/t (11 files): | 21:01 | ||
| : [Markdown] Test | |||
| : - now, work with a correct pragma 'use lib' | |||
| review: xrl.us/3jcjz | |||
| bacek | rakudo: my ($a,$b) = 1; say $a*$b | ||
| rakudo: say "O HI" | 21:02 | ||
| polyglotbot | OUTPUT[Use of uninitialized valueā¤0ā¤] | ||
| OUTPUT[O HIā¤] | |||
| bacek | rakudo: say (1).reduce($^a*$^b) | 21:03 | |
| polyglotbot | OUTPUT[too few arguments passed (0) - 2 params expectedā¤current instr.: '_block14' pc 35 (EVAL_13:26)ā¤called from Sub '!UNIT_START' pc 15950 (src/builtins/guts.pir:327)ā¤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 892 (src/PCT/HLLCompiler.pir:508)ā¤called from Sub | ||
| ..'parrot;PCT;HLLCompiler;evalfiles' pc 1217 (src/PCT/HLLCompiler.pir:669)ā¤called... | |||
| bacek | rakudo: say (1).reduce({$^a*$^b}) | 21:04 | |
| polyglotbot | OUTPUT[Method 'iterator' not found for invocant of class 'Int'ā¤current instr.: 'parrot;Any;reduce' pc 10209 (src/builtins/any-list.pir:409)ā¤called from Sub '_block14' pc 64 (EVAL_13:40)ā¤called from Sub '!UNIT_START' pc 15950 (src/builtins/guts.pir:327)ā¤called from Sub 'parrot;PCT;HLLCompiler;eval' | ||
| ..pc 892 (src/PCT/HLLCompiler.pir:508)ā¤called from... | |||
| bacek | rakudo: say ((1)).reduce({$^a*$^b}) | ||
| polyglotbot | OUTPUT[Method 'iterator' not found for invocant of class 'Int'ā¤current instr.: 'parrot;Any;reduce' pc 10209 (src/builtins/any-list.pir:409)ā¤called from Sub '_block14' pc 64 (EVAL_13:40)ā¤called from Sub '!UNIT_START' pc 15950 (src/builtins/guts.pir:327)ā¤called from Sub 'parrot;PCT;HLLCompiler;eval' | ||
| ..pc 892 (src/PCT/HLLCompiler.pir:508)ā¤called from... | |||
| dalek | r34255 | fperrad++ | trunk/languages/lua/t/Parrot/Test (3 files): | ||
| : [Lua] Test | |||
| : - now, work with absolute pathname | |||
| review: xrl.us/3jnku | |||
| bacek | rakudo: say list(1).reduce({$^a*$^b}) | ||
| polyglotbot | OUTPUT[1ā¤] | ||
| dalek | r34256 | fperrad++ | trunk/languages/lua/t (64 files): | 21:14 | |
| : [Lua] Test | |||
| : - now, work with a correct pragma 'use lib' | |||
| review: xrl.us/3kauy | |||
|
21:23
riffraff joined
|
|||
| Coke | particle1: are you sure that is meant to work on an instance and not a class? | 21:26 | |
| particle1 | pdd17 lists 'find_method' under 'class/object' vtable functions | 21:28 | |
|
21:28
apple-gunkies joined
21:29
jose joined
|
|||
| particle1 | also note adding $P0 = get_class $P0 # doesn't help | 21:29 | |
| Coke | no guarantee that the opcode is calling the vtable you think. | 21:30 | |
|
21:31
clunker3 joined
|
|||
| Coke | -> | 21:31 | |
| dalek | r34257 | bernhard++ | trunk/languages/pipp (10 files): | 21:43 | |
| : [Pipp] Put the builtin functions below the hll root namespace 'pipp'. | |||
| : Funny workaround for setting ".HLL 'Pipp'" in generated PAST. | |||
| : Break 'require_once'. | |||
| review: xrl.us/3nmr6 | |||
|
21:45
eric256 joined
|
|||
| eric256 | all the doc links on parrotcode.org point to blank pages... www.parrotcode.org/docs/intro.html | 21:45 | |
|
21:47
donaldh joined
21:49
peters joined
|
|||
| peters | good localtime() | 21:49 | |
| rakudo: (my $vacation++ == my $perl6_fun++).say | 21:50 | ||
| polyglotbot | OUTPUT[1ā¤] | ||
| peters | =) | 21:51 | |
| dalek | r34258 | bernhard++ | trunk/languages/pipp/src/pct: | 21:52 | |
| : [Pipp] small beautifications | |||
| review: xrl.us/3ogz6 | |||
|
21:52
Aisling joined
|
|||
| eric256 | i saw rakudo.org/2008/12/rakudo-now-suppo...-pir.html, is there a way to pass something to the PIR? i want to write some wrappers around socket for expirementation os i'd need to keep track of the socket | 21:54 | |
| shorten | eric256's url is at xrl.us/3opm7 | ||
| nopaste | "peters" at 83.183.129.106 pasted "S05-metasyntax/enumerated-character-classes.t ?" (38 lines) at nopaste.snit.ch/15068 | 21:56 | |
| peters | seen moritz | ||
| purl | moritz was last seen on #parrot 4 hours, 16 minutes and 26 seconds ago, saying: the one in t/magicals/inc.t | ||
| peters | moritz: ping | ||
| riffraff | is there a common idiom to iterate over something that may be either a list or a single object? I guess something like for ([$foo].flatten) {} | 21:58 | |
| with NQP | |||
| jonathan | @($foo) maybe? | 22:00 | |
| eric256: You can create a lexical variable, and then use find_lex in PIR to get at it. | 22:01 | ||
| riffraff | thought so but I get a "Method list not found for invocant ResizablePMCArray" | 22:02 | |
| eric256 | thansk jonathan...right now its giving me errors on the http.pir example just straight out of the box ;) | 22:04 | |
| particle1 | eric256: like jonathan said, "my $x = 1; q:PIR { $P0 = find_lex '$x' \\n say $P0 }; # says '1' | 22:05 | |
| eric256 | excllent | 22:06 | |
| tanks | |||
| thanks even | |||
| dalek | r34259 | bernhard++ | trunk (6 files): | ||
| : [Pipp] Support for do-while | |||
| : Courtesy of Daniel Keane. | |||
| review: xrl.us/3pwyk | |||
| peters | eric256: are you working on a http implementation? | 22:07 | |
| eric256 | just playing with it, but i thought i would try yes | 22:08 | |
| pmichaud | Coke: (correct, then fast) perhaps, but in fact many of the recent changes parrot (e.g., mmd) seem more like pessimizations than optimizations. | 22:09 | |
| *to parrot | |||
| eric256 | but the examples/io/http.pir throws errors without even doing anything (unless i'm just makeing a plain stupid mistake which is probable) | ||
| tewk | 66% speed up by stealing perl6's <ws> memoization | ||
| peters | eric256: I just finnished a URI (RFC3986) grammar so i can implement a HTTP grammar | ||
| barney | Is there a way to set the hll root namespace for a PAST? Something like :inline(".HLL 'Pipp') ? | 22:10 | |
| particle1 | eric256: it's possible that example is bitrotten, there have been some opcode changes recently and i'm not sure examples/ have been kept up-to-date | ||
| barney | pir_pragma seems to be unimplemented | ||
| jonathan | Not to mention any side-effects recent IO changes could have had on socket stuff (I assume we have tests...) | 22:11 | |
| eric256 | i'm getting "error:imcc:syntax error, unexpected VAR, expecting '(' ('address')" when running the example | ||
| tewk | socket doesn't appear to be an op anymore. | 22:14 | |
| particle1 | ack socket src/ops # no results | ||
| eric256 | hehe yea i just found that out as well...hmmm | ||
| barney | See docs/pdds/pdd22_io.pod | ||
| particle1 | ack socket t/ -i # no results... that doesn't look promising | 22:17 | |
| barney | Sorry, I inadvertedly changed pdd21_namespaces.pod. But there's an open ticket #80 about that. | 22:18 | |
| jonathan tries to look surprised. | 22:22 | ||
| riffraff | in NQP, my $foo := () gives "no result object" which seems an error from the PAST conversion. Is it expected or a bug? | 22:23 | |
| jonathan | riffraff: Perhaps a bug; to do what you want calling list() instead may work. | ||
| my $foo := list(); | 22:24 | ||
| pmichaud | NQP doesn't have a 'list' function. | ||
| jonathan | Oh? | ||
| pmichaud | NQP doesn't provide any runtime functions beyond 'say' | ||
| (that's kinda the point of NQP) | |||
| jonathan | Ah. I suspect that I musta been calling the Rakudo one... | ||
| pmichaud | correct. | ||
| jonathan | OK, that won't help anyone working on another langauge then. :-) | 22:25 | |
| pmichaud | NQP will call whatever runtime functions you happen to provide, but it doesn't provide any on its own. | ||
| that said, it's plausible that NQP would recognize () as being an empty ResizablePMCArray | |||
| riffraff | makes sense not to have builtins, but then how can I get an empty list since @foo is invalid, I can't assign an empty one and I can't build it? | 22:26 | |
| pmichaud | my $foo = ResizablePMCArray.new() # would work if ResizablePMCArray protoobject is registered | ||
| so | |||
| particle1 | := of course | 22:27 | |
| pmichaud | P6metaobject.register('ResizablePMCArray'); | ||
| my $foo := ResizablePMCArray.new(); | |||
| riffraff | ah, that't the trick | ||
| pmichaud | I _think_ that works. | ||
| riffraff | cause I tried new'in ResizablePMCArray and it failed | ||
| id the metaobjects is not defined at least it makes sense | |||
| pmichaud | and of course eventually NQP will have | 22:28 | |
| my $foo := Q:PIR { %r = new 'ResizablePMCArray' }; | |||
| (need to backport that in from Rakudo) | |||
| riffraff | oh that would be nice | 22:31 | |
| (failed with P6meta.register, but I'll try to work from that) | 22:32 | ||
| pmichaud | looking. | ||
| ahhh | |||
| it's P6metaclass.register(... | |||
| riffraff | yep found | 22:34 | |
| thanks once more :) | |||
|
22:38
TiMBuS joined
|
|||
| barney | pmichaud: Is anything speaking against implementing :pir_pragma() as it's mentioned in pdd26 ? | 22:38 | |
| dalek | r34260 | pmichaud++ | trunk/languages/perl6/src/classes: | 22:41 | |
| : [rakudo]: Add .perl to Whatever. | |||
| review: xrl.us/3q8qj | 22:42 | ||
|
22:42
Whiteknight joined
|
|||
| pmichaud | barney: I don't know what/how pir_pragma would be used. | 22:42 | |
| barney | only for .HLL 'Name' | 22:43 | |
| pmichaud | Huh. I didn't even know that went in there. | ||
| barney | or a kind of :inline that's printed before the sub declaration | 22:45 | |
|
22:46
eric256 left
|
|||
| peters | rakudu: ?!0.say | 22:47 | |
| rakudo: ?!0.say | 22:48 | ||
| polyglotbot | OUTPUT[0ā¤] | ||
| particle1 | like .include 'foo.pasm' ? | ||
| peters | rakudo: ?(!0).say | ||
| polyglotbot | OUTPUT[1ā¤] | ||
| pmichaud | I think that pir_pragma was originally for what is now pir flags. | ||
| er, :pirflags | |||
| particle1 | rakudo: (?!)0.say | 22:49 | |
| polyglotbot | OUTPUT[Syntax error at line 1, near "(?!)0.say"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤called from Sub 'parrot;Perl6;Grammar;TOP' pc 20613 (src/gen_grammar.pir:250)ā¤called from Sub 'parrot;PCT;HLLCompiler;parse' pc 634 | ||
| ..(src/PCT/HLLCompiler.pir:388)ā¤called from Sub 'parrot;PCT;HLLCompiler;compile' p... | |||
| pmichaud | yes, it's now :pirflags | ||
| barney | :pirflags is on the same line as the sub declaration | ||
| pmichaud | right. | 22:50 | |
| PAST doesn't yet provide a way to do declarations or statements outside of a parrot Sub | |||
| I've been trying to figure out how that should look. | |||
| barney | .HLL 'Pipp' needs to be outside a .sub like .namespace | ||
| pmichaud | yes, I know. | 22:51 | |
| I don't have a good answer yet. | |||
| I've been wondering if hll should actually be an attribute on blocks, like :namespace is. | |||
| particle1 | if you can change .HLL in a file, that makes sense | ||
| i think you can. | 22:52 | ||
| pmichaud | yes, PIR/Parrot currently allow that. | ||
| Whiteknight | barney, thanks for the fix | ||
| particle1 | yeah, then block attr seems correct to me. pir subs are compunits. hll and ns are attributes of those compunits | 22:53 | |
|
22:53
apple-gunkies joined
|
|||
| barney | PDD19 says that '.HLL' is perl file | 22:53 | |
| pmichaud | it still doesn't answer the question of getting .include in place. | ||
| I think PDD19 might be wrong there, then. | |||
| barney | s/perl file/per file/ | ||
| That's good | 22:54 | ||
| pmichaud | I know that current imcc allows multiple .HLL directives per file. | ||
| particle1 | .HLL is not per file, for sure | ||
| barney ponder renaming .HLL to .hll_root_namespace | 22:55 | ||
| nopaste | "particle" at 76.121.106.245 pasted "hll is not per file, but .include is" (13 lines) at nopaste.snit.ch/15069 | 22:57 | |
| particle1 | i don't know how to deal with .include, except as a first pass to pass it through to the generated pir directly | 22:58 | |
| it's possible two files could load include files which redefine the same symbol differently | 22:59 | ||
| pmichaud | two files in the same compilation stream? | ||
| pmichaud is confused. | |||
| particle1 | i wonder what imcc does with that currently.... | ||
| Whiteknight | probably breaks | ||
| pmichaud | it should complain about attempting to redefine a symbol. | ||
| particle1 | hopefully. that would mean .include isn't per-file, it's per program | 23:00 | |
| pmichaud | particle, you're confusing me. | ||
| dalek | r34261 | fperrad++ | trunk/languages/lua/t (11 files): | ||
| : [Lua] Test | |||
| : - now, all files used as resource by test are relative to $FindBin::Bin | |||
| review: xrl.us/3rvy4 | |||
| pmichaud | all .include does is take the text of another file and include it in the current compilation stream. | ||
| That's it. Period. | 23:01 | ||
|
23:02
bacek_ joined
|
|||
| nopaste | "particle" at 76.121.106.245 pasted ".include is per-file" (32 lines) at nopaste.snit.ch/15071 | 23:05 | |
| pmichaud | all that means (to me) is that imcc doesn't complain if you redefine a symbol. | 23:06 | |
| particle1 | it's not redefined, is it? both definitions work | 23:07 | |
| pmichaud | it's redefined. Watch. | ||
| nopaste.snit.ch:8001/paste | 23:08 | ||
| oops | |||
| nopaste.snit.ch/15072 | |||
| nopaste | "particle" at 76.121.106.245 pasted ".include is per-file, .FOO is redefined in main, not in A or B" (19 lines) at nopaste.snit.ch/15073 | ||
| barney | Does parrot --pre-process-only still work ? | 23:09 | |
| pmichaud | the phrase ".include is per-file" is totally misleading. .include doesn't supply a context or anything like that. It just says "place text from a file here." | ||
| see nopaste 15072 -- the FOO gets redefined *in the same file* | 23:10 | ||
| particle1 | i guess my example is no good because i used macros | 23:11 | |
| barney | parrot --pre-process-only is (still) broken | ||
| particle1 wonders when it last worked | |||
| i don't even remember --pre-process-only | |||
| it should either be tested or removed by march, need a ticket | 23:12 | ||
| barney | I think it never worked. never showed the included files | ||
| pmichaud | in 15073, you get those results because at the time .FOO was used when compiling A.pir it was defined as 1 (so the generated code is "say 1"), and after compiling B it's defined as 2. | ||
| particle1 | pmichaud: yes, i understand that | 23:13 | |
| but you can't say: | |||
| .sub main | |||
| .include 'A.pir' | |||
| 'A'() | |||
| .include 'B.pir' | |||
| 'B'() | |||
| ... | |||
| pmichaud | not if A.pir and B.pir contain .sub definitions you can't | ||
| because that would be the same as writing | 23:14 | ||
| .sub main | |||
| .sub A | |||
| ... | |||
| .end | |||
| 'A'() | |||
| .sub B | |||
| ... | |||
| .end | |||
| 'B'() | |||
| ... | |||
| particle1 | right | ||
| pmichaud | and Parrot doesn't allow nested sub definitions. | ||
|
23:15
PacoLinux joined
|
|||
| pmichaud | but if A.pir and B.pir contain things that are valid within a sub, it works just fine. | 23:15 | |
| particle1 | of course | ||
| pmichaud | in either case, .include doesn't supply a "file context" | ||
| it's just a straight text substitution. | |||
| barney submitted trac.parrot.org/parrot/ticket/81 | 23:18 | ||
| dalek | r34262 | jkeenan++ | trunk: | 23:58 | |
| : Added entry about change in 'make smoke'. | |||
| review: xrl.us/3w358 | |||