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